CapsMan datapath interfaces put not to bridge

Hello,

/interface wifi channel
add band=2ghz-g disabled=no name=channel1-2ghz width=20mhz
add band=5ghz-a disabled=no name=channel2-5ghz-a width=20mhz
/interface wifi datapath
add bridge=bridge2-ext bridge-horizon=1 client-isolation=yes disabled=no name=datapath1
/interface wifi security
add authentication-types="" disabled=no ft=no name=sec1
/interface wifi configuration
add channel=channel1-2ghz country=Germany datapath=datapath1 disabled=no hide-ssid=no mode=ap name=cfg1-2ghz security=sec1 security.ft=yes ssid=test2
add channel=channel2-5ghz-a country=Germany datapath=datapath1 disabled=no hide-ssid=no mode=ap name=cfg2-5ghz security=sec1 security.ft=yes ssid=test2
/interface wifi capsman
set enabled=yes interfaces=bridge1-int package-path="" require-peer-certificate=no upgrade-policy=none
/interface wifi provisioning
add action=create-dynamic-enabled disabled=no master-configuration=cfg1-2ghz name-format=%I-2ghz-ax-g-n supported-bands=2ghz-ax,2ghz-g,2ghz-n
add action=create-dynamic-enabled disabled=no master-configuration=cfg2-5ghz name-format=%I-5ghz-a-an-ac-ax supported-bands=5ghz-a,5ghz-n,5ghz-ac,5ghz-ax

The Interfaces whould be provisioned perfectly.
but the CAP-Interfaces are put not to bridge “bridge2-ext”.
Why?
On the Client-CAP Antennas i have nothing set as datapath, so i whould like to forward the Data to/from CapsMan.

thanks
Christian

Can you share the complete config?
What does the bridge-horizon do (for you)?

It’s a test:

CapsMan:

/interface bridge
add name=bridge1-int protocol-mode=none
add name=bridge2-ext protocol-mode=none
/interface wifi channel
add band=2ghz-g disabled=no name=channel1-2ghz-g-20mhz width=20mhz
add band=5ghz-a disabled=no name=channel2-5ghz-a-20-mhz width=20mhz
add band=2ghz-ax disabled=no name=channel3-2ghz-ax-20mhz width=20mhz
/interface wifi datapath
add bridge=bridge2-ext bridge-horizon=1 client-isolation=yes disabled=no name=datapath1-master
add bridge=bridge2-ext bridge-horizon=1 client-isolation=yes disabled=no name=datapath2-slave1
/interface wifi security
add authentication-types="" disabled=no ft=no name=sec1
/interface wifi configuration
add channel=channel1-2ghz-g-20mhz country=Germany datapath=datapath1-master disabled=no hide-ssid=no mode=ap name=cfg1-2ghz-g-20mhz security=sec1 security.ft=yes ssid=test2-g
add channel=channel2-5ghz-a-20-mhz country=Germany datapath=datapath1-master disabled=no hide-ssid=no mode=ap name=cfg2-5ghz-a-20mhz security=sec1 security.ft=yes ssid=test5-a
add channel=channel3-2ghz-ax-20mhz country=Germany datapath=datapath2-slave1 disabled=no hide-ssid=no mode=ap name=cfg3-2ghz-ax-20mhz security=sec1 security.ft=yes ssid=test2-ax
/interface wireless security-profiles
set [ find default=yes ] supplicant-identity=MikroTik
/ip hotspot profile
set [ find default=yes ] html-directory=hotspot
/ip pool
add name=dhcp_pool0 ranges=10.10.1.2-10.10.1.254
/caps-man manager interface
set [ find default=yes ] forbid=yes
add disabled=no interface=bridge1-int
/interface bridge port
add bridge=bridge1-int interface=ether1
/interface wifi access-list
add action=accept client-isolation=yes disabled=no interface=any
/interface wifi capsman
set enabled=yes interfaces=bridge1-int package-path="" require-peer-certificate=no upgrade-policy=none
/interface wifi provisioning
add action=create-dynamic-enabled disabled=no master-configuration=cfg1-2ghz-g-20mhz name-format=%I-2ghz-ax-g-n slave-configurations=cfg3-2ghz-ax-20mhz supported-bands=2ghz-ax,2ghz-g,2ghz-n
add action=create-dynamic-enabled disabled=no master-configuration=cfg2-5ghz-a-20mhz name-format=%I-5ghz-a-an-ac-ax supported-bands=5ghz-a,5ghz-n,5ghz-ac,5ghz-ax
/ip address
add address=10.10.1.1/24 interface=*8 network=10.10.1.0
/ip dhcp-server
add address-pool=dhcp_pool0 interface=*8 name=dhcp1
/ip dhcp-server network
add address=10.10.1.0/24 gateway=10.10.1.1
/system note
set show-at-login=no

Bridge Horizon should forbid communication between CAP-Antennas and the Clients on this CAP-Antennas.
For HoSpot…

CAP-Antenna:

/interface bridge
add admin-mac=48:A9:8A:39:1B:BB auto-mac=no comment=defconf name=bridgeLocal protocol-mode=none
/interface wifi
# managed by CAPsMAN
# mode: AP, SSID: test5-a, channel: 5500/a
set [ find default-name=wifi1 ] configuration.manager=capsman .mode=ap disabled=no
# managed by CAPsMAN
# mode: AP, SSID: test2-g, channel: 2432/g
set [ find default-name=wifi2 ] configuration.manager=capsman .mode=ap disabled=no
/interface bridge port
add bridge=bridgeLocal comment=defconf interface=ether1
add bridge=bridgeLocal comment=defconf interface=ether2
add bridge=bridgeLocal comment=defconf interface=ether3
add bridge=bridgeLocal comment=defconf interface=ether4
/interface wifi cap
set discovery-interfaces=bridgeLocal enabled=yes
/ip dhcp-client
add comment=defconf interface=bridgeLocal
/system identity
set name=TEST-CAP1
/system note
set show-at-login=no

After many tests i think the new WiFi CapsMan forwarding ala https://help.mikrotik.com/docs/pages/viewpage.action?pageId=1409149#APController(CAPsMAN)-ManagerForwardingMode is not working or not implement…

What you think? I can not set

There are the following datapath settings:

    local-forwarding -- controls forwarding mode
    openflow-switch -- OpenFlow switch to add interface to, as port when enabled
    vlan-mode -- VLAN tagging mode specifies if VLAN tag should be assigned to interface (causes all received data to get tagged with VLAN tag and allows interface to only send out data tagged with given tag)

Works it only with VLAN?

Thats correct, WiFi CAPsMAN does not implement forwarding… It was decreasing throughput anyway… Nothing you want to use…

Hello,

I tried to set the settings as best as I could.
Nevertheless, the new CapsMan is a little poor or, to say the least, immature.

  1. Why not a new CapsMan (even if wifi) that can also operate the old wireless interfaces? Why 2 CapsMan? In the not too distant future there will be a lot more qcom and ax anyway?

  2. Why can’t “datapath”, “horizon” and “forbid-client-communication” be set in CapsMan? These settings have no effect there.

  3. If the CapsMan provisions the Cap antenna, why can’t I freely set the bridge name in the Caps-Man data path (for configuration) so that at least the master or slave interface on the Cap antenna can be installed automatically to place the bridge that was previously created there (the prerequisite is of course that the bridge created on the CAP antenna matches the freely entered name on the CapsMan (datapath). This would also work without a VLAN for VXLAN or VPLS User.

  4. VLAN currently seems to me to be the only way to separate traffic from 2 SSIDs on one (1!) CAP interface?!

I think it should be possible to shift as many settings as possible to the CapsMan, even for slightly more complex setups

All in all, I’m missing instructions for the latest CapsMan at help.mikrotik.com, which shows exactly what is obviously not possible (yet) with the new CapsMan, especially with regard to slave interfaces and several SSIDs on one wifi interface and the datapath restriction (bridge, horizon, …)

Thing is, that you should never use multiple bridge interfaces to separate traffic… and because it’s not working as you imagine it should, you think that it’s broken…

Sorry but your procedure is wrong…

@christian “/capsman” is for legacy wireless. The old capsman. That’s why none of your settings under “/capsman” show/have any effect.

This doc refers to legacy capsman for wireless drivers. You want to provision/control AX devices, so all your configuration is done below “/interface/wifi/”.

You’re right. For VLAN Users. But no for VPLS XVLAN, EoIP and other Users…

@infabo
i write about the new CapsMan (Wifi). I have found the new Docs.
https://help.mikrotik.com/docs/display/ROS/WiFi#WiFi-WiFiCAPsMAN
Thank Youy.

then you possibly seen

“WiFi CAPsMAN only passes wireless configuration to the CAP, all forwarding decisions are left to the CAP itself - there is no CAPsMAN forwarding mode.”
https://help.mikrotik.com/docs/display/ROS/WiFi#:~:text=WiFi%20CAPsMAN%20only%20passes%20wireless%20configuration%20to%20the%20CAP%2C%20all%20forwarding%20decisions%20are%20left%20to%20the%20CAP%20itself%20-%20there%20is%20no%20CAPsMAN%20forwarding%20mode.

I loved the CAPsMAN forwarding mode… why it’s not available anymore in wifi-qcom and wifi-qcom-ac?

Could be it’s due to the fact that capsman forwarding puts quite some burden on both CAP device (which is manegeable by using faster CPU) and CAPsMAN device (less manageable if there’s large number of CAPs involved), reducing CAP wireless performance. The benefits (in certain use cases thex were invaluable) are probably too marginal for MT po put in necessary effort to (re)implement it with wifi drivers.

Back to OPs original question: why are ports not added to bridge? It works for local interfaces but not for caps. On CAP the bridge is always named “bridgeLocal” no matter what and wifi ports are not added (not on CAPsMAN bridge neither on the CAP local bridge).

I’m not sure if I follow you correctly, but they are added just fine… Thing is, that the bridge is always local, you can not access/see bridges on other devices. So if you create a bridge on CAP, it is accesible only from CAP itself, and vice versa. That applies for datapath too, datapath.bridge is local option and only valid for master interfaces.

Even if the docs say

Virtual (‘slave’) interfaces are by default added to the same bridge, if any, as the corresponding master interface. Master interfaces are not by default added to any bridge.

and from “by default” you can say that this behavior can be altered, but it’s not documented (or I wasn’t able to find it).

EDIT:
it’s done by slaves-datapath in /interface/wifi/cap menu.
dynamicCap4.png
:EDIT

If you create a bridge on CAP, you can then set datapath.bridge on CAP’s master interface and wifi interfaces are then added to the bridge as dynamic ports. It works fine…
dynamicCap.png

I can’t follow. You’re telling me: datapath has no effect in a capsman setup???

Nope, datapath has effect in CAPsMAN setup. You can use it for VLAN assignment. Just the datapath.bridge is local setting.

CAPsMAN device has no means to know what bridge/s exists on CAPs.

If you are setting CAP in CAPsMAN environment you must set 3 things on the CAP itself: manager, mode and bridge

CAP

set [ find default-name=wifi1 ] configuration.manager=capsman .mode=ap datapath.bridge=bridge1 disabled=no
set [ find default-name=wifi2 ] configuration.manager=capsman .mode=ap datapath.bridge=bridge1 disabled=no

CAPsMAN

/interface wifi datapath
add disabled=no name=datapath111 vlan-id=111
add disabled=no name=datapath222 vlan-id=222

and the other datapath properties? client-isolation? interface-list? These seem to have no effect either.

Mikrotik should describe their CAPsMAN concept in depth. It is not enough to have some basic configuration examples and a description of each cap/CAPsMAN configuration property on its own in docs. Nobody knows how this all plays together. And it is mega frustrating to go through trial and error just to find out how things maybe work.
As for example there are some people who manually trigger provision after a configuration profile change. Yeah, I understand why someone may get this illusion. It is described nowhere that configs are auto-provisioned on change. The whole topic of what works, what not and what wifi CAPsMAN actually covers must be outlined.

CAPsMAN is a Blackbox.

They do work :sunglasses:

dynamicCap2.png
Note that this is interface on CAPsMAN side… It’s same as if you want to change frequency, it’s done on CAPsMAN…


Interface was dynamically added to the list (I’m not using this, just test for you..)
dynamicCap3.png

And just to correct myself, you must set two things when prepairing CAP for CAPsMAN environment: manager and bridge. Mode defaults to AP, so it can be omitted.


If we look at “Reset to CAPS mode”

:local brName  "bridgeLocal";

:if ($usingWifiPack) do={
:local addDatapath [:parse "/interface $wirelessMenu datapath
add comment=\"defconf\" name=capdp disabled=no bridge=$brName"]
[$addDatapath]
}

if ($usingWifiPack) do={
:set setCap [:parse ":foreach i in=[/interface $wirelessMenu find] do={
/interface $wirelessMenu set \$i configuration.manager=capsman datapath=capdp
}
/interface $wirelessMenu cap
set enabled=yes discovery-interfaces=$brName slaves-datapath=capdp"]
}

It’s exactly what they do, with just small difference. They are creating datapath configuration profile with single setting: datapath.bridge and then appling this profile to interfaces, instead of applying datapath.bridge directly to interface, but the outcome is same.

And I think that they are using “bridgeLocal” to point out, that it exists solely on the CAP itself.

Well, then set “datapath.bridge = bridge” as well. and then show me your winbox window again. On CLI it prints for me, the cap-wifi3 is “datapath.bridge=bridge”. And we all know, this version of CAPsMAN has no local forwarding. So what the heck is it doing?