From: Tony Ambardar 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.lede-project.org./?a=commitdiff_plain;h=0d5e308664ee2ee449e19d10d19427a4ea0dae4b;p=openwrt%2Fstaging%2Fadrian.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 (cherry picked from commit 863ce4f15f74a674f01ab47f445b362c113b113b) --- 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