From 8edcd772db0086898b09d73d359bdc9d96b241ba Mon Sep 17 00:00:00 2001 From: Til Kaiser Date: Mon, 16 Dec 2024 19:26:20 +0100 Subject: [PATCH] kernel: modules: add Mellanox Spectrum hotplug renaming script Currently, the interfaces of the Mellanox Spectrum Switch QSFP ports are all labeled eth*. Their order doesn't match the faceplate and is different for each model. They could be named during boot, but this isn't sufficient because they support port splitting. After such ports are split, their port naming begins again with eth*, and the same is true after they are unsplit again. A hotplug script is used here that reads from the sysfs file phys_port_name, which contains p1, p2, p3, ... for unsplit ports and p1s0, p1s1, p1s2 for split ports. Signed-off-by: Til Kaiser Link: https://github.com/openwrt/openwrt/pull/17251 Signed-off-by: Robert Marko --- .../linux/files/hotplug-mlxsw-spectrum-port-names.sh | 10 ++++++++++ package/kernel/linux/modules/netdevices.mk | 7 +++++++ 2 files changed, 17 insertions(+) create mode 100644 package/kernel/linux/files/hotplug-mlxsw-spectrum-port-names.sh diff --git a/package/kernel/linux/files/hotplug-mlxsw-spectrum-port-names.sh b/package/kernel/linux/files/hotplug-mlxsw-spectrum-port-names.sh new file mode 100644 index 0000000000..7637725f67 --- /dev/null +++ b/package/kernel/linux/files/hotplug-mlxsw-spectrum-port-names.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +if [ "$ACTION" = "add" ]; then + read -r board_name < "/tmp/sysinfo/board_name" + + if [[ "$board_name" = "mellanox-technologies-ltd-msn*" ]]; then + read -r port_name < "/sys/class/net/$DEVICENAME/phys_port_name" + [ -n "$port_name" ] && ip link set "$DEVICENAME" name "sw$port_name" + fi +fi diff --git a/package/kernel/linux/modules/netdevices.mk b/package/kernel/linux/modules/netdevices.mk index 0aed1655a9..522e76d180 100644 --- a/package/kernel/linux/modules/netdevices.mk +++ b/package/kernel/linux/modules/netdevices.mk @@ -1972,6 +1972,13 @@ define KernelPackage/mlxsw-spectrum/description Spectrum/Spectrum-2/Spectrum-3/Spectrum-4 Ethernet Switch ASICs. endef +define KernelPackage/mlxsw-spectrum/install + $(INSTALL_DIR) $(1)/etc/hotplug.d/net + $(INSTALL_DATA) \ + ./files/hotplug-mlxsw-spectrum-port-names.sh \ + $(1)/etc/hotplug.d/net/10-mlxsw-spectrum-port-names +endef + $(eval $(call KernelPackage,mlxsw-spectrum)) -- 2.30.2