C AF_XDP:Set'SO_TIMESTAMP'不受'SO_XDP'支持:协议不可用

C AF_XDP:Set'SO_TIMESTAMP'不受'SO_XDP'支持:协议不可用,c,linux,networking,timestamp,xdp-bpf,C,Linux,Networking,Timestamp,Xdp Bpf,为什么AF\u XDP套接字不支持设置时间戳?我的驱动程序的用户手册(mlnx 5.0)说明 传入的数据包在分发到服务器上之前会有时间戳 PCI取决于PCI缓冲区中的拥塞情况 据我所知,在PCI上发布之前意味着还没有涉及Linux内核-对吗 我试着这样设置: int timestamp = SOF_TIMESTAMPING_RX_HARDWARE; if(setsockopt(xsk_socket__fd(xsk_socket->xsk), SOL_XDP, SO_TIMESTAMP, (

为什么
AF\u XDP
套接字不支持设置时间戳?我的驱动程序的用户手册(
mlnx 5.0
)说明

传入的数据包在分发到服务器上之前会有时间戳 PCI取决于PCI缓冲区中的拥塞情况

据我所知,
在PCI上发布之前
意味着还没有涉及Linux内核-对吗

我试着这样设置:

int timestamp = SOF_TIMESTAMPING_RX_HARDWARE;
if(setsockopt(xsk_socket__fd(xsk_socket->xsk), SOL_XDP, SO_TIMESTAMP, (int*)&timestamp, sizeof(int)) < 0) {
    fprintf(stderr, "Failed to set `SO_TIMESTAMP`: %s\n", strerror(errno));
    return;
}

我不明白,为什么它不被支持…

没有技术原因说明为什么它没有被实现

事实上,它看起来好像在xdp开发团队的待办事项列表上

引自:

重要的中期任务

来自硬件的元数据 XDP程序可以访问各种硬件元数据项,以减少eBPF中需要进行的处理量。这些措施包括:

  • 校验和
  • 散列值
  • 流量指示器
  • 高级协议头偏移量
  • 时间戳
从2019年6月起,这项工作似乎就要开始了,因此它可能没有最高优先级,否则它将已经实施

#ifndef SOL_XDP
 #define SOL_XDP 283
#endif