diff options
| author | Jason Xing <[email protected]> | 2025-02-20 07:29:34 +0000 |
|---|---|---|
| committer | Martin KaFai Lau <[email protected]> | 2025-02-20 22:29:24 +0000 |
| commit | 6b98ec7e882af1c3088a88757e2226d06c8514f9 (patch) | |
| tree | bc8788a4e1a836f3ea694d5405b0e10eebe10b77 /net/core/dev.c | |
| parent | net-timestamp: Prepare for isolating two modes of SO_TIMESTAMPING (diff) | |
| download | kernel-6b98ec7e882af1c3088a88757e2226d06c8514f9.tar.gz kernel-6b98ec7e882af1c3088a88757e2226d06c8514f9.zip | |
bpf: Add BPF_SOCK_OPS_TSTAMP_SCHED_CB callback
Support SCM_TSTAMP_SCHED case for bpf timestamping.
Add a new sock_ops callback, BPF_SOCK_OPS_TSTAMP_SCHED_CB. This
callback will occur at the same timestamping point as the user
space's SCM_TSTAMP_SCHED. The BPF program can use it to get the
same SCM_TSTAMP_SCHED timestamp without modifying the user-space
application.
A new SKBTX_BPF flag is added to mark skb_shinfo(skb)->tx_flags,
ensuring that the new BPF timestamping and the current user
space's SO_TIMESTAMPING do not interfere with each other.
Signed-off-by: Jason Xing <[email protected]>
Signed-off-by: Martin KaFai Lau <[email protected]>
Reviewed-by: Willem de Bruijn <[email protected]>
Link: https://patch.msgid.link/[email protected]
Diffstat (limited to 'net/core/dev.c')
| -rw-r--r-- | net/core/dev.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/core/dev.c b/net/core/dev.c index d5ab9a4b318e..436f2bdfb2d5 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -4501,7 +4501,8 @@ int __dev_queue_xmit(struct sk_buff *skb, struct net_device *sb_dev) skb_reset_mac_header(skb); skb_assert_len(skb); - if (unlikely(skb_shinfo(skb)->tx_flags & SKBTX_SCHED_TSTAMP)) + if (unlikely(skb_shinfo(skb)->tx_flags & + (SKBTX_SCHED_TSTAMP | SKBTX_BPF))) __skb_tstamp_tx(skb, NULL, NULL, skb->sk, SCM_TSTAMP_SCHED); /* Disable soft irqs for various locks below. Also |
