| |
| |
| |
| |
| |
| |
| Network Working Group SNMPv2 Working Group |
| Request for Comments: 1902 J. Case |
| Obsoletes: 1442 SNMP Research, Inc. |
| Category: Standards Track K. McCloghrie |
| Cisco Systems, Inc. |
| M. Rose |
| Dover Beach Consulting, Inc. |
| S. Waldbusser |
| International Network Services |
| January 1996 |
| |
| |
| Structure of Management Information |
| for Version 2 of the |
| Simple Network Management Protocol (SNMPv2) |
| |
| 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. |
| |
| 1. Introduction |
| |
| A management system contains: several (potentially many) nodes, each |
| with a processing entity, termed an agent, which has access to |
| management instrumentation; at least one management station; and, a |
| management protocol, used to convey management information between |
| the agents and management stations. Operations of the protocol are |
| carried out under an administrative framework which defines |
| authentication, authorization, access control, and privacy policies. |
| |
| Management stations execute management applications which monitor and |
| control managed elements. Managed elements are devices such as |
| hosts, routers, terminal servers, etc., which are monitored and |
| controlled via access to their management information. |
| |
| 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) [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. |
| |
| |
| |
| |
| SNMPv2 Working Group Standards Track [Page 1] |
| |
| RFC 1902 SMI for SNMPv2 January 1996 |
| |
| |
| The SMI is divided into three parts: module definitions, object |
| definitions, and, notification definitions. |
| |
| (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. |
| |
| (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. |
| |
| (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. |
| |
| 1.1. A Note on Terminology |
| |
| For the purpose of exposition, the original Internet-standard Network |
| Management Framework, as described in RFCs 1155 (STD 16), 1157 (STD |
| 15), and 1212 (STD 16), is termed the SNMP version 1 framework |
| (SNMPv1). The current framework is termed the SNMP version 2 |
| framework (SNMPv2). |
| |
| 2. Definitions |
| |
| SNMPv2-SMI DEFINITIONS ::= BEGIN |
| |
| |
| -- the path to the root |
| |
| org OBJECT IDENTIFIER ::= { iso 3 } |
| dod OBJECT IDENTIFIER ::= { org 6 } |
| internet OBJECT IDENTIFIER ::= { dod 1 } |
| |
| directory OBJECT IDENTIFIER ::= { internet 1 } |
| |
| mgmt OBJECT IDENTIFIER ::= { internet 2 } |
| mib-2 OBJECT IDENTIFIER ::= { mgmt 1 } |
| transmission OBJECT IDENTIFIER ::= { mib-2 10 } |
| |
| experimental OBJECT IDENTIFIER ::= { internet 3 } |
| |
| private OBJECT IDENTIFIER ::= { internet 4 } |
| enterprises OBJECT IDENTIFIER ::= { private 1 } |
| |
| security OBJECT IDENTIFIER ::= { internet 5 } |
| |
| |
| |
| |
| SNMPv2 Working Group Standards Track [Page 2] |
| |
| RFC 1902 SMI for SNMPv2 January 1996 |
| |
| |
| snmpV2 OBJECT IDENTIFIER ::= { internet 6 } |
| |
| -- transport domains |
| snmpDomains OBJECT IDENTIFIER ::= { snmpV2 1 } |
| |
| -- transport proxies |
| snmpProxys OBJECT IDENTIFIER ::= { snmpV2 2 } |
| |
| -- module identities |
| snmpModules OBJECT IDENTIFIER ::= { snmpV2 3 } |
| |
| |
| -- definitions for information modules |
| |
| MODULE-IDENTITY MACRO ::= |
| BEGIN |
| TYPE NOTATION ::= |
| "LAST-UPDATED" value(Update UTCTime) |
| "ORGANIZATION" Text |
| "CONTACT-INFO" Text |
| "DESCRIPTION" Text |
| RevisionPart |
| |
| VALUE NOTATION ::= |
| value(VALUE OBJECT IDENTIFIER) |
| |
| RevisionPart ::= |
| Revisions |
| | empty |
| Revisions ::= |
| Revision |
| | Revisions Revision |
| Revision ::= |
| "REVISION" value(Update UTCTime) |
| "DESCRIPTION" Text |
| |
| -- uses the NVT ASCII character set |
| Text ::= """" string """" |
| END |
| |
| |
| OBJECT-IDENTITY MACRO ::= |
| BEGIN |
| TYPE NOTATION ::= |
| "STATUS" Status |
| "DESCRIPTION" Text |
| ReferPart |
| |
| |
| |
| |
| SNMPv2 Working Group Standards Track [Page 3] |
| |
| RFC 1902 SMI for SNMPv2 January 1996 |
| |
| |
| VALUE NOTATION ::= |
| value(VALUE OBJECT IDENTIFIER) |
| |
| Status ::= |
| "current" |
| | "deprecated" |
| | "obsolete" |
| |
| ReferPart ::= |
| "REFERENCE" Text |
| | empty |
| |
| Text ::= """" string """" |
| END |
| |
| |
| -- names of objects |
| |
| ObjectName ::= |
| OBJECT IDENTIFIER |
| |
| NotificationName ::= |
| OBJECT IDENTIFIER |
| |
| -- syntax of objects |
| |
| ObjectSyntax ::= |
| CHOICE { |
| simple |
| SimpleSyntax, |
| |
| -- note that SEQUENCEs for conceptual tables and |
| -- rows are not mentioned here... |
| |
| application-wide |
| ApplicationSyntax |
| } |
| |
| |
| -- built-in ASN.1 types |
| |
| SimpleSyntax ::= |
| CHOICE { |
| -- INTEGERs with a more restrictive range |
| -- may also be used |
| integer-value -- includes Integer32 |
| INTEGER (-2147483648..2147483647), |
| |
| |
| |
| |
| SNMPv2 Working Group Standards Track [Page 4] |
| |
| RFC 1902 SMI for SNMPv2 January 1996 |
| |
| |
| -- OCTET STRINGs with a more restrictive size |
| -- may also be used |
| string-value |
| OCTET STRING (SIZE (0..65535)), |
| |
| objectID-value |
| OBJECT IDENTIFIER |
| } |
| |
| |
| -- indistinguishable from INTEGER, but never needs more than |
| -- 32-bits for a two's complement representation |
| Integer32 ::= |
| [UNIVERSAL 2] |
| IMPLICIT INTEGER (-2147483648..2147483647) |
| |
| |
| -- application-wide types |
| |
| ApplicationSyntax ::= |
| CHOICE { |
| ipAddress-value |
| IpAddress, |
| |
| counter-value |
| Counter32, |
| |
| timeticks-value |
| TimeTicks, |
| |
| arbitrary-value |
| Opaque, |
| |
| big-counter-value |
| Counter64, |
| |
| unsigned-integer-value -- includes Gauge32 |
| Unsigned32 |
| } |
| |
| -- in network-byte order |
| -- (this is a tagged type for historical reasons) |
| IpAddress ::= |
| [APPLICATION 0] |
| IMPLICIT OCTET STRING (SIZE (4)) |
| |
| -- this wraps |
| Counter32 ::= |
| |
| |
| |
| SNMPv2 Working Group Standards Track [Page 5] |
| |
| RFC 1902 SMI for SNMPv2 January 1996 |
| |
| |
| [APPLICATION 1] |
| IMPLICIT INTEGER (0..4294967295) |
| |
| -- this doesn't wrap |
| Gauge32 ::= |
| [APPLICATION 2] |
| IMPLICIT INTEGER (0..4294967295) |
| |
| -- an unsigned 32-bit quantity |
| -- indistinguishable from Gauge32 |
| Unsigned32 ::= |
| [APPLICATION 2] |
| IMPLICIT INTEGER (0..4294967295) |
| |
| -- hundredths of seconds since an epoch |
| TimeTicks ::= |
| [APPLICATION 3] |
| IMPLICIT INTEGER (0..4294967295) |
| |
| -- for backward-compatibility only |
| Opaque ::= |
| [APPLICATION 4] |
| IMPLICIT OCTET STRING |
| |
| -- for counters that wrap in less than one hour with only 32 bits |
| Counter64 ::= |
| [APPLICATION 6] |
| IMPLICIT INTEGER (0..18446744073709551615) |
| |
| |
| -- definition for objects |
| |
| OBJECT-TYPE MACRO ::= |
| BEGIN |
| TYPE NOTATION ::= |
| "SYNTAX" Syntax |
| UnitsPart |
| "MAX-ACCESS" Access |
| "STATUS" Status |
| "DESCRIPTION" Text |
| ReferPart |
| IndexPart |
| DefValPart |
| |
| VALUE NOTATION ::= |
| value(VALUE ObjectName) |
| |
| Syntax ::= |
| |
| |
| |
| SNMPv2 Working Group Standards Track [Page 6] |
| |
| RFC 1902 SMI for SNMPv2 January 1996 |
| |
| |
| type(ObjectSyntax) |
| | "BITS" "{" Kibbles "}" |
| Kibbles ::= |
| Kibble |
| | Kibbles "," Kibble |
| Kibble ::= |
| identifier "(" nonNegativeNumber ")" |
| |
| UnitsPart ::= |
| "UNITS" Text |
| | empty |
| |
| Access ::= |
| "not-accessible" |
| | "accessible-for-notify" |
| | "read-only" |
| | "read-write" |
| | "read-create" |
| |
| Status ::= |
| "current" |
| | "deprecated" |
| | "obsolete" |
| |
| ReferPart ::= |
| "REFERENCE" Text |
| | empty |
| |
| IndexPart ::= |
| "INDEX" "{" IndexTypes "}" |
| | "AUGMENTS" "{" Entry "}" |
| | empty |
| IndexTypes ::= |
| IndexType |
| | IndexTypes "," IndexType |
| IndexType ::= |
| "IMPLIED" Index |
| | Index |
| Index ::= |
| -- use the SYNTAX value of the |
| -- correspondent OBJECT-TYPE invocation |
| value(Indexobject ObjectName) |
| Entry ::= |
| -- use the INDEX value of the |
| -- correspondent OBJECT-TYPE invocation |
| value(Entryobject ObjectName) |
| |
| DefValPart ::= |
| |
| |
| |
| SNMPv2 Working Group Standards Track [Page 7] |
| |
| RFC 1902 SMI for SNMPv2 January 1996 |
| |
| |
| "DEFVAL" "{" value(Defval Syntax) "}" |
| | empty |
| |
| -- uses the NVT ASCII character set |
| Text ::= """" string """" |
| END |
| |
| |
| -- definitions for notifications |
| |
| NOTIFICATION-TYPE MACRO ::= |
| BEGIN |
| TYPE NOTATION ::= |
| ObjectsPart |
| "STATUS" Status |
| "DESCRIPTION" Text |
| ReferPart |
| |
| VALUE NOTATION ::= |
| value(VALUE NotificationName) |
| |
| ObjectsPart ::= |
| "OBJECTS" "{" Objects "}" |
| | empty |
| Objects ::= |
| Object |
| | Objects "," Object |
| Object ::= |
| value(Name ObjectName) |
| |
| Status ::= |
| "current" |
| | "deprecated" |
| | "obsolete" |
| |
| ReferPart ::= |
| "REFERENCE" Text |
| | empty |
| |
| -- uses the NVT ASCII character set |
| Text ::= """" string """" |
| END |
| |
| -- definitions of administrative identifiers |
| |
| zeroDotZero OBJECT-IDENTITY |
| STATUS current |
| DESCRIPTION |
| |
| |
| |
| SNMPv2 Working Group Standards Track [Page 8] |
| |
| RFC 1902 SMI for SNMPv2 January 1996 |
| |
| |
| "A value used for null identifiers." |
| ::= { 0 0 } |
| |
| END |
| |
| 3. Information Modules |
| |
| An "information module" is an ASN.1 module defining information |
| relating to network management. |
| |
| The SMI describes how to use a subset of ASN.1 to define an |
| information module. Further, additional restrictions are placed on |
| "standard" information modules. It is strongly recommended that |
| "enterprise-specific" information modules also adhere to these |
| restrictions. |
| |
| Typically, there are three kinds of information modules: |
| |
| (1) MIB modules, which contain definitions of inter-related managed |
| objects, make use of the OBJECT-TYPE and NOTIFICATION-TYPE macros; |
| |
| (2) compliance statements for MIB modules, which make use of the |
| MODULE-COMPLIANCE and OBJECT-GROUP macros [2]; and, |
| |
| (3) capability statements for agent implementations which make use of |
| the AGENT-CAPABILITIES macros [2]. |
| |
| This classification scheme does not imply a rigid taxonomy. For |
| example, a "standard" information module 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 SNMPv2 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 |
| SNMPv2, and instances of ASN.1 macros defined in this document and in |
| other documents [2, 3] of the SNMPv2 framework. Additional ASN.1 |
| macros may not be defined in SNMPv2 information modules. |
| |
| 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 |
| |
| |
| |
| SNMPv2 Working Group Standards Track [Page 9] |
| |
| RFC 1902 SMI for SNMPv2 January 1996 |
| |
| |
| 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. |
| |
| 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. |
| |
| 3.1. Macro Invocation |
| |
| Within an information module, each macro invocation appears as: |
| |
| <descriptor> <macro> <clauses> ::= <value> |
| |
| where <descriptor> corresponds to an ASN.1 identifier, <macro> 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].) |
| |
| 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, even though hyphen is allowed by [1]. This |
| restriction enables arithmetic expressions in languages which use the |
| minus sign to reference these descriptors without ambiguity.) |
| |
| 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. |
| |
| 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. |
| |
| 3.1.1. Textual Clauses |
| |
| Some clauses in a macro invocation may take a textual value (e.g., |
| the DESCRIPTION clause). Note that, in order to conform to the ASN.1 |
| syntax, the entire value of these clauses must be enclosed in double |
| quotation marks, and therefore cannot itself contain double quotation |
| |
| |
| |
| SNMPv2 Working Group Standards Track [Page 10] |
| |
| RFC 1902 SMI for SNMPv2 January 1996 |
| |
| |
| marks, although the value may be multi-line. |
| |
| 3.2. IMPORTing Symbols |
| |
| 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. |
| |
| 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 even when there is no collision |
| when IMPORTing symbols. |
| |
| Finally, the IMPORTS statement may not be used to import an ASN.1 |
| named type which corresponds to either the SEQUENCE or SEQUENCE OF |
| type. |
| |
| 3.3. Exporting Symbols |
| |
| The ASN.1 EXPORTS statement is not allowed in SNMPv2 information |
| modules. All items defined in an information module are |
| automatically exported. |
| |
| 3.4. ASN.1 Comments |
| |
| Comments in ASN.1 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. |
| |
| 3.5. OBJECT IDENTIFIER values |
| |
| An OBJECT IDENTIFIER value is an ordered list of non-negative |
| numbers. For the SNMPv2 framework, 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). 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: |
| |
| |
| |
| SNMPv2 Working Group Standards Track [Page 11] |
| |
| RFC 1902 SMI for SNMPv2 January 1996 |
| |
| |
| Value Name |
| 0 ccitt |
| 1 iso |
| 2 joint-iso-ccitt |
| |
| 4. Naming Hierarchy |
| |
| The root of the subtree administered by the Internet Assigned Numbers |
| Authority (IANA) for the Internet is: |
| |
| internet OBJECT IDENTIFIER ::= { iso 3 6 1 } |
| |
| That is, the Internet subtree of OBJECT IDENTIFIERs starts with the |
| prefix: |
| |
| 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 } |
| |
| However, the SMI does not prohibit the definition of objects in other |
| portions of the object tree. |
| |
| The mgmt(2) subtree is used to identify "standard" objects. |
| |
| 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. |
| |
| 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. |
| |
| 5. Mapping of the MODULE-IDENTITY macro |
| |
| 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. |
| |
| |
| |
| SNMPv2 Working Group Standards Track [Page 12] |
| |
| RFC 1902 SMI for SNMPv2 January 1996 |
| |
| |
| Note that reference in an IMPORTS clause or in clauses of SNMPv2 |
| 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. |
| |
| 5.1. Mapping of the LAST-UPDATED clause |
| |
| The LAST-UPDATED clause, which must be present, contains the date and |
| time that this information module was last edited. The date and time |
| are represented in UTC Time format (see Appendix B). |
| |
| 5.2. Mapping of the ORGANIZATION clause |
| |
| The ORGANIZATION clause, which must be present, contains a textual |
| description of the organization under whose auspices this information |
| module was developed. |
| |
| 5.3. Mapping of the CONTACT-INFO clause |
| |
| 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. |
| |
| 5.4. Mapping of the DESCRIPTION clause |
| |
| The DESCRIPTION clause, which must be present, contains a high-level |
| textual description of the contents of this information module. |
| |
| 5.5. Mapping of the REVISION clause |
| |
| 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 date and time are represented in UTC Time format |
| (see Appendix B). |
| |
| 5.5.1. Mapping of the DESCRIPTION sub-clause |
| |
| The DESCRIPTION clause, which must be present for each REVISION |
| clause, contains a high-level textual description of the revision |
| identified in that REVISION clause. |
| |
| 5.6. Mapping of the MODULE-IDENTITY value |
| |
| The value of an invocation of the MODULE-IDENTITY macro is an OBJECT |
| IDENTIFIER. As such, this value may be authoritatively used when |
| |
| |
| |
| SNMPv2 Working Group Standards Track [Page 13] |
| |
| RFC 1902 SMI for SNMPv2 January 1996 |
| |
| |
| specifying an OBJECT IDENTIFIER value to refer to the information |
| module containing the invocation. |
| |
| 5.7. Usage Example |
| |
| Consider how a skeletal MIB module might be constructed: e.g., |
| |
| FIZBIN-MIB DEFINITIONS ::= BEGIN |
| |
| IMPORTS |
| MODULE-IDENTITY, OBJECT-TYPE, experimental |
| FROM SNMPv2-SMI; |
| |
| |
| fizbin MODULE-IDENTITY |
| LAST-UPDATED "9505241811Z" |
| ORGANIZATION "IETF SNMPv2 Working Group" |
| CONTACT-INFO |
| " Marshall T. Rose |
| |
| Postal: Dover Beach Consulting, Inc. |
| 420 Whisman Court |
| Mountain View, CA 94043-2186 |
| US |
| |
| Tel: +1 415 968 1052 |
| Fax: +1 415 968 2510 |
| |
| E-mail: 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." |
| -- contact IANA for actual number |
| ::= { experimental xx } |
| |
| |
| END |
| |
| |
| |
| |
| |
| |
| |
| |
| SNMPv2 Working Group Standards Track [Page 14] |
| |
| RFC 1902 SMI for SNMPv2 January 1996 |
| |
| |
| 6. Mapping of the OBJECT-IDENTITY macro |
| |
| 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. |
| |
| 6.1. Mapping of the STATUS clause |
| |
| The STATUS clause, which must be present, indicates whether this |
| definition is current or historic. |
| |
| The values "current", and "obsolete" are self-explanatory. The |
| "deprecated" value indicates that the definition is obsolete, but |
| that an implementor may wish to support it to foster interoperability |
| with older implementations. |
| |
| 6.2. Mapping of the DESCRIPTION clause |
| |
| The DESCRIPTION clause, which must be present, contains a textual |
| description of the object assignment. |
| |
| 6.3. Mapping of the REFERENCE clause |
| |
| The REFERENCE clause, which need not be present, contains a textual |
| cross-reference to an object assignment defined in some other |
| information module. |
| |
| 6.4. Mapping of the OBJECT-IDENTITY value |
| |
| The value of an invocation of the OBJECT-IDENTITY macro is an OBJECT |
| IDENTIFIER. |
| |
| 6.5. Usage Example |
| |
| 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 } |
| |
| |
| |
| |
| |
| |
| SNMPv2 Working Group Standards Track [Page 15] |
| |
| RFC 1902 SMI for SNMPv2 January 1996 |
| |
| |
| 7. Mapping of the OBJECT-TYPE macro |
| |
| 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. |
| |
| 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. |
| |
| 7.1. Mapping of the SYNTAX clause |
| |
| 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]. |
| |
| A extended subset of the full capabilities of ASN.1 sub-typing is |
| allowed, as appropriate to the underingly ASN.1 type. Any such |
| restriction on size, range, enumerations or repertoire 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 C of this memo. |
| |
| The semantics of ObjectSyntax are now described. |
| |
| 7.1.1. Integer32 and INTEGER |
| |
| 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. |
| |
| The INTEGER 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. |
| |
| |
| |
| |
| SNMPv2 Working Group Standards Track [Page 16] |
| |
| RFC 1902 SMI for SNMPv2 January 1996 |
| |
| |
| Finally, a label for a named-number enumeration must consist of one |
| or more letters or digits (no hyphens), 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.) |
| |
| 7.1.2. OCTET STRING |
| |
| The OCTET STRING type represents arbitrary binary or textual data. |
| Although there is no SMI-specified size limitation for this type, MIB |
| designers should realize that there may be implementation and |
| interoperability limitations for sizes in excess of 255 octets. |
| |
| 7.1.3. OBJECT IDENTIFIER |
| |
| 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). |
| |
| 7.1.4. The BITS construct |
| |
| The BITS construct represents an enumeration of named bits. This |
| collection is assigned non-negative, contiguous 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.) |
| |
| Although there is no SMI-specified limitation on the number of |
| enumerations (and therefore on the length of a value), MIB designers |
| should realize that there may be implementation and interoperability |
| limitations for sizes in excess of 128 bits. |
| |
| Finally, a label for a named-number enumeration must consist of one |
| or more letters or digits (no hyphens), 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.) |
| |
| 7.1.5. IpAddress |
| |
| The IpAddress type represents a 32-bit internet address. It is |
| represented as an OCTET STRING of length 4, in network byte-order. |
| |
| 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]. |
| |
| |
| |
| |
| |
| |
| SNMPv2 Working Group Standards Track [Page 17] |
| |
| RFC 1902 SMI for SNMPv2 January 1996 |
| |
| |
| 7.1.6. Counter32 |
| |
| 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. |
| |
| 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 a SYNTAX clause value of TimeStamp (a |
| textual convention defined in [3]) indicating the time of the last |
| discontinuity. |
| |
| The value of the MAX-ACCESS clause for objects with a SYNTAX clause |
| value of Counter32 is either "read-only" or "accessible-for-notify". |
| |
| A DEFVAL clause is not allowed for objects with a SYNTAX clause value |
| of Counter32. |
| |
| 7.1.7. Gauge32 |
| |
| The Gauge32 type represents a non-negative integer, which may |
| increase or decrease, but shall never exceed a maximum value. The |
| maximum value can not be greater than 2^32-1 (4294967295 decimal). |
| The value of a Gauge has its maximum value whenever the information |
| being modeled is greater or equal to that maximum value; if the |
| information being modeled subsequently decreases below the maximum |
| value, the Gauge also decreases. |
| |
| 7.1.8. TimeTicks |
| |
| 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. |
| |
| 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. |
| |
| The TimeTicks type may not be sub-typed. |
| |
| |
| |
| SNMPv2 Working Group Standards Track [Page 18] |
| |
| RFC 1902 SMI for SNMPv2 January 1996 |
| |
| |
| 7.1.9. Opaque |
| |
| 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. |
| |
| 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. |
| |
| 7.1.10. Counter64 |
| |
| 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. |
| |
| 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 a SYNTAX clause value of TimeStamp (a |
| textual convention defined in [3]) indicating the time of the last |
| discontinuity. |
| |
| The value of the MAX-ACCESS clause for objects with a SYNTAX clause |
| value of Counter64 is either "read-only" or "accessible-for-notify". |
| |
| 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. |
| |
| A DEFVAL clause is not allowed for objects with a SYNTAX clause value |
| of Counter64. |
| |
| |
| |
| |
| |
| |
| |
| SNMPv2 Working Group Standards Track [Page 19] |
| |
| RFC 1902 SMI for SNMPv2 January 1996 |
| |
| |
| 7.1.11. Unsigned32 |
| |
| The Unsigned32 type represents integer-valued information between 0 |
| and 2^32-1 inclusive (0 to 4294967295 decimal). |
| |
| 7.1.12. Conceptual Tables |
| |
| 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: |
| |
| SEQUENCE OF <EntryType> |
| |
| where <EntryType> refers to the SEQUENCE type of its subordinate |
| conceptual row. A conceptual row has SYNTAX of the form: |
| |
| <EntryType> |
| |
| where <EntryType> is a SEQUENCE type defined as follows: |
| |
| <EntryType> ::= SEQUENCE { <type1>, ... , <typeN> } |
| |
| where there is one <type> for each subordinate object, and each |
| <type> is of the form: |
| |
| <descriptor> <syntax> |
| |
| where <descriptor> is the descriptor naming a subordinate object, and |
| <syntax> has the value of that subordinate object's SYNTAX clause, |
| normally omitting the sub-typing information. Further, these ASN.1 |
| types are always present (the DEFAULT and OPTIONAL clauses are |
| disallowed in the SEQUENCE definition). The MAX-ACCESS clause for |
| conceptual tables and rows is "not-accessible". |
| |
| 7.1.12.1. Creation and Deletion of Conceptual Rows |
| |
| 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. |
| |
| |
| |
| SNMPv2 Working Group Standards Track [Page 20] |
| |
| RFC 1902 SMI for SNMPv2 January 1996 |
| |
| |
| 7.2. Mapping of the UNITS clause |
| |
| This UNITS clause, which need not be present, contains a textual |
| definition of the units associated with that object. |
| |
| 7.3. Mapping of the MAX-ACCESS clause |
| |
| 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.) |
| |
| 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]). |
| |
| 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".) |
| |
| 7.4. Mapping of the STATUS clause |
| |
| The STATUS clause, which must be present, indicates whether this |
| definition is current or historic. |
| |
| The values "current", and "obsolete" are self-explanatory. The |
| "deprecated" value indicates that the definition is obsolete, but |
| that an implementor may wish to support that object to foster |
| interoperability with older implementations. |
| |
| 7.5. Mapping of the DESCRIPTION clause |
| |
| 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. |
| |
| |
| |
| |
| |
| |
| SNMPv2 Working Group Standards Track [Page 21] |
| |
| RFC 1902 SMI for SNMPv2 January 1996 |
| |
| |
| 7.6. Mapping of the REFERENCE clause |
| |
| The REFERENCE clause, which need not be present, contains a textual |
| cross-reference to an object defined in some other information |
| module. This is useful when de-osifying a MIB module produced by |
| some other organization. |
| |
| 7.7. Mapping of the INDEX clause |
| |
| 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. |
| |
| 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 syntax of those |
| objects indicate how to form the instance-identifier: |
| |
| (1) integer-valued: a single sub-identifier taking the integer value |
| (this works only for non-negative integers); |
| |
| (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); |
| |
| (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); |
| |
| (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); |
| |
| (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); |
| |
| (6) IpAddress-valued: 4 sub-identifiers, in the familiar a.b.c.d |
| notation. |
| |
| 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 |
| |
| |
| |
| SNMPv2 Working Group Standards Track [Page 22] |
| |
| RFC 1902 SMI for SNMPv2 January 1996 |
| |
| |
| 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. |
| |
| 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: |
| |
| (1) within a MIB module originally written to conform to the SNMPv1 |
| framework, and later converted to conform to the SNMPv2 framework; |
| or |
| |
| (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.) |
| |
| 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. |
| |
| 7.8. Mapping of the AUGMENTS clause |
| |
| 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. |
| |
| 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 |
| |
| |
| |
| SNMPv2 Working Group Standards Track [Page 23] |
| |
| RFC 1902 SMI for SNMPv2 January 1996 |
| |
| |
| 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. |
| |
| 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 1573's ifTable |
| and the many media-specific MIBs which extend it for specific media |
| (e.g., the dot3Table in RFC 1650), since not all interfaces are of |
| the same media. |
| |
| Note that a base conceptual row may be augmented by multiple |
| conceptual row augmentations. |
| |
| 7.8.1. Relation between INDEX and AUGMENTS clauses |
| |
| 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. |
| |
| (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 1573's ifTable and a |
| media-specific MIB which extends the ifTable for a specific media |
| (e.g., the dot3Table in RFC 1650), is a sparse relationship. |
| |
| (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. |
| |
| 7.9. Mapping of the DEFVAL clause |
| |
| The DEFVAL clause, which need not be present, defines an acceptable |
| default value which may be used at the discretion of a SNMPv2 entity |
| acting in an agent role when an object instance is created. |
| |
| |
| |
| SNMPv2 Working Group Standards Track [Page 24] |
| |
| RFC 1902 SMI for SNMPv2 January 1996 |
| |
| |
| 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 a SNMPv2 entity |
| acting in an agent role might use. |
| |
| 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. |
| |
| 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 a SNMPv2 entity acting in an agent |
| role might use. |
| |
| 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 } |
| OBJECT IDENTIFIER DEFVAL { sysDescr } |
| BITS DEFVAL { { primary, secondary } } |
| -- enumerated values that are set |
| IpAddress DEFVAL { 'c0210415'H } -- 192.33.4.21 |
| |
| 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. |
| |
| 7.10. Mapping of the OBJECT-TYPE value |
| |
| 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. |
| |
| 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" to the administratively assigned name for the conceptual table. |
| |
| |
| |
| |
| SNMPv2 Working Group Standards Track [Page 25] |
| |
| RFC 1902 SMI for SNMPv2 January 1996 |
| |
| |
| (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. |
| |
| (3) Otherwise, no other OBJECT IDENTIFIERs which are subordinate to the |
| object may be assigned. |
| |
| 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. |
| |
| Further note that although conceptual tables and rows are given |
| administratively assigned names, these conceptual objects may not be |
| manipulated in aggregate form by the management protocol. |
| |
| 7.11. Usage Example |
| |
| Consider how one might define a conceptual table and its |
| subordinates. (This example uses the RowStatus textual convention |
| defined in [3].) |
| |
| evalSlot OBJECT-TYPE |
| SYNTAX INTEGER |
| MAX-ACCESS read-only |
| STATUS current |
| DESCRIPTION |
| "The index number of the first unassigned entry in the |
| evaluation table. |
| |
| 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 |
| |
| |
| |
| SNMPv2 Working Group Standards Track [Page 26] |
| |
| RFC 1902 SMI for SNMPv2 January 1996 |
| |
| |
| "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 ::= |
| SEQUENCE { |
| evalIndex Integer32, |
| evalString DisplayString, |
| evalValue Integer32, |
| evalStatus RowStatus |
| } |
| |
| evalIndex OBJECT-TYPE |
| SYNTAX Integer32 |
| 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 } |
| |
| evalValue OBJECT-TYPE |
| SYNTAX Integer32 |
| MAX-ACCESS read-only |
| STATUS current |
| DESCRIPTION |
| "The value when evalString was last executed." |
| DEFVAL { 0 } |
| ::= { evalEntry 3 } |
| |
| evalStatus OBJECT-TYPE |
| SYNTAX RowStatus |
| |
| |
| |
| SNMPv2 Working Group Standards Track [Page 27] |
| |
| RFC 1902 SMI for SNMPv2 January 1996 |
| |
| |
| 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 } |
| |
| 8. Mapping of the NOTIFICATION-TYPE macro |
| |
| 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. |
| |
| 8.1. Mapping of the OBJECTS clause |
| |
| The OBJECTS clause, which need not be present, defines the ordered |
| sequence of MIB object types which are contained within every |
| instance of the notification. An object type specified in this |
| clause may not have an MAX-ACCESS clause of "not-accessible". |
| |
| 8.2. Mapping of the STATUS clause |
| |
| The STATUS clause, which must be present, indicates whether this |
| definition is current or historic. |
| |
| The values "current", and "obsolete" are self-explanatory. The |
| "deprecated" value indicates that the definition is obsolete, but |
| that an implementor may wish to support the notification to foster |
| interoperability with older implementations. |
| |
| 8.3. Mapping of the DESCRIPTION clause |
| |
| 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. |
| |
| |
| |
| |
| |
| |
| SNMPv2 Working Group Standards Track [Page 28] |
| |
| RFC 1902 SMI for SNMPv2 January 1996 |
| |
| |
| 8.4. Mapping of the REFERENCE clause |
| |
| The REFERENCE clause, which need not be present, contains a textual |
| cross-reference to a notification defined in some other information |
| module. This is useful when de-osifying a MIB module produced by |
| some other organization. |
| |
| 8.5. Mapping of the NOTIFICATION-TYPE value |
| |
| 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 the procedures employed by proxy agents (see Section 3.1.2 of |
| [7]), the next to last sub-identifier in the name of any newly- |
| defined notification must have the value zero. |
| |
| 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. |
| |
| 8.6. Usage Example |
| |
| Consider how a linkUp trap might be described: |
| |
| linkUp NOTIFICATION-TYPE |
| OBJECTS { ifIndex } |
| STATUS current |
| DESCRIPTION |
| "A linkUp trap signifies that the SNMPv2 entity, acting in |
| an agent role, recognizes that one of the communication |
| links represented in its configuration has come up." |
| ::= { snmpTraps 4 } |
| |
| According to this invocation, the trap authoritatively identified as |
| |
| { snmpTraps 4 } |
| |
| is used to report a link coming up. |
| |
| 9. Refined Syntax |
| |
| 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. |
| |
| |
| |
| |
| SNMPv2 Working Group Standards Track [Page 29] |
| |
| RFC 1902 SMI for SNMPv2 January 1996 |
| |
| |
| Further, the following restrictions apply: |
| |
| Restrictions to Refinement on |
| object syntax range enumeration size repertoire |
| ----------------- ----- ----------- ---- ---------- |
| INTEGER (1) (2) - - |
| Integer32 (1) - - - |
| Unsigned32 (1) - - - |
| OCTET STRING - - (3) (4) |
| 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; |
| |
| (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); |
| |
| (3) the size in characters of the value may be refined by raising the |
| lower-bounds, by reducing the upper-bounds, and/or by reducing the |
| alternative size choices; or, |
| |
| (4) the repertoire of characters in the value may be reduced by further |
| sub-typing. |
| |
| Otherwise no refinements are possible. Further details on sub-typing |
| are provided in Appendix C. |
| |
| 10. Extending an Information Module |
| |
| As experience is gained with a published information module, it may |
| be desirable to revise that information module. |
| |
| To begin, the invocation of the MODULE-IDENTITY macro should be |
| updated to include information about the revision. Usually, this |
| consists of updating the LAST-UPDATED clause and adding a pair of |
| REVISION and DESCRIPTION clauses. However, other existing clauses in |
| the invocation may be updated. |
| |
| |
| |
| |
| SNMPv2 Working Group Standards Track [Page 30] |
| |
| RFC 1902 SMI for SNMPv2 January 1996 |
| |
| |
| Note that the module's label (e.g., "FIZBIN-MIB" from the example in |
| Section 5.8), is not changed when the information module is revised. |
| |
| 10.1. Object Assignments |
| |
| 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. |
| |
| 10.2. Object Definitions |
| |
| 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. |
| |
| (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". |
| |
| (3) A DEFVAL clause may be added or updated. |
| |
| (4) A REFERENCE clause may be added or updated. |
| |
| (5) A UNITS clause may be added. |
| |
| (6) A conceptual row may be augmented by adding new columnar objects at |
| the end of the row. |
| |
| (7) Entirely new objects may be defined, named with previously |
| unassigned OBJECT IDENTIFIER values. |
| |
| Otherwise, if the semantics of any previously defined object 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 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. |
| |
| Finally, note that if an object has the value of its STATUS clause |
| changed, then the value of its DESCRIPTION clause should be updated |
| accordingly. |
| |
| |
| |
| |
| |
| |
| SNMPv2 Working Group Standards Track [Page 31] |
| |
| RFC 1902 SMI for SNMPv2 January 1996 |
| |
| |
| 10.3. Notification Definitions |
| |
| A notification definition may be revised in any of the following |
| ways: |
| |
| (1) A REFERENCE clause may be added or updated. |
| |
| 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. |
| |
| Finally, note that if an object has the value of its STATUS clause |
| changed, then the value of its DESCRIPTION clause should be updated |
| accordingly. |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| SNMPv2 Working Group Standards Track [Page 32] |
| |
| RFC 1902 SMI for SNMPv2 January 1996 |
| |
| |
| 11. Appendix A: de-OSIfying a MIB module |
| |
| There has been an increasing amount of work recently on taking MIBs |
| defined by other organizations (e.g., the IEEE) and de-osifying them |
| for use with the Internet-standard network management framework. The |
| steps to achieve this are straight-forward, though tedious. Of |
| course, it is helpful to already be experienced in writing MIB |
| modules for use with the Internet-standard network management |
| framework. |
| |
| The first step is to construct a skeletal MIB module, as shown |
| earlier in Section 5.8. The next step is to categorize the objects |
| into groups. Optional objects are not permitted. Thus, when a MIB |
| module is created, optional objects must be placed in a additional |
| groups, which, if implemented, all objects in the group must be |
| implemented. For the first pass, it is wisest to simply ignore any |
| optional objects in the original MIB: experience shows it is better |
| to define a core MIB module first, containing only essential objects; |
| later, if experience demands, other objects can be added. |
| |
| 11.1. Managed Object Mapping |
| |
| Next for each managed object class, determine whether there can exist |
| multiple instances of that managed object class. If not, then for |
| each of its attributes, use the OBJECT-TYPE macro to make an |
| equivalent definition. |
| |
| Otherwise, if multiple instances of the managed object class can |
| exist, then define a conceptual table having conceptual rows each |
| containing a columnar object for each of the managed object class's |
| attributes. If the managed object class is contained within the |
| containment tree of another managed object class, then the assignment |
| of an object is normally required for each of the "distinguished |
| attributes" of the containing managed object class. If they do not |
| already exist within the MIB module, then they can be added via the |
| definition of additional columnar objects in the conceptual row |
| corresponding to the contained managed object class. |
| |
| In defining a conceptual row, it is useful to consider the |
| optimization of network management operations which will act upon its |
| columnar objects. In particular, it is wisest to avoid defining more |
| columnar objects within a conceptual row, than can fit in a single |
| PDU. As a rule of thumb, a conceptual row should contain no more |
| than approximately 20 objects. Similarly, or as a way to abide by |
| the "20 object guideline", columnar objects should be grouped into |
| tables according to the expected grouping of network management |
| operations upon them. As such, the content of conceptual rows should |
| reflect typical access scenarios, e.g., they should be organized |
| |
| |
| |
| SNMPv2 Working Group Standards Track [Page 33] |
| |
| RFC 1902 SMI for SNMPv2 January 1996 |
| |
| |
| along functional lines such as one row for statistics and another row |
| for parameters, or along usage lines such as commonly-needed objects |
| versus rarely-needed objects. |
| |
| On the other hand, the definition of conceptual rows where the number |
| of columnar objects used as indexes outnumbers the number used to |
| hold information, should also be avoided. In particular, the |
| splitting of a managed object class's attributes into many conceptual |
| tables should not be used as a way to obtain the same degree of |
| flexibility/complexity as is often found in MIBs with a myriad of |
| optionals. |
| |
| 11.1.1. Mapping to the SYNTAX clause |
| |
| When mapping to the SYNTAX clause of the OBJECT-TYPE macro: |
| |
| (1) An object with BOOLEAN syntax becomes a TruthValue [3]. |
| |
| (2) An object with INTEGER syntax becomes an Integer32. |
| |
| (3) An object with ENUMERATED syntax becomes an INTEGER with |
| enumerations, taking any of the values given which can be |
| represented with an Integer32. |
| |
| (4) An object with BIT STRING syntax having enumerations becomes a BITS |
| construct. |
| |
| (5) An object with BIT STRING syntax but no enumerations becomes an |
| OCTET STRING. |
| |
| (6) An object with a character string syntax becomes either an OCTET |
| STRING, or a DisplayString [3], depending on the repertoire of the |
| character string. |
| |
| (7) A non-tabular object with a complex syntax, such as REAL or |
| EXTERNAL, must be decomposed, usually into an OCTET STRING (if |
| sensible). As a rule, any object with a complicated syntax should |
| be avoided. |
| |
| (8) Tabular objects must be decomposed into rows of columnar objects. |
| |
| 11.1.2. Mapping to the UNITS clause |
| |
| If the description of this managed object defines a unit-basis, then |
| mapping to this clause is straight-forward. |
| |
| |
| |
| |
| |
| |
| SNMPv2 Working Group Standards Track [Page 34] |
| |
| RFC 1902 SMI for SNMPv2 January 1996 |
| |
| |
| 11.1.3. Mapping to the MAX-ACCESS clause |
| |
| This is straight-forward. |
| |
| 11.1.4. Mapping to the STATUS clause |
| |
| This is straight-forward. |
| |
| 11.1.5. Mapping to the DESCRIPTION clause |
| |
| This is straight-forward: simply copy the text, making sure that any |
| embedded double quotation marks are sanitized (i.e., replaced with |
| single-quotes or removed). |
| |
| 11.1.6. Mapping to the REFERENCE clause |
| |
| This is straight-forward: simply include a textual reference to the |
| object being mapped, the document which defines the object, and |
| perhaps a page number in the document. |
| |
| 11.1.7. Mapping to the INDEX clause |
| |
| If necessary, decide how instance-identifiers for columnar objects |
| are to be formed and define this clause accordingly. |
| |
| 11.1.8. Mapping to the DEFVAL clause |
| |
| Decide if a meaningful default value can be assigned to the object |
| being mapped, and if so, define the DEFVAL clause accordingly. |
| |
| 11.2. Action Mapping |
| |
| Actions are modeled as read-write objects, in which writing a |
| particular value results in a state change. (Usually, as a part of |
| this state change, some action might take place.) |
| |
| 11.2.1. Mapping to the SYNTAX clause |
| |
| Usually the Integer32 syntax is used with a distinguished value |
| provided for each action that the object provides access to. In |
| addition, there is usually one other distinguished value, which is |
| the one returned when the object is read. |
| |
| 11.2.2. Mapping to the MAX-ACCESS clause |
| |
| Always use read-write or read-create. |
| |
| |
| |
| |
| |
| SNMPv2 Working Group Standards Track [Page 35] |
| |
| RFC 1902 SMI for SNMPv2 January 1996 |
| |
| |
| 11.2.3. Mapping to the STATUS clause |
| |
| This is straight-forward. |
| |
| 11.2.4. Mapping to the DESCRIPTION clause |
| |
| This is straight-forward: simply copy the text, making sure that any |
| embedded double quotation marks are sanitized (i.e., replaced with |
| single-quotes or removed). |
| |
| 11.2.5. Mapping to the REFERENCE clause |
| |
| This is straight-forward: simply include a textual reference to the |
| action being mapped, the document which defines the action, and |
| perhaps a page number in the document. |
| |
| 11.3. Event Mapping |
| |
| Events are modeled as SNMPv2 notifications using NOTIFICATION-TYPE |
| macro. However, recall that SNMPv2 emphasizes trap-directed polling. |
| As such, few, and usually no, notifications, need be defined for any |
| MIB module. |
| |
| 11.3.1. Mapping to the STATUS clause |
| |
| This is straight-forward. |
| |
| 11.3.2. Mapping to the DESCRIPTION clause |
| |
| This is straight-forward: simply copy the text, making sure that any |
| embedded double quotation marks are sanitized (i.e., replaced with |
| single-quotes or removed). |
| |
| 11.3.3. Mapping to the REFERENCE clause |
| |
| This is straight-forward: simply include a textual reference to the |
| notification being mapped, the document which defines the |
| notification, and perhaps a page number in the document. |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| SNMPv2 Working Group Standards Track [Page 36] |
| |
| RFC 1902 SMI for SNMPv2 January 1996 |
| |
| |
| 12. Appendix B: UTC Time Format |
| |
| Several clauses defined in this document use the UTC Time format: |
| |
| YYMMDDHHMMZ |
| |
| where: YY - last two digits of year |
| MM - month (01 through 12) |
| DD - day of month (01 through 31) |
| HH - hours (00 through 23) |
| MM - minutes (00 through 59) |
| Z - the character "Z" denotes Greenwich Mean Time (GMT). |
| |
| For example, "9502192015Z" represents 8:15pm GMT on 19 February 1995. |
| |
| 13. Appendix C: Detailed Sub-typing Rules |
| |
| 13.1. Syntax Rules |
| |
| 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. |
| |
| <integerSubType> |
| ::= <empty> |
| | "(" <range> ["|" <range>]... ")" |
| |
| <octetStringSubType> |
| ::= <empty> |
| | "(" "SIZE" "(" <range> ["|" <range>]... ")" ")" |
| |
| <range> |
| ::= <value> |
| | <value> ".." <value> |
| |
| <value> |
| ::= "-" <number> |
| | <number> |
| | <hexString> |
| | <binString> |
| |
| where: |
| <empty> is the empty string |
| <number> is a non-negative integer |
| <hexString> is a hexadecimal string (i.e. 'xxxx'H) |
| <binString> is a binary string (i.e. 'xxxx'B) |
| |
| |
| |
| |
| SNMPv2 Working Group Standards Track [Page 37] |
| |
| RFC 1902 SMI for SNMPv2 January 1996 |
| |
| |
| <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. |
| |
| 13.2. Examples |
| |
| 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)) |
| |
| 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 |
| |
| 13.3. Rules for Textual Conventions |
| |
| Sub-typing of Textual Conventions (see [3]) is allowed but must be |
| valid. In particular, each range specified for the textual |
| convention must be a subset of a range specified for the base type. |
| For example, |
| |
| Tc1 ::= INTEGER (1..10 | 11..20) |
| Tc2 ::= Tc1 (2..10 | 12..15) -- is valid |
| Tc3 ::= Tc1 (4..8) -- is valid |
| Tc4 ::= Tc1 (8..12) -- is invalid |
| |
| 14. Security Considerations |
| |
| Security issues are not discussed in this memo. |
| |
| |
| |
| |
| SNMPv2 Working Group Standards Track [Page 38] |
| |
| RFC 1902 SMI for SNMPv2 January 1996 |
| |
| |
| 15. Editor's Address |
| |
| Keith McCloghrie |
| Cisco Systems, Inc. |
| 170 West Tasman Drive |
| San Jose, CA 95134-1706 |
| US |
| |
| Phone: +1 408 526 5260 |
| EMail: kzm@cisco.com |
| |
| 16. Acknowledgements |
| |
| This document is the result of significant work by the four major |
| contributors: |
| |
| Jeffrey D. Case (SNMP Research, case@snmp.com) |
| Keith McCloghrie (Cisco Systems, kzm@cisco.com) |
| Marshall T. Rose (Dover Beach Consulting, mrose@dbc.mtview.ca.us) |
| Steven Waldbusser (International Network Services, stevew@uni.ins.com) |
| |
| In addition, the contributions of the SNMPv2 Working Group are |
| acknowledged. In particular, a special thanks is extended for the |
| contributions of: |
| |
| Alexander I. Alten (Novell) |
| Dave Arneson (Cabletron) |
| Uri Blumenthal (IBM) |
| Doug Book (Chipcom) |
| Kim Curran (Bell-Northern Research) |
| Jim Galvin (Trusted Information Systems) |
| Maria Greene (Ascom Timeplex) |
| Iain Hanson (Digital) |
| Dave Harrington (Cabletron) |
| Nguyen Hien (IBM) |
| Jeff Johnson (Cisco Systems) |
| Michael Kornegay (Object Quest) |
| Deirdre Kostick (AT&T Bell Labs) |
| David Levi (SNMP Research) |
| Daniel Mahoney (Cabletron) |
| Bob Natale (ACE*COMM) |
| Brian O'Keefe (Hewlett Packard) |
| Andrew Pearson (SNMP Research) |
| Dave Perkins (Peer Networks) |
| Randy Presuhn (Peer Networks) |
| Aleksey Romanov (Quality Quorum) |
| Shawn Routhier (Epilogue) |
| Jon Saperia (BGS Systems) |
| |
| |
| |
| SNMPv2 Working Group Standards Track [Page 39] |
| |
| RFC 1902 SMI for SNMPv2 January 1996 |
| |
| |
| Bob Stewart (Cisco Systems, bstewart@cisco.com), chair |
| Kaj Tesink (Bellcore) |
| Glenn Waters (Bell-Northern Research) |
| Bert Wijnen (IBM) |
| |
| 17. References |
| |
| [1] Information processing systems - Open Systems Interconnection - |
| Specification of Abstract Syntax Notation One (ASN.1), |
| International Organization for Standardization. International |
| Standard 8824, (December, 1987). |
| |
| [2] SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and |
| S. Waldbusser, "Conformance Statements for Version 2 of the Simple |
| Network Management Protocol (SNMPv2)", RFC 1904, January 1996. |
| |
| [3] SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and |
| S. Waldbusser, "Textual Conventions for Version 2 of the Simple |
| Network Management Protocol (SNMPv2)", RFC 1903, January 1996. |
| |
| [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). |
| |
| [5] 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. |
| |
| [6] 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. |
| |
| [7] SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and |
| S. Waldbusser, "Coexistence between Version 1 and Version 2 of the |
| Internet-standard Network Management Framework", RFC 1908, |
| January 1996. |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| SNMPv2 Working Group Standards Track [Page 40] |
| |