2OAM Requirement Layer Independent and transport agnostic Work on the BIER layer itself and avoid any dependency on other layers.Work on all BIER supported transport.Avoid leaking OAM packet outside the BIER domain.One tool for OAM purpose.Continuity CheckFault Detection and IsolationPerformance MeasurementCapability to perform ECMP path discovery and path validation.OAM payload should be flexible to accommodate the OAM functionality in different BIER use cases.
3Why not existing toolsHistorical Multicast OAM tools are hard to extend for BIER.Mtrace, PingLSP Ping is good, but specific to MPLS transport.Creating transport agnostic BIER OAM by leveraging the characteristic and benefits of LSP Ping is more reasonable.
4BIER OAM packet format OAM Proto BIER-MPLS-Label BIER Header OAM PayloadInterpreting OAM packet:Should be BFER.BIER-MPLS label TTL expired.Presence of RA label in label stackVarious TLV for different purposeECMP DiscoveryDownstream/Upstream detailsReceived BitString detailsetc
5Connectivity Verification – Ping (Initiator behavior) R2 BiFT Table0110R61000R10001R3R3 BiFT Table0001R40110R610000001Receiver for stream S1R1R2R4R3BitString=0101;Proto=OAMRequestReservedProto=NULLBitString=0101BFIR=1000Receiver for stream S101000010R6R7R1 will generate OAM packet as below:Content carrying all BitString to be validated.Include BFIR details.Set Proto=Null in OAM packet.Set the Message type as TBD1 (Request)Include BiER Header, set O bit and set Proto=OAM.Each BFR will follow BIFT table and send to downstream BFRs.
6Connectivity Verification – Ping (Responder behavior) R2 BiFT Table0110R61000R10001R3BitString=1000;Proto=OAMReplyReservedProto=NULLResponseR3 BiFT Table0001R40110R610000001Receiver for stream S1R1R2R4R3BitString=1000;Proto=OAMReplyReservedProto=NULLResponseReceiver for stream S101000010R6R7Transit BFR (Ex; R3) on receiving the packet will simply forward based on BiFT table.BFER will use Proto field to punt for OAM processing.
7Path Trace and ECMP Discovery – Initiator behavior R1 MRIB TableS1,G100111R2 BiFT Table00100R500011R3R3 BiFT Table00001R400010R70000101000Link 12Link 23R1R2Link 34R4R3Link 25Link 36BiER-MPLS-Label; TTL=255BitString=00010;Proto=OAMReplyReservedProto=NULLECMP Query for 000100001000100R5Link 56R6Link 67R7In the above topology R1 have 2 possible ECMP paths between R1 and R7 as below:PATH1 – R1-R2-R3-R6-R7PATH2 – R1-R2-R5-R6-R7R1 will generate OAM packet as below:Content carrying Bit ID for which ECMP trace to be performed. (In this case, 00010)Include BFIR details. (Use I bit)Set Proto=Null in OAM packet.Set the Message type as TBD1 (Request)Include BiER Header (for specific BFER), set O bit and set Proto=OAM. Start from TTL=1 and increment for each reply.
8Path Trace and ECMP Discovery – Responder behavior R1 MRIB TableS1,G100111R2 BiFT Table00100R500011R3R3 BiFT Table00001R400010R700001Link 12Link 23R1R2Link 34R4R3Link 25Link 36BiER-MPLS-Label; TTL=1BitString=01000;Proto=OAMRequestReservedProto=NULLEntropy: 1 – 1000 (Link23)Entropy: 1001 – 2000 (Link25)0001000100R5Link 56R6Link 67R7Each transit BFR will punt the packet for OAM processing due to TTL expiry.OAM module will reply back with Entropy value range for each downstream link. In our case, R2 will reply as below:Entropy = (1-1000) Downstream Interface: Link23Entropy = (1001 – 2000) Downstream Interface: Link25R1 will continue the query to build the entropy table and then uses the same to validate each ECMP path.
9Next Steps? OAM requirement as an informational draft?? Good Discussion in the list.Comments will be included in next revision.