diff --git a/qca-nss-ecm/Makefile b/qca-nss-ecm/Makefile index f49c7ff..508bfd4 100644 --- a/qca-nss-ecm/Makefile +++ b/qca-nss-ecm/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=qca-nss-ecm -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_SOURCE_URL:=https://git.codelinaro.org/clo/qsdk/oss/lklm/qca-nss-ecm.git PKG_SOURCE_PROTO:=git diff --git a/qca-nss-ecm/files/qca-nss-ecm.init b/qca-nss-ecm/files/qca-nss-ecm.init index a4b8ace..28505aa 100644 --- a/qca-nss-ecm/files/qca-nss-ecm.init +++ b/qca-nss-ecm/files/qca-nss-ecm.init @@ -20,6 +20,7 @@ # at boot. START=26 +USE_PROCD=1 sysctl_update() { local name value file @@ -58,6 +59,17 @@ get_front_end_mode() { esac } +disable_packet_steering() { + uci -q set network.globals.packet_steering=0 && uci commit network.globals.packet_steering + uci -q del network.globals.steering_flows && uci commit network.globals.steering_flows + + if [ -e "/usr/libexec/platform/packet-steering.sh" ]; then + /usr/libexec/platform/packet-steering.sh 0 + else + /usr/libexec/network/packet-steering.uc -l 0 0 + fi +} + disable_bridge_filtering() { sysctl_update net.bridge.bridge-nf-call-arptables 0 sysctl_update net.bridge.bridge-nf-call-iptables 0 @@ -136,9 +148,22 @@ unload_ecm() { fi } -start() { +service_triggers() { + procd_add_reload_trigger "network" + procd_add_reload_trigger "firewall" + procd_add_reload_trigger "packet_steering" + procd_add_raw_trigger "interface.*" 1000 /etc/init.d/qca-nss-ecm reload +} + +reload_service() { + start_service +} + +start_service() { load_ecm + disable_packet_steering + # Only enable bridge filtering if using deprecated fw3 if [ ! -r /sbin/fw4 ]; then enable_bridge_filtering @@ -154,7 +179,7 @@ start() { fi } -stop() { +stop_service() { # If ECM is already not loaded, just return if [ ! -d /sys/module/ecm ]; then return