Add BPF_SOCK_OPS_TSTAMP_COMPLETION_CB and emit it on completion timestamps. Enable that for Bluetooth. Tests: https://lore.kernel.org/linux-bluetooth/a74e58b9cf12bc9c64a024d18e6e58999202f853.1743336056.git.pav@xxxxxx/ *** However, I don't quite see how to do the tskey management so that BPF and socket timestamping do not interfere with each other. The tskey counter here increments only for sendmsg() that have timestamping turned on. IIUC this works similarly as for UDP. I understood the documentation so that stream sockets would do similarly, but apparently TCP increments also for non-timestamped packets. If BPF needs tskey while socket timestamping is off, we can't increment sk_tskey, as that interferes with counting by user applications doing socket timestamps. Should the Bluetooth timestamping actually just increment the counters for any packet, timestamped or not? Pauli Virtanen (3): bpf: Add BPF_SOCK_OPS_TSTAMP_COMPLETION_CB callback [RFC] bpf: allow non-TCP skbs for bpf_sock_ops_enable_tx_tstamp [RFC] Bluetooth: enable bpf TX timestamping include/net/bluetooth/bluetooth.h | 1 + include/uapi/linux/bpf.h | 5 +++++ net/bluetooth/hci_conn.c | 21 +++++++++++++++++++-- net/core/filter.c | 12 ++++++++++-- net/core/skbuff.c | 3 +++ 5 files changed, 38 insertions(+), 4 deletions(-) -- 2.49.0