2

ソケットの設定SO_TIMESTAMPがサポートされていないのはなぜですか? AF_XDP私のドライバーのユーザー マニュアル ( mlnx 5.0) には、次のように記載されています。

着信パケットは、PCI バッファの輻輳に応じて、PCI に配信される前にタイムスタンプが付けられます。

私の知る限り、before distributed on the PCILinuxカーネルが(まだ)関与していないことを意味します-そうですか?

次のように設定してみました。

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;
}

そして得る:

設定に失敗しましたSO_TIMESTAMP: プロトコルが利用できません

SO_XDPfrom xsk.c( https://github.com/libbpf/libbpf/blob/master/src/xsk.c )の定義をコピーしました:

#ifndef SOL_XDP
 #define SOL_XDP 283
#endif

なぜサポートされていないのかわかりません...

4

1 に答える 1