From 3040ab999b422fe8932232766cb9b99143cdae8d Mon Sep 17 00:00:00 2001 From: =?utf8?q?Daniel=20Weism=C3=BCller?= Date: Wed, 7 Apr 2021 16:32:15 +0200 Subject: [PATCH] udev: Fix renaming bridged interfaces Since using random interface names is always trouble, we will order all slave interfaces and number them in order as they appear in the SLAVES variable. Signed-off-by: Michael Tremer --- config/udev/network-hotplug-rename | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/config/udev/network-hotplug-rename b/config/udev/network-hotplug-rename index 71a25c317d..8807e0ab87 100644 --- a/config/udev/network-hotplug-rename +++ b/config/udev/network-hotplug-rename @@ -58,18 +58,25 @@ for zone in ${ZONES}; do address="${zone}_MACADDR" device="${zone}_DEV" mode="${zone}_MODE" + slaves="${zone}_SLAVES" - # Skip if address or device is unset - [ -n "${!address}" -a -n "${!device}" ] || continue - - # Compare MAC addresses - [ "${ADDRESS}" = "${!address,,}" ] || continue + # Return DEV when the address matches + if [ "${!address,,}" = "${ADDRESS,,}" ]; then + echo "${!device}" + exit 0 + fi # If a matching interface has been found we will # print the name to which udev will rename it. case "${!mode}" in bridge) - echo "${!device%0}phys0" + counter=0 + for slave in ${!slaves}; do + if [ "${slave,,}" = "${ADDRESS,,}" ]; then + echo "${!device}p${counter}" + fi + (( counter += 1 )) + done ;; macvtap) @@ -81,13 +88,7 @@ for zone in ${ZONES}; do echo "${!device%0}phys0" fi ;; - - *) - echo "${!device}" - ;; esac - - exit 0 done # If we get here we have not found a matching device, -- 2.39.5