639 lines
No EOL
18 KiB
Text
639 lines
No EOL
18 KiB
Text
SNMPv2-SMI DEFINITIONS ::= BEGIN
|
|
|
|
-- the path to the root
|
|
|
|
org OBJECT IDENTIFIER ::= { iso 3 } -- "iso" = 1
|
|
dod OBJECT IDENTIFIER ::= { org 6 }
|
|
internet OBJECT IDENTIFIER ::= { dod 1 }
|
|
|
|
directory OBJECT IDENTIFIER ::= { internet 1 }
|
|
|
|
mgmt OBJECT IDENTIFIER ::= { internet 2 }
|
|
mib-2 OBJECT IDENTIFIER ::= { mgmt 1 }
|
|
transmission OBJECT IDENTIFIER ::= { mib-2 10 }
|
|
|
|
experimental OBJECT IDENTIFIER ::= { internet 3 }
|
|
|
|
private OBJECT IDENTIFIER ::= { internet 4 }
|
|
enterprises OBJECT IDENTIFIER ::= { private 1 }
|
|
|
|
security OBJECT IDENTIFIER ::= { internet 5 }
|
|
|
|
snmpV2 OBJECT IDENTIFIER ::= { internet 6 }
|
|
|
|
-- transport domains
|
|
snmpDomains OBJECT IDENTIFIER ::= { snmpV2 1 }
|
|
|
|
-- transport proxies
|
|
snmpProxys OBJECT IDENTIFIER ::= { snmpV2 2 }
|
|
|
|
-- module identities
|
|
snmpModules OBJECT IDENTIFIER ::= { snmpV2 3 }
|
|
|
|
-- Extended UTCTime, to allow dates with four-digit years
|
|
-- (Note that this definition of ExtUTCTime is not to be IMPORTed
|
|
-- by MIB modules.)
|
|
ExtUTCTime ::= OCTET STRING(SIZE(11 | 13))
|
|
-- format is YYMMDDHHMMZ or YYYYMMDDHHMMZ
|
|
|
|
-- where: YY - last two digits of year (only years
|
|
-- between 1900-1999)
|
|
-- YYYY - last four digits of the year (any year)
|
|
-- MM - month (01 through 12)
|
|
-- DD - day of month (01 through 31)
|
|
-- HH - hours (00 through 23)
|
|
-- MM - minutes (00 through 59)
|
|
-- Z - denotes GMT (the ASCII character Z)
|
|
--
|
|
-- For example, "9502192015Z" and "199502192015Z" represent
|
|
-- 8:15pm GMT on 19 February 1995. Years after 1999 must use
|
|
-- the four digit year format. Years 1900-1999 may use the
|
|
-- two or four digit format.
|
|
|
|
-- definitions for information modules
|
|
|
|
MODULE-IDENTITY MACRO ::=
|
|
BEGIN
|
|
TYPE NOTATION ::=
|
|
"LAST-UPDATED" value(Update ExtUTCTime)
|
|
"ORGANIZATION" Text
|
|
"CONTACT-INFO" Text
|
|
"DESCRIPTION" Text
|
|
RevisionPart
|
|
|
|
VALUE NOTATION ::=
|
|
value(VALUE OBJECT IDENTIFIER)
|
|
|
|
RevisionPart ::=
|
|
Revisions
|
|
| empty
|
|
Revisions ::=
|
|
Revision
|
|
| Revisions Revision
|
|
Revision ::=
|
|
"REVISION" value(Update ExtUTCTime)
|
|
"DESCRIPTION" Text
|
|
|
|
-- a character string as defined in section 3.1.1
|
|
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 section 3.1.1
|
|
Text ::= value(IA5String)
|
|
END
|
|
|
|
-- names of objects
|
|
-- (Note that these definitions of ObjectName and NotificationName
|
|
-- are not to be IMPORTed by MIB modules.)
|
|
|
|
ObjectName ::=
|
|
OBJECT IDENTIFIER
|
|
|
|
NotificationName ::=
|
|
OBJECT IDENTIFIER
|
|
|
|
-- syntax of objects
|
|
|
|
-- the "base types" defined here are:
|
|
-- 3 built-in ASN.1 types: INTEGER, OCTET STRING, OBJECT IDENTIFIER
|
|
-- 8 application-defined types: Integer32, IpAddress, Counter32,
|
|
-- Gauge32, Unsigned32, TimeTicks, Opaque, and Counter64
|
|
|
|
ObjectSyntax ::=
|
|
CHOICE {
|
|
simple
|
|
SimpleSyntax,
|
|
-- note that SEQUENCEs for conceptual tables and
|
|
-- rows are not mentioned here...
|
|
|
|
application-wide
|
|
ApplicationSyntax
|
|
}
|
|
|
|
-- built-in ASN.1 types
|
|
|
|
SimpleSyntax ::=
|
|
CHOICE {
|
|
-- INTEGERs with a more restrictive range
|
|
-- may also be used
|
|
integer-value -- includes Integer32
|
|
INTEGER (-2147483648..2147483647),
|
|
-- OCTET STRINGs with a more restrictive size
|
|
-- may also be used
|
|
string-value
|
|
OCTET STRING (SIZE (0..65535)),
|
|
objectID-value
|
|
OBJECT IDENTIFIER
|
|
}
|
|
|
|
-- indistinguishable from INTEGER, but never needs more than
|
|
-- 32-bits for a two's complement representation
|
|
Integer32 ::=
|
|
INTEGER (-2147483648..2147483647)
|
|
|
|
-- application-wide types
|
|
|
|
ApplicationSyntax ::=
|
|
CHOICE {
|
|
ipAddress-value
|
|
IpAddress,
|
|
counter-value
|
|
Counter32,
|
|
timeticks-value
|
|
TimeTicks,
|
|
arbitrary-value
|
|
Opaque,
|
|
big-counter-value
|
|
Counter64,
|
|
unsigned-integer-value -- includes Gauge32
|
|
Unsigned32
|
|
}
|
|
|
|
-- in network-byte order
|
|
|
|
-- (this is a tagged type for historical reasons)
|
|
IpAddress ::=
|
|
[APPLICATION 0]
|
|
IMPLICIT OCTET STRING (SIZE (4))
|
|
|
|
-- this wraps
|
|
Counter32 ::=
|
|
[APPLICATION 1]
|
|
IMPLICIT INTEGER (0..4294967295)
|
|
|
|
-- this doesn't wrap
|
|
Gauge32 ::=
|
|
[APPLICATION 2]
|
|
IMPLICIT INTEGER (0..4294967295)
|
|
|
|
-- an unsigned 32-bit quantity
|
|
-- indistinguishable from Gauge32
|
|
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
|
|
|
|
-- for counters that wrap in less than one hour with only 32 bits
|
|
Counter64 ::=
|
|
[APPLICATION 6]
|
|
IMPLICIT INTEGER (0..18446744073709551615)
|
|
|
|
-- definition for objects
|
|
|
|
OBJECT-TYPE MACRO ::=
|
|
BEGIN
|
|
TYPE NOTATION ::=
|
|
"SYNTAX" Syntax
|
|
UnitsPart
|
|
"MAX-ACCESS" Access
|
|
"STATUS" Status
|
|
"DESCRIPTION" Text
|
|
ReferPart
|
|
|
|
IndexPart
|
|
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 ::=
|
|
"not-accessible"
|
|
| "accessible-for-notify"
|
|
| "read-only"
|
|
| "read-write"
|
|
| "read-create"
|
|
|
|
Status ::=
|
|
"current"
|
|
| "deprecated"
|
|
| "obsolete"
|
|
|
|
ReferPart ::=
|
|
"REFERENCE" Text
|
|
| empty
|
|
|
|
IndexPart ::=
|
|
"INDEX" "{" IndexTypes "}"
|
|
| "AUGMENTS" "{" Entry "}"
|
|
| empty
|
|
IndexTypes ::=
|
|
IndexType
|
|
| IndexTypes "," IndexType
|
|
IndexType ::=
|
|
"IMPLIED" Index
|
|
| Index
|
|
|
|
Index ::=
|
|
-- use the SYNTAX value of the
|
|
-- correspondent OBJECT-TYPE invocation
|
|
value(ObjectName)
|
|
Entry ::=
|
|
-- use the INDEX value of 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 section 3.1.1
|
|
Text ::= value(IA5String)
|
|
END
|
|
|
|
-- definitions for notifications
|
|
|
|
NOTIFICATION-TYPE MACRO ::=
|
|
BEGIN
|
|
TYPE NOTATION ::=
|
|
ObjectsPart
|
|
"STATUS" Status
|
|
"DESCRIPTION" Text
|
|
ReferPart
|
|
|
|
VALUE NOTATION ::=
|
|
value(VALUE NotificationName)
|
|
|
|
ObjectsPart ::=
|
|
"OBJECTS" "{" Objects "}"
|
|
| empty
|
|
Objects ::=
|
|
Object
|
|
|
|
| Objects "," Object
|
|
Object ::=
|
|
value(ObjectName)
|
|
|
|
Status ::=
|
|
"current"
|
|
| "deprecated"
|
|
| "obsolete"
|
|
|
|
ReferPart ::=
|
|
"REFERENCE" Text
|
|
| empty
|
|
|
|
-- a character string as defined in section 3.1.1
|
|
Text ::= value(IA5String)
|
|
END
|
|
|
|
-- definitions of administrative identifiers
|
|
|
|
zeroDotZero OBJECT-IDENTITY
|
|
STATUS current
|
|
DESCRIPTION
|
|
"A value used for null identifiers."
|
|
::= { 0 0 }
|
|
|
|
|
|
|
|
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 [2]
|
|
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
|
|
|
|
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)
|
|
SyntaxPart
|
|
WriteSyntaxPart
|
|
AccessPart
|
|
"DESCRIPTION" Text
|
|
|
|
-- must be a refinement for object's SYNTAX clause
|
|
SyntaxPart ::= "SYNTAX" Syntax
|
|
| empty
|
|
|
|
-- must be a refinement for object's SYNTAX clause
|
|
WriteSyntaxPart ::= "WRITE-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 ::=
|
|
"MIN-ACCESS" Access
|
|
| empty
|
|
Access ::=
|
|
"not-accessible"
|
|
| "accessible-for-notify"
|
|
| "read-only"
|
|
| "read-write"
|
|
| "read-create"
|
|
|
|
-- a character string as defined in [2]
|
|
Text ::= value(IA5String)
|
|
END
|
|
|
|
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 [2]
|
|
Text ::= value(IA5String)
|
|
END
|
|
|
|
InetPortNumber ::= TEXTUAL-CONVENTION
|
|
DISPLAY-HINT "d"
|
|
STATUS current
|
|
DESCRIPTION
|
|
"Represents a 16 bit port number of an Internet transport
|
|
|
|
layer protocol. Port numbers are assigned by IANA. A
|
|
current list of all assignments is available from
|
|
<http://www.iana.org/>.
|
|
|
|
The value zero is object-specific and must be defined as
|
|
part of the description of any object that uses this
|
|
syntax. Examples of the usage of zero might include
|
|
situations where a port number is unknown, or when the
|
|
value zero is used as a wildcard in a filter."
|
|
REFERENCE "STD 6 (RFC 768), STD 7 (RFC 793) and RFC 2960"
|
|
SYNTAX Unsigned32 (0..65535)
|
|
|
|
|
|
InetAddress ::= TEXTUAL-CONVENTION
|
|
STATUS current
|
|
DESCRIPTION
|
|
"Denotes a generic Internet address.
|
|
|
|
An InetAddress value is always interpreted within the context
|
|
of an InetAddressType value. Every usage of the InetAddress
|
|
textual convention is required to specify the InetAddressType
|
|
object that provides the context. It is suggested that the
|
|
InetAddressType object be logically registered before the
|
|
object(s) that use the InetAddress textual convention, if
|
|
they appear in the same logical row.
|
|
|
|
The value of an InetAddress object must always be
|
|
consistent with the value of the associated InetAddressType
|
|
object. Attempts to set an InetAddress object to a value
|
|
inconsistent with the associated InetAddressType
|
|
must fail with an inconsistentValue error.
|
|
|
|
When this textual convention is used as the syntax of an
|
|
index object, there may be issues with the limit of 128
|
|
sub-identifiers specified in SMIv2, STD 58. In this case,
|
|
the object definition MUST include a 'SIZE' clause to
|
|
limit the number of potential instance sub-identifiers;
|
|
otherwise the applicable constraints MUST be stated in
|
|
the appropriate conceptual row DESCRIPTION clauses, or
|
|
in the surrounding documentation if there is no single
|
|
DESCRIPTION clause that is appropriate."
|
|
SYNTAX OCTET STRING (SIZE (0..255))
|
|
|
|
InetAddressType ::= TEXTUAL-CONVENTION
|
|
STATUS current
|
|
DESCRIPTION
|
|
"A value that represents a type of Internet address.
|
|
|
|
unknown(0) An unknown address type. This value MUST
|
|
be used if the value of the corresponding
|
|
InetAddress object is a zero-length string.
|
|
It may also be used to indicate an IP address
|
|
that is not in one of the formats defined
|
|
below.
|
|
|
|
ipv4(1) An IPv4 address as defined by the
|
|
InetAddressIPv4 textual convention.
|
|
|
|
ipv6(2) An IPv6 address as defined by the
|
|
InetAddressIPv6 textual convention.
|
|
|
|
ipv4z(3) A non-global IPv4 address including a zone
|
|
index as defined by the InetAddressIPv4z
|
|
textual convention.
|
|
|
|
ipv6z(4) A non-global IPv6 address including a zone
|
|
index as defined by the InetAddressIPv6z
|
|
textual convention.
|
|
|
|
dns(16) A DNS domain name as defined by the
|
|
InetAddressDNS textual convention.
|
|
|
|
Each definition of a concrete InetAddressType value must be
|
|
accompanied by a definition of a textual convention for use
|
|
with that InetAddressType.
|
|
|
|
To support future extensions, the InetAddressType textual
|
|
convention SHOULD NOT be sub-typed in object type definitions.
|
|
It MAY be sub-typed in compliance statements in order to
|
|
require only a subset of these address types for a compliant
|
|
implementation.
|
|
|
|
Implementations must ensure that InetAddressType objects
|
|
and any dependent objects (e.g., InetAddress objects) are
|
|
consistent. An inconsistentValue error must be generated
|
|
if an attempt to change an InetAddressType object would,
|
|
for example, lead to an undefined InetAddress value. In
|
|
|
|
particular, InetAddressType/InetAddress pairs must be
|
|
changed together if the address type changes (e.g., from
|
|
ipv6(2) to ipv4(1))."
|
|
SYNTAX INTEGER {
|
|
unknown(0),
|
|
ipv4(1),
|
|
ipv6(2),
|
|
ipv4z(3),
|
|
ipv6z(4),
|
|
dns(16)
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
END |