INTERNET DRAFT Seisho Yasukawa
draft-yasukawa-mpls-rsvp-multicast-00.txt Masanori Uga
Expires: December 2002 Hisashi Kojima
Koji Sugisono
NTT
June 2002
Extended RSVP-TE for Multicast LSP Tunnels
<draft-yasukawa-mpls-rsvp-multicast-00.txt>
Status of this Memo
This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026.
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.
Yasukawa, Uga, Kojima, Sugisono [Page 1]
Internet Draft draft-yasukawa-mpls-rsvp-multicast-00.txt June 2002
Table of Contents
1. Introduction ................................................... 3
2. Terminology .................................................... 3
3. Architecture ................................................... 5
3.1 Multicast LSP tunnels ...................................... 5
3.2 Multicast LSP topology ..................................... 7
3.3 Calculation of multicast tree route ........................ 7
3.4 Multicast LSP establishment, teardown, and modification
mechanisms ................................................. 8
3.5 Basic operation of multicast LSP tunnels ................... 9
3.6 Multicast session ..........................................11
3.6.1 Multicast session object ..............................11
3.6.2 MULTICAST_LSP_TUNNEL_IPv4 session object ..............11
3.6.3 MULTICAST_LSP_TUNNEL_IPv6 session object ..............11
3.7 Explicit routing ...........................................11
3.7.1 Tree Explicit Route Object (TERO) .....................11
3.7.2 Tree Record Route Object (TRRO) .......................15
4. Sender-initiated multicast LSP establishment ...................18
4.1 Sender-initiated Multicast LSP establishment mechanism .....18
4.2 Process of sender-initiated multicast LSP establishment ....19
4.3 Teardown mechanism .........................................20
4.4 Path/Resv error ............................................20
4.5 Message format .............................................21
4.5.1 Path message format ...................................21
4.5.2 Resv message format ...................................21
4.5.3 PathTear message format ...............................22
4.5.4 PathErr message format ................................22
4.5.5 ResvErr Message format ................................22
5. Sender-initiated grafting/pruning mechanism ....................23
5.1 Sender-initiated grafting mechanism ........................23
5.2 Sender-initiated pruning mechanism .........................26
6. Leaf-initiated multicast LSP establishment .....................28
6.1 Leaf-initiated joining mechanism ...........................28
6.2 Join Error .................................................30
6.3 Leave-initiated leaving mechanism ..........................31
6.4 Message format .............................................32
6.4.1 Join message format ...................................32
6.4.2 JoinNotify message format .............................32
6.4.3 JoinErr message format ................................33
6.4.4 Leave message format ..................................33
6.4.5 LeaveNotify Message ...................................33
7. Multi-point to multi-point multicasting ........................33
7.1 MPLS Rendezvous Point (MRP) ................................33
7.2 Add mechanism ..............................................34
7.3 Add message format .........................................35
8.Application for Traffic Engineering .............................36
8.1 Rerouting Traffic Engineered Multicast Tunnels .............36
Yasukawa, Uga, Kojima, Sugisono [Page 2]
Internet Draft draft-yasukawa-mpls-rsvp-multicast-00.txt June 2002
8.2 Re-establishment of subtree ................................37
9. Security Considerations ........................................37
10. References ....................................................37
AUTHORS' ADDRESSES ................................................38
1. Introduction
Multicast technology will become increasingly important with the
dissemination of new applications such as contents delivery services
and video conferences, which require much more bandwidth and stricter
QoS than conventional applications. From the service providers'
perspective, traffic engineering (TE) functions will be needed to
handle the large amount of multicast traffic.
This document defines some protocol extensions to the existing RSVP-
TE[1] in order to establish a multicast label switched path (LSP).
The use of label switching routers (LSRs) with these protocol
extensions defined in this document allows service providers to offer
unicast and multicast multiprotocol label switching (MPLS) services
in the same service network.
This protocol assumes a variable LSP topology, e.g., point-to-
multipoint, multipoint-to-multipoint, topologies. This document
describes how to establish point-to-multipoint and multipoint-to-
multipoint LSPs as the most basic multicast topology. It defines two
ways of constructing a point-to-multipoint LSP: sender-initiated LSP
setup and leaf-initiated LSP setup. Each method has an LSP
modification function in order to adapt to dynamic changes in the LSP
tree topology.
This MPLS architecture[10] is very flexible and can be expanded to
carry protocols other than IP multicasting, e.g., Ethernet, PPP, and
SONET/SDH, but this document only defines IP multicasting (IPv4 and
IPv6) as a forwarding equivalence class object (FEC).
2. Terminology
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 RFC2119 [5].
The reader is assumed to be familiar with the terminology in [1],
[2], [3] and [4].
Yasukawa, Uga, Kojima, Sugisono [Page 3]
Internet Draft draft-yasukawa-mpls-rsvp-multicast-00.txt June 2002
Multicast LSP:
A label switched path that has more than one egress label
switching router
Branch LSR:
A label switching router (LSR) that has more than one downstream
LSR. A branch LSR receives a single MPLS frame, makes a duplicate
of it, and sends each to downstream interfaces.
join leaf node:
A leaf node trying to join a multicast LSP.
leave leaf node:
A leaf node trying to leave a multicast LSP that it has joined
graft/prune node:
An LSR that receives a Graft/Prune message from a sender LSR and
has the responsibility to add/delete the downstream subtree
specified in the message.
MPLS Rendezvous Point (MRP):
The node binding inputs point-to-point LSP and outputs point-to-
multipoint LSP. It is mainly used to support multipoint-to-
multipoint topology.
Explicit Route Object (ERO):
An object specifying the explicit path of the message including
the object.
Tree Explicit Route Object (TERO):
An extended ERO for describing the multicast tree topology.
Record Route Object (RRO):
An object recording the information of route through which the
message including the object has passed.
Tree Record Route Object (TRRO):
An extended RRO for recording the route along which each merged
Yasukawa, Uga, Kojima, Sugisono [Page 4]
Internet Draft draft-yasukawa-mpls-rsvp-multicast-00.txt June 2002
message has traveled.
3. Architecture
3.1 Multicast LSP tunnels
This protocol defines "multicast flow" by a label that is assigned to
a set of packets at the ingress node of a point-to-multipoint LSP.
Such a point-to-multipoint LSP is referred to as a "multicast LSP
tunnel" because the traffic through it is opaque to intermediate
nodes along the LSP. To enable the identification and association of
such multicast LSP tunnels, new MULTICAST_LSP_TUNNEL session objects
are defined. Each session object carries the sender node address of a
point-to-multipoint LSP and its tunnel ID. The sender node address is
more preferable than destination (leaf) node addresses to identify a
multicast LSP tunnel because frequent topological changes may occur
and destination node addresses are not stable in this tunnel.
Therefore, the SENDER_TEMPLATE (or FILTER_SPEC) object together with
this SESSION object uniquely identify a multicast LSP tunnel. To
identify the leaf and topology of this multicast LSP tunnel,
TREE_EXPLICIT_ROUTE object and TREE_RECORD_ROUTE object are also
defined. It is very useful to associate sets of LSP tunnels in a
multicast application. This can be useful during rerouting operations
or to spread a traffic trunk over multiple multicast paths [1]. In
traffic engineering such sets are called multicast traffic engineered
tunnels (multicast TE tunnels). The TE tunnel is uniquely defined by
the SESSION object.
3.2 Multicast LSP topology
This multicast MPLS protocol supports point-to-multipoint and
multipoint-to-multipoint LSP tunnels establishment, teardown, and
modification mechanisms. A point-to-multipoint LSP can handle i)
(S,G) multicast traffic, ii) ({S},G), (*,G) multicast traffic, and
iii) ({S},{G}) multicast traffic. (S,G) represents a single sender
node with source address S transmitting multicast traffic to a
multicast group G. The ({S},G) represents several sender nodes with
source addresses {S} transmitting multicast traffic to a multicast
group G. The (*,G) represents arbitrary sender nodes transmitting
multicast traffic to a multicast group G. The ({S},{G}) represents
several sender nodes with source addresses {S} transmitting multicast
traffic to multicast groups {G}. Traffic that shares the same
multicast distribution topology and is treated in the same forwarding
manner is defined as belonging to the same FEC.
Yasukawa, Uga, Kojima, Sugisono [Page 5]
Internet Draft draft-yasukawa-mpls-rsvp-multicast-00.txt June 2002
+----+
| S |
+----+
| G
| S: Sender
V N: Node
+---+ L: Leaf node
| N |
+---+
(S,G) | |
+---+ +---+
| |
+---+ +---+
| N | | N |
+---+ +---+
|| ||
|| ||
+-++-+ +-++-+
| | | |
V V V V
+---++---+ +---++---+
| L || L | | L || L |
+---++---+ +---++---+
+----+ +----+
| S1 | | Sn |
+----+ +----+
G| |G
+--+ +--+
| | S: Sender
V V N: Node
+---+ L: Leaf node
| N |
+---+
(*,G),({S}),G) | |
+---+ +---+
| |
+---+ +---+
| N | | N |
+---+ +---+
|| ||
+-++-+ +-++-+
| | | |
V V V V
+---++---+ +---++---+
| L || L | | L || L |
+---++---+ +---++---+
Yasukawa, Uga, Kojima, Sugisono [Page 6]
Internet Draft draft-yasukawa-mpls-rsvp-multicast-00.txt June 2002
+----+ +----+
| S1 | | Sn |
+----+ +----+
G1| |Gn
+--+ +--+
| | S: Sender
V V N: Node
+---+ L: Leaf node
| N |
+---+
({S},{G}),(*,*) || ||
+---+| |+---+
|+---+ +---+|
|| ||
+---+ +---+
| N | | N |
+---+ +---+
|| || || ||
++| |++ ++| |++
|++ ++| |++ ++|
|| || || ||
VV VV VV VV
+---++---+ +---++---+
| L || L | | L || L |
+---++---+ +---++---+
Figure 1: Multicast traffic type
This protocol can also establish an multipoint-to-multipoint LSP
tunnel by combining several point-to-point LSP tunnels and a single
point-to-multipoint LSP tunnel at an MPLS rendezvous point (MRP). The
MRP binds point-to-point LSP tunnels and a point-to-multipoint LSP
tunnel. Therefore, data traffic is forwarded from sender nodes to
leaf nodes in this multipoint-to-multipoint LSP tunnel.
3.3 Calculation of multicast tree route
There are two methods of calculating the multicast tree route. It can
be calculated by: i) the sender node or the network management system
(NMS) and ii) a IP multicast routing protocol such as PIM-SM[8].
Though the first method is suitable to achieve traffic engineering,
the calculation load concentrates on the sender node or NMS. The
second method can use the existing multicast routing protocol, but it
is necessary to establish a method for cooperating with this
protocol. This cooperation is a topic for further study. This draft
assumes the first method is used.
Yasukawa, Uga, Kojima, Sugisono [Page 7]
Internet Draft draft-yasukawa-mpls-rsvp-multicast-00.txt June 2002
3.4 Multicast LSP establishment, teardown, and modification mechanisms
This multicast MPLS protocol can be applied to various multicast
applications because it supports both sender-initiated and leaf-
initiated multicast LSP tunnel establishment mechanisms. It is
preferable for multicast sender nodes to start traffic distribution
only after they have confirmed the establishment of an end-to-end
LSP. For this, we can use the sender-initiated multicast LSP tunnel
establishment mechanism. This mechanism is also preferable when
establishing a QoS-capable multicast LSP tunnel because the single
sender node can calculate the optimum multicast LSP tunnel using QoS
information.
On the other hand, some applications need a leaf-initiated multicast
LSP tunnel establishment mechanism. Nodes except for sender nodes can
establish and modify a multicast LSP tunnel optimally according to
the client's content viewing status. A leaf node that implements
IGMP[6,7] protocol in addition to this multicast MPLS protocol can
dynamically invoke the multicast LSP tunnel setup mechanism according
to the multicast client's content viewing status. If all the clients
accommodated at the leaf node stop receiving multicast traffic from
this node (e.g., all clients send a IGMP leave message to the leaf
node), the leaf node invokes this process and requests to tear down
unnecessary multicast LSP tunnels. If a client accommodated at the
leaf node starts receiving multicast traffic from this node (e.g., a
client who wants to receive this multicast data sends an IGMP Join
message to the leaf node), the leaf node invoke this process and
grafts the necessary multicast LSP tunnel.
We must assume the co-existence of both applications in this
multicast MPLS network. Therefore, the multicast MPLS protocol
supports implement both sender- and leaf-initiated multicast LSP
tunnel establishment mechanisms, and these mechanisms must work in an
interoperable manner.
Traffic engineering is more important in a multicast network
environment than a unicast one. Frequent topological changes may
occur in a multicast LSP tunnel because it has many leaf nodes and a
more complex transmission topology. We need a more reliable tunnel
re-establishment mechanism in a multicast network environment because
the nodes near to root node need greater reliability than ones placed
at leaf neighbors. For these demands, a partial multicast LSP tunnel
modification mechanism (subtree expansion and reduction mechanism) is
necessary because total multicast LSP tunnel re-establishment is not
efficient in a multicast network. Therefore, this protocol implements
a partial multicast LSP tunnel modification mechanism in both the
sender- and leaf-initiated mechanisms.
Yasukawa, Uga, Kojima, Sugisono [Page 8]
Internet Draft draft-yasukawa-mpls-rsvp-multicast-00.txt June 2002
The features supported by this multicast MPLS protocol are summarized
below. The sender-initiated multicast LSP tunnel establishment
mechanism has i) multicast LSP tunnel establishment and teardown
mechanisms and ii) partial multicast LSP (subtree LSP) tunnel
establishment, teardown, and modification mechanisms. This protocol
uses an interoperable architecture between the sender- and leaf-
initiated multicast LSP tunnel establishment mechanisms, so both
mechanisms can modify a multicast LSP tunnel established by either
mechanism.
+--------+
| Sender |
+--------+
Function 1 || |
Sender-initiated VV |
M-LSP establishment +---+
| A |
+---+
| | ^
+---+ +---+ |
| | |
+---+ +---+ | Function 3
| B | | C | | Leaf initiated
+---+ +---+ | M-LSP Join/Leave
Function 2 | || || |
Sender-initiated | +-++-+ +-++-+ |
M-LSP Graft/Prune | | | | | |
v V V V V
+---++---+ +---++---+
| D || E | | F || G |
+---++---+ +---++---+
^ ^ ^ ^
| | | |
+--+ +--+ +--+ +--+
| | | | | | | |
+--+ +--+ +--+ +--+
Figure 2: Function supported by this protocol
3.5 Basic operation of multicast LSP tunnels
This paragraph explains the basic multicast LSP tunnel establishment
mechanism of this protocol, which is an extension of the conventional
RSVP-TE protocol. Figure 3 shows the basic sender-initiated multicast
LSP tunnel establishment mechanism.
Yasukawa, Uga, Kojima, Sugisono [Page 9]
Internet Draft draft-yasukawa-mpls-rsvp-multicast-00.txt June 2002
Path Message
(SESSION, SENDER_TEMPLATE, LABEL_REQUEST, TERO, *RRO)
Resv Message
(SESSION, FILTER_SPEC, LABEL, STYLE, TRRO)
Path Path Path
-----> -----> -----> .
Ingress LSR <----- <----- <----- .
(Sender) Resv Resv Resv .
+---+ +---+ +---+ +---+
| S |------| N |------| N |------| N |.....
+---+ +---+ +---+ +---+
^| ^|
Resv||Path Resv||Path
|| ||
|V || Path
+---+ || ----->
| N |..... || <----- Egress LSR
+---+ |V Resv (Leaf)
. +---+ +---+
. | N |-----| L |
. +---+ +---+
.
.
.
Figure 3: Fundamental Multicast LSP establish mechanism
To create a multicast LSP tunnel, the sender node creates an Path
message with a TERO in addition to a LABEL_REQUEST object, a SESSION
object, and a SENDER_TEMPLATE object. The TERO includes multicast
tree information to set. The Path message is forwarded towards its
destination along a multicast path specified by the TERO. Each
intermediate node along the path records the TERO, SESSION object,
and SENDER_TEMPLATE object in its path state block. An intermediate
branch node copies the Path message using this TERO information until
the destination leaf node is reached.
When the Path message reaches the destination leaf node, the leaf
node responds to a LABEL_REQUEST by including a LABEL object in its
response Resv message. Then the Resv message is sent back upstream
toward the sender node, following the path state created by the Path
message in reverse order.
Each node that receives a Resv message containing a LABEL object uses
that label for outgoing traffic associated with this tunnel. If the
node is a branch node, it waits for all the Resv massages coming from
downstream leaf nodes. After receiving all the Resv messages, it
allocates a new label and places it in the corresponding LABEL object
of the Resv message, which it sends upstream to the previous hop
Yasukawa, Uga, Kojima, Sugisono [Page 10]
Internet Draft draft-yasukawa-mpls-rsvp-multicast-00.txt June 2002
(PHOP). Finally, the merged Resv message propagates upstream to the
sender node. Thus, a multicast LSP is established. This label
assignment is performed in downstream on-demand mode.
3.6 Multicast session
3.6.1 Multicast session object
The SESSION object defined by RSVP-TE is not used for multicasting.
To identify a multicast tunnel, MULTICAST_LSP_TUNNEL_IPv4 and
MULTICAST_LSP_TUNNEL_IPv6 are added to the SESSION object as new C-
Types. They each have a tunnel sender address and Tunnel ID.
3.6.2 MULTICAST_ LSP_TUNNEL_IPv4 session objects
Class = SESSION, C-Type = MULTICAST_ LSP_TUNNEL_IPv4
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv4 tunnel sender address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MUST be zero | Tunnel ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
3.6.3 MULTICAST_LSP_TUNNEL_IPv6 session objects
Class = SESSION, C-Type = MULTICAST_LSP_TUNNEL_ IPv6
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| IPv6 tunnel sender address |
+ +
| (16 bytes) |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MUST be zero | Tunnel ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
3.7 Explicit routing
3.7.1 Tree Explicit Route Object (TERO)
3.7.1.1 Overview
Yasukawa, Uga, Kojima, Sugisono [Page 11]
Internet Draft draft-yasukawa-mpls-rsvp-multicast-00.txt June 2002
Explicit routing is the main function of RSVP-TE. RSVP-TE defines an
ERO to show the explicit route. ERO is a list of subobjects. Each
subobject represents information about nodes composing the data path.
For multicasting, the path topology is a tree. So we extend ERO to
express a multicast tree. Therefore, we define a TERO.
TERO is included in a message concerning path establishment like the
Path message. It specifies nodes of a tree in which the message is
traversed. In particular, TERO of a Path message initiated by the
sender node contains the whole topology of the multicast tree. Nodes
other than message initiators MUST NOT delete the contents of TERO.
Each node MAY record the whole topology of the multicast tree from
TERO.
TERO is also a list of subobjects. Each subobject shows information
about a node on the multicast tree. To describe the tree topology,
each subobject should be sorted to be able to show link connectivity.
For this purpose, the subobjects are arranged in depth-first-order
and have a number of hops from the sender node. For the multicast
tree shown in the above figure 4, TERO is encoded as follows:
A
|
+----+----+
| | |
B I J
| |
+---+---+ +-+-+
| | | | |
C F G K L
| |
+-+-+ |
| | |
D E H
T={A(0),B(1),C(2),D(3),E(3),F(2),G(2),H(3),I(1),J(1),K(2),L(2)}
Figure 4: TERO corresponding to a multicast tree
3.7.1.2 Strict and loose explicit routes
Two kinds of explicit route are prepared. In a strict explicit route,
the nodes composing the route are specified strictly. A loose
explicit route allows an external routing algorithm to decide the
route between specified nodes. Multicast routing algorithm such as
PIM-SM[8] and MOSPF[9] are examples of such algorithms. These routes
are selected at each link of the tree. The protocol allows a mixture
of strict and loose explicit routes in the same multicast tree, so
Yasukawa, Uga, Kojima, Sugisono [Page 12]
Internet Draft draft-yasukawa-mpls-rsvp-multicast-00.txt June 2002
TERO should show where the strict and loose explicit routes are. The
information should relate to nodes described by subobjects. As the
information satisfying this condition, the input link status is used
to specify strict and loose explicit routes in point-to-multipoint
trees. In the case of a multicast point-to-multipoint tunnel, the
attribute of an input link relates to each node uniquely. So as the
information satisfying this condition, the input link status is used
to specify strict and loose explicit routes in a point-to-multipoint
tunnel. The L bit in a subobject of TERO shows the input link status
of the node. If the L bit shows loose, the input link belongs to a
loose explicit route. Otherwise, it belongs to a strict explicit
route.
This protocol allows the insertion of additional subobjects. In a
loose explicit route, the edge nodes of the route indicated as a
loose explicit route may know the topology of the network around the
loose explicit route. The edge node may calculate the route and
specify the route with TERO. In this case, the edge node inserts the
calculated route into the TERO of messages related to the loose
explicit route.
Consider the number of hops from the sender node to a node. It is
counted based on the TERO. If intermediate nodes between a leaf node
and the sender node belong to a strict explicit route, they are
specified in TERO and the leaf node can count the number of hops.
When loose explicit routes are part of a multicast tree, the sender
node cannot count the number of hops. Because nodes on a loose
explicit route are not specified, sender nodes cannot count the
number of hops in the loose explicit route. So they cannot calculate
the relevant number of hops of the tree nodes. Therefore, the
protocol defines the number of hops between the edges of an loose
explicit route as 1. This definition satisfies the demand for TERO;
using this definition, TERO can show the tree topology and node
connectivity.
3.7.1.3 Object format
Class = TREE_EXPLICIT_ROUTE
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
// (Subobjects) //
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Subobject format
Yasukawa, Uga, Kojima, Sugisono [Page 13]
Internet Draft draft-yasukawa-mpls-rsvp-multicast-00.txt June 2002
C-Type = IPv4_PREFIX
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|L| Type (17) | Length | IPv4 address (4 bytes) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv4 address (continued) | Prefix length | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved | Distance |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
C-Type = IPv6_PREFIX
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|L| Type (18) | Length | IPv6 address (16 bytes) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv6 address (continued) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv6 address (continued) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv6 address (continued) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv6 address (continued) | Prefix length | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved | Tree depth |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
L
The L bit is an attribute of the subobject. The L bit is set if
the route of a path between the node specified by this subobject
and its upstream node is not specified (Loose explicit route). If
the bit is not set, the route of a path is specified explicitly
(Strict explicit route).
Type
0x01 IPv4 address
0x02 IPv6 address
Length
The Length contains the total length of the subobject in bytes,
including the Type and Length fields.
Yasukawa, Uga, Kojima, Sugisono [Page 14]
Internet Draft draft-yasukawa-mpls-rsvp-multicast-00.txt June 2002
IPv4/6 address
An IPv4/6 address of node corresponding to the subobject. In the
case that the node has several IP addresses, the address of input
interface should be specified.
Prefix length
Length in bits of the IPv4/6 prefix
Distance
The distance from sender node to the node specified by the
subobject. The value of distance between neighboring nodes
specified in TERO is 1.
3.7.2 Tree Record Route Object (TRRO)
Record Route Object (RRO) is a list of subobjects describing a node.
Each subobject is sorted to show the order in which the message went
through the nodes. In multicast communication, some messages SHOULD
be merged into a new message to integrate the information that each
message conveys. In this case, RRO shows all the nodes through which
each message traveled. So RRO should be able to represent the tree
structure in multicasting. We call the extended RRO a TRRO.
When messages are merged at a branch node, their TRROs also are
merged. Each TRRO shows the topology information of the downstream
subtree. The merged TRRO is a series of downstream TRROs. The
subobject specifying the branch node is inserted at the top of the
series. So the merged TRRO shows the subtree whose root is the branch
node. In the case of a Resv message, when the message arrives at the
root node of the multicast tree related to the Resv message, TRRO
shows the current topology of the multicast tree. To represent the
tree topology, the subobjects of TRRO are sorted in depth-first-order
and they have information about the number of hops from the sender
node as the case of TERO. The topology information may be sent to all
nodes composing the multicast tree by refreshing the Path message.
Yasukawa, Uga, Kojima, Sugisono [Page 15]
Internet Draft draft-yasukawa-mpls-rsvp-multicast-00.txt June 2002
|
+----------------------|----------------------+
| Multicast | |
| tree T N |
| | |
| +--------------+--------------+ |
| | | | |
| +-----------+ +-----------+ +-----------+ |
| | Subtree 1 | | Subtree 2 | | Subtree n | |
| +-----------+ +-----------+ +-----------+ |
+---------------------------------------------+
T = {R(0),T1,T2,...,Tn}
Ti = {TRRO describing subtree i}
Figure 5 Merged TRRO
3.7.2.1 Object format
Class = TREE_EXPLICIT_ROUTE
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
// (Subobjects) //
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
3.7.2.2 Subobject format
C-Type = IPv4_PREFIX
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type (17) | Length | IPv4 address (4 bytes) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv4 address (continued) | Prefix length | Flags |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Tree depth | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Yasukawa, Uga, Kojima, Sugisono [Page 16]
Internet Draft draft-yasukawa-mpls-rsvp-multicast-00.txt June 2002
C-Type = IPv6_PREFIX
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type (18) | Length | IPv6 address (16 bytes) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv6 address (continued) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv6 address (continued) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv6 address (continued) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv6 address (continued) | Prefix length | Flags |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Tree depth | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type
0x01 IPv4 address 0x02 IPv6 address
Length
The Length contains the total length of the subobject in bytes,
including the Type and Length fields.
IPv4/6 address
A 32/128-bit unicast, host address.
Prefix length
32
Flags
0x01 Local protection available
This flag indicates that the link downstream of this node
isprotected via a local repair mechanism.
0x02 Local protection in use
This flag indicates that a local repair mechanism is used to
maintain this tunnel.
Yasukawa, Uga, Kojima, Sugisono [Page 17]
Internet Draft draft-yasukawa-mpls-rsvp-multicast-00.txt June 2002
Distance
The distance from sender node to the node specified by the
subobject. The value of distance between neighboring nodes
specified in TERO is 1.
4. Sender-initiated multicast LSP establishment
4.1 Sender-initiated Multicast LSP establishment mechanism
The sender node initiates a Path message based on the multicast tree
calculation result and establishes the multicast tree using the Path
message with TERO. The Path message MUST include SESSION object,
LABEL_REQUEST object, SENDER_TEMPLATE and TERO. The sender node sends
a Path message to the leaf nodes after initiating it. It is forwarded
along the nodes described by TERO and is copied by each branch node.
Each node records the information about SESSION object and
SENDER_TEMPLATE object as the multicast tree state. If a leaf node
receives the Path message, it initiates a Resv message that MUST
include SESSION object, FILTER_SPCE and LABEL object and sends it to
the sender node. The Resv message is sent back upstream towards the
sender node, following the reverse path of the TERO. A LABEL object
included in the Resv message is used for label binding.
When the sender node receives the Resv messages, the establishment of
the multicast LSP is finished. The Resv messages from all leaf nodes
should not arrive at the sender node at the same time to enable a
large-scale multicast tree to be constructed. So the Resv messages
SHOULD be merged at the branch node. Figure 6 shows the sequence of
multicast LSP establishment events. Node B, which is the branch node
for the nodes C, D, and E, merges the Resv messages. After this
merging, the node B initiates a Resv message and sends it upstream.
Yasukawa, Uga, Kojima, Sugisono [Page 18]
Internet Draft draft-yasukawa-mpls-rsvp-multicast-00.txt June 2002
+---node--**
| (C)
+---------node--**
| (D)
Content | (leaf)
Servers--sender--node----------------node---------------node--client
(A) (B) (E) (F)
| | | | | | |
| Path(TERO) | | | | |
|----->| | | | | |
| | Path(TERO) | | | |
| |----->| | | | |
| | Path(TERO) | | |
| |------------>| | | |
| | Path(TERO) | | |
| |------------------->| | |
| | | | | Path(TERO) | |
| | | | |----------------->| |
| | | | | Resv(TRRO) | |
| | Resv(TRRO) | |<-----------------| |
| |<-----| | | | |
| | Resv(TRRO) | | |
| |<------------| | | |
| | |Resv(TRRO) | | |
| |<-------------------| | |
| Resv(TRRO) | | | | |
|<-----| | | | | |
| | | | | | |
Figure 6 Sequence of sender-initiated multicast LSP
establishment events
4.2 Process of sender-initiated multicast LSP establishment
A node that receives a Path message refers to the SESSION object and
SENDER_TEMPLATE. The node evaluates whether the Path message is a
message for first LSP establishment or a refresh message by referring
to them. After recording the necessary information in path state
block, the node evaluates TERO. The node searches for a subobject
whose address is the same as that of the node. If the node detects a
subobject in TERO, it gets the address of the next-hop node. Then the
node sends a Path message with this address as the destination
address. Thus, the destination address of a Path message is a unicast
address. If the node is a branch node, it gets multiple addresses of
next-hop nodes from TERO. Therefore, the branch node sends multiple
Path messages to downstream nodes.
Either the intermediate node or the leaf node may calculate the
Yasukawa, Uga, Kojima, Sugisono [Page 19]
Internet Draft draft-yasukawa-mpls-rsvp-multicast-00.txt June 2002
multicast tree route in order to decentralize this calculation. So
all nodes belonging to the same multicast group need to have
information about the whole multicast tree topology in order to
prevent intersection of multicast tree. Each node MUST NOT delete
the TERO subobjects that specify nodes on the explicitly routed path
in order to get the whole multicast tree topology information. Each
node MAY record the whole multicast tree topology from TERO. In this
way, all nodes can have the same information about the whole
multicast tree topology.
Each node that receives a Resv message containing a LABEL object uses
that label for outgoing traffic associated with this LSP tunnel. If
the node is not the sender node, it allocates a new label and places
that label in the corresponding LABEL object of the Resv message,
which it sends upstream to the PHOP. The branch node that sent
multiple Path messages forwards Resv messages upstream after
receiving those for each Path message. The branch node that sent
multiple Path messages to downstream leaf nodes forwards a Resv
message upstream only after it receives all the Resv messages from
downstream nodes to whom it send a Path message. When Resv messages
are merged, a new TRRO is made using TRROs included in the those
received Resv messages. This new TRRO expresses the multicast
subtree. The branch node that merges Resv message is root node of
multicast subtree. The TRRO of the Resv messages is needed to detect
loops on the multicast tree. The node SHOULD record information of
TRRO.
4.3 Teardown mechanism
A multicast LSP tunnel is explicitly torn down by a PathTear message.
The PathTear message must be routed exactly like the corresponding
Path message. The PathTear message is copied by each branch node and
is forwarded downstream to delete the corresponding path state. Prune
and Leave messages are defined in this protocol. PathTear messages
are initiated not only by the sender node but also by the branch node
that receives a Prune or Leave message. The processes of the Prune
and Leave messages are described in sections 5.2 and 6.3.
4.4 Path/Resv error
During the multicast LSP establishment described in section 4.1 and
4.2, various errors may occur. The main reasons are bandwidth
allocation failures and unknown next hops specified by TERO. If a
node does not support a new object or new C-type defined by this
protocol, it sends error messages indicating "unknown object class"
error or an "Unknown object C-Type". A node that initiates a ResvErr
message SHOULD send ResvErr messages to all leaf nodes that are
affected by the error.
Yasukawa, Uga, Kojima, Sugisono [Page 20]
Internet Draft draft-yasukawa-mpls-rsvp-multicast-00.txt June 2002
4.5 Message format
4.5.1 Path message format
TERO is added to the Resv message. Note that a new C-Type is added
to SESSION object.
<Path Message> ::= <Common Header> [ <INTEGRITY> ]
<SESSION>
<RSVP_HOP>
<TIME_VALUES>
<TREE_EXPLICIT_ROUTE>
<LABEL_REQUEST>
[ <SESSION_ATTRIBUTE> ]
[ <POLICY_DATA> ... ]
<sender descriptor>
<sender descriptor> ::= <SENDER_TEMPLATE> <SENDER_TSPEC>
[ <ADSPEC> ]
[ <RECORD_ROUTE> ]
4.5.2 Resv message format
TRRO is added to the Resv message. Note that a new C-Type is added
to SESSION object.
Yasukawa, Uga, Kojima, Sugisono [Page 21]
Internet Draft draft-yasukawa-mpls-rsvp-multicast-00.txt June 2002
<Resv Message> ::= <Common Header> [ <INTEGRITY> ]
<SESSION><RSVP_HOP>
<TIME_VALUES>
[ <RESV_CONFIRM> ] [ <SCOPE> ]
[ <POLICY_DATA> ... ]
<STYLE> <flow descriptor list>
<flow descriptor list> ::= <FF flow descriptor list>
| <SE flow descriptor>
<FF flow descriptor list> ::= <FLOWSPEC> <FILTER_SPEC>
<LABEL> [ <TREE_RECORD_ROUTE> ]
| <FF flow descriptor list>
<FF flow descriptor>
<FF flow descriptor> ::= [ <FLOWSPEC> ] <FILTER_SPEC>
<LABEL>[ <TREE_RECORD_ROUTE> ]
<SE flow descriptor> ::= <FLOWSPEC> <SE filter spec list>
<SE filter spec list> ::= <SE filter spec>
| <SE filter spec list> <SE filter spec>
<SE filter spec> ::= <FILTER_SPEC> <LABEL> [ <TREE_RECORD_ROUTE> ]
4.5.3 PathTear message format
Note that a new C-Type is added to SESSION object.
<PathTear Message> ::= <Common Header> [ <INTEGRITY> ]
<SESSION> <RSVP_HOP>
[ <sender descriptor> ]
<sender descriptor> ::= (see earlier definition)
4.5.4 PathErr message format
Note that a new C-Type is added to SESSION object.
<PathErr message> ::= <Common Header> [ <INTEGRITY> ]
< SESSION >
<ERROR_SPEC>
[ <POLICY_DATA> ...]
[ <sender descriptor> ]
<sender descriptor> ::= (see earlier definition)
4.5.5 ResvErr Message format
Yasukawa, Uga, Kojima, Sugisono [Page 22]
Internet Draft draft-yasukawa-mpls-rsvp-multicast-00.txt June 2002
Note that a new C-Type is added to SESSION object.
<ResvErr Message> ::= <Common Header> [ <INTEGRITY> ]
< SESSION > <RSVP_HOP>
<ERROR_SPEC> [ <SCOPE> ]
[ <POLICY_DATA> ...]
<STYLE>[<error flow descriptor>]
5. Sender-initiated grafting/pruning mechanism
5.1 Sender-initiated grafting mechanism
The grafting mechanism supports to graft a partial multicast tree
(subtree) onto an established multicast tree. It allows an
intermediate node to graft (add) a subtree in order to scale up the
performance of the grafting process. We define the node that performs
subtree establishment as a graft node. The sender node sends a Graft
message that includes partial multicast information to the graft
node. The intermediate node placed between the sender node and this
graft node SHOULD NOT process this Graft message and SHOULD only
relay it to the graft node. The graft node that receives this message
MUST extract TERO information from it and perform a partial multicast
grafting process by sending a Path message and receiving a Resv
message. This grafting process is initiated not only by the sender
node but also by the NMS.
Yasukawa, Uga, Kojima, Sugisono [Page 23]
Internet Draft draft-yasukawa-mpls-rsvp-multicast-00.txt June 2002
+----node--**
| (C)
+-----------node--** +---------node-----client
| (D) | (F)
Content | | (Leaf)
Servers--Sender--node----------------node---------------node--client
(A) (B) (E) (G)
| | | | | | | |
| | Graft(TERO) | | | | |
|-------------------------->| | | |
| | | | | Path(TERO) | |
| | | | |----------------->| |
| | | | | Path(TERO) | |
| | | | |---------->| | |
| | | | | Resv(TRRO) | |
| | | | |<-----------------| |
| | | | | Resv(TRRO) | |
| | GraftNotify(TRRO) |<----------| | |
|<------------ <------------| | | |
| | | | | | | |
Figure 7: Sequence of graft process
Figure 7 shows the message sequence of the proposed grafting process.
Sender node A sends a graft message to graft node E to establish a
subtree tunnel from node E. Graft node E gets grafting tree
information by extracting TERO information from the Graft message.
Then graft node E sends Path messages that include the same TERO
object to set up an expanded tree. In this example, graft node E
sends Path messages to leaf nodes F and G. After confirming the
establishment of the expanded tree by receiving Resv messages, the
graft node MUST send a GraftNotify message to the sender node to
report the result of the grafting process. The GraftNotify message
carries expanded tree tunnel information by including a TRRO that
collects individual tree setup information carried by the Resv
messages. The GraftNotify message SHOULD NOT be processed and SHOULD
only be relayed by the intermediate node placed between the graft
node and sender node.
Figure 8 shows the error message sequence of the grafting process. In
this example, part of the expanded tree tunnel cannot be established
for some reason, such as a resource error or label assignment error.
Each node that cannot establish an LSP SHOULD send a PathErr message
that includes the error code to the graft node. The graft node that
receives these PathErr messages SHOULD extract the error codes and
collect this information into a GraftErr message and SHOULD send this
message to the graft initiator (sender node).
Yasukawa, Uga, Kojima, Sugisono [Page 24]
Internet Draft draft-yasukawa-mpls-rsvp-multicast-00.txt June 2002
+----node--** +----node-----client
| (C) | (H)
+----------node--** +-----------node-----client
| (D) | (G)
Content | | (Leaf)
Servers--Sender--node---------------node-----------------node--client
(A) (B) (E) (F)
| | | | | | | | |
| | Graft(TERO) | | | | | |
|-------------------------->| | | | |
| | | | |Path(TERO) | | |
| | | | |------------------->| |
| | | | |Path(TERO) | | |
| | | | |------------>| | |
| | | | |Path(TERO) | | |
| | | | |----->| | | |
| | | | | | Resv(TRRO) | |
| | | | |<-------------------| |
| | | | | PathErr | | |
| | | | |<------------| | |
| | | | | PathErr | | |
| | GraftNotify(TRRO) |<-----| | | |
|<------------ <------------| | | | |
| | GraftErr | | | | | |
|<--------------------------| | | | |
| | | | | | | | |
| | | | | | | | |
Figure 8: Sequence of graft error process
When a node requested to perform the grafting process does not
support this mechanism, this node SHOULD send an error message
including the unknown class object to inform the graft initiator
(sender node) of the lack of support for this mechanism. When a graft
node that is requested to perform a grafting process detects some
error in this message, it SHOULD send a GraftErr message that
includes the error code to the graft initiator (sender node). The
following are examples of errors. One example is where a requested
expanded multicast tree tunnel already exists below the graft node.
The other example is that establishment of requested subtree tunnel
is impossible in principle because TERO shows nodes that do not
exist.
Graft, GraftNotify, and GraftErr messages are introduced for the
graft process. The Graft message is utilized to expand a subtree
tunnel at a graft node. This message has the following format. It
MUST include a SESSION object and SENDER_TEMPLATE object to specify
the target multicast session. And it MUST include a TERO to describe
Yasukawa, Uga, Kojima, Sugisono [Page 25]
Internet Draft draft-yasukawa-mpls-rsvp-multicast-00.txt June 2002
the expanded multicast tree tunnel information.
<Graft Message> ::= <Common Header> [ <INTEGRITY> ]
<SESSION > <RSVP_HOP>
<TIME_VALUES>
<TREE_EXPLICIT_ROUTE>
[ <SESSION_ATTRIBUTE> ]
[ <POLICY_DATA> ... ]
<sender descriptor>
<sender descriptor> ::= <see earlier definition>
The GraftNotify message is utilized by the graft node to notify the
graft initiator (sender node) of the results of the grafting process.
This message MUST include a TRRO to describe the expanded multicast
tree tunnel information.
<GraftNotify Message> ::= <Common Header> [ <INTEGRITY> ]
< SESSION > <RSVP_HOP>
[ <RESV_CONFIRM> ] [ <SCOPE> ]
[ <POLICY_DATA> ... ]
<STYLE> <flow descriptor list>
<flow descriptor list> ::= < see earlier definition>
The GraftErr message is utilized by the graft node to explain the
reason for the error to the graft initiator. The GraftErr message
shows the converged error information carried by PathErr messages
that is addressed to the graft node. This message has the following
format. Error information is carried by the ERROR_SPEC object.
<GraftErr Message>::=<Common Header>[<INTEGRITY>]
< SESSION ><ERROR_SPEC>
[<POLICY_DATA>....]
<sender descriptor>
<sender descriptor> ::= (see earlier definition)
5.2 Sender-initiated pruning mechanism
The pruning mechanism supports prune unnecessary multicast subtree
tunnels from an established multicast tree tunnel. It allows an
intermediate node to prune unnecessary multicast subtree tunnels. We
define the node that performs the pruning as a prune node. The sender
node sends a Prune message that includes information about
unnecessary multicast subtrees to prune node. The node placed between
the sender node and this prune node SHOULD NOT process this message
and SHOULD only relay it to the prune node. The prune node that
Yasukawa, Uga, Kojima, Sugisono [Page 26]
Internet Draft draft-yasukawa-mpls-rsvp-multicast-00.txt June 2002
receives this message MUST extract TERO information from it and MUST
prune unnecessary multicast subtree tunnels by sending PathTear
messages. This pruning process is initiated not only by the sender
node but also by NMS.
+----node--** +----node-----client
| (C) | (H)
+-----------node--** +-----------node----client
| (D) | (G)
Content | | (Leaf)
Servers--Sender--node----------------node----------------node--client
(A) (B) (E) (F)
| | Prune(TERO) | | | | | |
|-------------------------->| | | | |
| | | | |Path Tear | | |
| | | | |------------------->| |
| | | | |Path Tear | | |
| | | | |------------>| | |
| | | | |Path Tear | | |
| PruneNotify | |----->| | | |
|<--------------------------| | | | |
| | | | | | | | |
Figure 9: Sequence of graft prune process
Figure 9 shows the message sequence of the pruning process. Sender
node A sends a Prune message to Prune node E to prune an unnecessary
multicast subtree tunnel from node E. Prune node E gets the
information about unnecessary the multicast subtree tunnel by
extracting TERO information from the Prune message. In this example,
graft node E sends PathTear messages to leaf nodes F, G, and H. After
it has sent all the PathTear messages, the prune node MUST send a
PruneNotify message to the sender node to report the accomplishment
of pruning process. The PruneNotify message SHOULD NOT be processed
and SHOULD only be relayed by the intermediate node placed between
the prune node and sender node.
When a node requested to perform pruning does not support this
mechanism, this node SHOULD send an error including the unknown class
object to notify the prune initiator (sender node) of the lack of
support for this mechanism. When a prune node requested to perform
pruning detects some error in this message, it SHOULD send a PruneErr
message that includes the error reason code to the prune initiator
(sender node). The following are examples of errors. One example is
where the specified unnecessary multicast subtree tunnel has already
been deleted under the pruning node. The other example is that
pruning of the unnecessary multicast subtree tunnel is impossible in
principle because TERO shows non-existing nodes.
Yasukawa, Uga, Kojima, Sugisono [Page 27]
Internet Draft draft-yasukawa-mpls-rsvp-multicast-00.txt June 2002
Prune, PruneNotify, and PruneErr message are introduced to achieve
the pruning process.
The Prune message is utilized to prune an unnecessary multicast
subtree tunnel at a prune node. This message has the following
format. It MUST include a SESSION object and SENDER_TEMPLATE to
specify the target multicast LSP tunnel Prune. And it MUST include a
TERO to describe unnecessary multicast subtree tunnel information.
<Prune Message> ::= <Common Header> [ <INTEGRITY> ]
<SESSION > <RSVP_HOP>
<TREE_EXPLICIT_ROUTE>
[ <POLICY_DATA> ... ]
<sender descriptor>
<sender descriptor> ::= (see earlier definition)
The PruneNotify message is utilized by the prune node to notify the
prune initiator (sender node) of the results of the pruning process.
<PruneNotify Message> ::= <Common Header> [ <INTEGRITY> ]
< SESSION > <RSVP_HOP>
[ <RESV_CONFIRM> ] [ <SCOPE> ]
[ <POLICY_DATA> ... ]
<STYLE> <flow descriptor list>
<flow descriptor list> ::= <see earlier definition>
The PruneErr message is utilized by the prune node to explain the
reason for the error to the Prune initiator. It MUST include
converged error information. This message has the following format.
Error information is carried by the ERROR_SPEC object.
<Prune Err Message>::=<Common Header>[<INTEGRITY>]
< SESSION ><ERROR_SPEC>
[<POLICY_DATA>....]
<sender descriptor>
<sender descriptor> ::= (see earlier definition)
6. Leaf-initiated multicast LSP establishment
6.1 Leaf-initiated joining mechanism
When a node would like to join a multicast group, it sends Join
message corresponding to the group. Here, we call the node a join
leaf node. A Join message is a trigger for establishing a QoS path
requested by a join leaf node. The node expanding a new path to a
Yasukawa, Uga, Kojima, Sugisono [Page 28]
Internet Draft draft-yasukawa-mpls-rsvp-multicast-00.txt June 2002
join leaf node is called a graft node, as in the case of grafting.
Two types of node can be the destination of a Join message. One is
the sender node of the multicast tree. In this case, the graft node
is the cross point of the multicast tree and the reverse path from
the join leaf node; it is the nearest one to the join leaf node. The
other is a node indicated by a Explicit Route object in the Join
message. In this case, the graft node is the indicated node. The
route of the expanded path is the same one through which the Join
message traveled. The nodes that a Join message goes through are
recorded in the RRO of the message. Therefore, nodes can detect a
path loop from the RRO of the Join message. A Join message has no
specifications about the QoS parameters of the expanded path. These
parameters are included in the Path/Resv message used for path
establishment.
The process of expanded path establishment is as follows. The leaf
node joining a multicast group sends a Join message to the sender
node or graft node.
First, we describe the case where the destination of the message is a
sender node. The join leaf node sends a Join message through the path
that connects to the sender node of the multicast session. The join
leaf node MUST put tunnel information in the SESSION and
SENDER_TEMPLATE objects of the Join message. To resolve the tunnel
ID, LS` ID and tunnel sender address the join leaf node queries the
NMS located in the network. The route of the path is either decided
by an external routing protocol or is the shortest path between the
sender node and join leaf node. As soon as it receives the message, a
node on the message's forwarding path checks whether it has tunnel
information specified by the message. If there is tunnel information
identified by the message, the node becomes a graft node.
Next, we describe the case where the graft node is not the sender
node of the tree. The Join message is forwarded to the specified
graft node. After the graft node receives the message, it checks the
path state block and searches the entry about the tunnel. If it
cannot find the entry, it sends a JoinErr message to the join leaf
node. The JoinErr message is defined in the next section. Otherwise,
it becomes the graft node. The graft node is responsible for
expanding the QoS path to the Join group. It sends a Path message to
allocate the bandwidth of the expanded path. The route of the
expanding path is decided by the graft node or join leaf node or NMS.
If the join leaf node specifies the route, the specified route is
recorded in the ERO of the Join message. The bandwidth allocation
finishes when the graft node receives a Resv message from the join
leaf node. The QoS parameters for the expanded path are specified in
the Path/Resv message.
Yasukawa, Uga, Kojima, Sugisono [Page 29]
Internet Draft draft-yasukawa-mpls-rsvp-multicast-00.txt June 2002
After the bandwidth allocation, the graft node notifies the sender
node of the multicast tree of the establishment of the QoS path in a
JoinNotify message. This message SHOULD NOT be processed at any
intermediate nodes. The message is a trigger for changing the
topology information of all the nodes. The information MAY be
traversed to all nodes composing the multicast tree by the Path
refresh process.
:
:
+---......
Content | (leaf)
Servers--Sender--node-----------------node-----------------node--client
(A) (E) (F) Join (G)
| Join |<-------------------| |
|<--------------------| | |
| Path | | |
|-------------------->| Path | |
| |------------------->| |
| | Resv | |
| Resv |<-------------------| |
JoinNotify |<--------------------| | |
<---------------| | | |
| | | |
| | | |
Figure 10: Sequence of join process
6.2 Join Error
During the Join process described in the previous section, various
errors may occur. In the Join process, the join leaf node is notified
of the errors and analyzes them. There are many methods for the join
leaf node to collect the information about errors. For this purpose,
we define a JoinErr message, which is sent by the graft node to the
join leaf node. It is made when the graft node receives a PathErr
message, which notifies the Path message initiator (in this case, the
graft node) (Figure 11).
Yasukawa, Uga, Kojima, Sugisono [Page 30]
Internet Draft draft-yasukawa-mpls-rsvp-multicast-00.txt June 2002
:
:
+---......
Content | (leaf)
Servers--Sender--node----------------node------------------node--client
(A) (E) (F) Join (G)
| Join |<-------------------| |
|<-------------------| | |
| Path | | |
|------------------->| | |
| PathErr | | |
|<-------------------| | |
| JoinErr | | |
|--------------------|------------------->| |
Figure 11: Sequence of JoinErr process
6.3 Leave-initiated leaving mechanism
A leaf node that wants to leave a multicast group sends a Leave
message to request the tearing down of a path. We call such a leaf
node a leave leaf node. In this case, the path from the leave leaf
node to its nearest upstream branch node is torn down. The branch
node is called a prune node and it is responsible for tearing down
the QoS path connecting to the leave leaf node. The leave leaf node
sends a Leave message to the sender node. The prune node receives the
message and processes it. Intermediate nodes below the prune node
forward the Leave message upstream. It SHOULD NOT be processed at any
intermediate nodes.
To be a prune node, a node must be a branch node. A branch node has
two or more downstream paths. Nodes in a network have the information
of the number of downstream paths for a multicast group. So the node
receiving a Leave message checks the number of downstream links and
decides whether it is a prune node or not.
As soon as it receives the message, the prune node tears down the
unnecessary path. In the path tearing process, a PathTear message is
used. When the leave leaf node receives a PathTear message, it
recognizes the completion of path tearing.
Yasukawa, Uga, Kojima, Sugisono [Page 31]
Internet Draft draft-yasukawa-mpls-rsvp-multicast-00.txt June 2002
:
:
+---......
Content | (leaf)
Servers--Sender--node-----------------node----------------node--client
(A) (E) (F) Leave (G)
| Leave |<-------------------| |
|<-------------------| | |
| PathTear | | |
|------------------->| PathTear | |
LeaveNotify | |------------------->| |
<---------------| | | |
| | | |
| | | |
Figure 12: Sequence of leave process
6.4 Message format
6.4.1 Join message format
<Join Message>::=<Common Header>[<INTEGRITY>]
<SESSION ><RSVP_HOP>
[<SCOPE>]<TIME_VALUES>
[<EXPLICIT_ROUTE>]
[<sender descriptor>]
<sender descriptor>::=(see earlier definition)
ERO contains the route on which the message is sent. It is a list of
subobjects showing node information. The route specified by the
object is calculated at leaf node or NMS. This information is used
for deciding the route of the Path message sent by the graft node.
6.4.2 JoinNotify message format
<JoinNotify Message>::=<Common Header>[<INTEGRITY>]
<SESSION><RSVP_HOP>
[<SCOPE>]
[<flow descriptor>]
<flow descriptor>::=(see earlier definition)
Yasukawa, Uga, Kojima, Sugisono [Page 32]
Internet Draft draft-yasukawa-mpls-rsvp-multicast-00.txt June 2002
6.4.3 JoinErr message format
<JoinErr Message>::=<Common Header>[<INTEGRITY>]
< SESSION ><ERROR_SPEC>
[<SCOPE>]
[<POLICY_DATA>....]
<sender descriptor>
<sender descriptor>::=(see earlier definition)
The ERROR_SPEC object contains the information about the errors. The
contents are the location and reason of the error reported by a
PathErr message.
6.4.4 Leave message format
<Leave Message>::=<Common Header>[<INTEGRITY>]
< SESSION ><RSVP_HOP>
[<SCOPE>]
[< sender descriptor >]
< sender descriptor >::=(see earlier definition)
6.4.5 LeaveNotify Message
<LeaveNotify Message> ::= <Common Header> [ <INTEGRITY> ]
< SESSION > <RSVP_HOP>
[ <RESV_CONFIRM> ] [ <SCOPE> ]
[ <POLICY_DATA> ... ]
<STYLE> <flow descriptor list>
<flow descriptor list> ::= <see earlier definition>
7. Multi-point to multi-point multicasting
7.1 MPLS Rendezvous Point (MRP)
Supporting multipoint-to-multipoint traffic is important for
multicast communication. An example of multipoint-to-multipoint
traffic is a video conference.
This protocol supports multipoint-to-multipoint LSP tunnels. An MPLS
Rendezvous Point (MRP) is defined. This is similar to the rendezvous
point of PIM-SM. The MRP receives traffic from the sender node and
forwards it to the shared multicast tree. MRP binds multiple unicast
LSPs and a multicast LSP. This binding means i) to specify the
multicast LSP to bind, ii) to bind new input labels and existing
output labels, iii) to swap them, and iv) to forward from multiple
Yasukawa, Uga, Kojima, Sugisono [Page 33]
Internet Draft draft-yasukawa-mpls-rsvp-multicast-00.txt June 2002
sender nodes to multiple leaf nodes. Because the MRP relates i)
multiple unicast LSPs from the sender nodes to the MRP to ii) a
multicast LSP from the MRP to the leaf nodes, this protocol can
support multipoint-to-multipoint LSPs. Figure 13 shows a multipoint-
to-multipoint LSP tunnel. It shows two unicast LSPs from sender node
A and B to MRP and one multicast LSP from MRP to the leaf nodes D, F,
and I. If a packet has Label A or B, MRP copies this packet to make
three packets and assigns Label C, E, and G to these packets.
+------+ +------+
/ Node / / Node /
/ (C) /----/ (D) /
+------+ +------+
^ |
Label C| |
| |
| |
+-------+ +------+ Label A +-----+ Label E +------+ +------+
/Content/ /sender/--------->/ MRP /-------->/ Node / / Node /
/Servers/----/ (A) /----------/ /---------/ (E) /--/ (F) /
+-------+ +------+ +-->+-----+ +------+ +------+
/ / | |
Label B/ / | |Label G
/ / | v
+-------+ +------+ / +------+ +------+ +--------+
/Content/ /sender/ / / Node / / Node / / Node /
/Servers/----/ (B) /----+ / (G) /-----/ (H) /--/ (I) /
+-------+ +------+ +------+ +------+ +--------+
Figure 13: Multipoint-to-multipoint LSP tunnel
7.2 Add mechanism
An Add message is defined as a new message. It establishes a unicast
LSP from the sender node to the MRP. Moreover, an Add message reports
to the MRP that a new sender node has been added.
Multiple unicast LSPs from the sender nodes to the MRP and a
multicast LSP from the MRP to the leaf nodes are treated as different
LSPs. The Tunnel ID and LSP ID of the unicast LSP have different
values from those of the multicast LSP. The MRP relates the Tunnel ID
and LSP ID of the unicast LSP to those of the multicast LSP. The MRP
keeps the multipoint-to-multipoint state by this relationship.
An Add message must specify the multicast LSP to bind. To identify a
multicast LSP to bind, BIND_SESSION object and BIND_SENDER_TEMPLATE
are defined. BIND_SESSION class and BIND_SENDER_TEMPLATE class are
added. BIND_SESSION object has the same format as SESSION object.
Yasukawa, Uga, Kojima, Sugisono [Page 34]
Internet Draft draft-yasukawa-mpls-rsvp-multicast-00.txt June 2002
BIND_SENDER_TEMPLATE has the same format as SENDER_TEMPLATE.
+----node--**
| (C)
+-----------node--**
Content | (D) (leaf)
Servers--Sender-----MRP-----------------node------------node--client
(A) (E) (F)
| Add | | | | | |
|---------->| Path | | | | |
| |----->| | | | |
| | Path | | | |
| |------------>| | | |
| | Path | | | |
| |------------------->| Path | |
| | | | |-------------->| |
| | Resv | | Resv | |
| |<-----| | |<--------------| |
| | Resv | | | |
| |<------------| | | |
| | Resv | | | |
| Resv |<-------------------| | |
|<----------| | | | | |
| Path | | | | | |
|---------->| | | | | |
| | | | | | |
Figure 14: Sequence of Add process
7.3 Add message format
Though the Add message is similar to the Path message, it has two
additional functions: i) to notify the MRP that a new sender node has
been added and ii) to identify a binding multicast LSP.
Yasukawa, Uga, Kojima, Sugisono [Page 35]
Internet Draft draft-yasukawa-mpls-rsvp-multicast-00.txt June 2002
<Add Message> ::= <Common Header> [ <INTEGRITY> ]
<SESSION><BIND_SESSION>
<RSVP_HOP>
<TIME_VALUES>
[<TREE_EXPLICIT_ROUTE>]
<LABEL_REQUEST>
[ <SESSION_ATTRIBUTE> ]
[ <POLICY_DATA> ... ]
<sender descriptor>
<BIND_SENDER_TEMPLATE>
<sender descriptor> ::= (see earlier definition)
8. Application for Traffic Engineering
8.1 Rerouting Traffic Engineered Multicast Tunnels
Traffic Engineering supports rerouting of an established TE tunnel.
The route is decided according to the administrative policy. The
detection of a more optimal path and network resource failure are
examples of situations where path rerouting is needed.
While TE tunnel rerouting is in progress, an important requirement is
avoiding traffic disruption. A useful solution to this problem is the
make-before-break concept. In this concept, traffic passes through
the old path while the new rerouted path is being established. Once
it has been established, traffic is switched to the new path and the
old path is torn down. The make-before-break concept supports
resource sharing of the common part where the old and new path cross.
This sharing is useful to avoid competition between the resources of
the two paths. Details of the make-before-break concept are given in
RFC 3209. In the case of multicasting, there are cases where the
topology of the area to be rerouted is a tree and there are many
paths that should be rerouted when path rerouting occurs at once. So
it is desirable that multiple paths are moved in one rerouting
mechanism.
This protocol supports the make-before-break concept for multicast TE
tunnels. When a sender of a multicast reroutes part of the multicast
tree, the sender sends Path messages. Each message has route
information about a new partial tree in its TERO. While the new path
is being established, the root of the paths refreshes Path/Resv
messages for the new partial tree to be established and the old
partial tree to be rerouted. After completion of the new path, the
initiator specifies the route of the old partial tree in the TERO of
a PathTear message and sends the message to the old rerouted partial
tree. The network resource sharing is achieved by the Shared Explicit
reservation style as in the unicast make-before-break concept. So
Yasukawa, Uga, Kojima, Sugisono [Page 36]
Internet Draft draft-yasukawa-mpls-rsvp-multicast-00.txt June 2002
this protocol helps to extend the make-before-break concept to
multicast TE tunnels.
8.2 Re-establishment of subtree
A Graft message can also be used re-establish a partial multicast LSP
when the establishment of the sub-tree failed. In multicast LSP
establishment, it sometimes happens that the establishment of the
sub-tree fails and the establishment of another part of the tree
succeeds. It is inefficient in this situation for the whole multicast
LSP to be torn down by the PathTear message and for the whole
multicast LSP to be re-established by the Path message. Re-
establishment of a sub-tree whose establishment failed can be done
using the Graft message. The sender node or NMS that recognizes that
the establishment of a sub-tree failed can re-calculate another
multicast route that avoids the failure point and can reach the leaf
nodes. After this re-calculation, the sender node sends a Graft
message with TERO for sub-tree re-establishment. This re-
establishment does not cause any additional processing in nodes
except for this failure point, because the Graft process only needs
additional processes in the failure point. An LSP tunnel can be
expanded by the Graft message defined by this protocol. So this
protocol can establish LSP tunnels easily and flexibly, even if sub-
tree establishment fails.
9. Security Considerations
Security considerations will be addressed in a future revision of
this document.
10. References
[1] D. Awduche., L. Berger., D. Gan., T. Li., V. Srinivasan.,
G. Swallow "RSVP-TE: Extensions to RSVP for LSP Tunnels",
RFC3209, December 2001
[2] Braden, R., Zhang, L., Berson, S., Herzog, S. and S. Jamin,
"Resource ReSerVation Protocol (RSVP) -- Version 1, Functional
Specification", RFC 2205, September 1997.
[3] Rosen, E., Viswanathan, A. and R. Callon, "Multiprotocol Label
Switching Architecture", RFC 3031, January 2001.
[4] Awduche, D., Malcolm, J., Agogbua, J., O'Dell and J. McManus,
"Requirements for Traffic Engineering over MPLS", RFC 2702,
September 1999.
[5] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Yasukawa, Uga, Kojima, Sugisono [Page 37]
Internet Draft draft-yasukawa-mpls-rsvp-multicast-00.txt June 2002
Levels", BCP 14, RFC 2119, March 1997.
[6] W. Fenner, "Internet Group Management Protocol, IGMP, version
2", RFC 2236, November 1997.
[7] Cain, B., "Internet Group Management Protocol, Version
3", draft-ietf-idmr-igmp-v3-11.txt, May 2002
[8] D. Estrin, D. Farinacci, A. Helmy, D. Thaler, S. Deering,
M. Handley, V. Jacobson, C. Liu, P. Sharma, L. Wei. "Protocol
Independent Multicast-Sparse Mode (PIM-SM): Protocol
Specification.", RFC 2362, June 1998.
[9] J. Moy., "Multicast Extensions to OSPF", RFC 1584, March 1994
[10] Lou Berger., et al. "Generalized MPLS - Signaling Functional
Description" , draft-ietf-mpls-generalized-signaling-08.txt ,
April 2002
Author's Address
Seisho Yasukawa
NTT Network Service Systems Laboratories, NTT Corporation
9-11, Midori-Cho 3-Chome
Musashino-Shi, Tokyo 180-8585 Japan
Phone: +81 422 59 4769
EMail: yasukawa.seisho@lab.ntt.co.jp
Masanori Uga
NTT Network Service Systems Laboratories, NTT Corporation
9-11, Midori-Cho 3-Chome
Musashino-Shi, Tokyo 180-8585 Japan
Phone: +81 422 59 4804
EMail: uga.masanori@lab.ntt.co.jp
Hisashi Kojima
NTT Network Service Systems Laboratories, NTT Corporation
9-11, Midori-Cho 3-Chome
Musashino-Shi, Tokyo 180-8585 Japan
Phone: +81 422 59 6070
Yasukawa, Uga, Kojima, Sugisono [Page 38]
Internet Draft draft-yasukawa-mpls-rsvp-multicast-00.txt June 2002
EMail: kojima.hisashi@lab.ntt.co.jp
Koji Sugisono
NTT Network Service Systems Laboratories, NTT Corporation
9-11, Midori-Cho 3-Chome
Musashino-Shi, Tokyo 180-8585 Japan
Phone: +81 422 59 2605
EMail: sugisono.koji@lab.ntt.co.jp
Yasukawa, Uga, Kojima, Sugisono [Page 39]