Network Working Group Bruce Davie
Internet Draft Cisco Systems, Inc.
Expiration Date: September 1998
Yakov Rekhter
Cisco Systems, Inc.
Eric Rosen
Cisco Systems, Inc.
Arun Viswanathan
Lucent Technologies
Vijay Srinivasan
IBM Corp.
Steven Blake
IBM Corp.
March 1998
Use of Label Switching With RSVP
draft-ietf-mpls-rsvp-00.txt
Status of this Memo
This document is an Internet-Draft. 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."
To learn the current status of any Internet-Draft, please check the
"1id-abstracts.txt" listing contained in the Internet-Drafts Shadow
Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
ftp.isi.edu (US West Coast).
Davie, et al. [Page 1]
Internet Draft draft-ietf-mpls-rsvp-00.txt March 1998
Abstract
Multiprotocol Label Switching (MPLS) allows labels to be bound to
various granularities of forwarding information, including
application flows. In this document we present a specification for
allocating and binding labels to RSVP flows, and to distributing the
appropriate binding information using RSVP messages.
Contents
1 Introduction ........................................... 2
2 Specification .......................................... 3
2.1 Label Allocation ....................................... 3
2.2 Choice of label for data forwarding .................... 4
2.3 Label space partitioning on shared media ............... 5
2.4 Label withdrawal ....................................... 5
2.5 Reservation Styles ..................................... 5
2.6 ATM-LSR considerations ................................. 6
2.7 RSVP Object Definitions ................................ 8
2.8 Non RSVP routers ....................................... 9
3 Examples ............................................... 10
3.1 Unicast ................................................ 10
3.2 Multicast .............................................. 11
4 Security Considerations ................................ 11
5 References ............................................. 12
6 Author's Addresses ..................................... 12
1. Introduction
The purpose of this document is to propose a standard method for
hosts and routers that support both label switching [1] and RSVP [4]
to associate labels with RSVP flows. The goal is to enable label
switching routers (LSRs) to be able to identify the appropriate
reservation state for a packet based on its label value. To this end,
the document describes a set of procedures for allocating and binding
labels, and a way to distribute the bindings using RSVP messages. It
also defines two new RSVP Objects: RSVP_LABEL, to carry a label in an
RSVP message, and HOP_COUNT, to enable TTL processing for RSVP flows
which pass through ATM-LSRs.
While there are several alternatives to mapping RSVP flows to labels,
this document specifies a model in which, on a given link, each
Davie, et al. [Page 2]
Internet Draft draft-ietf-mpls-rsvp-00.txt March 1998
sender to a single RSVP session is associated with one label. (There
is one exception, described below.) The rationale for this choice is
discussed below.
2. Specification
As mentioned above, in a label switching environment it is desirable
to associate each RSVP flow with a label. An RSVP flow [4] is a
simplex flow from a sending application to a set of receiving
applications identified by an IP address (and perhaps a transport
protocol port), and a session may contain several flows. An RSVP
reservation may be flow specific (fixed filter) or shared across
flows (shared explicit and wildcard).
For the purposes of this specification, we assume that all routers on
a given link are capable of sending and receiving labeled packets
over that link. Thus, for example, one would not enable labeling on
some routers on a LAN but not on others.
2.1. Label Allocation
The association between RSVP flows and labels involves the allocation
of a label to a flow, which could in principle be initiated by either
the upstream or downstream node. However, there are some strong
arguments in favor of downstream allocation that arise from the need
to coordinate label allocation for RSVP with other label allocation
schemes, e.g., the allocation of labels for best effort traffic. If
some labels were allocated by the receiver of data and some by the
sender, race conditions could arise in which both sender and receiver
allocated the same label for different purposes. This can most easily
be avoided by leaving allocation to one party. Since the receiver of
data allocates labels for best effort traffic, we believe this is
also the best choice for traffic with resource reservations.
Even when label allocation is performed by the downstream nodes, it
may be necessary to communicate label bindings from upstream to
downstream. For example, if two routers on a shared media LAN are
receiving data for the same session, that data should be sent with
the same label to both receivers. The best way to accomplish this
while retaining downstream allocation is for one of the receivers to
allocate a label, communicate the label-to-session binding to the
sender(s) on the LAN using RESV messages, and then have the sender(s)
communicate the binding to the receivers in PATH messages. The PATH
message should be sent as soon as the reservation with the label
binding is installed (rather than waiting for the normal PATH refresh
Davie, et al. [Page 3]
Internet Draft draft-ietf-mpls-rsvp-00.txt March 1998
interval), so that receivers of labeled data will be notified at once
of the fact that labeled data is about to arrive.
It is possible in this case that two or more receivers might try to
allocate the label for a single session. In this case, the upstream
node(s) will receive RESV messages for the session advertising
different labels. Any node receiving conflicting labels in this way
must break the tie in some way. The only requirement on the tie-
breaking is that it be consistent (i.e., once a choice has been made,
it should not be reversed at some later time). Simply choosing the
label in the first RESV message received is an adequate approach.
Having broken the tie, the selected label will appear in subsequent
PATH messages, and the recipients of these PATH messages must accept
the result. If for some reason (e.g. hardware limitation) the
assigned LABEL value was not acceptable to a recipient, it would need
to generate a PATH error message. Methods outside the scope of this
document (e.g. LDP) may be used to determine acceptable label ranges.
One unfortunate consequence of this method of label distribution on
shared media is that even nodes which do not wish to make
reservations for some session may receive PATH messages corresponding
to that session indicating that some other node has made a
reservation and that data for that session will now arrive with a new
(non-best effort) label. It seems necessary for the node that made
no reservation to accept the new label. At present, it is not clear
how to make the sender of data aware that all nodes are ready to
receive data with the new label. This is an area for further study.
2.2. Choice of label for data forwarding
As soon as a LSR has installed a reservation on one of its interfaces
and has received a label binding for that reservation (either for the
whole session or for some flows in the session) it should use the
chosen label for all appropriate flows. Any flows or sessions for
which label bindings have not been received must be sent using the
appropriate best effort label. This best effort label will have been
advertised by some other mechanism, such as PIM (for multicast) or
LDP (for unicast). When a router is forwarding packets out multiple
interfaces, it may be the case that reservations are installed on
some interfaces and not others. In this case, the best effort
allocated label should be used on those interfaces for which no
reservation is present.
Davie, et al. [Page 4]
Internet Draft draft-ietf-mpls-rsvp-00.txt March 1998
2.3. Label space partitioning on shared media
To ensure that a single label is not allocated twice for different
purposes by different routers, it is necessary to partition the label
space among routers on a shared media, just as described in [2]. In
fact, such partitioning is only needed for multicast sessions, and
thus the exact mechanism described in [2] can be used. A router which
has thus obtained a portion of the label space can decide
unilaterally which labels from this space to use for multicast of
best effort traffic and which to use for RSVP sessions. Similarly, in
the unicast case, a router decides locally which labels it will
allocate for best effort traffic and which for RSVP sessions.
2.4. Label withdrawal
When the original allocator of a label no longer wishes to have a
reservation for the corresponding flow or session, or if the
allocator crashes, it will stop refreshing the reservation with RESV
messages. It may also issue a ResvTear message. Upstream nodes which
had been redistributing that label using PATH messages must stop
doing so when the reservation times out or is torn down. They will
thus resume sending PATH messages with no labels, and any recipient
of those PATH messages will be at liberty to allocate a new label and
place it in a RESV message. However, it may be that the nodes that
did not crash will keep refreshing the reservation using the old
label. It is important that a router that is newly rebooted does not
try to assign that label; this should be possible, since it will
receive the PATH messages once it reboots.
A label may be withdrawn without removing the reservation by sending
a RESV message which contains no label. This would similarly be
propagated via PATH messages to other receivers, who would have the
option of allocating a new label.
2.5. Reservation Styles
So far we have glossed over the exact mapping between labels and
sessions or labels and flows. It seems clear that for fixed filter
(FF) style reservations, a label per sender is needed, since each
sender has its own allocated resources. Because of the merging rules
for SE reservations, we believe a label per sender is needed in this
case also. The following example illustrates the point.
Consider the following arrangement of LSRs:
Davie, et al. [Page 5]
Internet Draft draft-ietf-mpls-rsvp-00.txt March 1998
[R3]
/
/
[R1]----------[R2]------[R4]
where data is flowing from left to right and there are at least 2
senders to the session, S1 and S2. Suppose one of the receivers
downstream of R3 makes a shared explicit (SE) reservation for data
coming from two senders S1 and S2, while a receiver downstream of R4
makes a reservation for data coming from one sender S1. These would
be merged at R2 as a single SE reservation before forwarding to R1.
So, if we used a single label per session on the link from R1 to R2,
there would be no way for R2 to distinguish packets from sender S1
(which are covered by a reservation on both outgoing links) from
those from S2 (which are covered by a reservation only on the link to
R3. Thus, we need a label per sender for SE reservations.
Finally, for the WF case, we might imagine that a single label could
be used for the session, since all senders to the session are covered
by the reservation. For a shared tree, this is true, but for source
specific trees we need different labels for different senders since
the fact that two trees share a link at some point does not mean they
will not diverge at some later point on the way to a receiver. If we
were to use a single label for all senders to a WF session on
source-specific trees, it would be impossible to determine the
appropriate forwarding action at a point where the trees diverge.
Thus, the general rule is one label per sender to a session, with the
exception being that one label can be used for all senders to a
session with a WF reservation who are using a shared tree. Note that
some senders to a session may use a shared tree while others may be
on the source specific tree. The router allocating labels and sending
them in RESV messages needs to know which senders are on which type
of tree; it can find this out using the interface to routing
described in [5].
2.6. ATM-LSR considerations
In most respects, an ATM-LSR behaves like any other LSR that is
connected to its neighbors with point to point links. One minor
difference is that that, on ATM-LSRs which do not support VC-merge, a
label per sender is needed for all reservation styles. In theory,
this could be reduced to a label per ingress router per session for
WF reservations on a shared tree, but procedures to allocate labels
appropriately have not yet been defined.
Davie, et al. [Page 6]
Internet Draft draft-ietf-mpls-rsvp-00.txt March 1998
Note that, in WF and SE styles, resources are allocated to
reservations, not to specific senders. An ATM-LSR therefore needs to
be able to allocate resources to a collection of labels to support
these filter styles correctly.
More significantly, ATM-LSRs which cannot perform VC merge create a
problem when some but not all of their downstream neighors make
reservations. For example, in the following arrangement of four LSRs:
[R3]
/
/
[R1]----------[R2]------[R4]
Assume R2 receives a reservation from R3 but not from R4. R2 will
bind a label to the reservation and advertise it to R1. Packets from
R1 which match that reservation will arrive at R2 carrying the label
R2 assigned. Best effort packets from R1 will arrive at R2 carrying
the best effort label. Both sets of packets should be sent to R4 with
the best effort label. However, if R2 is not capable of VC merge,
best effort packets and reserved packets will become interleaved on
the way to R4.
The problem could be averted by assigning an extra label for use on
the link between R2 and R4 for each label that R2 creates on the link
to R1. Since this label is for best effort traffic, it could be
allocated using the Label Distribution Protocol in the downstream on
demand mode. This enables R2 to force the label allocation without
introducing the complexity of mixing upstream and downstream
allocation. Note that this may cause allocation of numerous labels
for best effort traffic on the R2-R4 link as a label per sender per
session will be allocated on the R1-R2 link.
When IP packets are label switched by ATM-LSRs, the TTL value in the
IP header cannot be decremented, and no TTL is available in the ATM
header. To enable TTL to be decremented by the number of ATM-LSR
hops, the proposed HOP_COUNT Object is used to count the number of
consecutive LSR hops. The object is inserted into the Path message by
a non-ATM LSR whose next hop for the session is an ATM-LSR, and
initialized with a hop count of 1. Subsequent ATM-LSRs increment the
hop-count only if there is a label-switched path for that sender flow
through that LSR. All LSRs maintain the hop count in the Path State.
The `egress' LSR, i.e., the first frame-based LSR to receive the
HOP_COUNT object, uses the count to decrement the TTL on packets for
that sender flow, and removes the HOP_COUNT object from the PATH
message.
Davie, et al. [Page 7]
Internet Draft draft-ietf-mpls-rsvp-00.txt March 1998
2.7. RSVP Object Definitions
As discussed above, labels may be carried in both PATH and RESV
messages. When a label is to be associated with a single sender, it
must immediately follow the FILTER_SPEC for that sender in the RESV
or the SENDER_TEMPLATE in the PATH message.
The wildcard filter case is the most complicated. If all senders are
using the shared tree, then only one label is needed, and can be
placed immediately following the FLOW_SPEC in the RESV. In this case,
all PATH messages must contain the same label, again following the
SENDER_TEMPLATE.
If some senders to a WF session are not using the shared tree, then
seperate labels need to be allocated for those senders and the
bindings distributed. It is necessary to enumerate the senders who
are using source specific trees and associate a label with each one;
this can be done by including a FILTER_SPEC object followed by an
RSVP_LABEL object for each such sender. All senders using the shared
tree will use the label that follows the single FLOW_SPEC in the
message.
The RSVP_LABEL object class conforms to the standard RSVP object
format:
RSVP_LABEL class = 16, C_Type = 1
0 1 2 3
+-------------+-------------+-------------+-------------+
| Length (bytes) | Class-Num | C-Type |
+-------------+-------------+-------------+-------------+
| |
// (Object contents) //
| |
+-------------+-------------+-------------+-------------+
The contents of a Label object is a stack of labels, where each label
is encoded right aligned in 4 octets. The top of the stack is in the
rightmost 4 octets of the object contents. The label stack can be
carried in packets using an encoding such as decribed in [7]. When an
ATM link is used, the low order 28 bits of the top label in the stack
are carried in the VPI/VCI field of the ATM cells.
Davie, et al. [Page 8]
Internet Draft draft-ietf-mpls-rsvp-00.txt March 1998
When no labels have been allocated to a session, the PATH messages
for that session must contain no RSVP_LABEL object. If labels have
been allocated for some senders but not others in a session, then
RSVP_LABEL objects should be included only after the SENDER_TEMPLATEs
of those senders for who labels are assigned. This enables receivers
of PATH messages to determine if a label has been assigned or if a
label assignment is required.
A node receiving a PATH message containing a label must use that
label in subsequent RESV messages for the same sender or session. If
for some reason it is unable to do this, it must generate a PATH
error message.
The HOP_COUNT object class conforms to the standard RSVP object
format:
HOP_COUNT object: Class = 17, C-Type = 1
0 1 2 3
+-------------+-------------+-------------+-------------+
| Length (bytes) | Class-Num | C-Type |
+-------------+-------------+-------------+-------------+
| Hop Count | Reserved |
+-------------+-------------+-------------+-------------+
Hop Count
Counts the length (in ISR hops) of the switched path.
2.8. Non RSVP routers
RSVP is designed to cope gracefully with non-RSVP routers anywhere in
the path between senders and receivers. However, non-RSVP routers
will not be able to receive label bindings conveyed in PATH or RESV
messages. This means that if a LSR has a downstream neighbor who is
not RSVP capable, it must not use labels advertised by RSVP messages
when forwarding data to that neighbor. This includes the case where
some routers on a LAN are RSVP capable and some are not; if an RSVP
capable router on the LAN advertises a label binding in a RESV
message, the recipient of that message cannot send labeled data using
that label if there are any non-RSVP routers on the LAN that have
joined the multicast group for that session.
Also, when RESV messages are received by a non-RSVP router, it
unwittingly passes them on towards the previous hop RSVP router. This
Davie, et al. [Page 9]
Internet Draft draft-ietf-mpls-rsvp-00.txt March 1998
could result in a label being advertised to a router which was not
directly connected to the advertiser of the label. Such a label would
be useless for data forwarding. Thus, RESV messages containing label
binding information must not be sent toward a previous hop when it
would pass through non-RSVP routers on the way. [4] describes how
routers may determine the presence of non-RSVP routers in a path.
3. Examples
3.1. Unicast
The figure below shows a simple example network in which two hosts H1
and H2 communicate through a sequence of label switched routers (R1,
R2).
[H1]------[R1]------[R2]------[H2]
Following RSVP procedures, H1 sends a RSVP PATH messages to H2. The
PATH messages traverse through R1 and R2.
When H2 determines that it would like to setup a reservation for this
particular session, it allocates a label, and sends a RESV message
containing this label to R2. H2 stores this label as an identifier
for the session, and can use it to demultiplex arriving data packets
to the appropriate application or device. When R2 receives the RESV
message, along with normal RSVP processing, it stores the value of
the label as part of the reservation state for this session and
interface. This will be the outgoing label for data packets sent by
R2 to H2. R2 then allocates a label, and sends a RESV message
containing this label to R1. When R1 receives this message, it
behaves similarly to R2, storing the label received from R2 and
allocating a new label which it sends in a RESV message to H1. Upon
receiving the message, H1 proceeds to start sending the session's
data with the label received from R1. R1 forwards the data to R2
using the label it received from R2, and R2 sends data to H2 using
the label received from H2.
Davie, et al. [Page 10]
Internet Draft draft-ietf-mpls-rsvp-00.txt March 1998
3.2. Multicast
The figure below shows a network in which two senders H1 and H2 send
traffic to two receivers H3 and H4. Routers R1, R2 and R3 are on a
shared media LAN.
|-[R3]--------[H3]
|
|
[H1]---[R1]-|-[R2]--------[H4]
/
[H2]---/
Assume that H1 and H2 are using the shared multicast tree to send
data. H1 and H2 send PATH messages toward H3 and H4. Assume H3 makes
a WF reservation by sending a RESV to R3. H3 allocates a label and
includes it in the RESV message. R3 stores this label as the label to
use for data traffic to H3 for this session. R3 allocates a label
and includes it in the RESV that it sends to R1. R1 stores this label
and includes it in subsequent PATH messages to R2 and R3. R1
allocates a label for the session and sends it in RESV messages to H1
and H2 (different labels may be used on different interfaces, as a
matter of implementation choice).
Assume H4 then makes a WF reservation. H4 allocates a label and sends
it in a RESV message to R2. R2 stores this label and will use it for
data packets to H4. R2 now sends a RESV to R1 using the label
contained in the PATH message from R1.
4. Security Considerations
Security considerations are not addressed in this version of the
document. We presume that the security procedures defined for RSVP
will handle any security issues that arise with coupling label
switching with RSVP.
Davie, et al. [Page 11]
Internet Draft draft-ietf-mpls-rsvp-00.txt March 1998
5. References
[1] Rosen, E. et al. A Proposed Architecture for MPLS, Internet
Draft, draft-ietf-mpls-arch-00.txt, Aug. 1997.
[2] Farinacci, D. Partitioning Tag Space among Multicast Routers on a
Common Subnet, Internet Draft, draft-farinacci-multicast-tag-part-
00.txt, Dec. 1996.
[3] Farinacci, D. Multicast Tag Binding and Distribution using PIM,
Internet Draft, draft-farinacci-multicast-tagsw-00.txt, Dec. 1996.
[4] Braden, R. et al. Resource ReSerVation Protocol (RSVP) -- Version
1 Functional Specification, RFC 2205, Sep. 1997.
[5] Zappala, D. RSRR: A Routing Interface For RSVP, Internet Draft,
draft-ietf-rsvp-routing-01.txt, Nov. 1996.
[6] Davie, B. et al. Use of Label Switching With ATM, Internet Draft,
draft-davie-mpls-atm-00.txt, Nov. 1997.
[7] Rosen, E. et al. Label Switching: Label Stack Encodings, Internet
Draft, draft-rosen-tag-stack-03.txt, July, 1997.
6. Author's Addresses
Bruce Davie
Cisco Systems, Inc.
250 Apollo Drive
Chelmsford, MA, 01824
E-mail: bsd@cisco.com
Yakov Rekhter
Cisco Systems, Inc.
170 Tasman Drive
San Jose, CA, 95134
E-mail: yakov@cisco.com
Davie, et al. [Page 12]
Internet Draft draft-ietf-mpls-rsvp-00.txt March 1998
Eric Rosen
Cisco Systems, Inc.
250 Apollo Drive
Chelmsford, MA, 01824
E-mail: erosen@cisco.com
Vijay Srinivasan
IBM Corporation
P. O. Box 12195
Research Triangle Park, NC 27709
E-mail: vijay@raleigh.ibm.com
Arun Viswanathan
Lucent Technologies
101 Crawford Corner Rd., #4D-537
Holmdel, NJ 07733
E-mail: arunv@dnrc.bell-labs.com
Steven Blake
IBM Corporation
PO Box 12195
Research Triangle Park, NC 27709
Email: slblake@raleigh.ibm.com
Davie, et al. [Page 13]