diff options
author | Michael Braun <michael-dev@fami-braun.de> | 2020-05-06 11:46:25 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2020-05-25 20:39:05 +0200 |
commit | e9c284ec4b41c827f4369973d2792992849e4fa5 (patch) | |
tree | eead8fa92f2ddec0e10cb609546a83ccf43b2a37 /net | |
parent | 98790bbac4db1697212ce9462ec35ca09c4a2810 (diff) | |
download | linux-riscv-e9c284ec4b41c827f4369973d2792992849e4fa5.tar.gz linux-riscv-e9c284ec4b41c827f4369973d2792992849e4fa5.tar.bz2 linux-riscv-e9c284ec4b41c827f4369973d2792992849e4fa5.zip |
netfilter: nft_reject_bridge: enable reject with bridge vlan
Currently, using the bridge reject target with tagged packets
results in untagged packets being sent back.
Fix this by mirroring the vlan id as well.
Fixes: 85f5b3086a04 ("netfilter: bridge: add reject support")
Signed-off-by: Michael Braun <michael-dev@fami-braun.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'net')
-rw-r--r-- | net/bridge/netfilter/nft_reject_bridge.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/net/bridge/netfilter/nft_reject_bridge.c b/net/bridge/netfilter/nft_reject_bridge.c index b325b569e761..f48cf4cfb80f 100644 --- a/net/bridge/netfilter/nft_reject_bridge.c +++ b/net/bridge/netfilter/nft_reject_bridge.c @@ -31,6 +31,12 @@ static void nft_reject_br_push_etherhdr(struct sk_buff *oldskb, ether_addr_copy(eth->h_dest, eth_hdr(oldskb)->h_source); eth->h_proto = eth_hdr(oldskb)->h_proto; skb_pull(nskb, ETH_HLEN); + + if (skb_vlan_tag_present(oldskb)) { + u16 vid = skb_vlan_tag_get(oldskb); + + __vlan_hwaccel_put_tag(nskb, oldskb->vlan_proto, vid); + } } static int nft_bridge_iphdr_validate(struct sk_buff *skb) |