aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/hack-5.10/600-bridge_offload.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/generic/hack-5.10/600-bridge_offload.patch')
-rw-r--r--target/linux/generic/hack-5.10/600-bridge_offload.patch28
1 files changed, 28 insertions, 0 deletions
diff --git a/target/linux/generic/hack-5.10/600-bridge_offload.patch b/target/linux/generic/hack-5.10/600-bridge_offload.patch
index b704c98dc8..82282627ea 100644
--- a/target/linux/generic/hack-5.10/600-bridge_offload.patch
+++ b/target/linux/generic/hack-5.10/600-bridge_offload.patch
@@ -1,3 +1,31 @@
+From: Felix Fietkau <nbd@nbd.name>
+Subject: bridge: 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
+
+Submitted-by: Felix Fietkau <nbd@nbd.name>
+---
+ include/linux/if_bridge.h | 1 +
+ net/bridge/Makefile | 2 +-
+ net/bridge/br.c | 8 +++
+ net/bridge/br_device.c | 7 +++
+ net/bridge/br_forward.c | 3 ++
+ net/bridge/br_if.c | 7 ++-
+ net/bridge/br_input.c | 5 ++
+ net/bridge/br_offload.c | 436 +++++++++++++++
+ net/bridge/br_private.h | 22 ++++-
+ net/bridge/br_private_offload.h | 21 +++++
+ net/bridge/br_stp.c | 3 +
+ net/bridge/br_sysfs_br.c | 35 ++++++
+ net/bridge/br_sysfs_if.c | 2 +
+ net/bridge/br_vlan_tunnel.c | 3 ++
+ 14 files changed, 552 insertions(+), 3 deletions(-)
+ create mode 100644 net/bridge/br_offload.c
+ create mode 100644 net/bridge/br_private_offload.h
+
--- a/include/linux/if_bridge.h
+++ b/include/linux/if_bridge.h
@@ -57,6 +57,7 @@ struct br_ip_list {