On 1/12/25 3:37 AM, Jason Xing wrote:
People can follow these three steps as below to fetch the shared info from the exported skb in the bpf prog: 1. skops_kern = bpf_cast_to_kern_ctx(skops); 2. skb = skops_kern->skb; 3. shinfo = bpf_core_cast(skb->head + skb->end, struct skb_shared_info); It's worth to highlight we will be able to fetch the hwstamp, tskey and more key information extracted from the skb. More details can be seen in the last selftest patch of the series. Signed-off-by: Jason Xing <kerneljasonxing@xxxxxxxxx> --- net/core/sock.c | 1 + 1 file changed, 1 insertion(+) diff --git a/net/core/sock.c b/net/core/sock.c index dbb9326ae9d1..2f54e60a50d4 100644 --- a/net/core/sock.c +++ b/net/core/sock.c @@ -958,6 +958,7 @@ void bpf_skops_tx_timestamping(struct sock *sk, struct sk_buff *skb, int op) if (sk_is_tcp(sk) && sk_fullsock(sk)) sock_ops.is_fullsock = 1; sock_ops.sk = sk; + bpf_skops_init_skb(&sock_ops, skb, 0);
nit. This change can fold into patch 1.
sock_ops.timestamp_used = 1; __cgroup_bpf_run_filter_sock_ops(sk, &sock_ops, CGROUP_SOCK_OPS); }