Cisco ACI : Loop avoidance with MCP (mis-cabling protocol)

Cisco’s ACI is very capable when we talk about loops avoidance. Inside the fabric there is no chance of looping as there is no l2, all forwarding is based on iVxlan which is running on top of ISIS. However, the edge is still unprotected, what it means is suppose you have a broadcast storm hitting the edge port, the port will still process the packet even to drop it but the resources will be consumed on leaf.Although this problem can be tackled in many ways by implementing certain port related features like storm control,control plane policing etc but there is also a need of a protocol which can avoid loop by killing any redundant path at the edge part of the fabric(someone can still connect two ports of the edge with a single cable).

MCP operates in very simple manner, it sends the MCP PDU over the link and doesnt expect to receive that packet. In case the packet is received on any of the interface on the ACI leaf switch then it is seen as a looping scenario and the port with lower priority (lower node number or lower port number will have high priority)will go in error-disabled state or you can also configure just to print a syslog.

In Cisco ACI you can configure maximum of 2000 vlans for MCP. Enabling per vlan MCP will make sure that MCP PDU will be sent per VLAN to detect loop.

Below is how a MCP packet looks like, ignore the headers before the IEEE802.3 header as we have ERSPAN headers before that. Actual MCP packet starts from IEEE802.3 header.

To Configure it we need to enable it at two levels.

1- Enable MCP globally under Fabric > Access Policies > Policy > Global > MCP Instance Policy Default

2- Create and attach the policy under the interface policy.

Leave a Reply