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 <mail@tk154.de>
Link: https://github.com/openwrt/openwrt/pull/17251
Signed-off-by: Robert Marko <robimarko@gmail.com>
This commit is contained in:
Til Kaiser 2024-12-16 19:26:20 +01:00 committed by Robert Marko
parent f22f533ebc
commit 8edcd772db
2 changed files with 17 additions and 0 deletions

View File

@ -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

View File

@ -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))