Bidirectional Forwarding Detection (BFD) in Segment Routing Networks Using MPLS DataplaneZTE Corp.gregimirsky@gmail.comNuage Networksjefftant.ietf@gmail.comGoogleIlya@nobulus.comHuaweimach.chen@huawei.com
Routing
SPRING Working GroupInternet-DraftLSP PingBFD
Segment Routing (SR) architecture leverages the paradigm of source routing. It
can be realized in the Multiprotocol Label Switching (MPLS) network without any change to the data plane.
A segment is encoded as an MPLS label and an ordered list of segments
is encoded as a stack of labels.
Bidirectional Forwarding Detection (BFD) is expected
to monitor any kind of paths between systems. This document defines
how to use Label Switched Path Ping to bootstrap and control path
in reverse direction of
a BFD session on the Segment Routing static MPLS tunnel and applicability of
BFD Demand mode to SR-MPLS domain.
, , and
established the Bidirectional Forwarding Detection (BFD)
protocol for IP networks. and set rules
of using BFD Asynchronous mode over Multiprotocol Label Switching (MPLS)
Label Switched Path (LSP). These latter standards implicitly assume that the egress
BFD peer, which is the egress Label Edge Router (LER),
will use the shortest path route regardless of the path the ingress LER
uses to send BFD control packets towards it.
This document defines use of LSP Ping for Segment Routing networks over MPLS
dataplane to bootstrap
and control path of a BFD session from the egress to ingress LER
using static MPLS tunnel.
BFD: Bidirectional Forwarding DetectionFEC: Forwarding Equivalence ClassMPLS: Multiprotocol Label SwitchingSR-MPLS Segment Routing with MPLS data planeLSP: Label Switching PathLER: Label Edge RouterSR Segment Routing
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.
As demonstrated in
introduction of Segment Routing network domains
with an MPLS data plane requires three new sub-TLVs that
MAY be used with Target Forwarding Equivalence Class (FEC) TLV. Section 6.1 addresses use of
the new sub-TLVs in Target FEC TLV in LSP ping and LSP traceroute.
For the case of LSP ping the
states that:
Initiator MUST include FEC(s) corresponding to the destination segment.
Initiator, i.e. ingress LSR, MAY include FECs corresponding to some or all of
segments imposed in the label stack by the ingress LSR to
communicate the segments traversed.
It has been noted in that a BFD session monitors for
defects particular <MPLS LSP, FEC> tuple. clarified
how to establish and operate multiple BFD sessions for the same <MPLS LSP, FEC> tuple.
Because only ingress edge router is aware of the SR-based explicit route the egress edge router
can associate the LSP ping with BFD Discriminator TLV with only one of the FECs it advertised for
the particular segment. Thus this document clarifies that:
When LSP Ping is used to bootstrap a BFD session
the FEC corresponding
to the destination segment to be associated with the BFD session
MUST be as the very last sub-TLV in the Target FEC TLV.
Encapsulation of a BFD Control packet in Segment Routing network with MPLS dataplane
MUST follow Section 7 when IP/UDP header used and
MUST follow Section 3.4 without IP/UDP header being used.
For BFD over MPLS LSP case, per , egress LER MAY
send BFD control packet to the ingress LER either over IP network or an MPLS LSP.
Similarly, for the case of BFD over p2p segment tunnel with MPLS data plane, the ingress LER
MAY route BFD control packet over IP network, as described in , or
transmit over a segment tunnel, as described in Section 7 .
In some cases there may be a need to direct egress BFD peer to use specific path
for the reverse direction of the BFD session by using the BFD Reverse Path TLV and following all
procedures as defined in .
For the case of MPLS dataplane,
Segment Routing Architecture
explains that "a segment is encoded as an MPLS label. An ordered list of segments is encoded as a stack of labels."
YANG Data Model for MPLS Static LSPs
models outgoing MPLS labels to be imposed as leaf-list ,
i.e., as array of rt-types:mpls-label .
This document defines new optional Non-FEC Path TLV.
The format of the Non-FEC Path TLV is presented in
Non-FEC Path TLV Type is 2 octets in length and has a value of
TBD1 (to be assigned by IANA as requested in ).
Length field is 2 octets long and defines the length in octets of the
Non-FEC Path field.
Non-FEC Path field contains a sub-TLV. Any Non-FEC Path sub-TLV
(defined in this document or to be defined in the future) for Non-FEC
Path TLV type MAY be used in this
field. None or one sub-TLV MAY be included in the Non-FEC
Path TLV. If no sub-TLV has been found in the Non-FEC Path TLV, the
egress BFD peer MUST revert to using the reverse path selected
based on its local policy. If there are more than one sub-TLV, then
the Return Code in echo reply MUST be set to value TBD3 "Too Many TLVs Detected"
(to be assigned by IANA as requested in ).
Non-FEC Path TLV MAY be used to specify the reverse path of the BFD session identified in the BFD Discriminator TLV.
If the Non-FEC Path TLV is present in the echo request message the BFD Discriminator TLV MUST
be present as well. If the BFD Discriminator TLV is absent when the Non-FEC Path TLV is
included, then it MUST be treated as malformed Echo Request, as
described in .
This document defines Static Routing MPLS Tunnel sub-TLV that MAY be used with the Non-FEC Path TLV.
The format of the sub-TLV is presented in .
The Segment Routing MPLS Tunnel sub-TLV Type is two octets in length, and has a value of TBD2
(to be assigned by IANA as requested in ).
The egress LSR MUST use the Value field as label stack for BFD control packets
for the BFD session identified by the source IP address of the MPLS LSP Ping packet
and the value in the BFD Discriminator TLV. Label Entries MUST be in network order.
When Segment Routed domain with MPLS data plane uses distributed tunnel computation BFD Reverse Path TLV MAY
use Target FEC sub-TLVs defined in .
defines how Demand mode of BFD, specified in sections 6.6 and 6.18.4 of ,
can be used to monitor uni-directional MPLS LSP. Similar procedures can be following in SR-MPLS to monitor uni-directional SR tunnels:
ingress SR node bootstraps BFD session over SR-MPLS in Async BFD mode;once BFD session is Up, the ingress node switches the egress BFD node into the Demand mode by setting D field in BFD Control packet it transmits;if the egress BFD node detects the failure of the BFD session, it sends its BFD control packet to the ingress over the IP network with Poll sequence;if the ingress node receives BFD control packet from remote node in Demand mode
with Poll sequence and Diag field indicating the failure, the ingress transmits BFD control packet with Final over IP and switches the BFD over SR-MPLS
back into Async mode, sending BFD Control packets one per second.
IANA is requested to assign new TLV type from the from Standards Action range
of the registry "Multiprotocol Label Switching Architecture (MPLS)
Label Switched Paths (LSPs) Ping Parameters - TLVs" as defined in the .
ValueTLV NameReference TBD1Non-FEC Path TLVThis document
IANA is requested to create new Non-FEC Path sub-TLV registry for the Non-FEC Path TLV as described in .
RangeRegistration ProceduresNote0-16383Standards ActionThis range is for mandatory TLVs or for optional TLVs that require an error message if not recognized.16384-31743Specification RequiredExperimental RFC needed32768-49161Standards ActionThis range is for optional TLVs that can be silently dropped if not recognized.49162-64511Specification RequiredExperimental RFC needed64512-65535Private UseIANA is requested to allocate following values from the Non-FEC Path sub-TLV registry as defined in .ValueDescriptionReference0ReservedThis document TBD2Segment Routing MPLS Tunnel sub-TLVThis document65535ReservedThis document
IANA is requested to create Non-FEC Path sub-TLV subregistry for the new Non-FEC Path TLV. assign a new Return Code value from the "Multi-Protocol Label Switching (MPLS)
Label Switched Paths (LSPs) Ping Parameters" registry, "Return Codes" sub-registry, as follows using a
Standards Action value.
ValueDescriptionReferenceX TBD3Too Many TLVs Detected.This document
Security considerations discussed in ,
, , and
apply to this document.
TBD