aboutsummaryrefslogtreecommitdiffstats
path: root/net/bridge/br_forward.c
diff options
context:
space:
mode:
authorVlad Yasevich <vyasevic@redhat.com>2013-02-13 12:00:11 +0000
committerDavid S. Miller <davem@davemloft.net>2013-02-13 19:41:46 -0500
commit85f46c6baef1486ce20e13dd7cdea5dd15be2a90 (patch)
treeaab52d4f01320337bfc59358d26fc856e717a8f2 /net/bridge/br_forward.c
parentbridge: Validate that vlan is permitted on ingress (diff)
downloadlinux-dev-85f46c6baef1486ce20e13dd7cdea5dd15be2a90.tar.xz
linux-dev-85f46c6baef1486ce20e13dd7cdea5dd15be2a90.zip
bridge: Verify that a vlan is allowed to egress on given port
When bridge forwards a frame, make sure that a frame is allowed to egress on that port. Signed-off-by: Vlad Yasevich <vyasevic@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/bridge/br_forward.c')
-rw-r--r--net/bridge/br_forward.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/net/bridge/br_forward.c b/net/bridge/br_forward.c
index 02015a505d2a..35b0671f135d 100644
--- a/net/bridge/br_forward.c
+++ b/net/bridge/br_forward.c
@@ -31,6 +31,7 @@ static inline int should_deliver(const struct net_bridge_port *p,
const struct sk_buff *skb)
{
return (((p->flags & BR_HAIRPIN_MODE) || skb->dev != p->dev) &&
+ br_allowed_egress(p->br, nbp_get_vlan_info(p), skb) &&
p->state == BR_STATE_FORWARDING);
}