rfc1442.txt
来自「RFC 的详细文档!」· 文本 代码 · 共 2,194 行 · 第 1/5 页
TXT
2,194 行
Case, McCloghrie, Rose & Waldbusser [Page 6]
RFC 1442 SMI for SNMPv2 April 1993
-- names of objects
ObjectName ::=
OBJECT IDENTIFIER
-- syntax of objects
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
INTEGER (-2147483648..2147483647),
string-value
OCTET STRING,
objectID-value
OBJECT IDENTIFIER,
-- only the enumerated form is allowed
bit-value
BIT STRING
}
Case, McCloghrie, Rose & Waldbusser [Page 7]
RFC 1442 SMI for SNMPv2 April 1993
-- indistinguishable from INTEGER, but never needs more than
-- 32-bits for a two's complement representation
Integer32 ::=
[UNIVERSAL 2]
IMPLICIT INTEGER (-2147483648..2147483647)
-- application-wide types
ApplicationSyntax ::=
CHOICE {
ipAddress-value
IpAddress,
counter-value
Counter32,
gauge-value
Gauge32,
timeticks-value
TimeTicks,
arbitrary-value
Opaque,
nsapAddress-value
NsapAddress,
big-counter-value
Counter64,
unsigned-integer-value
UInteger32
}
-- in network-byte order
-- (this is a tagged type for historical reasons)
IpAddress ::=
[APPLICATION 0]
IMPLICIT OCTET STRING (SIZE (4))
Case, McCloghrie, Rose & Waldbusser [Page 8]
RFC 1442 SMI for SNMPv2 April 1993
-- this wraps
Counter32 ::=
[APPLICATION 1]
IMPLICIT INTEGER (0..4294967295)
-- this doesn't wrap
Gauge32 ::=
[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 OSI NSAP addresses
-- (this is a tagged type for historical reasons)
NsapAddress ::=
[APPLICATION 5]
IMPLICIT OCTET STRING (SIZE (1 | 4..21))
-- for counters that wrap in less than one hour with only 32 bits
Counter64 ::=
[APPLICATION 6]
IMPLICIT INTEGER (0..18446744073709551615)
-- an unsigned 32-bit quantity
UInteger32 ::=
[APPLICATION 7]
IMPLICIT INTEGER (0..4294967295)
Case, McCloghrie, Rose & Waldbusser [Page 9]
RFC 1442 SMI for SNMPv2 April 1993
-- definition for objects
OBJECT-TYPE MACRO ::=
BEGIN
TYPE NOTATION ::=
"SYNTAX" type(Syntax)
UnitsPart
"MAX-ACCESS" Access
"STATUS" Status
"DESCRIPTION" Text
ReferPart
IndexPart
DefValPart
VALUE NOTATION ::=
value(VALUE ObjectName)
UnitsPart ::=
"UNITS" Text
| empty
Access ::=
"not-accessible"
| "read-only"
| "read-write"
| "read-create"
Status ::=
"current"
| "deprecated"
| "obsolete"
ReferPart ::=
"REFERENCE" Text
| empty
IndexPart ::=
"INDEX" "{" IndexTypes "}"
| "AUGMENTS" "{" Entry "}"
| empty
IndexTypes ::=
IndexType
| IndexTypes "," IndexType
Case, McCloghrie, Rose & Waldbusser [Page 10]
RFC 1442 SMI for SNMPv2 April 1993
IndexType ::=
"IMPLIED" Index
| Index
Index ::=
-- use the SYNTAX value of the
-- correspondent OBJECT-TYPE invocation
value(Indexobject ObjectName)
Entry ::=
-- use the INDEX value of the
-- correspondent OBJECT-TYPE invocation
value(Entryobject ObjectName)
DefValPart ::=
"DEFVAL" "{" value(Defval Syntax) "}"
| empty
-- uses the NVT ASCII character set
Text ::= """" string """"
END
Case, McCloghrie, Rose & Waldbusser [Page 11]
RFC 1442 SMI for SNMPv2 April 1993
-- definitions for notifications
NOTIFICATION-TYPE MACRO ::=
BEGIN
TYPE NOTATION ::=
ObjectsPart
"STATUS" Status
"DESCRIPTION" Text
ReferPart
VALUE NOTATION ::=
value(VALUE OBJECT IDENTIFIER)
ObjectsPart ::=
"OBJECTS" "{" Objects "}"
| empty
Objects ::=
Object
| Objects "," Object
Object ::=
value(Name ObjectName)
Status ::=
"current"
| "deprecated"
| "obsolete"
ReferPart ::=
"REFERENCE" Text
| empty
-- uses the NVT ASCII character set
Text ::= """" string """"
END
END
Case, McCloghrie, Rose & Waldbusser [Page 12]
RFC 1442 SMI for SNMPv2 April 1993
3. Information Modules
An "information module" is an ASN.1 module defining
information relating to network management.
The SMI describes how to use a subset of ASN.1 to define an
information module. Further, additional restrictions are
placed on "standard" information modules. It is strongly
recommended that "enterprise-specific" information modules
also adhere to these restrictions.
Typically, there are three kinds of information modules:
(1) MIB modules, which contain definitions of inter-related
managed objects, make use of the OBJECT-TYPE and
NOTIFICATION-TYPE macros;
(2) compliance statements for MIB modules, which make use of
the MODULE-COMPLIANCE and OBJECT-GROUP macros [2]; and,
(3) capability statements for agent implementations which
make use of the AGENT-CAPABILITIES macros [2].
This classification scheme does not imply a rigid taxonomy.
For example, a "standard" information module might include
definitions of managed objects and a compliance statement.
Similarly, an "enterprise-specific" information module might
include definitions of managed objects and a capability
statement. Of course, a "standard" information module may not
contain capability statements.
All information modules start with exactly one invocation of
the MODULE-IDENTITY macro, which provides contact and revision
history. This invocation must appear immediately after any
IMPORTs or EXPORTs statements.
3.1. Macro Invocation
Within an information module, each macro invocation appears
as:
<descriptor> <macro> <clauses> ::= <value>
where <descriptor> corresponds to an ASN.1 identifier, <macro>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?