diff options
author | Felix Fietkau <nbd@nbd.name> | 2022-02-12 23:18:51 +0100 |
---|---|---|
committer | Felix Fietkau <nbd@nbd.name> | 2022-02-12 23:50:26 +0100 |
commit | 94b4da9b4aaded6ed8a5bd93bf38a7c92753fe68 (patch) | |
tree | a538f2d97898414ae29a72a280cb0e76303d71f8 /target/linux/generic/hack-5.10/640-bridge-only-accept-EAP-locally.patch | |
parent | 8f5875c4e221453932f217a82f8c3092cacba3e5 (diff) | |
download | upstream-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.patch | 8 |
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, |