lede-packages-rs

git clone git://archive.git.mtrnord.blog/MTRNord/lede-packages-rs.git
Log | Files | Refs | README | LICENSE

commit 1b5afe8f464bae8fa38317548ec95fe303334c0d
parent fd62435cd42ef6ef431109ca3f15b47a50df214a
Author: Sebastian Moeller <moeller0@gmx.de>
Date:   Thu,  5 Mar 2015 10:42:26 +0100

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>

Diffstat:
Mnet/sqm-scripts/Makefile | 2+-
Mnet/sqm-scripts/files/etc/hotplug.d/iface/11-sqm | 4----
Mnet/sqm-scripts/files/usr/lib/sqm/run.sh | 10+++++++++-
3 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/net/sqm-scripts/Makefile b/net/sqm-scripts/Makefile @@ -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) diff --git a/net/sqm-scripts/files/etc/hotplug.d/iface/11-sqm b/net/sqm-scripts/files/etc/hotplug.d/iface/11-sqm @@ -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} - diff --git a/net/sqm-scripts/files/usr/lib/sqm/run.sh b/net/sqm-scripts/files/usr/lib/sqm/run.sh @@ -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}; } }