netfilter: flowtable: add bridge vlan filtering support
authorPablo Neira Ayuso <pablo@netfilter.org>
Wed, 24 Mar 2021 01:30:42 +0000 (02:30 +0100)
committerDavid S. Miller <davem@davemloft.net>
Wed, 24 Mar 2021 19:48:39 +0000 (12:48 -0700)
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>
net/netfilter/nft_flow_offload.c

index 8392b1a8108ba271818cb108e94eed898147a50d..651364d93efd5d3fb556996affe537e4f544b6cd 100644 (file)
@@ -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: