Controller Bridge and Port Extender
Controller Bridge and Port Extender
Section titled “Controller Bridge and Port Extender”Note: The feature has been removed from RouterOS since RouterOS v7.18.
Summary
Section titled “Summary”Controller Bridge (CB) and Port Extender (PE) is an IEEE 802.1BR standard implementation in RouterOS for CRS3xx series switches. It allows virtually extending the CB ports with a PE device and manage these extended interfaces from a single controlling device. Such configuration provides a simplified network topology, flexibility, increased port density and ease of manageability.
The Controller Bridge establishes communication with the Port Extender through a cascade port. Similarly, the Port Extender will communicate with the Controller Bridge only through an upstream port. On a PE, control ports must be configured and only one port (closest to the CB) will act as an upstream port, other control ports can act as a backup for upstream port or even cascade port for switches connected in series.
Extended ports are interfaces that are controlled by the CB and they are typically connected to the end hosts. Extended ports only transmit and receive network traffic.
Supported Devices
Section titled “Supported Devices”| Model | Controller Bridge | Port Extender |
|---|---|---|
| netPower 15FR (CRS318-1Fi-15Fr-2S) | - | + |
| netPower 16P (CRS318-16P-2S+) | - | + |
| CRS310-1G-5S-4S+ (netFiber 9/IN) | - | + |
| CRS326-24G-2S+ (RM/IN) | - | + |
| CRS328-24P-4S+ | - | + |
| CRS328-4C-20S-4S+ | - | + |
| CRS305-1G-4S+ | - | + |
| CRS309-1G-8S+ | + | + |
| CRS317-1G-16S+ | + | + |
| CRS312-4C+8XG | + | + |
| CRS326-24S+2Q+ | + | + |
| CRS354-48G-4S+2Q+ | + | + |
| CRS354-48P-4S+2Q+ | + | + |
Limitations
Section titled “Limitations”Although controller allows to configure port extender interfaces, some bridging and switching features cannot be used or will not work properly.
| Feature | Support |
|---|---|
| Bonding for cascade and upstream ports | + |
| Bridge VLAN filtering | + |
| Bonding for extended ports | - |
| Dot1x authenticator (server) | - |
| Ingress and egress rate | - |
| Mirroring | - |
| Port ingress VLAN filtering | - |
| Port isolation | - |
| Storm control | - |
| Switch rules (ACL) | - |
| L3HW offloading | - |
| MLAG | - |
Quick Setup
Section titled “Quick Setup”This example creates a Controller Bridge (CRS317-1G-16S+) connected to a single Port Extender (CRS326-24G-2S+) through an SFP+1 interface.
Step 1: Configure a bridge with enabled VLAN filtering on the CB:
/interface bridgeadd name=bridge1 vlan-filtering=yesStep 2: Configure a port that is connected to the PE and will act as cascade port:
/interface bridge port-controllerset bridge=bridge1 cascade-ports=sfp-sfpplus1 switch=switch1Step 3: On the PE, configure a control port:
/interface bridge port-extenderset control-ports=sfp-sfpplus1 switch=switch1Once PE and CB are connected, all interfaces that are on the same switch group (except for control ports) will be extended and can be further configured on the CB.
Important: Do not include
cascade-portsandcontrol-portsin any routing or bridging configurations. These ports are recommended only for CB and PE usage.
To exclude some ports from being extended (e.g., for out-of-band management), configure the excluded-ports property.
Discovery and Control Protocols
Section titled “Discovery and Control Protocols”Before frame forwarding on extended ports is possible, CB and PE must discover each other and exchange essential information:
-
LLDP Discovery: CB and PE enabled devices use LLDP with specific Port Extension TLV to advertise support on cascade and control ports.
-
Control and Status Protocol (CSP): Once LLDP messages are exchanged, CSP over ECP initiates. CSP is used to:
- Assign unique IDs for extended ports
- Control data-path settings (e.g., port VLAN membership)
- Send port status information (e.g., interface stats, PoE-out monitoring)
-
ECP (Edge Control Protocol): Provides reliable and sequenced frame delivery (EtherType 0x8940).
Limitation: The current CB implementation does not support failover techniques. Once the CB becomes unavailable, the PE will lose all control and data forwarding rules.
Packet Flow
Section titled “Packet Flow”The packet walkthrough explains the underlying principles:
- An L2 packet is received on the extended port
- The PE encapsulates the packet with an E-TAG header (EtherType 0x85F) and forwards it through an upstream port toward the CB
- The CB receives the E-TAG packet, decapsulates it, and proceeds with regular switching decisions
- After switching decision, the CB encapsulates the packet with E-TAG and sends it through a cascade port toward the PE
- The PE decapsulates and sends the original L2 packet through the extended port
Controller Bridge Settings
Section titled “Controller Bridge Settings”Sub-menu: /interface bridge port-controller
Properties
Section titled “Properties”| Property | Description |
|---|---|
bridge (name) | The bridge interface where ports will be extended. CB enables only when bridge and switch are specified. |
cascade-ports (interfaces) | Interfaces that act as cascade ports. Bonding interfaces with 802.3ad or balance-xor mode are also supported. |
switch (name) | The switch that acts as the CB. CB enables only when bridge and switch are specified. |
Monitoring Devices
Section titled “Monitoring Devices”/interface bridge port-controller device print/interface bridge port-controller device monitor pe2Device Properties
Section titled “Device Properties”| Property | Description |
|---|---|
connected-via-devs (name) | Shows connected devices in the path from PE to CB. |
connected-via-ports (name) | Shows connection path from PE to CB. |
control-ports (interfaces) | PE control ports. |
descr (name) | Short PE description. |
name (name) | Automatically assigned PE name. |
pe-mac (MAC address) | PE MAC address. |
status (active | inactive) | PE status. |
Port Monitoring
Section titled “Port Monitoring”/interface bridge port-controller port print where !disabled/interface bridge port-controller port monitor [find where !disabled]Port Properties
Section titled “Port Properties”| Property | Description |
|---|---|
device (name) | Automatically assigned PE name. |
name (name) | Automatically assigned port name. |
pcid (integer) | Automatically assigned port identifier. |
port-status (dev-inactive | not-added | ok) | PE port status. |
rate (bps) | Data rate of the connection. |
status (link-ok | no-link | unknown) | PE port link status. |
PoE Monitoring
Section titled “PoE Monitoring”/interface bridge port-controller port poe print/interface bridge port-controller port poe monitor pe1-ether2,pe1-ether3Port Extender Settings
Section titled “Port Extender Settings”Sub-menu: /interface bridge port-extender
Properties
Section titled “Properties”| Property | Description |
|---|---|
control-ports (interfaces) | Interfaces that connect to CB (upstream port) or other PE devices in series (cascade port). Bonding interfaces supported. |
excluded-ports (interfaces) | Interfaces that will not be extended. |
switch (name) | The switch that acts as the extender. PE enables only when this property is specified. |
Configuration Examples
Section titled “Configuration Examples”Basic CB and PE Configuration
Section titled “Basic CB and PE Configuration”This example uses a CRS317-1G-16S+ as CB and CRS328-24P-4S+ as PE.
CB Configuration:
/interface bridgeadd name=bridge1 vlan-filtering=yes/interface bridge portadd bridge=bridge1 interface=sfp-sfpplus2/interface bridge port-controllerset bridge=bridge1 cascade-ports=sfp-sfpplus1 switch=switch1PE Configuration:
/interface bridge port-extenderset control-ports=sfp-sfpplus4 switch=switch1Once discovery completes, new interfaces are created and added to the bridge on the CB. Interfaces are named with the PE name plus the default interface name.
Trunk and Access Ports
Section titled “Trunk and Access Ports”This example creates untagged (access) and tagged (trunk) port configuration.
CB Configuration:
/interface bridgeadd name=bridge1 vlan-filtering=yes/interface bridge portadd bridge=bridge1 interface=sfp-sfpplus2/interface bridge port-controllerset bridge=bridge1 cascade-ports=sfp-sfpplus1 switch=switch1PE Configuration:
/interface bridge port-extenderset control-ports=sfp-sfpplus4 switch=switch1Configure Access Ports:
/interface bridge portset [find interface=pe1-ether1] pvid=10set [find interface=pe1-ether2] pvid=20set [find interface=pe1-ether3] pvid=30Configure VLAN Entries:
/interface bridge vlanadd bridge=bridge1 tagged=pe1-sfpplus1,sfp-sfpplus2 untagged=pe1-ether1 vlan-ids=10add bridge=bridge1 tagged=pe1-sfpplus1,sfp-sfpplus2 untagged=pe1-ether2 vlan-ids=20add bridge=bridge1 tagged=pe1-sfpplus1,sfp-sfpplus2 untagged=pe1-ether3 vlan-ids=30Apply Frame Filtering:
/interface bridge portset [find interface=pe1-ether1] frame-types=admit-only-untagged-and-priority-taggedset [find interface=pe1-ether2] frame-types=admit-only-untagged-and-priority-taggedset [find interface=pe1-ether3] frame-types=admit-only-untagged-and-priority-taggedset [find interface=pe1-sfpplus1] frame-types=admit-only-vlan-taggedset [find interface=sfp-sfpplus2] frame-types=admit-only-vlan-tagged ingress-filtering=yesNote: Port ingress VLAN filtering is not supported on extended ports.
Cascading Multiple Port Extenders with Bonding
Section titled “Cascading Multiple Port Extenders with Bonding”This example adds two PEs to a CB with bonding for increased throughput.
CB Configuration:
/interface bondingadd mode=802.3ad name=bond1 slaves=sfp-sfpplus1,sfp-sfpplus2/interface bridgeadd name=bridge1 vlan-filtering=yes/interface bridge portadd bridge=bridge1 interface=sfp-sfpplus3/interface bridge port-controllerset bridge=bridge1 cascade-ports=bond1 switch=switch1PE1 Configuration (CRS328-24P-4S+):
/interface bondingadd mode=802.3ad name=bond1 slaves=sfp-sfpplus1,sfp-sfpplus2add mode=802.3ad name=bond2 slaves=sfp-sfpplus3,sfp-sfpplus4/interface bridge port-extenderset control-ports=bond1,bond2 switch=switch1PE2 Configuration (CRS326-24G-2S+):
/interface bondingadd mode=802.3ad name=bond1 slaves=sfp-sfpplus1,sfp-sfpplus2/interface bridge port-extenderset control-ports=bond1 switch=switch1Monitoring Connection Path:
/interface bridge port-controller device monitor [find]/interface bridge port-controller port print where running or upstream-portConfiguration Modification and Removal
Section titled “Configuration Modification and Removal”To modify or remove PE configuration:
Step 1: Disable the PE:
/interface bridge port-extender set switch=none control-ports="" excluded-ports=""Step 2: Remove related bridge configuration:
/interface bridge port remove [find interface~"pe1"]Step 3: Remove the PE from CB:
/interface bridge port-controller device remove [find name=pe1]This command automatically removes all PE interfaces from the CB interface list.