From ca123aed63b9cbadab573fc367a0d4e4022a0a02 Mon Sep 17 00:00:00 2001 From: Luiz Angelo Daros de Luca Date: Wed, 29 Apr 2020 17:50:03 -0300 Subject: [PATCH] switchdev-poller: netifd now keep dev down Since 19.07, netifd will not try to bring a device up after someone brought it down. This way, there is no need to rename the device. It also fixes a rename error on 19.07 when the *_down device was being in use (by netifd?). Signed-off-by: Luiz Angelo Daros de Luca --- net/switchdev-poller/Makefile | 2 +- net/switchdev-poller/files/switchdev-poller | 32 +++++++++------------ 2 files changed, 15 insertions(+), 19 deletions(-) diff --git a/net/switchdev-poller/Makefile b/net/switchdev-poller/Makefile index 9ac4b9f67..3d216e0ba 100644 --- a/net/switchdev-poller/Makefile +++ b/net/switchdev-poller/Makefile @@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=switchdev-poller -PKG_VERSION:=1.0.1 +PKG_VERSION:=1.1.0 PKG_RELEASE:=1 PKG_MAINTAINER:=Luiz Angelo Daros de Luca PKG_LICENSE:=GPL-2.0-or-later diff --git a/net/switchdev-poller/files/switchdev-poller b/net/switchdev-poller/files/switchdev-poller index 1e2f79e25..4d68c4595 100755 --- a/net/switchdev-poller/files/switchdev-poller +++ b/net/switchdev-poller/files/switchdev-poller @@ -3,9 +3,9 @@ # https://www.shellcheck.net/wiki/SC2039 -- In POSIX sh, SC2039: In POSIX sh, string replacement is undefined. # https://www.shellcheck.net/wiki/SC2039 -- In POSIX sh, string indexing is undefined. # https://www.shellcheck.net/wiki/SC1091 -- Not following: /lib/functions.sh:... -# Copyright (C) 2018 Luiz Angelo Daros de Luca +# Copyright (C) 2018-2020 Luiz Angelo Daros de Luca # -# Pools switchdev for port changes +# Pools switch for port changes # [ -n "$NICED" ] && NICED=1 exec nice -n 19 "$0" "$@" @@ -107,11 +107,8 @@ config_foreach each_switch_vlan switch_vlan cleanup() { for device2ports in $devices2ports; do device=${device2ports%=*} - ip link show dev ${device}_down >/dev/null 2>&1 && { - echo "Bringing up $device on exit..." - ip link set dev ${device}_down name ${device} - ip link set dev ${device} up >/dev/null 2>&1; - } + echo "Bringing up $device on exit..." + ip link set dev ${device} up >/dev/null 2>&1; done echo "Stopped poller" exit @@ -140,19 +137,18 @@ for device2ports in $devices2ports; do [ $state = up ] && should_be_up=true done - if $should_be_up; then - ip link show dev ${device}_down >/dev/null 2>&1 && { - echo "Bringing up $device..." - ip link set dev ${device}_down name ${device} - ip link set dev ${device} up >/dev/null 2>&1; - } + if ip link show dev ${device} | grep -q "DOWN"; then + current_up=false else - ip link show dev ${device} >/dev/null 2>&1 && { - echo "Bringing down $device..." - ip link set dev ${device} down >/dev/null 2>&1; - ip link set dev ${device} name ${device}_down - } + current_up=true + fi + if $should_be_up && ! $current_up; then + echo "Bringing up $device..." + ip link set dev ${device} up >/dev/null 2>&1; + elif ! $should_be_up && $current_up; then + echo "Bringing down $device..." + ip link set dev ${device} down >/dev/null 2>&1; fi done ) sleep 3