diff options
author | Maciej Żenczykowski <maze@google.com> | 2021-03-09 11:29:20 +0000 |
---|---|---|
committer | Lorenzo Colitti <lorenzo@google.com> | 2021-04-02 06:22:36 +0000 |
commit | e4b5a883015cd7dd8da5d9603498cde4c6db018d (patch) | |
tree | c356dbaf710fd1c78c5a34c879b72793deb19c40 | |
parent | 023c23fb1f361a91d5541c96ac050da063e96281 (diff) | |
download | netd-e4b5a883015cd7dd8da5d9603498cde4c6db018d.tar.gz |
bpf_net_helpers.h - introduce try_make_readable()
Original change: https://android-review.googlesource.com/c/platform/system/netd/+/1620933
Change-Id: If845e14ea699bdc4ea46b5b5aa93513d8a3f55d1
Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Merged-In: Ic371816904364eda69debdb7dfb4816c4eb5e14d
-rw-r--r-- | bpf_progs/bpf_net_helpers.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/bpf_progs/bpf_net_helpers.h b/bpf_progs/bpf_net_helpers.h index 09549a35..d978f3a2 100644 --- a/bpf_progs/bpf_net_helpers.h +++ b/bpf_progs/bpf_net_helpers.h @@ -66,4 +66,10 @@ static inline __always_inline __unused bool is_received_skb(struct __sk_buff* sk skb->pkt_type == PACKET_MULTICAST; } +// try to make the first 'len' header bytes readable via direct packet access +static inline __always_inline void try_make_readable(struct __sk_buff* skb, int len) { + if (len > skb->len) len = skb->len; + if (skb->data_end - skb->data < len) bpf_skb_pull_data(skb, len); +} + #endif // NETDBPF_BPF_NET_HELPERS_H |