Hello everyone, let's talk about OAM (Operation, Administration, and Maintenance/Management. Based on wikipedia.org. The definition from OAM is  the processes, activities, tools, standards etc. involved with operating, administering, managing and maintaining any system. There are many variant of OAM, but in this topic, let's talk about Y 1731 or naming IEEE 802.1ag.  Or  Ethernet Connectivity Fault Management (Eth-CFM).

Eth-CFM is an end to end OAM that can across multiple domains to monitor service instance's health. It's connectivity checking that uses Ethernet frames to validate services instance's health. In Telecommunication, we can see the topology below. There are many domain and each domain has different administration to manage.



In Eth-CFM there are component block to achive the result from OAM test:


  1. Maintenance Domain (MD) / Maintenance Entity (ME) : Scope where  you have to administer and monitor. It's typically area ownership to manage. Each Domain has level that can be called MD Level, there are numerical value 0 - 7 that representing the width of domain scope. The important thing when measure with domain level. There are several rule must you know:
    - Domain level can not be intersected
    - Domain level can be touched
    - Domain level can be nested
  2. Maintenance Point (MP) is an demarcation point of Eth-CFM message, this point has responsibility to initiate, allow, and terminate the Eth-CFM message. There are two kind of MP, there are:
    - Maintenance End Point (MEP), is the set point that initiate or terminate CFM message, it's also can support connectivity failure between MEP on MA
    - Maintenance Intermediate Point (MIP), is the set point that receive CFM message then respond it to the CFM message sender. This point is using for path discovery through MEP, and failure location detection

    Each CFM message contain information about Domain Level, Rule from CFM message that generated and terminated by MEP and responded by MIP, like below:
    a. If MD CFM > MD MEP/MIP, The CFM message pass the MEP/MIP with transparently
    b. If MD CFM < MD MEP/MIP, The CFM is discarded by MEP/MIP
    c. If MD CFM = MD MEP/MIP, The CFM will be processed by MEP/MIP


    The MEP has a direction up and down, each indicate the direction cfm packet will be generated.
    - The up direction means if the cfm packet generated, that packet will be sent from MEP to bridge relay function (in Alu case means, packet will be sent over sdp/tunnel).
    - The down direction means if cfm packet generated, that packet will be sent from MEP to wire cable that direct connected with port
    The simple topology when we use MEP up and down direction is like below.
    - use case-1: when cfm message sent from port through bridge relay function on site A then receive on site c with direct physical connection. It's mean up direction meets down direction
    -  use case-2: when cfm message sent from port through bridge relay function on site A then receive on site b with bridge relay function too. It's mean up direction meets up direction
    -  use case-3: when cfm message sent from port through direct physical wire connection on site B then receive on site C with direct physical connection too. It's mean down direction meets down direction
  3. Maintenance Association (MA) / Maintenance Entity Group (MEG) is the construct where different Maintenance Domain (MD) is contained. This condition describe when service provider give VPN service to customer with the unique service id then the service provider interconnect their network using 2 different operator. Each Operator has their maintenance domain, and the service provider also has it maintenance domain level too. They want to monitor the service health and integrity, so they have to use the same MA ID in MD level to can achieve the condition. The contain of  MA is represented in picture below:

    in Alcatel-lucent ther is option bridging-identifier to set up the MA ID, then the id similiar with the service instance that we want to implement eth-cfm.
CFM Message

There are 5 different types CFM messages:

  1. Continuity Check Message (CCM), is a multicast frame that is generated by MEP and multicast to other remote MEP in the same MA. This message no need reply message. To identify fault, remote MEP must be receive CCM message and where they come from. CCM still using multicast address destination.
     01-80-C2-00-00-3X  
    
    Where "X" value based on MD level (0-7)
  2.  Loopback Message (LBM), is message that generated by MEP to do CFM loopback test, the message send to peer MEP/MIP. The function is to IP Ping to verify ethernet connectivity between the nodes. In Alcatel-lucent, we have to creat loopback mac in remote MEP/MIP then do command:
     oam eth-cfm loopback <mac loopback on remote mep/mip> mep <mep-id> domain <domain-id> association <association-id>  
    
  3. Loopback Repply Message (LBR), a message that generated by remote MEP/MIP when remote MEP/MIP receive LBM.
  4. Link Trace Message (LTM), is message that originated by MEP in the same MA and same MD level. it's similar with iptrace, Traces specific MAC address through the service. when LTM is sent, it using multicast MAC
     01-80-C2-00-00-3Y  
    
    Where "Y" value:
     
  5. Link Trace Reply Message (LTR), remote MEP respond the LTM message using LTR to local MEP that suitable with MAC destination
Configuring simple eth-cfm on Alcatel-lucent 7750 SR

There is configuration in v7750 SR side:

v7750SR-1
 A:v7750SR-1# configure eth-cfm  
 A:v7750SR-1>config>eth-cfm# info  
 ----------------------------------------------  
     domain 1 name "md1" level 1  
       association 1 format string name "ma1"  
         bridge-identifier 9000  
         exit  
         ccm-interval 1  
         remote-mepid 2  
       exit  
     exit  
 ----------------------------------------------  
 A:v7750SR-1>config>eth-cfm#  
 A:v7750SR-1# configure service vpls 9000  
 A:v7750SR-1>config>service>vpls# info  
 ----------------------------------------------  
       stp  
         shutdown  
       exit  
       sap 1/1/2 create  
         eth-cfm  
           mep 1 domain 1 association 1 direction up  
             ccm-enable  
             mac-address d0:0d:1e:00:01:01  #dummy mac for testing
             no shutdown  
           exit  
         exit  
       exit  
       spoke-sdp 12:9000 create  
         no shutdown  
       exit  
       no shutdown  
 ----------------------------------------------  
 A:v7750SR-1>config>service>vpls#  

v7750SR-2
 A:v7750SR-2# configure eth-cfm  
 A:v7750SR-2>config>eth-cfm# info  
 ----------------------------------------------  
     domain 1 name "md1" level 1  
       association 1 format string name "ma1"  
         bridge-identifier 9000  
         exit  
         ccm-interval 1  
         remote-mepid 1  
       exit  
     exit  
 ----------------------------------------------  
 A:v7750SR-2>config>eth-cfm#  
 A:v7750SR-2# configure service vpls 9000  
 A:v7750SR-2>config>service>vpls# info  
 ----------------------------------------------  
       stp  
         shutdown  
       exit  
       sap 1/1/2 create  
         eth-cfm  
           mep 2 domain 1 association 1 direction up  
             ccm-enable  
             mac-address d0:0d:1e:00:01:02  
             no shutdown  
           exit  
         exit  
       exit  
       spoke-sdp 21:9000 create  
         no shutdown  
       exit  
       no shutdown  
 ----------------------------------------------  
 A:v7750SR-2>config>service>vpls#  

Verify the eth-cfm was installed correctly, do command:
 show eth-cfm statistics  
The output from the command is like below, Information how much ccm message that sent and received.


Then to get information about domain level and association that use, do command:
 show eth-cfm domain  

from the output there is md index, level of maintenance domain, and md format

 show eth-cfm association  


output from the command, there is maintenance domain index (md-index), maintenance association index (ma-index), ccm interval (int), bridge-id (the id from vpls instance that want to monitor), MEPS, num of mep index that is oam use.




When you want to test the connectivity, there are several test you can do with eth-cfm.

1. Eth-cfm loopback test
Information that needed:
- remote MAC addres
- local mep, domain
- optional parameter like size, interval, send-count, time out.
  oam eth-cfm loopback d0:0d:1e:00:01:02 mep 1 domain 1 association 1 size 100 interval 1 send-count 100 timeout 1  

Then the output from the command


To check with multicast address, just add command multicast after loopback, then remove the mac address
  oam eth-cfm loopback multicast mep 1 domain 1 association 1 interval 1 send-count 100  

2. Eth-cfm Linktrace test
command:
 oam eth-cfm linktrace d0:0d:1e:00:01:02 mep 1 domain 1 association 1  
output:

the output from eth-cfm linktrace. Egress Mac is targeted mac on remote mep, and index 1 is originating MEP index.

3. Eth-cfm Continiue Check

To know, the cfm mep/mip that installed on node, do this command:
 show eth-cfm cfm-stack-table  

The Defect column inform about defect condition with cfm, if there is no connectivity with remoteCCM, the defect result like below:


To know mac in each peer/remote mep, do command:
  show eth-cfm mep 1 domain 1 association 1 all-remote-mepids  


When the connectivity is error, the output from peer in remote mep, like below:


Rx CC will be result error/flase then there is absent on port-tlv and if-tlv, peer mac address change to 00:00:00:00:00:00

To know the detail, do this command:
   show eth-cfm mep 1 domain 1 association 1 


Additional:

I try to make eth-cfm configuration in vMX, but it's not support cause the OS not installed the eth-cfm licensed. If you have it, just check it. In my side, I try to eth-cfm configuration in vMX

vMX-1
 root@vMX-1> show configuration protocols oam
ethernet {
    connectivity-fault-management {
        maintenance-domain md3 {
            level 3;
            maintenance-association ma1 {
                continuity-check {
                    interval 1s;
                }
                mep 11 {
                    interface ge-0/0/0;
                    direction down;
                    auto-discovery;
                }
            }
        }
    }
}

root@vMX-1>
  

vMX-2
  root@vMX-2> show configuration protocols oam
ethernet {
    connectivity-fault-management {
        maintenance-domain md3 {
            level 3;
            maintenance-association ma1 {
                continuity-check {
                    interval 1s;
                }
                mep 21 {
                    interface ge-0/0/0;
                    direction down;
                    auto-discovery;
                }
            }
        }
    }
}

root@vMX-2>


Hope my information can solve your problem, or give you new knowledge about eth-cfm