I’m using ROS 7.15.3 and have a CAPsMAN setup with a RB3011 and some hapAX2 CAPs.
Now I need to configure slave devices for some of the wifi interfaces on the CAPs.
I do this by just create provisioning rules on the CAPsMAN - and this works great.
The bad thing with that is, that the names of the slave devices change (on the CAP) at every shutdown/reboot.
Sometimes the are called just wifi7, wifi8, … , sometimes they are called wifi12, wifi22, … (where wifi1 and wifi2 are the names oft the master-interfaces).
I wouldn’t bother, but I need to put the names of the interfaces into the bridge configuration on the CAP, because I need to assign a certain VLAN ID to that interface.
However, because the name changes with every reboot, the interface now has a different name (it is called wifi6 now):
/interface/wifi/pri
Flags: M - MASTER; D - DYNAMIC; B - BOUND; R - RUNNING
Columns: NAME, MASTER-INTERFACE, CONFIGURATION.MODE
# NAME MASTER-INTERFACE CONFIGURATION.MODE
;;; managed by CAPsMAN
;;; mode: AP, SSID: hugo
0 DBR wifi6 wifi2
In the bridge I now have an orphaned entry in the bridge and the virtual (slave) interface no longer works as expected.
I tried some workarounds, e.g. creating a slave-Interface before starting CAPsMAN, but that does not work. CAPsMAN always creates a new interface … with an odd name …
In order not to make the whole thing too confusing, here are the configs for the 2GHz band. There are no slaves for the 5GHz band - that’s why I left it out.
Do you also need the configs for the VLAN bridges?
Tanks for your update!
I’m using VLANs all the way but on the wifi master interfaces VLAN assignment is done dynamically by RADIUS/UserManager. To get this working I needed to put the wifi Interfaces into the bridge on the CAP and assign all needed VLANs (tagged) to that bridge ports. A static VLAN id on that interfaces is neither helpful nor needed. On the slave interfaces I don’t need dynamic VLANs, therefore a static VLAN id was perfect.
I’d rather assign a datapath to the slave interfaces on the CAP, but they are created at runtime … with a different name each time