BFD for Multipoint Networks over Point-to-Multi-Point MPLS LSP
ZTE Corp.
gregimirsky@gmail.com
Verizon Inc.
gyan.s.mishra@verizon.com
Futureway Technologies
2386 Panoramic Circle
Apopka
FL 32703
USA
d3e3e3@gmail.com
Routing
MPLS Working Group
Internet-Draft
BFD
Multipoint LSP
This document describes procedures for using Bidirectional Forwarding Detection (BFD) for multipoint networks
to detect data plane failures in Multiprotocol Label Switching (MPLS) point-to-multipoint (p2mp)
Label Switched Paths (LSPs) using active tails with unsolicited notifications mode.
It also describes the applicability of LSP Ping, as in-band, and the control plane,
as out-band, solutions to bootstrap a BFD session in this environment.
defines a method of using Bidirectional
Detection (BFD) to monitor and detect unicast failures
between the sender (head) and one or more receivers (tails) in multipoint or multicast
networks. added two BFD session types - MultipointHead and MultipointTail.
Throughout this document, MultipointHead and MultipointTail refer to the value of the bfd.SessionType is
set on a BFD endpoint. This document describes procedures for using such modes of BFD protocol
to detect data plane failures in Multiprotocol Label Switching (MPLS) point-to-multipoint (p2mp)
Label Switched Paths (LSPs). The document also describes the applicability of out-band solutions
to bootstrap a BFD session in this environment.
MPLS: Multiprotocol Label Switching
LSP: Label Switched Path
BFD: Bidirectional Forwarding Detection
p2mp: Point-to-Multipoint
FEC: Forwarding Equivalence Class
G-ACh: Generic Associated Channel
ACH: Associated Channel Header
GAL: G-ACh Label
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14
when, and only when, they appear in all capitals, as shown here.
uses BFD in the Demand mode
from the very start of a point-to-multipoint (p2mp) BFD session. Because the
head doesn't receive any BFD Control packet from a tail, the head of the p2mp BFD
session transmits all BFD Control packets with the value of Your Discriminator field set to zero. As a result, a tail cannot demultiplex
BFD sessions using Your Discriminator, as defined in .
requires that to demultiplex BFD sessions,
the tail uses the source IP address, My Discriminator, and the identity of the multipoint tree
from which the BFD Control packet was received. The p2mp MPLS LSP label MAY provide the identification of the multipoint tree
in case of an inclusive p-tree or upstream-assigned label
in case of aggregate p-tree. If the BFD Control packet is encapsulated in IP/UDP, then the source IP address
MUST be used to demultiplex the received BFD Control packet as described in .
The non-IP encapsulation case is described in .
defines IP/UDP encapsulation for multipoint BFD
over p2mp MPLS LSP:
UDP destination port MUST be set to 3784;
destination IP address MUST be set to the loopback address
127.0.0.1/32 for IPv4, or the loopback address ::1/128 for IPv6 .
This specification further clarifies that:
if multiple alternative paths for the given p2mp LSP Forwarding
Equivalence Class (FEC) exist, the MultipointHead
SHOULD use Entropy Label used for LSP Ping
to exercise that particular alternative path;
or the MultipointHead MAY use the UDP port number as discovered by LSP Ping traceroute
as the source UDP port number to possibly exercise that
particular alternate path.
In some environments, the overhead of extra IP/UDP encapsulations may be
considered burdensome, making the use of more compact G-ACh
encapsulation attractive. Also, the validation of the IP/UDP encapsulation of a BFD Control packet in a p2mp BFD session
may fail because of a problem not related to neither MPLS label stack nor to BFD. Avoiding unnecessary encapsulation
of p2mp BFD over an MPLS LSP improves the accuracy of the correlation of the detected failure and defect in MPLS LSP.
Non-IP encapsulation for multipoint BFD over p2mp MPLS LSP MUST use Generic
Associated Channel (G-ACh) Label (GAL) (see ) at the bottom of the label
stack followed by an Associated Channel Header (ACH). If BFD Control packet in PW-ACH encapsulation (without IP/UDP Headers) is to be used in ACH,
an implementation would not be able to verify the identity of the MultipointHead and, as a result, will not properly demultiplex BFD packets. Hence,
a new channel type value is needed. The Channel Type field in ACH MUST be set to
TBA1 value . To provide the identity of the MultipointHead for the particular
multipoint BFD session, a Source Address TLV MUST immediately follow a BFD Control message.
LSP Ping is the part of the on-demand OAM toolset used to detect and localize defects in the data plane and
verify the control plane against the data plane by ensuring that the LSP is mapped to the same FEC
at both egress and ingress endpoints.
LSP Ping, as defined in , MAY be used to bootstrap MultipointTail. If LSP Ping used,
it MUST include the Target FEC TLV and the BFD Discriminator TLV defined in . The Target FEC TLV
MUST use sub-TLVs defined in Section 3.1 . It is RECOMMENDED to set the value
of Reply Mode field to "Do not reply" for the LSP Ping to bootstrap MultipointTail of the p2mp BFD session.
Indeed, because BFD over a multipoint network is using BFD Demand mode, the LSP echo reply from a tail has no useful information to convey to the head,
unlike in the case of the BFD over a p2p MPLS LSP .
A MultipointTail that receives the LSP Ping that includes the BFD Discriminator TLV:
MUST validate the LSP Ping;
MUST associate the received BFD Discriminator value with the p2mp LSP;
MUST create a p2mp BFD session and set bfd.SessionType =
MultipointTail as described in ;
MUST use the source IP address of LSP Ping, the value
of BFD Discriminator from the BFD Discriminator TLV, and the identity of the p2mp LSP
to properly demultiplex BFD sessions.
Besides bootstrapping a BFD session over a p2mp LSP, LSP Ping SHOULD be used to verify the control plane
against the data plane periodically by checking that the p2mp LSP is mapped to the same FEC at the
MultipointHead and all active MultipointTails. The rate of generation of these LSP Ping Echo request
messages SHOULD be significantly less than the rate of generation of
the BFD Control packets because LSP Ping requires more processing to validate
the consistency between the data plane and the control plane. An implementation MAY provide configuration
options to control the rate of generation of the periodic LSP Ping Echo request messages.
defined how the BFD Demand mode can be used in multipoint networks.
When applied in MPLS, procedures specified in allow an egress LSR to detect a failure of the part of the MPLS p2mp LSP
from the ingress LSR. The ingress LSR is not aware of the state of the p2mp LSP. , using mechanisms defined in ,
defined an "active tail" behavior. An active tail might notify the head of the detected failure and responds to a poll sequence initiated by the head.
The first method, referred to as Head Notification without Polling, is mentioned in Section 5.2.1 ,
is the simplest of all described in .
The use of this method in BFD over MPLS p2mp LSP is discussed in this document.
Analysis of other methods of a head learning of the state of an MPLS p2mp LSP is outside the scope of this document.
As specified in for the active tail mode, BFD variables MUST be as follows:
On an ingress LSR:
bfd.SessionType is MultipointHead;
bfd.RequiredMinRxInterval is set to nonzero, allowing egress LSRs to send BFD Control packets.
On an egress LSR:
bfd.SessionType is MultipointTail;
bfd.SilentTail is set to zero.
In Section 5.2.1 is noted that "the tail sends unsolicited BFD packets in response
to the detection of a multipoint path failure" but without the specifics on the information in the packet and frequency of transmissions.
This document defines below the procedure of an active tail with unsolicited notifications for p2mp MPLS LSP.
Upon detecting the failure of the p2mp MPLS LSP, an egress LSR sends BFD Control packet with the following settings:
the Poll (P) bit is set;
the Status (Sta) field set to Down value;
the Diagnostic (Diag) field set to Control Detection Time Expired value;
the value of the Your Discriminator field is set to the value the egress LSR has been using to demultiplex that BFD multipoint session;
BFD Control packet is encapsulated in IP/UDP with the destination IP address of the ingress LSR
and the UDP destination port number set to 4784 per
these BFD Control packets are transmitted at the rate of one per second
until either it receives the valid for this BFD session control
packet with the Final (F) bit set from the ingress LSR or the defect
condition clears.
To improve the likelihood of notifying the ingress LSR of the failure of the p2mp MPLS LSP,
the egress LSR SHOULD initially transmit three BFD Control packets defined above in short succession.
An ingress LSR that has received the BFD Control packet, as described above,
sends the unicast IP/UDP encapsulated BFD Control packet with the Final (F) bit set
to the egress LSR.
The BGP-BFD Attribute MAY be used to bootstrap multipoint BFD
session on a tail.
This document does not introduce new security aspects but inherits all security considerations
from , , ,
, , and .
Also, BFD for p2mp MPLS LSP MUST follow the requirements listed in section 4.1 to avoid congestion
in the control plane or the data plane caused by the rate of generating BFD Control packets. An operator SHOULD
consider the amount of extra traffic generated by p2mp BFD when selecting the interval at which the
MultipointHead will transmit BFD Control packets. Also, the operator MAY consider the size of the packet the MultipointHead transmits
periodically as using IP/UDP encapsulation, which adds up to 28 octets, more than 50%
of the BFD Control packet length, comparing to G-ACh encapsulation.
IANA is requested to allocate value (TBA1) from its MPLS Generalized Associated Channel (G-ACh) Types registry.
Value
Description
Reference
TBA1
Multipoint BFD Session
This document
The author sincerely appreciates the comments received from Andrew Malis and thought stimulating questions from Carlos Pignataro.