From: Tony Ambardar <itugrok@yahoo.com>
Date: Tue, 2 Mar 2021 04:59:04 +0000 (-0800)
Subject: kernel/modules: relocate teql hotplug from iproute2 to kmod-sched
X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=863ce4f15f74a674f01ab47f445b362c113b113b;p=openwrt%2Fstaging%2Fzorun.git

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>
---

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))
 
 
diff --git a/package/network/utils/iproute2/Makefile b/package/network/utils/iproute2/Makefile
index 440e33069b..a20e81c75a 100644
--- a/package/network/utils/iproute2/Makefile
+++ b/package/network/utils/iproute2/Makefile
@@ -166,8 +166,6 @@ endef
 define Package/tc/install
 	$(INSTALL_DIR) $(1)/usr/sbin
 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/tc/tc $(1)/usr/sbin/
-	$(INSTALL_DIR) $(1)/etc/hotplug.d/iface
-	$(INSTALL_BIN) ./files/15-teql $(1)/etc/hotplug.d/iface/
 ifeq ($(SHARED_LIBS),y)
 	$(INSTALL_DIR) $(1)/usr/lib/tc
 	$(CP) $(PKG_BUILD_DIR)/tc/*.so $(1)/usr/lib/tc
diff --git a/package/network/utils/iproute2/files/15-teql b/package/network/utils/iproute2/files/15-teql
deleted file mode 100644
index a0c0e503aa..0000000000
--- a/package/network/utils/iproute2/files/15-teql
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/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