aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6/addrconf_core.c
diff options
context:
space:
mode:
authorPeter Oskolkov <posk@google.com>2019-02-13 11:53:37 -0800
committerAlexei Starovoitov <ast@kernel.org>2019-02-13 18:27:55 -0800
commitca78801a81e04a31f8088e96b2649a9cbace5499 (patch)
tree1fd2c1a1b785e58217ff93e8010acdb4a7473e0b /net/ipv6/addrconf_core.c
parentbpf: implement BPF_LWT_ENCAP_IP mode in bpf_lwt_push_encap (diff)
downloadlinux-dev-ca78801a81e04a31f8088e96b2649a9cbace5499.tar.xz
linux-dev-ca78801a81e04a31f8088e96b2649a9cbace5499.zip
bpf: handle GSO in bpf_lwt_push_encap
This patch adds handling of GSO packets in bpf_lwt_push_ip_encap() (called from bpf_lwt_push_encap): * IPIP, GRE, and UDP encapsulation types are deduced by looking into iphdr->protocol or ipv6hdr->next_header; * SCTP GSO packets are not supported (as bpf_skb_proto_4_to_6 and similar do); * UDP_L4 GSO packets are also not supported (although they are not blocked in bpf_skb_proto_4_to_6 and similar), as skb_decrease_gso_size() will break it; * SKB_GSO_DODGY bit is set. Note: it may be possible to support SCTP and UDP_L4 gso packets; but as these cases seem to be not well handled by other tunneling/encapping code paths, the solution should be generic enough to apply to all tunneling/encapping code. v8 changes: - make sure that if GRE or UDP encap is detected, there is enough of pushed bytes to cover both IP[v6] + GRE|UDP headers; - do not reject double-encapped packets; - whitelist TCP GSO packets rather than block SCTP GSO and UDP GSO. Signed-off-by: Peter Oskolkov <posk@google.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'net/ipv6/addrconf_core.c')
0 files changed, 0 insertions, 0 deletions