Continuity check message (CCM)
What is good to know? (if you are familiar with the basics, go ahead and read)
First of all. CCMs are the heartbeat of the network being monitored. By protocol description, every CCM has few important parameters: Origin (Maintenance domain and association), hello interval and status bits, sequence number and some Organization specific stuff which is irrelevant to this guide. The packet looks like this:
00000000 d4 c3 b2 a1 02 00 04 00 00 00 00 00 00 00 00 00 |Ôò¡............| 00000010 ff ff 00 00 01 00 00 00 96 35 c1 4c 0d 87 05 00 |ÿÿ.......5ÁL....| 00000020 74 00 00 00 74 00 00 00 01 80 c2 00 00 31 00 a0 |t...t.....Â..1. | 00000030 12 4b 2f 30 81 00 c0 03 89 02 20 01 04 46 00 01 |.K/0..À... ..F..| 00000040 3d 88 00 01 04 02 61 31 02 03 6d 61 31 00 00 00 |=.....a1..ma1...| 00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000080 00 00 00 00 1f 00 0c 00 a0 12 02 2b 44 d3 3f 11 |........ ..+DÓ?.| 00000090 31 8a 00 04 00 01 01 02 00 01 02 00 |1...........|
If you are interested in the details, get the packet and dissect it in Wireshark.
Second. CCMs are transmitted between MEPs. By seeing each other’s CCMs the MEPs establish connectivity. There are however some important prerequisites.
- MEPs in different domains do not connect to each other, no matter what.
- MEPs in different associations do not connect to each other, no matter what.
- MEPs with different hello intervals do not connect to each other, no matter what.
Another important thing. If you have association named MA1 for monitoring VPLS service and association MA2 monitoring VLAN with id 300, you can’t have CFM entities connected between them. No matter the VPLS could label and carry over packets with VLAN tag 300 in Its topology.
Another important thing is the Domain level:
---------- CCM level 7 ---------------------> ---------- CCM level 5 ------> MEP level 5 ---------- CCM level 1 ------X
MEPs filter all lower level CCMs, MEPs process all same level CCMs and MEPs pass untouched all higher level CCMs. This filtering logic is important. If you take a look in the diagram from the previous tutorial page, you will see, that Level 7 domain should not be stopped at any point if we are going to monitor it. And provider or operator domains should not flood CCM packets outside their respective End Points. This logic applies to all kinds of CFM monitored services and VLANs, and It also provides some security and less control traffic over the whole network.
Fourth. You should never forget the MEPs have direction and different behavior when they are facing UP or DOWN (respectively IN or OUT). The diagram below is created for easier understanding when I did OAM CFM presentation for my colleagues in Telco systems. It’s a bit crude, but not hard to grasp. Basically IN and UP MEPs are the same and the words “In” and “Up” have 2 letters. OUT and DOWN MEPs are the same and the words have more than 2 letters. IN/UP MEPs are sending CCM packets in direction towards the other device ports, that are members of the same domain (a.k.a. MIPs) while the DOWN/OUT MEPs are sending CCM packets in the opposite direction. If we visualize the device as a box with 5 holes it will look like this:
The difference in terminology is because of changes that took place while this relatively new monitoring protocol was developed in the last few years and the different vendors that support it. Currently, most (if not all) vendors use the Up and Down naming for MEPs, but if you happen to buy or receive older equipment or older software version – it’s good to know “which witch is which”.
Lot more can be said about CCMs and MEPs, but all in due time. If this article is too basic for you, please look at the OAM CFM connectivity chart.