From: Lorenzo Colitti Date: Mon, 20 Apr 2020 18:34:08 +0000 (-0700) Subject: net: bpf: Allow TC programs to call BPF_FUNC_skb_change_head X-Git-Tag: v5.15~3723^2~343^2~28 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6f3f65d80dac8f2bafce2213005821fccdce194c;p=platform%2Fkernel%2Flinux-starfive.git net: bpf: Allow TC programs to call BPF_FUNC_skb_change_head This allows TC eBPF programs to modify and forward (redirect) packets from interfaces without ethernet headers (for example cellular) to interfaces with (for example ethernet/wifi). The lack of this appears to simply be an oversight. Tested: in active use in Android R on 4.14+ devices for ipv6 cellular to wifi tethering offload. Signed-off-by: Lorenzo Colitti Signed-off-by: Maciej Żenczykowski Signed-off-by: Alexei Starovoitov --- diff --git a/net/core/filter.c b/net/core/filter.c index a605626..da3b7a7 100644 --- a/net/core/filter.c +++ b/net/core/filter.c @@ -6137,6 +6137,8 @@ tc_cls_act_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) return &bpf_skb_adjust_room_proto; case BPF_FUNC_skb_change_tail: return &bpf_skb_change_tail_proto; + case BPF_FUNC_skb_change_head: + return &bpf_skb_change_head_proto; case BPF_FUNC_skb_get_tunnel_key: return &bpf_skb_get_tunnel_key_proto; case BPF_FUNC_skb_set_tunnel_key: