
Common Open Policy Service (COPS) Protocol per [RFC2748]

(last updated 26 May 2006)

- Client Types Values
- C-Num and C-Type Values 
- R-Types, Reason-Codes, Report-Types, Decision Object 
  Command-Codes/Flags, and Error-Codes
- M-Types, Reason Sub-Codes, and Error Sub-codes 
- S-Num, S-Types, and Error-Codes
- P-types
- X-types, SubTypes
- A-types, SubTypes
- ErrorValues 

The Client-type identifies the policy client application to which a
message refers. Client-type values within the range 0x0001-0x3FFF
are reserved Specification Required status as defined in [RFC2434].
These values MUST be registered with IANA and their behavior and
applicability MUST be described in a COPS extension document.

Client-type Values (0x0001-0x3FFF)

Value  Name       PIB Module     Description                  Reference
-----  ---------  -------------  ----------------------       ---------
    1                            COPS Usage for RSVP          [RFC2749]
    2  diffServ   dsPolicyPib    DiffServ QoS, DIFFSERV-PIB   [RFC3317]

Client-type values in the range 0x4000 - 0x7FFF are reserved for
Private Use as defined in [RFC2434]. These Client-types
are not tracked by IANA and are not to be used in standards or
general-release products, as their uniqueness cannot be assured.

Client-type values in the range 0x8000 - 0xFFFF are First Come
First Served as defined in [RFC2434]. These Client-types are
tracked by IANA but do not require published documents describing
their use. IANA merely assures their uniqueness.

Client-Type Values (0x8000-0xFFFF)
------------------

Value   Name       PIB Module  Description                                Reference
------  ---------  ----------  ------------------------------------       --------- 
0x8001                         IP Highway                                  [Herzog]
0x8002                         IP Highway                                  [Herzog]
0x8003                         IP Highway                                  [Herzog]
0x8004                         IP Highway                                  [Herzog]
0x8005                         Fujitsu Application                         [Hanada]
                               Server Software Division
0x8006                         HP OpenView PolicyXpert                    [O'Keefe]   
0x8007                         HP OpenView PolicyXpert COPS-PR PXPIB      [O'Keefe]
0x8008                         PacketCable Dynamic Quality of Service     [Gaedtke]         
0x8009  go3gppPib  go3gppPib   COPS usage for 3GPP   [3GPP T.S. 29.207 - Release 5]
                               GO interface 
0x800a                         PacketCable Multimedia 
                        [http://www.packetcable.com/specifications/multimedia.html]	
0x800b                         Juniper Networks                             [Scano]
		   
Objects in the COPS Protocol are identified by their C-Num and
C-Type values. IETF Consensus as identified in [RFC2434] is
required to introduce new values for these numbers and, therefore,
new objects into the base COPS protocol.

c-num  c-type  Description				    Reference
------ ------  -------------------------		    ---------
0x01   0x01    Handle					    [RFC2748]
0x02   0x01    Context					    [RFC2748]
0x03   0x01    In-Interface, IPv4			    [RFC2748]
0x03   0x02    In-Interface, IPv6			    [RFC2748]
0x04   0x01    Out-Interface, IPv4			    [RFC2748]
0x04   0x02    Out-Interface, IPv6			    [RFC2748]
0x05   0x01    Reason					    [RFC2748]
0x06   0x01    Decision, Flags				    [RFC2748]
0x06   0x02    Decision, Stateless Data			    [RFC2748]
0x06   0x03    Decision, Replacement Data		    [RFC2748]
0x06   0x04    Decision, Client Specific Decision Data	    [RFC2748]
0x06   0x05    Decision, Named Decision Data		    [RFC2748]
0x07   0x01    LPDP Decision, Flags			    [RFC2748]
0x07   0x02    LPDP Decision, Stateless Data		    [RFC2748]
0x07   0x03    LPDP Decision, Replacement Data		    [RFC2748]
0x07   0x04    LPDP Decision, Client Specific Decision Data [RFC2748]
0x07   0x05    LPDP Decision, Named Decision Data           [RFC2748]
0x08   0x01    Error					    [RFC2748]
0x09   0x01    Client Specific Information, Signaled        [RFC2748]
0x09   0x02    Client Specific Information, Named           [RFC2748]
0x0A   0x01    Keep-Alive Timer				    [RFC2748]
0x0B   0x01    PEP Identification			    [RFC2748]
0x0C   0x01    Report-Type				    [RFC2748]
0x0D   0x01    PDP Redirect Address, IPv4 + TCP Port        [RFC2748]
0x0D   0x02    PDP Redirect Address, IPv6 + TCP Port        [RFC2748]
0x0E   0x01    Last PDP Address, IPv4 + TCP Port            [RFC2748]
0x0E   0x02    Last PDP Address, IPv6 + TCP Port            [RFC2748]
0x0F   0x01    Accounting Timer                             [RFC2748]
0x10   0x01    Message Integrity                            [RFC2748]
0x10   0x02    Message Integrity, Integrity-TLS             [RFC4261]

Additional Context Object R-Types, Reason-Codes, Report-Types,
Decision Object Command-Codes/Flags, and Error-Codes MAY be defined
for use with future Client-types, but such additions require IETF
Consensus as defined in [RFC2434].

R-Type   Description					Reference
-------  ----------------------------------		---------   
0x01     Incoming-Message/Admission Control request     [RFC2748]
0x02     Resource-Allocation request			[RFC2748]
0x04     Outgoing-Message request			[RFC2748]
0x08     Configuration request				[RFC2748]

Reason-Code   Description				Reference
-----------   -----------------------------		---------	
1             Unspecified				[RFC2748]
2             Management				[RFC2748]
3             Preempted					[RFC2748]	
4             Tear					[RFC2748]
5             Timeout					[RFC2748]
6             Route Change				[RFC2748]
7             Insufficient Resources			[RFC2748]
8             PDP's Directive				[RFC2748]
9             Unsupported decision			[RFC2748]
10            Synchronize Handle Unknown		[RFC2748]	
11            Transient Handle				[RFC2748]
12            Malformed Decision			[RFC2748]
13            Unknown COPS Object			[RFC2748]

Report-Type   Description				Reference
-----------   -----------------------------		---------
1             Success					[RFC2748]
2             Failure					[RFC2748]
3             Accounting				[RFC2748]
 
Command-Code  Description				Reference
------------  -----------------------------		---------
0             NULL Decision				[RFC2748]
1             Install					[RFC2748] 
2             Remove					[RFC2748]

Decision-Flag Description				Reference
------------- -----------------------------		---------
0x01          Trigger Error				[RFC2748]
0x02          Request-State                             [RFC3084] 

Error-Code    Description				Reference
------------  -----------------------------		---------   
1             Bad handle				[RFC2748]
2             Invalid handle reference			[RFC2748]
3             Bad message format			[RFC2748]
4             Unable to process				[RFC2748]
5             Mandatory client-specific info missing	[RFC2748]
6             Unsupported client-type			[RFC2748]
7             Mandatory COPS object missing		[RFC2748]
F8             Client Failure				[RFC2748]
9             Communication Failure			[RFC2748]	
10            Unspecified				[RFC2748]
11            Shutting down				[RFC2748]
12            Redirect to Preferred Server		[RFC2748]
13            Unknown COPS Object			[RFC2748]
14            Authentication Failure			[RFC2748]
15            Authentication Required			[RFC2748]

Context Object M-Types, Reason Sub-Codes, and Error Sub-codes MAY
be defined relative to a particular Client-type following the same
IANA considerations as their respective Client-type.

Additional error sub-codes defined for messages containing 
Client-type = 0 are:

            Error-SubCode                     
Error-Code  Octet 2  Octet 3  Description                        Reference
----------  ----------------  ---------------------------------  ---------  
      15       16        0    No security                        [RFC4261]
      15       16        2    Integrity-TLS supported/preferred  [RFC4261] 


Additional COPS-PR [RFC3084] Object S-Num, S-Types, and Error-Codes
MAY be defined for use with future COPS-PR Client-types, but such
additions require IETF Consensus as defined in [RFC2434]. 

s-num val s-type val  Description (s-num, s-type)	Reference
--------- ----------  ---------------------------       ---------
0x01      0x01        Complete PRID, BER		[RFC3084]
0x02      0x01        Prefix PRID, BER			[RFC3084]
0x03      0x01        EPD, BER				[RFC3084]
0x04      0x01        GPERR, BER			[RFC3084]
0x05      0x01        CPERR, BER			[RFC3084]
0x06      0x01        ErrorPRID, BER			[RFC3084]
          0x02        Reserved for transport of XML     [RFC3084]
                      encoded data

Error codes corresponding to the GPERR (Global Provisioning 
Error) object identified above (s-num=4,s-type=1) are all 
listed below:

Value	Name				Reference
------  --------------------            ---------
1       availMemLow			[RFC3084]
2       availMemExhausted		[RFC3084]	
3       unknownASN.1Tag			[RFC3084]
4       maxMsgSizeExceeded		[RFC3084]
5       unknownError			[RFC3084]
6       maxRequestStatesOpen		[RFC3084]
7       invalidASN.1Length		[RFC3084]
8       invalidObjectPad		[RFC3084]
9       unknownPIBData			[RFC3084]
10      unknownCOPSPRObject		[RFC3084]
11      malformedDecision		[RFC3084]

Error codes corresponding to the CPERR (Class-Specific
Provisioning Error) object identified above (s-num=5,s-type=1)
are all listed below:

Value	Name				Reference
------  --------------------            ---------
1       priSpaceExhausted		[RFC3084] 
2       priInstanceInvalid		[RFC3084]
3       attrValueInvalid		[RFC3084]
4       attrValueSupLimited		[RFC3084]
5       attrEnumSupLimited		[RFC3084]
6       attrMaxLengthExceeded		[RFC3084]
7       attrReferenceUnknown		[RFC3084]
8       priNotifyOnly			[RFC3084]
9       unknownPrc			[RFC3084]
10      tooFewAttrs			[RFC3084]
11      invalidAttrType			[RFC3084]
12      deletedInRef			[RFC3084]
13      priSpecificError		[RFC3084]

P-Type   Description                                    Reference
-------  ----------------------------------             ---------
0x01     PREEMPTION_PRI                                 [RFC3181]
0x02     AUTH_USER                                      [RFC3182]
0x03     AUTH_APP                                       [RFC3182]
0x04     AUTH_SESSION                                   [RFC3520]

  AUTH_SESSION X-Types (0x04)

  Following the policies outlined in [RFC3520],  session 
  authorization attribute types (X-Type) in the range 0-127 are 
  allocated through an IETF Consensus action; X-Type values between 
  128-255 are reserved for Private Use and are not assigned by IANA. 

  X-Type   Description                                  Reference 
  -------  ----------------------------------           --------- 
        1  AUTH_ENT_ID                                  [RFC3520] 
        2  SESSION_ID                                   [RFC3520] 
        3  SOURCE_ADDR                                  [RFC3520] 
        4  DEST_ADDR                                    [RFC3520] 
        5  START_TIME                                   [RFC3520] 
        6  END_TIME                                     [RFC3520] 
        7  RESOURCES                                    [RFC3520] 
        8  AUTHENTICATION_DATA                          [RFC3520] 

  SubTypes
  --------
  Following the policies outlined in [RFC3520], 
  AUTH_ENT_ID SubTypes values in the range 0-127 are 
  allocated through an IETF Consensus action, SubType values 
  between 128-255 are reserved for Private Use and are not 
  assigned by IANA. 
   
  AUTH_ENT_ID (X-Type 1) SubType values
  SubType  Description                                 Reference 
  -------  ----------------------------------          --------- 
        1  IPV4_ADDRESS                                [RFC3520]
        2  IPV6_ADDRESS                                [RFC3520]
        3  FQDN                                        [RFC3520]
        4  ASCII_DN                                    [RFC3520]
        5  UNICODE_DN                                  [RFC3520]
        6  URI                                         [RFC3520]
        7  KRB_PRINCIPAL                               [RFC3520]
        8  X509_V3_CERT                                [RFC3520]
        9  PGP_CERT                                    [RFC3520]

  Following the policies outlined in [RFC3520], 
  SOURCE_ADDR SubType values in the range 0-127 are allocated through 
  an IETF Consensus action, SubType values between 128-255 are 
  reserved for Private Use and are not assigned by IANA. 

  SOURCE_ADDR (X-Type 3) SubType values
  SubType  Description                                 Reference 
  -------  ----------------------------------          --------- 
        1  IPV4_ADDRESS                                [RFC3520]
        2  IPV6_ADDRESS                                [RFC3520] 
        3  UDP_PORT_LIST                               [RFC3520]  
        4  TCP_PORT_LIST                               [RFC3520]

  Following the policies outlined in [RFC3520], 
  DEST_ADDR SubType values in the range 0-127 are allocated through an 
  IETF Consensus action, SubType values between 128-255 are reserved 
  for Private Use and are not assigned by IANA. 
  
  DEST_ADDR (X-Type 4) SubType values
  SubType  Description                                 Reference 
  -------  ----------------------------------          --------- 
        1  IPV4_ADDRESS                                [RFC3520]
        2  IPV6_ADDRESS                                [RFC3520]
        3  UDP_PORT_LIST                               [RFC3520]
        4  TCP_PORT_LIST                               [RFC3520]

  Following the policies outlined in [RFC3520], 
  START_TIME SubType values in the range 0-127 are allocated through an
  IETF Consensus action, SubType values between 128-255 are 
  reserved for Private Use and are not assigned by IANA.

  START_TIME (X-Type 5) SubType values
  SubType  Description                                 Reference 
  -------  ----------------------------------          --------- 
        1  NTP_TIMESTAMP                               [RFC3520]
 
  Following the policies outlined in [RFC3520], 
  END_TIME SubType values in the range 0-127 are allocated through an 
  IETF Consensus action, SubType values between 128-255 are reserved 
  for Private Use and are not assigned by IANA.
 
  END_TIME (X-Type 6) SubType values
  SubType  Description                                 Reference 
  -------  ----------------------------------          --------- 
        1  NTP_TIMESTAMP                               [RFC3520]

  Following the policies outlined in [RFC3520], 
  RESOURCES SubType values in the range 0-127 are allocated through an 
  IETF Consensus action, SubType values between 128-255 are reserved 
  for Private Use and are not assigned by IANA.
     
  RESOURCES (X-Type 7) SubType values
  SubType  Description                                 Reference 
  -------  ----------------------------------          --------- 
        1  BANDWIDTH                                   [RFC3520]
        2  FLOW_SPEC                                   [RFC3520]
        3  SDP                                         [RFC3520]
        4  DSCP                                        [RFC3520]
 
A-Type   Description                                   Reference
-------  ----------------------------------            ---------
1        POLICY_LOCATOR                                [RFC3182]
2        CREDENTIAL                                    [RFC3182]
3        DIGITAL_SIGNATURE                             [RFC3182]
4        POLICY_ERROR_OBJECT                           [RFC3182]
5-127    Assigned by the IANA 
128-255  Reserved for Private Use
   
SubTypes

Following the policies outlined in [RFC3182] POLICY_LOCATOR 
SubType values in the range 0-127 are allocated through an 
IETF Consensus action, POLICY_LOCATOR SubType values between 
128-255 are reserved for Private Use and are not assigned by IANA.

POLICY_LOCATOR  (A-Type 1)

1  ASCII_DN                                             [RFC3182]
2  UNICODE_DN                                           [RFC3182]
3  ASCII_DN_ENCRYPT                                     [RFC3182]
4  UNICODE_DN_ENCRYPT                                   [RFC3182]


Following the policies outlined in [RFC3182], CREDENTIAL SubType 
values in the range 0-127 are allocated through an IETF Consensus 
action, CREDENTIAL SubType values between 128-255 are reserved 
for Private Use and are not assigned by IANA.

CREDENTIAL  (A-Type 2)

1  ASCII_ID						[RFC3182]
2  UNICODE_ID        					[RFC3182]
3  KERBEROS_TKT                                         [RFC3182]
4  X509_V3_CERT                                         [RFC3182]
5  PGP_CERT                                             [RFC3182]


Following the policies outlined in [RFC3182],
ErrorValues in the range 0-32767 are allocated through an 
IETF Consensus action, ErrorValues between 32768-65535 are
reserved for Private Use and are not assigned by IANA.

1  ErrorValue ERROR_NO_MORE_INFO                        [RFC3182]
2  UNSUPPORTED_CREDENTIAL_TYPE                          [RFC3182]
3  INSUFFICIENT_PRIVILEGES                              [RFC3182] 
4  EXPIRED_CREDENTIAL                                   [RFC3182]
5  IDENTITY_CHANGED                                     [RFC3182] 


REFERENCES
----------
[RFC2434]  Alvestrand, H. and T. Narten, "Guidelines for Writing
           an IANA Considerations Section in RFCs", BCP 26,
           RFC 2434, October 1998.

[RFC2748]  Durham, D., J. Boyle, R. Cohen, S. Herzog, R. Rajan, 
           A. Sastry, "The COPS (Common Open Policy Service)
           Protocol", RFC 2748, January 2000.

[RFC2749]  Boyle, J., Cohen, R., Durham, D., Herzog, S., Raja, R.
           and A. Sastry, "COPS Usage for RSVP", RFC 2749,
           January 2000.

[RFC3084]  Chan, K., D. Durham, S. Gai, S. Herzog, K. McCloghrie,
           F. Reichmeyer, J. Seligson, A. Smith, and R. Yavatkar, 
           "COPS Usage for Policy Provisioning (COPS-PR)" RFC 3084,
           March 2001.

[RFC3181]  S. Herzog, "Signaled Preemption Priority Policy Element",
           RFC 3181, September 2001.

[RFC3182]  S. Yadav, R. Yavatkar, R. Pabbati, P. Ford, T. Moore, 
           S. Herzog, and R. Hess,  "Identity Representation for 
           RSVP", RFC 3182, September 2001.

[RFC3317]  M. Fine, K. McCloghrie, J. Seligson, K. Chan, S. Hahn, 
           C. Bell, A. Smith, and F. Reichmeyer, "Differentiated 
           Services Quality of Service Policy Information Base",
           RFC 3317, December 2002.  

[RFC3520]  L-N. Hamer, B. Gage, B. Kosinski, and H. Shieh, "Session 
           Authorization Policy Element", RFC 3520, April 2003.

[3GPP T.S. 29.207 - Release 5]  
           ftp://ftp.3gpp.org/specs/Specs/archive/29_series/29.207/ 

[RFC4261]  J. Walker and A. Kulkarni, Ed., "COPS Over TLS", RFC 4261, 
           December 2005.


PEOPLE
------
[Gaedtke] Jason Gaedtke, <j.gaedtke@CableLabs.com>, December 2001.

[Hanada]  Tetsuharu Hanada, <hanada@pc.fujitsu.com>,
          December 2000.

[Herzog]  Shai Herzog, <herzog@policyconsulting.com>, July 1999, 
          November 1999. 

[O'Keefe]  Brian O'Keefe, <brian_okeefe@hp.com>, May 2001.

[Scano]   John Scano, <jscano@juniper.net>, January 2005.

(created November 2000)

[]









