AF_XDP的NLM_F_DUMP是否支持过滤?求技术确认
AF_XDP套接字(XSK)的SOCK_DIAG_BY_FAMILY过滤支持确认
- 我通过NETLINK_INET_DIAG类型的netlink套接字,针对AF_XDP协议族发送带DLM_F_DUMP的SOCK_DIAG_BY_FAMILY请求,已能正常获取所有已打开XSK的完整Dump,基础功能无异常。
- 目前需要在特定场景下查询单个XSK:类似TCP套接字可通过填充请求报文中的非零字段开启过滤,但我尝试用inode号和/或套接字cookie对XSK进行过滤时,请求被忽略,仍返回完整的Dump结果。
- 查看Linux内核v6.2版本
xsk_diag.c文件中的xsk_diag_dump函数实现后,我认为当前内核并未实现XSK Dump的过滤逻辑。
序列化XSK Dump请求的代码
type xdpSocketRequest struct { Family uint8 Protocol uint8 pad uint16 Ino uint32 Show uint32 Cookie [2]uint32 } func (r *xdpSocketRequest) Serialize() []byte { b := writeBuffer{Bytes: make([]byte, sizeofSocketRequest)} b.Write(r.Family) b.Write(r.Protocol) native.PutUint16(b.Next(2), r.pad) native.PutUint32(b.Next(4), r.Ino) native.PutUint32(b.Next(4), r.Show) native.PutUint32(b.Next(4), r.Cookie[0]) native.PutUint32(b.Next(4), r.Cookie[1]) return b.Bytes }
想请技术同行确认或纠正我的理解:当前Linux内核是否完全不支持XSK Dump的过滤功能?
内容的提问来源于stack exchange,提问作者TheDiveO
相关产品推荐
相关产品推荐

