Почему настройка 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
Я не понимаю, почему это не поддерживается...