On Tue, 25 May 2021 21:51:22 -0700 John Fastabend <john.fastabend@xxxxxxxxx> wrote: > Separate the config of hardware from the BPF infrastructure these > are two separate things. I fully agree. How should we handle existing config interfaces? Let me give some concrete examples. Today there are multiple existing interfaces to enable/disable NIC hardware features that change what is available to put in our BTF-layout. E.g. changing if VLAN is in descriptor: # ethtool -K ixgbe1 rx-vlan-offload off # ethtool -k ixgbe1 | grep vlan-offload rx-vlan-offload: off tx-vlan-offload: on The timestamping features can be listed by ethtool -T (see below signature), but it is a socket option that enable[1] these (see SO_TIMESTAMPNS or SOF_TIMESTAMPING_RX_HARDWARE). Or tuning RSS hash fields: [2] https://github.com/stackpath/rxtxcpu/blob/master/Documentation/case-studies/observing-rss-on-ixgbe-advanced-rss-configuration-rss-hash-fields.md I assume we need to stay compatible and respect the existing config interfaces, right? Should we simple leverage existing interfaces? E.g. tcpdump --time-stamp-type=adapter_unsynced could simple enable the BTF-layout that contains the RX-timestamp. This would make it avail to XDP/AF_XDP and the xdp_frame can also create a SKB with the timestamp. [1] https://www.kernel.org/doc/html/latest/networking/timestamping.html -- Best regards, Jesper Dangaard Brouer MSc.CS, Principal Kernel Engineer at Red Hat LinkedIn: http://www.linkedin.com/in/brouer # ethtool -T ixgbe1 Time stamping parameters for ixgbe1: Capabilities: hardware-transmit software-transmit hardware-receive software-receive software-system-clock hardware-raw-clock PTP Hardware Clock: 7 Hardware Transmit Timestamp Modes: off on Hardware Receive Filter Modes: none ptpv1-l4-sync ptpv1-l4-delay-req ptpv2-event # ethtool -T igc1 Time stamping parameters for igc1: Capabilities: hardware-transmit software-transmit hardware-receive software-receive software-system-clock hardware-raw-clock PTP Hardware Clock: 1 Hardware Transmit Timestamp Modes: off on Hardware Receive Filter Modes: none all