sqm-scripts: make run.sh ignore spurious incomplete hotplug ifups

During system start up pppoe devices seem to receice ifup events before
the interface actually exists. This commit makes sqm's run.sh script
test whether the sys files for an interface exist before actually trying
to start an SQM instance on an interface. This seems to nicely avoid
starting on an not fully established pppoe interface and avoids a number
of error messages during startup.

In addition, debug logging is disabled.

Signed-off-by: Sebastian Moeller <moeller0@gmx.de>
This commit is contained in:
Sebastian Moeller 2015-03-05 10:42:26 +01:00 committed by Toke Høiland-Jørgensen
parent fd62435cd4
commit 1b5afe8f46
3 changed files with 10 additions and 6 deletions

View file

@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=sqm-scripts
PKG_VERSION:=8
PKG_RELEASE:=1
PKG_RELEASE:=2
PKG_LICENSE:=GPLv2
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)

View file

@ -1,7 +1,3 @@
#!/bin/sh
# teach SQM to re-enable itself when an interface re-appears
logger -t SQM -s "hotplug on interface: ${DEVICE} action: ${ACTION}"
[ "$ACTION" = ifup ] && /usr/lib/sqm/run.sh interface ${DEVICE}

View file

@ -23,7 +23,7 @@ case ${1} in
;;
interface)
START_ON_IF=$2 # only process this interface
logger -t SQM -s "Re/starting sqm on interface ${START_ON_IF}"
logger -t SQM -s "Trying to re-start SQM on interface ${START_ON_IF}"
# TODO if $2 is empty just bail...
if [ -z ${START_ON_IF} ] ;
then
@ -108,6 +108,14 @@ run_simple_qos() {
logger -t SQM -s "${0} SQM qdiscs on ${IFACE} removed"
return 0
fi
# in case of spurious hotplug events, try double check whether the interface is really up
if [ ! -d /sys/class/net/${IFACE} ] ;
then
echo "${IFACE} does currently not exist, not even trying to start SQM on nothing." > /dev/kmsg
logger -t SQM -s "${IFACE} does currently not exist, not even trying to start SQM on nothing."
return 0
fi
logger -t SQM -s "${0} Queue Setup Script: ${SCRIPT}"
[ -x "$SCRIPT" ] && { $SCRIPT ; touch ${ACTIVE_STATE_FILE_FQN}; }
}