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>
master
Daniel Danzberger 7 years ago committed by Felix Fietkau
parent d3ea5fc9f3
commit 653af8ffd3
  1. 2
      target/linux/generic/hack-4.14/641-bridge_port_isolate.patch
  2. 2
      target/linux/generic/hack-4.9/641-bridge_port_isolate.patch

@ -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)) {

@ -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)) {

Loading…
Cancel
Save