Simple Loop Prevention Protocol (SLPP)
Simple Loop Prevention Protocol (SLPP) provides active protection against Layer 2 network loops on a per-VLAN basis. SLPP uses a lightweight hello packet mechanism to detect network loops. SLPP packets are sent using Layer 2 multicast and a switch will only look at its own SLPP packets or at its peer SLPP packets. It will ignore SLPP packets from other parts of the network. Sending hello packets on a per VLAN basis allows SLPP to detect VLAN based network loops for un-tagged as well as tagged IEEE 802.1Q VLAN link configurations. Once a loop is detected, the port is shutdown. The SLPP functionality is configured using the following criteria:
- SLPP TX Process – the network administrator decides on which VLANs a switch should send SLPP hello packets. The packets are then replicated out all ports which are members of the SLPP-enabled VLAN. It is recommended to enable SLPP on all VLANs.
- SLPP RX Process – the network administrator decides on which ports the switch should act when receiving an SLPP packet that is sent by the same switch or by its SMLT peer. You should enable this process only on Access SMLT/SLT ports and never on IST ports or Core SMLT/SLT ports in the case of a square/full mesh core design.
- SLPP Action – the action operationally disables the ports receiving the SLPP packet. The administrator can also tune the network failure behavior by choosing how many SLPP packets need to be received before a switch starts taking an action. These values need to be staggered to avoid edge switch isolation – see the recommendations at the end of this section.
Loops can be introduced into the network in many ways. One way is through the loss of an MLT configuration caused by user error or malfunctioning equipment. This scenario may not always introduce a broadcast storm, but because all MAC addresses are learned through the looping ports, does significantly impact Layer 2 MAC learning. Spanning Tree would not in all cases be able to detect such a configuration issue, whereas SLPP reacts and disables the malfunctioning links, limiting network impact to a minimum. The desire is to prevent a loop from causing network problems while also attempting to not totally isolate the edge where the loop was detected. Total edge closet isolation is the last resort in order to protect the rest of the network from the loop. With this in mind, the concept of an SLPP Primary switch and SLPP Secondary switch has been adopted. These are strictly design terms and are not configuration parameters. The Rx thresholds are staggered between the primary and secondary switch, therefore the primary switch will disable an uplink immediately upon a loop occurring. If this resolves the loop issue, the edge closet still has connectivity back through the SLPP secondary switch. If the loop is not resolved, the SLPP secondary switch will disable the uplink and isolate the closet to protect the rest of the network from the loop.
I’ve deployed SLPP at one site with with a two tier network design utilizing SMLT with an IST core. It’s very important to remember that SLPP operates per VLAN id so you need to take that into consideration. You also don’t want to overload your switch fabric (CPU) by enabling SLPP on every VLAN, especially if you have a large number of VLANs.
Here’s an example of how to deploy SLPP between two core ERS 8600s (switch cluster).
ERS 8600 Core Switch A
ERS-8610:5# config slpp add 200 ERS-8610:5# config slpp operation enable ERS-8610:5# config ethernet 1/1-1/8 slpp packet-rx enable ERS-8610:5# config ethernet 1/1-1/8 slpp packet-rx-threshold 5
ERS 8600 Core Switch B
ERS-8610:5# config slpp add 200 ERS-8610:5# config slpp operation enable ERS-8610:5# config ethernet 1/1-1/8 slpp packet-rx enable ERS-8610:5# config ethernet 1/1-1/8 slpp packet-rx-threshold 50
This will cause both core ERS 8600 switches to transmit SLPP PDUs on VLAN 200. They will watch for those PDUs to return on port 1/1-1/8. It’s important in the example above to point out the different thresholds. You don’t want both core ERS 8600 switches cutting off both uplinks to the edge closets. Hence the core A switch will admin-down any port where it receives 5 of it’s own SLPP PDU packets. The core B switch will admin-down any port where it receives 50 of it’s own SLPP PDU packets. This configuration will generally disable one of the uplinks from the switch cluster (removing the loop) but won’t leave the edge switch disconnected from both core ERS 8600 switches.
Cheers!
Related posts:


Michael,
We had 3 problems last year with different communication closets that contain 470 stacks. Each instance was a little different, but 2 of the 3 introduced a loop on our network. SLPP isn’t yet implemented, but I’m looking at doing it this year.
To get out of the loop right away, we obviously had to disconnect the link from the failed (rather semi-failed) 470 unit that had one of the uplinks to the core 8600′s, then replace the unit. It’s best when the damn 470′s just fail hard, but when they choke along and lose their MLT config and such, it can be hell on the network.
You mention you’re at a very large healhcare site, I’m just curious, is SLPP implemented for all of your communication closets? Why not implement everywhere, I know you mention it is per VLAN, but if one of those VLAN’s (i.e. default VLAN1) is part of all of the uplink’s, you technically would only have to implement for that one VLAN right, even though you have others configured, the 8600′s would still shutdown the ports correct?
One other question, what is the best way to test an SLPP configuration….manually break an MLT trunk while it is connected? Since I’m in a production environment and creating a loop wreaks havoc on our network/systems in the worse possible way (lots of automation systems here running 24×7) I’m looking for some advice other than site-wide downtime. :)
Thanks!
Greg