Browse Source

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 <luizluca@gmail.com>
lilik-openwrt-22.03
Luiz Angelo Daros de Luca 5 years ago
parent
commit
ca123aed63
2 changed files with 15 additions and 19 deletions
  1. +1
    -1
      net/switchdev-poller/Makefile
  2. +14
    -18
      net/switchdev-poller/files/switchdev-poller

+ 1
- 1
net/switchdev-poller/Makefile View File

@ -7,7 +7,7 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=switchdev-poller PKG_NAME:=switchdev-poller
PKG_VERSION:=1.0.1
PKG_VERSION:=1.1.0
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_MAINTAINER:=Luiz Angelo Daros de Luca <luizluca@gmail.com> PKG_MAINTAINER:=Luiz Angelo Daros de Luca <luizluca@gmail.com>
PKG_LICENSE:=GPL-2.0-or-later PKG_LICENSE:=GPL-2.0-or-later


+ 14
- 18
net/switchdev-poller/files/switchdev-poller View File

@ -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, 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/SC2039 -- In POSIX sh, string indexing is undefined.
# https://www.shellcheck.net/wiki/SC1091 -- Not following: /lib/functions.sh:... # https://www.shellcheck.net/wiki/SC1091 -- Not following: /lib/functions.sh:...
# Copyright (C) 2018 Luiz Angelo Daros de Luca <luizluca@gmail.com>
# Copyright (C) 2018-2020 Luiz Angelo Daros de Luca <luizluca@gmail.com>
# #
# Pools switchdev for port changes
# Pools switch for port changes
# #
[ -n "$NICED" ] && NICED=1 exec nice -n 19 "$0" "$@" [ -n "$NICED" ] && NICED=1 exec nice -n 19 "$0" "$@"
@ -107,11 +107,8 @@ config_foreach each_switch_vlan switch_vlan
cleanup() { cleanup() {
for device2ports in $devices2ports; do for device2ports in $devices2ports; do
device=${device2ports%=*} 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 done
echo "Stopped poller" echo "Stopped poller"
exit exit
@ -140,19 +137,18 @@ for device2ports in $devices2ports; do
[ $state = up ] && should_be_up=true [ $state = up ] && should_be_up=true
done 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 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 fi
done ) done )
sleep 3 sleep 3


Loading…
Cancel
Save