Internet Draft T.M.T. Nguyen Expires August 2002 University of Paris 6 - ENST Paris N. Boukhatem ENST Paris Y. El Mghazli N. Charton Alcatel G. Pujolle University of Paris 6 February 2002 COPS Usage for SLS negotiation (COPS-SLS) Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026 [RFC-2026]. 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 Distribution of this memo is unlimited. Abstract This document describes the use of the Common Open Policy Service (COPS) protocol for supporting Service Level Specification (SLS) negotiation. The [SLS-FRW-TEQ] document has presented the need of a Service Level Specification (SLS). Different works [SLS-TEQ], [SLS- AQU], [SLS-INTER] have defined some SLSs for CPE-PE interface and inter-domain QoS negotiation. The COPS protocol [COPS] has been defined by the IETF Resource Allocation Protocol (RAP) WG [RAP] and will be used in this memo to communicate SLS information between customer and network provider. Nguyen, et al. Expires August 2002 [Page 1] Internet Draft COPS-SLS February 2002 Conventions used in this document 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]. Table of Contents Glossary........................................................... 2 1. Introduction.................................................... 3 2. COPS-SLS Model.................................................. 3 2.1 Overall model 3 2.2 Outsourcing and Provisioning models in COPS-SLS 4 3. Message Content................................................. 5 3.1. Request message (REQ) PEP -> PDP.............................. 5 3.2. Decision message (DEC) PDP -> PEP............................. 6 3.3. Report State message (RPT) PEP -> PDP......................... 6 4. COPS-SLS protocol objects and Client-Specific data format....... 7 4.1. COPS-SLS protocol objects..................................... 7 4.2. Client-Specific data format................................... 7 5. Common Operation and example.................................... 8 6. COPS-SLS PIB Module ............................................11 7. Security Considerations.........................................27 8. IANA Considerations.............................................27 9. Acknowledgements................................................27 10. References.....................................................27 11. Authors' Addresses.............................................28 12. Full Copyright Statement.......................................29 Glossary ClientSI Client Specific Information. See [COPS] COPS Common Open Policy Service. See [COPS] CPE Customer Premise Edge. See [SLS-TEQ] CPERR PRC Class Provisioning Error. See [COPS-PR] EPD Encoded Provisioning Instance. See [COPS-PR] ErrorPRID Error PRID. See [COPS-PR] GPERR Global Provisioning Error Object. See [COPS-PR] ISP Internet Service Provider. LAN Local Area Network. PDP Policy Decision Point. See [RAP] PE Provider Edge. See [SLS-TEQ] PEP Policy Enforcement Point. See [RAP]. PIB Policy Information Base. See [COPS-PR] PPRID Prefix PRID. See [COPS-PR] PRID Provisioning Instance Identifier. See [COPS-PR] RAP Resource Allocation Protocol. See [RAP] SLS Service Level Specification. See [DS-TERM] Nguyen, et al. Expires August 2002 [Page 2] Internet Draft COPS-SLS February 2002 1. Introduction This document describes the use of the Common Open Policy Service (COPS) protocol [COPS] for supporting Service Level Specification (SLS)negotiation. In [SLS-FRW-TEQ], the author has presented the need of a Service Level Specification (SLS). Different works, [SLS-TEQ], [SLS-AQU], [SLS-INTER], have defined some SLSs for CPE-PE interface and inter-domain QoS negotiation. The COPS protocol has been defined by the IETF Resource Allocation Protocol (RAP) WG [RAP] and will be used in this memo to communicate the SLS information between a customer and a network provider. Many protocols for supporting SLS negotiation could be envisaged [SLS-FRW-TEQ]. This memo uses COPS protocol for the following reasons: - Policy-based networking provides interesting architecture concepts for service level management. - COPS is a flexible protocol which may support multiple client- types. The definition of COPS based SLS negotiation protocol needs only the specification of appropriate objects corresponding to the new client-type (COPS-SLS). - If the core network uses COPS to configure network devices, the use of the same protocol for SLS negotiation may facilitate the network configuration process. Here are the changes since the previous version: - The PIB defines new classes to represent parameters about FlowId, traffic conformance, excess treatment, and scope. - The error object SLSERR is replaced by the class slsNegoRptEntry in SLS-NEGOTIATION-PIB. - A discussion about Outsourcing and Provisioning models in COPS-SLS is introduced in section 2. 2. COPS-SLS model 2.1 Overall model SLS Policy Client SLS Policy Server +--------------+ +-----------+ | | | | | +-----+ | REQ() | +-----+ | | | SLS |----|--------------|->| SLS | | | | PEP |<---|--------------|--| PDP |--|---------> | +-----+ | DEC() | +-----+ | | | | | +--------------+ +-----------+ Figure 1: COPS-SLS model Nguyen, et al. Expires August 2002 [Page 3] Internet Draft COPS-SLS February 2002 As depicted in Figure 1, SLS Policy Client negotiates with the SLS Policy Server using COPS protocol. This negotiation process can take place within an administrative domain or between administrative domains. The SLS PEP represents the customer and the SLS PDP represents the network provider. The customer is the entity consuming network resources of network provider. It may be a company, an Application Service Provider (ASP) or another network provider. When the SLS-PEP module is activated, the PEP connects to its primary SLS-PDP. The SLS-PDP is a server who manages all SLSs of an administrative domain. The SLS-PDP gets to its Policy Repository to retrieve the policy. The SLS policy helps the SLS-PDP to accept or reject the requested SLS. The SLS-PDP MAY also suggest another SLS to be applied to the PEP. Once an SLS-PDP and SLS-PEP agreed on a Service Level, the SLS-PDP MAY interact with other entities (e.g., a COPS-PR-DiffServ PDP) so that the network resources could be properly provisioned. The interaction between the SLS-PDP and the other entities is outside the scope of this document. 2.2 Outsourcing and Provisioning models in COPS-SLS: The COPS-SLS uses the two common models supported by COPS protocol: Outsourcing model and Configuration (a.k.a. Provisioning) model. During the negotiation phase, the customer requests a service by triggering the PEP function which negotiate the desired SLS with the provider. The decision sent by the PDP addresses the desired SLS sent by the PEP. There is a direct 1:1 correlation between PEP events and PDP decisions. Therefore, the negotiation phase follows the Outsourcing mode as defined in RFC3084, section 1 [RFC 3084] In order to make the negotiation configurable according to the domain policies, a configuration phase is used in COPS-SLS. The configuration phase follows the COPS Provisioning mode defined in RFC3084, section 1 [RFC 3084]. The domain negotiation policies are provisioned down to the customer. These policies indicate the service offered by a provider, this can be the negotiable parameters, the value constraints of these parameters, the dynamic level of the negotiation, etc. The configuration phase is also useful to provision pre-defined service templates that can be requested as is by the customer in case there is a correspondence with its own needs. The negotiation phase follows the Outsourcing mode. However, SLS negotiation information representation in the ClientSI object can be either in built-in object format or in named data structure format depending on the protocol designer. We have chosen the named data Nguyen, et al. Expires August 2002 [Page 4] Internet Draft COPS-SLS February 2002 structure format (a.k.a, PIB) for the following reasons: - The information carried by the protocol is separated from the protocol itself. When new information needs to be carried, only the PIB is revisited, the protocol operation and objects remain unchanged. This characteristic is interesting for negotiation protocol design because the set of negotiation parameters can be extensible. - It is better to have the same data representation in both configuration phase and negotiation phase. As the configuration phase uses PIB as defined in COPS-PR, we also use PIB to transport SLS information in the negotiation phase. During 52th IETF meeting in Salt Lake City, there was a discussion about the use of both Outsourcing and Provisioning modes in some client-types. There are some propositions to call this combination ôunified modeö or ôCOPS-PR usage in Outsourcing modeö. However, this terminology and the use of Named or Signaled ClientSI object to convey PIB in Outsourcing mode are not yet clearly defined at the moment. So that, the use of Named ClientSI object for the configuration phase and Signaled ClientSI object for the negotiation phase remains unchanged in this version. COPS-SLS will follow the instructions of future RAP WG documents or discussions. 3. Message Content This section presents the content of the Request, Decision and Report messages. 3.1. Request message (REQ) PEP -> PDP The REQ message is sent by the SLS-PEP to the SLS-PDP with the following format: ::= *() *() [] Note that *() means zero or more (s). The COPS objects IN-Int, OUT-Int and LPDPDecisions are not included in a COPS- SLS Request. The Named ClientSI object is included in the REQ message when the Context object specifies a 'configuration request' (Configuration Nguyen, et al. Expires August 2002 [Page 5] Internet Draft COPS-SLS February 2002 model). This object is used to inform the PDP about the PEP negotiation capabilities and all predefined SLS available in the PEP. The Signaled ClientSI object is included in the REQ message when the Context object specifies a 'resource-allocation request' (Outsourcing model). This object is used to transport the SLS requested by the PEP. 3.2. Decision message (DEC) PDP -> PEP The DEC message is sent by the SLS-PDP to the SLS-PEP with the following format: ::= *() | [] ::= *() *() A solicited DEC message is sent from the PDP to answer a REQ message sent by the PEP. Unsolicited DEC messages may be sent by the PDP to transport the updated policy information. The Client-Handle value identifies the request the PDP wants to send its decision to. The Context object specifies the context of the decision ('configuration' or 'resource-allocation'). The Named Decision Data object is included in the DEC message when the Context object specifies a 'configuration' decision. This object is used to transport the negotiation configuration (e.g., negotiation mode, predefined SLSs, ...) which the PDP wants to install/remove in/from the PEP. The action 'install' or 'remove' is specified in the Decision Flags object. If the Context object specifies a 'resource allocation' decision, the Client Specific Decision Data object is included in the DEC message only when the PDP suggests another SLS. The Decision Flags object will specify the action of 'install' in this case. When the PDP does not suggest another SLS, the Client Specific Decision Data object MUST NOT be included in the DEC message because the Decision Flags object is sufficient to accept/reject the SLS requested by the PEP. 3.3. Report State message (RPT) PEP -> PDP The RPT message is sent by the SLS-PEP to the SLS-PDP with the Nguyen, et al. Expires August 2002 [Page 6] Internet Draft COPS-SLS February 2002 following format: ::= *() *() [] A solicited RPT message MUST be sent by the PEP upon receipt of a DEC message from the PDP. The Client-Handle object contains the same value as the Client-Handle value in the DEC message to which the PEP wants to make a report. The Report-Type object is used to specify the action (success/fail) taken by the PEP. The ClientSI objects are eventually included in the RPT message to transport error/accounting information. 4. COPS-SLS protocol objects and Client-Specific data formats: 4.1 COPS-SLS protocol objects: The COPS-SLS protocol objects follow the same object formats defined in [COPS-PR]. More precisely, six objects (PRID object, PPRID object, EPD object, GPERR object, CPERR object and ErrorPRID object) are defined in section 4 of [COPS-PR]. 4.2 Client-Specific data format: The Named ClientSI object and the Signaled ClientSI object used in the REQ message have the same format as the ClientSI Request Data defined in section 5.2 of [COPS-PR]. The Named Decision Data object and the Client Specific Decision Data object used in the DEC have the same format as the Named Decision Data defined in section 5.1 of [COPS-PR]. The Named ClientSI object used in the RPT message has the same format as the Policy Provisioning Report Data defined in section 5.3 of [COPS-PR]. The Signaled ClientSI object used in the RPT message has the same format as the Policy Provisioning Report Data defined in section 5.3 of [COPS-PR], but in the case of a 'Failure' Report-Type due to the reject of the PDP suggested SLS, the PEP MUST send a report indicating 'slsNonAccepted' using slsNegoRptEntry PRC. Nguyen, et al. Expires August 2002 [Page 7] Internet Draft COPS-SLS February 2002 5. Common Operation and example: To illustrate the operation of COPS-SLS, an example of COPS-SLS is shown in Figure 2: COPS-SLS-PEP COPS-SLS-PDP | | | | |--------------------------------------------------->|(step 1) | OPN : | | Common Header : | | Client-type = COPS-SLS (tbd) | | PEPID : | | PEPID = PEP_1 | | | |<---------------------------------------------------|(step 2) | CAT : | | Common Header : | | Client-type = COPS-SLS | | KA Timer : | | KATimer = 50 | | | |--------------------------------------------------->|(step 3) | REQ : | | Common Header : | | Client-type = COPS-SLS | | Client-Handle : | | Handle = config_req_A | | Context : | | R-Type = 0x08 (Configuration request) | | Named ClientSI : | | frwkPrcCapsTable | | slsNegoCapsTable | | slsSlsTable | | | |<---------------------------------------------------|(step 4) | DEC : | | Common Header : | | Flags = 0x1 (solicited message) | | Client-type = COPS-SLS | | Client-Handle : | | Handle = config_req_A | | Context : | | R-Type = 0x08 (configuration) | | Decision : | | Decision Flag : | | Command Code = Install | | Named Decision Data : | Nguyen, et al. Expires August 2002 [Page 8] Internet Draft COPS-SLS February 2002 | slsNegoTable | | (slsNegoMode = predefined SLSs | | slsNegoMaxInt = 120) | | slsSlsTable | | | |--------------------------------------------------->|(step 5) | RPT : | | Common Header: | | Flags = 0x1 (solicited message) | | Client-Type = COPS-SLS | | Client-Handle : | | Handle = config_req_A | | Report-Type : | | Report-type = Success | | | |--------------------------------------------------->|(step 6) | REQ : | | Common Header : | | Flags = 0 | | Client-Type = COPS-SLS | | Client-Handle : | | Handle = res_req_B | | Context : | | R-Type = 0x02 (Resource-Allocation request) | | Signaled ClientSI : | | slsSlsTable | | | |<---------------------------------------------------|(step 7) | DEC : | | Common Header : | | Flags = 0x01 (solicited message) | | Client-Type = COPS-SLS | | Client-Handle : | | Handle = res_req_B | | Context : | | R-Type = 0x02 (Resource-Allocation) | | Decision Flags: | | Commande Code = install | | | |--------------------------------------------------->|(step 8) | RPT : | | Common Header : | | Flags = 0x01 (solicited massage) | | Client-Type = COPS-SLS | | Client-Handle : | | Handle = res_req_B | | Report-Type : | | Report-Type = Success | Figure 2: Example of COPS-SLS operation Nguyen, et al. Expires August 2002 [Page 9] Internet Draft COPS-SLS February 2002 The next section describes the Common Operation on the COPS-SLS connection between the PEP and the PDP. When the SLS-PEP module is activated, the PEP connects to its primary SLS-PDP and sends the OPN message with a Client-Type=COPS- SLS (Figure 2 - step 1). If the PDP accepts this PEP, it sends to the PEP a CAT message (Figure 2 - step 2). Otherwise, it sends a CC message. When the COPS-SLS connection is successfully established, the PEP sends the first REQ with a Context='configuration request'. The Named ClientSI object is used in this request to inform the PDP about the capabilities of the PEP (e.g, the PRCs the PEP understands, the negotiation mode the PEP supports, ...) and all existing predefined SLS (Figure 2 - step 3). The predefined SLS is defined in [SLS-AQU] as an SLS with predefined values (or a range of values) for a subset of the parameters in the generic SLS. In predefined SLS mode, the PDP installs all predefined SLS in the PEP. The PEP CAN only request an SLS conforming to one of these predefined SLSs. The PEP MUST NOT request an SLS outside these predefined SLSs. In non-predefined SLS mode, the PEP CAN request an SLS with any parameter values. Upon receipt of the REQ message, the PDP sends a solicited DEC message with a Context='configuration' and installs the configuration information at the PEP (Figure 2 - step 4). After receiving the DEC message, the PEP installs the configuration sent by the PDP and sends a RPT message to the PDP to report the installation result (Figure 2 - step 5). If the configuration is successfully installed, the PEP CAN now send a REQ message with a Context='resource-allocation' to request the desired SLS (Figure 2 - step 6). In response to the REQ message, the PDP sends a DEC message with the same context (i.e., resource-allocation). The PDP can accept the requested SLS, or reject the requested SLS, or suggest another SLS. To accept the requested SLS, the PDP sends a DEC message with a Decision-Flags='Install' (Figure 2 - step 7). To reject the requested SLS, the PDP sends a DEC message with a Decision-Flags='Remove'. To suggest another SLS, the PDP sends a DEC message with a Decision- Nguyen, et al. Expires August 2002 [Page 10] Internet Draft COPS-SLS February 2002 Flags='install' and includes the suggested SLS in the Client Specific Decision Data object. If the PEP receives a DEC message accepting/rejecting the requested SLS, it installs the decision and sends a 'success' report to the PDP (Figure 2 - step 8). If the PEP cannot install the decision, it sends a 'failure' report to the PDP including the corresponding Error object. If the PEP receives a DEC message suggesting another SLS, it can accept the suggestion by sending a RPT message with a Report-Type=Success or reject the suggested SLS by sending a RPT message with a Report-Type=Failure and an instance of the PRC SlsNegoRptEntry with a 'slsNegoRptFailRea = 1'. If the PEP wants to modify some parameters of a negotiated SLS, it sends a REQ message using the Client-Handle value identifying the SLS and includes in the Signaled ClientSI object the SLS with its new parameter values. To delete a requested SLS, the PEP sends a DRQ message using the Client-Handle value identifying the SLS to be deleted. At any time, the PDP CAN send an unsolicited DEC message to supply the PEP with the updated policy information or to degrade some negotiated SLS. If the PEP receives a SSQ message, it reissues all requested SLSs and finishes the synchronization period by the SSC message. 6. COPS-SLS PIB Module: This section defines the PIB used in COPS-SLS client-type. SLS-NEGOTIATION-PIB PIB-DEFINITIONS ::= BEGIN IMPORTS Unsigned32, InstanceId, MODULE-IDENTITY, OBJECT-TYPE FROM COPS-PR-SPPI ZerroDotZero FROM SNMPv2-SMI ExtUTCTime FROM SNMPv2-SMI InetAddressType, InetAddress, InetAddressPrefixLength, InetPortNumber FROM INET-ADDRESS-MIB DscpOrAny FROM DIFFSERV-DSCP-TC Nguyen, et al. Expires August 2002 [Page 11] Internet Draft COPS-SLS February 2002 slsPolicyPib MODULE-IDENTITY SUBJECT-CATEGORIES { tbd - COPS-SLS Client Type } LAST-UPDATED "200202281200Z" ORGANIZATION "Alcatel, ENST Paris and University of Paris 6" CONTACT-INFO " Thi Mai Trang Nguyen INFRES-ENST 46 Rue Barrault 75013 Paris - France Phone: +33 1 45 81 74 61 Email: trnguyen@enst.fr Nadia Boukhatem INFRES-ENST 46 Rue Barrault 75013 Paris - France Phone: +33 1 45 81 82 16 Email: Nadia.BouKhatem@enst.fr Yacine El Mghazli Alcatel R&I Route de Nozay F-91460 Marcoussis - FRANCE Phone: +33 1 69 63 41 87 Email: yacine.el_mghazli@alcatel.fr Nathalie Charton Alcatel R&I Route de Nozay F-91460 Marcoussis - FRANCE Phone: +33 1 69 63 14 85 Email: Nathalie.Charton@ms.alcatel.fr Guy Pujolle RP-LIP6-UPMC 8 Rue du Capitaine Scott 75015 Paris - France Phone: +33 1 44 27 75 14 Email: Guy.Pujolle@lip6.fr" DESCRIPTION "The PIB module contains a set of classes describing the policies in SLS negotiation" ::= { tbd } slsCapabilityClasses OBJECT IDENTIFIER ::= { slsPolicyPib 1 } slsPolicyClasses OBJECT IDENTIFIER ::= { slsPolicyPib 2 } slsParamClasses OBJECT IDENTIFIER ::= { slsPolicyPib 3 } slsReportClasses OBJECT IDENTIFIER ::= { slsPolicyPib 4} Nguyen, et al. Expires August 2002 [Page 12] Internet Draft COPS-SLS February 2002 slsNegoCapsTable OBJECT-TYPE SYNTAX SEQUENCE OF SlsCapsEntry PIB-ACCESS notify STATUS current DESCRIPTION "SLS negotiation capabilities supported by the client" ::= { slsCapabilityClasses 1} slsNegoCapsEntry OBJECT-TYPE SYNTAX SlsNegoCapsEntry STATUS current DESCRIPTION "An instance of this class describes the SLS negotiation capabilities of a client" ::= { slsNegoCapsTable 1 } PIB-INDEX { slsNegoCapsPrid } SlsNegoCapsEntry ::= SEQUENCE { slsNegoCapsPrid InstanceId slsNegoCapsNegoMode BITS slsNegoCapsNegoInt Unsigned32 slsNegoCapsMaxPredefSls Unsigned32 } slsNegoCapsPrid OBJECT-TYPE SYNTAX InstanceId STATUS current DESCRIPTION "An arbitrary integer index that uniquely identifies an instance of the class" ::= { slsNegoCapsEntry 1 } slsNegoCapsNegoMode OBJECT-TYPE SYNTAX BITS { predefSls(1) -- the ability to support predefined SLS mode non-predefinedSls (2) -- the ability to support non-predefined SLS mode" } STATUS current DESCRIPTION "The SLS negotiation mode supported by the PEP (1) - predefined SLS mode (2) - non-predefined SLS mode" ::= { slsNegoCapsEntry 2 } Nguyen, et al. Expires August 2002 [Page 13] Internet Draft COPS-SLS February 2002 slsNegoCapsNegoInt OBJECT-TYPE SYNTAX Unsigned32 STATUS current DESCRIPTION "The desired interval before which the client could send another REQ message to modify a negotiated SLS" ::= { slsNegoCapsEntry 3 } slsNegoCapsMaxPredefSls OBJECT-TYPE SYNTAX Unsigned32 STATUS current DESCRIPTION "The maximum number of predefined SLSs that the PDP can install at the client device. If the client does not support the predefined SLS negotiation mode, this value MUST be 0" ::= { slsNegoCapsEntry 4 } slsNegoTable OBJECT-TYPE SYNTAX SEQUENCE OF SlsNegoEntry PIB-ACCESS install STATUS current DESCRIPTION "SLS negotiation policies to be installed by the PDP" ::= { slsPolicyClasses 1 } slsNegoEntry OBJECT-TYPE SYNTAX SlsNegoEntry STATUS current DESCRIPTION "An instance of this class describes the policies about SLS negotiation that the PDP installs at the PEP" PIB-INDEX { slsNegoPrid } ::= { slsNegoTable 1 } SlsNegoEntry ::= SEQUENCE { slsNegoPrid InstanceId slsNegoMode BITS slsNegoMaxInt Unsigned32 } slsNegoPrid OBJECT-TYPE SYNTAX InstanceId STATUS current Nguyen, et al. Expires August 2002 [Page 14] Internet Draft COPS-SLS February 2002 DESCRIPTION "An arbitrary integer index that uniquely identifies an instance of the class" ::= { slsNegoEntry 1 } slsNegoMode OBJECT-TYPE SYNTAX BITS{ predefSls(1) -- predefined SLS mode non-predefinedSls (2) -- non-predefined SLS mode" } STATUS current DESCRIPTION "The negotiation mode used by the client. - indicates the predefined SLS mode. - indicates the non-predefined SLS mode" ::= { slsNegoEntry 2 } slsNegoMaxInt OBJECT-TYPE SYNTAX Unsigned32 STATUS current DESCRIPTION "The maximum interval during which the client cannot issue a REQ message to change a negotiated SLS" ::= { slsNegoEntry 3 } slsSlsTable OBJECT-TYPE SYNTAX SEQUENCE OF slsSlsEntry PIB-ACCESS install-notify STATUS current DESCRIPTION "Represent an SLS" ::= { slsPolicyClasses 2 } slsSlsEntry OBJECT-TYPE SYNTAX SEQUENCE OF SlsSlsEntry STATUS current DESCRIPTION "An instance of this class specifies an SLS" ::= { slsSlsTable 1 } SlsSlsEntry ::= SEQUENCE { slsSlsPrid InstanceId slsSlsScope Prid slsSlsFlowId Prid slsSlsTrafficConformance Prid slsSlsExcessTreatment Prid Nguyen, et al. Expires August 2002 [Page 15] Internet Draft COPS-SLS February 2002 slsSlsPerformance Prid slsSlsServiceSchedule Prid } slsSlsPrid OBJECT-TYPE SYNTAX InstanceId STATUS current DESCRIPTION "An arbitrary integer that uniquely identifies an instance of the class" ::= { slsSlsEntry 1} slsSlsScope OBJECT-TYPE SYNTAX Prid STATUS current DESCRIPTION " This attribute uniquely indicates where the QoS policy for that specific service is to be enforced. The value must point to a valid instance of one of these classes: slsScopeParamEntryö ::= { slsSlsEntry 2 } slsSlsFlowId OBJECT-TYPE SYNTAX Prid STATUS current DESCRIPTION " This attribute specifies the identification of a flow. It indentifies a stream of IP packets sharing at least one common characteristic. The value must point to a valid instance of one of these classes: slsFlowIdParamEntry" ::= { slsSlsEntry 3 } slsSlsTrafficConformance OBJECT-TYPE SYNTAX Prid STATUS current DESCRIPTION " This attribute specifies the traffic conformance of the flow identified in slsSlsFlowId. The traffic conformance parameters describes how the packet stream should look like to get the guarantees indicated by the perfomance parameters. The value must point to a valid instance of one of these classes: slsConformParamEntry" ::= { slsSlsEntry 4 } slsSlsExcessTreatment OBJECT-TYPE SYNTAX Prid Nguyen, et al. Expires August 2002 [Page 16] Internet Draft COPS-SLS February 2002 STATUS current DESCRIPTION "This attribute specifies the excess treatment applied to the flow identified by slsSlsFlowId if it does not conform to parameters specified in slsSlsTrafficConformance. Excess traffic may be dropped, shaped and/or remarked. The value must point to a valid instance of one of these classes: slsExcTreatParamEntry" ::= { slsSlsEntry 5 } slsSlsPerformance OBJECT-TYPE SYNTAX Prid STATUS current DESCRIPTION "This attribute specifies the performance guarantees the network offers to the customer for the flow identified by slsSlsFlowId. The value must point to an instance of one of these classes: slsPerformanceParamEntry " ::= { slsSlsEntry 6 } slsSlsServiceSchedule OBJECT-TYPE SYNTAX Prid STATUS current DESCRIPTION " This attribute indicates the start time and end time of the service, i.e. when the service is available. The value must point to an valid instance of one of these classes: slsScheduleParamEntry zeroDotZero (non specified)" ::= { slsSlsEntry 7 } slsScopeParamTable OBJECT-TYPE SYNTAX SEQUENCE OF slsScopeParamEntry PIB-ACESS install-notify STATUS current DESCRIPTION "This class specifies the scope parameters" ::= { slsParamClasses 1} slsScopeParamEntry OBJECT-TYPE SYNTAX SlsScopeParamEntry STATUS current DESCRIPTION "This PRC uniquely identifies the geographical/topological region over which the QoS is to be enforced by indicating the boundaries of that region." ::= { slsScopeParamTable 1 } Nguyen, et al. Expires August 2002 [Page 17] Internet Draft COPS-SLS February 2002 slsScopeParamEntry ::= SEQUENCE { SlsScopeParamPrid Prid slsScopeParamId TagReferenceId } slsScopeParamPrid OBJECT-TYPE SYNTAX InstanceId STATUS current DESCRIPTION "An arbitrary integer index that uniquely identifies an instance of the class." ::= { slsScopeParamEntry 1 } slsScopeParamId OBJECT-TYPE SYNTAX TagReferenceId PIB-TAG {slsScopeIfParamId} STATUS current DESCRIPTION "Identifies an SLS Scope." ::= { slsScopeParamEntry 2 } slsScopeIfParamTable OBJECT-TYPE SYNTAX SEQUENCE OF slsScopeInterfaceParamEntry PIB-ACCESS install-notify STATUS current DESCRIPTION "The entry points (interfaces) of the IP packets relative to the region (network)." ::= { slsParamClasses 2 } slsScopeIfParamEntry OBJECT-TYPE SYNTAX SlsScopeIfParamEntry STATUS current DESCRIPTION ôAn entry in the scope interface table describes a single interface of the scope.ö ::= { slsScopeIfParamTable 1 } slsScopeIfParamEntry ::= SEQUENCE { SlsScopeIfParamPrid Prid slsScopeIfParamId TagId slsScopeIfParamIfIndex InterfaceIndex slsScopeIfParamDirection BITS } slsScopeIfParamPrid OBJECT-TYPE SYNTAX Prid STATUS current Nguyen, et al. Expires August 2002 [Page 18] Internet Draft COPS-SLS February 2002 DESCRIPTION "An arbitrary integer index that uniquely identifies an instance of the class." ::= { slsScopeIfParamEntry 1 } slsScopeIfParamId OBJECT-TYPE SYNTAX TagId STATUS current DESCRIPTION "An SLS Scope is composed of one or more entry/exit points. Each interface belonging to the same scope uses the same Scope ID. Hence, A scope Id identifies which scope this interface is a part of. This needs to be the value of slsScopeParamId attribute for an existing instance of slsScopeParamEntry." ::= { slsScopeIfParamEntry 2 } slsScopeIfParamIfIndex OBJECT-TYPE SYNTAX InterfaceIndex STATUS current DESCRIPTION " This value contains the interface index of the entry/exit interface." ::= { slsScopeIfParamEntry 3 } slsScopeIfParamDirection OBJECT-TYPE SYNTAX BITS{ ingress (0) egress (1) } STATUS current DESCRIPTION " This attribute specifies whether the interface is an entry point (ingress) or an exit point (egress) of thez SLS scope." ::= { slsScopeIfParamEntry 4 } slsFlowIdParamTable OBJECT-TYPE SYNTAX SEQUENCE OF slsFlowIdParamEntry PIB-ACCESS install-notify STATUS current DESCRIPTION "This class specifies parameters identifying a traffic stream" ::= { slsParamClasses 3 } slsFlowIdParamEntry OBJECT-TYPE SYNTAX SlsFlowIdParamEntry STATUS current Nguyen, et al. Expires August 2002 [Page 19] Internet Draft COPS-SLS February 2002 DESCRIPTION "The instance of this class identifies a traffic stream" ::= { slsFlowIdParamTable 1 } SlsFlowIdParamEntry ::= SEQUENCE{ slsFlowIdParamPrid InstanceId slsFlowIdParamAddrType InetAddressType, slsFlowIdParamDstAddr InetAddress, slsFlowIdParamDstPrefixLength InetAddressPrefixLength slsFlowIdParamSrcAddr InetAddress, slsFlowIdParamSrcPrefixLength InetAddressPrefixLength, slsFlowIdParamDscp DscpOrAny, slsFlowIdParamFlowLable Unsigned32, slsFlowIdParamProtocol Integer32, slsFlowIdParamDstL4PortMin InetPortNumber, slsFlowIdParamDstL4PortMax InetPortNumber, slsFlowIdParamSrcL4PortMin InetPortNumber, slsFlowIdParamSrcL4PortMax InetPortNumber } slsFlowIdParamPrid OBJECT-TYPE SYNTAX InstanceId STATUS current DESCRIPTION "An arbitrary integer index that uniquely identifies an instance of the class" ::= { slsFlowIdParamEntry 1 } slsFlowIdParamAddrType OBJECT-TYPE SYNTAX InetAddressType STATUS current DESCRIPTION "Specify the type of packet's IP address." ::= { slsFlowIdParamEntry 2 } slsFlowIdParamDstAddr OBJECT-TYPE SYNTAX InetAddress STATUS current DESCRIPTION "The IP address of the packet's destination." ::= { slsFlowIdParamEntry 3 } slsFlowIdParamDstPrefixLength OBJECT-TYPE SYNTAX InetAddressPrefixLength STATUS current DESCRIPTION "The length of a mask for the matching of the destination IP address. The value of 0 indicates that the address Nguyen, et al. Expires August 2002 [Page 20] Internet Draft COPS-SLS February 2002 always matches." ::= { slsFlowIdParamEntry 4 } slsFlowIdParamSrcAddr OBJECT-TYPE SYNTAX InetAddress STATUS current DESCRIPTION "The IP address of the packet's source." ::= { slsFlowIdParamEntry 5 } slsFlowIdParamSrcPrefixLength OBJECT-TYPE SYNTAX InetAddressPrefixLength STATUS current DESCRIPTION "The length of a mask for the matching of the destination IP address. A value of 0 indicates that the address always matches." ::= { slsFlowIdParamEntry 6 } slsFlowIdParamDscp OBJECT-TYPE SYNTAX DscpOrAny STATUS current DESCRIPTION "The DSCP value of the packet. A value of û1 indicates that DSCP value has not been defined." ::= { slsFlowIdParamEntry 7 } slsFlowIdParamFlowLable OBJECT-TYPE SYNTAX Unsigned32 STATUS current DESCRIPTION "The value of the Flow Label field in IPv6 header." ::= { slsFlowIdParamEntry 8 } slsFlowIdParamProtocol OBJECT-TYPE SYNTAX Integer32 STATUS current DESCRIPTION "The value of the Protocol field in IP header." ::= { slsFlowIdParamEntry 9 } slsFlowIdParamDstL4PortMin OBJECT-TYPE SYNTAX InetPortNumber STATUS current DESCRIPTION "The minimum value that the packet's layer 4 destination port number can have." ::= { slsFlowIdParamEntry 10 } Nguyen, et al. Expires August 2002 [Page 21] Internet Draft COPS-SLS February 2002 slsFlowIdParamDstL4PortMax OBJECT-TYPE SYNTAX InetPortNumber STATUS current DESCRIPTION "The maximum value that the packet's layer 4 destination port number can have." ::= { slsFlowIdParamEntry 11 } slsFlowIdParamSrcL4PortMin OBJECT-TYPE SYNTAX InetPortNumber STATUS current DESCRIPTION "The minimum value that the packet's layer 4 source port number can have." ::= { slsFlowIdParamEntry 12 } slsFlowIdParamSrcL4PortMax OBJECT-TYPE SYNTAX InetPortNumber STATUS current DESCRIPTION "The minimum value that the packet's layer 4 source port number can have." ::= { slsFlowIdParamEntry 13 } slsConformParamTable OBJECT-TYPE SYNTAX SEQUENCE OF slsConformParamEntry PIB-ACCESS install-notify STATUS current DESCRIPTION "This class defines the traffic conformance of a traffic stream." ::= { slsParamClasses 4 } slsConformParamEntry OBJECT-TYPE SYNTAX SlsConformParamEntry STATUS current DESCRIPTION "The instance of this class specifies algorithm and profile to verify the conformance of a traffic stream" ::= { slsConformParamTable 1 } SlsConformParamEntry ::= SEQUENCE { slsConformParamPrid InstanceId slsConformParamAlgo Unsigned32 slsConformParamRate Unsigned32 slsConformParamBurstSize Unsigned32 } Nguyen, et al. Expires August 2002 [Page 22] Internet Draft COPS-SLS February 2002 slsConformPrid OBJECT-TYPE SYNTAX InstanceId STATUS current DESCRIPTION "An arbitrary integer that uniquely identifies an instance of the class." ::= { slsConformParamEntry 1 } slsConformParamAlgo OBJECT-TYPE SYNTAX Unsigned32 STATUS current DESCRIPTION "Specify the algorithm used to verify the conformance of the traffic stream. 1 û Simple Token Bucket" ::= { slsConformParamEntry 2 } slsConformParamRate OBJECT-TYPE SYNTAX Unsigned32 STATUS current DESCRIPTION "The rate value used in Simple Token Bucket algorithm." ::= { slsConformParamEntry 3 } slsConformParamBurstSize OBJECT-TYPE SYNTAX Unsigned32 STATUS current DESCRIPTION "The burst size value used in Simple Token Bucket algorithm." ::= { slsConformParamEntry 4 } slsExcTreatParamTable OBJECT-TYPE SYNTAX SEQUENCE OF slsExcTreatParamEntry PIB-ACCESS install-notify STATUS current DESCRIPTION "This class specifies parameters of schedule of service" ::= { slsParamClasses 5 } slsExcTreatParamEntry OBJECT-TYPE SYNTAX SlsExctreatParamEntry STATUS current DESCRIPTION "The instance of this class identifies a traffic stream" ::= { slsExcTreatParamTable 1 } Nguyen, et al. Expires August 2002 [Page 23] Internet Draft COPS-SLS February 2002 SlsExcTreatParamEntry ::= SEQUENCE { slsExcTreatParamPrid InstanceId slsExcTreatParamAction BITS } slsExcTreatParamPrid OBJECT-TYPE SYNTAX InstanceId STATUS current DESCRIPTION "An arbitrary integer that uniquely identifies an instance of the class." ::= { slsExcTreatParamEntry 1 } slsExcTreatParamAction OBJECT-TYPE SYNTAX BITS{ shapping(1) -- traffic exceeding the conformance parameters negotiated will be shaped. dropping (2) -- traffic exceeding the conformance parameters negotiated will be dropped } STATUS current DESCRIPTION "Specify the treatment applied to the packet out of the data stream's conformance negotiated (1) û shapping exceeding traffic (2) û dropping exceeding traffic" ::= { slsExcTreatParamEntry 2 } slsPerformanceParamTable OBJECT-TYPE SYNTAX SEQUENCE OF slsPerformanceParamEntry PIB-ACCESS install-notify STATUS current DESCRIPTION "This class specifies parameters of performance of a flow" ::= { slsParamClasses 6 } slsPerformanceParamEntry OBJECT-TYPE SYNTAX SlsPerformanceParamEntry STATUS current DESCRIPTION "Describes performance parameters of a flow" ::= { sls PerformanceParamTable 1 } SlsPerformanceParamEntry ::= SEQUENCE { slsPerformanceParamPrid InstanceId slsPerformanceParamDelay Unsigned32 Nguyen, et al. Expires August 2002 [Page 24] Internet Draft COPS-SLS February 2002 slsPerformanceParamJitter Unsigned32 slsPerformanceParamPacketLoss Unsigned32 } slsPerformanceParamPrid OBJECT-TYPE SYNTAX InstanceId STATUS current DESCRIPTION "An arbitrary integer that uniquely identifies an instance of the class." ::= { slsPerformanceParamEntry 1 } slsPerformanceParamDelay OBJECT-TYPE SYNTAX Unsigned32 STATUS current DESCRIPTION "Specifies the delay value in milisecond" ::= { slsPerformanceParamEntry 2 } slsPerformanceParamJitter OBJECT-TYPE SYNTAX Unsigned32 STATUS current DESCRIPTION "Specifies the jitter value in milisecond" ::= { slsPerformanceParamEntry 3 } slsPerformanceParamPacketLoss OBJECT-TYPE SYNTAX Unsigned32 STATUS current DESCRIPTION "Specifies the packet loss ratio in %" ::= { slsPerformanceParamEntry 4 } slsScheduleParamTable OBJECT-TYPE SYNTAX SEQUENCE OF slsScheduleParamEntry PIB-ACCESS install-notify STATUS current DESCRIPTION "This class specifies parameters of schedule of service" ::= { slsParamClasses 7} slsScheduleParamEntry OBJECT-TYPE SYNTAX SlsScheduleParamEntry STATUS current DESCRIPTION "Specifies a service schedule" ::= { slsScheduleParamTable 1 } Nguyen, et al. Expires August 2002 [Page 25] Internet Draft COPS-SLS February 2002 SlsScheduleParamEntry ::= SEQUENCE { slsScheduleParamPrid InstanceId slsScheduleParamStartTime ExtUTCTime slsScheduleParamStopTime ExtUTCTime } slsScheduleParamPrid OBJECT-TYPE SYNTAX InstanceId STATUS current DESCRIPTION "An arbitrary integer that uniquely identifies an instance of the class." ::= { slsScheduleParamEntry 1 } slsScheduleParamStartTime OBJECT-TYPE SYNTAX ExtUTCTime STATUS current DESCRIPTION "The time the service starts" ::= { slsScheduleParamEntry 2 } slsScheduleParamStopTime OBJECT-TYPE SYNTAX ExtUTCTime STATUS current DESCRIPTION "The time the service terminate" ::= { slsScheduleParamEntry 3 } slsNegoRptTable OBJECT-TYPE SYNTAX SEQUENCE OF SlsNegoRptEntry PIB-ACCESS report-only STATUS current DESCRIPTION "This class is used by the PEP to convey negotiation information in RPT message" ::= { slsReportClasses 1 } slsNegoRptEntry OBJECT-TYPE SYNTAX SlsNegoRptEntry STATUS current DESCRIPTION "An instance of this class reports on the SLS negotiation" ::= { slsNegoRptTable 1 } SlsNegoRptEntry ::= SEQUENCE { slsNegoRptPrid InstanceId slsNegoRptFailRea BITS } Nguyen, et al. Expires August 2002 [Page 26] Internet Draft COPS-SLS February 2002 slsNegoRptPrid OBJECT-TYPE SYNTAX InstanceId STATUS current DESCRIPTION "An arbitrary integer that uniquely identifies an instance of the class" ::= { slsNEgoRptEntry 1 } slsNegoRptFailRea OBJECT-TYPE SYNTAX BITS { slsNonAccepted (1) } STATUS current DESCRIPTION "This attribute specifies the reason by which the PEP sends a 'failure' report (1) û the PEP does not accept the SLS suggested" ::= { slsNEgoRptEntry 1 } END. 7. Security Considerations COPS-SLS follows the security considerations for COPS protocol [COPS] 8. IANA Consideration The client-type value of COPS-SLS is to be assigned through IANA. 9. Acknowledgements We would like to acknowledge ours friends from LIP6 or INFRES-ENST for their comments and discussions during the preparation of this document. 10. References [COPS] J. Boyle, R. Cohen, D. Durham, S. Herzog, R. Raja, A. Sastry, "The COPS (Common Open Policy Service) Protocol", RFC 2748, January 2000. [COPS-PR] K. Chan, J. Seligson, D. Durham, S. Gai, K. McCloghrie, S. Herzog, F. Reichmeyer, R. Yavatkar, A. Smith, "COPS Usage for Policy Provisioning (COPS-PR)", RFC 3084, March 2001. [DS-TERM] D. Grossman, "New Terminology for Diffserv", draft- Nguyen, et al. Expires August 2002 [Page 27] Internet Draft COPS-SLS February 2002 ietf-diffserv-new-terms-08.txt, January 2002, Work in progress. [RAP] Yavatkar, R., Pendarakis, D. and R. Guerin, "A Framework for Policy Based Admission Control", RFC 2753, January 2000. [RFC-2026] S. Bradner, " The Internet Standards Process -- Revision 3", RFC 2026, October 1996. [RFC-2119] S. Bradner, "Key words for use in RFCs to Indicate Requirement Levels", RFC 2119, March 1997. [SLS-AQU] S. Salsano, F. Ricciato, M. Winter, G. Eichler, A. Thomas, F. Fuenfstueck, T. Ziegler, C. Brandauer, "Definition and usage of SLSs in the AQUILA consortium", draft-salsano-aquila-sls-00.txt, November 2000, Work in pogress. [SLS-FRW-TEQ] Y. T'Joens, D. Goderis, R. Rajan, S. Salsano, C. Jacquenet, G. Mamanios, G. Pavlou, R. Egan, D. Griffin, P. Vanheuven, P. Georgatsos, L. Georgiadis, "Service Level Specification and Usage", draft-manyfolks-sls- framework-00.txt, October 2000, Work in progress. [SLS-INTER] R. Rajan, E. Celenti, S. Dutta, "Service Level Specification for Inter-domain QoS Negotiation", draft- somefolks-sls-00.txt, November 2000, Work in progress. [SLS-TEQ] D. Goderis, Y. T'Joens, C. Jacquenet, G. Memenios, G. Pavlou, R. Egan, D. Griffin, P. Georgatsos, L. Georgiadis, P.V. Heuven, "Service Level Specification Semantics and parameters", draft-tequila-sls-01.txt, June 2001, Work in progress. [SPPI] K. McCloghrie, M. Fine, J. Seligson, K. Chan, S. Hahn, R. Sahita, A. Smith, F. Reichmeyer, "Structure of Policy Provisioning Information (SPPI)", RFC 3159, August 2001. 11. Authors' Addresses Thi Mai Trang Nguyen Ecole Nationale Superieure des Telecommunications Departement Informatique-Reseaux 46 Rue Barrault 74013 Paris - FRANCE Phone: +33 1 45 81 74 61 Email: trnguyen@enst.fr Nguyen, et al. Expires August 2002 [Page 28] Internet Draft COPS-SLS February 2002 Nadia Boukhatem Ecole Nationale Superieure des Telecommunications Departement Informatique-Reseaux 46 Rue Barrault 74013 Paris - FRANCE Phone: +33 1 45 81 82 16 Email: Nadia.Boukhatem@enst.fr Yacine El Mghazli Alcatel R&I Route de Nozay F-91460 Marcoussis - FRANCE Phone: +33 1 69 63 41 87 Email: yacine.el_mghazli@alcatel.fr Nathalie Charton Alcatel R&I Route de Nozay F-91460 Marcoussis - FRANCE Phone: +33 1 69 63 14 85 Email: Nathalie.Charton@ms.alcatel.fr Guy Pujolle University of Pierre et Marie Curie Laboratoire d'Informatique de Paris 6 Theme Reseaux-Performances 8 Rue du Capitaine Scotte 75015 Paris - FRANCE Phone: +33 1 44 27 75 14 Email: Guy.Pujolle@lip6.fr 12. Full Copyright Statement Copyright (C) The Internet Society (2001). 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 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. Nguyen, et al. Expires August 2002 [Page 29] Internet Draft COPS-SLS February 2002 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, INCLUDING 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. Nguyen, et al. Expires August 2002 [Page 30]