]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
netifd: refactor packet steering init
authorRafał Miłecki <rafal@milecki.pl>
Mon, 13 Feb 2023 08:23:39 +0000 (09:23 +0100)
committerRafał Miłecki <rafal@milecki.pl>
Wed, 15 Feb 2023 13:25:38 +0000 (14:25 +0100)
1. Move setup code to independent script file
2. Add init.d script to allow automatic updates
3. Support platform specific /usr/libexec/platform/packet-steering.sh

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
package/network/config/netifd/Makefile
package/network/config/netifd/files/etc/init.d/packet_steering [new file with mode: 0755]
package/network/config/netifd/files/usr/libexec/network/packet-steering.sh [moved from package/network/config/netifd/files/etc/hotplug.d/net/20-smp-packet-steering with 92% similarity, mode: 0755]

index 500daaa152262f1f979ef3910f316eb46355ba89..f40a990b42d5d798b9647fa6a0b8bd59f73b964a 100644 (file)
@@ -1,7 +1,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=netifd
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL=$(PROJECT_GIT)/project/netifd.git
diff --git a/package/network/config/netifd/files/etc/init.d/packet_steering b/package/network/config/netifd/files/etc/init.d/packet_steering
new file mode 100755 (executable)
index 0000000..9d8f791
--- /dev/null
@@ -0,0 +1,18 @@
+#!/bin/sh /etc/rc.common
+
+START=25
+USE_PROCD=1
+
+start_service() {
+       reload_service
+}
+
+service_triggers() {
+       procd_add_reload_trigger "network"
+       procd_add_reload_trigger "firewall"
+       procd_add_raw_trigger "interface.*" 1000 /etc/init.d/packet_steering reload
+}
+
+reload_service() {
+       /usr/libexec/network/packet-steering.sh
+}
@@ -1,6 +1,4 @@
 #!/bin/sh
-[ "$ACTION" = add ] || exit
-
 NPROCS="$(grep -c "^processor.*:" /proc/cpuinfo)"
 [ "$NPROCS" -gt 1 ] || exit
 
@@ -40,6 +38,11 @@ packet_steering="$(uci get "network.@globals[0].packet_steering")"
 exec 512>/var/lock/smp_tune.lock
 flock 512 || exit 1
 
+[ -e "/usr/libexec/platform/packet-steering.sh" ] && {
+       /usr/libexec/platform/packet-steering.sh
+       exit 0
+}
+
 for dev in /sys/class/net/*; do
        [ -d "$dev" ] || continue