| 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 } |
| |
| END |