aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/hack-5.10/640-bridge-only-accept-EAP-locally.patch
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@nbd.name>2022-02-12 23:18:51 +0100
committerFelix Fietkau <nbd@nbd.name>2022-02-12 23:50:26 +0100
commit94b4da9b4aaded6ed8a5bd93bf38a7c92753fe68 (patch)
treea538f2d97898414ae29a72a280cb0e76303d71f8 /target/linux/generic/hack-5.10/640-bridge-only-accept-EAP-locally.patch
parent8f5875c4e221453932f217a82f8c3092cacba3e5 (diff)
downloadupstream-94b4da9b4aaded6ed8a5bd93bf38a7c92753fe68.tar.gz
upstream-94b4da9b4aaded6ed8a5bd93bf38a7c92753fe68.tar.bz2
upstream-94b4da9b4aaded6ed8a5bd93bf38a7c92753fe68.zip
kernel: add a fast path for the bridge code
This caches flows between MAC addresses on separate ports, including their VLAN in order to bypass the normal bridge forwarding code. In my test on MT7622, this reduces LAN->WLAN bridging CPU usage by 6-10%, potentially even more on weaker platforms Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'target/linux/generic/hack-5.10/640-bridge-only-accept-EAP-locally.patch')
-rw-r--r--target/linux/generic/hack-5.10/640-bridge-only-accept-EAP-locally.patch8
1 files changed, 4 insertions, 4 deletions
diff --git a/target/linux/generic/hack-5.10/640-bridge-only-accept-EAP-locally.patch b/target/linux/generic/hack-5.10/640-bridge-only-accept-EAP-locally.patch
index d8e5f2fc9b..e7052b9a8c 100644
--- a/target/linux/generic/hack-5.10/640-bridge-only-accept-EAP-locally.patch
+++ b/target/linux/generic/hack-5.10/640-bridge-only-accept-EAP-locally.patch
@@ -12,7 +12,7 @@ Signed-off-by: Etienne Champetier <champetier.etienne@gmail.com>
--- a/net/bridge/br_input.c
+++ b/net/bridge/br_input.c
-@@ -107,10 +107,14 @@ int br_handle_frame_finish(struct net *n
+@@ -108,10 +108,14 @@ int br_handle_frame_finish(struct net *n
}
}
@@ -30,7 +30,7 @@ Signed-off-by: Etienne Champetier <champetier.etienne@gmail.com>
if (IS_ENABLED(CONFIG_INET) &&
--- a/net/bridge/br_private.h
+++ b/net/bridge/br_private.h
-@@ -404,6 +404,8 @@ struct net_bridge {
+@@ -417,6 +417,8 @@ struct net_bridge {
u16 group_fwd_mask;
u16 group_fwd_mask_required;
@@ -41,7 +41,7 @@ Signed-off-by: Etienne Champetier <champetier.etienne@gmail.com>
bridge_id bridge_id;
--- a/net/bridge/br_sysfs_br.c
+++ b/net/bridge/br_sysfs_br.c
-@@ -164,6 +164,30 @@ static ssize_t group_fwd_mask_store(stru
+@@ -165,6 +165,30 @@ static ssize_t group_fwd_mask_store(stru
}
static DEVICE_ATTR_RW(group_fwd_mask);
@@ -72,7 +72,7 @@ Signed-off-by: Etienne Champetier <champetier.etienne@gmail.com>
static ssize_t priority_show(struct device *d, struct device_attribute *attr,
char *buf)
{
-@@ -849,6 +873,7 @@ static struct attribute *bridge_attrs[]
+@@ -882,6 +906,7 @@ static struct attribute *bridge_attrs[]
&dev_attr_ageing_time.attr,
&dev_attr_stp_state.attr,
&dev_attr_group_fwd_mask.attr,