Skip to content

CAPsMAN Configuration Reference

This document is a detailed parameter reference for both CAPsMAN v2 (RouterOS 7 WiFi package) and legacy CAPsMAN v1 (RouterOS 6). For architecture overview and getting-started examples, see the CAPsMAN Architecture and Provisioning guide.

All CAPsMAN v2 commands live under /interface/wifi/....

/interface/wifi/capsman set enabled=yes
ParameterValuesDescription
enabledyes, noEnables or disables the CAPsMAN controller
certificateauto, name, noneCertificate for DTLS; auto generates self-signed
require-peer-certificateyes, noRequire DTLS certificate from CAPs
package-pathpathPath for RouterOS package upgrades pushed to CAPs
upgrade-policynone, require-same-version, suggest-same-upgradeCAP firmware upgrade behavior

Path: /interface/wifi/channel

/interface/wifi/channel add \
name=5GHz-80 \
band=5ghz-ax \
frequency=5180,5200,5220,5240 \
width=20/40/80mhz \
tx-power=20
ParameterValuesDescription
bandSee table belowWiFi band and generation
frequencyMHz list or autoChannel center frequencies; auto lets RouterOS pick
width20mhz, 20/40mhz, 20/40/80mhz, 20/40/80/160mhzChannel width (bonding)
tx-powerinteger (dBm)Transmit power; regulatory limits still apply
tx-chains0, 1, 2, 3…Transmit antenna chain indices
rx-chains0, 1, 2, 3…Receive antenna chain indices
skip-dfs-channelsdisabled, all, indoor-onlyWhether to skip DFS channels during auto-selection
reselect-intervaltime (e.g., 1h)How often to recheck channel selection
secondary-frequencyMHz or disabledSecondary channel for 80+80 MHz operation

Valid band values:

ValueStandardNotes
2ghz-g802.11g2.4 GHz only
2ghz-n802.11n2.4 GHz
2ghz-ax802.11ax (Wi-Fi 6)2.4 GHz
5ghz-a802.11a5 GHz only
5ghz-ac802.11ac (Wi-Fi 5)5 GHz
5ghz-an802.11n5 GHz
5ghz-ax802.11ax (Wi-Fi 6)5 GHz

When frequency=auto, RouterOS scans available channels and selects the least-congested one within the allowed set:

# Let RouterOS choose the best 5 GHz channel, skip DFS
/interface/wifi/channel add name=5GHz-auto \
band=5ghz-ax \
frequency=auto \
width=20/40/80mhz \
skip-dfs-channels=all

Auto-selection constraints:

  • skip-dfs-channels=disabled — all channels including DFS (100–140) are candidates; requires CAC delay (~60 s) on first use
  • skip-dfs-channels=all — only non-DFS channels (36–48, 149–165); instant availability, fewer channels
  • skip-dfs-channels=indoor-only — skips channels requiring outdoor DFS; keeps indoor DFS channels

Auto-selection runs at boot and again after reselect-interval if configured.

2.4 GHz non-overlapping channels (20 MHz):

ChannelCenter FreqNeighbors to avoid
12412 MHzChannels 2–5
62437 MHzChannels 2–9
112462 MHzChannels 7–11

With more than 3 APs in range of each other, 2.4 GHz will have overlap. Prefer 5 GHz where possible.

5 GHz non-DFS channels (UNII-1 + UNII-3):

ChannelFreqDFS?
365180No
405200No
445220No
485240No
1495745No
1535765No
1575785No
1615805No
1655825No

Channels 52–144 require DFS and have a 60-second CAC (Channel Availability Check) before use.


Path: /interface/wifi/security

/interface/wifi/security add \
name=Corporate \
authentication-types=wpa2-psk,wpa3-psk \
passphrase=SecurePassword! \
encryption=ccmp,gcmp
ParameterValuesDescription
authentication-typeswpa2-psk, wpa3-psk, wpa2-eap, wpa3-eapAuth methods; multiple can be listed
passphrasestringPSK passphrase (8–63 chars for WPA)
encryptionccmp, gcmp, ccmp-256, gcmp-256Cipher suites; list multiple for compatibility
group-encryptionccmp, gcmp, tkipGroup (broadcast) cipher
group-key-updatetime (e.g., 5m)Group key rotation interval
wpsdisabled, push-button, pinWPS mode
pmkid-modeenabled, disablePMKID caching for fast reconnect
ftyes, noEnable 802.11r Fast Transition (requires ft-* also)
ft-preserve-vlanidyes, noPreserve VLAN ID during fast roaming
management-protectiondisabled, allowed, required802.11w Management Frame Protection
owe-transition-interfaceinterface nameOWE transition mode (open + OWE dual-SSID)

Enterprise (EAP/RADIUS) options:

ParameterDescription
radius-serverIP of RADIUS server
radius-portRADIUS UDP port (default: 1812)
radius-secretRADIUS shared secret
radius-accountingyes/no — enable RADIUS accounting
radius-accounting-portAccounting port (default: 1813)
certificateTLS certificate for EAP-TLS
tls-modeverify-certificate, no-certificates, dont-verify-certificate, verify-certificate-with-crl
# WPA3-Enterprise
/interface/wifi/security add name=Enterprise \
authentication-types=wpa3-eap \
radius-server=10.0.0.50 \
radius-secret=RadiusSecret \
radius-accounting=yes \
certificate=server-cert \
tls-mode=verify-certificate

Path: /interface/wifi/datapath

/interface/wifi/datapath add \
name=LocalFwd \
bridge=bridge-lan \
local-forwarding=yes
ParameterValuesDescription
bridgebridge nameBridge interface on CAPsMAN controller to attach managed interface
local-forwardingyes, noyes = data stays on CAP; no = data tunneled through controller
client-to-client-forwardingyes, noAllow direct L2 between WiFi clients
vlan-modenone, use-tag, service-tagVLAN tagging mode
vlan-id1–4095VLAN tag for client traffic
interface-listinterface list nameAdd managed interface to an interface list

Forwarding mode comparison:

ModeData pathBest forTradeoff
local-forwarding=yesCAP → local bridge → networkMost deployments; best performanceCAP must have correct bridge/VLAN config
local-forwarding=noCAP → CAPsMAN → bridge → networkCentralized firewall, client isolationController becomes throughput bottleneck

Performance note: With manager forwarding, all client data traverses the CAP↔CAPsMAN tunnel. For high-throughput deployments (e.g., Wi-Fi 6 APs capable of 1+ Gbps), the controller CPU becomes the limiting factor. Use local forwarding unless you specifically need centralized forwarding.


Path: /interface/wifi/configuration

/interface/wifi/configuration add \
name=Office-5G \
channel=5GHz-80 \
security=Corporate \
datapath=LocalFwd \
ssid=Office \
country="United States" \
hide-ssid=no \
ft=yes \
rrm=yes \
bss-transition=yes
ParameterValuesDescription
channelchannel profile nameChannel profile to use
securitysecurity profile nameSecurity profile to use
datapathdatapath profile nameDatapath profile to use
ssidstringWiFi network name (up to 32 chars)
countrycountry nameRegulatory domain; sets power/channel limits
hide-ssidyes, noSuppress SSID from beacons
ftyes, noEnable 802.11r Fast Transition
ft-over-dsyes, noFast Transition over the Distribution System
rrmyes, noEnable 802.11k Radio Resource Management (neighbor reports)
bss-transitionyes, noEnable 802.11v BSS Transition Management (roaming hints)
multicast-enhancedisabled, enabledMulticast to unicast conversion
beacon-intervalinteger (ms)Beacon interval (default: 100)
dtim-periodintegerDTIM period (affects power-save clients)
max-sta-countintegerMaximum clients per interface
modeapOperating mode (always ap for CAPsMAN)
disabledyes, noDisable this configuration profile

Path: /interface/wifi/provisioning

Rules are evaluated top-down; the first match wins for each CAP radio.

/interface/wifi/provisioning add \
action=create-dynamic-enabled \
supported-bands=5ghz-ax \
master-configuration=Office-5G \
name-format=identity \
name-prefix=cap
ParameterValuesDescription
actionnone, create-dynamic-enabled, create-dynamic-disabled, create-static-enabledWhat to do when rule matches
supported-bandsband stringMatch radios supporting this band (e.g., 5ghz-ax, 2ghz-ax)
identity-regexpregexMatch by CAP system identity
mac-addressMACMatch by CAP MAC address
radio-macMACMatch by radio MAC (leave blank for band-based matching)
master-configurationconfig profile nameConfiguration profile to assign
slave-configurationsconfig profile name listAdditional SSIDs (slave interfaces)
name-formatidentity, mac, identity-or-macHow to name the created interface
name-prefixstringPrefix added to interface name
common-name-regexpregexMatch by CAP DTLS common name

action values:

ValueEffect
noneDon’t provision (skip this CAP radio)
create-dynamic-enabledCreate dynamic interface, enabled
create-dynamic-disabledCreate dynamic interface, disabled
create-static-enabledCreate static (persistent) interface, enabled

Pattern: Multiple SSIDs per radio (slave configurations)

# Create a second SSID config for guest access
/interface/wifi/configuration add name=Guest-5G \
channel=5GHz-80 \
security=GuestSec \
datapath=GuestDP \
ssid=Guest-5G
# Provision with both staff and guest SSIDs
/interface/wifi/provisioning add \
action=create-dynamic-enabled \
supported-bands=5ghz-ax \
master-configuration=Office-5G \
slave-configurations=Guest-5G

Pattern: Priority-based matching (specific overrides first)

# Rule 1: Specific AP gets its own config (highest priority — top of list)
/interface/wifi/provisioning add \
action=create-static-enabled \
mac-address=AA:BB:CC:DD:EE:FF \
master-configuration=Lobby-AP
# Rule 2: All 5 GHz APs get office config (lower priority)
/interface/wifi/provisioning add \
action=create-dynamic-enabled \
supported-bands=5ghz-ax \
master-configuration=Office-5G

Pattern: Identity regex for site-based provisioning

/interface/wifi/provisioning add \
action=create-dynamic-enabled \
supported-bands=5ghz-ax \
identity-regexp="^building-a-.*" \
master-configuration=BuildingA-5G
/interface/wifi/provisioning add \
action=create-dynamic-enabled \
supported-bands=5ghz-ax \
identity-regexp="^building-b-.*" \
master-configuration=BuildingB-5G

Force re-provisioning:

When provisioning rules change, existing interfaces keep their current config until reprovisioned:

# Force all CAPs to re-apply provisioning rules
/interface/wifi/provisioning provision

Path: /interface/wifi/access-list

Rules are evaluated top-down; the first match wins. No implicit deny — add an explicit reject rule at the bottom to enforce allowlisting.

/interface/wifi/access-list add \
mac-address=AA:BB:CC:DD:EE:FF \
action=accept
ParameterValuesDescription
mac-addressMACClient MAC to match
mac-address-maskmaskMatch a range of MACs (e.g., FF:FF:FF:00:00:00)
interfaceinterface nameScope rule to specific managed interface
ssid-regexpregexMatch by SSID name
signal-rangedBm range (e.g., -75..0)Allowed RSSI range; clients outside are rejected
allow-signal-out-of-rangetime (e.g., 2m)Grace period before disconnecting a client that drifts out of range
timetime range (e.g., 8h-18h)Time window for access
daysmon,tue,wed,thu,fri,sat,sunDays of week
actionaccept, reject, query-radiusWhat to do when matched
vlan-id1–4095Assign this VLAN to matched client
commentstringDescription

Block randomized MAC clients:

# Locally administered MACs have bit 1 of byte 0 set (0x02)
/interface/wifi/access-list
add mac-address=02:00:00:00:00:00 mac-address-mask=02:00:00:00:00:00 action=reject \
comment="Block randomized MACs"

RADIUS-based admission:

/interface/wifi/access-list
add action=query-radius comment="RADIUS-controlled admission"

When query-radius is used, the RADIUS server’s Accept/Reject response controls admission. RADIUS can also return per-client VLAN assignments via VSAs.


On each CAP access point:

/interface/wifi/cap set \
enabled=yes \
caps-man-addresses=10.0.0.1 \
discovery-interfaces=bridge-wifi \
certificate=auto
ParameterValuesDescription
enabledyes, noEnable CAP mode
caps-man-addressesIP listController IP(s); multiple for redundancy
discovery-interfacesinterface listInterface(s) for CAPsMAN discovery — must be bridges
caps-man-namesstring listConnect only to controllers with matching identity
certificateauto, name, noneDTLS certificate; auto generates self-signed
lock-to-caps-manyes, noPrevent CAP from switching controllers
static-virtual-clientsyes, noKeep virtual interface after CAP disconnects
bridgebridge nameBridge to join managed interfaces to

Legacy CAPsMAN v1 (RouterOS 6 / Wireless Package)

Section titled “Legacy CAPsMAN v1 (RouterOS 6 / Wireless Package)”

Legacy CAPsMAN uses the /caps-man tree. It is still available in RouterOS 7 but only for hardware using the wireless package (not the wifi package). All legacy v1 commands are shown here for reference; new deployments should use v2.

/caps-man manager set enabled=yes
/caps-man channel add \
name=5GHz \
band=5ghz-a/n/ac \
control-channel-width=20mhz \
frequency=5180
ParameterValuesDescription
band2ghz-b, 2ghz-b/g, 2ghz-b/g/n, 5ghz-a, 5ghz-a/n, 5ghz-a/n/acWireless mode
frequencyMHzChannel frequency
control-channel-width10mhz, 20mhzPrimary channel width
extension-channeldisabled, Ce, Ceee, eC, eeCe, eCee40/80 MHz extension
tx-powerintegerTransmit power
save-selectedyes, noSave auto-selected channel across reboot
skip-dfs-channelsyes, noSkip DFS channels during auto selection
/caps-man security add \
name=Corp \
authentication-types=wpa2-psk \
encryption=aes-ccm \
passphrase=SecurePass!
ParameterValuesDescription
authentication-typeswpa-psk, wpa2-psk, wpa-eap, wpa2-eapAuth methods
encryptionaes-ccm, tkipClient unicast cipher
group-encryptionaes-ccm, tkipGroup (broadcast) cipher
passphrasestringPSK passphrase
group-key-updatetimeGroup key rotation interval
/caps-man datapath add \
name=LocalDP \
bridge=bridge1 \
local-forwarding=yes \
client-to-client-forwarding=no
ParameterValuesDescription
bridgebridge nameBridge to attach interface
local-forwardingyes, noLocal vs manager forwarding
client-to-client-forwardingyes, noL2 isolation between clients
vlan-id1–4094VLAN for client traffic
vlan-modenone, use-tag, use-service-tagVLAN tagging
arpenabled, disabled, proxy-arp, reply-onlyARP handling
/caps-man configuration add \
name=Office \
ssid=CorpWiFi \
country=latvia \
mode=ap \
channel=5GHz \
security=Corp \
datapath=LocalDP
ParameterValuesDescription
ssidstringWiFi network name
modeapMode (always ap for CAPsMAN)
channelchannel nameChannel profile
securitysecurity nameSecurity profile
datapathdatapath nameDatapath profile
countrycountry code/nameRegulatory domain
hw-protection-modenone, rts-cts, cts-to-selfRTS/CTS protection
guard-intervalany, longGuard interval (long = 800ns, any = short allowed)
max-station-countintegerMax clients per interface
tx-power-modedefault, card-rates, all-rates-fixedTX power control mode
ratesrate listSupported data rates (e.g., 6Mbps,12Mbps,24Mbps)
multicast-helperdefault, disabled, fullMulticast to unicast conversion
keepalive-framesenabled, disabledSend keepalive frames to clients
disconnect-timeouttimeTime before inactive client disconnected
on-fail-retry-timetimeRetry interval after failed provisioning
/caps-man access-list add \
mac-address=AA:BB:CC:DD:EE:FF \
action=accept
# Deny by signal strength
/caps-man access-list add \
signal-range=-120..-80 \
action=reject
ParameterValuesDescription
mac-addressMACClient MAC
interfaceinterface nameScope to specific interface
ssid-regexpregexMatch by SSID
signal-rangedBm rangeRSSI filter
timetime rangeTime-of-day filter
actionaccept, reject, query-radiusAction
vlan-idintegerVLAN assignment for client
private-passphrasestringPer-client PSK override (WPA2-PSK only)
radius-accountingyes, noEnable RADIUS accounting for matched client
/caps-man provisioning add \
action=create-dynamic-enabled \
master-configuration=Office
# Band-specific (using hw-supported-modes in v1)
/caps-man provisioning add \
action=create-dynamic-enabled \
hw-supported-modes=a/n/ac \
master-configuration=Office-5G
ParameterValuesDescription
actionnone, create-dynamic-enabled, create-dynamic-disabled, create-static-enabledProvisioning action
hw-supported-modesmode stringMatch by hardware capability (v1 equivalent of v2 supported-bands)
identity-regexpregexMatch by CAP identity
ip-address-rangesCIDRMatch by CAP IP range
radio-macMACMatch by radio MAC
master-configurationconfig namePrimary configuration
slave-configurationsconfig name listAdditional SSIDs
name-formatcap, identity, prefix-macInterface naming
name-prefixstringName prefix
/interface wireless cap set \
enabled=yes \
interfaces=wlan1,wlan2 \
caps-man-addresses=10.0.0.1 \
discovery-interfaces=bridge1
# View all managed interfaces
/caps-man interface print
# View connected CAPs
/caps-man remote-cap print
# View client associations
/caps-man registration-table print
/caps-man registration-table print detail
/caps-man registration-table print stats
# Monitor a client
/caps-man registration-table monitor [find mac-address="AA:BB:CC:DD:EE:FF"]

ObjectCAPsMAN v1 (ROS 6)CAPsMAN v2 (ROS 7 WiFi)
Manager/caps-man manager/interface/wifi/capsman
Channel/caps-man channel/interface/wifi/channel
Security/caps-man security/interface/wifi/security
Datapath/caps-man datapath/interface/wifi/datapath
Configuration/caps-man configuration/interface/wifi/configuration
Provisioning/caps-man provisioning/interface/wifi/provisioning
Access List/caps-man access-list/interface/wifi/access-list
Interfaces/caps-man interface/interface/wifi (filter managed)
Remote CAPs/caps-man remote-cap/interface/wifi/capsman/remote-cap
Registration/caps-man registration-table/interface/wifi/registration-table
CAP-side/interface wireless cap/interface/wifi/cap
Band filterhw-supported-modessupported-bands