diff options
author | 2021-03-24 02:30:42 +0100 | |
---|---|---|
committer | 2021-03-24 12:48:39 -0700 | |
commit | e990cef6516daa4e1e236433579e333f74fd38cb (patch) | |
tree | a125d2ea541a09b9fbe2d3aee97f6a4e617a3b85 | |
parent | netfilter: flowtable: add vlan support (diff) | |
download | wireguard-linux-e990cef6516daa4e1e236433579e333f74fd38cb.tar.xz wireguard-linux-e990cef6516daa4e1e236433579e333f74fd38cb.zip |
netfilter: flowtable: add bridge vlan filtering support
Add the vlan tag based when PVID is set on.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | net/netfilter/nft_flow_offload.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/net/netfilter/nft_flow_offload.c b/net/netfilter/nft_flow_offload.c index 8392b1a8108b..651364d93efd 100644 --- a/net/netfilter/nft_flow_offload.c +++ b/net/netfilter/nft_flow_offload.c @@ -111,6 +111,18 @@ static void nft_dev_path_info(const struct net_device_path_stack *stack, if (is_zero_ether_addr(info->h_source)) memcpy(info->h_source, path->dev->dev_addr, ETH_ALEN); + switch (path->bridge.vlan_mode) { + case DEV_PATH_BR_VLAN_TAG: + info->encap[info->num_encaps].id = path->bridge.vlan_id; + info->encap[info->num_encaps].proto = path->bridge.vlan_proto; + info->num_encaps++; + break; + case DEV_PATH_BR_VLAN_UNTAG: + info->num_encaps--; + break; + case DEV_PATH_BR_VLAN_KEEP: + break; + } info->xmit_type = FLOW_OFFLOAD_XMIT_DIRECT; break; default: |