aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Danzberger <daniel@dd-wrt.com>2018-01-31 14:46:08 +0100
committerFelix Fietkau <nbd@nbd.name>2018-02-05 10:16:26 +0100
commit653af8ffd3a743048e17c01261cee987935fe9a3 (patch)
tree84602c211db7819bcfabe663e6f9eb6db1d227c4
parentd3ea5fc9f33e0951e36a6443a803b916a94d3b4f (diff)
downloadupstream-653af8ffd3a743048e17c01261cee987935fe9a3.tar.gz
upstream-653af8ffd3a743048e17c01261cee987935fe9a3.tar.bz2
upstream-653af8ffd3a743048e17c01261cee987935fe9a3.zip
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>
-rw-r--r--target/linux/generic/hack-4.14/641-bridge_port_isolate.patch2
-rw-r--r--target/linux/generic/hack-4.9/641-bridge_port_isolate.patch2
2 files changed, 2 insertions, 2 deletions
diff --git a/target/linux/generic/hack-4.14/641-bridge_port_isolate.patch b/target/linux/generic/hack-4.14/641-bridge_port_isolate.patch
index ab9f476577..538dbd16b0 100644
--- a/target/linux/generic/hack-4.14/641-bridge_port_isolate.patch
+++ b/target/linux/generic/hack-4.14/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,
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;
+
if (to && should_deliver(to, skb)) {
diff --git a/target/linux/generic/hack-4.9/641-bridge_port_isolate.patch b/target/linux/generic/hack-4.9/641-bridge_port_isolate.patch
index 56259329d2..0d0b2c73ff 100644
--- a/target/linux/generic/hack-4.9/641-bridge_port_isolate.patch
+++ b/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,
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;
+
if (to && should_deliver(to, skb)) {