Internet DRAFT - draft-brunner-mpls-cops-pcs
draft-brunner-mpls-cops-pcs
Network Working Group M. Brunner
Internet Draft NEC
draft-brunner-mpls-cops-pcs-00.txt September 2002
COPS usage for Path Computation Servers (COPS-PCS)
<draft-brunner-mpls-cops-pcs-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.
Copyright Notice
Copyright (C) The Internet Society (2002). All Rights Reserved.
Abstract
This memo proposes to use COPS for the communication between a Label
Switching Router (LSR) and a Path Computation Server (PCS). Path
computation is in much regard a complex function and might be out-
sourced. For this reason a protocol between an LSR and a Path
Computation Server is needed. This memo proposes to use COPS as a
base protocol for that task.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in
this document are to be interpreted as described in RFC 2119.
1 Introduction
Path computation in MPLS and GMPLS might be a computationally
complex function especially if several constraints need to be taken
into account. Therefore a protocol between an LSR and a path
computation server is needed.
M. Brunner [Page 1]
COPS-PCS September 2002
1.1 Framework
The following figure shows the basic framework, where COPS-PCS is
applied. The path computation server can be located at a central
location or on LSR itself. The interaction between the local path
computation element an the RSVP-TE protocol handling is out of
scope of his document.
+------------------+
| Path Computation |
| |
| Server |
+------------------+
^
|
| COPS-PCS
+-----------------------------------------------+
| v |
| +----------+ +-------------------+ |
| | RSVP-TE | | Path Computation | |
| | |<-------->| | |
| | Handling | | Element | |
| +----------+ +-------------------+ |
| |
| |
| Label Switching Router |
+-----------------------------------------------+
1.2 Motivation
[3] proposes to use RSVP extensions [1][2]. The advantage of using
RSVP lies in the easiness of reusing the objects from RSVP and RSVP-
TE for that particular communication. On the other hand, it is not
natural to use RSVP for client server communication. Additionally,
new RSVP messages need to be defined.
Therefore this memo proposes to use COPS for the LSR to PCS
communication. COPS is a protocol which might already be used for
admission control for RSVP and therefore also for RSVP-TE. For
inter-domain use of RSVP-TE implementing authentication and
authorization, COPS or similar mechanisms must be used anyway.
Additionally, COPS as a protocol already has the notion of running
clients on routers and a server somewhere on the network.
Additionally, it has been design to be used together with RSVP,
which makes it easy to extend it for RSVP-TE. Whether the server
runs on an LSR itself or on separate entity does not matter.
Definitely the path computation server needs topology information in
order to perform its task. But how to get that information is out of
scope of this document.
The basic operation of COPS nicely covers the message types used.
Basically, the COPS request message is used to request path
computation and a COPS decision message replies the computed paths.
M. Brunner [Page 2]
COPS-PCS September 2002
To incorporate RSVP objects into COPS requests and decisions has
already been forseen.
Note that this memo does not define any policy-based admission
control. Nor does it define an RSVP-TE extension to the Usage of
COPS for RSVP [4]. However, such an RSVP-TE extension might include
the semantic of this memo.
Actually, RFC2749 COPS usage for RSVP might be used directly for
path computation, because it specifies that all RSVP object in an
RSVP message are sent to Policy Decision Point (PDP), in our case
RSVP-TE messages sent to the path computation server.
However, since policy decisions for admission control and path
computation are inherently different tasks, we propose to add a new
COPS client type with restricted functionality not including policy
decisions. But the proposal takes advantage of the COPS features for
synchronizing states in case the PCS is a statefull implementation.
2 RSVP-PCS values for COPS objects
2.1 Client Type
RSVP-PCS is client-type [0x03, IANA]
2.2 Context Object
In COPS-PCS, only R-Type 0x01 = Incomming-Message request is used.
R-Type 0x01 MUST be implemented; all other R-Types MAY be
implemented.
The semantics of the context object is as follows:
Incoming-Message request
This context is used when a PEP gets a RSVP-TE PAth message in order
to get the path computed.
2.3 Client-Specific Information
The client specific information contains all the required
information about path computation request and decisions. Since [4]
already defines that all RSVP object are sent from the PEP to the
PDP (in our case called Path Computation Server), also the base
specification of COPS usage for RSVP would work. However, see
Section below on the RSVP objects, which MUST be included and
supported.
2.4 Decision Object
For COPS-PCS only two commands apply.
Install: the decision contains a positive answer, meaning the path
has been computed.
M. Brunner [Page 3]
COPS-PCS September 2002
Remove: the negative answer; the PCS was not able to compute the
path with the given constraints.
If the Trigger Error flag is set, RSVP-TE SHOULD schedule a PathErr
in response to a path message.
3 Client-specific Information objects
In order to simplify Path Computation Server (PDP) implementations,
we list the RSVP-TE object, which MUST be send to a PDP with client-
type COPS-PCS. Every other RSVP object encapsulated within a COPS
request is skipped and not evaluated in any regard. If the listed
objects are not contained in the request message the path
computation server MUST return an <Error> in the decision message
indicating, "Mandatory client-specific info missing".
3.1 The RSVP-TE objects in a request message
The request MUST contain the Session object, when C-Type ==
LSP_TUNNEL_IPv4 or LSP_TUNNEL_IPv6.
It MUST contain the PCS object as defined below.
It might contain the Explicit Route object if included in RSVP-TE.
It might also contain the session attribute object.
SESSION_ATTRIBUTE object (class=207, C-type=1) allows carrying setup
and holding priorities, resource affinities, etc.
It might contain the sender TSPEC if bandwidth is constraint.
3.2 The RSVP-TE objects in a decision message
Explicit Route object as computed by the Path Computation Server. If
no PCS object is contained, the Explicit Route object is copied to
the RSVP-TE message and the message is sent towards the next hop in
the ERO object.
Additionally, the PCS object might be contained if special handling
was requested.
3.3 New COPS object for COPS-PCS
The PCS object is a new object encapsulated in a client specific
information object (clientSI) (C-Num =9, C-Type = 2 (named)).
We currently only define one object encapsulated in the named
client-specific information. Therefore, no TLV type of object
structure is defined.
0 1 2 3
+-------------+-------------+-------------+-------------+
| ETC | T-Type | Prot-Elem | Flags |
M. Brunner [Page 4]
COPS-PCS September 2002
+-------------+-------------+-------------+-------------+
Element-to-compute (ETC) : The type of path to be computed.
0x00 default, computes one primary path to the destination
0x01 p+b, computes the primary and the backup (type of backup
depends on the protection element type see below)
0x02 backup, computes the backup for a given primary. If this
is set, the primary path needs to be in the request as
ERO.
Topology-Type (T-Type): Since especially for GMPLS several
topologies are possible, this identifies the topology the PCS should
calculate the path.
Protection-Element (Prot-Elem): The element, which needs to be
protected in case a backup path needs to be computed (Element-to-
compute set to 1 or 2.
0x00 default, no backup to be computed
0x01 link, protect against the next link failure
0x02 node, protect against next node failure
0x03 path, compute backup path up to the destination
Flags: A set of bits controlling the path computation.
0x1: Re-optimization: the field defines that the request as well
as the decision is a re-optimization. The re-optimization
could be triggered by the PCS or the LSR.
Other objects of parameters in the COPS-PCS object are for further
study.
4 Statefull versus Stateless PCS
A PCS can be implemented statefull or stateless, which means the PCS
can store all the paths (primary and backup) it has computed, and
take them into account for future path computation. This means the
state between PCS and the LSR needs to be synchronized upon state
change.
Statefull PCS implies that if the LSR receives a RSVP PathTear or
ResvTear message, it needs to communicate this fact to the PCS.
According to RFC 2749 [4], PathTear and ResvTear are not valid
message types in the M-Type of the Context Object. Similarly,
PathErr or ResvErr must be reported.
Therefore, the LSR MUST send a Delete Request State (DRQ) message to
the PCS on receipt of PathTear or ResvTear. The DRQ contains a
reason object as defined in RFC 2748 [5]. No client specific sub-
code is defined. For RSVP tear down messages the reason in Tear (4).
If the LSP with that particular route is not refreshed, reason
Timeout (5) is used.
Statefull PCS MUST be notified about the failure or success of
setting up the LSP tunnel with the computed ERO. Upon successful
M. Brunner [Page 5]
COPS-PCS September 2002
receipt of the RSVP Resv message, the LSR MUST send a Report State
message to the PCS. The report type is set to success. The message
SHOULD contain the record route object of the RSVP message (RRO), if
available. The RRO is used by the PCS in case the path computes was
a loose one, then it must update the state for future computation.
Even so COPS is well supporting statefull PCS, the whole
implementation gets much easier with stateless PCS. However,
stateless PCS must get information about the allocation of resource
by other means, when bandwidth constraints are taken into account.
5 Security Considerations
The security considerations have been handled in the Security
Considerations section of [5]. The same considerations apply here.
6 Reference
[1] Braden, R., Zhang, L., Berson, S., Herzog, A., Jamin, S.,
"Resource ReSerVation Protocol (RSVP) -- Version 1 Functional
Specification", RFC 2205, September 1997.
[2] D. Awduche, L. Berger, D. Gan, T. Li, V. Srinivasan, G. Swallow,
"RSVP-TE: Extensions to RSVP for LSP Tunnels", RFC 3209, December
2001.
[3] J.P. Vasseur et al., "RSVP Path computation request and reply
messages", draft-vasseur-mpls-computation-rsvp-03.txt, June 2002.
[4] S. Herzog et al., "COPS usage for RSVP", RFC 2749, January 2000.
[5] D. Durham et al., "The COPS (Common Open Policy Service)
Protocol", RFC 2748, January 2000.
7 Author's Addresses
Marcus Brunner
NEC Europe Ltd.
Network Laboratories
Adenauerplatz 6
D-69115 Heidelberg
Germany
E-Mail: brunner@ccrle.nec.de
Full Copyright Statement
Copyright (C) The Internet Society (2002). All Rights Reserved.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this
M. Brunner [Page 6]
COPS-PCS September 2002
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be
followed, or as required to translate it into languages other than
English.
The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDIN
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
M. Brunner [Page 7]