summaryrefslogtreecommitdiff
path: root/net/ipv6/netfilter.c
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2021-04-12 14:20:55 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2021-04-18 22:02:21 +0200
commit783003f3bb8a565326e89d18bbd948ad8ffc816a (patch)
tree51ff62c4a2bd1c2ceebb43681ddbaae669db0b9e /net/ipv6/netfilter.c
parentff4d90a89d3d4d9814e0a2696509a7d495be4163 (diff)
downloadlinux-783003f3bb8a565326e89d18bbd948ad8ffc816a.tar.gz
linux-783003f3bb8a565326e89d18bbd948ad8ffc816a.tar.bz2
linux-783003f3bb8a565326e89d18bbd948ad8ffc816a.zip
netfilter: nftables_offload: special ethertype handling for VLAN
The nftables offload parser sets FLOW_DISSECTOR_KEY_BASIC .n_proto to the ethertype field in the ethertype frame. However: - FLOW_DISSECTOR_KEY_BASIC .n_proto field always stores either IPv4 or IPv6 ethertypes. - FLOW_DISSECTOR_KEY_VLAN .vlan_tpid stores either the 802.1q and 802.1ad ethertypes. Same as for FLOW_DISSECTOR_KEY_CVLAN. This function adjusts the flow dissector to handle two scenarios: 1) FLOW_DISSECTOR_KEY_VLAN .vlan_tpid is set to 802.1q or 802.1ad. Then, transfer: - the .n_proto field to FLOW_DISSECTOR_KEY_VLAN .tpid. - the original FLOW_DISSECTOR_KEY_VLAN .tpid to the FLOW_DISSECTOR_KEY_CVLAN .tpid - the original FLOW_DISSECTOR_KEY_CVLAN .tpid to the .n_proto field. 2) .n_proto is set to 802.1q or 802.1ad. Then, transfer: - the .n_proto field to FLOW_DISSECTOR_KEY_VLAN .tpid. - the original FLOW_DISSECTOR_KEY_VLAN .tpid to the .n_proto field. Fixes: a82055af5959 ("netfilter: nft_payload: add VLAN offload support") Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'net/ipv6/netfilter.c')
0 files changed, 0 insertions, 0 deletions