Skip to content

RouterOS Switch Chip Hardware Guide

MikroTik devices across multiple product lines contain dedicated switch chip hardware that accelerates Layer 2 forwarding. When switch chip offloading is active, packets are forwarded at wire speed by the switch chip without involving the CPU. This guide covers the concepts and configuration for hardware switching, VLAN tagging, port isolation, and ACL rules, and explains the key differences between switch chip families — including the distinction between CRS (Cloud Router Switch) and CSS (Cloud Smart Switch) product lines.


MikroTik switch chips fall into four families, each with distinct chip hardware, feature sets, and configuration commands.

FamilySwitch ChipsACL CommandVLAN CommandMax ACL Rules
RouterBOARD (non-CRS)QCA8337, Atheros8327/16/27, MT7621, MT7531, 88E6393X, 88E6191X/interface ethernet switch rule/interface ethernet switch vlan16–256
CRS1xx/2xxQCA-8511, QCA-8513L, QCA-8519/interface ethernet switch acl/interface ethernet switch egress-vlan-tag + /ingress-vlan-translation128
CRS3xx/CRS5xx/CCR2116/CCR2216Marvell 98DX series/interface ethernet switch ruleBridge VLAN filtering128–1365

CRS (Cloud Router Switch) devices run RouterOS as their primary operating system. CRS3xx and CRS5xx series additionally support dual-boot into SwOS (a simplified switch operating system) via /system routerboard settings set boot-os=swos. All RouterOS configuration documented in this guide applies to CRS devices.

CSS (Cloud Smart Switch) devices run SwOS by default and do not support RouterOS. Configuration for CSS devices is performed through the SwOS web interface or Winbox SwOS mode. CSS devices are out of scope for RouterOS documentation.

Key rule: If your switch runs RouterOS, it is a CRS or RouterBOARD device. CSS switches are SwOS-only.


Standard RouterOS bridge forwarding processes packets in software, using the CPU to make forwarding decisions. When a switch chip is present and hardware offloading is enabled, the switch chip intercepts bridged traffic and makes forwarding decisions independently in hardware. The CPU is bypassed for data-plane traffic, reducing latency and allowing wire-speed forwarding even at 10G and 25G link speeds.

Hardware offloading is controlled per bridge port using the hw parameter:

/interface bridge
add name=bridge1 vlan-filtering=yes
/interface bridge port
add bridge=bridge1 interface=ether2 hw=yes
add bridge=bridge1 interface=ether3 hw=yes
add bridge=bridge1 interface=ether4 hw=yes

When hw=yes is set and the switch chip supports offloading, the port gains an H flag visible in /interface bridge port print. If the H flag is absent, offloading failed — typically because of an unsupported feature combination (see below).

Conditions That Disable Hardware Offloading

Section titled “Conditions That Disable Hardware Offloading”

The following configurations cause a port to fall back to software bridging even when hw=yes is set:

  • Bridge uses a protocol mode (STP/RSTP/MSTP) with unsupported features on the chip
  • Multiple bridges present (only one bridge can use hardware offloading at a time on most chips)
  • An unsupported EtherType is configured (MT7621, MT7531, RTL8367, EN7523 chips only support 0x8100; enabling 0x88a8 or 0x9100 disables offload)
  • Tag stacking features are enabled on chips that do not support them
/interface bridge port print

Ports with the H (hardware offload) flag are forwarded by the switch chip. Ports without H are forwarded in software.


Embedded switch chips found on routers such as RB5009, RB3011, RB2011, hEX series.

FeatureQCA8337Atheros8327MT762188E6393X
Port MirroringYesYesYesYes
TX Rate LimitYesYesNoYes
RX Rate LimitYesYesNoYes
Host Table Size20482048204816K
VLAN Table4096409640964096
ACL Rules9292None256
VLAN EtherType0x8100 only0x8100 only0x8100 onlyAll
ChipDevicesFDBACL RulesJumbo
QCA-8511CRS105, CRS106, CRS11220481289204
QCA-8513LCRS109, CRS1252048None4064
QCA-8519CRS210, CRS212, CRS22620481289204

CRS1xx/2xx chips use a distinct VLAN configuration model (ingress translation tables and egress tag tables) rather than bridge VLAN filtering. They support static link aggregation but not LACP (802.3ad). There is no L3 hardware offloading on these chips.

ChipExample DevicesACL RulesFDBNotable
98DX3236CRS326-24G-2S+, CRS328-24P12816KEntry-level
98DX3257CRS354-48G17032K48-port GE
98DX8208/8216CRS309, CRS317102432K–128K10G SFP+
98DX8332CRS326-24S+2Q+25632K10G access
98DX4310CRS504-4XQ, CRS510-8XS1024128K100G
98DX8525CRS518-16XS-2XQ, CCR22161024128K25G/100G
98DX7335CRS812-8DS-2DQ-2DDQ1365128K400G
98DX3255CCR2116-12G-4S+51232K16-core CPU

CRS3xx/CRS5xx chips support LACP bonding, IGMP/MLD snooping, DHCP snooping, RSPAN, MLAG, L3 hardware offloading, and PTP hardware timestamping. These features are absent on CRS1xx/2xx and most RouterBOARD chips.


CRS3xx/CRS5xx and RouterBOARD: Bridge VLAN Filtering

Section titled “CRS3xx/CRS5xx and RouterBOARD: Bridge VLAN Filtering”

For CRS3xx/CRS5xx and RouterBOARD chips (from RouterOS v6.41+), the recommended approach uses bridge VLAN filtering. This approach is standards-compliant and supports MSTP.

Access port (untagged ingress, untagged egress):

/interface bridge
add name=bridge1 vlan-filtering=yes
/interface bridge port
add bridge=bridge1 interface=ether2 hw=yes pvid=10
add bridge=bridge1 interface=ether3 hw=yes pvid=10
add bridge=bridge1 interface=ether7 hw=yes # trunk
/interface bridge vlan
add bridge=bridge1 vlan-ids=10 tagged=ether7 untagged=ether2,ether3

pvid sets the VLAN assigned to untagged ingress traffic. Ports listed as untagged in the VLAN table strip the tag on egress.

Trunk port (tagged egress for multiple VLANs):

/interface bridge vlan
add bridge=bridge1 vlan-ids=10 tagged=ether7
add bridge=bridge1 vlan-ids=20 tagged=ether7
add bridge=bridge1 vlan-ids=30 tagged=ether7

RouterBOARD Non-CRS: Switch VLAN Table (Legacy)

Section titled “RouterBOARD Non-CRS: Switch VLAN Table (Legacy)”

RouterBOARD chips also support a switch-level VLAN table, which is independent of bridge VLAN filtering. This approach predates bridge VLAN filtering and may be used on older configurations.

/interface ethernet switch vlan
add ports=ether2,ether3 switch=switch1 vlan-id=200
add ports=ether2,ether4 switch=switch1 vlan-id=300
/interface ethernet switch port
set ether2 vlan-mode=secure vlan-header=add-if-missing
set ether3 vlan-mode=secure vlan-header=always-strip default-vlan-id=200
set ether4 vlan-mode=secure vlan-header=always-strip default-vlan-id=300

VLAN mode options control how strictly the switch enforces VLAN table membership:

ModeUntagged TrafficTagged (VLAN match)Tagged (no match)
disabledForwardForwardForward
fallbackForwardForwardDrop
checkDropForwardDrop
secureDropForward (if ingress+egress in table)Drop

CRS1xx/CRS2xx: Ingress Translation + Egress Tag Tables

Section titled “CRS1xx/CRS2xx: Ingress Translation + Egress Tag Tables”

CRS1xx/2xx chips use a separate mechanism from bridge VLAN filtering. Untagged ingress traffic is assigned to VLANs using ingress translation rules; egress tagging is controlled per VLAN.

/interface ethernet switch ingress-vlan-translation
add ports=ether6 customer-vid=0 new-customer-vid=200
add ports=ether7 customer-vid=0 new-customer-vid=300
/interface ethernet switch egress-vlan-tag
add tagged-ports=ether2 vlan-id=200
add tagged-ports=ether2 vlan-id=300
/interface ethernet switch vlan
add ports=ether2,ether6 vlan-id=200 learn=yes
add ports=ether2,ether7 vlan-id=300 learn=yes

VLAN Tunneling (Q-in-Q) — CRS3xx/CRS5xx Only

Section titled “VLAN Tunneling (Q-in-Q) — CRS3xx/CRS5xx Only”

Provider bridge (802.1ad) with double-tagging is supported on CRS3xx/CRS5xx devices:

/interface bridge
set bridge1 ether-type=0x88a8

Note: The 98DX3255 chip (used in CRS354 series and CCR2116) does not support VLAN filtering on 1Gbps interfaces for 0x88a8 and 0x9100 VLAN types.


Port isolation prevents direct communication between ports while permitting access to uplink ports. Configuration differs by chip family.

RouterBOARD Non-CRS: Port Isolation Override

Section titled “RouterBOARD Non-CRS: Port Isolation Override”
/interface bridge
add name=bridge1
/interface bridge port
add bridge=bridge1 interface=sfp1 hw=yes
add bridge=bridge1 interface=ether1 hw=yes
add bridge=bridge1 interface=ether2 hw=yes
add bridge=bridge1 interface=ether3 hw=yes
/interface ethernet switch port-isolation
set ether1 forwarding-override=sfp1
set ether2 forwarding-override=sfp1
set ether3 forwarding-override=sfp1

forwarding-override forces all egress traffic from the port to specific port(s) only, regardless of the MAC forwarding table. This is Private VLAN-equivalent behavior.

Isolated switch groups (two independent port domains sharing no traffic):

/interface ethernet switch port-isolation
set ether1 forwarding-override=ether2,ether3
set ether2 forwarding-override=ether1,ether3
set ether3 forwarding-override=ether1,ether2
set ether4 forwarding-override=ether5
set ether5 forwarding-override=ether4

When VLAN table support is present (QCA8337, Atheros8327/8316/8227/7240), VLAN lookup can override port isolation. For strict isolation between ports sharing a VLAN, use switch rules with new-dst-ports="".

/interface ethernet switch port
set ether1 isolated=yes
set ether2 isolated=yes

Isolated ports cannot forward traffic to other isolated ports. They can still communicate with non-isolated ports. This integrates with VLAN filtering and hardware-offloaded bonding interfaces.

Port isolation on CRS1xx/2xx uses leakage profiles, where each profile defines which destination ports traffic may reach:

/interface ethernet switch port
set ether1 isolation-leakage-profile-override=0
set ether2 isolation-leakage-profile-override=0

Multiple ports sharing a leakage profile value of 0 are isolated from each other, forwarding only to uplink ports not assigned to the profile.


Access Control Lists provide wire-speed packet filtering, forwarding modification, and VLAN assignment in hardware.

RouterBOARD Non-CRS and CRS3xx/CRS5xx: Switch Rules

Section titled “RouterBOARD Non-CRS and CRS3xx/CRS5xx: Switch Rules”

Both RouterBOARD and CRS3xx/CRS5xx devices use /interface ethernet switch rule. Rules are evaluated in order; first match wins.

Drop traffic from a specific MAC address:

/interface ethernet switch rule
add ports=ether1 switch=switch1 \
src-mac-address=64:D1:54:81:EF:8E/FF:FF:FF:FF:FF:FF \
new-dst-ports=""

new-dst-ports="" with no ports drops the packet.

Redirect to CPU for inspection:

/interface ethernet switch rule
add ports=ether2 switch=switch1 redirect-to-cpu=yes mac-protocol=arp

VLAN assignment based on source MAC (MAC-based VLAN):

/interface ethernet switch rule
add switch=switch1 ports=ether7 \
src-mac-address=A4:12:6D:77:94:43/FF:FF:FF:FF:FF:FF \
new-vlan-id=200

Ingress rate limiting (first 32 rules on QCA8337/Atheros8327):

/interface ethernet switch rule
add ports=ether3 switch=switch1 rate=10M
FieldApplies ToDescription
src-mac-addressAllSource MAC with mask
dst-mac-addressAllDestination MAC with mask
mac-protocolAllEtherType (ip, arp, ipv6, 0x88a8, etc.)
vlan-idAllVLAN ID
vlan-headerAllVLAN header presence
vlan-priorityAllPCP value (0–7)
src-address / dst-addressAllIPv4 source/destination with mask
src-address6 / dst-address6AllIPv6 source/destination
protocolAllIP protocol number
src-port / dst-portAllTCP/UDP port number
dscpAllDSCP value (0–63)
flow-labelCRS3xx+IPv6 flow label

IPv4 and IPv6 conditions cannot be combined in the same rule.

ChipMax Rules
Atheros83168–32
QCA8337, Atheros83278–16 (92 entries total, 16 usable per port)
88E6393X42–256
CRS3xx 98DX3236128
CRS3xx 98DX3257170
CRS3xx 98DX8332256
CRS3xx 98DX3255 (CCR2116)512
CRS3xx 98DX8208/82161024
CRS5xx 98DX43101024
CRS5xx 98DX73351365

CRS1xx/2xx devices use a separate ACL table under /interface ethernet switch acl. Rules can be applied to ingress or egress:

/interface ethernet switch acl
add action=drop src-mac-addr-state=sa-not-found \
src-ports=ether6,ether7 table=egress
add action=drop src-mac-addr-state=static-station-move \
src-ports=ether6,ether7 table=egress

The QCA-8513L chip (CRS109, CRS125) does not support ACL rules.


Use ACL rules together with bridge learning controls to restrict which MAC addresses may communicate on a port.

Allow only one specific MAC address on ether1 (CRS3xx/RouterBOARD):

/interface ethernet switch rule
add ports=ether1 switch=switch1 \
src-mac-address=64:D1:54:81:EF:8E/FF:FF:FF:FF:FF:FF
add new-dst-ports="" ports=ether1 switch=switch1
/interface bridge port
set [find interface=ether1] learn=no unknown-unicast-flood=no
/interface bridge host
add bridge=bridge1 interface=ether1 mac-address=64:D1:54:81:EF:8E

The first rule allows the known MAC; the second drops everything else on that port. Disabling learning and flood prevents unknown unicast bypass.


Port-Based Mirroring (RouterBOARD Non-CRS)

Section titled “Port-Based Mirroring (RouterBOARD Non-CRS)”
/interface ethernet switch
set switch1 mirror-source=ether2 mirror-target=ether3

mirror-source and mirror-target must belong to the same switch chip.

Port-Based Mirroring (CRS3xx, RouterOS 7.15+)

Section titled “Port-Based Mirroring (CRS3xx, RouterOS 7.15+)”
/interface ethernet switch port
set ether2 mirror-ingress=yes mirror-egress=yes
set ether3 mirror-target=yes

VLAN/MAC/IP-Based Mirroring (CRS3xx/CRS5xx)

Section titled “VLAN/MAC/IP-Based Mirroring (CRS3xx/CRS5xx)”
# Mirror by VLAN
/interface ethernet switch rule
add mirror=yes ports=ether1 switch=switch1 vlan-id=100
# Mirror by source MAC
/interface ethernet switch rule
add mirror=yes ports=ether1 switch=switch1 \
src-mac-address=64:D1:54:D9:27:E6/FF:FF:FF:FF:FF:FF

Remote SPAN (RSPAN) — CRS3xx/CRS5xx Only

Section titled “Remote SPAN (RSPAN) — CRS3xx/CRS5xx Only”

RSPAN tunnels mirrored traffic to a remote analyzer over a VLAN:

/interface bridge vlan
add bridge=bridge1 tagged=ether3 vlan-ids=999

The mirror target port must be on the same switch chip. It can be a standalone interface or bridge member.


FeatureRouterBOARDCRS1xx/2xxCRS3xx/CRS5xx
Hardware OffloadingYesYesYes
Bridge VLAN Filtering (hw)Yes (v7)NoYes
Switch VLAN TableYesSeparate tablesVia switch rules
ACL / Switch RulesYesYes (separate menu)Yes
Port IsolationYes (port-isolation)Yes (leakage profiles)Yes (isolated=yes)
LACP / 802.3adNoNoYes
IGMP Snooping (hw)NoYesYes
DHCP SnoopingNoNoYes
L3 Hardware OffloadingNoNoYes
Q-in-Q / 802.1adChip-dependentNoYes (most chips)
MSTPNoNoYes
RSPANNoNoYes
PTP Hardware TimestampsNoNoYes
Dual Boot (RouterOS/SwOS)NoNoYes (CRS3xx/5xx)

Some MikroTik devices contain two or more independent switch chips managing different port groups:

DeviceSwitch Chip 1Switch Chip 2
RB3011ether1–ether5 (QCA8337)ether6–ether10 (QCA8337)
RB4011iGS+ether1–ether5 (RTL8367)ether6–ether10 (RTL8367)
RB1100AHx4ether1–ether5ether6–ether10 / ether11–ether13

On multi-chip devices, traffic between ports on different switch chips must pass through the CPU by default. To enable hardware-forwarded VLAN traffic across chip boundaries, add all ports to a single bridge with vlan-filtering=yes and configure the bridge VLAN table to include ports from both chips.

/interface bridge
add name=bridge1 vlan-filtering=yes
/interface bridge port
add bridge=bridge1 interface=ether2 hw=yes
add bridge=bridge1 interface=ether3 hw=yes
add bridge=bridge1 interface=ether6 hw=yes
add bridge=bridge1 interface=ether7 hw=yes
/interface bridge vlan
add bridge=bridge1 tagged=ether2,ether3,ether6,ether7 vlan-ids=10