Internet DRAFT - draft-liu-mpls-ldp-p2mp-reroute
draft-liu-mpls-ldp-p2mp-reroute
Network Working Group Shuying Liu
Internet Draft Gang Cheng
Expires: February 25, 2007 Lianshu Zheng
Huawei Technologies
August 25, 2006
Reroute Extensions to LDP for P2MP LSP
draft-liu-mpls-ldp-p2mp-reroute-01.txt
Status of this Memo
By submitting this Internet-Draft, each author represents that
any applicable patent or other IPR claims of which he or she is
aware have been or will be disclosed, and any of which he or she
becomes aware will be disclosed, in accordance with Section 6 of
BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-Drafts
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html
This Internet-Draft will expire on February 25, 2007.
Abstract
This document describes some extensions to the Label Distribution
Protocol (LDP) for the reroute of point to multi-point (P2MP) Label
Switched Paths (LSPs) in Multi-Protocol Label Switching (MPLS)
networks. The solution relies on LDP only and has no requirement of a
multicast routing protocol in the network. Protocol elements and
procedures for this solution are described for rerouting a P2MP LSP
in the following cases:1)network failure (link or node); 2)a better
path emerges (e.g. new link available, metric change);3)planned
maintenance. The rerouting mechanism described in this document can
minimize the time of traffic disruption when network failure happens.
It will also minimize the data duplication and guarantee the traffic
Liu Expires February 25, 2007 [Page 1]
Internet-Draft Reroute Extensions to LDP for P2MP LSP August 2006
continuity during the procedure of rerouting in the last two cases
mentioned above.
Conventions used in this document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC-2119
.
Table of Contents
1. Terminology......................................................3
2. Introduction.....................................................3
3. Local repair techniques for a P2MP LSP under network failure.....4
3.1. Technique to find the downstream adjoining LSR of a failed
link or a failed LSR.............................................5
3.2. Rebuilding the LSP from the downstream LSR to the root LSR..5
3.2.1. Processes for one P2MP LSP.............................5
3.2.2. Processes for many P2MP LSPs...........................5
3.3. An example of local repair..................................6
4. Rebuilding a non-shortest P2MP LSP into the shortest P2MP LSP....7
4.1. LDP Extensions..............................................7
4.1.1. Path Check message.....................................7
4.1.2. Path Modify message....................................9
4.1.3. Path_Modify_Flag......................................11
4.2. The operations of Path Check message.......................11
4.2.1. Root LSR operation..........................................11
4.2.2. Transit LSR operation.......................................11
4.2.3. Leaf LSR operation..........................................12
4.3. The operations of Path Modify message......................12
4.3.1. Leaf LSR operation..........................................12
4.3.2. Transit LSR operation.......................................13
4.3.3. Root LSR operation..........................................14
4.4. An example of rebuilding one P2MP LSP......................14
5. Installing multicast forwarding state to LFIB...................15
6. Operations during local repairing and rebuilding P2MP LSP.......16
7. Security Considerations.........................................17
8. IANA Considerations.............................................17
9. Acknowledgments.................................................17
10. References.....................................................18
10.1. Normative References......................................18
10.2. Informative References....................................18
Author's Addresses.................................................18
Intellectual Property Statement....................................19
Disclaimer of Validity.............................................19
Copyright Statement................................................19
Liu Expires February 25, 2007 [Page 2]
Internet-Draft Reroute Extensions to LDP for P2MP LSP August 2006
Acknowledgment.....................................................19
1. Terminology
LSR: Label Switching Router
LSP: MPLS Label Switched Path
Ingress LSR: Router acting as a sender of a LSP
Egress LSR: Router acting as a receiver of a LSP
P2P LSP: A LSP that has one unique Ingress LSR and one unique Egress
LSR
MP2P LSP: A LSP that has one or more Ingress LSRs and one unique
Egress LSR
P2MP LSP: A LSP that has one unique Ingress LSR and one or more
Egress LSRs
Leaf LSR: Egress LSR of a P2MP LSP
Transit LSR: A LSR of a P2MP LSP that has one or more downstream LSRs
Branch LSR: A LSR of a P2MP LSP that has more than one downstream LSR
Bud LSR: A LSR of a P2MP LSP that is an egress but also has one or
more directly connected downstream LSRs
ILM: Incoming Label Map
LFIB: label forwarding information base
2. Introduction
The LDP protocol is described in [2]. It defines the mechanisms for
setting up point-to-point (P2P) and multipoint-to-point (MP2P) LSPs
in MPLS networks. There are emerging requirements for supporting
delivery of point-to-multipoint applications in MPLS networks, such
as those defined in [4] and [5].
An extension has been made to LDP for setting up point-to-multipoint
(P2MP) and multipoint-to-multipoint(MP2MP) LSPs in [6], the extension
rely upon the unicast routing information. In [6], there is a basic
rerouting mechanism for P2MP LSP and MP2MP LSP when unicast routing
Liu Expires February 25, 2007 [Page 3]
Internet-Draft Reroute Extensions to LDP for P2MP LSP August 2006
information changes in the following cases:1)network failure; 2)a
better path emerges;3)planned maintenance. But an issue exists:
When a large number of P2MP LSPs exists in MPLS networks, if unicast
routing information changes, there would be many LSRs whose upstream
LSRs have changed in every P2MP LSP. Each of them sends a Label
Withdraw message to its old upstream LSR and a Label Map message to
its new upstream LSR at the same time for rebuilding the P2MP LSP
where it participates in. As a result, the load of every LSR will
increase sharply and the time of traffic disruption in every P2MP LSP
will last for a long time. The lost of packets will also occur.
Because of the foregoing reasons, the multicast services can not
scale well in MPLS networks.
To cope with the problem expatiated above, this document proposes
another mechanism for the reroute of P2MP LSPs in MPLS networks. The
rerouting mechanism described in this document can minimize the time
of traffic disruption when network failure happens. It will also
minimize the data duplication and guarantee the traffic continuity
during the procedure of rerouting in case of a better path emerging
and planned maintenance.
Section 3 describes local repair techniques for a P2MP LSP in case of
network failure (link or node). Section 4 describes the LDP protocol
extensions to support rebuilding a non-shortest P2MP LSP into the
shortest P2MP LSP in case of a better path emerging and planned
maintenance. Section 5 addresses the process of installing a
multicast forwarding state into LFIB (label forwarding information
base) driven by unknown multicast packets. Section 6 finally
discusses special operations during local repairing in section 3 and
rebuilding a P2MP LSP in section 4.
The methods and procedures discussed in this document depend upon one
assumption: when unicast routing information changes, every LSR in
MPLS networks will check the type of every forwarding state on itself.
For a multicast forwarding state, it will not be updated when the
unicast routing information changes. For a unicast forwarding state,
it will be updated with the change of unicast routing information.
3. Local repair techniques for a P2MP LSP under network failure
When a link or a LSR in a P2MP LSP fails, two local repair techniques
are proposed to repair the disconnected P2MP LSP: one is used to find
the downstream adjoining LSR of the failed link or the failed LSR in
the P2MP LSP, another is used to rebuild the LSP from the downstream
adjoining LSR of the failed link or the failed LSR to the root LSR.
Liu Expires February 25, 2007 [Page 4]
Internet-Draft Reroute Extensions to LDP for P2MP LSP August 2006
3.1. Technique to find the downstream adjoining LSR of a failed link or
a failed LSR
When a link in a P2MP LSP fails, all adjoining LSRs of the failed
link can sense the failure, including the downstream adjoining LSR
and the upstream adjoining LSR. Every adjoining LSR will check its
interface which the failed link attaches to, if the interface is the
current incoming interface of the multicast forwarding state, this
adjoining LSR is then the downstream adjoining LSR of the failed link
in the P2MP LSP, otherwise this adjoining LSR is not the downstream
adjoining LSR of the failed link in the P2MP LSP. The corresponding
technique for a failed link attached to an Ethernet LAN interface is
outside the scope of this document.
When a LSR in a P2MP LSP fails, all adjoining LSRs of the failed LSR
can find the failure, including the downstream adjoining LSRs and the
upstream adjoining LSRs. Every adjoining LSR will check the outgoing
interface of next hop to the failed LSR, if the interface is the
current incoming interface of the multicast forwarding state, this
adjoining LSR is then the downstream adjoining LSR of the failed LSR
in the P2MP LSP, otherwise this adjoining LSR is not the downstream
adjoining LSR of the failed LSR in the P2MP LSP. The corresponding
technique for a failed LSR within an Ethernet LAN is outside the
scope of this document.
3.2. Rebuilding the LSP from the downstream LSR to the root LSR
3.2.1. Processes for one P2MP LSP
After the downstream adjoining LSR of a failed link/LSR is found in a
P2MP LSP, it begins to rebuild the LSP from itself to the root LSR.
The downstream adjoining LSR assigns a label, and sends a P2MP Label
Map message to its upstream LSR along the best path from itself to
the root LSR. The LSR which receives the P2MP Label Map message later
will also assign a label, and send a P2MP Label Map message to its
upstream LSR again. This process will be repeated step by step until
the LSP to root LSR is rebuilt.
When the downstream adjoining LSR of the failed link/LSR can not find
the next hop to the root LSR, it will send a label release message to
its downstream LSR along P2MP LSP to release the sub P2MP LSP which
can not forward multicast traffic because of network failure.
3.2.2. Processes for many P2MP LSPs
When a link or a LSR fails, many P2MP LSPs may be affected. For some
P2MP LSPs, there may be a common downstream adjoining LSR and a
Liu Expires February 25, 2007 [Page 5]
Internet-Draft Reroute Extensions to LDP for P2MP LSP August 2006
common new upstream LSR, the downstream adjoining LSR could assign
labels for those P2MP LSPs and compress these labels into a P2MP
label Map message, then it sends the P2MP Label Map message to the
new upstream LSR along the best path. The LSR which receives the P2MP
Label Map message later could take the same operations as above if
many P2MP LSPs have a common upstream LSR. This process will be
repeated step by step until every P2MP LSP is rebuilt to its root LSR.
When the downstream adjoining LSR in a P2MP LSP can not find the next
hop to the root LSR, it will take the same operations as section
3.2.1.
3.3. An example of local repair
This section presents an example of local repair techniques for a
P2MP LSP in case of network failure.
[R3]--------[R5]---receiver1
/ \ /
source--[R1] [R4]
\ / \
[R2] [R6]---receiver2
the metric of R1->R2: 5 ; the metric of R1->R3: 5
the metric of R2->R4: 5 ; the metric of R3->R4: 20
the metric of R4->R5: 5 ; the metric of R4->R6: 5
the metric of R3->R5: 16
figure 1: an example of local repair
In figure 1, there are six LSRs: R1, R2, R3, R4, R5 and R6. R1 is
root LSR, R5 and R6 are leaf LSRs. Along the best path from leaf LSRs
to the root LSR, two LSPs have been built i.e. R1->R2->R4->R5 and R1-
>R2->R4->R6. When R2 fails, its adjoining LSRs in the P2MP LSP are R1
and R4. For R4, because the outgoing interface of next hop to R2 is
the incoming interface of the multicast forwarding state for the P2MP
LSP, so R4 is the downstream adjoining LSR of R2 in the P2MP LSP.
LSRs including R1, R3, R4, R5 and R6 will not update their multicast
forwarding state with changes of unicast routing information. R4
assigns a label, and sends a P2MP Label Map message to R3. After
Liu Expires February 25, 2007 [Page 6]
Internet-Draft Reroute Extensions to LDP for P2MP LSP August 2006
receiving the P2MP Label Map message from R4, R3 also assigns a label,
and sends a P2MP Label Map message to R1. At last, the LSP from R4 to
R1 is rebuilt, and there are two new LSPs: R1->R3->R4->R5 and R1->R3-
>R4->R6.
4. Rebuilding a non-shortest P2MP LSP into the shortest P2MP LSP
In case of network failure, after the P2MP LSP is rebuilt using the
local repair techniques mentioned above, it is possibly not the
shortest P2MP LSP. In case of a better path emerging and planned
maintenance, with the changes of unicast routing information, a P2MP
LSP may become a non-shortest P2MP LSP as well. To rebuild a non-
shortest P2MP LSP into the shortest P2MP LSP, this document
introduces two additional messages and some procedures for the two
messages to the Label Distribution Protocol (LDP), and adds a flag to
multicast forwarding state.
4.1. LDP Extensions
There are three extensions to the Label Distribution Protocol (LDP),
including Path Check message Path Modify message and
Path_Modify_Flag.
4.1.1. Path Check message
A Path Check message is used to verify that whether all the LSPs from
root LSR to every leaf LSR are the shortest LSPs. The Path Check
message is created by root LSR and sent to every leaf LSR along the
P2MP LSP. Every Transit LSR will have some operations after receiving
a Path Check message. The Path Check message mainly consists of a
P2MP FEC TLV and a PATH STATUS TLV. The Path Check message is encoded
as follows:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0| Path Check TBD | Message Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| P2MP FEC TLV |
Liu Expires February 25, 2007 [Page 7]
Internet-Draft Reroute Extensions to LDP for P2MP LSP August 2006
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PATH STATUS TLV |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Path Check:
The type of the Path Check message is to be assigned by IANA.
Message Length:
Specifies the cumulative length in octets of the Message ID,
Mandatory Parameters, and Optional Parameters.
Message ID:
32-bit value used to identify this message.
P2MP FEC TLV:
Specifies the P2MP FEC component. It is inherited from [6] and
indicates the P2MP LSP that the Path Check message is used to
verify.
PATH STATUS TLV:
Specifies whether a LSP from root LSR to a leaf LSR is the shortest
LSP. It is proposed in this document, and encoded as follows:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0|0| PATH STATUS (TBD) | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PS value |
+-+-+-+-+-+-+-+-+
PATH STATUS:
Liu Expires February 25, 2007 [Page 8]
Internet-Draft Reroute Extensions to LDP for P2MP LSP August 2006
The type of the PATH STATUS TLV is to be assigned by IANA.
Length:
Specifies the length of the Value field in octets.
PS value:
Specifies whether a LSP from root LSR to a leaf LSR is the shortest
LSP. If the PS value is 0, the LSP is the shortest LSP. If the PS
value is 1, the LSP is a non-shortest LSP.
4.1.2. Path Modify message
A Path Modify message is used to rebuild a non-shortest P2MP LSP into
the shortest P2MP LSP. The Path Modify message is created by every
leaf LSR which has received a Path Check message with PS value being
1, and sent to the root LSR along the unicast shortest path from the
leaf LSR to the root LSR. Every Transit LSR will have some operations
after receiving a Path Modify message. The Path Modify message mainly
consists of a P2MP FEC TLV and a PATH MODIDY STATUS TLV. The Path
Modify message is encoded as follows:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0| Path Modify TBD | Message Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| P2MP FEC TLV |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PATH MODIFY STATUS TLV |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Path Modify:
The type of the Path Modify message is to be assigned by IANA.
Message Length:
Liu Expires February 25, 2007 [Page 9]
Internet-Draft Reroute Extensions to LDP for P2MP LSP August 2006
Specifies the cumulative length in octets of the Message ID,
Mandatory Parameters, and Optional Parameters.
Message ID:
32-bit value used to identify this message.
P2MP FEC TLV:
Specifies the P2MP FEC component. It is inherited from [6] and
indicates the P2MP LSP that the Path Modify message is used to
rebuild.
PATH MODIFY STATUS TLV:
Specifies whether a LSP from a leaf LSR to the root LSR has been
rebuilt into the shortest LSP. It is proposed in this document, and
encoded as follows:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0|0| PATH MODIFY STATUS (TBD) | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PMS value |
+-+-+-+-+-+-+-+-+
PATH MODIFY STATUS:
The type of the PATH MODIFY STATUS TLV is to be assigned by IANA.
Length:
Specifies the length of the Value field in octets.
PMS value:
Specifies whether a LSP from a leaf LSR to the root LSR has been
rebuilt into the shortest LSP. If the PMS value is 0, the LSP has
been the shortest LSP. If the PMS value is 1, the LSP is a non-
shortest LSP yet.
Liu Expires February 25, 2007 [Page 10]
Internet-Draft Reroute Extensions to LDP for P2MP LSP August 2006
4.1.3. Path_Modify_Flag
The Path_Modify_Flag is added into the structure of multicast
forwarding state for a P2MP LSP. It is used to indicate whether a LSR
in which the multicast forwarding state resides has received a Path
Modify message sent by downstream LSR in the P2MP LSP. If the
Path_Modify_Flag is 1, the LSR has received a Path Modify message. If
the Path_Modify_Flag is 0, the LSR has not received a Path Modify
message yet. The Path_Modify_Flag is set to 0 when a multicast
forwarding state is created.
4.2. The operations of Path Check message
From every outgoing interface of the multicast forwarding state for a
P2MP LSP, the root LSR sends a Path Check message to its downstream
LSR. The Path Check message is forwarded towards all the leaf LSRs
along the P2MP LSP to verify whether all the LSPs from root LSR to
every leaf LSR are the shortest LSPs.
4.2.1. Root LSR operation
When a P2MP LSP is built completely, the root LSR will create a timer
for the P2MP LSP. If the timer expires, the root LSR will reset the
timer and send a Path Check message from every outgoing interface of
the multicast forwarding state to its downstream LSR in the P2MP LSP.
At the same time, the PS value of PATH STATUS TLV in the Path Check
message is set to 0.
4.2.2. Transit LSR operation
After receiving a Path Check massage from its upstream in the P2MP
LSP, a transit LSR checks the PS value in PATH STATUS TLV.
When the PS value is 1, the transit LSR directly sends the Path Check
message from every outgoing interface of the multicast forwarding
state to its downstream LSR in the P2MP LSP, and sets
Path_Modify_Flag in the multicast forwarding state to 0.
When the PS value is 0, according unicast routing information, the
transit LSR verifies whether the outgoing interface of next hop to
the root LSR is the incoming interface of the multicast forwarding
state for the P2MP LSP. If the outgoing interface of next hop to the
root LSR is the incoming interface of the multicast forwarding state,
the transit LSR does not change the PS value. If the outgoing
interface of next hop to the root LSR is not the incoming interface
of the multicast forwarding state, the transit LSR sets the PS value
to 1. At last, the transit LSR sends the Path Check message from
Liu Expires February 25, 2007 [Page 11]
Internet-Draft Reroute Extensions to LDP for P2MP LSP August 2006
every outgoing interface of the multicast forwarding state to its
downstream LSR in the P2MP LSP, and sets Path_Modify_Flag in the
multicast forwarding state to 0.
4.2.3. Leaf LSR operation
After receiving a Path Check massage from its upstream in the P2MP
LSP, a leaf LSR checks the PS value in PATH STATUS TLV.
When the PS value is 1, the leaf LSR sets Path_Modify_Flag in the
multicast forwarding state to 0.
When the PS value is 0, according unicast routing information, the
leaf LSR verifies whether the outgoing interface of next hop to the
root LSR is the incoming interface of the multicast forwarding state
for the P2MP LSP. If the outgoing interface of next hop to the root
LSR is the incoming interface of the multicast forwarding state, the
leaf LSR does not change the PS value. If the outgoing interface of
next hop to the root LSR is not the incoming interface of the
multicast forwarding state, the leaf LSR sets the PS value to 1. In
the end, the leaf LSR sets Path_Modify_Flag in the multicast
forwarding state to 0.
After foregoing operations, every leaf LSR checks the PS value in
Path Check message. If PS value is 0, the LSP from the leaf LSR to
the root LSR is the shortest path, the whole process is complete. If
PS value is 1, the LSP for the leaf LSR to the root LSR is not the
shortest path, and it must be rebuilt.
4.3. The operations of Path Modify message
When the PS value in the received Path Check message is 1, a leaf LSR
will send a Path Modify message to its upstream LSR along the unicast
shortest path from itself to the root LSR. Then the Path Modify
message is forwarded towards the root LSR along the unicast shortest
path from the leaf LSR to the root LSR to rebuild the LSP from the
leaf LSR to the root LSR into the shortest LSP.
4.3.1. Leaf LSR operation
When the PS value in the Path Check message received is 1, according
unicast routing information, a leaf LSR will verify whether the
outgoing interface of next hop to the root LSR is the incoming
interface of the multicast forwarding state for the P2MP LSP.
If the outgoing interface of next hop to the root LSR is the incoming
interface of the multicast forwarding state, the leaf LSR sends a
Liu Expires February 25, 2007 [Page 12]
Internet-Draft Reroute Extensions to LDP for P2MP LSP August 2006
Path Modify message, in which the PMS value of PATH MODIFY STATUS TLV
is 0, to its upstream LSR from the incoming interface of the
multicast forwarding state.
Otherwise, the leaf LSR assigns a label and adds the outgoing
interface of next hop towards the root LSR into incoming interface
list of the multicast forwarding state, then the leaf LSR sends a
P2MP Label Map message from the outgoing interface of next hop toward
the root LSR to its upstream LSR, finally the leaf LSR sends a Path
Modify message, in which the PMS value of PATH MODIFY STATUS TLV is
set to 0 or 1 according the result of the Label allocation operation,
to its upstream LSR along the shortest path to the root LSR.
In the end, the leaf LSR sets the Path_Modify_Flag of multicast
forwarding state to 1.
4.3.2. Transit LSR operation
After receiving a Path Modify message, the transit LSR checks the
Path_Modify_Flag of multicast forwarding state.
If the value of Path_Modify_Flag is 1, it means the transit LSR has
received a Path Modify message and made some operations to rebuild
the LSP from itself to the root LSR into the shortest LSP previously.
If the PMS value in the received Path Modify message is 0, the whole
process is finished, if the PMS value in the received Path Modify
message is 1, the transit LSR only sends the received Path Modify
message to its upstream LSR from the outgoing interface of next hop
to the root LSR.
If the value of Path_Modify_Flag is 0, according unicast routing
information, the transit LSR will verify whether the outgoing
interface of next hop to the root LSR is the incoming interface of
the multicast forwarding state for the P2MP LSP.
If the outgoing interface of next hop to the root LSR is the
incoming interface of the multicast forwarding state, the transit
LSR sends the received Path Modify message, in which the PMS value
of PATH MODIFY STATUS TLV do not update, to its upstream LSR from
the incoming interface of the multicast forwarding state.
If the outgoing interface of next hop to the root LSR is not the
incoming interface of the multicast forwarding state, the transit
LSR assigns a label and adds the outgoing interface of next hop
toward the root LSR into incoming interface list of the multicast
forwarding state, then the transit LSR sends a P2MP Label Map
message from the outgoing interface of next hop toward the root LSR
Liu Expires February 25, 2007 [Page 13]
Internet-Draft Reroute Extensions to LDP for P2MP LSP August 2006
to its upstream LSR. Finally the transit LSR sends the received
Path Modify message, in which the PMS value of PATH MODIFY STATUS
TLV is updated to 1 or not be updated according the result of the
Label allocation operation, to its upstream LSR along the shortest
path to the root LSR.
In the end, the transit LSR sets the Path_Modify_Flag of multicast
forwarding state to 1.
4.3.3. Root LSR operation
After receiving a Path Modify message, the root LSR checks the PMS
value in the Path Modify message received, if the PMS value is 0, it
shows the P2MP LSP has been rebuilt to the shortest LSP. If the PMS
value is 1, it shows there were some failures during the rebuilding
process. The root LSR will send a Path Check message to its
downstream LSRs along the P2MP LSP until the timer of the P2MP LSP is
expired.
4.4. An example of rebuilding one P2MP LSP
This section gives an example of rebuilding a non-shortest P2MP LSP
into the shortest P2MP LSP.
---------[R4]---receiver1
/ /
source--[R1]------[R2]------[R3]-----[R5]---receiver2
the metric of R1->R2: 5 ; the metric of R2->R3: 5
the metric of R2->R4: 11 ; the metric of R3->R4: 5
the metric of R3->R5: 5
figure 2: an example of rebuilding a non-shortest P2MP LSP into the
shortest P2MP LSP
In figure 2, there are five LSRs: R1, R2, R3, R4 and R5. R1 is root
LSR, R4 and R5 are leaf LSRs. Along the best path from leaf LSRs to
the root LSR, two LSPs have been built i.e. R1->R2->R3->R4 and R1-
>R2->R3->R5. When the metric of R2->R4 is changed to 6, the P2MP LSP
will become a non-shortest P2MP LSP. LSRs including R1, R2, R3, R4
and R5 do not update their multicast forwarding state with changes of
unicast routing information.
Liu Expires February 25, 2007 [Page 14]
Internet-Draft Reroute Extensions to LDP for P2MP LSP August 2006
When the timer for the P2MP LSP is expired, R1 sends a Path Check
message, in which the PS value of PATH STATUS TLV is set to 0, to R2.
After receiving the Path Check message from R1, R2 does not update
the PS value in the Path Check message because the outgoing interface
of next hop to R1 is the incoming interface of the multicast
forwarding state for the P2MP LSP, then it sends the Path Check
message to R3. Same as R2, R3 does not update the PS value in the
Path Check message received either and sends the Path Check message
to R4 and R5. On receiving the Path Check message, R5 does not update
the PS value yet, but R4 set the PS value to 1 because the outgoing
interface of next hop to R1 is not the incoming interface of the
multicast forwarding state for the P2MP LSP. When R2, R3, R4, and R5
receive the Path Check message, they all set the Path_Modify_Flag in
the multicast forwarding state for the P2MP LSP to 0.
R5 checks the PS value of the Path Check message. The PS value is 0
shows R1->R2->R3->R5 is the shortest LSP, so R5 does not send a Path
Modify message to R3 any more.
R4 checks the PS value of the Path Check message. The PS value is 1
shows R1->R2->R3->R4 is a non-shortest LSP. R4 finds that the
outgoing interface of next hop to R1 is not the incoming interface of
the multicast forwarding state for the P2MP LSP, so it assigns a
label and sends a P2MP Label Map message from the outgoing interface
of next hop towards R1 to R2. Then R4 adds the outgoing interface of
next hop toward R1 into the incoming interface list, at last, R4 send
a Path Modify message to R2 and set the Path_Modify_Flag in the
multicast forwarding state to 1.
After R2 receives the Path Modify message from R4, it finds the
Path_Modify_Flag in the multicast forwarding state is 0 and the
outgoing interface of next hop to R1 is the incoming interface of the
multicast forwarding state, so R2 only sends the Path Modify message
to R1 and sets the Path_Modify_Flag in the multicast forwarding state
to 1. When R1 receives the Path Modify message with a PMS value being
0, it shows that the P2MP LSP has become the shortest P2MP LSP, the
whole process is finished.
In the end, there are three LSPs: R1->R2->R3->R5, R1->R2->R3->R4 and
R1->R2->R4. R1->R2->R3->R5 and R1->R2->R4 are shortest LSPs, R1->R2-
>R3->R4 is a non-shortest and unwanted LSP.
5. Installing multicast forwarding state to LFIB
After the processes of rebuilding a non-shortest P2MP LSP into the
shortest P2MP LSP mentioned above, there still are some non-shortest
and unwanted LSPs, such as R1->R2->R3->R4 in figure 2, and some LSRs
Liu Expires February 25, 2007 [Page 15]
Internet-Draft Reroute Extensions to LDP for P2MP LSP August 2006
with two incoming interfaces in the multicast forwarding state, such
as R4 in figure 2, in the P2MP LSP. The LSRs with two incoming
interfaces in the multicast forwarding state will receive two same
multicast packets from the two incoming interfaces, the situation is
data duplication which is detrimental for certain multicast
applications. To avoid data duplication as much as possible, this
document introduces the modification to the process of installing
multicast forwarding states to LFIB.
When LDP creates a multicast forwarding state for a P2MP LSP, it does
not install the multicast forwarding state into LFIB as a multicast
forwarding item until it receives an unknown multicast packet. After
a LSR receives one multicast packet for a multicast group, it lookups
a multicast forwarding item for the multicast group in LFIB, if the
multicast forwarding item is found, the multicast packet will be
forwarded according the multicast forwarding item; if the multicast
forwarding item is not found, the multicast packet will be sent to
the LDP module as an unknown multicast packet.
When the LDP module receives an unknown multicast packet, it will
search the multicast forwarding state for the unknown multicast
packet.
If the multicast forwarding state is not found, the LDP module will
create a multicast forwarding state and install the multicast
forwarding state into LFIB, in the multicast forwarding state, there
is no outgoing interface and only one incoming interface that is
exactly the interface where the unknown multicast packet come.
On the other hand, if the multicast forwarding state is found, the
LDP module will check the number of incoming interface in the
multicast forwarding state. When the number is 1, the LDP module
installs the multicast forwarding state into LFIB at once. When the
number is 2, the LDP module deletes the multicast forwarding item in
LFIB for the multicast forwarding state firstly, then the LDP module
deletes the incoming interface, which is not the outgoing interface
of next hop to the root LSR, in the multicast forwarding state and
sends a P2MP label withdraw message from the incoming interface being
deleted to the LDP peer LSR, finally the LDP module installs the
multicast forwarding state into LFIB.
6. Operations during local repairing and rebuilding P2MP LSP
A problem exists during local repairing in section 3 and rebuilding
P2MP LSP in section 4. When a LSR receives a P2MP label map message
and modifies the multicast forwarding state for the P2MP LSP, there
Liu Expires February 25, 2007 [Page 16]
Internet-Draft Reroute Extensions to LDP for P2MP LSP August 2006
may be an interface which not only is the incoming interface but also
is the outgoing interface in the multicast forwarding state.
This document introduces some special operations to cope with the
problem. When a LSR receives a P2MP label map message for the P2MP
LSP, it checks whether the incoming interface in the multicast
forwarding state is the interface where the P2MP label map message
comes. If the incoming interface in the multicast forwarding state is
the interface where the P2MP label map message comes, the LSR will
add the interface and the label to the outgoing interface list in the
multicast forwarding state. But the LSR does not install the
interface into the outgoing interface list in LFIB at the time.
When the LDP module receives an unknown multicast packet for the
multicast forwarding state, it takes the same operations as mentioned
in section 5.
7. Security Considerations
The security considerations for the base LDP specification described
in [2] is applied here as well.
8. IANA Considerations
This document creates two new LDP message types: the Path Check
message and the Path Modify message types that is to be managed by
IANA. Also, this document requires allocation of two new LDP TLV
types: the PATH STATUS and the PATH MODIFY STATUS types.
9. Acknowledgments
The authors would like to thank Hui LIU for their review and
contribution.
Liu Expires February 25, 2007 [Page 17]
Internet-Draft Reroute Extensions to LDP for P2MP LSP August 2006
10. References
10.1. Normative References
[1] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119, March 1997.
[2] C Andersson, L., Doolan, P., Feldman, N., Fredette, A., and
B.Thomas, "LDP Specification", RFC 3036, January 2001.
[3] Roux, J., "Requirements for point-to-multipoint extensions to
the Label Distribution Protocol",draft-ietf-mpls-mp-ldp-reqs-
01, July 2006.
[4] T. Morin, Ed., "Requirements for Multicast in L3 Provider-
Provisioned VPNs", draft-ietf-l3vpn-ppvpn-mcast-reqts, work in
progress.
[5] Minei, I., et al., "Label Distribution Protocol Extensions for
Point-to-Multipoint and Multipoint-to-Multipoint Label Switched
Paths",draft-ietf-mpls-ldp-p2mp-01, work in progress.
10.2. Informative References
[6] Aggarwal, R., "Extensions to RSVP-TE for Point to Multipoint TE
LSPs", draft-ietf-mpls-rsvp-te-p2mp-06 (work in progress),
July 2005.
[7] Aggarwal, R., "MPLS Upstream Label Assignment and Context
Specific Label Space", draft-ietf-mpls-upstream-label-00
(work in progress), February 2006.
Author's Addresses
Shuying Liu
Huawei Technologies
Email: lshuying@huawei.com
Gang Cheng
Huawei Technologies
Email: chenggang@huawei.com
Lianshu Zheng
Huawei Technologies
Email: verozheng@huawei.com
Liu Expires February 25, 2007 [Page 18]
Internet-Draft Reroute Extensions to LDP for P2MP LSP August 2006
Intellectual Property Statement
The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights
might or might not be available; nor does it represent that it has
made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any
assurances of licenses to be made available, or the result of an
attempt made to obtain a general license or permission for the use of
such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at
ietf-ipr@ietf.org.
Disclaimer of Validity
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Copyright Statement
Copyright (C) The Internet Society (2006).
This document is subject to the rights, licenses and restrictions
contained in BCP 78, and except as set forth therein, the authors
retain all their rights.
Acknowledgment
Funding for the RFC Editor function is currently provided by the
Internet Society.
Liu Expires February 25, 2007 [Page 19]