From 087a20011bfb421b99a10fce5092b42026eb8218 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Daniel=20Weism=C3=BCller?= Date: Wed, 7 Apr 2021 14:56:36 +0000 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.2