kernel: fix forwarding locally generated packages in bridge isolation patch

Locally generated packets weren't forwarded to the isolated interfaces in a
bridge. Isolation should only prevent the flooding of incomming packets to
other interfaces in the bridge.

Signed-off-by: Daniel Danzberger <daniel@dd-wrt.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
Daniel Danzberger 2018-01-31 14:46:08 +01:00 committed by Felix Fietkau
parent d3ea5fc9f3
commit 653af8ffd3
2 changed files with 2 additions and 2 deletions

View file

@ -29,7 +29,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
void br_forward(const struct net_bridge_port *to, void br_forward(const struct net_bridge_port *to,
struct sk_buff *skb, bool local_rcv, bool local_orig) struct sk_buff *skb, bool local_rcv, bool local_orig)
{ {
+ if (to->flags & BR_ISOLATE_MODE) + if (to->flags & BR_ISOLATE_MODE && !local_orig)
+ to = NULL; + to = NULL;
+ +
if (to && should_deliver(to, skb)) { if (to && should_deliver(to, skb)) {

View file

@ -29,7 +29,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
void br_forward(const struct net_bridge_port *to, void br_forward(const struct net_bridge_port *to,
struct sk_buff *skb, bool local_rcv, bool local_orig) struct sk_buff *skb, bool local_rcv, bool local_orig)
{ {
+ if (to->flags & BR_ISOLATE_MODE) + if (to->flags & BR_ISOLATE_MODE && !local_orig)
+ to = NULL; + to = NULL;
+ +
if (to && should_deliver(to, skb)) { if (to && should_deliver(to, skb)) {