Internet Draft
MPLS & RSVP Working Groups Daniel Awduche
Internet Draft UUNET Technologies, Inc.
Expiration Date: February 1999
Der-Hwa Gan
Juniper Networks, Inc.
Tony Li
Juniper Networks, Inc.
George Swallow
Cisco Systems, Inc.
Vijay Srinivasan
Torrent Networks, Inc.
August 1998
Extensions to RSVP for Traffic Engineering
draft-swallow-mpls-rsvp-trafeng-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 view the entire list of current Internet-Drafts, please check the
"1id-abstracts.txt" listing contained in the Internet-Drafts Shadow
Directories on ftp.is.co.za (Africa), ftp.nordu.net (Northern
Europe), ftp.nis.garr.it (Southern Europe), munnari.oz.au (Pacific
Rim), ftp.ietf.org (US East Coast), or ftp.isi.edu (US West Coast).
Abstract
This document describes the use of RSVP, including all the necessary
extensions, to support traffic engineering with MPLS as specified in
[6].
Swallow, editor [Page 1]
Internet Draft draft-swallow-mpls-rsvp-trafeng-00.txt August 1998
We propose several additional objects that extend RSVP, allowing the
establishment of explicitly routed label switched paths (LSPs), using
RSVP as a signaling protocol. The result is the instantiation of
label-switched sessions which can be automatically routed away from
network failures, congestion, and bottlenecks.
Swallow, editor [Page 2]
Internet Draft draft-swallow-mpls-rsvp-trafeng-00.txt August 1998
Contents
1 Introduction ........................................... 4
2 Overview of operation .................................. 5
2.1 Service Classes ........................................ 6
2.2 Reservation styles ..................................... 6
2.2.1 Fixed Filter (FF) style ................................ 7
2.2.2 Wildcard Filter (WF) style ............................. 7
2.2.3 Shared Explicit (SE) style ............................. 8
2.3 LSP Tunnels ............................................ 8
2.4 Rerouting LSP Tunnels .................................. 9
3 RSVP Message Formats ................................... 10
3.1 Path message ........................................... 10
3.2 Resv message ........................................... 11
4 Objects ................................................ 11
4.1 Label Object ........................................... 11
4.1.1 Handling Label Objects in Resv messages ................ 12
4.1.2 Non-support of the Label Object ........................ 13
4.2 Label Request Object ................................... 13
4.2.1 Handling of LABEL_REQUEST .............................. 14
4.2.2 Non-support of the Label Request Object ................ 14
4.3 Explicit Route Object .................................. 15
4.3.1 Subobjects ............................................. 15
4.3.2 Applicability .......................................... 16
4.3.3 Semantics of the Explicit Route Object ................. 16
4.3.4 Strict and Loose subobjects ............................ 17
4.3.5 Loops .................................................. 18
4.3.6 Subobject semantics .................................... 18
4.3.7 Processing of the Explicit Route Object ................ 20
4.3.8 Non-support of the Explicit Route Object ............... 21
4.4 Record Route Object .................................... 22
4.4.1 Subobjects ............................................. 22
4.4.2 Applicability .......................................... 24
4.4.3 Handling RRO ........................................... 25
4.4.4 Loop Detection ......................................... 26
4.4.5 Non-support of RRO ..................................... 26
4.5 Error subcodes for ERO and RRO ......................... 27
4.6 Session, Sender Template, and Filter Spec Objects ...... 27
4.6.1 Session Object ......................................... 27
4.6.2 Sender Template Object ................................. 28
4.6.3 Filter Specification Object ............................ 29
4.6.4 Reroute procedure ...................................... 29
4.7 Session Attribute Object ............................... 30
5 RSVP Aggregate Message ................................. 33
5.1 Aggregate Header ....................................... 33
5.2 Message Formats ........................................ 35
Swallow, editor [Page 3]
Internet Draft draft-swallow-mpls-rsvp-trafeng-00.txt August 1998
5.3 Sending RSVP Aggregate Messages ........................ 35
5.4 Receiving RSVP Aggregate Messages ...................... 36
5.5 Forwarding RSVP Aggregate Messages ..................... 37
5.6 Aggregate-capable bit .................................. 37
6 Tear Confirm ........................................... 37
7 Security Considerations ................................ 39
8 Acknowledgments ........................................ 39
9 References ............................................. 39
1. Introduction
For hosts and routers that support both RSVP [1] and Multi-Protocol
Label Switching [2], it is possible to associate labels with RSVP
flows [4]. The result is that a router can identify the appropriate
reservation state for a packet based on its label value, thus greatly
simplifying packet classification. This design also improves network
performance because the same label lookup identifies forwarding
information of the packet.
Using RSVP to establish label switched paths (LSPs) clearly enables
the allocation of resources to an LSP. For example, you can allocate
bandwidth to an LSP using standard RSVP reservations and Integrated
Services service classes [7]. While this is useful, reservations are
not required. An LSP can also be established to carry best-effort
traffic without a resource reservation.
It is possible to add explicit routing capability on top of label-
switched RSVP flows [3] [5] by adding a simple EXPLICIT_ROUTE object
to RSVP. By using this object, the paths taken by label-switched
RSVP flows can be predetermined, independent of conventional IP
routing. The hops in the path can be manually configured, or
computed automatically based on the QoS requirements of the flow and
the current network load.
The purpose of this document is to organize all the objects from [3],
[4], and [5] into a single document that fully describes all the
procedures and packet formats so that interoperable implementations
are possible. A few new objects are also suggested for enhancing
management and diagnostics of LSPs. All objects described are
optional, and this document describes what happens when an object is
not supported by a node.
Finally, an RSVP aggregate message is proposed to help alleviate one
of the RSVP scaling issues: how to efficiently handle large number of
Swallow, editor [Page 4]
Internet Draft draft-swallow-mpls-rsvp-trafeng-00.txt August 1998
RSVP messages that are periodically transmitted between neighbors.
The document concentrates on unicast LSPs. Explicitly routed
multicast LSPs are left for further study.
2. Overview of operation
When an RSVP flow originates in or crosses an MPLS domain, the flow
may be label switched. To initiate label switching, the first MPLS
node inserts a LABEL_REQUEST object into the Path message. The
LABEL_REQUEST object indicates that a label binding for this path is
requested, and also provides an indication of the network layer
protocol that is to be carried over this path. The reason for this is
that the network layer protocol sent down an LSP cannot be assumed to
be IPv4, and cannot be deduced from the L2 header, which simply
identifies the higher layer protocol as being MPLS.
If the sender node has prior knowledge of an alternative route that
has better likelihood of meeting the flow's QoS requirement or that
makes more efficient use of network resources, the node can decide to
reroute some of its sessions. To do this, the node adds an
EXPLICIT_ROUTE object to the Path message.
If, during a session, the sender node finds a better route, the
session can be rerouted on the fly by simply changing the
EXPLICIT_ROUTE object. If there are problems with an EXPLICIT_ROUTE
object, either because it causes a routing loop or some intermediate
routers do not support it, the sender node is notified.
If the RECORD_ROUTE object is added to Path messages, the sender node
can receive information about the exact routing path and can prompt
for notifications from the network if the routing path changes for
any reason.
Finally, a SESSION_ATTRIBUTE object can be added to Path messages for
aiding in session identification and diagnostics. Additional control
information, such as preemption, priority, and fast-reroute, is also
included in this object.
When the EXPLICIT_ROUTE object (ERO) is present, the Path message is
forwarded towards its destination along a path specified by the ERO.
Each node along the path records the ERO in its path state block.
Nodes may also modify the ERO before forwarding the Path message, in
which case the modified ERO should be stored in the path state block.
The LABEL_REQUEST object requests intermediate routers and receiving
Swallow, editor [Page 5]
Internet Draft draft-swallow-mpls-rsvp-trafeng-00.txt August 1998
nodes to provide a label binding for the session. If a node is
incapable of providing a label binding it sends a PathErr message
with an "unknown object class" error. If the LABEL_REQUEST object is
not supported end to end, the sender node will be notified by the
first node which lacks the support.
The destination node includes a LABEL object in its response Resv
message. The LABEL object is inserted in the filter spec list
immediately following the filter spec to which it pertains. When the
LABEL object propagates upstream to the sender node, a label-switched
path is already set up for use.
The Resv message is sent back towards the sender. A node that
receives a Resv message containing a label uses that label for
outgoing traffic on this path. It also allocates a new label and
places that label in the corresponding LABEL object of the Resv
message before sending it upstream. This is the label that this node
will use for incoming traffic on this path. This label now serves as
shorthand for the Filter Spec.
2.1. Service Classes
This document does not restrict the type of Integrated Service
requested on a reservations. However, an implementation should
always be ready to accept the Controlled-Load service [7].
An LSP may not need a bandwidth reservation or a QoS guarantee. Such
LSPs can be used to deliver best-effort traffic, even if RSVP is used
for setting up LSPs. When no resources need to be allocated to the
LSP, the Sender_TSpec in the Path message can specify a token bucket
rate of zero and a token bucket size of zero. The corresponding
FLOWSPEC (in the Resv message) should carry a zero rate and size as
well. LSPs with no bandwidth reservation are not subject to
Admission Control and do not require traffic policing.
2.2. Reservation styles
The receiver node can select from among a set of possible reservation
styles for each session, and each RSVP session must have a particular
style. Senders have no influence on the choice of reservation style.
The receiver can choose different reservation styles for different
LSPs. An RSVP session is identified by a unique (destination
address, protocol, destination port) tuple.
An RSVP session can create one or more LSPs, depending on the
Swallow, editor [Page 6]
Internet Draft draft-swallow-mpls-rsvp-trafeng-00.txt August 1998
reservation style chosen.
Some reservation styles, such as FF, dedicate a particular
reservation to an individual sender node. Other reservation styles,
such as WF and SE, can share a reservation among several sender
nodes. The following sections discuss the different reservation
styles and their advantages and disadvantages.
2.2.1. Fixed Filter (FF) style
The Fixed Filter (FF) reservation style creates a distinct
reservation for traffic from each sender that is not shared by other
senders. This style is common for applications in which traffic from
each sender is likely to be concurrent and independent. The total
amount of reserved bandwidth on a link for sessions using FF is the
sum of the reservations for the individual senders.
Because each sender has its own reservation, a unique label and a
separate label-switched-path is assigned to each sender. This
results in a point-to-point LSP between every sender/receiver pair.
Because the network state overhead is proportional to the number of
LSPs, having more LSPs means that more network resources are
consumed.
2.2.2. Wildcard Filter (WF) style
With the Wildcard Filter (WF) reservation style, a single shared
reservation is used for all senders. The total reservation on a link
remains the same regardless of the number of senders. This style is
useful in applications in which not all senders send traffic at the
same time. A phone conference, for example, is an application where
not all speakers talk at the same time.
A single label-switched-path is created for all senders, because all
senders to the session are covered by the reservation. On links that
senders share, a single label is allocated. If there is only one
sender, the LSP looks like normal point-to-point connection. When
multiple senders are present, a multipoint-to-point LSP (a reversed
tree) is created. This has the advantage of minimizing the number of
LSPs (and the memory and CPU resources used for each LSP), allowing
the network to scale better.
Because of the merging rules, EXPLICIT_ROUTE objects cannot be used
with WF reservations. Hence, the use of the WF style should be
discouraged in the presence of ERO.
Swallow, editor [Page 7]
Internet Draft draft-swallow-mpls-rsvp-trafeng-00.txt August 1998
2.2.3. Shared Explicit (SE) style
Unlike the WF style, where any sender is allowed to share the
reservation, the Shared Explicit (SE) style allows a receiver to
explicitly specify the senders to be included. There is a single
reservation on a link for all the senders listed.
Only listed senders can join the reservation.
Because each sender is explicitly listed in the Resv message, you can
assign separate labels to each sender, therefore creating separate
LSPs for each sender. [4] describes the reason why separate LSPs are
needed.
Having separate LSPs for each sender also eliminates the
incompatibility with the EXPLICIT_ROUTE object. Path messages from
different senders can carry their own ERO, and the paths taken by the
senders can converge and diverge at any point.
Unlike the FF style, all SE LSPs share the single reservation.
Unlike the WF style, a separate LSP is created for each sender.
2.3. LSP Tunnels
When LSPs are used to carry flows, it becomes possible to be more
flexible in the definition of a flow. The first node in an LSP can
use any of a variety of means to determine which packets will be
assigned a particular label. Once that label is assigned, the label
becomes the definition of the flow. We refer to such an LSP as an
LSP Tunnel due to the opaque nature of the flow.
In support of this, a new SESSION object, LSP_TUNNEL_IPv4 is defined.
The semantics of this object are that the flow is defined solely on
the basis of packets arriving from the PHOP with the particular label
value(s) assigned by this node to senders to the session. In fact,
the IPv4 appearing in the object name only denotes that the
destination address is an IPv4 address.
An application of particular interest is traffic engineering. By
establishing ER-LSPs a node at the edge of an MPLS domain can control
the path which traffic from this node will take through that domain.
These capabilities can be used to optimize the utilization of network
resources and enhance traffic oriented performance characteristics.
Swallow, editor [Page 8]
Internet Draft draft-swallow-mpls-rsvp-trafeng-00.txt August 1998
2.4. Rerouting LSP Tunnels
One of the requirements for Traffic Engineering is the ability to
have an LSP tunnel re-routed upon a failure of a resource along its
current path. A further requirement is the ability to have the LSP
tunnel return to its original path when the failed resource is
restored.
It is also desirable not to disrupt traffic while rerouting is in
progress. The adaptive rerouting requirement calls for establishing
a new LSP while keeping the old LSP intact.
On links that old and new LSPs share, one wishes to (1) not release
resources from the old LSP that one wants to use for the new LSP, and
(2) not double-count reservations, because this might cause Admission
Control to deny the new LSP.
The combination of the LSP_TUNNEL_IPv4 SESSION object and the SE
reservation style naturally achieves smooth transitions. The
LSP_TUNNEL_IPv4 SESSION object is used to narrow the scope of the
RSVP session to the particular tunnel in question. To uniquely
identify a tunnel we use the combination of the destination IP
address, a Tunnel ID, and the sender's IP address which is placed in
the Extended Tunnel ID field.
During the reroute operation, the source needs to be able to appear
as two different sources to RSVP. This is achieved by the use of a
"LSP ID", which is carried in the SENDER_TEMPLATE and FILTER_SPEC
objects. Since the semantics of these objects is changed, a new C-
Type is assigned.
To effect a reroute, the source node picks a new LSP ID and forms a
new SENDER_TEMPLATE. It creates a new ERO to define the new path.
The node sends a new Path Message using the original SESSION object
and the new SENDER_TEMPLATE and ERO. It continues to use the old LSP
and refresh the old Path message. On links which are not in common,
the new Path message is treated as any new LSP tunnel setup. On
links held in common, the shared SESSION object and SE style allow
the LSP to be established sharing the same resources. Once the
sender receives a Resv message for the new LSP, it is free to begin
using it and to tear down the old LSP.
Also new C-Types are assigned for the SESSION, SENDER_TEMPLATE, and
FILTER_SPEC objects.
Detailed descriptions of the new objects are given in later sections.
All new objects are optional with respect to RSVP. An implementation
Swallow, editor [Page 9]
Internet Draft draft-swallow-mpls-rsvp-trafeng-00.txt August 1998
3. RSVP Message Formats
Five new objects are defined in this document:
Object name Applicable RSVP messages
--------------- ------------------------
LABEL_REQUEST Path
LABEL Resv
EXPLICIT_ROUTE Path
RECORD_ROUTE Path, Resv
SESSION_ATTRIBUTE Path
can choose to support some but not other objects. However, the
LABEL_REQUEST and LABEL objects are mandatory with respect to this
document.
The LABEL and RECORD_ROUTE objects, are sender specific. They must
immediately follow either the SENDER_TEMPLATE in Path messages, or
the FILTER_SPEC in Resv messages.
The placement of EXPLICIT_ROUTE, LABEL_REQUEST, and SESSION_ATTRIBUTE
objects is simply a suggestion. While it is recommended that an
implementation follow this format, the ordering of these objects is
not important, so an implementation must be prepared to accept
objects in any order.
3.1. Path message
The format of the Path message is as follows:
::= [ ]
[ ]
[ ]
[ ... ]
[ ]
::= [ ]
[ ]
[ ]
Swallow, editor [Page 10]
Internet Draft draft-swallow-mpls-rsvp-trafeng-00.txt August 1998
3.2. Resv message
The format of the Resv message is as follows:
::= [ ]
[ ] [ ]
[ ... ]