INTERNET DRAFT S. Ganti Internet Engineering Task Force N. Seddigh Differentiated Services Working Group B. Nandy Expires September, 2001 Tropic Networks April, 2001 MPLS Support of Differentiated Services using E-LSP 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/1id-abstracts.html The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. Distribution of this memo is unlimited. Abstract There are currently two types of LSPs that can be used to support Diff-serv over MPLS [DIFF-MPLS]: E-LSPs and L-LSPs. This document defines extensions relating to the use of E-LSPs in an MPLS network. The E-LSP approach allows multiple Ordered Aggregates (OAs) to be carried by a single LSP. The existing E-LSP specification only supports collective bandwidth signalling for all the OAs in an E-LSP. However, there exist uses of the E-LSP approach where it is desirable to support bandwidth signalling on a per-OA or per-PSC basis. This document extends the original E-LSP approach by defining extensions to support per-OA signalling. The extensions are proposed for both RSVP and CR-LDP. 1.0 Introduction The current solutions to support Diffserv over MPLS [DIFF-MPLS] define two types of LSPs. These are commonly referred to as E-LSPs (Exp-inferred-LSPs) and L-LSPs (Label-Only-Inferred-LSPs). The L-LSP Ganti, Seddigh, Nandy [Page 1] INTERNET DRAFT draft-ganti-mpls-diffserv-elsp-00.txt September 2001 approach is intended to carry a single OA per LSP. E-LSPs allow multiple OAs to be carried over a single LSP. In this case, the MPLS Label-Stack-Entry EXP bits indicate the PHB to be applied against a particular packet. E-LSPs are particularly useful in a number of scenarios. Firstly, from a network management perspective it may be easier to create end-to-end services for a customer if a single LSP is used, instead of setting up, maintaining, administering and monitoring multiple LSPs (as in L-LSP) - one for each OA of the customer's traffic. Thus, E-LSPs reduce the number of LSPs needed to deploy end-to-end services in a network. In addition, path protection and switching mechanisms are more easily applied to a single LSP than a group of related LSPs. A third application of E-LSPs is to support bandwidth borrowing among the OAs of a customer while restricting bandwidth borrowing between customers. The current RSVP-TE and Diffserv-MPLS extensions allow resources to be reserved and signaled on a E-LSP traffic aggregate basis. However, it is also desirable to facilitate a traffic engineering approach where (i) resources are reserved and signaled on a per-OA basis within an E-LSP (ii) EXP bits are used to signal the PHB treatment for individual packets within the E-LSP (iii) Diffserv PHB mechanisms are used in LSR routers to differentially treat the traffic within a single E-LSP. Such an approach would have two requirements: (i) IGP extensions to advertise reserved or available bandwidth on a per-OA or PSC basis for each link [BITAR] (ii) MPLS protocol extensions to signal traffic profiles or bandwidth for the individual OAs carried on the E-LSP. This document is concerned with the second requirement listed above. The current E-LSP solution proposed in [DIFF-MPLS] does not address per-OA signaling. It only supports signaling of bandwidth requirements for the entire aggregate traffic on the E-LSP. This document proposes RSVP-TE and CR-LDP extensions to facilitate signaling of per-OA traffic profiles for E-LSPs. This document uses the terms BA, OA, PSC, E-LSP, L-LSP, and PHB as they are defined in [DIFF-MPLS] and [DIFFTERM]. 2.0 Potential Solutions 2.1 Possible Solutions for RSVP-TE To extend per-OA signaling of E-LSPs for RSVP, there are at least three possible approaches. These are: 1) Creating a new E-LSP object, 2) Extending flowspec to signal Multiple FlowSpecs in a path message and 3) Extending the existing DiffServ object [DIFF-MPLS] definition. The first approach defines a new ELSP RSVP object to carry the traffic profile parameters. This object must be present in both the PATH and RESV messages. The second approach defines new SENDER_TSPEC and FLOWSPEC object types (using a new C-Type) [RSVP] and allows multiple such objects to be carried in the respective PATH and RESV Ganti, Seddigh, Nandy [Page 2] INTERNET DRAFT draft-ganti-mpls-diffserv-elsp-00.txt September 2001 messages. The third approach modifies and extends the specification of the DIFFSERV object as defined in [DIFFSERV-MPLS]. In addition, it requires this object to be present in both the PATH and RESV messages. 2.2 Possible Solutions for CR-LDP To extend per-OA signaling of E-LSPS for CR-LDP, there are at least two possible approaches: (i) Define a new ELSP TLV (ii) Modify the existing Traffic Parameters TLV. The first approach would simply define a new optional TLV that would carry the per-OA traffic parameters being signalled. In this approach, the new TLV could co- exist with the old Traffic Parameter TLV which could be used to signal traffic profiles for the entire E-LSP. The second approach would require modifications to the CR-LDP specification to allow multiple Traffic Parameter TLVs and would also require a modification to the Traffic Parameter TLV itself. 2.3 Preferred Solution For CR-LDP, the approach of defining a new optional ELSP TLV is the preferred approach because it does not require any changes to the existing Traffic Parameter TLV. Thus, implementations that do not wish to signal per-OA traffic parameters can simply use the Traffic Parameter TLV to signal per-LSP traffic parameters as is currently the case. For RSVP, the first approach of creating a new ELSP object will ensure full backwards compatibility with previous definitions of RSVP. The second approach of defining new object types for the SENDER_TSPEC and FLOWSPEC objects warrants consideration as it reuses an existing object by extending a new C-Type. These new objects can also co-exist with a traditional SENDER_TSPEC and FLOWSPEC objects of C-Type 1. However, there is a slight potential that it may break existing RSVP implementations and in fact, the new object types have slight differences with the old object types for SENDER_TSPEC and FLOWSPEC. The third approach of modifying the proposed DIFFSERV object [DIFF-MPLS] appears to be the least desirable. This last approach would change the intended purpose of the DIFFSERV object, would require significant modifications to the object and would require the object to be present in the RESV message - something that is not currently required. Thus, the preferred approach to supporting per-OA signaling is to specify a new ELSP object for RSVP and a new ELSP TLV for CR-LDP. Such an approach would ensure a common solution for the two protocols and appears to be the most likely way of ensuring backwards compatibility with the existing protocol specification. Subsequent sections define the proposed ELSP object and TLV for RSVP and CR-LDP respectively. For completeness, the two alternative solutions for RSVP extensions are captured in the Appendix. (These solutions are described only for the sake of current reference and may be deleted in future versions of this document.) Ganti, Seddigh, Nandy [Page 3] INTERNET DRAFT draft-ganti-mpls-diffserv-elsp-00.txt September 2001 3. RSVP Extensions To Support Per-OA signaling on E-LSPs In this section we describe RSVP extensions to support signaling of per-OA traffic profiles in an E-LSP. A single PATH/RESV message pair is used to signal traffic profiles for all the OAs in an E-LSP. The extensions specified in this section only relate to E-LSPs and do not apply to L-LSPs. 3.1 ELSP Object Definition To signal traffic profiles for multiple OAs in a single E-LSP, a new ELSP object is defined. This object must be present in both the PATH and RESV messages. E-LSPs that do not wish to signal traffic profiles on a per-OA basis do not include this object. The ELSP object specification is captured below. ELSP Object: class = TBD, C_Type = 1 (need to get an official class num from the IANA with the form 0bbbbbbb) 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | numTP | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TP (1) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | // ... // | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TP (numTP) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Reserved : 28 bits This field is reserved. It must be set to zero on transmission and must be ignored on receipt. numTP : 4 bits Indicates the number of TrafficProfile entries included in the E-LSP Object. This can be set to any value from 0 to 8. Each TP entry provides the Traffic Profile associated with a PSC reservation for that E-LSP. The TP entry has the following format: Ganti, Seddigh, Nandy [Page 4] INTERNET DRAFT draft-ganti-mpls-diffserv-elsp-00.txt September 2001 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1 | Reserved | PSC | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2 | Token Bucket Rate [r] (32-bit IEEE floating point number) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3 | Token Bucket Size [b] (32-bit IEEE floating point number) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4 | Peak Data Rate [p] (32-bit IEEE floating point number) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 5 | Minimum Policed Unit [m] (32-bit integer) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 6 | Maximum Packet Size [M] (32-bit integer) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- The PSC is encoded as specified in [PHBID]. The traffic profile parameters are the same as the basic Token Bucket parameters originally defined for RSVP. Since this is a Diffserv enabled network it is assumed that traffic profiles are only applied at the edge. Thus, there is no need to convey the exact parameters used by the marker at the domain edge. The parameters are signalled for admission control purposes only. If desired, the existing SENDER_TSPEC and FLOWSPEC objects MAY be used to signal bandwidth requirements for the entire traffic aggregate transmitted on an E-LSP. The ELSP specification does not preclude this type of signaling. 3.2 Handling of ELSP Object The ELSP object is optional with respect to RSVP. To signal per-OA traffic profiles on an ELSP, a sender MUST include the ELSP object in the PATH message. If the PATH message includes an ELSP object, the receiver MUST insert an ELSP object in the RESV message. The receiver MUST not include an ELSP object in the RESV message if the PATH message did not include an ELSP object. Each OA signaled in the ELSP object MUST have a corresponding set of EXP<->PHB mappings that were either pre-configured or signaled via the DIFFSERV object. If a node receives a PATH message with a ELSP object containing one or more OA traffic profiles without existing EXP<->PHB mappings, it should fail the reservation request for all the signaled OAs. In this case, the node SHOULD generate a PATH_ERR message with error value of 'Unsupported PSC'. A TE solution seeking to use preconfigured EXP<->PHB mapping with signaled per-OA traffic profiles would send a PATH message without the DIFFSERV object but with the ELSP object. A TE solution with signaled EXP<->PHB mapping and signaled per-OA traffic profiles would send a PATH message with both the DIFFSERV and ELSP objects. The DIFFSERV object should include a corresponding Ganti, Seddigh, Nandy [Page 5] INTERNET DRAFT draft-ganti-mpls-diffserv-elsp-00.txt September 2001 entry for each signaled OA in the ELSP object. A sender SHOULD not include an ELSP object with 0 TP entries in the PATH message. Such an object SHOULD be ignored by intermediate LSRs and the receiving LER. A node that receives a PATH message with an ELSP object but which does not support per-OA resource reservation SHOULD generate a PATH_ERR message with error value: "Unsupported object". If an LSR rejects a resource reservation for a particular OA signaled in an ELSP, it SHOULD consider the resource reservation to have failed for the entire ELSP. In this case, it SHOULD generate a RESV_ERR message with error value "Admission Control Failure for an OA". 3.3 RSVP Error Codes Related to the ELSP Object The errors described in the previous section should be reported with the error code for an 'ELSP Error' - this code is to be allocated by IANA. The following error values are valid for the 'ELSP Error' error code: Value Error ----- ----- 1 Admission Control Failure for an OA 2 Unsupported ELSP Object 3 Unsupported PSC for per-OA signaled E-LSP 4.0 LDP Extensions The [DIFF-MPLS] draft extended the LDP messages by defining a new Diff-Serv TLV. This draft introduces a new optional TLV called ELSP TLV for the purpose of per-OA signaling with E-LSPs. The TLV is intended to be used only with E-LSPs and not with L-LSPs. The ELSP TLV is optional with respect to LDP. Handling of the Diff- Serv TLV should follow the rules specified in [DIFF-MPLS]. It is expected that for each OA signaled in the ELSP TLV there will be a corresponding set of EXP<->PHB mappings that were either pre- configured or signaled via the DIFFSERV TLV. 4.1 ELSP TLV The ELSP TLV has the following format: Ganti, Seddigh, Nandy [Page 6] INTERNET DRAFT draft-ganti-mpls-diffserv-elsp-00.txt September 2001 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |U|F| ELSP (0x910) | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | numTP | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TP (1) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TP (numTP) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Reserved : 28 bits This field is reserved. It must be set to zero on transmission and must be ignored on receipt. numTP : 4 bits Indicates the number of TrafficProfile entries included in the ELSP TLV. This can be set to any value from 0 to 8. TP entry: Each TP entry provides the Traffic Profile associated with a PSC reservation for that E-LSP. The TP entry has the following format (similar to Traffic parameters TLV of [CR-LDP]): 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | PSC | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Flags | Frequency | Reserved | Weight | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Peak Data Rate (PDR) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Peak Burst Size (PBS) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Committed Data Rate (CDR) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Committed Burst Size (CBS) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Excess Burst Size (EBS) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The PSC is encoded as specified in [PHBID]. The remaining parameters are as specified in the traffic parameters TLV of CR-LDP [CR-LDP]. 4.2 LDP Messages The Label Request, Label Mapping and Notification messages are Ganti, Seddigh, Nandy [Page 7] INTERNET DRAFT draft-ganti-mpls-diffserv-elsp-00.txt September 2001 extended to optionally contain the ELSP TLV. In addition, new status codes are defined in the status code field of the Status TLV. 4.3 Handling of the ELSP TLV 4.3.1 Handling of the ELSP TLV in Downstream Unsolicited Mode The ELSP TLV is only meaningful in Downstream on Demand mode and so should not be used with Downstream Unsolicited mode 4.3.2 Handling of the ELSP TLV in Downstream on Demand Mode This section describes operations when the Downstream on Demand Mode is used. The ELSP TLV should be used only if the EXP<->PHB mapping is either pre-configured or signaled via the DIFFSERV TLV. An upstream LSR seeking to use preconfigured EXP<-->PHB mapping and signaled per-OA traffic profiles, would send a Label Request message without the Diff-Serv TLV, but with an ELSP TLV. An upstream LSR seeking to use signaled EXP<-->PHB mapping and signaled per-OA traffic profiles, would send a Label Request message with both the Diff-Serv and ELSP TLVs included. The DIFFSERV TLV should include one MAP entry for each corresponding traffic profile signalled via the ELSP TLV. A downstream Diff-Serv LSR sending a Label Mapping message in response to a Label Request message for an E-LSP should include the ELSP TLV. A downstream Diff-Serv LSR receiving a Label Request message with the ELSP TLV for an E-LSP containing a PSC value which is not supported, must reject the request by sending a Notification message which includes the Status TLV with a Status Code of `Unsupported PSC'. A downstream Diff-Serv LSR that recognizes the ELSP TLV Type in a Label Request message but is unable to grant the reservation request for one of the OAs signaled in the ELSP TLV, must reject the entire request and send a Notification message which includes the Status TLV with a Status Code of `Resource Unavailable for an OA reservation request'. A downstream Diff-Serv LSR that recognizes the ELSP TLV Type in a Label Request message and supports the requested PSC but is not able to satisfy the label request for other reasons (e.g. no label available), must send a Notification message in accordance with existing LDP procedures [LDP] (e.g. with a `No Label Resource' Status Code). This Notification message must include the requested ELSP TLV. 4.4 Non-Handling of the ELSP TLV An LSR that does not recognize the ELSP TLV Type, on receipt of a Label Request message or a Label Mapping message containing the ELSP Ganti, Seddigh, Nandy [Page 8] INTERNET DRAFT draft-ganti-mpls-diffserv-elsp-00.txt September 2001 TLV, must behave in accordance with the procedures specified in [LDP] for an unknown TLV whose U Bit and F Bit are set to 0 i.e. it must ignore the message, return a Notification message with `Unknown TLV' Status. 4.5 E-LSP Status Code Values The following values are defined for the Status Code field of the Status TLV: Status Code E Status Data Unexpected ELSP TLV 0 0x01000010 Unsupported PSC 0 0x01000011 Resource Unavailable for an OA resv req 0 0x01000012 5.0 Security Considerations This document does not introduce any new security issues beyond those inherent in Diff-Serv, MPLS and RSVP, and may use the same mechanisms proposed for those technologies. 6.0 References [BITAR] Bitar N et al, "Traffic Engineering Extensions to OSPF", Internet Draft, , July 2000 [RSVP] Braden et al, "Resource Reservation Protocol - Version 1 Functional Specification", RFC 2205, September 1997 [INTSERV] Wroclawski J, "Use of RSVP with IETF Integrated Services", RFC 2210, September 1997 [INTCHAR] Shenker S et al, "General Characterization Parameters for Integrated Services Network Elements", RFC 2215, September 1997 [DIFF-MPLS] Rosen E et al, "MPLS Support of Differentiated Services" draft-ietf-mpls-diff-ext-08.txt, February 2001. [DIFFTERM] Grossman D, "New Terminology for Diffserv", Internet Draft, draft-ietf-diffserv-new-terms-04.txt, March 2001 [RSVP-TE] Awduche et al, "RSVP-TE: Extensions to RSVP for LSP Tunnels", Internet draft, , February 2001 [CR-LDP] Jamoussi et al, "Constraint-Based LSP Setup using LDP", Internet Draft, draft-ietf-mpls-cr-ldp-05.txt, February 2001. [PHBID] Brim S et al, "Per Hop Behaviour Identification Code", RFC 2836, May 2000. Ganti, Seddigh, Nandy [Page 9] INTERNET DRAFT draft-ganti-mpls-diffserv-elsp-00.txt September 2001 7.0 Author's Address Sudhakar Ganti Tropic Networks Inc. 135 Michael Cowpland Drive Kanata, Ontario, Canada, K2M 2E9 Email: sganti@tropicnetworks.com Nabil Seddigh Tropic Networks Inc. 135 Michael Cowpland Drive Kanata, Ontario, Canada, K2M 2E9 Email: nseddigh@tropicnetworks.com Biswajit Nandy Tropic Networks Inc. 135 Michael Cowpland Drive Kanata, Ontario, Canada, K2M 2E9 Email: bnandy@tropicnetworks.com A.0 Appendix: Other approaches to signal E-LSP This appendix captures the two other ways in which RSVP can be extended to support per-OA signaling for E-LSPs. The approaches are described below. A.1 First Approach - New object type for FLOWSPEC & SENDER_TSPEC Objects In this second approach to signaling multiple OAs on single E-LSP, we propose an extension to the FLOWSPEC and SENDER_TSPEC objects. Specifically, new object types (C-Type) are defined for both of these objects. Thus, a PATH message would have one such new SENDER_TSPEC object per OA for which it wishes to signal bandwidth requirements. Conversely, a RESV message would have one such new FLOWSPEC object per OA for which bandwidth is being signaled. The PATH and RESV messages can still use a single SENDER_TSPEC and FLOWSPEC object with Intserv C-Type to signal the bandwidth requirement for the entire traffic aggregate of this E-LSP. Such an object will be relevant to admission control for the entire aggregate and will not be related to a specific PSC, PHB or OA. A description of the new SENDER_TSPEC and FLOWSPEC types is given below. New Object Type for FLOWSPEC FLOWSPEC class = 9. o Reserved (obsolete) flowspec object: Class = 9, C-Type = 1 o Int-serv Flowspec object: Class = 9, C-Type = 2 o E-LSP Per PSC Flowspec object: Class=9; C-Type=3 Ganti, Seddigh, Nandy [Page 10] INTERNET DRAFT draft-ganti-mpls-diffserv-elsp-00.txt September 2001 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1 | 0 (a) | reserved | 7 (b) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2 | (c) | 6 (d) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3 | 127 (e) | 0 (f) | 5 (g) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4 | Token Bucket Rate [r] (32-bit IEEE floating point number) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 5 | Token Bucket Size [b] (32-bit IEEE floating point number) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 6 | Peak Data Rate [p] (32-bit IEEE floating point number) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 7 | Minimum Policed Unit [m] (32-bit integer) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 8 | Maximum Packet Size [M] (32-bit integer) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ (a) - Message format version number (0) (b) - Overall length (7 words not including header) (c) - PSC - Indicates the PHB Scheduling Class the traffic profile applies to; Encoding as specified in [PHBID] (d) - Length of service 1 data, 6 words not including header (e) - Parameter ID, parameter 127 (Token_Bucket_TSpec) (f) - Parameter 127 flags (none set) (g) - Parameter 127 length, 5 words not including header Essentially, the above data structure is similar to the original Intserv FLOWSPEC object except that the service field is replaced with the PSC field. New Object Type for SENDER_TSPEC SENDER_TSPEC class = 12 o Intserv Sender_Tspec object: Class = 9, C-Type = 2 o E-LSP Per PSC Sender_Tspec object: Class=9; C-Type=3 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1 | 0 (a) | reserved | 7 (b) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2 | (c) | 6 (d) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3 | 127 (e) | 0 (f) | 5 (g) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4 | Token Bucket Rate [r] (32-bit IEEE floating point number) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 5 | Token Bucket Size [b] (32-bit IEEE floating point number) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 6 | Peak Data Rate [p] (32-bit IEEE floating point number) | Ganti, Seddigh, Nandy [Page 11] INTERNET DRAFT draft-ganti-mpls-diffserv-elsp-00.txt September 2001 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 7 | Minimum Policed Unit [m] (32-bit integer) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 8 | Maximum Packet Size [M] (32-bit integer) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ (a) - Message format version number (0) (b) - Overall length (7 words not including header) (c) - PSC - Indicates the PHB Scheduling Class the traffic profile applies to; Encoding as specified in [PHBID] (d) - Length of service 1 data, 6 words not including header (e) - Parameter ID, parameter 127 (Token_Bucket_TSpec) (f) - Parameter 127 flags (none set) (g) - Parameter 127 length, 5 words not including header Essentially, the above data structure is similar to the original Intserv SENDER_TSPEC object except that the service field is replaced with the PSC field. A.2 Third Approach - Modifying the DIFFSERV object The third approach to signal bandwidth requirements for multiple OAs in a single E-LSP relies on extensions to the DIFFSERV object. Currently, the DIFFSERV object specifies mapping between EXP bits and PHBs. We extend it to specify traffic profiles on a per PSC basis. Flexibility occurs because the solution allows for support of multiple configuration options as described in [DIFFSERV-MPLS]. In addition, where desired, the DIFFSERV object will contain a number of entries to indicate the traffic profiles on a per-PSC basis. The only other requirement is that when signaling per-OA bandwidth requirements, the DIFFSERV object must be included in both the PATH and the RESV message. As with the previous two approaches, the SENDER_TSPEC and FLOWSPEC objects can still be used to signal the bandwidth requirements for the entire aggregate E-LSP traffic. This section describes the changes to the object of an E- LSP [Diff-MPLS]. All the message formats or other object definitions remain the same. The DIFFSERV object formats are shown below. Currently there are two possible C_Types. Type 1 is a DIFFSERV object for an E-LSP. Type 2 is a DIFFSERV object for an L-LSP. DIFFSERV object for an E-LSP: class = TBD, C_Type = 1 (need to get an official class num from the IANA with the form 0bbbbbbb) Ganti, Seddigh, Nandy [Page 12] INTERNET DRAFT draft-ganti-mpls-diffserv-elsp-00.txt September 2001 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | nTP | nb | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MAP (1) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | // ... // | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MAP (MAPnb) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TP (1) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | // ... // | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TP (nTP) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Reserved : 26 bits This field is reserved. It must be set to zero on transmission and must be ignored on receipt. nb : 4 bits Indicates the number of MAP entries included in the DIFFSERV Object. This can be set to any value from 0 to 8. nTP: 4 bits Indicates the number of Traffic Profile entries (each Traffic Profile signals the bandwidth requirement for an OA. MAP : 32 bits The MAP entry remains as defined in [MPLS-DIFFSERV]. TP : 256 bits The format of each TP is as follows: 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1 | 0 (a) | reserved | 7 (b) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2 | (c) | 6 (d) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3 | 127 (e) | 0 (f) | 5 (g) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4 | Token Bucket Rate [r] (32-bit IEEE floating point number) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 5 | Token Bucket Size [b] (32-bit IEEE floating point number) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 6 | Peak Data Rate [p] (32-bit IEEE floating point number) | Ganti, Seddigh, Nandy [Page 13] INTERNET DRAFT draft-ganti-mpls-diffserv-elsp-00.txt September 2001 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 7 | Minimum Policed Unit [m] (32-bit integer) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 8 | Maximum Packet Size [M] (32-bit integer) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ (a) - Message format version number (0) (b) - Overall length (7 words not including header) (c) - PSC - Indicates the PHB Scheduling Class the traffic profile applies to; Encoding as specified in [PHBID] (d) - Length of service 1 data, 6 words not including header (e) - Parameter ID, parameter 127 (Token_Bucket_TSpec) (f) - Parameter 127 flags (none set) (g) - Parameter 127 length, 5 words not including header Ganti, Seddigh, Nandy [Page 14]