510 lines
13 KiB
Plaintext
510 lines
13 KiB
Plaintext
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
|
|
|
|
|
|
|
|
|
|
-- 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
|
|
}
|
|
|
|
|
|
|
|
-- 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)
|
|
|
|
|
|
|
|
-- 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
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
| 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
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
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"
|
|
|
|
|
|
|
|
| "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
|
|
|
|
|
|
|
|
END
|