summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc3159.txt
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
committerThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
commit4bfd864f10b68b71482b35c818559068ef8d5797 (patch)
treee3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc3159.txt
parentea76e11061bda059ae9f9ad130a9895cc85607db (diff)
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc3159.txt')
-rw-r--r--doc/rfc/rfc3159.txt2243
1 files changed, 2243 insertions, 0 deletions
diff --git a/doc/rfc/rfc3159.txt b/doc/rfc/rfc3159.txt
new file mode 100644
index 0000000..aedfee6
--- /dev/null
+++ b/doc/rfc/rfc3159.txt
@@ -0,0 +1,2243 @@
+
+
+
+
+
+
+Network Working Group K. McCloghrie
+Request for Comments: 3159 M. Fine
+Category: Standards Track Cisco Systems
+ J. Seligson
+ K. Chan
+ Nortel Networks
+ S. Hahn
+ R. Sahita
+ Intel
+ A. Smith
+ Allegro Networks
+ F. Reichmeyer
+ PFN
+ August 2001
+
+
+ Structure of Policy Provisioning Information (SPPI)
+
+Status of this Memo
+
+ This document specifies an Internet standards track protocol for the
+ Internet community, and requests discussion and suggestions for
+ improvements. Please refer to the current edition of the "Internet
+ Official Protocol Standards" (STD 1) for the standardization state
+ and status of this protocol. Distribution of this memo is unlimited.
+
+Copyright Notice
+
+ Copyright (C) The Internet Society (2001). All Rights Reserved.
+
+Abstract
+
+ This document, the Structure of Policy Provisioning Information
+ (SPPI), defines the adapted subset of SNMP's Structure of Management
+ Information (SMI) used to write Policy Information Base (PIB)
+ modules.
+
+ RFC 2748 defines the COPS protocol, and RFC 2749 describes how the
+ COPS protocol is used to provide for the outsourcing of policy
+ decisions for RSVP. Another usage of the COPS protocol, for the
+ provisioning of policy, is introduced in RFC 3084. In this
+ provisioning model, the policy information is viewed as a collection
+ of Provisioning Classes (PRCs) and Provisioning Instances (PRIs)
+ residing in a virtual information store, termed the Policy
+ Information Base (PIB). Collections of related Provisioning Classes
+ are defined in a PIB module.
+
+
+
+
+
+McCloghrie, et al. Standards Track [Page 1]
+
+RFC 3159 SPPI August 2001
+
+
+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 [RFC2119].
+
+Table of Contents
+
+ 1 Use of the SMI ................................................. 3
+ 1.1 Terminology Translation ...................................... 3
+ 1.2 Overview ..................................................... 3
+ 2 Structure of this Specification ................................ 4
+ 3 Definitions .................................................... 5
+ 4 PIB Modules .................................................... 17
+ 4.1 Importing Definitions ........................................ 17
+ 4.2 Reserved Keywords ............................................ 18
+ 5 Naming Hierarchy ............................................... 18
+ 6 Mapping of the MODULE-IDENTITY macro ........................... 18
+ 6.1 Mapping of the SUBJECT-CATEGORIES clause ..................... 18
+ 7 Mapping of the OBJECT-TYPE macro ............................... 19
+ 7.1 Mapping of the SYNTAX clause ................................. 19
+ 7.1.1 Counter32 .................................................. 19
+ 7.1.2 Gauge32 .................................................... 20
+ 7.1.3 Opaque ..................................................... 20
+ 7.1.4 IpAddress .................................................. 20
+ 7.1.5 Counter64 .................................................. 20
+ 7.1.6 Integer64 .................................................. 20
+ 7.1.7 Unsigned64 ................................................. 20
+ 7.1.8 Provisioning Classes ....................................... 21
+ 7.2 Mapping of the MAX-ACCESS clause ............................. 21
+ 7.3 Mapping of the PIB-ACCESS clause ............................. 22
+ 7.4 Mapping of the INSTALL-ERRORS clause ......................... 22
+ 7.5 Mapping of the PIB-INDEX clause .............................. 22
+ 7.6 Mapping of the INDEX clause .................................. 23
+ 7.7 Mapping of the AUGMENTS clause ............................... 23
+ 7.8 Mapping of the EXTENDS clause ................................ 24
+ 7.8.1 Relation between PIB-INDEX, AUGMENTS and EXTENDS clauses .. 24
+ 7.9 Mapping of the UNIQUENESS clause ............................. 25
+ 7.10 Mapping of the PIB-REFERENCES clause ........................ 25
+ 7.11 Mapping of the PIB-TAG clause ............................... 25
+ 8 Mapping of the OBJECT-IDENTITY macro ........................... 26
+ 9 Mapping of the OBJECT-GROUP macro .............................. 26
+ 9.1 Mapping of the OBJECTS clause ................................ 26
+ 10 Mapping of the MODULE-COMPLIANCE macro ........................ 26
+ 10.1 Mapping of the MODULE clause ................................ 26
+ 10.1.1 Mapping of the MANDATORY-GROUPS clause .................... 27
+ 10.1.2 Mapping of the GROUP clause ............................... 27
+ 10.1.3 Mapping of the OBJECT clause .............................. 27
+
+
+
+McCloghrie, et al. Standards Track [Page 2]
+
+RFC 3159 SPPI August 2001
+
+
+ 10.1.3.1 Mapping of the SYNTAX clause ............................ 27
+ 10.1.3.2 Mapping of the WRITE-SYNTAX clause ...................... 28
+ 10.1.3.3 Mapping of the PIB-MIN-ACCESS clause .................... 28
+ 11 Textual Conventions ........................................... 28
+ 11.1 Mapping of the TEXTUAL-CONVENTION macro ..................... 28
+ 11.1.1 Mapping of the DISPLAY-HINT clause ........................ 29
+ 11.1.2 Mapping of the SYNTAX clause .............................. 29
+ 11.1.2.1 Sub-typing of Textual Conventions ....................... 29
+ 12 Extending a PIB Module ........................................ 29
+ 12.1 PIB Modules ................................................. 29
+ 12.2 Object Assignments .......................................... 30
+ 12.3 Object Definitions .......................................... 30
+ Appendix A: Mapping a PIB to a MIB ............................... 32
+ Appendix B: Example usage of PIB-REFERENCES and PIB-TAG clauses .. 33
+ Security Considerations .......................................... 35
+ IANA Considerations .............................................. 35
+ Authors' Addresses ............................................... 37
+ References ....................................................... 38
+ Full Copyright Statement ......................................... 40
+
+1. Use of the SMI
+
+ The SPPI and PIB modules are based on SNMP's SMI and MIB modules,
+ which use an adapted subset of the ASN.1 data definition language
+ [ASN1]. The decision to base the definition of PIB modules on this
+ format allows for the leveraging of the community's knowledge,
+ experience and tools of the SMI and MIB modules.
+
+1.1. Terminology Translation
+
+ The SMI uses the term "managed objects" to refer to object types,
+ both tabular types with descriptors such as xxxTable and xxxEntry, as
+ well as scalar and columnar object types. The SPPI does not use the
+ term "object" so as to avoid confusion with COPS protocol objects.
+ Instead, the SPPI uses the term Provisioning Class (PRC) for the
+ table and row definitions (the xxxTable and xxxEntry objects,
+ respectively), and Provisioning Instance (PRI) for an instantiation
+ of a row definition. For a columnar object of a table definition,
+ the SPPI uses the term "attribute" of a Provisioning Class. (The
+ SPPI does not support the equivalent of the SMI's scalar objects.)
+
+1.2. Overview
+
+ SNMP's SMI is divided into five parts: module definitions, object
+ definitions, notification definitions [SMI], textual convention
+ definitions [TC] and conformance definitions [CONF].
+
+
+
+
+
+McCloghrie, et al. Standards Track [Page 3]
+
+RFC 3159 SPPI August 2001
+
+
+ - The SMI's MODULE-IDENTITY macro is used to convey the semantics of
+ a MIB module. The SPPI uses this macro to convey the semantics of
+ a PIB module.
+
+ - The SMI's OBJECT-TYPE macro is used to convey the syntax and
+ semantics of managed objects. The SPPI uses this macro to convey
+ the syntax and semantics of PRCs and their attributes.
+
+ - The SMI's notification definitions are not used (at this time) by
+ the SPPI. (Note that the use of the keyword 'notify' in the SPPI
+ is not related to the SMI's notifications).
+
+ - The SMI's TEXTUAL CONVENTION macro allows new data types to be
+ defined. The SPPI uses this macro to define new data types having
+ particular syntax and semantics which is common to several
+ attributes of one of more PRCs.
+
+ - The SMI's conformance definitions define several macros: the
+ OBJECT-GROUP macro, the NOTIFICATION-GROUP macro, the MODULE-
+ COMPLIANCE macro and the AGENT-CAPABILITIES macro. The SPPI uses
+ the OBJECT-GROUP and MODULE-COMPLIANCE macros to specify
+ acceptable lower-bounds of implementation of the attributes of
+ PRCs, and thereby indirectly, acceptable lower-bounds of
+ implementation of the PRCs themselves. The NOTIFICATION-GROUP
+ macro is not used (at this time) by the SPPI. Potential usage by
+ the SPPI of the AGENT- CAPABILITIES macro is for further study.
+
+2. Structure of this Specification
+
+ The SMI is specified in terms of an ASN.1 definition together with
+ descriptive text for each element introduced in that ASN.1
+ definition. This document specifies the SPPI also via a ASN.1
+ definition, which is a modified version of the SMI's definition,
+ together with descriptive text for only those elements in the SPPI's
+ ASN.1 definition which have differences from the SMI's. For elements
+ in the ASN.1 definition which have no descriptive text in this
+ specification, the reader is referred to the SMI's descriptive text
+ for that element.
+
+
+
+
+
+
+
+
+
+
+
+
+
+McCloghrie, et al. Standards Track [Page 4]
+
+RFC 3159 SPPI August 2001
+
+
+3. Definitions
+
+COPS-PR-SPPI DEFINITIONS ::= BEGIN
+
+IMPORTS ObjectName, SimpleSyntax, ExtUTCTime, mgmt
+ FROM SNMPv2-SMI;
+
+-- the root for PIB definitions
+
+ pib OBJECT IDENTIFIER ::= { mgmt 2 }
+
+-- definitions for PIB modules
+
+MODULE-IDENTITY MACRO ::=
+BEGIN
+ TYPE NOTATION ::=
+ SubjectPart -- new
+ "LAST-UPDATED" value(Update ExtUTCTime)
+ "ORGANIZATION" Text
+ "CONTACT-INFO" Text
+ "DESCRIPTION" Text
+ RevisionPart
+
+ VALUE NOTATION ::=
+ value(VALUE OBJECT IDENTIFIER)
+
+ SubjectPart ::= -- new
+ "SUBJECT-CATEGORIES" "{" Categories "}"
+ -- see IANA Considerations section
+ Categories ::= -- new
+ CategoryIDs
+ | "all"
+ CategoryIDs ::= -- new
+ CategoryID
+ | CategoryIDs "," CategoryID
+ CategoryID ::= -- new
+ identifier "(" number ")" -- number is positive
+
+ RevisionPart ::=
+ Revisions
+ | empty
+ Revisions ::=
+ Revision
+ | Revisions Revision
+ Revision ::=
+ "REVISION" value(Update ExtUTCTime)
+ "DESCRIPTION" Text
+
+
+
+
+McCloghrie, et al. Standards Track [Page 5]
+
+RFC 3159 SPPI August 2001
+
+
+ -- a character string as defined in [SMI]
+ Text ::= value(IA5String)
+END
+
+--
+
+OBJECT-IDENTITY MACRO ::=
+BEGIN
+ TYPE NOTATION ::=
+ "STATUS" Status
+ "DESCRIPTION" Text
+ ReferPart
+
+ VALUE NOTATION ::=
+ value(VALUE OBJECT IDENTIFIER)
+
+ Status ::=
+ "current"
+ | "deprecated"
+ | "obsolete"
+
+ ReferPart ::=
+ "REFERENCE" Text
+ | empty
+
+ -- a character string as defined in [SMI]
+ Text ::= value(IA5String)
+END
+
+
+-- syntax of attributes
+
+-- the "base types" defined here are:
+-- 3 built-in ASN.1 types: INTEGER, OCTET STRING, OBJECT IDENTIFIER
+-- 7 application-defined types: Integer32, IpAddress, Unsigned32,
+-- TimeTicks, Opaque, Integer64 and Unsigned64
+
+ObjectSyntax ::=
+ CHOICE {
+ simple
+ SimpleSyntax,
+
+ -- note that SEQUENCEs for table and row definitions
+ -- are not mentioned here...
+
+ application-wide
+ ApplicationSyntax
+ }
+
+
+
+McCloghrie, et al. Standards Track [Page 6]
+
+RFC 3159 SPPI August 2001
+
+
+-- application-wide types
+
+ApplicationSyntax ::=
+ CHOICE {
+ ipAddress-value
+ IpAddress,
+
+ timeticks-value
+ TimeTicks,
+
+ arbitrary-value
+ Opaque,
+
+ unsigned-integer-value
+ Unsigned32,
+
+ large-integer-value -- new
+ Integer64,
+
+ large-unsigned-integer-value -- new
+ Unsigned64
+ }
+
+
+-- the following 5 types are copied from the SMI
+
+-- indistinguishable from INTEGER, but never needs more than
+-- 32-bits for a two's complement representation
+Integer32 ::=
+ INTEGER (-2147483648..2147483647)
+
+-- (this is a tagged type for historical reasons)
+IpAddress ::=
+ [APPLICATION 0]
+ IMPLICIT OCTET STRING (SIZE (4))
+-- ******* THIS TYPE DEFINITION IS DEPRECATED *******
+-- The IpAddress type represents a 32-bit internet
+-- IPv4 address. It is represented as an OctetString
+-- of length 4, in network byte-order.
+-- Note that the IpAddress type is present for
+-- historical reasons. IPv4 and IPv6 addresses should
+-- be represented using the INET-ADDRESS-MIB
+-- defined in [INETADDR].
+
+-- an unsigned 32-bit quantity
+Unsigned32 ::=
+ [APPLICATION 2]
+ IMPLICIT INTEGER (0..4294967295)
+
+
+
+McCloghrie, et al. Standards Track [Page 7]
+
+RFC 3159 SPPI August 2001
+
+
+-- hundredths of seconds since an epoch
+TimeTicks ::=
+ [APPLICATION 3]
+ IMPLICIT INTEGER (0..4294967295)
+
+--for backward compatibility only
+Opaque ::=
+ [APPLICATION 4]
+ IMPLICIT OCTET STRING
+
+
+-- the following 2 types are not present in the SMI
+
+Integer64 ::=
+ [APPLICATION 10]
+ IMPLICIT INTEGER (-9223372036854775808..9223372036854775807)
+
+Unsigned64 ::=
+ [APPLICATION 11]
+ IMPLICIT INTEGER (0..18446744073709551615)
+
+-- definition for Provisioning Classes and their attributes
+-- (differences from the SMI are noted in the ASN.1 comments)
+
+OBJECT-TYPE MACRO ::=
+BEGIN
+ TYPE NOTATION ::=
+ "SYNTAX" Syntax
+ UnitsPart
+ "PIB-ACCESS" Access -- modified
+ PibReferencesPart -- new
+ PibTagPart -- new
+ "STATUS" Status
+ "DESCRIPTION" Text
+ ErrorsPart -- new
+ ReferPart
+ IndexPart -- modified
+ MibIndexPart -- modified
+ UniquePart -- new
+ DefValPart
+
+ VALUE NOTATION ::=
+ value(VALUE ObjectName)
+
+ Syntax ::= -- Must be one of the following:
+ -- a base type (or its refinement),
+ -- a textual convention (or its refinement), or
+ -- a BITS pseudo-type
+
+
+
+McCloghrie, et al. Standards Track [Page 8]
+
+RFC 3159 SPPI August 2001
+
+
+ type
+ | "BITS" "{" NamedBits "}"
+
+ NamedBits ::= NamedBit
+ | NamedBits "," NamedBit
+
+ NamedBit ::= identifier "(" number ")" -- number is nonnegative
+
+ UnitsPart ::=
+ "UNITS" Text
+ | empty
+
+ Access ::= -- modified
+ "install"
+ | "notify"
+ | "install-notify"
+ | "report-only"
+
+ Status ::=
+ "current"
+ | "deprecated"
+ | "obsolete"
+
+ ErrorsPart ::= -- new
+ "INSTALL-ERRORS" "{" Errors "}"
+ | empty
+
+ Errors ::= -- new
+ Error
+ | Errors "," Error
+ Error ::= -- new
+ identifier "(" number ")" -- number is positive
+
+ ReferPart ::=
+ "REFERENCE" Text
+ | empty
+
+ IndexPart ::=
+ "PIB-INDEX" "{" Index "}" -- new
+ | "AUGMENTS" "{" Entry "}"
+ | "EXTENDS" "{" Entry "}" -- new
+ | empty
+ Index ::=
+ -- the correspondent OBJECT-TYPE invocation
+ value(ObjectName)
+ Entry ::=
+ -- use the INDEX value of the
+ -- correspondent OBJECT-TYPE invocation
+
+
+
+McCloghrie, et al. Standards Track [Page 9]
+
+RFC 3159 SPPI August 2001
+
+
+ value(ObjectName)
+ MibIndexPart ::=
+ "INDEX" "{" IndexTypePart "}"
+ | empty
+ IndexTypePart ::=
+ IndexTypes
+ | IndexTypes "," ImpliedIndex
+ | ImpliedIndex
+ IndexTypes ::=
+ Index
+ | IndexTypes "," Index
+ ImpliedIndex ::=
+ "IMPLIED" Index
+
+
+ PibReferencesPart ::=
+ -- for use with ReferenceId TC
+ "PIB-REFERENCES" "{" Entry "}"
+ | empty
+
+ PibTagPart ::=
+ -- for use with TagReferenceId TC
+ "PIB-TAG" "{" Attr "}"
+ | empty
+
+ Attr ::= -- specifies an attribute
+ value(ObjectName)
+
+ UniquePart ::= -- new
+ "UNIQUENESS" "{" UniqueTypes "}"
+ | "UNIQUENESS" "{" "}"
+ | empty
+ UniqueTypes ::=
+ UniqueType
+ | UniqueTypes "," UniqueType
+ UniqueType ::=
+ -- the correspondent OBJECT-TYPE invocation
+ value(ObjectName)
+
+ DefValPart ::= "DEFVAL" "{" Defvalue "}"
+ | empty
+
+ Defvalue ::= -- must be valid for the type specified in
+ -- SYNTAX clause of same OBJECT-TYPE macro
+ value(ObjectSyntax)
+ | "{" BitsValue "}"
+
+ BitsValue ::= BitNames
+
+
+
+McCloghrie, et al. Standards Track [Page 10]
+
+RFC 3159 SPPI August 2001
+
+
+ | empty
+
+ BitNames ::= BitName
+ | BitNames "," BitName
+
+ BitName ::= identifier
+
+ -- a character string as defined in [SMI]
+ Text ::= value(IA5String)
+END
+
+
+-- definitions for conformance groups
+
+OBJECT-GROUP MACRO ::=
+BEGIN
+ TYPE NOTATION ::=
+ ObjectsPart
+ "STATUS" Status
+ "DESCRIPTION" Text
+ ReferPart
+
+ VALUE NOTATION ::=
+ value(VALUE OBJECT IDENTIFIER)
+
+ ObjectsPart ::=
+ "OBJECTS" "{" Objects "}"
+ Objects ::=
+ Object
+ | Objects "," Object
+ Object ::=
+ value(ObjectName)
+
+ Status ::=
+ "current"
+ | "deprecated"
+ | "obsolete"
+
+ ReferPart ::=
+ "REFERENCE" Text
+ | empty
+
+ -- a character string as defined in [SMI]
+ Text ::= value(IA5String)
+END
+
+
+-- definitions for compliance statements
+
+
+
+McCloghrie, et al. Standards Track [Page 11]
+
+RFC 3159 SPPI August 2001
+
+
+MODULE-COMPLIANCE MACRO ::=
+BEGIN
+ TYPE NOTATION ::=
+ "STATUS" Status
+ "DESCRIPTION" Text
+ ReferPart
+ ModulePart
+
+ VALUE NOTATION ::=
+ value(VALUE OBJECT IDENTIFIER)
+
+ Status ::=
+ "current"
+ | "deprecated"
+ | "obsolete"
+
+ ReferPart ::=
+ "REFERENCE" Text
+ | empty
+
+ ModulePart ::=
+ Modules
+ Modules ::=
+ Module
+ | Modules Module
+ Module ::=
+ -- name of module --
+ "MODULE" ModuleName
+ MandatoryPart
+ CompliancePart
+
+ ModuleName ::=
+ -- identifier must start with uppercase letter
+ identifier ModuleIdentifier
+ -- must not be empty unless contained
+ -- in MIB Module
+ | empty
+ ModuleIdentifier ::=
+ value(OBJECT IDENTIFIER)
+ | empty
+
+ MandatoryPart ::=
+ "MANDATORY-GROUPS" "{" Groups "}"
+ | empty
+
+ Groups ::=
+ Group
+ | Groups "," Group
+
+
+
+McCloghrie, et al. Standards Track [Page 12]
+
+RFC 3159 SPPI August 2001
+
+
+ Group ::=
+ value(OBJECT IDENTIFIER)
+
+ CompliancePart ::=
+ Compliances
+ | empty
+
+ Compliances ::=
+ Compliance
+ | Compliances Compliance
+ Compliance ::=
+ ComplianceGroup
+ | Object
+
+ ComplianceGroup ::=
+ "GROUP" value(OBJECT IDENTIFIER)
+ "DESCRIPTION" Text
+
+ Object ::=
+ "OBJECT" value(ObjectName)
+ InstallSyntaxPart -- modified
+ AccessPart
+ "DESCRIPTION" Text
+
+ -- must be a refinement for object's SYNTAX clause
+ InstallSyntaxPart ::= "SYNTAX" Syntax
+ | empty
+
+ Syntax ::= -- Must be one of the following:
+ -- a base type (or its refinement),
+ -- a textual convention (or its refinement), or
+ -- a BITS pseudo-type
+ type
+ | "BITS" "{" NamedBits "}"
+
+ NamedBits ::= NamedBit
+ | NamedBits "," NamedBit
+
+ NamedBit ::= identifier "(" number ")" -- number is nonnegative
+
+ AccessPart ::=
+ "PIB-MIN-ACCESS" Access -- modified
+ | empty
+ Access ::= -- modified
+ "not-accessible"
+ | "install"
+ | "notify"
+ | "install-notify"
+
+
+
+McCloghrie, et al. Standards Track [Page 13]
+
+RFC 3159 SPPI August 2001
+
+
+ | "report-only"
+
+ -- a character string as defined in [SMI]
+ Text ::= value(IA5String)
+END
+
+-- definition of textual conventions
+
+TEXTUAL-CONVENTION MACRO ::=
+BEGIN
+ TYPE NOTATION ::=
+ DisplayPart
+ "STATUS" Status
+ "DESCRIPTION" Text
+ ReferPart
+ "SYNTAX" Syntax
+
+ VALUE NOTATION ::=
+ value(VALUE Syntax) -- adapted ASN.1
+
+ DisplayPart ::=
+ "DISPLAY-HINT" Text
+ | empty
+
+ Status ::=
+ "current"
+ | "deprecated"
+ | "obsolete"
+
+ ReferPart ::=
+ "REFERENCE" Text
+ | empty
+
+ -- a character string as defined in [SMI]
+ Text ::= value(IA5String)
+
+ Syntax ::= -- Must be one of the following:
+ -- a base type (or its refinement), or
+ -- a BITS pseudo-type
+ type
+ | "BITS" "{" NamedBits "}"
+
+ NamedBits ::= NamedBit
+ | NamedBits "," NamedBit
+
+ NamedBit ::= identifier "(" number ")" -- number is nonnegative
+
+END
+
+
+
+McCloghrie, et al. Standards Track [Page 14]
+
+RFC 3159 SPPI August 2001
+
+
+END
+
+COPS-PR-SPPI-TC PIB-DEFINITIONS ::= BEGIN
+
+IMPORTS Unsigned32, MODULE-IDENTITY, TEXTUAL-CONVENTION, pib
+ FROM COPS-PR-SPPI;
+
+copsPrSppiTc MODULE-IDENTITY
+ SUBJECT-CATEGORIES { all }
+ LAST-UPDATED "200108160000Z"
+ ORGANIZATION "IETF RAP WG"
+ CONTACT-INFO "Keith McCloghrie
+ Cisco Systems, Inc.
+ 170 West Tasman Drive,
+ San Jose, CA 95134-1706 USA
+ Phone: +1 408 526 5260
+ Email: kzm@cisco.com
+
+ Ravi Sahita
+ Intel
+ 2111 NE 25th Avenue
+ Hillsboro, OR 97124 USA
+ Phone: +1 503 712 1554
+ Email: ravi.sahita@intel.com "
+ DESCRIPTION
+ "The PIB module containing a set of Textual Conventions
+ which have general applicability to all PIB modules."
+ REVISION "200108160000Z"
+ DESCRIPTION
+ "Initial version, published in RFC 3159."
+ ::= { pib 1 }
+
+InstanceId ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "The textual convention for use by an attribute which is used
+ as the instance-identifying index of a PRC, i.e., an attribute
+ named in a PIB-INDEX clause. The value of an attribute with
+ this syntax is always greater than zero. PRIs of the same PRC
+ need not have contiguous values for their instance-identifying
+ attribute."
+ SYNTAX Unsigned32 (1..4294967295)
+
+ReferenceId ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "A textual convention for use by an attribute which is used as
+ a pointer in order to reference an instance of a particular
+
+
+
+McCloghrie, et al. Standards Track [Page 15]
+
+RFC 3159 SPPI August 2001
+
+
+ PRC. An attribute with this syntax must not be used in a
+ PIB-INDEX clause , and its description must specify the
+ particular PRC to which the referenced PRI will belong.
+ For an attribute of this type, the referenced PRI must exist.
+ Furthermore, it is an error to try to delete a PRI that is
+ referenced by another instance without first deleting/modifying
+ the referencing instance. The definition of an attribute with
+ this syntax can permit the attribute to have a value of zero to
+ indicate that it is not currently pointing to a PRI."
+ SYNTAX Unsigned32
+
+Prid ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "Represents a pointer to a PRI, i.e,. to an instance of a
+ PRC. The value is the OID name of the PRC's row definition,
+ appended with one sub-identifier containing the value of the
+ InstanceId value for the referenced instance. The definition
+ of an attribute with this syntax can permit the attribute to
+ have a value of 0.0 to indicate that it is not currently
+ pointing to a PRI."
+ SYNTAX OBJECT IDENTIFIER
+
+TagId ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "Represents a tag value, such that all instances of a
+ particular PRC having the same tag value form a tag list.
+ A tag list is identified by the tag value shared by all
+ instances in that tag list."
+ SYNTAX Unsigned32 (1..4294967295)
+
+TagReferenceId ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "Represents a reference to a tag list of instances of a
+ particular PRC. The particular PRC must have an attribute
+ with the syntax of TagId. The tag list consists of
+ all instances which have the same value of the TagId
+ attribute. Reference to the tag list is via the attribute
+ with the syntax of TagReferenceId containing the tag
+ value which identifies the tag list.
+ The definition of an attribute with this syntax can permit
+ the attribute to have a value of 0 to indicate that it is
+ not currently referencing a tag list."
+ SYNTAX Unsigned32
+END
+
+
+
+
+McCloghrie, et al. Standards Track [Page 16]
+
+RFC 3159 SPPI August 2001
+
+
+4. PIB Modules
+
+ The names of all standard PIB modules must be unique (but different
+ versions of the same module should have the same name). Developers
+ of enterprise PIB modules are encouraged to choose names for their
+ modules that will have a low probability of colliding with standard
+ or other enterprise modules.
+
+ The first line of a PIB module is:
+
+ PIB-MODULE-NAME PIB-DEFINITIONS ::= BEGIN
+
+ where PIB-MODULE-NAME is the module name.
+
+ Like the SMI, additional ASN.1 macros must not be defined in PIB
+ modules.
+
+4.1. Importing Definitions
+
+ Like the SMI, a PIB module which needs to reference an external
+ definition, must use the IMPORTS statement to identify both the
+ descriptor and the module in which the descriptor is defined, where a
+ module is identified by its ASN.1 module name.
+
+ In particular, a PIB module imports each of the base data types that
+ it uses from COPS-PR-SPPI (defined in this document), and may import
+ as required from other PIB modules. A PIB module may import, from
+ the SMI, (subtree) OIDs for the purpose of defining new OIDs. A PIB
+ module may also import, from MIB modules, OID assignments as well as
+ textual convention definitions providing that their underlying syntax
+ is supported by the SPPI. However, the following must not be
+ included in an IMPORTS statement:
+
+ - named types defined by ASN.1 itself, specifically: INTEGER, OCTET
+ STRING, OBJECT IDENTIFIER, SEQUENCE, SEQUENCE OF type,
+
+ - the BITS construct.
+
+ For each ASN.1 macro that a PIB uses, it must import that macro's
+ definition from the COPS-PR-SPPI.
+
+
+
+
+
+
+
+
+
+
+
+McCloghrie, et al. Standards Track [Page 17]
+
+RFC 3159 SPPI August 2001
+
+
+4.2. Reserved Keywords
+
+ In addition to the reserved keywords listed in the SMI, the following
+ must not be used as descriptors or module names:
+
+ EXTENDS INSTALL-ERRORS Integer64 PIB-MIN-ACCESS PIB-ACCESS PIB-
+ INDEX PIB-REFERENCES PIB-TAG SUBJECT-CATEGORIES UNIQUENESS
+ Unsigned64
+
+5. Naming Hierarchy
+
+ The SPPI uses the same OBJECT IDENTIFIER naming hierarchy as the SMI.
+ That is, OIDs are typically assigned to PIB modules from the subtree
+ administered by the Internet Assigned Numbers Authority (IANA).
+ However, like the SMI, the SPPI does not prohibit the definition of
+ PRCs in other portions of the OID tree.
+
+6. Mapping of the MODULE-IDENTITY macro
+
+6.1. Mapping of the SUBJECT-CATEGORIES clause
+
+ The SUBJECT-CATEGORIES clause, which must be present, identifies one
+ or more categories of provisioning data for which this PIB module
+ defines provisioning information. For use with the COPS-PR protocol,
+ the individual subject categories are mapped to COPS Client Types
+ [COPS-PR]. IANA Considerations for SPPI SUBJECT-CATEGORIES follow
+ the same requirements as specified in [COPS] IANA Considerations for
+ COPS Client Types. The subject categories are identified either:
+
+ - via the keyword "all", indicating the PIB module defines
+ provisioning information relevant for all subject categories (and
+ thus, all COPS Client Types), or
+
+ - a list of named-number enumerations, where each number which must
+ be greater than zero, identifies a subject category, and is mapped
+ to the Client Type which is identified by that same number in the
+ COPS protocol. The namespace for these named numbers is global
+ and therefore the labels should be assigned consistently across
+ PIB modules. At present time, no more than one named-number
+ enumeration should be specified.
+
+ Note that the list of categories specified in a PIB module's SUBJECT-
+ CATEGORIES clause is not exclusive. That is, some other
+ specification might (e.g., at a future date) specify additional COPS
+ Client Types to which the module is relevant.
+
+
+
+
+
+
+McCloghrie, et al. Standards Track [Page 18]
+
+RFC 3159 SPPI August 2001
+
+
+ When a PIB module applies to multiple subject categories, that PIB
+ module exists in multiple virtual information stores, one for each
+ Client-Type. A PIB module with SUBJECT-CATEGORIES "all" uses the
+ named- number specified in the SUBJECT-CATEGORIES of the PIB it is
+ associated with, as the COPS Client-Type when it is sent over COPS.
+
+7. Mapping of the OBJECT-TYPE macro
+
+ The SPPI requires that all attribute definitions be contained within
+ a PRC, i.e., within a table definition.
+
+7.1. Mapping of the SYNTAX clause
+
+ The SYNTAX clause, which must be present within the definition of an
+ attribute, defines the abstract data structure of that attribute.
+ The data structure must be one of the following: a base type, the
+ BITS construct, or a textual convention.
+
+ The SYNTAX clause must also be present for the table and row
+ definitions of a PRC, and in this case must be a SEQUENCE OF or
+ SEQUENCE (see section 8.1.7 below).
+
+ The base types are an extended subset of the SMI's base types:
+
+ - built-in ASN.1 types: INTEGER, OCTET STRING, OBJECT IDENTIFIER,
+
+ - application-defined types: Integer32, Unsigned32, TimeTicks,
+ Integer64 and Unsigned64.
+
+ A textual convention is a newly-defined type defined as a sub-type of
+ a base type [TC]. The value of an attribute whose syntax is defined
+ using a textual convention is encoded "on-the-wire" according to the
+ textual convention's underlying base type.
+
+ Note that the set of base types has been chosen so as to provide
+ sufficient variety of on-the-wire encodings for attribute values;
+ base types should contain a minimum of semantics. Semantics should,
+ to the extent possible, be incorporated into a data type through the
+ use of a textual convention.
+
+ The differences from the SMI in the semantics of ObjectSyntax are now
+ described.
+
+7.1.1. Counter32
+
+ The Counter32 type is not supported by the SPPI.
+
+
+
+
+
+McCloghrie, et al. Standards Track [Page 19]
+
+RFC 3159 SPPI August 2001
+
+
+7.1.2. Gauge32
+
+ The Gauge32 type is not supported by the SPPI.
+
+7.1.3. Opaque
+
+ The Opaque type is provided solely for backward-compatibility, and
+ shall not be used for newly-defined object types. The Opaque type
+ supports the capability to pass arbitrary ASN.1 syntax. A value is
+ encoded using the ASN.1 Basic Encoding Rules [ASN1] into a string of
+ octets. This, in turn, is encoded as an OCTET STRING, in effect
+ "double-wrapping" the original ASN.1 value. Note that a conforming
+ implementation need only be able to accept and recognize opaquely-
+ encoded data. It need not be able to unwrap the data and then
+ interpret its contents. A requirement on "standard" PIB modules is
+ that no object may have a SYNTAX clause value of Opaque.
+
+7.1.4. IpAddress
+
+ The IpAddress type is provided solely for backward-compatibility, and
+ shall not be used for newly-defined object types. Instead, It is
+ recommended to use the InetAddressType/InetAddress pair TCs as
+ defined in RFC2851 [INETADDR].
+
+7.1.5. Counter64
+
+ The Counter64 type is not supported by the SPPI.
+
+7.1.6. Integer64
+
+ The Integer64 type represents integer-valued information between
+ -2^63 and 2^63-1 inclusive (-9223372036854775808 to
+ 9223372036854775807 decimal). While Integer64 may be sub-typed to be
+ more constrained, if the constraint results in all possible values
+ being contained in the range (-2147483648..2147483647), then the
+ Integer32 type must be used instead of Integer64.
+
+7.1.7. Unsigned64
+
+ The Unsigned64 type represents integer-valued information between 0
+ and 2^64-1 inclusive (0 to 18446744073709551615 decimal). While
+ Unsigned64 may be sub-typed to be more constrained, if the constraint
+ results in all possible values being contained in the range
+ (0..4294967295), then the Unsigned32 type must be used instead of
+ Unsigned64.
+
+
+
+
+
+
+McCloghrie, et al. Standards Track [Page 20]
+
+RFC 3159 SPPI August 2001
+
+
+7.1.8. Provisioning Classes
+
+ The operations (on PIBs) supported by the SPPI apply exclusively to
+ PRCs. Each PRC is modelled as a tabular structure, i.e., a table.
+ Each instance of a particular PRC has the same set of attributes.
+ The set of attributes which belong to every instance of a particular
+ PRC is modelled as a row in the table. Note that a PRC must have no
+ more than 127 attributes. The usage of subids (for PRC attributes)
+ beyond 127 (that is 128 and above) is reserved for Mapping PIBs to
+ MIBs (see Appendix A). PRCs that require more than 127 attributes
+ must use the AUGMENTS clause to augment the PRC containing the
+ initial 127 attributes to add additional attributes. Definition of
+ Provisioning Classes is formalized by using the OBJECT-TYPE macro to
+ define both:
+
+ - the PRC as a whole, called the table definition, and
+
+ - the characteristics of every instance of a particular PRC, called
+ the row definition.
+
+ In the table definition, the SYNTAX clause has the form:
+
+ SEQUENCE OF <EntryType>
+
+ where <EntryType> refers to the SEQUENCE type of its attribute
+ definitions. In the row definition, the SYNTAX clause has the form:
+
+ <EntryType>
+
+ where <EntryType> is a SEQUENCE type defined as follows:
+
+ <EntryType> ::= SEQUENCE { <type1>, ... , <typeN> }
+
+ where there is one <type> for each attribute, and each <type> is of
+ the form:
+
+ <descriptor> <syntax>
+
+ where <descriptor> is the descriptor naming an attribute, and
+ <syntax> has the value of that attribute's SYNTAX clause, except that
+ both sub- typing information and the named values for enumerated
+ integers or the named bits for the BITS construct, are omitted from
+ <syntax>.
+
+7.2. Mapping of the MAX-ACCESS clause
+
+ The MAX-ACCESS clause is not supported by the SPPI.
+
+
+
+
+McCloghrie, et al. Standards Track [Page 21]
+
+RFC 3159 SPPI August 2001
+
+
+7.3. Mapping of the PIB-ACCESS clause
+
+ The PIB-ACCESS clause must be present for a PRC's table definition,
+ and must not be present for any other OBJECT-TYPE definition. The
+ PIB-ACCESS clause defines what kind of access is appropriate for the
+ PRC.
+
+ - the value "install" is used to indicate a PRC which a PDP can
+ install in the PEP as provisioning information.
+
+ - the value "notify" is used to indicate a PRC for which the PEP
+ must notify the PDP of all its instances and attribute values of
+ that PRC.
+
+ - the value "install-notify" is used to indicate the uncommon type
+ of PRC which has both characteristics: "install" and "notify".
+
+ - the value "report-only" is used to indicate a PRC which has
+ neither the "install" characteristic nor the "notify"
+ characteristic. However, instances of such a PRC may be included
+ in synchronous/asynchronous reports generated by the PEP. (Note:
+ PRCs having the "install" and/or "notify" characteristics may also
+ be included in reports generated by the PEP.)
+
+7.4. Mapping of the INSTALL-ERRORS clause
+
+ The INSTALL-ERRORS clause, which may optionally be present for a
+ PRC's table definition, and must be absent otherwise, lists one or
+ more potential reasons for rejecting an install or a removal of an
+ instance of the PRC. Each reason consists of a named-number
+ enumeration, where the number represents a PRC-specific error-code to
+ be used in a COPS protocol message, as the Error Sub-code, with the
+ Error-Code set to priSpecificError (see [COPS-PR]). The semantics of
+ each named-number enumeration should be described in the PRC's
+ DESCRIPTION clause.
+
+ The numbers listed in an INSTALL-ERRORS must be greater than zero and
+ less than 65536. If this clause is not present, an install/remove
+ can still fail, but no PRC-specific error is available to be
+ reported.
+
+7.5. Mapping of the PIB-INDEX clause
+
+ The PIB-INDEX clause, which must be present for a row definition
+ (unless an AUGMENTS or an EXTENDS clause is present instead), and
+ must be absent otherwise, defines identification information for
+ instances of the PRC.
+
+
+
+
+McCloghrie, et al. Standards Track [Page 22]
+
+RFC 3159 SPPI August 2001
+
+
+ The PIB-INDEX clause includes exactly one descriptor. This
+ descriptor specifies an attribute (typically, but not necessarily of
+ the same PRC) which is used to identify an instance of that PRC. The
+ syntax of this attribute is REQUIRED to be InstanceId (a textual
+ convention with an underlying syntax of Unsigned32), and it has no
+ semantics other than its use in identifying the PRC instance. The
+ OBJECT IDENTIFIER which identifies an instance of a PRC is formed by
+ appending one sub- identifier to the OID which identifies that PRC's
+ row definition. The value of the additional sub-identifier is that
+ instance's value of the attribute specified in the INDEX clause.
+
+ Note that SPPI does not permit use of the IMPLIED keyword in a PIB-
+ INDEX clause.
+
+7.6. Mapping of the INDEX clause
+
+ The INDEX clause is optionally present if a PIB-INDEX clause is
+ present, and must be absent otherwise. If present, the INDEX clause
+ can contain any number of attributes, and is used only by the
+ algorithmic conversion of a PIB to a MIB (see Appendix A).
+
+ An IMPLIED keyword can be present in an INDEX clause if so desired.
+
+7.7. Mapping of the AUGMENTS clause
+
+ The AUGMENTS clause, which must not be present except in row
+ definitions, is an alternative to the PIB-INDEX clause and the
+ EXTENDS clause. Every row definition has exactly one of: a PIB-INDEX
+ clause, an AUGMENTS clause, or an EXTENDS clause.
+
+ A row definition which has a PIB-INDEX clause is called a base row
+ definition. A row definition which has an AUGMENTS clause is called
+ a row augmentation, where the AUGMENTS clause names the base row
+ definition which is augmented by this row augmentation. (Thus, a row
+ augmentation cannot itself be augmented.)
+
+ A PRC whose row definition is a row augmentation is called an
+ augmenting PRC. Instances of an augmenting PRC are identified
+ according to the PIB-INDEX clause of the base row definition named in
+ the AUGMENTS clause. Further, instances of an augmenting PRC exist
+ according to the same semantics as instances of the PRC which it
+ augments. As such, when an instance of a PRC is installed or removed,
+ an instance of every PRC which augments it is also installed or
+ removed. (for more details, see [COPS-PR]).
+
+
+
+
+
+
+
+McCloghrie, et al. Standards Track [Page 23]
+
+RFC 3159 SPPI August 2001
+
+
+7.8. Mapping of the EXTENDS clause
+
+ The EXTENDS clause, which must not be present except in row
+ definitions, is an alternative to the PIB-INDEX clause and the
+ AUGMENTS clause. Every row definition has exactly one of: a PIB-
+ INDEX clause, an AUGMENTS clause, or an EXTENDS clause.
+
+ A row definition which has an EXTENDS clause is called a sparse row
+ augmentation, where the EXTENDS clause names the row definition which
+ is sparsely-augmented by this sparse row augmentation. The sparsely-
+ augmented row can be a base row definition, or another sparse row
+ augmentation.
+
+ A PRC whose row definition is a sparse row augmentation is called a
+ sparsely augmenting PRC. Instances of a sparsely augmenting PRC are
+ identified according to the PIB-INDEX clause of the row definition
+ named in the sparsely augmenting PRC's EXTENDS clause.
+
+ An instance of a sparsely augmenting PRC can not exist unless a
+ corresponding instance of the PRC which it sparsely augments exists.
+ As such, when an instance of a PRC is removed, an instance of any PRC
+ which sparsely augments it is also removed. However, an instance of
+ a sparsely augmenting PRC need not exist when the corresponding
+ instance of the PRC that it sparsely augments exists. Thus, an
+ instance of a sparsely augmenting PRC can be installed at the same
+ time as or subsequent to the installation of, and can be removed
+ prior to the removal of, the corresponding instance of the PRC that
+ it sparsely augments. So, instances of a sparsely augmenting PRC
+ must be installed explicitly, but are removed either implicitly (via
+ removal of the augmented PRI) or explicitly. When a sparsely
+ augmented PRC is installed, both instances, the instance of the
+ sparsely augmented PRC and the instance of the sparsely augmenting
+ PRC must be sent in one COPS message.
+
+7.8.1. Relation between PIB-INDEX, AUGMENTS and EXTENDS clauses
+
+ When defining instance identification information for a PRC:
+
+ - If there is a one-to-one correspondence between instances of this
+ PRC and instances of an existing PRC, then the AUGMENTS clause
+ should be used.
+
+ - Otherwise, if there is a sparse relationship between instances of
+ this PRC and instances of an existing PRC (that is, there is a one
+ to zero or one correspondence between instances of a sparsely
+ augmented PRC and the instances of the PRC that sparsely augments
+ it.), then an EXTENDS clause should be used.
+
+
+
+
+McCloghrie, et al. Standards Track [Page 24]
+
+RFC 3159 SPPI August 2001
+
+
+ - Otherwise, a PIB-INDEX clause should be used which names its own
+ InstanceId attribute.
+
+7.9. Mapping of the UNIQUENESS clause
+
+ The UNIQUENESS clause, which is optionally present for any row
+ definition, lists a set of zero or more of the PRC's attributes, for
+ which no two instances of the PRC can have the same set of values.
+ The specified set of attributes provide a necessary and sufficient
+ set of values by which to identify an instance of this PRC. The
+ attribute contained in the PIB-INDEX clause may not be present in the
+ UNIQUENESS clause. By definition, an attribute may not appear more
+ than once in a UNIQUENESS clause. A UNIQUENESS clause containing
+ zero attributes indicates that it's possible for two instances of the
+ PRC to have identical values for all attributes except, of course,
+ for the one named in the PIB-INDEX clause.
+
+ If a PRC and its sparsely augmenting PRC both have UNIQUENESS
+ clauses, then the UNIQUENESS constraint for instances of each PRC
+ MUST be applied according to the UNIQUENESS clause in the
+ corresponding PRC definition. Note that a sparsely augmenting PRC
+ thus can override the UNIQUENESS clause of the PRC it sparsely
+ augments.
+
+ Even though the UNIQUENESS clause is optional, its inclusion is
+ recommended wherever it provides useful information.
+
+7.10. Mapping of the PIB-REFERENCES clause
+
+ The PIB-REFERENCES clause, which must be present for any attribute
+ which has the SYNTAX of ReferenceId, and must be absent otherwise,
+ names the PRC, an instance of which is referenced by the ReferenceId
+ attribute. For example usages of the PIB-REFERENCES clause, see
+ Appendix B.
+
+7.11. Mapping of the PIB-TAG clause
+
+ The PIB-TAG clause, which must be present for an attribute which has
+ the SYNTAX TagReferenceId, and must be absent otherwise, is used to
+ indicate that this attribute references a "tag list" of instances of
+ another PRC. Such a tag list (similar in concept to the usage of the
+ same term in [APPL]) is formed by all instances of the other PRC
+ which have the same (tag) value of a particular attribute of that
+ other PRC. The particular attribute of the other PRC, which must
+ have the SYNTAX TagId, is named in the PIB-TAG clause. For an
+ example usage of the PIB-TAG clause, see Appendix B.
+
+
+
+
+
+McCloghrie, et al. Standards Track [Page 25]
+
+RFC 3159 SPPI August 2001
+
+
+8. Mapping of the OBJECT-IDENTITY macro
+
+ The OBJECT-IDENTITY macro is used in PIB modules to define
+ information about an OBJECT IDENTIFIER assignment.
+
+9. Mapping of the OBJECT-GROUP macro
+
+ For conformance purposes, it is useful to define a conformance group
+ as a collection of related PRCs and their attributes. The OBJECT-
+ GROUP macro (directly) defines the collection of attributes which
+ belong to a conformance group. Since each attribute included in the
+ collection belongs to a PRC, the collection of related PRCs which
+ belong to a conformance group is also specified (indirectly) as the
+ set of PRCs to which the included attributes belong.
+
+9.1. Mapping of the OBJECTS clause
+
+ The OBJECTS clause, which must be present, is used to specify each
+ attribute contained in the conformance group. Each of the specified
+ attributes must be defined in the same PIB module as the OBJECT-GROUP
+ macro appears.
+
+ It is required that every attribute defined in a PIB module be
+ contained in at least one conformance group. This avoids the common
+ error of adding a new attribute to a module and forgetting to add the
+ new attribute to a group.
+
+10. Mapping of the MODULE-COMPLIANCE macro
+
+ The MODULE-COMPLIANCE macro is used to convey a minimum set of
+ requirements with respect to implementation of one or more PIB
+ modules.
+
+ A requirement on all "standard" PIB modules is that a corresponding
+ MODULE-COMPLIANCE specification is also defined, either in the same
+ module or in a companion module.
+
+10.1. Mapping of the MODULE clause
+
+ The MODULE clause, which must be present, is repeatedly used to name
+ each PIB module for which compliance requirements are being
+ specified. Each PIB module is named by its module name, and
+ optionally, by its associated OBJECT IDENTIFIER as well. The module
+ name can be omitted when the MODULE-COMPLIANCE invocation occurs
+ inside a PIB module, to refer to the encompassing PIB module.
+
+
+
+
+
+
+McCloghrie, et al. Standards Track [Page 26]
+
+RFC 3159 SPPI August 2001
+
+
+10.1.1. Mapping of the MANDATORY-GROUPS clause
+
+ The MANDATORY-GROUPS clause, which need not be present, names the one
+ or more conformance groups within the correspondent PIB module which
+ are unconditionally mandatory for implementation. If an agent claims
+ compliance to the PIB module, then it must implement each and every
+ attribute (and therefore the PRCs to which they belong) within each
+ conformance group listed.
+
+10.1.2. Mapping of the GROUP clause
+
+ The GROUP clause, which need not be present, is repeatedly used to
+ name each conformance group which is conditionally mandatory for
+ compliance to the PIB module. The GROUP clause can also be used to
+ name unconditionally optional groups. A group named in a GROUP
+ clause must be absent from the correspondent MANDATORY-GROUPS clause.
+
+ Conditionally mandatory groups include those which are mandatory only
+ if a particular protocol is implemented, or only if another group is
+ implemented. A GROUP clause's DESCRIPTION specifies the conditions
+ under which the group is conditionally mandatory.
+
+ A group which is named in neither a MANDATORY-GROUPS clause nor a
+ GROUP clause, is unconditionally optional for compliance to the PIB
+ module.
+
+10.1.3. Mapping of the OBJECT clause
+
+ The OBJECT clause, which need not be present, is repeatedly used to
+ specify each attribute for which compliance has a refined requirement
+ with respect to the PIB module definition. The attribute must be
+ present in one of the conformance groups named in the correspondent
+ MANDATORY-GROUPS clause or GROUP clauses.
+
+ By definition, each attribute specified in an OBJECT clause follows a
+ MODULE clause which names the PIB module in which that attribute is
+ defined. Therefore, the use of an IMPORTS statement, to specify from
+ where such attributes are imported, is redundant and is not required
+ in a PIB module.
+
+10.1.3.1. Mapping of the SYNTAX clause
+
+ The SYNTAX clause, which need not be present, is used to provide a
+ refined SYNTAX for the attribute named in the correspondent OBJECT
+ clause. The refined syntax is the minimum level of support needed
+ for this attribute in order to be compliant.
+
+
+
+
+
+McCloghrie, et al. Standards Track [Page 27]
+
+RFC 3159 SPPI August 2001
+
+
+10.1.3.2. Mapping of the WRITE-SYNTAX clause
+
+ The WRITE-SYNTAX clause is not supported by the SPPI.
+
+10.1.3.3. Mapping of the PIB-MIN-ACCESS clause
+
+ The PIB-MIN-ACCESS clause, which need not be present, is used to
+ define the minimal level of access for the attribute named in the
+ correspondent OBJECT clause. If this clause is absent, the minimal
+ level of access is the same as the maximal level specified in the
+ PIB-ACCESS clause of the correspondent invocation of the OBJECT-TYPE
+ macro. If present, this clause must specify a subset of the access
+ specified in the correspondent PIB-ACCESS clause, where: "install" is
+ a subset of "install-notify", "notify" is a subset of "install-
+ notify", and "not- accessible" is a subset of all other values.
+
+ An implementation is compliant if the level of access it provides is
+ the same or a superset of the minimal level in the MODULE-COMPLIANCE
+ macro and the same or a subset of the maximal level in the PIB-ACCESS
+ clause.
+
+11. Textual Conventions
+
+ When designing a PIB module, it is often useful to define new data
+ types similar to those defined in the SPPI. In comparison to a type
+ defined in the SPPI, each of these new types has a different name, a
+ similar syntax, and specific semantics. These newly defined types
+ are termed textual conventions, and are used for the convenience of
+ humans reading the PIB module.
+
+ Attributes defined using a textual convention are always encoded by
+ means of the rules that define their underlying type.
+
+11.1. Mapping of the TEXTUAL-CONVENTION macro
+
+ The TEXTUAL-CONVENTION macro is used to convey the syntax and
+ semantics associated with a textual convention. It should be noted
+ that the expansion of the TEXTUAL-CONVENTION macro is something which
+ conceptually happens during implementation and not during run-time.
+
+ The name of a textual convention must consist of one or more letters
+ or digits, with the initial character being an upper case letter.
+ The name must not conflict with any of the reserved words listed in
+ section 5.2, should not consist of all upper case letters, and shall
+ not exceed 64 characters in length. (However, names longer than 32
+ characters are not recommended.) The hyphen is not allowed in the
+ name of a textual convention (except for use in information modules
+
+
+
+
+McCloghrie, et al. Standards Track [Page 28]
+
+RFC 3159 SPPI August 2001
+
+
+ converted from SMIv1 which allowed hyphens in ASN.1 type
+ assignments). Further, all names used for the textual conventions
+ defined in all "standard" PIB modules shall be unique.
+
+11.1.1. Mapping of the DISPLAY-HINT clause
+
+ The DISPLAY-HINT clause, which need not be present, gives a hint as
+ to how the value of an instance of an object with the syntax defined
+ using this textual convention might be displayed. The DISPLAY-HINT
+ clause must not be present if the Textual Convention is defined with
+ a syntax of: OBJECT IDENTIFIER, or any enumerated syntax (BITS or
+ INTEGER). The determination of whether it makes sense for other
+ syntax types is dependent on the specific definition of the Textual
+ Convention.
+
+ The rules for the format specification of the hint are the same as
+ specified in Section 3.1 of [TC].
+
+11.1.2. Mapping of the SYNTAX clause
+
+ The SYNTAX clause, which must be present, defines abstract data
+ structure corresponding to the textual convention. The data
+ structure must be one of the following: a base type (see the SYNTAX
+ clause of an OBJECT-TYPE macro), or the BITS construct. Note that
+ this means that the SYNTAX clause of a Textual Convention can not
+ refer to a previously defined Textual Convention.
+
+11.1.2.1. Sub-typing of Textual Conventions
+
+ The SYNTAX clause of a TEXTUAL CONVENTION macro may be sub-typed in
+ the same way as the SYNTAX clause of an OBJECT-TYPE macro.
+
+12. Extending a PIB Module
+
+ PIBs may be revised as implementation experience is gained. However,
+ changes with potential to cause disruption to interoperability
+ between the previous PIB and the revised PIB are not allowed.
+
+12.1. PIB Modules
+
+ For any change, the invocation of the MODULE-IDENTITY macro must be
+ updated to include information about the revision: specifically,
+ updating the LAST-UPDATED clause, adding a pair of REVISION and
+ DESCRIPTION clauses, and making any necessary changes to existing
+ clauses, including the ORGANIZATION and CONTACT-INFO clauses.
+
+
+
+
+
+
+McCloghrie, et al. Standards Track [Page 29]
+
+RFC 3159 SPPI August 2001
+
+
+ Note that any definition contained in an existing PIB is available to
+ be IMPORT-ed by any other PIB, and is referenced in an IMPORTS clause
+ via the PIB module name. Thus, a PIB module name should not be
+ changed. Definitions should not be moved from one PIB to another.
+
+ Also note that obsolete definitions must not be removed from PIB
+ modules since their descriptors may still be referenced by other PIB
+ modules, and the OBJECT IDENTIFIERs used to name them must never be
+ re-assigned. The EXTENDS/AUGMENTS clause should be used to extend
+ previous definitions depending on the information to be represented.
+
+ Changes to an existing PIB can be made in several ways:
+
+ - Additional PRCs can be added to a PIB or an existing one
+ deprecated.
+
+ - Attributes can be added to, or deprecated from, an existing PRC.
+ Note that an ASN.1 value of the correct type or an ASN.1 NULL
+ value must be sent even for deprecated attributes to maintain
+ interoperability. New attributes must be added in sequence after
+ the existing ones.
+
+ - An existing PRC can be extended or augmented with a new PRC
+ defined in another (perhaps enterprise specific) PIB.
+
+ Additional named-number enumerations may be added to a SUBJECT-
+ CATEGORIES clause.
+
+12.2. Object Assignments
+
+ If any non-editorial change is made to any clause of a object
+ assignment, then the OBJECT IDENTIFIER value associated with that
+ object assignment must also be changed, along with its associated
+ descriptor. Note that the max subid for PRC attributes is 127 (See
+ Section 7.1.8)
+
+12.3. Object Definitions
+
+ An object definition may be revised in any of the following ways:
+
+ - A SYNTAX clause containing an enumerated INTEGER may have new
+ enumerations added or existing labels changed. Similarly, named
+ bits may be added or existing labels changed for the BITS
+ construct.
+
+
+
+
+
+
+
+McCloghrie, et al. Standards Track [Page 30]
+
+RFC 3159 SPPI August 2001
+
+
+ - The value of a SYNTAX clause may be replaced by a textual
+ convention, providing the textual convention is defined to use the
+ same primitive ASN.1 type, has the same set of values, and has
+ identical semantics.
+
+ - A UNITS clause may be added.
+
+ - A STATUS clause value of "current" may be revised as "deprecated"
+ or "obsolete". Similarly, a STATUS clause value of "deprecated"
+ may be revised as "obsolete". When making such a change, the
+ DESCRIPTION clause should be updated to explain the rationale.
+
+ - Clarifications and additional information may be included in the
+ DESCRIPTION clause.
+
+ - An INSTALL-ERRORS clause may be added or an existing INSTALL-
+ ERRORS clause have additional errors defined.
+
+ - A REFERENCE clause may be added or updated.
+
+ - A DEFVAL clause may be added or updated.
+
+ - A PRC may be augmented by adding new objects at the end of the
+ row, and making the corresponding update to the SEQUENCE
+ definition.
+
+ - Entirely new objects may be defined, named with previously
+ unassigned OBJECT IDENTIFIER values.
+
+ Otherwise, if the semantics of any previously defined object are
+ changed (i.e., if a non-editorial change is made to any clause other
+ than those specifically allowed above), then the OBJECT IDENTIFIER
+ value associated with that object must also be changed. Note that
+ changing the descriptor associated with an existing object is
+ considered a semantic change, as these strings may be used in an
+ IMPORTS statement.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+McCloghrie, et al. Standards Track [Page 31]
+
+RFC 3159 SPPI August 2001
+
+
+Appendix A: Mapping a PIB to a MIB
+
+ Since the SPPI is modelled on the SMI, a PIB can be potentially
+ algorithmically mapped into a MIB. This mapping is achieved by means
+ of the following rules:
+
+ - Modify the module's module name by appending "-MIB" to the name.
+
+ - Change the OID assigned to the MODULE-IDENTITY to be different
+ value.
+
+ - Replace the keyword PIB-DEFINITIONS with the keyword DEFINITIONS.
+
+ - Modify the module names of all external references to PIB modules
+ by appending "-MIB" to each such module name.
+
+ - For each PRC definition, if an INDEX clause is absent, change the
+ "PIB-INDEX" keyword to "INDEX"; otherwise, delete the PIB-INDEX
+ clause.
+
+ - Delete all of the following clauses: PIB-ACCESS, PIB-REFERENCES,
+ PIB-TAG, UNIQUENESS, INSTALL-ERRORS, and SUBJECT-CATEGORIES.
+
+ - Change all PIB-MIN-ACCESS clauses to MIN-ACCESS clauses, modifying
+ "install" and "install-notify" to "read-create", and "notify" to
+ "read-only".
+
+ - Add a MAX-ACCESS clause for each OBJECT-TYPE. For each table
+ definition and row definition, the MAX-ACCESS is "not-accessible".
+ For each attribute that is in the INDEX clause, the MAX-ACCESS is
+ "not-accessible". For the remaining attributes, the MAX-ACCESS is
+ "read-create".
+
+ - Add a columnar attribute of type RowStatus with a descriptor and
+ appropriate DESCRIPTION. The descriptor can be formed by
+ appending the nine characters "RowStatus" to the end of the PRC's
+ descriptor (truncated if necessary to avoid the resulting
+ descriptor being too long). A Subid beyond 127 (i.e., 128 and
+ above) can be used as the OID for this columnar attribute.
+
+ - Modify any SYNTAX clause which has a base data type which is not
+ allowed in the SMI, either to be a valid SMI data type or to omit
+ the OBJECT-TYPE or TEXTUAL-CONVENTION definition and all
+ references to it. Since it is not clear (at this time) which is
+ the best SMI data type to use, the conversion SHOULD provide a
+ configurable option allowing a choice from at least the following:
+
+
+
+
+
+McCloghrie, et al. Standards Track [Page 32]
+
+RFC 3159 SPPI August 2001
+
+
+ - convert to an OCTET STRING of the relevant size. Specifically,
+ this option would map both Integer64 and Unsigned64 to OCTET
+ STRING (SIZE(8)), or
+
+ - omit them from the conversion, or
+
+ - map Integer64 and Unsigned64 to Counter64 (even though this has
+ problems representing negative numbers, and unwanted counter
+ semantics.)
+
+Appendix B: Example usage of PIB-REFERENCES and PIB-TAG clauses
+
+ The following example demonstrates the use of the PIB-REFERENCES and
+ PIB-TAG clauses.
+
+ In this example, the PIB-REFERENCES clause is used by the
+ qosIfDscpMapQueue attribute to indicate the PRC of which it
+ references an instance, and similarly, by the qosIfDscpMapThresh
+ attribute.
+
+ The qosIfDscpMapTable PRC has an instance for each DSCP of a
+ particular "map", but there is no PRC defined for a map itself;
+ rather, a map consists of all instances of qosIfDscpMapTable which
+ have the same value of qosIfDscpMapMapId. That is, a tag list is
+ formed by all instances of qosIfDscpMapTable which have the same
+ value of qosIfDscpMapMapId. This tag list is referenced by the
+ attribute qosIfDscpAssignDscpMap, and its use of the PIB-TAG clause
+ indicates this.
+
+qosIfDscpAssignTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF QosIfDscpAssignEntry
+ PIB-ACCESS install
+ STATUS current
+ DESCRIPTION " "
+ ::= { qosIfParameters 9 }
+
+qosIfDscpAssignEntry OBJECT-TYPE
+ SYNTAX QosIfDscpAssignEntry
+ STATUS current
+ DESCRIPTION
+ "An instance of the qosIfDscpAssign class."
+ PIB-INDEX { qosIfDscpAssignPrid }
+ UNIQUENESS { qosIfDscpAssignName, qosIfDscpAssignRoles }
+ ::= { qosIfDscpAssignTable 1 }
+
+QosIfDscpAssignEntry ::= SEQUENCE {
+ qosIfDscpAssignPrid InstanceId,
+ qosIfDscpAssignName SnmpAdminString,
+
+
+
+McCloghrie, et al. Standards Track [Page 33]
+
+RFC 3159 SPPI August 2001
+
+
+ qosIfDscpAssignRoles RoleCombination,
+ qosIfDscpAssignDscpMap TagReferenceId
+}
+
+qosIfDscpAssignDscpMap OBJECT-TYPE
+ SYNTAX TagReferenceId
+ PIB-TAG { qosIfDscpMapMapId } -- attribute defined below
+ STATUS current
+ DESCRIPTION
+ "The DSCP map which is applied to interfaces of type
+ qosIfDscpAssignName which have a role combination of
+ qosIfDscpAssignRoles."
+ ::= { qosIfDscpAssignEntry 3 }
+
+--
+-- DSCP to Queue and Threshold Mapping Table
+--
+
+qosIfDscpMapTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF QosIfDscpMapEntry
+ PIB-ACCESS install
+ STATUS current
+ DESCRIPTION
+ "Assigns DSCP values to queues and thresholds for an arbitrary
+ DSCP map. This map can then be assigned to various interface
+ and role combination pairs."
+ ::= { qosIfParameters 10 }
+
+qosIfDscpMapEntry OBJECT-TYPE
+ SYNTAX QosIfDscpMapEntry
+ STATUS current
+ DESCRIPTION
+ "An instance of the qosIfDscpMap class."
+ PIB-INDEX { qosIfDscpMapPrid }
+ UNIQUENESS { qosIfDscpMapMapId, qosIfDscpMapDscp }
+ ::= { qosIfDscpMapTable 1 }
+
+QosIfDscpMapEntry ::= SEQUENCE {
+ qosIfDscpMapPrid InstanceId,
+ qosIfDscpMapMapId TagId,
+ qosIfDscpMapDscp Dscp,
+ qosIfDscpMapQueue ReferenceId,
+ qosIfDscpMapThresh ReferenceId
+}
+
+qosIfDscpMapMapId OBJECT-TYPE
+ SYNTAX TagId
+ STATUS current
+
+
+
+McCloghrie, et al. Standards Track [Page 34]
+
+RFC 3159 SPPI August 2001
+
+
+ DESCRIPTION
+ "An integer that identifies the DSCP map to which this PRI
+ belongs."
+ ::= { qosIfDscpMapEntry 2 }
+
+qosIfDscpMapQueue OBJECT-TYPE
+ SYNTAX ReferenceId
+ PIB-REFERENCES { qosIfQueueEntry }
+ STATUS current
+ DESCRIPTION
+ "This attribute maps the DSCP specified by qosIfDscpMapDscp to
+ the queue identified by qosIfQueuePrid in qosIfQueueTable.
+ For a given DSCP map, all the queues must belong to a single
+ queue set."
+ ::= { qosIfDscpMapEntry 4 }
+
+qosIfDscpMapThresh OBJECT-TYPE
+ SYNTAX ReferenceId
+ PIB-REFERENCES { qosIfThresholdEntry }
+ STATUS current
+ DESCRIPTION
+ "This attribute maps the DSCP specified by qosIfDscpMapDscp to
+ the threshold identified by qosIfThresholdId in
+ qosIfThresholdTable. The threshold set to which this
+ threshold belongs must be assigned to the queue specified by
+ qosIfDscpMapQueue."
+ ::= { qosIfDscpMapEntry 5 }
+
+Security Considerations
+
+ This document defines a language with which to define provisioning
+ information. The language itself has no security impact on the
+ Internet.
+
+IANA Considerations
+
+ The root of the subtree administered by the Internet Assigned Numbers
+ Authority (IANA) for the Internet is:
+
+ internet OBJECT IDENTIFIER ::= { iso 3 6 1 }
+
+ That is, the Internet subtree of OBJECT IDENTIFIERs starts with the
+ prefix:
+
+ 1.3.6.1.
+
+ Several branches underneath this subtree are used for network
+ management:
+
+
+
+McCloghrie, et al. Standards Track [Page 35]
+
+RFC 3159 SPPI August 2001
+
+
+ mgmt OBJECT IDENTIFIER ::= { internet 2 }
+ experimental OBJECT IDENTIFIER ::= { internet 3 }
+ private OBJECT IDENTIFIER ::= { internet 4 }
+ enterprises OBJECT IDENTIFIER ::= { private 1 }
+
+ The mgmt(2) subtree is used to identify "standard" objects.
+
+ This document defines
+
+ pib OBJECT IDENTIFIER ::= { mgmt 2 }
+
+ as the root for PIBs defined to be carried over [COPS-PR]. This
+ Object Identifier is a high level assignment that needs to be
+ registered with [IANA]. Root Object Identifiers for future "standards
+ track" PIBs will also need to be registered and MUST use Object
+ Identifiers below this oid. A standards track PIB can only be
+ assigned an OID by IANA if the PIB is approved by the IESG as a
+ "standards track" document. Experimental and enterprise PIBs MUST be
+ defined under the "experimental" and "enterprises" Object Identifiers
+ respectively.
+
+ The PIB module "copsPrSppiTc" is defined in this document as a
+ standard module and hence, needs a subid assignment under the "pib"
+ oid from IANA.
+
+ SPPI SUBJECT-CATEGORIES are mapped to COPS Client Types. IANA
+ Considerations for SUBJECT-CATEGORIES follow the same requirements as
+ specified in [COPS] IANA Considerations for COPS Client Types. Thus,
+ a new PIB can define a new COPS Client Type in the "standards",
+ "experimental" or "enterprise" space, and when approved that would
+ mean that a new COPS Client Type gets assigned. IANA must update the
+ registry for COPS Client Types (where applicable as described in
+ [COPS] IANA Considerations) as a result.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+McCloghrie, et al. Standards Track [Page 36]
+
+RFC 3159 SPPI August 2001
+
+
+Authors' Addresses
+
+ Keith McCloghrie
+ Cisco Systems, Inc.
+ 170 West Tasman Drive
+ San Jose, CA 95134-1706 USA
+
+ Phone: +1 408 526 5260
+ Email: kzm@cisco.com
+
+
+ Michael Fine
+ Cisco Systems, Inc.
+ 170 West Tasman Drive
+ San Jose, CA 95134-1706 USA
+
+ Phone: +1 408 527 8218
+ EMail: mfine@cisco.com
+
+
+ John Seligson
+ Nortel Networks, Inc.
+ 4401 Great America Parkway
+ Santa Clara, CA 95054 USA
+
+ Phone: +1 408 495 2992
+ EMail: jseligso@nortelnetworks.com
+
+
+ Kwok Ho Chan
+ Nortel Networks, Inc.
+ 600 Technology Park Drive
+ Billerica, MA 01821 USA
+
+ Phone: +1 978 288 8175
+ EMail: khchan@nortelnetworks.com
+
+
+ Scott Hahn
+ Intel
+ 2111 NE 25th Avenue
+ Hillsboro, OR 97124 USA
+
+ Phone: +1 503 264 8231
+ EMail: scott.hahn@intel.com
+
+
+
+
+
+
+McCloghrie, et al. Standards Track [Page 37]
+
+RFC 3159 SPPI August 2001
+
+
+ Ravi Sahita
+ Intel
+ 2111 NE 25th Avenue
+ Hillsboro, OR 97124 USA
+
+ Phone: +1 503 712 1554
+ EMail: ravi.sahita@intel.com
+
+
+ Andrew Smith
+ Allegro Networks
+ 6399 San Ignacio Ave.
+ San Jose, CA 95119 USA
+
+ Fax: +1 415 345 1827
+ EMail: andrew@allegronetworks.com
+
+
+ Francis Reichmeyer
+ PFN Inc.
+ University Park at MIT
+ 26 Landsdowne Street
+ Cambridge, MA 02139 USA
+
+ Phone: +1 617 494 9980
+ EMail: franr@pfn.com
+
+References
+
+ [COPS] Boyle, J., Cohen, R., Durham, D., Herzog, S.,
+ Rajan, R. and A. Sastry, "The COPS (Common Open
+ Policy Service) Protocol", RFC 2748, January
+ 2000.
+
+ [COPS-RSVP] Boyle, J., Cohen, R., Durham, D., Herzog, S.,
+ Rajan, R. and A. Sastry, " COPS usage for
+ RSVP", RFC 2749, January 2000.
+
+ [COPS-PR] Reichmeyer, F., Herzog, S., Chan, K., Durham,
+ D., Yavatkar, R., Gai, S., McCloghrie, K. and
+ A. Smith, "COPS Usage for Policy Provisioning",
+ RFC 3084, March 2001.
+
+ [SMI] McCloghrie, K., Perkins, D., Schoenwaelder, J.,
+ Case, J., Rose, M. and S. Waldbusser,
+ "Structure of Management Information Version 2
+ (SMIv2)", STD 58, RFC 2578, April 1999.
+
+
+
+
+McCloghrie, et al. Standards Track [Page 38]
+
+RFC 3159 SPPI August 2001
+
+
+ [TC] McCloghrie, K., Perkins, D., Schoenwaelder, J.,
+ Case, J., Rose, M. and S. Waldbusser, "Textual
+ Conventions for SMIv2", STD 58, RFC 2579, April
+ 1999.
+
+ [CONF] McCloghrie, K., Perkins, D., Schoenwaelder, J.,
+ Case, J., Rose, M. and S. Waldbusser,
+ "Conformance Statements for SMIv2", STD 58, RFC
+ 2580, April 1999.
+
+ [APPL] Levi, D., Meyer, P. and B. Stewart, "SNMP
+ Applications", RFC 2573, April 1999.
+
+ [ASN1] Information processing systems -- Open Systems
+ Interconnection -- Specification of Abstract
+ Syntax Notation One (ASN.1), International
+ Organization for Standardization.
+ International Standard 8824, December 1987.
+
+ [INETADDR] Daniele, M., Haberman, B., Routhier, S. and J.
+ Schoenwaelder "Textual Conventions for Internet
+ Network Addresses", RFC 2851, June 2000.
+
+ [IANA] http://www.isi.edu/in-notes/iana/assignments/smi-numbers
+
+ [IANA-CONSIDERATIONS] Alvestrand, H. and T. Narten, "Guidelines for
+ Writing an IANA Considerations Section in
+ RFCs", BCP 26, RFC 2434, October 1998.
+
+ [RFC2119] Bradner, S., "Key words for use in RFCs to
+ Indicate Requirement Levels", BCP 14, RFC 2119,
+ March 1997.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+McCloghrie, et al. Standards Track [Page 39]
+
+RFC 3159 SPPI August 2001
+
+
+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.
+
+ 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.
+
+Acknowledgement
+
+ Funding for the RFC Editor function is currently provided by the
+ Internet Society.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+McCloghrie, et al. Standards Track [Page 40]
+