aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel
diff options
context:
space:
mode:
authorTony Ambardar <itugrok@yahoo.com>2021-03-01 20:59:04 -0800
committerHauke Mehrtens <hauke@hauke-m.de>2021-03-19 15:30:01 +0100
commit863ce4f15f74a674f01ab47f445b362c113b113b (patch)
tree4fd2023702943403bb7836cde801c6530af693e4 /package/kernel
parent10ffefe60299637bc592ec4ef0dde93e0e2e8344 (diff)
downloadupstream-863ce4f15f74a674f01ab47f445b362c113b113b.tar.gz
upstream-863ce4f15f74a674f01ab47f445b362c113b113b.tar.bz2
upstream-863ce4f15f74a674f01ab47f445b362c113b113b.zip
kernel/modules: relocate teql hotplug from iproute2 to kmod-sched
The link equalizer sch_teql.ko of package kmod-sched relies on a hotplug script historically included in iproute2's tc package. In previous discussion [1], consensus was the hotplug script is best located together with the module in kmod-sched, but this change was deferred at the time. Relocate the hotplug script now. This change also simplifies adding a tc variant for minimal size with reduced functionality. [1] https://github.com/openwrt/openwrt/pull/1627#issuecomment-447923636 Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
Diffstat (limited to 'package/kernel')
-rw-r--r--package/kernel/linux/files/hotplug-sched-teql.sh23
-rw-r--r--package/kernel/linux/modules/netsupport.mk7
2 files changed, 30 insertions, 0 deletions
diff --git a/package/kernel/linux/files/hotplug-sched-teql.sh b/package/kernel/linux/files/hotplug-sched-teql.sh
new file mode 100644
index 0000000000..a0c0e503aa
--- /dev/null
+++ b/package/kernel/linux/files/hotplug-sched-teql.sh
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+. /lib/functions.sh
+
+if [ "$ACTION" != "ifup" ]; then
+ exit
+fi
+
+config_load network
+
+config_get teql $INTERFACE teql
+
+if [ "$teql" != "" ]; then
+ logger Adding device $DEVICE to TEQL master $teql
+ insmod sch_teql
+ tc qdisc add dev $DEVICE root $teql
+
+ # The kernel doesn't let us bring it up until it has at least one
+ # slave. So bring it up now, if it isn't already.
+ if ! cat /sys/class/net/$teql/carrier &>/dev/null; then
+ ifup $teql &
+ fi
+fi
diff --git a/package/kernel/linux/modules/netsupport.mk b/package/kernel/linux/modules/netsupport.mk
index 6bc8ba664a..f14928e18e 100644
--- a/package/kernel/linux/modules/netsupport.mk
+++ b/package/kernel/linux/modules/netsupport.mk
@@ -916,6 +916,13 @@ define KernelPackage/sched/description
Extra kernel schedulers modules for IP traffic
endef
+SCHED_TEQL_HOTPLUG:=hotplug-sched-teql.sh
+
+define KernelPackage/sched/install
+ $(INSTALL_DIR) $(1)/etc/hotplug.d/iface
+ $(INSTALL_DATA) ./files/$(SCHED_TEQL_HOTPLUG) $(1)/etc/hotplug.d/iface/15-teql
+endef
+
$(eval $(call KernelPackage,sched))