From: Felix Fietkau Date: Thu, 28 Aug 2025 08:42:43 +0000 (+0200) Subject: wifi-scripts: allow configuring per-radio macaddr in shared/mlo wifi-iface X-Git-Tag: v25.12.0-rc1~1467 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f43bf55b412dbc89c30eea27fdf127b2ca4eb110;p=thirdparty%2Fopenwrt.git wifi-scripts: allow configuring per-radio macaddr in shared/mlo wifi-iface When a wifi-iface section is used either for multiple vifs or MLD links, make it possible to configure the per-radio/link macaddr. When MLO is enabled, the main macaddr is used for the MLD interface. Signed-off-by: Felix Fietkau --- diff --git a/package/network/config/wifi-scripts/files/lib/netifd/wireless.uc b/package/network/config/wifi-scripts/files/lib/netifd/wireless.uc index 2103c9c3691..1180b723475 100644 --- a/package/network/config/wifi-scripts/files/lib/netifd/wireless.uc +++ b/package/network/config/wifi-scripts/files/lib/netifd/wireless.uc @@ -128,6 +128,17 @@ function config_init(uci) config.mode = "link"; config.radios = radios; + if (dev_name != dev_names[0]) + delete config.macaddr; + if (dev_name != wdev.mlo_name && config.radio_macaddr) { + let idx = index(dev_names, dev_name); + if (mlo_vif) + idx--; + let macaddr = idx >= 0 ? config.radio_macaddr[idx] : null; + if (macaddr) + config.macaddr = macaddr; + } + let vif = { name, config, device: dev_name, @@ -310,6 +321,7 @@ const default_config_attr = { ...network_config_attr, device: TYPE_STRING, mode: TYPE_STRING, + radio_macaddr: TYPE_ARRAY, }, station: { iface: TYPE_STRING,