summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQingfang Deng2025-12-10 01:28:29 +0000
committerChristian Marangi2025-12-10 23:57:56 +0000
commitcd88eb969fd8a1ca497184a8b76ec706d24d9d30 (patch)
tree8201165760ae9075cdbef0e1d7278caee7df9fd6
parent4e5e8b95a645f6f2bd952cbd51cd34b1dcbbda3d (diff)
downloadopenwrt-cd88eb969fd8a1ca497184a8b76ec706d24d9d30.tar.gz
kernel: add network teaming modules
Teaming is a link aggregation implementation similar to bonding, but it's configured by a userspace program. Signed-off-by: Qingfang Deng <dqfext@gmail.com> Link: https://github.com/openwrt/openwrt/pull/21120 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> (cherry picked from commit 8b05db405bb98b764f6b3e7a500e3ee10199657b)
-rw-r--r--package/kernel/linux/modules/netsupport.mk65
-rw-r--r--target/linux/generic/config-6.125
2 files changed, 70 insertions, 0 deletions
diff --git a/package/kernel/linux/modules/netsupport.mk b/package/kernel/linux/modules/netsupport.mk
index 7ae729f6ba..82c992b853 100644
--- a/package/kernel/linux/modules/netsupport.mk
+++ b/package/kernel/linux/modules/netsupport.mk
@@ -1654,3 +1654,68 @@ define KernelPackage/packet-diag
endef
$(eval $(call KernelPackage,packet-diag))
+
+define KernelPackage/team
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Ethernet team driver
+ KCONFIG:=CONFIG_NET_TEAM
+ FILES:=$(LINUX_DIR)/drivers/net/team/team.ko
+ AUTOLOAD:=$(call AutoProbe,team)
+endef
+
+$(eval $(call KernelPackage,team))
+
+define KernelPackage/team-mode-broadcast
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Broadcast mode support
+ DEPENDS:=kmod-team
+ KCONFIG:=CONFIG_NET_TEAM_MODE_BROADCAST
+ FILES:=$(LINUX_DIR)/drivers/net/team/team_mode_broadcast.ko
+ AUTOLOAD:=$(call AutoProbe,team_mode_broadcast)
+endef
+
+$(eval $(call KernelPackage,team-mode-broadcast))
+
+define KernelPackage/team-mode-roundrobin
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Round-robin mode support
+ DEPENDS:=kmod-team
+ KCONFIG:=CONFIG_NET_TEAM_MODE_ROUNDROBIN
+ FILES:=$(LINUX_DIR)/drivers/net/team/team_mode_roundrobin.ko
+ AUTOLOAD:=$(call AutoProbe,team_mode_roundrobin)
+endef
+
+$(eval $(call KernelPackage,team-mode-roundrobin))
+
+define KernelPackage/team-mode-random
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Random mode support
+ DEPENDS:=kmod-team
+ KCONFIG:=CONFIG_NET_TEAM_MODE_RANDOM
+ FILES:=$(LINUX_DIR)/drivers/net/team/team_mode_random.ko
+ AUTOLOAD:=$(call AutoProbe,team_mode_random)
+endef
+
+$(eval $(call KernelPackage,team-mode-random))
+
+define KernelPackage/team-mode-activebackup
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Active-backup mode support
+ DEPENDS:=kmod-team
+ KCONFIG:=CONFIG_NET_TEAM_MODE_ACTIVEBACKUP
+ FILES:=$(LINUX_DIR)/drivers/net/team/team_mode_activebackup.ko
+ AUTOLOAD:=$(call AutoProbe,team_mode_activebackup)
+endef
+
+$(eval $(call KernelPackage,team-mode-activebackup))
+
+define KernelPackage/team-mode-loadbalance
+ SUBMENU:=$(NETWORK_SUPPORT_MENU)
+ TITLE:=Load-balance mode support
+ DEPENDS:=kmod-team
+ KCONFIG:=CONFIG_NET_TEAM_MODE_LOADBALANCE
+ FILES:=$(LINUX_DIR)/drivers/net/team/team_mode_loadbalance.ko
+ AUTOLOAD:=$(call AutoProbe,team_mode_loadbalance)
+endef
+
+$(eval $(call KernelPackage,team-mode-loadbalance))
diff --git a/target/linux/generic/config-6.12 b/target/linux/generic/config-6.12
index 2b96eb286c..fda78b422e 100644
--- a/target/linux/generic/config-6.12
+++ b/target/linux/generic/config-6.12
@@ -4223,6 +4223,11 @@ CONFIG_NET_SOCK_MSG=y
CONFIG_NET_SWITCHDEV=y
# CONFIG_NET_TC_SKB_EXT is not set
# CONFIG_NET_TEAM is not set
+# CONFIG_NET_TEAM_MODE_ACTIVEBACKUP is not set
+# CONFIG_NET_TEAM_MODE_BROADCAST is not set
+# CONFIG_NET_TEAM_MODE_LOADBALANCE is not set
+# CONFIG_NET_TEAM_MODE_RANDOM is not set
+# CONFIG_NET_TEAM_MODE_ROUNDROBIN is not set
# CONFIG_NET_TULIP is not set
# CONFIG_NET_UDP_TUNNEL is not set
CONFIG_NET_VENDOR_3COM=y