summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau2025-08-28 08:42:43 +0000
committerFelix Fietkau2025-08-28 08:42:44 +0000
commitf43bf55b412dbc89c30eea27fdf127b2ca4eb110 (patch)
tree4e4ecef3ffd636238e83e41c0862fe467fa85e01
parent6fbf6d0cfd080230ce4ca72605580b0c188db8a1 (diff)
downloadopenwrt-f43bf55b412dbc89c30eea27fdf127b2ca4eb110.tar.gz
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 <nbd@nbd.name>
-rw-r--r--package/network/config/wifi-scripts/files/lib/netifd/wireless.uc12
1 files changed, 12 insertions, 0 deletions
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 2103c9c369..1180b72347 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,