Почему настройка SO_TIMESTAMP
не поддерживается для сокета AF_XDP
? Руководство пользователя моего драйвера (mlnx 5.0
) гласит, что
Входящие пакеты имеют временную отметку перед распределением по PCI в зависимости от перегрузки в буферах PCI.
Насколько мне известно, before distributed on the PCI
означает, что Linux Ядро не задействовано (пока) - верно?
Я попытался установить его так:
int timestamp = SOF_TIMESTAMPING_RX_HARDWARE;
if(setsockopt(xsk_socket__fd(xsk_socket->xsk), SOL_XDP, SO_TIMESTAMP, (int*)×tamp, sizeof(int)) < 0) {
fprintf(stderr, "Failed to set `SO_TIMESTAMP`: %s\n", strerror(errno));
return;
}
И получить :
Не удалось установить SO_TIMESTAMP
: протокол недоступен
Я скопировал определение SO_XDP
из xsk.c
(https://github.com/libbpf/libbpf/blob/master/src/xsk.c):
#ifndef SOL_XDP
#define SOL_XDP 283
#endif
Не понимаю, почему это не поддерживается ...