Network Working Group Editors of this version: Request for Comments: 2578 K. McCloghrie STD: 58 Cisco Systems Obsoletes: 1902 D. Perkins Category: Standards Track SNMPinfo J. Schoenwaelder TU Braunschweig Authors of previous version: J. Case SNMP Research K. McCloghrie Cisco Systems M. Rose First Virtual Holdings S. Waldbusser International Network Services April 1999
Network Working Group Editors of this version: Request for Comments: 2578 K. McCloghrie STD: 58 Cisco Systems Obsoletes: 1902 D. Perkins Category: Standards Track SNMPinfo J. Schoenwaelder TU Braunschweig Authors of previous version: J. Case SNMP Research K. McCloghrie Cisco Systems M. Rose First Virtual Holdings S. Waldbusser International Network Services April 1999
Structure of Management Information Version 2 (SMIv2)
管理信息版本2(SMIv2)的结构
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.
本文件规定了互联网社区的互联网标准跟踪协议,并要求进行讨论和提出改进建议。有关本协议的标准化状态和状态,请参考当前版本的“互联网官方协议标准”(STD 1)。本备忘录的分发不受限制。
Copyright Notice
版权公告
Copyright (C) The Internet Society (1999). All Rights Reserved.
版权所有(C)互联网协会(1999年)。版权所有。
Table of Contents
目录
1 Introduction .................................................3 1.1 A Note on Terminology ......................................4 2 Definitions ..................................................4 2.1 The MODULE-IDENTITY macro ..................................5 2.2 Object Names and Syntaxes ..................................5 2.3 The OBJECT-TYPE macro ......................................8 2.5 The NOTIFICATION-TYPE macro ...............................10 2.6 Administrative Identifiers ................................11 3 Information Modules .........................................11 3.1 Macro Invocation ..........................................12 3.1.1 Textual Values and Strings ..............................13
1 Introduction .................................................3 1.1 A Note on Terminology ......................................4 2 Definitions ..................................................4 2.1 The MODULE-IDENTITY macro ..................................5 2.2 Object Names and Syntaxes ..................................5 2.3 The OBJECT-TYPE macro ......................................8 2.5 The NOTIFICATION-TYPE macro ...............................10 2.6 Administrative Identifiers ................................11 3 Information Modules .........................................11 3.1 Macro Invocation ..........................................12 3.1.1 Textual Values and Strings ..............................13
3.2 IMPORTing Symbols .........................................14 3.3 Exporting Symbols .........................................14 3.4 ASN.1 Comments ............................................14 3.5 OBJECT IDENTIFIER values ..................................15 3.6 OBJECT IDENTIFIER usage ...................................15 3.7 Reserved Keywords .........................................16 4 Naming Hierarchy ............................................16 5 Mapping of the MODULE-IDENTITY macro ........................17 5.1 Mapping of the LAST-UPDATED clause ........................17 5.2 Mapping of the ORGANIZATION clause ........................17 5.3 Mapping of the CONTACT-INFO clause ........................18 5.4 Mapping of the DESCRIPTION clause .........................18 5.5 Mapping of the REVISION clause ............................18 5.5.1 Mapping of the DESCRIPTION sub-clause ...................18 5.6 Mapping of the MODULE-IDENTITY value ......................18 5.7 Usage Example .............................................18 6 Mapping of the OBJECT-IDENTITY macro ........................19 6.1 Mapping of the STATUS clause ..............................19 6.2 Mapping of the DESCRIPTION clause .........................20 6.3 Mapping of the REFERENCE clause ...........................20 6.4 Mapping of the OBJECT-IDENTITY value ......................20 6.5 Usage Example .............................................20 7 Mapping of the OBJECT-TYPE macro ............................20 7.1 Mapping of the SYNTAX clause ..............................21 7.1.1 Integer32 and INTEGER ...................................21 7.1.2 OCTET STRING ............................................21 7.1.3 OBJECT IDENTIFIER .......................................22 7.1.4 The BITS construct ......................................22 7.1.5 IpAddress ...............................................22 7.1.6 Counter32 ...............................................23 7.1.7 Gauge32 .................................................23 7.1.8 TimeTicks ...............................................24 7.1.9 Opaque ..................................................24 7.1.10 Counter64 ..............................................24 7.1.11 Unsigned32 .............................................25 7.1.12 Conceptual Tables ......................................25 7.1.12.1 Creation and Deletion of Conceptual Rows .............26 7.2 Mapping of the UNITS clause ...............................26 7.3 Mapping of the MAX-ACCESS clause ..........................26 7.4 Mapping of the STATUS clause ..............................27 7.5 Mapping of the DESCRIPTION clause .........................27 7.6 Mapping of the REFERENCE clause ...........................27 7.7 Mapping of the INDEX clause ...............................27 7.8 Mapping of the AUGMENTS clause ............................29 7.8.1 Relation between INDEX and AUGMENTS clauses .............30 7.9 Mapping of the DEFVAL clause ..............................30 7.10 Mapping of the OBJECT-TYPE value .........................31 7.11 Usage Example ............................................32
3.2 IMPORTing Symbols .........................................14 3.3 Exporting Symbols .........................................14 3.4 ASN.1 Comments ............................................14 3.5 OBJECT IDENTIFIER values ..................................15 3.6 OBJECT IDENTIFIER usage ...................................15 3.7 Reserved Keywords .........................................16 4 Naming Hierarchy ............................................16 5 Mapping of the MODULE-IDENTITY macro ........................17 5.1 Mapping of the LAST-UPDATED clause ........................17 5.2 Mapping of the ORGANIZATION clause ........................17 5.3 Mapping of the CONTACT-INFO clause ........................18 5.4 Mapping of the DESCRIPTION clause .........................18 5.5 Mapping of the REVISION clause ............................18 5.5.1 Mapping of the DESCRIPTION sub-clause ...................18 5.6 Mapping of the MODULE-IDENTITY value ......................18 5.7 Usage Example .............................................18 6 Mapping of the OBJECT-IDENTITY macro ........................19 6.1 Mapping of the STATUS clause ..............................19 6.2 Mapping of the DESCRIPTION clause .........................20 6.3 Mapping of the REFERENCE clause ...........................20 6.4 Mapping of the OBJECT-IDENTITY value ......................20 6.5 Usage Example .............................................20 7 Mapping of the OBJECT-TYPE macro ............................20 7.1 Mapping of the SYNTAX clause ..............................21 7.1.1 Integer32 and INTEGER ...................................21 7.1.2 OCTET STRING ............................................21 7.1.3 OBJECT IDENTIFIER .......................................22 7.1.4 The BITS construct ......................................22 7.1.5 IpAddress ...............................................22 7.1.6 Counter32 ...............................................23 7.1.7 Gauge32 .................................................23 7.1.8 TimeTicks ...............................................24 7.1.9 Opaque ..................................................24 7.1.10 Counter64 ..............................................24 7.1.11 Unsigned32 .............................................25 7.1.12 Conceptual Tables ......................................25 7.1.12.1 Creation and Deletion of Conceptual Rows .............26 7.2 Mapping of the UNITS clause ...............................26 7.3 Mapping of the MAX-ACCESS clause ..........................26 7.4 Mapping of the STATUS clause ..............................27 7.5 Mapping of the DESCRIPTION clause .........................27 7.6 Mapping of the REFERENCE clause ...........................27 7.7 Mapping of the INDEX clause ...............................27 7.8 Mapping of the AUGMENTS clause ............................29 7.8.1 Relation between INDEX and AUGMENTS clauses .............30 7.9 Mapping of the DEFVAL clause ..............................30 7.10 Mapping of the OBJECT-TYPE value .........................31 7.11 Usage Example ............................................32
8 Mapping of the NOTIFICATION-TYPE macro ......................34 8.1 Mapping of the OBJECTS clause .............................34 8.2 Mapping of the STATUS clause ..............................34 8.3 Mapping of the DESCRIPTION clause .........................35 8.4 Mapping of the REFERENCE clause ...........................35 8.5 Mapping of the NOTIFICATION-TYPE value ....................35 8.6 Usage Example .............................................35 9 Refined Syntax ..............................................36 10 Extending an Information Module ............................37 10.1 Object Assignments .......................................37 10.2 Object Definitions .......................................38 10.3 Notification Definitions .................................39 11 Appendix A: Detailed Sub-typing Rules ......................40 11.1 Syntax Rules .............................................40 11.2 Examples .................................................41 12 Security Considerations ....................................41 13 Editors' Addresses .........................................41 14 References .................................................42 15 Full Copyright Statement ...................................43
8 Mapping of the NOTIFICATION-TYPE macro ......................34 8.1 Mapping of the OBJECTS clause .............................34 8.2 Mapping of the STATUS clause ..............................34 8.3 Mapping of the DESCRIPTION clause .........................35 8.4 Mapping of the REFERENCE clause ...........................35 8.5 Mapping of the NOTIFICATION-TYPE value ....................35 8.6 Usage Example .............................................35 9 Refined Syntax ..............................................36 10 Extending an Information Module ............................37 10.1 Object Assignments .......................................37 10.2 Object Definitions .......................................38 10.3 Notification Definitions .................................39 11 Appendix A: Detailed Sub-typing Rules ......................40 11.1 Syntax Rules .............................................40 11.2 Examples .................................................41 12 Security Considerations ....................................41 13 Editors' Addresses .........................................41 14 References .................................................42 15 Full Copyright Statement ...................................43
Management information is viewed as a collection of managed objects, residing in a virtual information store, termed the Management Information Base (MIB). Collections of related objects are defined in MIB modules. These modules are written using an adapted subset of OSI's Abstract Syntax Notation One, ASN.1 (1988) [1]. It is the purpose of this document, the Structure of Management Information (SMI), to define that adapted subset, and to assign a set of associated administrative values.
管理信息被视为托管对象的集合,驻留在虚拟信息存储中,称为管理信息库(MIB)。相关对象的集合在MIB模块中定义。这些模块是使用OSI抽象语法符号1的一个子集ASN.1(1988)[1]编写的。本文件《管理信息结构》(SMI)的目的是定义适应的子集,并分配一组相关的管理值。
The SMI is divided into three parts: module definitions, object definitions, and, notification definitions.
SMI分为三个部分:模块定义、对象定义和通知定义。
(1) Module definitions are used when describing information modules. An ASN.1 macro, MODULE-IDENTITY, is used to concisely convey the semantics of an information module.
(1) 描述信息模块时使用模块定义。ASN.1宏MODULE-IDENTITY用于简洁地传达信息模块的语义。
(2) Object definitions are used when describing managed objects. An ASN.1 macro, OBJECT-TYPE, is used to concisely convey the syntax and semantics of a managed object.
(2) 描述托管对象时使用对象定义。ASN.1宏OBJECT-TYPE用于简洁地传达托管对象的语法和语义。
(3) Notification definitions are used when describing unsolicited transmissions of management information. An ASN.1 macro, NOTIFICATION-TYPE, is used to concisely convey the syntax and semantics of a notification.
(3) 通知定义用于描述管理信息的非请求传输。ASN.1宏NOTIFICATION-TYPE用于简洁地传达通知的语法和语义。
For the purpose of exposition, the original Structure of Management Information, as described in RFCs 1155 (STD 16), 1212 (STD 16), and RFC 1215, is termed the SMI version 1 (SMIv1). The current version of the Structure of Management Information is termed SMI version 2 (SMIv2).
为了便于说明,RFCs 1155(STD 16)、1212(STD 16)和RFC 1215中描述的管理信息的原始结构称为SMI版本1(SMIv1)。管理信息结构的当前版本称为SMI版本2(SMIv2)。
SNMPv2-SMI DEFINITIONS ::= BEGIN
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 }
org OBJECT IDENTIFIER ::= { iso 3 } -- "iso" = 1 dod OBJECT IDENTIFIER ::= { org 6 } internet OBJECT IDENTIFIER ::= { dod 1 }
directory OBJECT IDENTIFIER ::= { internet 1 }
directory OBJECT IDENTIFIER ::= { internet 1 }
mgmt OBJECT IDENTIFIER ::= { internet 2 } mib-2 OBJECT IDENTIFIER ::= { mgmt 1 } transmission OBJECT IDENTIFIER ::= { mib-2 10 }
mgmt OBJECT IDENTIFIER ::= { internet 2 } mib-2 OBJECT IDENTIFIER ::= { mgmt 1 } transmission OBJECT IDENTIFIER ::= { mib-2 10 }
experimental OBJECT IDENTIFIER ::= { internet 3 }
experimental OBJECT IDENTIFIER ::= { internet 3 }
private OBJECT IDENTIFIER ::= { internet 4 } enterprises OBJECT IDENTIFIER ::= { private 1 }
private OBJECT IDENTIFIER ::= { internet 4 } enterprises OBJECT IDENTIFIER ::= { private 1 }
security OBJECT IDENTIFIER ::= { internet 5 }
security OBJECT IDENTIFIER ::= { internet 5 }
snmpV2 OBJECT IDENTIFIER ::= { internet 6 }
snmpV2 OBJECT IDENTIFIER ::= { internet 6 }
-- transport domains snmpDomains OBJECT IDENTIFIER ::= { snmpV2 1 }
-- transport domains snmpDomains OBJECT IDENTIFIER ::= { snmpV2 1 }
-- transport proxies snmpProxys OBJECT IDENTIFIER ::= { snmpV2 2 }
-- transport proxies snmpProxys OBJECT IDENTIFIER ::= { snmpV2 2 }
-- module identities snmpModules OBJECT IDENTIFIER ::= { snmpV2 3 }
-- 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
-- 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.
-- 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
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)
VALUE NOTATION ::= value(VALUE OBJECT IDENTIFIER)
RevisionPart ::= Revisions | empty Revisions ::= Revision | Revisions Revision Revision ::= "REVISION" value(Update ExtUTCTime) "DESCRIPTION" Text
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
-- a character string as defined in section 3.1.1 Text ::= value(IA5String) END
OBJECT-IDENTITY MACRO ::= BEGIN TYPE NOTATION ::= "STATUS" Status "DESCRIPTION" Text
OBJECT-IDENTITY MACRO ::= BEGIN TYPE NOTATION ::= "STATUS" Status "DESCRIPTION" Text
ReferPart
参考部分
VALUE NOTATION ::= value(VALUE OBJECT IDENTIFIER)
VALUE NOTATION ::= value(VALUE OBJECT IDENTIFIER)
Status ::= "current" | "deprecated" | "obsolete"
Status ::= "current" | "deprecated" | "obsolete"
ReferPart ::= "REFERENCE" Text | empty
ReferPart ::= "REFERENCE" Text | empty
-- a character string as defined in section 3.1.1 Text ::= value(IA5String) END
-- 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.)
-- names of objects -- (Note that these definitions of ObjectName and NotificationName -- are not to be IMPORTed by MIB modules.)
ObjectName ::= OBJECT IDENTIFIER
ObjectName ::= OBJECT IDENTIFIER
NotificationName ::= 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
-- 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,
ObjectSyntax ::= CHOICE { simple SimpleSyntax,
-- note that SEQUENCEs for conceptual tables and -- rows are not mentioned here...
-- note that SEQUENCEs for conceptual tables and -- rows are not mentioned here...
application-wide ApplicationSyntax }
应用程序范围的ApplicationSyntax}
-- built-in ASN.1 types
--内置ASN.1类型
SimpleSyntax ::= CHOICE { -- INTEGERs with a more restrictive range -- may also be used integer-value -- includes Integer32 INTEGER (-2147483648..2147483647),
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)),
-- OCTET STRINGs with a more restrictive size -- may also be used string-value OCTET STRING (SIZE (0..65535)),
objectID-value OBJECT IDENTIFIER }
objectID值对象标识符}
-- indistinguishable from INTEGER, but never needs more than -- 32-bits for a two's complement representation Integer32 ::= INTEGER (-2147483648..2147483647)
-- 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,
ApplicationSyntax ::= CHOICE { ipAddress-value IpAddress,
counter-value Counter32,
计数器值计数器32,
timeticks-value TimeTicks,
timeticks值timeticks,
arbitrary-value Opaque,
任意值不透明,
big-counter-value Counter64,
大计数器值计数器64,
unsigned-integer-value -- includes Gauge32 Unsigned32 }
无符号整数值--包括Gauge32无符号32}
-- in network-byte order
--按网络字节顺序
-- (this is a tagged type for historical reasons) IpAddress ::= [APPLICATION 0] IMPLICIT OCTET STRING (SIZE (4))
-- (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 wraps Counter32 ::= [APPLICATION 1] IMPLICIT INTEGER (0..4294967295)
-- this doesn't wrap Gauge32 ::= [APPLICATION 2] 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)
-- 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)
-- hundredths of seconds since an epoch TimeTicks ::= [APPLICATION 3] IMPLICIT INTEGER (0..4294967295)
-- for backward-compatibility only Opaque ::= [APPLICATION 4] IMPLICIT OCTET STRING
-- 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)
-- 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
OBJECT-TYPE MACRO ::= BEGIN TYPE NOTATION ::= "SYNTAX" Syntax UnitsPart "MAX-ACCESS" Access "STATUS" Status "DESCRIPTION" Text ReferPart
IndexPart DefValPart
IndexPart DefValPart
VALUE NOTATION ::= value(VALUE ObjectName)
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 "}"
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
NamedBits ::= NamedBit | NamedBits "," NamedBit
NamedBit ::= identifier "(" number ")" -- number is nonnegative
NamedBit ::= identifier "(" number ")" -- number is nonnegative
UnitsPart ::= "UNITS" Text | empty
UnitsPart ::= "UNITS" Text | empty
Access ::= "not-accessible" | "accessible-for-notify" | "read-only" | "read-write" | "read-create"
Access ::= "not-accessible" | "accessible-for-notify" | "read-only" | "read-write" | "read-create"
Status ::= "current" | "deprecated" | "obsolete"
Status ::= "current" | "deprecated" | "obsolete"
ReferPart ::= "REFERENCE" Text | empty
ReferPart ::= "REFERENCE" Text | empty
IndexPart ::= "INDEX" "{" IndexTypes "}" | "AUGMENTS" "{" Entry "}" | empty IndexTypes ::= IndexType | IndexTypes "," IndexType IndexType ::= "IMPLIED" Index | Index
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)
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
DefValPart ::= "DEFVAL" "{" Defvalue "}" | empty
Defvalue ::= -- must be valid for the type specified in -- SYNTAX clause of same OBJECT-TYPE macro value(ObjectSyntax) | "{" BitsValue "}"
Defvalue ::= -- must be valid for the type specified in -- SYNTAX clause of same OBJECT-TYPE macro value(ObjectSyntax) | "{" BitsValue "}"
BitsValue ::= BitNames | empty
BitsValue ::= BitNames | empty
BitNames ::= BitName | BitNames "," BitName
BitNames ::= BitName | BitNames "," BitName
BitName ::= identifier
BitName ::= identifier
-- a character string as defined in section 3.1.1 Text ::= value(IA5String) END
-- 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
NOTIFICATION-TYPE MACRO ::= BEGIN TYPE NOTATION ::= ObjectsPart "STATUS" Status "DESCRIPTION" Text ReferPart
VALUE NOTATION ::= value(VALUE NotificationName)
VALUE NOTATION ::= value(VALUE NotificationName)
ObjectsPart ::= "OBJECTS" "{" Objects "}" | empty Objects ::= Object
ObjectsPart ::= "OBJECTS" "{" Objects "}" | empty Objects ::= Object
| Objects "," Object Object ::= value(ObjectName)
| Objects "," Object Object ::= value(ObjectName)
Status ::= "current" | "deprecated" | "obsolete"
Status ::= "current" | "deprecated" | "obsolete"
ReferPart ::= "REFERENCE" Text | empty
ReferPart ::= "REFERENCE" Text | empty
-- a character string as defined in section 3.1.1 Text ::= value(IA5String) END
-- 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 }
zeroDotZero OBJECT-IDENTITY STATUS current DESCRIPTION "A value used for null identifiers." ::= { 0 0 }
END
终止
An "information module" is an ASN.1 module defining information relating to network management.
“信息模块”是定义网络管理相关信息的ASN.1模块。
The SMI describes how to use an adapted subset of ASN.1 (1988) 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.
SMI描述了如何使用ASN.1(1988)的一个子集定义信息模块。此外,还对“标准”信息模块施加了其他限制。强烈建议“企业特定”信息模块也遵守这些限制。
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;
(1) MIB模块包含相互关联的托管对象的定义,使用对象类型宏和通知类型宏;
(2) compliance statements for MIB modules, which make use of the MODULE-COMPLIANCE and OBJECT-GROUP macros [2]; and,
(2) MIB模块的符合性声明,使用模块符合性和对象组宏[2];和
(3) capability statements for agent implementations which make use of the AGENT-CAPABILITIES macros [2].
(3) 使用agent-CAPABILITIES宏的agent实现的capability语句[2]。
This classification scheme does not imply a rigid taxonomy. For example, a "standard" information module will normally 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.
这种分类方案并不意味着严格的分类法。例如,“标准”信息模块通常包括托管对象的定义和符合性声明。类似地,“特定于企业”的信息模块可能包括托管对象的定义和功能语句。当然,“标准”信息模块可能不包含功能语句。
The constructs of ASN.1 allowed in SMIv2 information modules include: the IMPORTS clause, value definitions for OBJECT IDENTIFIERs, type definitions for SEQUENCEs (with restrictions), ASN.1 type assignments of the restricted ASN.1 types allowed in SMIv2, and instances of ASN.1 macros defined in this document and its companion documents [2, 3]. Additional ASN.1 macros must not be defined in SMIv2 information modules. SMIv1 macros must not be used in SMIv2 information modules.
SMIv2信息模块中允许的ASN.1结构包括:IMPORTS子句、对象标识符的值定义、序列的类型定义(带限制)、SMIv2中允许的受限ASN.1类型的ASN.1类型分配,以及本文档及其配套文档中定义的ASN.1宏的实例[2,3]。SMIv2信息模块中不得定义其他ASN.1宏。SMIv2信息模块中不得使用SMIv1宏。
The names of all standard information modules must be unique (but different versions of the same information module should have the same name). Developers of enterprise information modules are encouraged to choose names for their information modules that will have a low probability of colliding with standard or other enterprise information modules. An information module may not use the ASN.1 construct of placing an object identifier value between the module name and the "DEFINITIONS" keyword. For the purposes of this specification, an ASN.1 module name begins with an upper-case letter and continues with zero or more letters, digits, or hyphens, except that a hyphen can not be the last character, nor can there be two consecutive hyphens.
所有标准信息模块的名称必须唯一(但同一信息模块的不同版本应具有相同的名称)。鼓励企业信息模块的开发人员为其信息模块选择与标准或其他企业信息模块发生冲突的可能性较低的名称。信息模块不能使用ASN.1构造,即在模块名称和“定义”关键字之间放置对象标识符值。在本规范中,ASN.1模块名称以大写字母开头,并以零个或多个字母、数字或连字符结尾,但连字符不能是最后一个字符,也不能有两个连续的连字符。
All information modules start with exactly one invocation of the MODULE-IDENTITY macro, which provides contact information as well as revision history to distinguish between versions of the same information module. This invocation must appear immediately after any IMPORTs statements.
所有信息模块都从MODULE-IDENTITY宏的一次调用开始,该宏提供联系信息和修订历史,以区分同一信息模块的版本。此调用必须在任何IMPORTs语句之后立即出现。
Within an information module, each macro invocation appears as:
在信息模块中,每个宏调用显示为:
<descriptor> <macro> <clauses> ::= <value>
<descriptor> <macro> <clauses> ::= <value>
where <descriptor> corresponds to an ASN.1 identifier, <macro> names the macro being invoked, and <clauses> and <value> depend on the definition of the macro. (Note that this definition of a descriptor applies to all macros defined in this memo and in [2].)
其中<descriptor>对应于ASN.1标识符,<macro>命名被调用的宏,<子句>和<value>取决于宏的定义。(请注意,描述符的定义适用于本备忘录和[2]中定义的所有宏。)
For the purposes of this specification, an ASN.1 identifier consists of one or more letters or digits, and its initial character must be a lower-case letter. Note that hyphens are not allowed by this specification (except for use by information modules converted from SMIv1 which did allow hyphens).
就本规范而言,ASN.1标识符由一个或多个字母或数字组成,其初始字符必须为小写字母。请注意,本规范不允许使用连字符(SMIv1转换的信息模块不允许使用连字符)。
For all descriptors appearing in an information module, the descriptor shall be unique and mnemonic, and shall not exceed 64 characters in length. (However, descriptors longer than 32 characters are not recommended.) This promotes a common language for humans to use when discussing the information module and also facilitates simple table mappings for user-interfaces.
对于出现在信息模块中的所有描述符,描述符应是唯一的和助记的,长度不得超过64个字符。(但是,不建议使用长度超过32个字符的描述符。)这为人们在讨论信息模块时提供了一种通用语言,并有助于用户界面的简单表映射。
The set of descriptors defined in all "standard" information modules shall be unique.
所有“标准”信息模块中定义的描述符集应是唯一的。
Finally, by convention, if the descriptor refers to an object with a SYNTAX clause value of either Counter32 or Counter64, then the descriptor used for the object should denote plurality.
最后,按照惯例,如果描述符引用的对象的语法子句值为Counter32或Counter64,则用于该对象的描述符应表示复数。
Some clauses in a macro invocation may take a character string as a textual value (e.g., the DESCRIPTION clause). Other clauses take binary or hexadecimal strings (in any position where a non-negative number is allowed).
宏调用中的某些子句可能将字符串作为文本值(例如,DESCRIPTION子句)。其他子句采用二进制或十六进制字符串(在允许非负数的任何位置)。
A character string is preceded and followed by the quote character ("), and consists of an arbitrary number (possibly zero) of:
字符串前跟引号字符(“),由以下任意数(可能为零)组成:
- any 7-bit displayable ASCII characters except quote ("), - tab characters, - spaces, and - line terminator characters (\n or \r\n).
- 除引号(“)、-制表符、-空格和-行终止符(\n或\r\n)以外的任何7位可显示ASCII字符。
The value of a character string is interpreted as ASCII.
字符串的值被解释为ASCII。
A binary string consists of a number (possibly zero) of zeros and ones preceded by a single (') and followed by either the pair ('B) or ('b), where the number is a multiple of eight.
二进制字符串由一个数字(可能是零)和一个数字组成,前面是一个('),后面是一对('B)或('B),其中数字是8的倍数。
A hexadecimal string consists of an even number (possibly zero) of hexadecimal digits, preceded by a single (') and followed by either the pair ('H) or ('h). Digits specified via letters can be in upper or lower case.
十六进制字符串由偶数(可能为零)个十六进制数字组成,前面是一个('),后面是一对('H)或('H)。通过字母指定的数字可以是大写或小写。
Note that ASN.1 comments can not be enclosed inside any of these types of strings.
请注意,ASN.1注释不能包含在这些类型的字符串中。
To reference an external object, the IMPORTS statement must be used to identify both the descriptor and the module in which the descriptor is defined, where the module is identified by its ASN.1 module name.
要引用外部对象,必须使用IMPORTS语句来标识描述符和定义描述符的模块,其中模块由其ASN.1模块名称标识。
Note that when symbols from "enterprise-specific" information modules are referenced (e.g., a descriptor), there is the possibility of collision. As such, if different objects with the same descriptor are IMPORTed, then this ambiguity is resolved by prefixing the descriptor with the name of the information module and a dot ("."), i.e.,
请注意,当引用“企业特定”信息模块中的符号(例如描述符)时,可能会发生冲突。同样,如果导入了具有相同描述符的不同对象,则通过在描述符前面加上信息模块名称和一个点(“.”),即。,
"module.descriptor"
“模块描述符”
(All descriptors must be unique within any information module.)
(所有描述符在任何信息模块中都必须是唯一的。)
Of course, this notation can be used to refer to objects even when there is no collision when IMPORTing symbols.
当然,即使在导入符号时没有冲突,也可以使用此符号来引用对象。
Finally, if any of the ASN.1 named types and macros defined in this document, specifically:
最后,如果本文档中定义了任何ASN.1命名类型和宏,特别是:
Counter32, Counter64, Gauge32, Integer32, IpAddress, MODULE-IDENTITY, NOTIFICATION-TYPE, Opaque, OBJECT-TYPE, OBJECT-IDENTITY, TimeTicks, Unsigned32,
计数器32、计数器64、仪表32、整数32、IP地址、模块标识、通知类型、不透明、对象类型、对象标识、时间刻度、无符号32、,
or any of those defined in [2] or [3], are used in an information module, then they must be imported using the IMPORTS statement. However, the following must not be included in an IMPORTS statement:
或者在信息模块中使用[2]或[3]中定义的任何内容,则必须使用IMPORTS语句导入这些内容。但是,进口声明中不得包含以下内容:
- named types defined by ASN.1 itself, specifically: INTEGER, OCTET STRING, OBJECT IDENTIFIER, SEQUENCE, SEQUENCE OF type, - the BITS construct.
- 由ASN.1本身定义的命名类型,特别是:整数、八位字符串、对象标识符、序列、类型序列,-位构造。
The ASN.1 EXPORTS statement is not allowed in SMIv2 information modules. All items defined in an information module are automatically exported.
SMIv2信息模块中不允许使用ASN.1 EXPORTS语句。信息模块中定义的所有项目都将自动导出。
ASN.1 comments can be included in an information module. However, it is recommended that all substantive descriptions be placed within an appropriate DESCRIPTION clause.
ASN.1注释可包含在信息模块中。但是,建议将所有实质性说明放在适当的说明条款内。
ASN.1 comments commence with a pair of adjacent hyphens and end with the next pair of adjacent hyphens or at the end of the line, whichever occurs first. Comments ended by a pair of hyphens have the effect of a single space character.
ASN.1注释以一对相邻连字符开始,以下一对相邻连字符结束,或在行的末尾结束,以先到者为准。以一对连字符结尾的注释具有单个空格字符的效果。
An OBJECT IDENTIFIER value is an ordered list of non-negative numbers. For the SMIv2, each number in the list is referred to as a sub-identifier, there are at most 128 sub-identifiers in a value, and each sub-identifier has a maximum value of 2^32-1 (4294967295 decimal).
对象标识符值是非负数的有序列表。对于SMIv2,列表中的每个数字都称为子标识符,一个值中最多有128个子标识符,每个子标识符的最大值为2^32-1(4294967295十进制)。
All OBJECT IDENTIFIER values have at least two sub-identifiers, where the value of the first sub-identifier is one of the following well-known names:
所有对象标识符值具有至少两个子标识符,其中第一个子标识符的值是以下众所周知的名称之一:
Value Name 0 ccitt 1 iso 2 joint-iso-ccitt
值名称0 ccitt 1 iso 2联合iso ccitt
(Note that this SMI does not recognize "new" well-known names, e.g., as defined when the CCITT became the ITU.)
(请注意,本SMI不识别“新”的知名名称,例如CCITT成为ITU时定义的名称。)
OBJECT IDENTIFIERs are used in information modules in two ways:
对象标识符以两种方式在信息模块中使用:
(1) registration: the definition of a particular item is registered as a particular OBJECT IDENTIFIER value, and associated with a particular descriptor. After such a registration, the semantics thereby associated with the value are not allowed to change, the OBJECT IDENTIFIER can not be used for any other registration, and the descriptor can not be changed nor associated with any other registration. The following macros result in a registration:
(1) 注册:将特定项的定义注册为特定对象标识符值,并与特定描述符关联。在这样的注册之后,由此与值关联的语义不允许改变,对象标识符不能用于任何其他注册,描述符不能改变,也不能与任何其他注册关联。以下宏将导致注册:
OBJECT-TYPE, MODULE-IDENTITY, NOTIFICATION-TYPE, OBJECT-GROUP, OBJECT-IDENTITY, NOTIFICATION-GROUP, MODULE-COMPLIANCE, AGENT-CAPABILITIES.
对象类型、模块标识、通知类型、对象组、对象标识、通知组、模块合规性、代理功能。
(2) assignment: a descriptor can be assigned to a particular OBJECT IDENTIFIER value. For this usage, the semantics associated with the OBJECT IDENTIFIER value is not allowed to change, and a descriptor assigned to a particular OBJECT IDENTIFIER value cannot subsequently be assigned to another. However, multiple descriptors can be assigned to the same OBJECT IDENTIFIER value. Such assignments are specified in the following manner:
(2) 赋值:可以将描述符赋值给特定的对象标识符值。对于这种用法,不允许更改与对象标识符值关联的语义,并且分配给特定对象标识符值的描述符随后不能分配给另一个。但是,可以将多个描述符分配给同一对象标识符值。此类转让按以下方式规定:
mib OBJECT IDENTIFIER ::= { mgmt 1 } -- from RFC1156 mib-2 OBJECT IDENTIFIER ::= { mgmt 1 } -- from RFC1213 fredRouter OBJECT IDENTIFIER ::= { flintStones 1 1 } barneySwitch OBJECT IDENTIFIER ::= { flintStones bedrock(2) 1 }
mib OBJECT IDENTIFIER ::= { mgmt 1 } -- from RFC1156 mib-2 OBJECT IDENTIFIER ::= { mgmt 1 } -- from RFC1213 fredRouter OBJECT IDENTIFIER ::= { flintStones 1 1 } barneySwitch OBJECT IDENTIFIER ::= { flintStones bedrock(2) 1 }
Note while the above examples are legal, the following is not:
注:虽然上述示例是合法的,但以下示例不合法:
dinoHost OBJECT IDENTIFIER ::= { flintStones bedrock 2 }
dinoHost OBJECT IDENTIFIER ::= { flintStones bedrock 2 }
A descriptor is allowed to be associated with both a registration and an assignment, providing both are associated with the same OBJECT IDENTIFIER value and semantics.
允许描述符同时与注册和赋值相关联,前提是两者都与相同的对象标识符值和语义相关联。
The following are reserved keywords which must not be used as descriptors or module names:
以下是保留关键字,不得用作描述符或模块名称:
ABSENT ACCESS AGENT-CAPABILITIES ANY APPLICATION AUGMENTS BEGIN BIT BITS BOOLEAN BY CHOICE COMPONENT COMPONENTS CONTACT-INFO CREATION-REQUIRES Counter32 Counter64 DEFAULT DEFINED DEFINITIONS DEFVAL DESCRIPTION DISPLAY-HINT END ENUMERATED ENTERPRISE EXPLICIT EXPORTS EXTERNAL FALSE FROM GROUP Gauge32 IDENTIFIER IMPLICIT IMPLIED IMPORTS INCLUDES INDEX INTEGER Integer32 IpAddress LAST-UPDATED MANDATORY-GROUPS MAX MAX-ACCESS MIN MIN-ACCESS MINUS-INFINITY MODULE MODULE-COMPLIANCE MODULE-IDENTITY NOTIFICATION-GROUP NOTIFICATION-TYPE NOTIFICATIONS NULL OBJECT OBJECT-GROUP OBJECT-IDENTITY OBJECT-TYPE OBJECTS OCTET OF OPTIONAL ORGANIZATION Opaque PLUS-INFINITY PRESENT PRIVATE PRODUCT-RELEASE REAL REFERENCE REVISION SEQUENCE SET SIZE STATUS STRING SUPPORTS SYNTAX TAGS TEXTUAL-CONVENTION TRAP-TYPE TRUE TimeTicks UNITS UNIVERSAL Unsigned32 VARIABLES VARIATION WITH WRITE-SYNTAX
缺少访问代理-功能任何应用程序增加开始位位布尔值按选择组件组件联系信息创建-需要计数器32计数器64默认定义定义定义描述显示提示结束枚举企业显式导出外部错误组量表32标识符隐式隐式导入包括INDEX INTEGER Integer32 IpAddress上次更新的强制-GROUPS MAX-ACCESS MIN MIN MIN-ACCESS减无穷大模块模块合规模块标识通知组通知类型通知空对象对象组对象标识对象类型对象可选组织的八位字节不透明加无穷大当前私有产品发布REAL REFERENCE REVISION SEQUENCE SET SIZE STATUS STRING支持语法标记文本约定陷阱类型TRUE TimeTicks UNITS通用无符号32变量随写语法的变化
The root of the subtree administered by the Internet Assigned Numbers Authority (IANA) for the Internet is:
互联网分配号码管理局(IANA)为互联网管理的子树根为:
internet OBJECT IDENTIFIER ::= { iso 3 6 1 }
internet OBJECT IDENTIFIER ::= { iso 3 6 1 }
That is, the Internet subtree of OBJECT IDENTIFIERs starts with the prefix:
也就是说,对象标识符的Internet子树以前缀开头:
1.3.6.1.
1.3.6.1.
Several branches underneath this subtree are used for network management:
此子树下的几个分支用于网络管理:
mgmt OBJECT IDENTIFIER ::= { internet 2 } experimental OBJECT IDENTIFIER ::= { internet 3 } private OBJECT IDENTIFIER ::= { internet 4 } enterprises OBJECT IDENTIFIER ::= { private 1 }
mgmt OBJECT IDENTIFIER ::= { internet 2 } experimental OBJECT IDENTIFIER ::= { internet 3 } private OBJECT IDENTIFIER ::= { internet 4 } enterprises OBJECT IDENTIFIER ::= { private 1 }
However, the SMI does not prohibit the definition of objects in other portions of the object tree.
但是,SMI并不禁止在对象树的其他部分中定义对象。
The mgmt(2) subtree is used to identify "standard" objects.
mgmt(2)子树用于识别“标准”对象。
The experimental(3) subtree is used to identify objects being designed by working groups of the IETF. If an information module produced by a working group becomes a "standard" information module, then at the very beginning of its entry onto the Internet standards track, the objects are moved under the mgmt(2) subtree.
实验(3)子树用于识别IETF工作组设计的对象。如果工作组生成的信息模块成为“标准”信息模块,则在其进入互联网标准轨道的一开始,对象将在mgmt(2)子树下移动。
The private(4) subtree is used to identify objects defined unilaterally. The enterprises(1) subtree beneath private is used, among other things, to permit providers of networking subsystems to register models of their products.
私有(4)子树用于标识单方面定义的对象。private下面的enterprises(1)子树用于允许网络子系统的提供者注册其产品的模型。
The MODULE-IDENTITY macro is used to provide contact and revision history for each information module. It must appear exactly once in every information module. It should be noted that the expansion of the MODULE-IDENTITY macro is something which conceptually happens during implementation and not during run-time.
MODULE-IDENTITY宏用于为每个信息模块提供联系和修订历史记录。它必须在每个信息模块中出现一次。应该注意的是,MODULE-IDENTITY宏的扩展在概念上是在实现过程中发生的,而不是在运行时发生的。
Note that reference in an IMPORTS clause or in clauses of SMIv2 macros to an information module is NOT through the use of the 'descriptor' of a MODULE-IDENTITY macro; rather, an information module is referenced through specifying its module name.
请注意,IMPORTS子句或SMIv2宏的子句中对信息模块的引用不是通过使用module-IDENTITY宏的“描述符”;相反,信息模块是通过指定其模块名来引用的。
The LAST-UPDATED clause, which must be present, contains the date and time that this information module was last edited.
LAST-UPDATED子句(必须存在)包含上次编辑此信息模块的日期和时间。
The ORGANIZATION clause, which must be present, contains a textual description of the organization under whose auspices this information module was developed.
必须存在的ORGANIZATION子句包含开发此信息模块所依据的组织的文本描述。
The CONTACT-INFO clause, which must be present, contains the name, postal address, telephone number, and electronic mail address of the person to whom technical queries concerning this information module should be sent.
联系人信息条款(必须存在)包含应向其发送有关此信息模块的技术查询的人员的姓名、邮政地址、电话号码和电子邮件地址。
The DESCRIPTION clause, which must be present, contains a high-level textual description of the contents of this information module.
必须存在的DESCRIPTION子句包含此信息模块内容的高级文本描述。
The REVISION clause, which need not be present, is repeatedly used to describe the revisions (including the initial version) made to this information module, in reverse chronological order (i.e., most recent first). Each instance of this clause contains the date and time of the revision.
修订条款(无需出现)重复用于描述对本信息模块所做的修订(包括初始版本),按时间倒序(即最新版本)。本条款的每个实例都包含修订日期和时间。
The DESCRIPTION sub-clause, which must be present for each REVISION clause, contains a high-level textual description of the revision identified in that REVISION clause.
“说明”子条款必须为每个修订条款提供,包含该修订条款中确定的修订的高级文本说明。
The value of an invocation of the MODULE-IDENTITY macro is an OBJECT IDENTIFIER. As such, this value may be authoritatively used when specifying an OBJECT IDENTIFIER value to refer to the information module containing the invocation.
MODULE-IDENTITY宏调用的值是对象标识符。因此,当指定对象标识符值以引用包含调用的信息模块时,可以授权使用该值。
Note that it is a common practice to use the value of the MODULE-IDENTITY macro as a subtree under which other OBJECT IDENTIFIER values assigned within the module are defined. However, it is legal (and occasionally necessary) for the other OBJECT IDENTIFIER values assigned within the module to be unrelated to the OBJECT IDENTIFIER value of the MODULE-IDENTITY macro.
请注意,通常使用MODULE-IDENTITY宏的值作为子树,在子树下定义模块内分配的其他对象标识符值。但是,在模块内分配的其他对象标识符值与module-IDENTITY宏的对象标识符值无关是合法的(有时也是必要的)。
Consider how a skeletal MIB module might be constructed: e.g.,
考虑如何构建一个骨架MIB模块:
FIZBIN-MIB DEFINITIONS ::= BEGIN
FIZBIN-MIB DEFINITIONS ::= BEGIN
IMPORTS MODULE-IDENTITY, OBJECT-TYPE, experimental
导入模块标识、对象类型、实验
FROM SNMPv2-SMI;
来自SNMPv2 SMI;
fizbin MODULE-IDENTITY LAST-UPDATED "199505241811Z" ORGANIZATION "IETF SNMPv2 Working Group" CONTACT-INFO " Marshall T. Rose
fizbin模块标识最后更新“199505241811Z”组织“IETF SNMPv2工作组”联系方式“Marshall T.Rose
Postal: Dover Beach Consulting, Inc. 420 Whisman Court Mountain View, CA 94043-2186 US
邮寄:多佛海滩咨询公司,地址:美国加利福尼亚州惠斯曼阁山景城420号,邮编:94043-2186
Tel: +1 415 968 1052 Fax: +1 415 968 2510
Tel: +1 415 968 1052 Fax: +1 415 968 2510
E-mail: mrose@dbc.mtview.ca.us"
电邮:mrose@dbc.mtview.ca.us"
DESCRIPTION "The MIB module for entities implementing the xxxx protocol." REVISION "9505241811Z" DESCRIPTION "The latest version of this MIB module." REVISION "9210070433Z" DESCRIPTION "The initial version of this MIB module, published in RFC yyyy." -- contact IANA for actual number ::= { experimental xx }
DESCRIPTION "The MIB module for entities implementing the xxxx protocol." REVISION "9505241811Z" DESCRIPTION "The latest version of this MIB module." REVISION "9210070433Z" DESCRIPTION "The initial version of this MIB module, published in RFC yyyy." -- contact IANA for actual number ::= { experimental xx }
END
终止
The OBJECT-IDENTITY macro is used to define information about an OBJECT IDENTIFIER assignment. All administrative OBJECT IDENTIFIER assignments which define a type identification value (see AutonomousType, a textual convention defined in [3]) should be defined via the OBJECT-IDENTITY macro. It should be noted that the expansion of the OBJECT-IDENTITY macro is something which conceptually happens during implementation and not during run-time.
OBJECT-IDENTITY宏用于定义有关对象标识符分配的信息。所有定义类型标识值的管理对象标识符分配(参见[3]中定义的文本约定AutonomousType)都应通过OBJECT-IDENTITY宏定义。应该注意,对象标识宏的扩展在概念上是在实现过程中发生的,而不是在运行时发生的。
The STATUS clause, which must be present, indicates whether this definition is current or historic.
STATUS子句(必须存在)指示此定义是当前定义还是历史定义。
The value "current" means that the definition is current and valid. The value "obsolete" means the definition is obsolete and should not be implemented and/or can be removed if previously implemented. While the value "deprecated" also indicates an obsolete definition, it permits new/continued implementation in order to foster interoperability with older/existing implementations.
值“current”表示该定义是当前有效的。值“过时”表示该定义已过时,不应实施和/或在以前实施的情况下可以删除。虽然值“deprecated”也表示过时的定义,但它允许新的/继续的实现,以促进与旧的/现有的实现的互操作性。
The DESCRIPTION clause, which must be present, contains a textual description of the object assignment.
必须存在的DESCRIPTION子句包含对象赋值的文本描述。
The REFERENCE clause, which need not be present, contains a textual cross-reference to some other document, either another information module which defines a related assignment, or some other document which provides additional information relevant to this definition.
REFERENCE子句不需要出现,它包含对其他文档的文本交叉引用,或者是对定义相关分配的其他信息模块的文本交叉引用,或者是对提供与此定义相关的附加信息的其他文档的文本交叉引用。
The value of an invocation of the OBJECT-IDENTITY macro is an OBJECT IDENTIFIER.
调用OBJECT-IDENTITY宏的值是对象标识符。
Consider how an OBJECT IDENTIFIER assignment might be made: e.g.,
考虑如何创建对象标识符分配:例如,
fizbin69 OBJECT-IDENTITY STATUS current DESCRIPTION "The authoritative identity of the Fizbin 69 chipset." ::= { fizbinChipSets 1 }
fizbin69 OBJECT-IDENTITY STATUS current DESCRIPTION "The authoritative identity of the Fizbin 69 chipset." ::= { fizbinChipSets 1 }
The OBJECT-TYPE macro is used to define a type of managed object. It should be noted that the expansion of the OBJECT-TYPE macro is something which conceptually happens during implementation and not during run-time.
OBJECT-TYPE宏用于定义托管对象的类型。应该注意,对象类型宏的扩展在概念上是在实现过程中发生的,而不是在运行时发生的。
For leaf objects which are not columnar objects (i.e., not contained within a conceptual table), instances of the object are identified by appending a sub-identifier of zero to the name of that object. Otherwise, the INDEX clause of the conceptual row object superior to a columnar object defines instance identification information.
对于不是柱状对象(即,不包含在概念表中)的叶对象,通过在该对象的名称后面附加零的子标识符来标识该对象的实例。否则,概念行对象的INDEX子句(优于列对象)将定义实例标识信息。
The SYNTAX clause, which must be present, defines the abstract data structure corresponding to that object. The data structure must be one of the following: a base type, the BITS construct, or a textual convention. (SEQUENCE OF and SEQUENCE are also possible for conceptual tables, see section 7.1.12). The base types are those defined in the ObjectSyntax CHOICE. A textual convention is a newly-defined type defined as a sub-type of a base type [3].
必须存在的SYNTAX子句定义了与该对象对应的抽象数据结构。数据结构必须是以下之一:基类型、位构造或文本约定。(概念表也可采用顺序和顺序,见第7.1.12节)。基本类型是在ObjectSyntax选项中定义的类型。文本约定是新定义的类型,定义为基类型的子类型[3]。
An extended subset of the full capabilities of ASN.1 (1988) sub-typing is allowed, as appropriate to the underlying ASN.1 type. Any such restriction on size, range or enumerations specified in this clause represents the maximal level of support which makes "protocol sense". Restrictions on sub-typing are specified in detail in Section 9 and Appendix A of this memo.
ASN.1(1988)子类型的完整功能的扩展子集是允许的,适用于基础ASN.1类型。本条款中规定的对大小、范围或枚举数的任何此类限制表示具有“协议意义”的最大支持级别。本备忘录第9节和附录A详细规定了子类型的限制。
The semantics of ObjectSyntax are now described.
现在描述了ObjectSyntax的语义。
The Integer32 type represents integer-valued information between -2^31 and 2^31-1 inclusive (-2147483648 to 2147483647 decimal). This type is indistinguishable from the INTEGER type. Both the INTEGER and Integer32 types may be sub-typed to be more constrained than the Integer32 type.
Integer32类型表示介于-2^31和2^31-1(含)之间的整数值信息(-2147483648到2147483647十进制)。此类型与整数类型无法区分。INTEGER和Integer32类型都可以是比Integer32类型更受约束的子类型。
The INTEGER type (but not the Integer32 type) may also be used to represent integer-valued information as named-number enumerations. In this case, only those named-numbers so enumerated may be present as a value. Note that although it is recommended that enumerated values start at 1 and be numbered contiguously, any valid value for Integer32 is allowed for an enumerated value and, further, enumerated values needn't be contiguously assigned.
整数类型(但不是Integer32类型)也可用于将整数值信息表示为命名数字枚举。在这种情况下,只有这样枚举的命名数字可以作为值出现。请注意,尽管建议枚举值从1开始并连续编号,但枚举值允许使用整数32的任何有效值,而且不需要连续分配枚举值。
Finally, a label for a named-number enumeration must consist of one or more letters or digits, up to a maximum of 64 characters, and the initial character must be a lower-case letter. (However, labels longer than 32 characters are not recommended.) Note that hyphens are not allowed by this specification (except for use by information modules converted from SMIv1 which did allow hyphens).
最后,命名数字枚举的标签必须由一个或多个字母或数字组成,最多64个字符,且初始字符必须是小写字母。(但是,不建议使用长度超过32个字符的标签。)请注意,本规范不允许使用连字符(从SMIv1转换而来的信息模块不允许使用连字符)。
The OCTET STRING type represents arbitrary binary or textual data. Although the SMI-specified size limitation for this type is 65535 octets, MIB designers should realize that there may be implementation and interoperability limitations for sizes in excess of 255 octets.
八进制字符串类型表示任意二进制或文本数据。尽管SMI指定的这种类型的大小限制是65535个八位字节,但MIB设计者应该意识到,对于超过255个八位字节的大小,可能存在实现和互操作性限制。
The OBJECT IDENTIFIER type represents administratively assigned names. Any instance of this type may have at most 128 sub-identifiers. Further, each sub-identifier must not exceed the value 2^32-1 (4294967295 decimal).
对象标识符类型表示管理分配的名称。此类型的任何实例最多可以有128个子标识符。此外,每个子标识符不得超过值2^32-1(4294967295十进制)。
The BITS construct represents an enumeration of named bits. This collection is assigned non-negative, contiguous (but see below) values, starting at zero. Only those named-bits so enumerated may be present in a value. (Thus, enumerations must be assigned to consecutive bits; however, see Section 9 for refinements of an object with this syntax.)
BITS构造表示命名位的枚举。此集合从零开始分配非负连续(但请参见下文)值。值中只能存在这样枚举的命名位。(因此,枚举必须分配给连续位;但是,有关使用此语法的对象的详细信息,请参见第9节。)
As part of updating an information module, for an object defined using the BITS construct, new enumerations can be added or existing enumerations can have new labels assigned to them. After an enumeration is added, it might not be possible to distinguish between an implementation of the updated object for which the new enumeration is not asserted, and an implementation of the object prior to the addition. Depending on the circumstances, such an ambiguity could either be desirable or could be undesirable. The means to avoid such an ambiguity is dependent on the encoding of values on the wire; however, one possibility is to define new enumerations starting at the next multiple of eight bits. (Of course, this can also result in the enumerations no longer being contiguous.)
作为更新信息模块的一部分,对于使用BITS构造定义的对象,可以添加新枚举,或者可以为现有枚举分配新标签。添加枚举后,可能无法区分未声明新枚举的更新对象的实现和添加之前的对象实现。视情况而定,这种模糊性可能是可取的,也可能是不可取的。避免这种歧义的方法取决于导线上值的编码;然而,一种可能性是从下一个8位的倍数开始定义新的枚举。(当然,这也会导致枚举不再连续。)
Although there is no SMI-specified limitation on the number of enumerations (and therefore on the length of a value), except as may be imposed by the limit on the length of an OCTET STRING, MIB designers should realize that there may be implementation and interoperability limitations for sizes in excess of 128 bits.
尽管SMI对枚举数(因此对值的长度)没有指定的限制,但八位字符串长度的限制除外,MIB设计者应该意识到,对于超过128位的大小,可能存在实现和互操作性限制。
Finally, a label for a named-number enumeration must consist of one or more letters or digits, up to a maximum of 64 characters, and the initial character must be a lower-case letter. (However, labels longer than 32 characters are not recommended.) Note that hyphens are not allowed by this specification.
最后,命名数字枚举的标签必须由一个或多个字母或数字组成,最多64个字符,且初始字符必须是小写字母。(但是,不建议使用长度超过32个字符的标签。)请注意,此规范不允许使用连字符。
The IpAddress type represents a 32-bit internet address. It is represented as an OCTET STRING of length 4, in network byte-order.
IpAddress类型表示32位internet地址。它表示为长度为4的八位字节字符串,按网络字节顺序排列。
Note that the IpAddress type is a tagged type for historical reasons. Network addresses should be represented using an invocation of the TEXTUAL-CONVENTION macro [3].
请注意,出于历史原因,IpAddress类型是标记类型。网络地址应该使用文本约定宏[3]的调用来表示。
The Counter32 type represents a non-negative integer which monotonically increases until it reaches a maximum value of 2^32-1 (4294967295 decimal), when it wraps around and starts increasing again from zero.
Counter32类型表示一个非负整数,当它环绕并从零开始再次增加时,它会单调增加,直到达到最大值2^32-1(4294967295十进制)。
Counters have no defined "initial" value, and thus, a single value of a Counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of an object-type using this ASN.1 type. If such other times can occur, for example, the creation of an object instance at times other than re-initialization, then a corresponding object should be defined, with an appropriate SYNTAX clause, to indicate the last discontinuity. Examples of appropriate SYNTAX clause include: TimeStamp (a textual convention defined in [3]), DateAndTime (another textual convention from [3]) or TimeTicks.
计数器没有定义的“初始”值,因此,计数器的单个值(通常)没有信息内容。单调递增值的不连续性通常发生在管理系统重新初始化时,以及在使用此ASN.1类型的对象类型描述中规定的其他时间。如果可能发生此类其他时间,例如,在重新初始化以外的时间创建对象实例,则应使用适当的语法子句定义相应的对象,以指示最后的不连续性。适当语法子句的示例包括:TimeStamp(在[3]中定义的文本约定)、DateAndTime(来自[3]的另一个文本约定)或TimeTicks。
The value of the MAX-ACCESS clause for objects with a SYNTAX clause value of Counter32 is either "read-only" or "accessible-for-notify".
语法子句值为Counter32的对象的MAX-ACCESS子句的值为“只读”或“可用于通知”。
A DEFVAL clause is not allowed for objects with a SYNTAX clause value of Counter32.
对于语法子句值为Counter32的对象,不允许使用DEFVAL子句。
The Gauge32 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value can not be greater than 2^32-1 (4294967295 decimal), and the minimum value can not be smaller than 0. The value of a Gauge32 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the Gauge32 also decreases (increases). (Note that despite of the use of the term "latched" in the original definition of this type, it does not become "stuck" at its maximum or minimum value.)
Gauge32类型表示非负整数,可以增加或减少,但不得超过最大值,也不得低于最小值。最大值不能大于2^32-1(4294967295十进制),最小值不能小于0。当建模信息大于或等于其最大值时,量规32的值有其最大值;当建模信息小于或等于其最小值时,量规32的值有其最小值。如果随后建模的信息减小到最大(最小)值以下(增大到最大(最小)值以上),则仪表32也会减小(增大)。(请注意,尽管在该类型的原始定义中使用了术语“锁定”,但在其最大值或最小值时,它不会“卡住”。)
The TimeTicks type represents a non-negative integer which represents the time, modulo 2^32 (4294967296 decimal), in hundredths of a second between two epochs. When objects are defined which use this ASN.1 type, the description of the object identifies both of the reference epochs.
TimeTicks类型表示一个非负整数,它表示两个纪元之间以百分之一秒为单位的时间,模为2^32(4294967296十进制)。当定义使用此ASN.1类型的对象时,该对象的描述将标识两个引用时代。
For example, [3] defines the TimeStamp textual convention which is based on the TimeTicks type. With a TimeStamp, the first reference epoch is defined as the time when sysUpTime [5] was zero, and the second reference epoch is defined as the current value of sysUpTime.
例如,[3]定义了基于TimeTicks类型的时间戳文本约定。使用时间戳,第一个参考历元定义为sysUpTime[5]为零的时间,第二个参考历元定义为sysUpTime的当前值。
The TimeTicks type may not be sub-typed.
TimeTicks类型不能是子类型。
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 [4] into a string of octets. This, in turn, is encoded as an OCTET STRING, in effect "double-wrapping" the original ASN.1 value.
不透明类型支持传递任意ASN.1语法的能力。使用ASN.1基本编码规则[4]将值编码为八进制字符串。这又被编码为八位字节字符串,实际上是“双重包装”原始ASN.1值。
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" MIB modules is that no object may have a SYNTAX clause value of Opaque.
“标准”MIB模块的一个要求是,任何对象的语法子句值都不能为不透明。
The Counter64 type represents a non-negative integer which monotonically increases until it reaches a maximum value of 2^64-1 (18446744073709551615 decimal), when it wraps around and starts increasing again from zero.
Counter64类型表示一个非负整数,当它环绕并从零开始再次增加时,它会单调增加,直到达到最大值2^64-1(18446744073709551615十进制)。
Counters have no defined "initial" value, and thus, a single value of a Counter has (in general) no information content. Discontinuities in the monotonically increasing value normally occur at re-initialization of the management system, and at other times as specified in the description of an object-type using this ASN.1 type. If such other times can occur, for example, the creation of an object instance at times other than re-initialization, then a corresponding object should be defined, with an appropriate SYNTAX clause, to indicate the last discontinuity. Examples of appropriate SYNTAX
计数器没有定义的“初始”值,因此,计数器的单个值(通常)没有信息内容。单调递增值的不连续性通常发生在管理系统重新初始化时,以及在使用此ASN.1类型的对象类型描述中规定的其他时间。如果可能发生此类其他时间,例如,在重新初始化以外的时间创建对象实例,则应使用适当的语法子句定义相应的对象,以指示最后的不连续性。适当语法的示例
clause are: TimeStamp (a textual convention defined in [3]), DateAndTime (another textual convention from [3]) or TimeTicks.
子句是:TimeStamp(在[3]中定义的文本约定)、DateAndTime(来自[3]的另一个文本约定)或TimeTicks。
The value of the MAX-ACCESS clause for objects with a SYNTAX clause value of Counter64 is either "read-only" or "accessible-for-notify".
语法子句值为Counter64的对象的MAX-ACCESS子句的值为“只读”或“可用于通知”。
A requirement on "standard" MIB modules is that the Counter64 type may be used only if the information being modeled would wrap in less than one hour if the Counter32 type was used instead.
“标准”MIB模块的一项要求是,如果使用Counter32类型,则仅当建模的信息将在不到一小时内完成包装时,才可以使用Counter64类型。
A DEFVAL clause is not allowed for objects with a SYNTAX clause value of Counter64.
对于语法子句值为Counter64的对象,不允许使用DEFVAL子句。
The Unsigned32 type represents integer-valued information between 0 and 2^32-1 inclusive (0 to 4294967295 decimal).
Unsigned32类型表示0到2^32-1(包括0到4294967295十进制)之间的整数值信息。
Management operations apply exclusively to scalar objects. However, it is sometimes convenient for developers of management applications to impose an imaginary, tabular structure on an ordered collection of objects within the MIB. Each such conceptual table contains zero or more rows, and each row may contain one or more scalar objects, termed columnar objects. This conceptualization is formalized by using the OBJECT-TYPE macro to define both an object which corresponds to a table and an object which corresponds to a row in that table. A conceptual table has SYNTAX of the form:
管理操作仅适用于标量对象。但是,管理应用程序的开发人员有时可以方便地在MIB中的有序对象集合上强加一个虚构的表格结构。每个这样的概念表包含零行或多行,每行可以包含一个或多个标量对象,称为列对象。通过使用OBJECT-TYPE宏来定义对应于表的对象和对应于该表中的行的对象,可以将这种概念化形式化。概念表的语法如下:
SEQUENCE OF <EntryType>
<EntryType>
where <EntryType> refers to the SEQUENCE type of its subordinate conceptual row. A conceptual row has SYNTAX of the form:
其中,<EntryType>表示其下级概念行的序列类型。概念行具有以下形式的语法:
<EntryType>
<EntryType>
where <EntryType> is a SEQUENCE type defined as follows:
其中,<EntryType>是定义如下的序列类型:
<EntryType> ::= SEQUENCE { <type1>, ... , <typeN> }
<EntryType> ::= SEQUENCE { <type1>, ... , <typeN> }
where there is one <type> for each subordinate object, and each <type> is of the form:
其中每个从属对象有一个<type>,每个<type>的形式如下:
<descriptor> <syntax>
<descriptor> <syntax>
where <descriptor> is the descriptor naming a subordinate object, and <syntax> has the value of that subordinate object's SYNTAX clause,
其中,<descriptor>是命名从属对象的描述符,<syntax>具有该从属对象的syntax子句的值,
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>.
除了子类型信息和枚举整数的命名值或bits结构的命名位在<syntax>中被省略之外。
Further, a <type> is always present for every subordinate object. (The ASN.1 DEFAULT and OPTIONAL clauses are disallowed in the SEQUENCE definition.) The MAX-ACCESS clause for conceptual tables and rows is "not-accessible".
此外,每个从属对象始终存在一个<type>。(序列定义中不允许使用ASN.1默认和可选子句。)概念表和行的MAX-ACCESS子句为“不可访问”。
For newly-defined conceptual rows which allow the creation of new object instances and/or the deletion of existing object instances, there should be one columnar object with a SYNTAX clause value of RowStatus (a textual convention defined in [3]) and a MAX-ACCESS clause value of read-create. By convention, this is termed the status column for the conceptual row.
对于允许创建新对象实例和/或删除现有对象实例的新定义概念行,应该有一个列对象,其语法子句值为RowStatus(在[3]中定义的文本约定),MAX-ACCESS子句值为read create。按照惯例,这被称为概念行的状态列。
This UNITS clause, which need not be present, contains a textual definition of the units associated with that object.
此UNITS子句不需要存在,它包含与该对象关联的单元的文本定义。
The MAX-ACCESS clause, which must be present, defines whether it makes "protocol sense" to read, write and/or create an instance of the object, or to include its value in a notification. This is the maximal level of access for the object. (This maximal level of access is independent of any administrative authorization policy.)
MAX-ACCESS子句必须存在,它定义了读取、写入和/或创建对象实例,或将其值包含在通知中是否具有“协议意义”。这是对象的最大访问级别。(此最大访问级别独立于任何管理授权策略。)
The value "read-write" indicates that read and write access make "protocol sense", but create does not. The value "read-create" indicates that read, write and create access make "protocol sense". The value "not-accessible" indicates an auxiliary object (see Section 7.7). The value "accessible-for-notify" indicates an object which is accessible only via a notification (e.g., snmpTrapOID [5]).
值“read-write”表示读写访问具有“协议意义”,但create没有。值“read create”表示读、写和创建访问具有“协议意义”。值“不可访问”表示辅助对象(见第7.7节)。值“accessible for notify”表示只能通过通知访问的对象(例如,snmpTrapOID[5])。
These values are ordered, from least to greatest: "not-accessible", "accessible-for-notify", "read-only", "read-write", "read-create".
这些值从最小到最大依次为:“不可访问”、“通知可访问”、“只读”、“读写”、“读创建”。
If any columnar object in a conceptual row has "read-create" as its maximal level of access, then no other columnar object of the same conceptual row may have a maximal access of "read-write". (Note that "read-create" is a superset of "read-write".)
如果概念行中的任何列对象的最大访问级别为“read-create”,则同一概念行中的其他列对象的最大访问级别为“read-write”。(请注意,“读-创建”是“读-写”的超集。)
The STATUS clause, which must be present, indicates whether this definition is current or historic.
STATUS子句(必须存在)指示此定义是当前定义还是历史定义。
The value "current" means that the definition is current and valid. The value "obsolete" means the definition is obsolete and should not be implemented and/or can be removed if previously implemented. While the value "deprecated" also indicates an obsolete definition, it permits new/continued implementation in order to foster interoperability with older/existing implementations.
值“current”表示该定义是当前有效的。值“过时”表示该定义已过时,不应实施和/或在以前实施的情况下可以删除。虽然值“deprecated”也表示过时的定义,但它允许新的/继续的实现,以促进与旧的/现有的实现的互操作性。
The DESCRIPTION clause, which must be present, contains a textual definition of that object which provides all semantic definitions necessary for implementation, and should embody any information which would otherwise be communicated in any ASN.1 commentary annotations associated with the object.
必须存在的描述条款包含该对象的文本定义,该定义提供了实现所需的所有语义定义,并应包含否则将在与该对象相关的任何ASN.1注释中传达的任何信息。
The REFERENCE clause, which need not be present, contains a textual cross-reference to some other document, either another information module which defines a related assignment, or some other document which provides additional information relevant to this definition.
REFERENCE子句不需要出现,它包含对其他文档的文本交叉引用,或者是对定义相关分配的其他信息模块的文本交叉引用,或者是对提供与此定义相关的附加信息的其他文档的文本交叉引用。
The INDEX clause, which must be present if that object corresponds to a conceptual row (unless an AUGMENTS clause is present instead), and must be absent otherwise, defines instance identification information for the columnar objects subordinate to that object.
INDEX子句定义了从属于该对象的列对象的实例标识信息,如果该对象对应于概念行,则必须存在INDEX子句(除非存在AUGMENTS子句),否则必须不存在INDEX子句。
The instance identification information in an INDEX clause must specify object(s) such that value(s) of those object(s) will unambiguously distinguish a conceptual row. The objects can be columnar objects from the same and/or another conceptual table, but must not be scalar objects. Multiple occurrences of the same object in a single INDEX clause is strongly discouraged.
INDEX子句中的实例标识信息必须指定对象,以便这些对象的值能够明确区分概念行。对象可以是来自同一个和/或另一个概念表的列对象,但不能是标量对象。强烈建议在单个索引子句中多次出现同一对象。
The syntax of the objects in the INDEX clause indicate how to form the instance-identifier:
INDEX子句中对象的语法指示如何形成实例标识符:
(1) integer-valued (i.e., having INTEGER as its underlying primitive type): a single sub-identifier taking the integer value (this works only for non-negative integers);
(1) 整数值(即,将整数作为其基础基元类型):采用整数值的单个子标识符(仅适用于非负整数);
(2) string-valued, fixed-length strings (or variable-length preceded by the IMPLIED keyword): `n' sub-identifiers, where `n' is the length of the string (each octet of the string is encoded in a separate sub-identifier);
(2) 字符串值、固定长度字符串(或前面带有隐含关键字的可变长度):`n'子标识符,其中`n'是字符串的长度(字符串的每个八位字节都编码在单独的子标识符中);
(3) string-valued, variable-length strings (not preceded by the IMPLIED keyword): `n+1' sub-identifiers, where `n' is the length of the string (the first sub-identifier is `n' itself, following this, each octet of the string is encoded in a separate sub-identifier);
(3) 字符串值、可变长度字符串(前面不带隐含关键字):`n+1'子标识符,其中`n'是字符串的长度(第一个子标识符是`n'本身,在此之后,字符串的每个八位字节编码为单独的子标识符);
(4) object identifier-valued (when preceded by the IMPLIED keyword): `n' sub-identifiers, where `n' is the number of sub-identifiers in the value (each sub-identifier of the value is copied into a separate sub-identifier);
(4) 对象标识符值(前面有隐含关键字):`n'子标识符,其中`n'是值中的子标识符数(值的每个子标识符复制到单独的子标识符中);
(5) object identifier-valued (when not preceded by the IMPLIED keyword): `n+1' sub-identifiers, where `n' is the number of sub-identifiers in the value (the first sub-identifier is `n' itself, following this, each sub-identifier in the value is copied);
(5) 对象标识符值(不在隐含关键字之前):`n+1'子标识符,其中`n'是值中的子标识符数(第一个子标识符为`n'本身,然后复制值中的每个子标识符);
(6) IpAddress-valued: 4 sub-identifiers, in the familiar a.b.c.d notation.
(6) IpAddress值:4个子标识符,采用熟悉的a.b.c.d符号。
Note that the IMPLIED keyword can only be present for an object having a variable-length syntax (e.g., variable-length strings or object identifier-valued objects), Further, the IMPLIED keyword can only be associated with the last object in the INDEX clause. Finally, the IMPLIED keyword may not be used on a variable-length string object if that string might have a value of zero-length.
请注意,隐含关键字只能用于具有可变长度语法的对象(例如,可变长度字符串或对象标识符值对象),此外,隐含关键字只能与INDEX子句中的最后一个对象相关联。最后,如果可变长度字符串对象的值可能为零,则不能在该字符串对象上使用隐含关键字。
Since a single value of a Counter has (in general) no information content (see section 7.1.6 and 7.1.10), objects defined using the syntax, Counter32 or Counter64, must not be specified in an INDEX
由于计数器的单个值(通常)没有信息内容(参见第7.1.6和7.1.10节),因此不得在索引中指定使用语法Counter32或Counter64定义的对象
clause. If an object defined using the BITS construct is used in an INDEX clause, it is considered a variable-length string.
条款如果在索引子句中使用了使用BITS构造定义的对象,则将其视为可变长度字符串。
Instances identified by use of integer-valued objects should be numbered starting from one (i.e., not from zero). The use of zero as a value for an integer-valued index object should be avoided, except in special cases.
使用整数值对象标识的实例应从一开始编号(即,不是从零开始编号)。除特殊情况外,应避免使用零作为整数值索引对象的值。
Objects which are both specified in the INDEX clause of a conceptual row and also columnar objects of the same conceptual row are termed auxiliary objects. The MAX-ACCESS clause for auxiliary objects is "not-accessible", except in the following circumstances:
在概念行的INDEX子句中指定的对象以及同一概念行的列对象称为辅助对象。辅助对象的MAX-ACCESS子句为“不可访问”,但以下情况除外:
(1) within a MIB module originally written to conform to SMIv1, and later converted to conform to SMIv2; or
(1) 在MIB模块中,最初编写为符合SMIv1,后来转换为符合SMIv2;或
(2) a conceptual row must contain at least one columnar object which is not an auxiliary object. In the event that all of a conceptual row's columnar objects are also specified in its INDEX clause, then one of them must be accessible, i.e., have a MAX-ACCESS clause of "read-only". (Note that this situation does not arise for a conceptual row allowing create access, since such a row will have a status column which will not be an auxiliary object.)
(2) 概念行必须至少包含一个非辅助对象的列对象。如果概念行的所有列对象也在其索引子句中指定,则其中一个必须是可访问的,即具有“只读”的MAX-ACCESS子句。(请注意,对于允许创建访问的概念行,不会出现这种情况,因为这样的行将有一个状态列,而不是辅助对象。)
Note that objects specified in a conceptual row's INDEX clause need not be columnar objects of that conceptual row. In this situation, the DESCRIPTION clause of the conceptual row must include a textual explanation of how the objects which are included in the INDEX clause but not columnar objects of that conceptual row, are used in uniquely identifying instances of the conceptual row's columnar objects.
请注意,在概念行的INDEX子句中指定的对象不必是该概念行的列对象。在这种情况下,概念行的DESCRIPTION子句必须包含一个文本解释,说明如何在唯一标识概念行的列对象实例时使用INDEX子句中包含的对象,而不是该概念行的列对象。
The AUGMENTS clause, which must not be present unless the object corresponds to a conceptual row, is an alternative to the INDEX clause. Every object corresponding to a conceptual row has either an INDEX clause or an AUGMENTS clause.
AUGMENTS子句是INDEX子句的一种替代方法,除非对象对应于概念行,否则它不能出现。与概念行对应的每个对象都有一个INDEX子句或AUGMENTS子句。
If an object corresponding to a conceptual row has an INDEX clause, that row is termed a base conceptual row; alternatively, if the object has an AUGMENTS clause, the row is said to be a conceptual row augmentation, where the AUGMENTS clause names the object corresponding to the base conceptual row which is augmented by this conceptual row augmentation. (Thus, a conceptual row augmentation cannot itself be augmented.) Instances of subordinate columnar objects of a conceptual row augmentation are identified according to the INDEX clause of the base conceptual row corresponding to the object named in the AUGMENTS clause. Further, instances of subordinate columnar objects of a conceptual row augmentation exist according to the same semantics as instances of subordinate columnar objects of the base conceptual row being augmented. As such, note that creation of a base conceptual row implies the correspondent creation of any conceptual row augmentations.
如果与概念行相对应的对象具有索引子句,则该行称为基本概念行;或者,如果对象有一个AUGMENTS子句,则该行被称为概念行扩充,其中AUGMENTS子句命名与通过该概念行扩充而扩充的基本概念行相对应的对象。(因此,概念行扩充本身不能被扩充。)概念行扩充的从属列对象的实例是根据与AUGMENTS子句中命名的对象相对应的基本概念行的INDEX子句来标识的。此外,概念行扩充的从属列对象的实例根据与被扩充的基本概念行的从属列对象的实例相同的语义而存在。因此,请注意,创建基本概念行意味着相应地创建任何概念行扩充。
For example, a MIB designer might wish to define additional columns in an "enterprise-specific" MIB which logically extend a conceptual row in a "standard" MIB. The "standard" MIB definition of the conceptual row would include the INDEX clause and the "enterprise-specific" MIB would contain the definition of a conceptual row using the AUGMENTS clause. On the other hand, it would be incorrect to use the AUGMENTS clause for the relationship between RFC 2233's ifTable
例如,MIB设计器可能希望在“特定于企业”的MIB中定义其他列,这些列在逻辑上扩展“标准”MIB中的概念行。概念行的“标准”MIB定义将包含INDEX子句,“企业特定”MIB将包含使用AUGMENTS子句的概念行定义。另一方面,在RFC 2233的ifTable之间的关系中使用AUGMENTS子句是不正确的
and the many media-specific MIBs which extend it for specific media (e.g., the dot3Table in RFC 2358), since not all interfaces are of the same media.
以及许多特定于介质的MIB,这些MIB针对特定介质(例如,RFC 2358中的dot3Table)进行扩展,因为并非所有接口都属于同一介质。
Note that a base conceptual row may be augmented by multiple conceptual row augmentations.
请注意,一个基本概念行可以由多个概念行扩充来扩充。
When defining instance identification information for a conceptual table:
定义概念表的实例标识信息时:
(1) If there is a one-to-one correspondence between the conceptual rows of this table and an existing table, then the AUGMENTS clause should be used.
(1) 如果此表的概念行与现有表之间存在一对一的对应关系,则应使用AUGMENTS子句。
(2) Otherwise, if there is a sparse relationship between the conceptual rows of this table and an existing table, then an INDEX clause should be used which is identical to that in the existing table. For example, the relationship between RFC 2233's ifTable and a media-specific MIB which extends the ifTable for a specific media (e.g., the dot3Table in RFC 2358), is a sparse relationship.
(2) 否则,如果此表的概念行与现有表之间存在稀疏关系,则应使用与现有表中相同的索引子句。例如,RFC 2233的ifTable与扩展特定媒体的ifTable的媒体特定MIB(例如,RFC 2358中的dot3Table)之间的关系是稀疏关系。
(3) Otherwise, if no existing objects have the required syntax and semantics, then auxiliary objects should be defined within the conceptual row for the new table, and those objects should be used within the INDEX clause for the conceptual row.
(3) 否则,如果没有任何现有对象具有所需的语法和语义,则应在新表的概念行中定义辅助对象,并且应在概念行的INDEX子句中使用这些对象。
The DEFVAL clause, which need not be present, defines an acceptable default value which may be used at the discretion of an agent when an object instance is created. That is, the value is a "hint" to implementors.
deffal子句(不需要存在)定义了一个可接受的默认值,在创建对象实例时,代理可以自行决定使用该默认值。也就是说,该值是对实现者的“提示”。
During conceptual row creation, if an instance of a columnar object is not present as one of the operands in the correspondent management protocol set operation, then the value of the DEFVAL clause, if present, indicates an acceptable default value that an agent might use (especially for a read-only object).
在概念行创建期间,如果列对象的实例在相应的管理协议集操作中不作为操作数之一出现,则DEFVAL子句的值(如果存在)表示代理可能使用的可接受默认值(特别是对于只读对象)。
Note that with this definition of the DEFVAL clause, it is appropriate to use it for any columnar object of a read-create table. It is also permitted to use it for scalar objects dynamically created by an agent, or for columnar objects of a read-write table dynamically created by an agent.
请注意,使用DEFVAL子句的这个定义,可以将其用于read create表的任何列对象。还允许将其用于代理动态创建的标量对象,或用于代理动态创建的读写表的列对象。
The value of the DEFVAL clause must, of course, correspond to the SYNTAX clause for the object. If the value is an OBJECT IDENTIFIER, then it must be expressed as a single ASN.1 identifier, and not as a collection of sub-identifiers.
当然,deffal子句的值必须与对象的SYNTAX子句相对应。如果该值是一个对象标识符,那么它必须表示为单个ASN.1标识符,而不是子标识符的集合。
Note that if an operand to the management protocol set operation is an instance of a read-only object, then the error `notWritable' [6] will be returned. As such, the DEFVAL clause can be used to provide an acceptable default value that an agent might use.
请注意,如果管理协议集操作的操作数是只读对象的实例,则将返回错误“notWritable”[6]。因此,可以使用DEFVAL子句提供代理可能使用的可接受的默认值。
By way of example, consider the following possible DEFVAL clauses:
举例来说,考虑下列可能的不利条款:
ObjectSyntax DEFVAL clause ---------------- ------------ Integer32 DEFVAL { 1 } -- same for Gauge32, TimeTicks, Unsigned32 INTEGER DEFVAL { valid } -- enumerated value OCTET STRING DEFVAL { 'ffffffffffff'H } DisplayString DEFVAL { "SNMP agent" } IpAddress DEFVAL { 'c0210415'H } -- 192.33.4.21 OBJECT IDENTIFIER DEFVAL { sysDescr } BITS DEFVAL { { primary, secondary } } -- enumerated values that are set BITS DEFVAL { { } } -- no enumerated values are set
ObjectSyntax DEFVAL clause ---------------- ------------ Integer32 DEFVAL { 1 } -- same for Gauge32, TimeTicks, Unsigned32 INTEGER DEFVAL { valid } -- enumerated value OCTET STRING DEFVAL { 'ffffffffffff'H } DisplayString DEFVAL { "SNMP agent" } IpAddress DEFVAL { 'c0210415'H } -- 192.33.4.21 OBJECT IDENTIFIER DEFVAL { sysDescr } BITS DEFVAL { { primary, secondary } } -- enumerated values that are set BITS DEFVAL { { } } -- no enumerated values are set
A binary string used in a DEFVAL clause for an OCTET STRING must be either an integral multiple of eight or zero bits in length; similarly, a hexadecimal string must be an even number of hexadecimal digits. The value of a character string used in a DEFVAL clause must not contain tab characters or line terminator characters.
八位字节字符串的DEFVAL子句中使用的二进制字符串长度必须是八位的整数倍或零位;同样,十六进制字符串必须是偶数个十六进制数字。DEFVAL子句中使用的字符串值不得包含制表符或行结束符。
Object types with SYNTAX of Counter32 and Counter64 may not have DEFVAL clauses, since they do not have defined initial values. However, it is recommended that they be initialized to zero.
语法为Counter32和Counter64的对象类型可能没有DEFVAL子句,因为它们没有定义的初始值。但是,建议将它们初始化为零。
The value of an invocation of the OBJECT-TYPE macro is the name of the object, which is an OBJECT IDENTIFIER, an administratively assigned name.
调用OBJECT-TYPE宏的值是对象的名称,它是一个对象标识符,一个管理分配的名称。
When an OBJECT IDENTIFIER is assigned to an object:
将对象标识符指定给对象时:
(1) If the object corresponds to a conceptual table, then only a single assignment, that for a conceptual row, is present immediately beneath that object. The administratively assigned name for the conceptual row object is derived by appending a sub-identifier of
(1) 如果对象对应于概念表,则仅在该对象的正下方存在一个指定,即概念行的指定。概念行对象的管理分配名称是通过在
"1" to the administratively assigned name for the conceptual table.
“1”表示概念表的管理分配名称。
(2) If the object corresponds to a conceptual row, then at least one assignment, one for each column in the conceptual row, is present beneath that object. The administratively assigned name for each column is derived by appending a unique, positive sub-identifier to the administratively assigned name for the conceptual row.
(2) 如果对象对应于概念行,则该对象下方至少存在一个指定,概念行中的每列对应一个指定。每个列的管理分配名称是通过在概念行的管理分配名称后面附加一个唯一的正子标识符来派生的。
(3) Otherwise, no other OBJECT IDENTIFIERs which are subordinate to the object may be assigned.
(3) 否则,不能分配从属于该对象的其他对象标识符。
Note that the final sub-identifier of any administratively assigned name for an object shall be positive. A zero-valued final sub-identifier is reserved for future use.
请注意,对象的任何管理分配名称的最终子标识符应为正。保留零值最终子标识符以供将来使用。
Consider how one might define a conceptual table and its subordinates. (This example uses the RowStatus textual convention defined in [3].)
考虑一下如何定义一个概念表和它的下属。(本例使用[3]中定义的RowStatus文本约定。)
evalSlot OBJECT-TYPE SYNTAX Integer32 (0..2147483647) MAX-ACCESS read-only STATUS current DESCRIPTION "The index number of the first unassigned entry in the evaluation table, or the value of zero indicating that all entries are assigned.
evalSlot OBJECT-TYPE SYNTAX Integer32(0..2147483647)MAX-ACCESS只读状态current DESCRIPTION“求值表中第一个未分配项的索引号,或表示已分配所有项的零值。
A management station should create new entries in the evaluation table using this algorithm: first, issue a management protocol retrieval operation to determine the value of evalSlot; and, second, issue a management protocol set operation to create an instance of the evalStatus object setting its value to createAndGo(4) or createAndWait(5). If this latter operation succeeds, then the management station may continue modifying the instances corresponding to the newly created conceptual row, without fear of collision with other management stations." ::= { eval 1 }
A management station should create new entries in the evaluation table using this algorithm: first, issue a management protocol retrieval operation to determine the value of evalSlot; and, second, issue a management protocol set operation to create an instance of the evalStatus object setting its value to createAndGo(4) or createAndWait(5). If this latter operation succeeds, then the management station may continue modifying the instances corresponding to the newly created conceptual row, without fear of collision with other management stations." ::= { eval 1 }
evalTable OBJECT-TYPE SYNTAX SEQUENCE OF EvalEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION
EvalEntry MAX-ACCESS的evalTable对象类型语法序列不可访问状态当前描述
"The (conceptual) evaluation table." ::= { eval 2 }
"The (conceptual) evaluation table." ::= { eval 2 }
evalEntry OBJECT-TYPE SYNTAX EvalEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry (conceptual row) in the evaluation table." INDEX { evalIndex } ::= { evalTable 1 }
evalEntry OBJECT-TYPE SYNTAX EvalEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry (conceptual row) in the evaluation table." INDEX { evalIndex } ::= { evalTable 1 }
EvalEntry ::= SEQUENCE { evalIndex Integer32, evalString DisplayString, evalValue Integer32, evalStatus RowStatus }
EvalEntry ::= SEQUENCE { evalIndex Integer32, evalString DisplayString, evalValue Integer32, evalStatus RowStatus }
evalIndex OBJECT-TYPE SYNTAX Integer32 (1..2147483647) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The auxiliary variable used for identifying instances of the columnar objects in the evaluation table." ::= { evalEntry 1 }
evalIndex OBJECT-TYPE SYNTAX Integer32 (1..2147483647) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The auxiliary variable used for identifying instances of the columnar objects in the evaluation table." ::= { evalEntry 1 }
evalString OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-create STATUS current DESCRIPTION "The string to evaluate." ::= { evalEntry 2 }
evalString OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-create STATUS current DESCRIPTION "The string to evaluate." ::= { evalEntry 2 }
evalValue OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current DESCRIPTION "The value when evalString was last evaluated, or zero if no such value is available." DEFVAL { 0 } ::= { evalEntry 3 }
evalValue OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current DESCRIPTION "The value when evalString was last evaluated, or zero if no such value is available." DEFVAL { 0 } ::= { evalEntry 3 }
evalStatus OBJECT-TYPE
evalStatus对象类型
SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The status column used for creating, modifying, and deleting instances of the columnar objects in the evaluation table." DEFVAL { active } ::= { evalEntry 4 }
SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The status column used for creating, modifying, and deleting instances of the columnar objects in the evaluation table." DEFVAL { active } ::= { evalEntry 4 }
The NOTIFICATION-TYPE macro is used to define the information contained within an unsolicited transmission of management information (i.e., within either a SNMPv2-Trap-PDU or InformRequest-PDU). It should be noted that the expansion of the NOTIFICATION-TYPE macro is something which conceptually happens during implementation and not during run-time.
NOTIFICATION-TYPE宏用于定义管理信息的非请求传输(即SNMPv2陷阱PDU或InformRequest PDU)中包含的信息。应该注意,NOTIFICATION-TYPE宏的扩展在概念上是在实现过程中发生的,而不是在运行时发生的。
The OBJECTS clause, which need not be present, defines an ordered sequence of MIB object types. One and only one object instance for each occurrence of each object type must be present, and in the specified order, in every instance of the notification. If the same object type occurs multiple times in a notification's ordered sequence, then an object instance is present for each of them. An object type specified in this clause must not have an MAX-ACCESS clause of "not-accessible". The notification's DESCRIPTION clause must specify the information/meaning conveyed by each occurrence of each object type in the sequence. The DESCRIPTION clause must also specify which object instance is present for each object type in the notification.
OBJECTS子句定义了MIB对象类型的有序序列,它不需要存在。在通知的每个实例中,每个对象类型的每个引用都必须以指定的顺序存在一个且仅存在一个对象实例。如果同一对象类型在通知的有序序列中多次出现,则每个对象都有一个对象实例。此子句中指定的对象类型不得具有“不可访问”的MAX-ACCESS子句。通知的描述条款必须规定序列中每种对象类型的每次出现所传达的信息/含义。DESCRIPTION子句还必须指定通知中每个对象类型的对象实例。
Note that an agent is allowed, at its own discretion, to append as many additional objects as it considers useful to the end of the notification (i.e., after the objects defined by the OBJECTS clause).
请注意,允许代理自行决定在通知结束时附加其认为有用的尽可能多的附加对象(即,在objects子句定义的对象之后)。
The STATUS clause, which must be present, indicates whether this definition is current or historic.
STATUS子句(必须存在)指示此定义是当前定义还是历史定义。
The value "current" means that the definition is current and valid. The value "obsolete" means the definition is obsolete and should not be implemented and/or can be removed if previously implemented. While the value "deprecated" also indicates an obsolete definition, it permits new/continued implementation in order to foster
值“current”表示该定义是当前有效的。值“过时”表示该定义已过时,不应实施和/或在以前实施的情况下可以删除。虽然值“deprecated”也表示过时的定义,但它允许新的/继续的实施,以促进
interoperability with older/existing implementations.
与旧的/现有的实现的互操作性。
The DESCRIPTION clause, which must be present, contains a textual definition of the notification which provides all semantic definitions necessary for implementation, and should embody any information which would otherwise be communicated in any ASN.1 commentary annotations associated with the notification. In particular, the DESCRIPTION clause should document which instances of the objects mentioned in the OBJECTS clause should be contained within notifications of this type.
必须存在的描述条款包含通知的文本定义,该定义提供了实施所需的所有语义定义,并应包含与通知相关的任何ASN.1评注注释中可能传达的任何信息。特别是,DESCRIPTION子句应该记录objects子句中提到的对象的哪些实例应该包含在这种类型的通知中。
The REFERENCE clause, which need not be present, contains a textual cross-reference to some other document, either another information module which defines a related assignment, or some other document which provides additional information relevant to this definition.
REFERENCE子句不需要出现,它包含对其他文档的文本交叉引用,或者是对定义相关分配的其他信息模块的文本交叉引用,或者是对提供与此定义相关的附加信息的其他文档的文本交叉引用。
The value of an invocation of the NOTIFICATION-TYPE macro is the name of the notification, which is an OBJECT IDENTIFIER, an administratively assigned name. In order to achieve compatibility with SNMPv1 traps, both when converting SMIv1 information modules to/from this SMI, and in the procedures employed by multi-lingual systems and proxy forwarding applications, the next to last sub-identifier in the name of any newly-defined notification must have the value zero.
NOTIFICATION-TYPE宏调用的值是通知的名称,它是一个对象标识符,一个管理分配的名称。为了实现与SNMPv1陷阱的兼容性,在将SMIv1信息模块转换为此SMI时,以及在多语言系统和代理转发应用程序使用的过程中,任何新定义通知名称中的下一个倒数第二子标识符的值必须为零。
Sections 4.2.6 and 4.2.7 of [6] describe how the NOTIFICATION-TYPE macro is used to generate a SNMPv2-Trap-PDU or InformRequest-PDU, respectively.
[6]的第4.2.6节和第4.2.7节分别描述了如何使用NOTIFICATION-TYPE宏生成SNMPv2陷阱PDU或InformRequest PDU。
Consider how a configuration change notification might be described:
考虑如何描述配置更改通知:
entityMIBTraps OBJECT IDENTIFIER ::= { entityMIB 2 } entityMIBTrapPrefix OBJECT IDENTIFIER ::= { entityMIBTraps 0 }
entityMIBTraps OBJECT IDENTIFIER ::= { entityMIB 2 } entityMIBTrapPrefix OBJECT IDENTIFIER ::= { entityMIBTraps 0 }
entConfigChange NOTIFICATION-TYPE STATUS current DESCRIPTION "An entConfigChange trap is sent when the value of entLastChangeTime changes. It can be utilized by an NMS to trigger logical/physical entity table maintenance polls.
entConfigChange NOTIFICATION-TYPE STATUS current DESCRIPTION“当entLastChangeTime的值更改时,会发送entConfigChange陷阱。NMS可以利用该陷阱触发逻辑/物理实体表维护轮询。
An agent must not generate more than one entConfigChange 'trap-event' in a five second period, where a 'trap-event' is the transmission of a single trap PDU to a list of trap destinations. If additional configuration changes occur within the five second 'throttling' period, then these trap-events should be suppressed by the agent. An NMS should periodically check the value of entLastChangeTime to detect any missed entConfigChange trap-events, e.g. due to throttling or transmission loss." ::= { entityMIBTrapPrefix 1 }
An agent must not generate more than one entConfigChange 'trap-event' in a five second period, where a 'trap-event' is the transmission of a single trap PDU to a list of trap destinations. If additional configuration changes occur within the five second 'throttling' period, then these trap-events should be suppressed by the agent. An NMS should periodically check the value of entLastChangeTime to detect any missed entConfigChange trap-events, e.g. due to throttling or transmission loss." ::= { entityMIBTrapPrefix 1 }
According to this invocation, the notification authoritatively identified as
根据该调用,通知被权威地标识为
{ entityMIBTrapPrefix 1 }
{entityMIBTrapPrefix 1}
is used to report a particular type of configuration change.
用于报告特定类型的配置更改。
Some macros have clauses which allows syntax to be refined, specifically: the SYNTAX clause of the OBJECT-TYPE macro, and the SYNTAX/WRITE-SYNTAX clauses of the MODULE-COMPLIANCE and AGENT-CAPABILITIES macros [2]. However, not all refinements of syntax are appropriate. In particular, the object's primitive or application type must not be changed.
某些宏具有允许细化语法的子句,特别是:对象类型宏的语法子句,以及MODULE-COMPLIANCE和AGENT-CAPABILITIES宏的语法/写入语法子句[2]。然而,并非所有的语法改进都是适当的。特别是,不能更改对象的基元或应用程序类型。
Further, the following restrictions apply:
此外,以下限制适用:
Restrictions to Refinement of object syntax range enumeration size ----------------- ----- ----------- ---- INTEGER (1) (2) - Integer32 (1) - - Unsigned32 (1) - - OCTET STRING - - (3) OBJECT IDENTIFIER - - - BITS - (2) - IpAddress - - - Counter32 - - - Counter64 - - - Gauge32 (1) - - TimeTicks - - -
Restrictions to Refinement of object syntax range enumeration size ----------------- ----- ----------- ---- INTEGER (1) (2) - Integer32 (1) - - Unsigned32 (1) - - OCTET STRING - - (3) OBJECT IDENTIFIER - - - BITS - (2) - IpAddress - - - Counter32 - - - Counter64 - - - Gauge32 (1) - - TimeTicks - - -
where:
哪里:
(1) the range of permitted values may be refined by raising the lower-bounds, by reducing the upper-bounds, and/or by reducing the alternative value/range choices;
(1) 可通过提高下限、降低上限和/或减少备选值/范围选择来细化允许值的范围;
(2) the enumeration of named-values may be refined by removing one or more named-values (note that for BITS, a refinement may cause the enumerations to no longer be contiguous); or,
(2) 可通过移除一个或多个命名值来细化命名值的枚举(注意,对于位,细化可能导致枚举不再连续);或
(3) the size in octets of the value may be refined by raising the lower-bounds, by reducing the upper-bounds, and/or by reducing the alternative size choices.
(3) 值的大小(以八位字节为单位)可以通过提高下界、降低上界和/或减少可选大小选择来细化。
No other types of refinements can be specified in the SYNTAX clause. However, the DESCRIPTION clause is available to specify additional restrictions which can not be expressed in the SYNTAX clause. Further details on (and examples of) sub-typing are provided in Appendix A.
SYNTAX子句中不能指定其他类型的优化。但是,DESCRIPTION子句可用于指定无法在SYNTAX子句中表达的其他限制。附录A中提供了有关子类型的更多详细信息(以及示例)。
As experience is gained with an information module, it may be desirable to revise that information module. However, changes are not allowed if they have any potential to cause interoperability problems "over the wire" between an implementation using an original specification and an implementation using an updated specification(s).
由于获得了使用信息模块的经验,可能需要修改该信息模块。但是,如果更改可能导致使用原始规范的实现和使用更新规范的实现之间的互操作性问题,则不允许进行更改。
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 (see section 5.5), and making any necessary changes to existing clauses, including the ORGANIZATION and CONTACT-INFO clauses.
对于任何更改,必须更新MODULE-IDENTITY宏的调用,以包含有关修订的信息:具体而言,更新LAST-updated子句,添加一对修订和描述子句(参见第5.5节),并对现有子句(包括组织和联系信息子句)进行任何必要的更改。
Note that any definition contained in an information module is available to be IMPORT-ed by any other information module, and is referenced in an IMPORTS clause via the module name. Thus, a module name should not be changed. Specifically, the module name (e.g., "FIZBIN-MIB" in the example of Section 5.7) should not be changed when revising an information module (except to correct typographical errors), and definitions should not be moved from one information module to another.
请注意,信息模块中包含的任何定义都可以由任何其他信息模块导入,并通过模块名称在IMPORTS子句中引用。因此,不应更改模块名称。具体而言,在修改信息模块时,不应更改模块名称(例如,第5.7节示例中的“FIZBIN-MIB”)(除了纠正印刷错误),并且不应将定义从一个信息模块移动到另一个信息模块。
Also note that obsolete definitions must not be removed from MIB modules since their descriptors may still be referenced by other information modules, and the OBJECT IDENTIFIERs used to name them must never be re-assigned.
还要注意,不能从MIB模块中删除过时的定义,因为其他信息模块仍可能引用它们的描述符,并且用于命名它们的对象标识符决不能重新分配。
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.
如果对对象赋值的任何子句进行了任何非编辑性更改,则与该对象赋值关联的对象标识符值及其关联的描述符也必须更改。
An object definition may be revised in any of the following ways:
对象定义可通过以下任一方式进行修改:
(1) 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.
(1) 包含枚举整数的语法子句可能会添加新枚举或更改现有标签。类似地,可以为bits构造添加命名位或更改现有标签。
(2) 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.
(2) 语法子句的值可以由文本约定替换,前提是文本约定被定义为使用相同的原语ASN.1类型,具有相同的值集,并且具有相同的语义。
(3) 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.
(3) 状态子句值“current”可以修改为“deprecated”或“过时”。同样,状态子句值“不推荐”也可以修改为“过时”。进行此类更改时,应更新描述条款,以解释基本原理。
(4) A DEFVAL clause may be added or updated.
(4) 可以添加或更新DEFVAL子句。
(5) A REFERENCE clause may be added or updated.
(5) 可以添加或更新引用子句。
(6) A UNITS clause may be added.
(6) 可添加单位条款。
(7) A conceptual row may be augmented by adding new columnar objects at the end of the row, and making the corresponding update to the SEQUENCE definition.
(7) 概念行可以通过在行的末尾添加新的列对象,并对序列定义进行相应的更新来扩充。
(8) Clarifications and additional information may be included in the DESCRIPTION clause.
(8) 说明条款中可能包含澄清和附加信息。
(9) Entirely new objects may be defined, named with previously unassigned OBJECT IDENTIFIER values.
(9) 可以定义全新的对象,使用以前未分配的对象标识符值命名。
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.
请注意,更改与现有对象关联的描述符被视为语义更改,因为这些字符串可能会在IMPORTS语句中使用。
A notification definition may be revised in any of the following ways:
通知定义可通过以下任何方式进行修订:
(1) A REFERENCE clause may be added or updated.
(1) 可以添加或更新引用子句。
(2) 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.
(2) 状态子句值“current”可以修改为“deprecated”或“过时”。同样,状态子句值“不推荐”也可以修改为“过时”。进行此类更改时,应更新描述条款,以解释基本原理。
(3) A DESCRIPTION clause may be clarified.
(3) 可以澄清说明条款。
Otherwise, if the semantics of any previously defined notification are changed (i.e., if a non-editorial change is made to any clause other those specifically allowed above), then the OBJECT IDENTIFIER value associated with that notification must also be changed.
否则,如果更改了任何先前定义的通知的语义(即,如果对任何条款进行了非编辑性更改,而不是上述明确允许的更改),则与该通知相关联的对象标识符值也必须更改。
Note that changing the descriptor associated with an existing notification is considered a semantic change, as these strings may be used in an IMPORTS statement.
请注意,更改与现有通知关联的描述符被视为语义更改,因为这些字符串可能会在IMPORTS语句中使用。
The syntax rules for sub-typing are given below. Note that while this syntax is based on ASN.1, it includes some extensions beyond what is allowed in ASN.1, and a number of ASN.1 constructs are not allowed by this syntax.
子类型的语法规则如下所示。请注意,虽然此语法基于ASN.1,但它包含一些超出ASN.1所允许的扩展,并且此语法不允许使用许多ASN.1构造。
<integerSubType> ::= <empty> | "(" <range> ["|" <range>]... ")"
<integerSubType> ::= <empty> | "(" <range> ["|" <range>]... ")"
<octetStringSubType> ::= <empty> | "(" "SIZE" "(" <range> ["|" <range>]... ")" ")"
<octetStringSubType> ::= <empty> | "(" "SIZE" "(" <range> ["|" <range>]... ")" ")"
<range> ::= <value> | <value> ".." <value>
<range> ::= <value> | <value> ".." <value>
<value> ::= "-" <number> | <number> | <hexString> | <binString>
<value> ::= "-" <number> | <number> | <hexString> | <binString>
where: <empty> is the empty string <number> is a non-negative integer <hexString> is a hexadecimal string (e.g., '0F0F'H) <binString> is a binary string (e.g, '1010'B)
where: <empty> is the empty string <number> is a non-negative integer <hexString> is a hexadecimal string (e.g., '0F0F'H) <binString> is a binary string (e.g, '1010'B)
<range> is further restricted as follows: - any <value> used in a SIZE clause must be non-negative. - when a pair of values is specified, the first value must be less than the second value. - when multiple ranges are specified, the ranges may not overlap but may touch. For example, (1..4 | 4..9) is invalid, and (1..4 | 5..9) is valid. - the ranges must be a subset of the maximum range of the base type.
<range>进一步限制如下:-SIZE子句中使用的任何<value>都必须是非负的。-指定一对值时,第一个值必须小于第二个值。-当指定多个范围时,这些范围可能不会重叠,但可能会接触。例如,(1..4..4..9)无效,(1..4..5..9)有效。-范围必须是基类型的最大范围的子集。
Some examples of legal sub-typing:
法律子类型的一些示例:
Integer32 (-20..100) Integer32 (0..100 | 300..500) Integer32 (300..500 | 0..100) Integer32 (0 | 2 | 4 | 6 | 8 | 10) OCTET STRING (SIZE(0..100)) OCTET STRING (SIZE(0..100 | 300..500)) OCTET STRING (SIZE(0 | 2 | 4 | 6 | 8 | 10)) SYNTAX TimeInterval (0..100) SYNTAX DisplayString (SIZE(0..32))
整数32(-20..100)整数32(0..100 | 300..500)整数32(300..500 | 0..100)整数32(0..2 | 4 | 6 | 8 | 10)八位字符串(大小(0..100)八位字符串(大小(0..100 | 300..500)八位字符串(大小(0..2 | 4 | 6 | 8 | 10))语法时间间隔(0..100)语法显示字符串(大小(0..32))
(Note the last two examples above are not valid in a TEXTUAL CONVENTION, see [3].)
(注意,上述最后两个示例在文本约定中无效,请参见[3]。)
Some examples of illegal sub-typing:
非法子类型的一些示例:
Integer32 (150..100) -- first greater than second Integer32 (0..100 | 50..500) -- ranges overlap Integer32 (0 | 2 | 0 ) -- value duplicated Integer32 (MIN..-1 | 1..MAX) -- MIN and MAX not allowed Integer32 (SIZE (0..34)) -- must not use SIZE OCTET STRING (0..100) -- must use SIZE OCTET STRING (SIZE(-10..100)) -- negative SIZE
整数32(150..100)--第一个大于第二个整数32(0..100 | 50..500)--范围重叠整数32(0 | 2 | 0)--值重复整数32(最小值--1 |最大值)--最小值和最大值不允许的整数32(大小(0..34))--不能使用大小八位字符串(0..100)--必须使用大小八位字符串(大小(-10..100))--负大小
This document defines a language with which to write and read descriptions of management information. The language itself has no security impact on the Internet.
本文档定义了一种用于编写和读取管理信息描述的语言。这种语言本身对互联网没有安全影响。
Keith McCloghrie Cisco Systems, Inc. 170 West Tasman Drive San Jose, CA 95134-1706 USA Phone: +1 408 526 5260 EMail: kzm@cisco.com
Keith McCloghrie Cisco Systems,Inc.美国加利福尼亚州圣何塞西塔斯曼大道170号95134-1706电话:+1 408 526 5260电子邮件:kzm@cisco.com
David Perkins SNMPinfo 3763 Benton Street Santa Clara, CA 95051 USA Phone: +1 408 221-8702 EMail: dperkins@snmpinfo.com
David Perkins SNMPinfo 3763 Benton Street Santa Clara,CA 95051美国电话:+1 408 221-8702电子邮件:dperkins@snmpinfo.com
Juergen Schoenwaelder TU Braunschweig Bueltenweg 74/75 38106 Braunschweig Germany Phone: +49 531 391-3283 EMail: schoenw@ibr.cs.tu-bs.de
Juergen Schoenwaelder TU Braunchweig Bueltenweg 74/75 38106 Braunchweig Germany电话:+49 531 391-3283电子邮件:schoenw@ibr.cs.tu-理学士
[1] Information processing systems - Open Systems Interconnection - Specification of Abstract Syntax Notation One (ASN.1), International Organization for Standardization. International Standard 8824, (December, 1987).
[1] 信息处理系统.开放系统互连.国际标准化组织抽象语法符号1(ASN.1)规范。国际标准8824(1987年12月)。
[2] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M. and S. Waldbusser, "Conformance Statements for SMIv2", STD 58, RFC 2580, April 1999.
[2] McCloghrie,K.,Perkins,D.,Schoenwaeld,J.,Case,J.,Rose,M.和S.Waldbusser,“SMIv2的一致性声明”,STD 58,RFC 25801999年4月。
[3] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M. and S. Waldbusser, "Textual Conventions for SMIv2", STD 58, RFC 2579, April 1999.
[3] McCloghrie,K.,Perkins,D.,Schoenwaeld,J.,Case,J.,Rose,M.和S.Waldbusser,“SMIv2的文本约定”,STD 58,RFC 2579,1999年4月。
[4] Information processing systems - Open Systems Interconnection - Specification of Basic Encoding Rules for Abstract Syntax Notation One (ASN.1), International Organization for Standardization. International Standard 8825, (December, 1987).
[4] 信息处理系统.开放系统互连.国际标准化组织抽象语法符号1(ASN.1)的基本编码规则规范。国际标准8825(1987年12月)。
[5] The SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Management Information Base for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1907, January 1996.
[5] SNMPv2工作组,Case,J.,McCloghrie,K.,Rose,M.和S.Waldbusser,“简单网络管理协议(SNMPv2)版本2的管理信息库”,RFC 1907,1996年1月。
[6] The SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Protocol Operations for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1905, January 1996.
[6] SNMPv2工作组,Case,J.,McCloghrie,K.,Rose,M.和S.Waldbusser,“简单网络管理协议(SNMPv2)版本2的协议操作”,RFC 1905,1996年1月。
Copyright (C) The Internet Society (1999). All Rights Reserved.
版权所有(C)互联网协会(1999年)。版权所有。
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."
本文件和其中包含的信息是按“原样”提供的,互联网协会和互联网工程任务组否认所有明示或暗示的保证,包括但不限于任何保证,即使用本文中的信息不会侵犯任何权利,或对适销性或特定用途适用性的任何默示保证。”