| < draft-ops-smiv2-smi-00.txt | draft-ops-smiv2-smi-01.txt > | |||
|---|---|---|---|---|
| Network Working Group Document Editors: | Network Working Group Editors of this version: | |||
| Internet Draft Keith McCloghrie | Internet Draft K. McCloghrie | |||
| Cisco Systems | Cisco Systems | |||
| David Perkins | D. Perkins | |||
| Desktalk Systems & SNMPinfo | Desktalk Systems & SNMPinfo | |||
| Juergen Schoenwaelder | J. Schoenwaelder | |||
| TU Braunschweig | TU Braunschweig | |||
| 31 October 1998 | Authors of previous version: | |||
| J. Case | ||||
| SNMP Research | ||||
| K. McCloghrie | ||||
| Cisco Systems | ||||
| M. Rose | ||||
| First Virtual Holdings | ||||
| S. Waldbusser | ||||
| International Network Services | ||||
| 30 January 1999 | ||||
| Structure of Management Information Version 2 (SMIv2) | Structure of Management Information Version 2 (SMIv2) | |||
| draft-ops-smiv2-smi-00.txt | draft-ops-smiv2-smi-01.txt | |||
| Status of this Memo | Status of this Memo | |||
| This document is an Internet-Draft. Internet-Drafts are working | This document is an Internet-Draft and is in full conformance with all | |||
| provisions of Section 10 of RFC2026. Internet-Drafts are working | ||||
| documents of the Internet Engineering Task Force (IETF), its areas, and | documents of the Internet Engineering Task Force (IETF), its areas, and | |||
| its working groups. Note that other groups may also distribute working | its working groups. Note that other groups may also distribute working | |||
| documents as Internet-Drafts. | documents as Internet-Drafts. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet- Drafts as reference material | time. It is inappropriate to use Internet-Drafts as reference material | |||
| or to cite them other than as ``work in progress.'' | or to cite them other than as ``work in progress.'' | |||
| To learn the current status of any Internet-Draft, please check the | To view the current status of any Internet-Draft, please check the | |||
| ``1id-abstracts.txt'' listing contained in the Internet- Drafts Shadow | ``1id-abstracts.txt'' listing contained in an Internet-Drafts Shadow | |||
| Directories on ftp.ietf.org (US East Coast), nic.nordu.net (Europe), | Directory, see http://www.ietf.org/shadow.html. | |||
| ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific Rim). | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (C) The Internet Society (1998). All Rights Reserved. | Copyright (C) The Internet Society (1999). All Rights Reserved. | |||
| Acknowledgements | ||||
| This document is a revision of significant previous work by the four | ||||
| major contributors: | ||||
| Jeffrey D. Case (SNMP Research, case@snmp.com) | ||||
| Keith McCloghrie (Cisco Systems, kzm@cisco.com) | ||||
| Marshall T. Rose (First Virtual Holdings, mrose@dbc.mtview.ca.us) | ||||
| Steven Waldbusser (International Network Services, stevew@uni.ins.com) | ||||
| Draft SMIv2 October 1998 | Draft SMIv2 January 1999 | |||
| 1. Introduction | 1. Introduction | |||
| Management information is viewed as a collection of managed objects, | Management information is viewed as a collection of managed objects, | |||
| residing in a virtual information store, termed the Management | residing in a virtual information store, termed the Management | |||
| Information Base (MIB). Collections of related objects are defined in | Information Base (MIB). Collections of related objects are defined in | |||
| MIB modules. These modules are written using an adapted subset of OSI's | 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 | Abstract Syntax Notation One, ASN.1 (1988) [1]. It is the purpose of | |||
| this document, the Structure of Management Information (SMI), to define | this document, the Structure of Management Information (SMI), to define | |||
| that adapted subset, and to assign a set of associated administrative | that adapted subset, and to assign a set of associated administrative | |||
| skipping to change at page 3, line 5 ¶ | skipping to change at page 3, line 5 ¶ | |||
| NOTIFICATION-TYPE, is used to concisely convey the syntax and | NOTIFICATION-TYPE, is used to concisely convey the syntax and | |||
| semantics of a notification. | semantics of a notification. | |||
| 1.1. A Note on Terminology | 1.1. A Note on Terminology | |||
| For the purpose of exposition, the original Structure of Management | For the purpose of exposition, the original Structure of Management | |||
| Information, as described in RFCs 1155 (STD 16), 1212 (STD 16), and RFC | 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 | 1215, is termed the SMI version 1 (SMIv1). The current version of the | |||
| Structure of Management Information is termed SMI version 2 (SMIv2). | Structure of Management Information is termed SMI version 2 (SMIv2). | |||
| Draft SMIv2 October 1998 | Draft SMIv2 January 1999 | |||
| 2. Definitions | 2. Definitions | |||
| SNMPv2-SMI DEFINITIONS ::= BEGIN | SNMPv2-SMI DEFINITIONS ::= BEGIN | |||
| -- the path to the root | -- the path to the root | |||
| org OBJECT IDENTIFIER ::= { iso 3 } | org OBJECT IDENTIFIER ::= { iso 3 } | |||
| dod OBJECT IDENTIFIER ::= { org 6 } | dod OBJECT IDENTIFIER ::= { org 6 } | |||
| internet OBJECT IDENTIFIER ::= { dod 1 } | internet OBJECT IDENTIFIER ::= { dod 1 } | |||
| skipping to change at page 4, line 4 ¶ | skipping to change at page 4, line 4 ¶ | |||
| snmpV2 OBJECT IDENTIFIER ::= { internet 6 } | snmpV2 OBJECT IDENTIFIER ::= { internet 6 } | |||
| -- transport domains | -- transport domains | |||
| snmpDomains OBJECT IDENTIFIER ::= { snmpV2 1 } | snmpDomains OBJECT IDENTIFIER ::= { snmpV2 1 } | |||
| -- transport proxies | -- transport proxies | |||
| snmpProxys OBJECT IDENTIFIER ::= { snmpV2 2 } | snmpProxys OBJECT IDENTIFIER ::= { snmpV2 2 } | |||
| -- module identities | -- module identities | |||
| snmpModules OBJECT IDENTIFIER ::= { snmpV2 3 } | snmpModules OBJECT IDENTIFIER ::= { snmpV2 3 } | |||
| Draft SMIv2 October 1998 | ||||
| Draft SMIv2 January 1999 | ||||
| -- Extended UTCTime, to allow dates with four-digit years | -- 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)) | ExtUTCTime ::= OCTET STRING(SIZE(11 | 13)) | |||
| -- format is YYMMDDHHMMZ or YYYYMMDDHHMMZ | -- format is YYMMDDHHMMZ or YYYYMMDDHHMMZ | |||
| -- where: YY - last two digits of year (only years | -- where: YY - last two digits of year (only years | |||
| -- between 1900-1999) | -- between 1900-1999) | |||
| -- YYYY - last four digits of the year (any year) | -- YYYY - last four digits of the year (any year) | |||
| -- MM - month (01 through 12) | -- MM - month (01 through 12) | |||
| -- DD - day of month (01 through 31) | -- DD - day of month (01 through 31) | |||
| -- HH - hours (00 through 23) | -- HH - hours (00 through 23) | |||
| -- MM - minutes (00 through 59) | -- MM - minutes (00 through 59) | |||
| -- Z - denotes GMT (the ASCII character Z) | -- Z - denotes GMT (the ASCII character Z) | |||
| -- | -- | |||
| -- For example, "9502192015Z" and "199502192015Z" represent | -- For example, "9502192015Z" and "199502192015Z" represent | |||
| -- 8:15pm GMT on 19 February 1995. Years after 1999 must use | -- 8:15pm GMT on 19 February 1995. Years after 1999 must use | |||
| -- the four digit year format. Years 1900-1999 may use the | -- the four digit year format. Years 1900-1999 may use the | |||
| -- two or four digit format. | -- two or four digit format. | |||
| -- definitions for information modules | ||||
| MODULE-IDENTITY MACRO ::= | MODULE-IDENTITY MACRO ::= | |||
| BEGIN | BEGIN | |||
| TYPE NOTATION ::= | TYPE NOTATION ::= | |||
| "LAST-UPDATED" value(Update ExtUTCTime) | "LAST-UPDATED" value(Update ExtUTCTime) | |||
| "ORGANIZATION" Text | "ORGANIZATION" Text | |||
| "CONTACT-INFO" Text | "CONTACT-INFO" Text | |||
| "DESCRIPTION" Text | "DESCRIPTION" Text | |||
| RevisionPart | RevisionPart | |||
| VALUE NOTATION ::= | VALUE NOTATION ::= | |||
| skipping to change at page 4, line 49 ¶ | skipping to change at page 5, line 4 ¶ | |||
| | empty | | empty | |||
| Revisions ::= | Revisions ::= | |||
| Revision | Revision | |||
| | Revisions Revision | | Revisions Revision | |||
| Revision ::= | Revision ::= | |||
| "REVISION" value(Update ExtUTCTime) | "REVISION" value(Update ExtUTCTime) | |||
| "DESCRIPTION" Text | "DESCRIPTION" Text | |||
| -- a character string as defined in section 3.1.1 | -- a character string as defined in section 3.1.1 | |||
| Text ::= value(IA5String) | Text ::= value(IA5String) | |||
| Draft SMIv2 January 1999 | ||||
| END | END | |||
| Draft SMIv2 October 1998 | ||||
| Draft SMIv2 January 1999 | ||||
| OBJECT-IDENTITY MACRO ::= | OBJECT-IDENTITY MACRO ::= | |||
| BEGIN | BEGIN | |||
| TYPE NOTATION ::= | TYPE NOTATION ::= | |||
| "STATUS" Status | "STATUS" Status | |||
| "DESCRIPTION" Text | "DESCRIPTION" Text | |||
| ReferPart | ReferPart | |||
| VALUE NOTATION ::= | VALUE NOTATION ::= | |||
| value(VALUE OBJECT IDENTIFIER) | value(VALUE OBJECT IDENTIFIER) | |||
| skipping to change at page 6, line 4 ¶ | skipping to change at page 7, line 4 ¶ | |||
| | "deprecated" | | "deprecated" | |||
| | "obsolete" | | "obsolete" | |||
| ReferPart ::= | ReferPart ::= | |||
| "REFERENCE" Text | "REFERENCE" Text | |||
| | empty | | empty | |||
| -- a character string as defined in section 3.1.1 | -- a character string as defined in section 3.1.1 | |||
| Text ::= value(IA5String) | Text ::= value(IA5String) | |||
| END | END | |||
| Draft SMIv2 October 1998 | ||||
| Draft SMIv2 January 1999 | ||||
| -- names of objects | -- names of objects | |||
| -- (Note that these definitions of ObjectName and NotificationName | ||||
| -- are not to be IMPORTed by MIB modules.) | ||||
| ObjectName ::= | ObjectName ::= | |||
| OBJECT IDENTIFIER | OBJECT IDENTIFIER | |||
| NotificationName ::= | NotificationName ::= | |||
| OBJECT IDENTIFIER | OBJECT IDENTIFIER | |||
| -- syntax of objects | -- syntax of objects | |||
| -- the "base types" defined here are: | -- the "base types" defined here are: | |||
| skipping to change at page 6, line 49 ¶ | skipping to change at page 8, line 4 ¶ | |||
| integer-value -- includes Integer32 | integer-value -- includes Integer32 | |||
| INTEGER (-2147483648..2147483647), | INTEGER (-2147483648..2147483647), | |||
| -- OCTET STRINGs with a more restrictive size | -- OCTET STRINGs with a more restrictive size | |||
| -- may also be used | -- may also be used | |||
| string-value | string-value | |||
| OCTET STRING (SIZE (0..65535)), | OCTET STRING (SIZE (0..65535)), | |||
| objectID-value | objectID-value | |||
| OBJECT IDENTIFIER | OBJECT IDENTIFIER | |||
| } | ||||
| Draft SMIv2 October 1998 | Draft SMIv2 January 1999 | |||
| } | ||||
| -- indistinguishable from INTEGER, but never needs more than | -- indistinguishable from INTEGER, but never needs more than | |||
| -- 32-bits for a two's complement representation | -- 32-bits for a two's complement representation | |||
| Integer32 ::= | Integer32 ::= | |||
| INTEGER (-2147483648..2147483647) | INTEGER (-2147483648..2147483647) | |||
| -- application-wide types | -- application-wide types | |||
| ApplicationSyntax ::= | ApplicationSyntax ::= | |||
| CHOICE { | CHOICE { | |||
| skipping to change at page 7, line 46 ¶ | skipping to change at page 9, line 5 ¶ | |||
| -- (this is a tagged type for historical reasons) | -- (this is a tagged type for historical reasons) | |||
| IpAddress ::= | IpAddress ::= | |||
| [APPLICATION 0] | [APPLICATION 0] | |||
| IMPLICIT OCTET STRING (SIZE (4)) | IMPLICIT OCTET STRING (SIZE (4)) | |||
| -- this wraps | -- this wraps | |||
| Counter32 ::= | Counter32 ::= | |||
| [APPLICATION 1] | [APPLICATION 1] | |||
| IMPLICIT INTEGER (0..4294967295) | IMPLICIT INTEGER (0..4294967295) | |||
| Draft SMIv2 January 1999 | ||||
| -- this doesn't wrap | -- this doesn't wrap | |||
| Gauge32 ::= | Gauge32 ::= | |||
| [APPLICATION 2] | [APPLICATION 2] | |||
| IMPLICIT INTEGER (0..4294967295) | IMPLICIT INTEGER (0..4294967295) | |||
| Draft SMIv2 October 1998 | ||||
| -- an unsigned 32-bit quantity | -- an unsigned 32-bit quantity | |||
| -- indistinguishable from Gauge32 | -- indistinguishable from Gauge32 | |||
| Unsigned32 ::= | Unsigned32 ::= | |||
| [APPLICATION 2] | [APPLICATION 2] | |||
| IMPLICIT INTEGER (0..4294967295) | IMPLICIT INTEGER (0..4294967295) | |||
| -- hundredths of seconds since an epoch | -- hundredths of seconds since an epoch | |||
| TimeTicks ::= | TimeTicks ::= | |||
| [APPLICATION 3] | [APPLICATION 3] | |||
| IMPLICIT INTEGER (0..4294967295) | IMPLICIT INTEGER (0..4294967295) | |||
| skipping to change at page 9, line 5 ¶ | skipping to change at page 10, line 5 ¶ | |||
| -- for backward-compatibility only | -- for backward-compatibility only | |||
| Opaque ::= | Opaque ::= | |||
| [APPLICATION 4] | [APPLICATION 4] | |||
| IMPLICIT OCTET STRING | IMPLICIT OCTET STRING | |||
| -- for counters that wrap in less than one hour with only 32 bits | -- for counters that wrap in less than one hour with only 32 bits | |||
| Counter64 ::= | Counter64 ::= | |||
| [APPLICATION 6] | [APPLICATION 6] | |||
| IMPLICIT INTEGER (0..18446744073709551615) | IMPLICIT INTEGER (0..18446744073709551615) | |||
| Draft SMIv2 October 1998 | Draft SMIv2 January 1999 | |||
| -- definition for objects | -- definition for objects | |||
| OBJECT-TYPE MACRO ::= | OBJECT-TYPE MACRO ::= | |||
| BEGIN | BEGIN | |||
| TYPE NOTATION ::= | TYPE NOTATION ::= | |||
| "SYNTAX" Syntax | "SYNTAX" Syntax | |||
| UnitsPart | UnitsPart | |||
| "MAX-ACCESS" Access | "MAX-ACCESS" Access | |||
| "STATUS" Status | "STATUS" Status | |||
| skipping to change at page 10, line 5 ¶ | skipping to change at page 11, line 5 ¶ | |||
| | "accessible-for-notify" | | "accessible-for-notify" | |||
| | "read-only" | | "read-only" | |||
| | "read-write" | | "read-write" | |||
| | "read-create" | | "read-create" | |||
| Status ::= | Status ::= | |||
| "current" | "current" | |||
| | "deprecated" | | "deprecated" | |||
| | "obsolete" | | "obsolete" | |||
| Draft SMIv2 October 1998 | Draft SMIv2 January 1999 | |||
| ReferPart ::= | ReferPart ::= | |||
| "REFERENCE" Text | "REFERENCE" Text | |||
| | empty | | empty | |||
| IndexPart ::= | IndexPart ::= | |||
| "INDEX" "{" IndexTypes "}" | "INDEX" "{" IndexTypes "}" | |||
| | "AUGMENTS" "{" Entry "}" | | "AUGMENTS" "{" Entry "}" | |||
| | empty | | empty | |||
| IndexTypes ::= | IndexTypes ::= | |||
| skipping to change at page 11, line 4 ¶ | skipping to change at page 12, line 4 ¶ | |||
| | empty | | empty | |||
| BitNames ::= BitName | BitNames ::= BitName | |||
| | BitNames "," BitName | | BitNames "," BitName | |||
| BitName ::= identifier | BitName ::= identifier | |||
| -- a character string as defined in section 3.1.1 | -- a character string as defined in section 3.1.1 | |||
| Text ::= value(IA5String) | Text ::= value(IA5String) | |||
| END | END | |||
| Draft SMIv2 October 1998 | ||||
| Draft SMIv2 January 1999 | ||||
| -- definitions for notifications | -- definitions for notifications | |||
| NOTIFICATION-TYPE MACRO ::= | NOTIFICATION-TYPE MACRO ::= | |||
| BEGIN | BEGIN | |||
| TYPE NOTATION ::= | TYPE NOTATION ::= | |||
| ObjectsPart | ObjectsPart | |||
| "STATUS" Status | "STATUS" Status | |||
| "DESCRIPTION" Text | "DESCRIPTION" Text | |||
| ReferPart | ReferPart | |||
| skipping to change at page 12, line 4 ¶ | skipping to change at page 13, line 4 ¶ | |||
| -- definitions of administrative identifiers | -- definitions of administrative identifiers | |||
| zeroDotZero OBJECT-IDENTITY | zeroDotZero OBJECT-IDENTITY | |||
| STATUS current | STATUS current | |||
| DESCRIPTION | DESCRIPTION | |||
| "A value used for null identifiers." | "A value used for null identifiers." | |||
| ::= { 0 0 } | ::= { 0 0 } | |||
| END | END | |||
| Draft SMIv2 October 1998 | ||||
| Draft SMIv2 January 1999 | ||||
| 3. Information Modules | 3. Information Modules | |||
| An "information module" is an ASN.1 module defining information relating | An "information module" is an ASN.1 module defining information relating | |||
| to network management. | to network management. | |||
| The SMI describes how to use an adapted subset of ASN.1 (1988) to define | The SMI describes how to use an adapted subset of ASN.1 (1988) to define | |||
| an information module. Further, additional restrictions are placed on | an information module. Further, additional restrictions are placed on | |||
| "standard" information modules. It is strongly recommended that | "standard" information modules. It is strongly recommended that | |||
| "enterprise-specific" information modules also adhere to these | "enterprise-specific" information modules also adhere to these | |||
| skipping to change at page 12, line 39 ¶ | skipping to change at page 13, line 40 ¶ | |||
| example, a "standard" information module will normally include | example, a "standard" information module will normally include | |||
| definitions of managed objects and a compliance statement. Similarly, | definitions of managed objects and a compliance statement. Similarly, | |||
| an "enterprise-specific" information module might include definitions of | an "enterprise-specific" information module might include definitions of | |||
| managed objects and a capability statement. Of course, a "standard" | managed objects and a capability statement. Of course, a "standard" | |||
| information module may not contain capability statements. | information module may not contain capability statements. | |||
| The constructs of ASN.1 allowed in SMIv2 information modules include: | The constructs of ASN.1 allowed in SMIv2 information modules include: | |||
| the IMPORTS clause, value definitions for OBJECT IDENTIFIERs, type | the IMPORTS clause, value definitions for OBJECT IDENTIFIERs, type | |||
| definitions for SEQUENCEs (with restrictions), ASN.1 type assignments of | definitions for SEQUENCEs (with restrictions), ASN.1 type assignments of | |||
| the restricted ASN.1 types allowed in SMIv2, and instances of ASN.1 | the restricted ASN.1 types allowed in SMIv2, and instances of ASN.1 | |||
| macros defined in this document and and its companion documents [2, 3]. | macros defined in this document and its companion documents [2, 3]. | |||
| Additional ASN.1 macros must not be defined in SMIv2 information | Additional ASN.1 macros must not be defined in SMIv2 information | |||
| modules. SMIv1 macros must not be used in SMIv2 information modules. | modules. SMIv1 macros must not be used in SMIv2 information modules. | |||
| The names of all standard information modules must be unique (but | The names of all standard information modules must be unique (but | |||
| different versions of the same information module should have the same | different versions of the same information module should have the same | |||
| name). Developers of enterprise information modules are encouraged to | name). Developers of enterprise information modules are encouraged to | |||
| choose names for their information modules that will have a low | choose names for their information modules that will have a low | |||
| probability of colliding with standard or other enterprise information | probability of colliding with standard or other enterprise information | |||
| modules. An information module may not use the ASN.1 construct of | modules. An information module may not use the ASN.1 construct of | |||
| placing an object identifier value between the module name and the | placing an object identifier value between the module name and the | |||
| "DEFINITIONS" keyword. For the purposes of this specification, an ASN.1 | "DEFINITIONS" keyword. For the purposes of this specification, an ASN.1 | |||
| Draft SMIv2 October 1998 | ||||
| Draft SMIv2 January 1999 | ||||
| module name begins with an upper-case letter and continues with zero or | 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 | more letters, digits, or hyphens, except that a hyphen can not be the | |||
| last character, nor can there be two consecutive hyphens. | last character, nor can there be two consecutive hyphens. | |||
| All information modules start with exactly one invocation of the | All information modules start with exactly one invocation of the | |||
| MODULE-IDENTITY macro, which provides contact information as well as | MODULE-IDENTITY macro, which provides contact information as well as | |||
| revision history to distinguish between versions of the same information | revision history to distinguish between versions of the same information | |||
| module. This invocation must appear immediately after any IMPORTs | module. This invocation must appear immediately after any IMPORTs | |||
| statements. | statements. | |||
| skipping to change at page 14, line 5 ¶ | skipping to change at page 15, line 5 ¶ | |||
| discussing the information module and also facilitates simple table | discussing the information module and also facilitates simple table | |||
| mappings for user-interfaces. | mappings for user-interfaces. | |||
| The set of descriptors defined in all "standard" information modules | The set of descriptors defined in all "standard" information modules | |||
| shall be unique. | shall be unique. | |||
| Finally, by convention, if the descriptor refers to an object with a | Finally, by convention, if the descriptor refers to an object with a | |||
| SYNTAX clause value of either Counter32 or Counter64, then the | SYNTAX clause value of either Counter32 or Counter64, then the | |||
| descriptor used for the object should denote plurality. | descriptor used for the object should denote plurality. | |||
| Draft SMIv2 October 1998 | Draft SMIv2 January 1999 | |||
| 3.1.1. Textual Values and Strings | 3.1.1. Textual Values and Strings | |||
| Some clauses in a macro invocation may take a character string as a | Some clauses in a macro invocation may take a character string as a | |||
| textual value (e.g., the DESCRIPTION clause). Other clauses take binary | textual value (e.g., the DESCRIPTION clause). Other clauses take binary | |||
| or hexadecimal strings (in any position where a non-negative number is | or hexadecimal strings (in any position where a non-negative number is | |||
| allowed). | allowed). | |||
| A character string is preceded and followed by the quote character ("), | A character string is preceded and followed by the quote character ("), | |||
| and consists of an arbitrary number (possibly zero) of: | and consists of an arbitrary number (possibly zero) of: | |||
| skipping to change at page 15, line 4 ¶ | skipping to change at page 16, line 4 ¶ | |||
| Note that when symbols from "enterprise-specific" information modules | Note that when symbols from "enterprise-specific" information modules | |||
| are referenced (e.g., a descriptor), there is the possibility of | are referenced (e.g., a descriptor), there is the possibility of | |||
| collision. As such, if different objects with the same descriptor are | collision. As such, if different objects with the same descriptor are | |||
| IMPORTed, then this ambiguity is resolved by prefixing the descriptor | IMPORTed, then this ambiguity is resolved by prefixing the descriptor | |||
| with the name of the information module and a dot ("."), i.e., | with the name of the information module and a dot ("."), i.e., | |||
| "module.descriptor" | "module.descriptor" | |||
| (All descriptors must be unique within any information module.) | (All descriptors must be unique within any information module.) | |||
| Draft SMIv2 October 1998 | ||||
| Draft SMIv2 January 1999 | ||||
| Of course, this notation can be used to refer to objects even when there | Of course, this notation can be used to refer to objects even when there | |||
| is no collision when IMPORTing symbols. | is no collision when IMPORTing symbols. | |||
| Finally, if any of the ASN.1 named types and macros defined in this | Finally, if any of the ASN.1 named types and macros defined in this | |||
| document, specifically: | document, specifically: | |||
| Counter32, Counter64, Gauge32, Integer32, IpAddress, MODULE- | Counter32, Counter64, Gauge32, Integer32, IpAddress, MODULE- | |||
| IDENTITY, NOTIFICATION-TYPE, Opaque, OBJECT-TYPE, OBJECT-IDENTITY, | IDENTITY, NOTIFICATION-TYPE, Opaque, OBJECT-TYPE, OBJECT-IDENTITY, | |||
| TimeTicks, Unsigned32, | TimeTicks, Unsigned32, | |||
| skipping to change at page 16, line 5 ¶ | skipping to change at page 17, line 5 ¶ | |||
| occurs first. Comments ended by a pair of hyphens have the effect of a | occurs first. Comments ended by a pair of hyphens have the effect of a | |||
| single space character. | single space character. | |||
| 3.5. OBJECT IDENTIFIER values | 3.5. OBJECT IDENTIFIER values | |||
| An OBJECT IDENTIFIER value is an ordered list of non-negative numbers. | 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- | 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 | 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). | sub-identifier has a maximum value of 2^32-1 (4294967295 decimal). | |||
| Draft SMIv2 October 1998 | Draft SMIv2 January 1999 | |||
| All OBJECT IDENTIFIER values have at least two sub-identifiers, where | 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 | the value of the first sub-identifier is one of the following well-known | |||
| names: | names: | |||
| Value Name | Value Name | |||
| 0 ccitt | 0 ccitt | |||
| 1 iso | 1 iso | |||
| 2 joint-iso-ccitt | 2 joint-iso-ccitt | |||
| skipping to change at page 17, line 5 ¶ | skipping to change at page 18, line 5 ¶ | |||
| mib OBJECT IDENTIFIER ::= { mgmt 1 } -- from RFC1156 | mib OBJECT IDENTIFIER ::= { mgmt 1 } -- from RFC1156 | |||
| mib-2 OBJECT IDENTIFIER ::= { mgmt 1 } -- from RFC1213 | mib-2 OBJECT IDENTIFIER ::= { mgmt 1 } -- from RFC1213 | |||
| fredRouter OBJECT IDENTIFIER ::= { flintStones 1 1 } | fredRouter OBJECT IDENTIFIER ::= { flintStones 1 1 } | |||
| barneySwitch OBJECT IDENTIFIER ::= { flintStones bedrock(2) 1 } | barneySwitch OBJECT IDENTIFIER ::= { flintStones bedrock(2) 1 } | |||
| Note while the above examples are legal, the following is not: | Note while the above examples are legal, the following is not: | |||
| dinoHost OBJECT IDENTIFIER ::= { flintStones bedrock 2 } | dinoHost OBJECT IDENTIFIER ::= { flintStones bedrock 2 } | |||
| Draft SMIv2 October 1998 | Draft SMIv2 January 1999 | |||
| A descriptor is allowed to be associated with both a registration and an | A descriptor is allowed to be associated with both a registration and an | |||
| assignment, providing both are associated with the same OBJECT | assignment, providing both are associated with the same OBJECT | |||
| IDENTIFIER value and semantics. | IDENTIFIER value and semantics. | |||
| 3.7. Reserved Keywords | 3.7. Reserved Keywords | |||
| The following are reserved keywords which must not be used as | The following are reserved keywords which must not be used as | |||
| descriptors or module names: | descriptors or module names: | |||
| skipping to change at page 18, line 5 ¶ | skipping to change at page 19, line 5 ¶ | |||
| IMPORTS INCLUDES INDEX INTEGER Integer32 IpAddress LAST-UPDATED | IMPORTS INCLUDES INDEX INTEGER Integer32 IpAddress LAST-UPDATED | |||
| MANDATORY-GROUPS MAX MAX-ACCESS MIN MIN-ACCESS MINUS-INFINITY | MANDATORY-GROUPS MAX MAX-ACCESS MIN MIN-ACCESS MINUS-INFINITY | |||
| MODULE MODULE-COMPLIANCE MODULE-IDENTITY NOTIFICATION-GROUP | MODULE MODULE-COMPLIANCE MODULE-IDENTITY NOTIFICATION-GROUP | |||
| NOTIFICATION-TYPE NOTIFICATIONS NULL OBJECT OBJECT-GROUP OBJECT- | NOTIFICATION-TYPE NOTIFICATIONS NULL OBJECT OBJECT-GROUP OBJECT- | |||
| IDENTITY OBJECT-TYPE OBJECTS OCTET OF OPTIONAL ORGANIZATION Opaque | IDENTITY OBJECT-TYPE OBJECTS OCTET OF OPTIONAL ORGANIZATION Opaque | |||
| PLUS-INFINITY PRESENT PRIVATE PRODUCT-RELEASE REAL REFERENCE | PLUS-INFINITY PRESENT PRIVATE PRODUCT-RELEASE REAL REFERENCE | |||
| REVISION SEQUENCE SET SIZE STATUS STRING SUPPORTS SYNTAX TAGS | REVISION SEQUENCE SET SIZE STATUS STRING SUPPORTS SYNTAX TAGS | |||
| TEXTUAL-CONVENTION TRAP-TYPE TRUE TimeTicks UNITS UNIVERSAL | TEXTUAL-CONVENTION TRAP-TYPE TRUE TimeTicks UNITS UNIVERSAL | |||
| Unsigned32 VARIABLES VARIATION WITH WRITE-SYNTAX | Unsigned32 VARIABLES VARIATION WITH WRITE-SYNTAX | |||
| Draft SMIv2 October 1998 | Draft SMIv2 January 1999 | |||
| 4. Naming Hierarchy | 4. Naming Hierarchy | |||
| The root of the subtree administered by the Internet Assigned Numbers | The root of the subtree administered by the Internet Assigned Numbers | |||
| Authority (IANA) for the Internet is: | Authority (IANA) for the Internet is: | |||
| 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 | That is, the Internet subtree of OBJECT IDENTIFIERs starts with the | |||
| prefix: | prefix: | |||
| skipping to change at page 19, line 5 ¶ | skipping to change at page 20, line 5 ¶ | |||
| by working groups of the IETF. If an information module produced by a | by working groups of the IETF. If an information module produced by a | |||
| working group becomes a "standard" information module, then at the very | working group becomes a "standard" information module, then at the very | |||
| beginning of its entry onto the Internet standards track, the objects | beginning of its entry onto the Internet standards track, the objects | |||
| are moved under the mgmt(2) subtree. | are moved under the mgmt(2) subtree. | |||
| The private(4) subtree is used to identify objects defined unilaterally. | The private(4) subtree is used to identify objects defined unilaterally. | |||
| The enterprises(1) subtree beneath private is used, among other things, | The enterprises(1) subtree beneath private is used, among other things, | |||
| to permit providers of networking subsystems to register models of their | to permit providers of networking subsystems to register models of their | |||
| products. | products. | |||
| Draft SMIv2 October 1998 | Draft SMIv2 January 1999 | |||
| 5. Mapping of the MODULE-IDENTITY macro | 5. Mapping of the MODULE-IDENTITY macro | |||
| The MODULE-IDENTITY macro is used to provide contact and revision | The MODULE-IDENTITY macro is used to provide contact and revision | |||
| history for each information module. It must appear exactly once in | history for each information module. It must appear exactly once in | |||
| every information module. It should be noted that the expansion of the | every information module. It should be noted that the expansion of the | |||
| MODULE-IDENTITY macro is something which conceptually happens during | MODULE-IDENTITY macro is something which conceptually happens during | |||
| implementation and not during run-time. | implementation and not during run-time. | |||
| Note that reference in an IMPORTS clause or in clauses of SMIv2 macros | Note that reference in an IMPORTS clause or in clauses of SMIv2 macros | |||
| skipping to change at page 20, line 4 ¶ | skipping to change at page 21, line 4 ¶ | |||
| 5.4. Mapping of the DESCRIPTION clause | 5.4. Mapping of the DESCRIPTION clause | |||
| The DESCRIPTION clause, which must be present, contains a high-level | The DESCRIPTION clause, which must be present, contains a high-level | |||
| textual description of the contents of this information module. | textual description of the contents of this information module. | |||
| 5.5. Mapping of the REVISION clause | 5.5. Mapping of the REVISION clause | |||
| The REVISION clause, which need not be present, is repeatedly used to | The REVISION clause, which need not be present, is repeatedly used to | |||
| describe the revisions (including the initial version) made to this | describe the revisions (including the initial version) made to this | |||
| Draft SMIv2 October 1998 | ||||
| Draft SMIv2 January 1999 | ||||
| information module, in reverse chronological order (i.e., most recent | information module, in reverse chronological order (i.e., most recent | |||
| first). Each instance of this clause contains the date and time of the | first). Each instance of this clause contains the date and time of the | |||
| revision. | revision. | |||
| 5.5.1. Mapping of the DESCRIPTION sub-clause | 5.5.1. Mapping of the DESCRIPTION sub-clause | |||
| The DESCRIPTION sub-clause, which must be present for each REVISION | The DESCRIPTION sub-clause, which must be present for each REVISION | |||
| clause, contains a high-level textual description of the revision | clause, contains a high-level textual description of the revision | |||
| identified in that REVISION clause. | identified in that REVISION clause. | |||
| skipping to change at page 21, line 5 ¶ | skipping to change at page 22, line 5 ¶ | |||
| specifying an OBJECT IDENTIFIER value to refer to the information module | specifying an OBJECT IDENTIFIER value to refer to the information module | |||
| containing the invocation. | containing the invocation. | |||
| Note that it is a common practice to use the value of the MODULE- | 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 | IDENTITY macro as a subtree under which other OBJECT IDENTIFIER values | |||
| assigned within the module are defined. However, it is legal (and | assigned within the module are defined. However, it is legal (and | |||
| occasionally necessary) for the other OBJECT IDENTIFIER values assigned | occasionally necessary) for the other OBJECT IDENTIFIER values assigned | |||
| within the module to be unrelated to the OBJECT IDENTIFIER value of the | within the module to be unrelated to the OBJECT IDENTIFIER value of the | |||
| MODULE-IDENTITY macro. | MODULE-IDENTITY macro. | |||
| Draft SMIv2 October 1998 | Draft SMIv2 January 1999 | |||
| 5.7. Usage Example | 5.7. Usage Example | |||
| Consider how a skeletal MIB module might be constructed: e.g., | Consider how a skeletal MIB module might be constructed: e.g., | |||
| FIZBIN-MIB DEFINITIONS ::= BEGIN | FIZBIN-MIB DEFINITIONS ::= BEGIN | |||
| IMPORTS | IMPORTS | |||
| MODULE-IDENTITY, OBJECT-TYPE, experimental | MODULE-IDENTITY, OBJECT-TYPE, experimental | |||
| FROM SNMPv2-SMI; | FROM SNMPv2-SMI; | |||
| skipping to change at page 22, line 4 ¶ | skipping to change at page 23, line 4 ¶ | |||
| DESCRIPTION | DESCRIPTION | |||
| "The latest version of this MIB module." | "The latest version of this MIB module." | |||
| REVISION "9210070433Z" | REVISION "9210070433Z" | |||
| DESCRIPTION | DESCRIPTION | |||
| "The initial version of this MIB module, published in RFC | "The initial version of this MIB module, published in RFC | |||
| yyyy." | yyyy." | |||
| -- contact IANA for actual number | -- contact IANA for actual number | |||
| ::= { experimental xx } | ::= { experimental xx } | |||
| END | END | |||
| Draft SMIv2 October 1998 | ||||
| Draft SMIv2 January 1999 | ||||
| 6. Mapping of the OBJECT-IDENTITY macro | 6. Mapping of the OBJECT-IDENTITY macro | |||
| The OBJECT-IDENTITY macro is used to define information about an OBJECT | The OBJECT-IDENTITY macro is used to define information about an OBJECT | |||
| IDENTIFIER assignment. All administrative OBJECT IDENTIFIER assignments | IDENTIFIER assignment. All administrative OBJECT IDENTIFIER assignments | |||
| which define a type identification value (see AutonomousType, a textual | which define a type identification value (see AutonomousType, a textual | |||
| convention defined in [3]) should be defined via the OBJECT-IDENTITY | convention defined in [3]) should be defined via the OBJECT-IDENTITY | |||
| macro. It should be noted that the expansion of the OBJECT-IDENTITY | macro. It should be noted that the expansion of the OBJECT-IDENTITY | |||
| macro is something which conceptually happens during implementation and | macro is something which conceptually happens during implementation and | |||
| not during run-time. | not during run-time. | |||
| skipping to change at page 23, line 5 ¶ | skipping to change at page 24, line 5 ¶ | |||
| The REFERENCE clause, which need not be present, contains a textual | The REFERENCE clause, which need not be present, contains a textual | |||
| cross-reference to some other document, either another information | cross-reference to some other document, either another information | |||
| module which defines a related assignment, or some other document which | module which defines a related assignment, or some other document which | |||
| provides additional information relevant to this definition. | provides additional information relevant to this definition. | |||
| 6.4. Mapping of the OBJECT-IDENTITY value | 6.4. Mapping of the OBJECT-IDENTITY value | |||
| The value of an invocation of the OBJECT-IDENTITY macro is an OBJECT | The value of an invocation of the OBJECT-IDENTITY macro is an OBJECT | |||
| IDENTIFIER. | IDENTIFIER. | |||
| Draft SMIv2 October 1998 | Draft SMIv2 January 1999 | |||
| 6.5. Usage Example | 6.5. Usage Example | |||
| Consider how an OBJECT IDENTIFIER assignment might be made: e.g., | Consider how an OBJECT IDENTIFIER assignment might be made: e.g., | |||
| fizbin69 OBJECT-IDENTITY | fizbin69 OBJECT-IDENTITY | |||
| STATUS current | STATUS current | |||
| DESCRIPTION | DESCRIPTION | |||
| "The authoritative identity of the Fizbin 69 chipset." | "The authoritative identity of the Fizbin 69 chipset." | |||
| ::= { fizbinChipSets 1 } | ::= { fizbinChipSets 1 } | |||
| Draft SMIv2 October 1998 | Draft SMIv2 January 1999 | |||
| 7. Mapping of the OBJECT-TYPE macro | 7. Mapping of the OBJECT-TYPE macro | |||
| The OBJECT-TYPE macro is used to define a type of managed object. It | 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 | should be noted that the expansion of the OBJECT-TYPE macro is something | |||
| which conceptually happens during implementation and not during run- | which conceptually happens during implementation and not during run- | |||
| time. | time. | |||
| For leaf objects which are not columnar objects (i.e., not contained | For leaf objects which are not columnar objects (i.e., not contained | |||
| within a conceptual table), instances of the object are identified by | within a conceptual table), instances of the object are identified by | |||
| skipping to change at page 24, line 31 ¶ | skipping to change at page 25, line 31 ¶ | |||
| The SYNTAX clause, which must be present, defines the abstract data | The SYNTAX clause, which must be present, defines the abstract data | |||
| structure corresponding to that object. The data structure must be one | structure corresponding to that object. The data structure must be one | |||
| of the following: a base type, the BITS construct, or a textual | of the following: a base type, the BITS construct, or a textual | |||
| convention. (SEQUENCE OF and SEQUENCE are also possible for conceptual | convention. (SEQUENCE OF and SEQUENCE are also possible for conceptual | |||
| tables, see section 7.1.12). The base types are those defined in the | tables, see section 7.1.12). The base types are those defined in the | |||
| ObjectSyntax CHOICE. A textual convention is a newly-defined type | ObjectSyntax CHOICE. A textual convention is a newly-defined type | |||
| defined as a sub-type of a base type [3]. | defined as a sub-type of a base type [3]. | |||
| An extended subset of the full capabilities of ASN.1 (1988) sub-typing | An extended subset of the full capabilities of ASN.1 (1988) sub-typing | |||
| is allowed, as appropriate to the underingly ASN.1 type. Any such | is allowed, as appropriate to the underlying ASN.1 type. Any such | |||
| restriction on size, range or enumerations specified in this clause | restriction on size, range or enumerations specified in this clause | |||
| represents the maximal level of support which makes "protocol sense". | represents the maximal level of support which makes "protocol sense". | |||
| Restrictions on sub-typing are specified in detail in Section 9 and | Restrictions on sub-typing are specified in detail in Section 9 and | |||
| Appendix A of this memo. | Appendix A of this memo. | |||
| The semantics of ObjectSyntax are now described. | The semantics of ObjectSyntax are now described. | |||
| 7.1.1. Integer32 and INTEGER | 7.1.1. Integer32 and INTEGER | |||
| The Integer32 type represents integer-valued information between -2^31 | The Integer32 type represents integer-valued information between -2^31 | |||
| and 2^31-1 inclusive (-2147483648 to 2147483647 decimal). This type is | and 2^31-1 inclusive (-2147483648 to 2147483647 decimal). This type is | |||
| indistinguishable from the INTEGER type. Both the INTEGER and Integer32 | indistinguishable from the INTEGER type. Both the INTEGER and Integer32 | |||
| types may be sub-typed to be more constrained than the Integer32 type. | types may be sub-typed to be more constrained than the Integer32 type. | |||
| The INTEGER type may also be used to represent integer-valued | The INTEGER type (but not the Integer32 type) may also be used to | |||
| information as named-number enumerations. In this case, only those | represent integer-valued information as named-number enumerations. In | |||
| named-numbers so enumerated may be present as a value. Note that | this case, only those named-numbers so enumerated may be present as a | |||
| although it is recommended that enumerated values start at 1 and be | value. Note that although it is recommended that enumerated values | |||
| Draft SMIv2 October 1998 | ||||
| numbered contiguously, any valid value for Integer32 is allowed for an | Draft SMIv2 January 1999 | |||
| enumerated value and, further, enumerated values needn't be contiguously | ||||
| assigned. | 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. | ||||
| Finally, a label for a named-number enumeration must consist of one or | 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 | more letters or digits, up to a maximum of 64 characters, and the | |||
| initial character must be a lower-case letter. (However, labels longer | initial character must be a lower-case letter. (However, labels longer | |||
| than 32 characters are not recommended.) Note that hyphens are not | than 32 characters are not recommended.) Note that hyphens are not | |||
| allowed by this specification (except for use by information modules | allowed by this specification (except for use by information modules | |||
| converted from SMIv1 which did allow hyphens). | converted from SMIv1 which did allow hyphens). | |||
| 7.1.2. OCTET STRING | 7.1.2. OCTET STRING | |||
| skipping to change at page 26, line 4 ¶ | skipping to change at page 27, line 4 ¶ | |||
| As part of updating an information module, for an object defined using | As part of updating an information module, for an object defined using | |||
| the BITS construct, new enumerations can be added or existing | the BITS construct, new enumerations can be added or existing | |||
| enumerations can have new labels assigned to them. After an enumeration | enumerations can have new labels assigned to them. After an enumeration | |||
| is added, it might not be possible to distinguish between an | is added, it might not be possible to distinguish between an | |||
| implementation of the updated object for which the new enumeration is | implementation of the updated object for which the new enumeration is | |||
| not asserted, and an implementation of the object prior to the addition. | not asserted, and an implementation of the object prior to the addition. | |||
| Depending on the circumstances, such an ambiguity could either be | Depending on the circumstances, such an ambiguity could either be | |||
| desirable or could be undesirable. The means to avoid such an ambiguity | desirable or could be undesirable. The means to avoid such an ambiguity | |||
| is dependent on the encoding of values on the wire; however, one | is dependent on the encoding of values on the wire; however, one | |||
| Draft SMIv2 October 1998 | ||||
| Draft SMIv2 January 1999 | ||||
| possibility is to define new enumerations starting at the next multiple | possibility is to define new enumerations starting at the next multiple | |||
| of eight bits. (Of course, this can also result in the enumerations no | of eight bits. (Of course, this can also result in the enumerations no | |||
| longer being contiguous.) | longer being contiguous.) | |||
| Although there is no SMI-specified limitation on the number of | Although there is no SMI-specified limitation on the number of | |||
| enumerations (and therefore on the length of a value), except as may be | 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 | imposed by the limit on the length of an OCTET STRING, MIB designers | |||
| should realize that there may be implementation and interoperability | should realize that there may be implementation and interoperability | |||
| limitations for sizes in excess of 128 bits. | limitations for sizes in excess of 128 bits. | |||
| skipping to change at page 27, line 5 ¶ | skipping to change at page 28, line 5 ¶ | |||
| monotonically increasing value normally occur at re-initialization of | monotonically increasing value normally occur at re-initialization of | |||
| the management system, and at other times as specified in the | the management system, and at other times as specified in the | |||
| description of an object-type using this ASN.1 type. If such other | 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 can occur, for example, the creation of an object instance at | |||
| times other than re-initialization, then a corresponding object should | times other than re-initialization, then a corresponding object should | |||
| be defined, with an appropriate SYNTAX clause, to indicate the last | be defined, with an appropriate SYNTAX clause, to indicate the last | |||
| discontinuity. Examples of appropriate SYNTAX clause include: TimeStamp | discontinuity. Examples of appropriate SYNTAX clause include: TimeStamp | |||
| (a textual convention defined in [3]), DateAndTime (another textual | (a textual convention defined in [3]), DateAndTime (another textual | |||
| convention from [3]) or TimeTicks. | convention from [3]) or TimeTicks. | |||
| Draft SMIv2 October 1998 | Draft SMIv2 January 1999 | |||
| The value of the MAX-ACCESS clause for objects with a SYNTAX clause | The value of the MAX-ACCESS clause for objects with a SYNTAX clause | |||
| value of Counter32 is either "read-only" or "accessible-for-notify". | 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 | A DEFVAL clause is not allowed for objects with a SYNTAX clause value of | |||
| Counter32. | Counter32. | |||
| 7.1.7. Gauge32 | 7.1.7. Gauge32 | |||
| The Gauge32 type represents a non-negative integer, which may increase | The Gauge32 type represents a non-negative integer, which may increase | |||
| skipping to change at page 28, line 4 ¶ | skipping to change at page 29, line 4 ¶ | |||
| The TimeTicks type may not be sub-typed. | The TimeTicks type may not be sub-typed. | |||
| 7.1.9. Opaque | 7.1.9. Opaque | |||
| The Opaque type is provided solely for backward-compatibility, and shall | The Opaque type is provided solely for backward-compatibility, and shall | |||
| not be used for newly-defined object types. | not be used for newly-defined object types. | |||
| The Opaque type supports the capability to pass arbitrary ASN.1 syntax. | 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 | A value is encoded using the ASN.1 Basic Encoding Rules [4] into a | |||
| Draft SMIv2 October 1998 | ||||
| Draft SMIv2 January 1999 | ||||
| string of octets. This, in turn, is encoded as an OCTET STRING, in | string of octets. This, in turn, is encoded as an OCTET STRING, in | |||
| effect "double-wrapping" the original ASN.1 value. | effect "double-wrapping" the original ASN.1 value. | |||
| Note that a conforming implementation need only be able to accept and | 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 | recognize opaquely-encoded data. It need not be able to unwrap the data | |||
| and then interpret its contents. | and then interpret its contents. | |||
| A requirement on "standard" MIB modules is that no object may have a | A requirement on "standard" MIB modules is that no object may have a | |||
| SYNTAX clause value of Opaque. | SYNTAX clause value of Opaque. | |||
| skipping to change at page 29, line 5 ¶ | skipping to change at page 30, line 5 ¶ | |||
| one hour if the Counter32 type was used instead. | one hour if the Counter32 type was used instead. | |||
| A DEFVAL clause is not allowed for objects with a SYNTAX clause value of | A DEFVAL clause is not allowed for objects with a SYNTAX clause value of | |||
| Counter64. | Counter64. | |||
| 7.1.11. Unsigned32 | 7.1.11. Unsigned32 | |||
| The Unsigned32 type represents integer-valued information between 0 and | The Unsigned32 type represents integer-valued information between 0 and | |||
| 2^32-1 inclusive (0 to 4294967295 decimal). | 2^32-1 inclusive (0 to 4294967295 decimal). | |||
| Draft SMIv2 October 1998 | Draft SMIv2 January 1999 | |||
| 7.1.12. Conceptual Tables | 7.1.12. Conceptual Tables | |||
| Management operations apply exclusively to scalar objects. However, it | Management operations apply exclusively to scalar objects. However, it | |||
| is sometimes convenient for developers of management applications to | is sometimes convenient for developers of management applications to | |||
| impose an imaginary, tabular structure on an ordered collection of | impose an imaginary, tabular structure on an ordered collection of | |||
| objects within the MIB. Each such conceptual table contains zero or | objects within the MIB. Each such conceptual table contains zero or | |||
| more rows, and each row may contain one or more scalar objects, termed | more rows, and each row may contain one or more scalar objects, termed | |||
| columnar objects. This conceptualization is formalized by using the | columnar objects. This conceptualization is formalized by using the | |||
| OBJECT-TYPE macro to define both an object which corresponds to a table | OBJECT-TYPE macro to define both an object which corresponds to a table | |||
| skipping to change at page 30, line 4 ¶ | skipping to change at page 31, line 4 ¶ | |||
| Further, a <type> is always present for every subordinate object. (The | Further, a <type> is always present for every subordinate object. (The | |||
| ASN.1 DEFAULT and OPTIONAL clauses are disallowed in the SEQUENCE | ASN.1 DEFAULT and OPTIONAL clauses are disallowed in the SEQUENCE | |||
| definition.) The MAX-ACCESS clause for conceptual tables and rows is | definition.) The MAX-ACCESS clause for conceptual tables and rows is | |||
| "not-accessible". | "not-accessible". | |||
| 7.1.12.1. Creation and Deletion of Conceptual Rows | 7.1.12.1. Creation and Deletion of Conceptual Rows | |||
| For newly-defined conceptual rows which allow the creation of new object | For newly-defined conceptual rows which allow the creation of new object | |||
| instances and/or the deletion of existing object instances, there should | instances and/or the deletion of existing object instances, there should | |||
| be one columnar object with a SYNTAX clause value of RowStatus (a | be one columnar object with a SYNTAX clause value of RowStatus (a | |||
| Draft SMIv2 October 1998 | ||||
| Draft SMIv2 January 1999 | ||||
| textual convention defined in [3]) and a MAX-ACCESS clause value of | textual convention defined in [3]) and a MAX-ACCESS clause value of | |||
| read-create. By convention, this is termed the status column for the | read-create. By convention, this is termed the status column for the | |||
| conceptual row. | conceptual row. | |||
| 7.2. Mapping of the UNITS clause | 7.2. Mapping of the UNITS clause | |||
| This UNITS clause, which need not be present, contains a textual | This UNITS clause, which need not be present, contains a textual | |||
| definition of the units associated with that object. | definition of the units associated with that object. | |||
| skipping to change at page 31, line 4 ¶ | skipping to change at page 32, line 4 ¶ | |||
| 7.4. Mapping of the STATUS clause | 7.4. Mapping of the STATUS clause | |||
| The STATUS clause, which must be present, indicates whether this | The STATUS clause, which must be present, indicates whether this | |||
| definition is current or historic. | definition is current or historic. | |||
| The value "current" means that the definition is current and valid. The | The value "current" means that the definition is current and valid. The | |||
| value "obsolete" means the definition is obsolete and should not be | value "obsolete" means the definition is obsolete and should not be | |||
| implemented and/or can be removed if previously implemented. While the | implemented and/or can be removed if previously implemented. While the | |||
| value "deprecated" also indicates an obsolete definition, it permits | value "deprecated" also indicates an obsolete definition, it permits | |||
| new/continued implementation in order to foster interoperability with | new/continued implementation in order to foster interoperability with | |||
| Draft SMIv2 October 1998 | ||||
| Draft SMIv2 January 1999 | ||||
| older/existing implementations. | older/existing implementations. | |||
| 7.5. Mapping of the DESCRIPTION clause | 7.5. Mapping of the DESCRIPTION clause | |||
| The DESCRIPTION clause, which must be present, contains a textual | The DESCRIPTION clause, which must be present, contains a textual | |||
| definition of that object which provides all semantic definitions | definition of that object which provides all semantic definitions | |||
| necessary for implementation, and should embody any information which | necessary for implementation, and should embody any information which | |||
| would otherwise be communicated in any ASN.1 commentary annotations | would otherwise be communicated in any ASN.1 commentary annotations | |||
| associated with the object. | associated with the object. | |||
| skipping to change at page 32, line 5 ¶ | skipping to change at page 33, line 5 ¶ | |||
| (1) integer-valued (i.e., having INTEGER as its underlying primitive | (1) integer-valued (i.e., having INTEGER as its underlying primitive | |||
| type): a single sub-identifier taking the integer value (this works | type): a single sub-identifier taking the integer value (this works | |||
| only for non-negative integers); | only for non-negative integers); | |||
| (2) string-valued, fixed-length strings (or variable-length preceded by | (2) string-valued, fixed-length strings (or variable-length preceded by | |||
| the IMPLIED keyword): `n' sub-identifiers, where `n' is the length | the IMPLIED keyword): `n' sub-identifiers, where `n' is the length | |||
| of the string (each octet of the string is encoded in a separate | of the string (each octet of the string is encoded in a separate | |||
| sub-identifier); | sub-identifier); | |||
| Draft SMIv2 October 1998 | Draft SMIv2 January 1999 | |||
| (3) string-valued, variable-length strings (not preceded by the IMPLIED | (3) string-valued, variable-length strings (not preceded by the IMPLIED | |||
| keyword): `n+1' sub-identifiers, where `n' is the length of the | keyword): `n+1' sub-identifiers, where `n' is the length of the | |||
| string (the first sub-identifier is `n' itself, following this, | string (the first sub-identifier is `n' itself, following this, | |||
| each octet of the string is encoded in a separate sub-identifier); | each octet of the string is encoded in a separate sub-identifier); | |||
| (4) object identifier-valued (when preceded by the IMPLIED keyword): | (4) object identifier-valued (when preceded by the IMPLIED keyword): | |||
| `n' sub-identifiers, where `n' is the number of sub-identifiers in | `n' sub-identifiers, where `n' is the number of sub-identifiers in | |||
| the value (each sub-identifier of the value is copied into a | the value (each sub-identifier of the value is copied into a | |||
| separate sub-identifier); | separate sub-identifier); | |||
| skipping to change at page 33, line 5 ¶ | skipping to change at page 34, line 5 ¶ | |||
| cases. | cases. | |||
| Objects which are both specified in the INDEX clause of a conceptual row | Objects which are both specified in the INDEX clause of a conceptual row | |||
| and also columnar objects of the same conceptual row are termed | and also columnar objects of the same conceptual row are termed | |||
| auxiliary objects. The MAX-ACCESS clause for auxiliary objects is | auxiliary objects. The MAX-ACCESS clause for auxiliary objects is | |||
| "not-accessible", except in the following circumstances: | "not-accessible", except in the following circumstances: | |||
| (1) within a MIB module originally written to conform to SMIv1, and | (1) within a MIB module originally written to conform to SMIv1, and | |||
| later converted to conform to SMIv2; or | later converted to conform to SMIv2; or | |||
| Draft SMIv2 October 1998 | Draft SMIv2 January 1999 | |||
| (2) a conceptual row must contain at least one columnar object which is | (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 | not an auxiliary object. In the event that all of a conceptual | |||
| row's columnar objects are also specified in its INDEX clause, then | 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 | 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 | "read-only". (Note that this situation does not arise for a | |||
| conceptual row allowing create access, since such a row will have a | conceptual row allowing create access, since such a row will have a | |||
| status column which will not be an auxiliary object.) | status column which will not be an auxiliary object.) | |||
| Note that objects specified in a conceptual row's INDEX clause need not | Note that objects specified in a conceptual row's INDEX clause need not | |||
| skipping to change at page 34, line 4 ¶ | skipping to change at page 35, line 4 ¶ | |||
| As such, note that creation of a base conceptual row implies the | As such, note that creation of a base conceptual row implies the | |||
| correspondent creation of any conceptual row augmentations. | correspondent creation of any conceptual row augmentations. | |||
| For example, a MIB designer might wish to define additional columns in | For example, a MIB designer might wish to define additional columns in | |||
| an "enterprise-specific" MIB which logically extend a conceptual row in | an "enterprise-specific" MIB which logically extend a conceptual row in | |||
| a "standard" MIB. The "standard" MIB definition of the conceptual row | a "standard" MIB. The "standard" MIB definition of the conceptual row | |||
| would include the INDEX clause and the "enterprise-specific" MIB would | would include the INDEX clause and the "enterprise-specific" MIB would | |||
| contain the definition of a conceptual row using the AUGMENTS clause. | 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 | On the other hand, it would be incorrect to use the AUGMENTS clause for | |||
| the relationship between RFC 2233's ifTable and the many media-specific | the relationship between RFC 2233's ifTable and the many media-specific | |||
| Draft SMIv2 October 1998 | ||||
| Draft SMIv2 January 1999 | ||||
| MIBs which extend it for specific media (e.g., the dot3Table in RFC | MIBs which extend it for specific media (e.g., the dot3Table in RFC | |||
| 2358), since not all interfaces are of the same media. | 2358), since not all interfaces are of the same media. | |||
| Note that a base conceptual row may be augmented by multiple conceptual | Note that a base conceptual row may be augmented by multiple conceptual | |||
| row augmentations. | row augmentations. | |||
| 7.8.1. Relation between INDEX and AUGMENTS clauses | 7.8.1. Relation between INDEX and AUGMENTS clauses | |||
| When defining instance identification information for a conceptual | When defining instance identification information for a conceptual | |||
| skipping to change at page 35, line 4 ¶ | skipping to change at page 36, line 4 ¶ | |||
| During conceptual row creation, if an instance of a columnar object is | During conceptual row creation, if an instance of a columnar object is | |||
| not present as one of the operands in the correspondent management | not present as one of the operands in the correspondent management | |||
| protocol set operation, then the value of the DEFVAL clause, if present, | protocol set operation, then the value of the DEFVAL clause, if present, | |||
| indicates an acceptable default value that an agent might use | indicates an acceptable default value that an agent might use | |||
| (especially for a read-only object). | (especially for a read-only object). | |||
| Note that with this definition of the DEFVAL clause, it is appropriate | 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 | 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, | permitted to use it for scalar objects dynamically created by an agent, | |||
| Draft SMIv2 October 1998 | ||||
| Draft SMIv2 January 1999 | ||||
| or for columnar objects of a read-write table dynamically created by an | or for columnar objects of a read-write table dynamically created by an | |||
| agent. | agent. | |||
| The value of the DEFVAL clause must, of course, correspond to the SYNTAX | 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 | 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 | must be expressed as a single ASN.1 identifier, and not as a collection | |||
| of sub-identifiers. | of sub-identifiers. | |||
| Note that if an operand to the management protocol set operation is an | Note that if an operand to the management protocol set operation is an | |||
| skipping to change at page 36, line 5 ¶ | skipping to change at page 37, line 5 ¶ | |||
| Object types with SYNTAX of Counter32 and Counter64 may not have 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 | clauses, since they do not have defined initial values. However, it is | |||
| recommended that they be initialized to zero. | recommended that they be initialized to zero. | |||
| 7.10. Mapping of the OBJECT-TYPE value | 7.10. Mapping of the OBJECT-TYPE value | |||
| The value of an invocation of the OBJECT-TYPE macro is the name of the | The value of an invocation of the OBJECT-TYPE macro is the name of the | |||
| object, which is an OBJECT IDENTIFIER, an administratively assigned | object, which is an OBJECT IDENTIFIER, an administratively assigned | |||
| name. | name. | |||
| Draft SMIv2 October 1998 | Draft SMIv2 January 1999 | |||
| When an OBJECT IDENTIFIER is assigned to an object: | When an OBJECT IDENTIFIER is assigned to an object: | |||
| (1) If the object corresponds to a conceptual table, then only a single | (1) If the object corresponds to a conceptual table, then only a single | |||
| assignment, that for a conceptual row, is present immediately | assignment, that for a conceptual row, is present immediately | |||
| beneath that object. The administratively assigned name for the | beneath that object. The administratively assigned name for the | |||
| conceptual row object is derived by appending a sub-identifier of | conceptual row object is derived by appending a sub-identifier of | |||
| "1" to the administratively assigned name for the conceptual table. | "1" to the administratively assigned name for the conceptual table. | |||
| (2) If the object corresponds to a conceptual row, then at least one | (2) If the object corresponds to a conceptual row, then at least one | |||
| skipping to change at page 36, line 28 ¶ | skipping to change at page 38, line 5 ¶ | |||
| column is derived by appending a unique, positive sub-identifier to | column is derived by appending a unique, positive sub-identifier to | |||
| the administratively assigned name for the conceptual row. | the administratively assigned name for the conceptual row. | |||
| (3) Otherwise, no other OBJECT IDENTIFIERs which are subordinate to the | (3) Otherwise, no other OBJECT IDENTIFIERs which are subordinate to the | |||
| object may be assigned. | object may be assigned. | |||
| Note that the final sub-identifier of any administratively assigned name | Note that the final sub-identifier of any administratively assigned name | |||
| for an object shall be positive. A zero-valued final sub-identifier is | for an object shall be positive. A zero-valued final sub-identifier is | |||
| reserved for future use. | reserved for future use. | |||
| Further note that although conceptual tables and rows are given | Draft SMIv2 January 1999 | |||
| administratively assigned names, these conceptual objects may not be | ||||
| manipulated in aggregate form by the management protocol. | ||||
| Draft SMIv2 October 1998 | ||||
| 7.11. Usage Example | 7.11. Usage Example | |||
| Consider how one might define a conceptual table and its subordinates. | Consider how one might define a conceptual table and its subordinates. | |||
| (This example uses the RowStatus textual convention defined in [3].) | (This example uses the RowStatus textual convention defined in [3].) | |||
| evalSlot OBJECT-TYPE | evalSlot OBJECT-TYPE | |||
| SYNTAX Integer32 (0..2147483647) | SYNTAX Integer32 (0..2147483647) | |||
| MAX-ACCESS read-only | MAX-ACCESS read-only | |||
| STATUS current | STATUS current | |||
| skipping to change at page 38, line 5 ¶ | skipping to change at page 39, line 5 ¶ | |||
| MAX-ACCESS not-accessible | MAX-ACCESS not-accessible | |||
| STATUS current | STATUS current | |||
| DESCRIPTION | DESCRIPTION | |||
| "An entry (conceptual row) in the evaluation table." | "An entry (conceptual row) in the evaluation table." | |||
| INDEX { evalIndex } | INDEX { evalIndex } | |||
| ::= { evalTable 1 } | ::= { evalTable 1 } | |||
| EvalEntry ::= | EvalEntry ::= | |||
| SEQUENCE { | SEQUENCE { | |||
| Draft SMIv2 October 1998 | Draft SMIv2 January 1999 | |||
| evalIndex Integer32, | evalIndex Integer32, | |||
| evalString DisplayString, | evalString DisplayString, | |||
| evalValue Integer32, | evalValue Integer32, | |||
| evalStatus RowStatus | evalStatus RowStatus | |||
| } | } | |||
| evalIndex OBJECT-TYPE | evalIndex OBJECT-TYPE | |||
| SYNTAX Integer32 (1..2147483647) | SYNTAX Integer32 (1..2147483647) | |||
| MAX-ACCESS not-accessible | MAX-ACCESS not-accessible | |||
| skipping to change at page 39, line 5 ¶ | skipping to change at page 40, line 5 ¶ | |||
| SYNTAX RowStatus | SYNTAX RowStatus | |||
| MAX-ACCESS read-create | MAX-ACCESS read-create | |||
| STATUS current | STATUS current | |||
| DESCRIPTION | DESCRIPTION | |||
| "The status column used for creating, modifying, and | "The status column used for creating, modifying, and | |||
| deleting instances of the columnar objects in the evaluation | deleting instances of the columnar objects in the evaluation | |||
| table." | table." | |||
| DEFVAL { active } | DEFVAL { active } | |||
| ::= { evalEntry 4 } | ::= { evalEntry 4 } | |||
| Draft SMIv2 October 1998 | Draft SMIv2 January 1999 | |||
| 8. Mapping of the NOTIFICATION-TYPE macro | 8. Mapping of the NOTIFICATION-TYPE macro | |||
| The NOTIFICATION-TYPE macro is used to define the information contained | The NOTIFICATION-TYPE macro is used to define the information contained | |||
| within an unsolicited transmission of management information (i.e., | within an unsolicited transmission of management information (i.e., | |||
| within either a SNMPv2-Trap-PDU or InformRequest-PDU). It should be | within either a SNMPv2-Trap-PDU or InformRequest-PDU). It should be | |||
| noted that the expansion of the NOTIFICATION-TYPE macro is something | noted that the expansion of the NOTIFICATION-TYPE macro is something | |||
| which conceptually happens during implementation and not during run- | which conceptually happens during implementation and not during run- | |||
| time. | time. | |||
| skipping to change at page 40, line 5 ¶ | skipping to change at page 41, line 5 ¶ | |||
| The STATUS clause, which must be present, indicates whether this | The STATUS clause, which must be present, indicates whether this | |||
| definition is current or historic. | definition is current or historic. | |||
| The value "current" means that the definition is current and valid. The | The value "current" means that the definition is current and valid. The | |||
| value "obsolete" means the definition is obsolete and should not be | value "obsolete" means the definition is obsolete and should not be | |||
| implemented and/or can be removed if previously implemented. While the | implemented and/or can be removed if previously implemented. While the | |||
| value "deprecated" also indicates an obsolete definition, it permits | value "deprecated" also indicates an obsolete definition, it permits | |||
| new/continued implementation in order to foster interoperability with | new/continued implementation in order to foster interoperability with | |||
| older/existing implementations. | older/existing implementations. | |||
| Draft SMIv2 October 1998 | Draft SMIv2 January 1999 | |||
| 8.3. Mapping of the DESCRIPTION clause | 8.3. Mapping of the DESCRIPTION clause | |||
| The DESCRIPTION clause, which must be present, contains a textual | The DESCRIPTION clause, which must be present, contains a textual | |||
| definition of the notification which provides all semantic definitions | definition of the notification which provides all semantic definitions | |||
| necessary for implementation, and should embody any information which | necessary for implementation, and should embody any information which | |||
| would otherwise be communicated in any ASN.1 commentary annotations | would otherwise be communicated in any ASN.1 commentary annotations | |||
| associated with the notification. In particular, the DESCRIPTION clause | associated with the notification. In particular, the DESCRIPTION clause | |||
| should document which instances of the objects mentioned in the OBJECTS | should document which instances of the objects mentioned in the OBJECTS | |||
| clause should be contained within notifications of this type. | clause should be contained within notifications of this type. | |||
| skipping to change at page 41, line 5 ¶ | skipping to change at page 42, line 5 ¶ | |||
| assigned name. In order to achieve compatibility with SNMPv1 traps, | assigned name. In order to achieve compatibility with SNMPv1 traps, | |||
| both when converting SMIv1 information modules to/from this SMI, and in | both when converting SMIv1 information modules to/from this SMI, and in | |||
| the procedures employed by multi-lingual systems and proxy forwarding | the procedures employed by multi-lingual systems and proxy forwarding | |||
| applications, the next to last sub-identifier in the name of any newly- | applications, the next to last sub-identifier in the name of any newly- | |||
| defined notification must have the value zero. | defined notification must have the value zero. | |||
| Sections 4.2.6 and 4.2.7 of [6] describe how the NOTIFICATION-TYPE macro | 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, | is used to generate a SNMPv2-Trap-PDU or InformRequest-PDU, | |||
| respectively. | respectively. | |||
| Draft SMIv2 October 1998 | Draft SMIv2 January 1999 | |||
| 8.6. Usage Example | 8.6. Usage Example | |||
| Consider how a configuration change notification might be described: | Consider how a configuration change notification might be described: | |||
| entityMIBTraps OBJECT IDENTIFIER ::= { entityMIB 2 } | entityMIBTraps OBJECT IDENTIFIER ::= { entityMIB 2 } | |||
| entityMIBTrapPrefix OBJECT IDENTIFIER ::= { entityMIBTraps 0 } | entityMIBTrapPrefix OBJECT IDENTIFIER ::= { entityMIBTraps 0 } | |||
| entConfigChange NOTIFICATION-TYPE | entConfigChange NOTIFICATION-TYPE | |||
| STATUS current | STATUS current | |||
| skipping to change at page 42, line 5 ¶ | skipping to change at page 43, line 5 ¶ | |||
| throttling or transmission loss." | throttling or transmission loss." | |||
| ::= { entityMIBTrapPrefix 1 } | ::= { entityMIBTrapPrefix 1 } | |||
| According to this invocation, the notification authoritatively | According to this invocation, the notification authoritatively | |||
| identified as | identified as | |||
| { entityMIBTrapPrefix 1 } | { entityMIBTrapPrefix 1 } | |||
| is used to report a particular type of configuration change. | is used to report a particular type of configuration change. | |||
| Draft SMIv2 October 1998 | Draft SMIv2 January 1999 | |||
| 9. Refined Syntax | 9. Refined Syntax | |||
| Some macros have clauses which allows syntax to be refined, | Some macros have clauses which allows syntax to be refined, | |||
| specifically: the SYNTAX clause of the OBJECT-TYPE macro, and the | specifically: the SYNTAX clause of the OBJECT-TYPE macro, and the | |||
| SYNTAX/WRITE-SYNTAX clauses of the MODULE-COMPLIANCE and AGENT- | SYNTAX/WRITE-SYNTAX clauses of the MODULE-COMPLIANCE and AGENT- | |||
| CAPABILITIES macros [2]. However, not all refinements of syntax are | CAPABILITIES macros [2]. However, not all refinements of syntax are | |||
| appropriate. In particular, the object's primitive or application type | appropriate. In particular, the object's primitive or application type | |||
| must not be changed. | must not be changed. | |||
| skipping to change at page 43, line 5 ¶ | skipping to change at page 44, line 5 ¶ | |||
| (3) the size in octets of the value may be refined by raising the | (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 | lower-bounds, by reducing the upper-bounds, and/or by reducing the | |||
| alternative size choices. | alternative size choices. | |||
| No other types of refinements can be specified in the SYNTAX clause. | No other types of refinements can be specified in the SYNTAX clause. | |||
| However, the DESCRIPTION clause is available to specify additional | However, the DESCRIPTION clause is available to specify additional | |||
| restrictions which can not be expressed in the SYNTAX clause. Further | restrictions which can not be expressed in the SYNTAX clause. Further | |||
| details on (and examples of) sub-typing are provided in Appendix A. | details on (and examples of) sub-typing are provided in Appendix A. | |||
| Draft SMIv2 October 1998 | Draft SMIv2 January 1999 | |||
| 10. Extending an Information Module | 10. Extending an Information Module | |||
| As experience is gained with an information module, it may be desirable | As experience is gained with an information module, it may be desirable | |||
| to revise that information module. However, changes are not allowed if | to revise that information module. However, changes are not allowed if | |||
| they have any potential to cause interoperability problems "over the | they have any potential to cause interoperability problems "over the | |||
| wire" between an implementation using an original specification and an | wire" between an implementation using an original specification and an | |||
| implementation using an updated specification(s). | implementation using an updated specification(s). | |||
| For any change, the invocation of the MODULE-IDENTITY macro must be | For any change, the invocation of the MODULE-IDENTITY macro must be | |||
| skipping to change at page 44, line 5 ¶ | skipping to change at page 45, line 5 ¶ | |||
| 10.2. Object Definitions | 10.2. Object Definitions | |||
| An object definition may be revised in any of the following ways: | An object definition may be revised in any of the following ways: | |||
| (1) A SYNTAX clause containing an enumerated INTEGER may have new | (1) A SYNTAX clause containing an enumerated INTEGER may have new | |||
| enumerations added or existing labels changed. Similarly, named | enumerations added or existing labels changed. Similarly, named | |||
| bits may be added or existing labels changed for the BITS | bits may be added or existing labels changed for the BITS | |||
| construct. | construct. | |||
| Draft SMIv2 October 1998 | Draft SMIv2 January 1999 | |||
| (2) The value of a SYNTAX clause may be replaced by a textual | (2) The value of a SYNTAX clause may be replaced by a textual | |||
| convention, providing the textual convention is defined to use the | convention, providing the textual convention is defined to use the | |||
| same primitive ASN.1 type, has the same set of values, and has | same primitive ASN.1 type, has the same set of values, and has | |||
| identical semantics. | identical semantics. | |||
| (3) A STATUS clause value of "current" may be revised as "deprecated" | (3) A STATUS clause value of "current" may be revised as "deprecated" | |||
| or "obsolete". Similarly, a STATUS clause value of "deprecated" | or "obsolete". Similarly, a STATUS clause value of "deprecated" | |||
| may be revised as "obsolete". When making such a change, the | may be revised as "obsolete". When making such a change, the | |||
| DESCRIPTION clause should be updated to explain the rationale. | DESCRIPTION clause should be updated to explain the rationale. | |||
| skipping to change at page 45, line 5 ¶ | skipping to change at page 46, line 5 ¶ | |||
| 10.3. Notification Definitions | 10.3. Notification Definitions | |||
| A notification definition may be revised in any of the following ways: | A notification definition may be revised in any of the following ways: | |||
| (1) A REFERENCE clause may be added or updated. | (1) A REFERENCE clause may be added or updated. | |||
| (2) A STATUS clause value of "current" may be revised as "deprecated" | (2) A STATUS clause value of "current" may be revised as "deprecated" | |||
| or "obsolete". Similarly, a STATUS clause value of "deprecated" | or "obsolete". Similarly, a STATUS clause value of "deprecated" | |||
| may be revised as "obsolete". When making such a change, the | may be revised as "obsolete". When making such a change, the | |||
| Draft SMIv2 October 1998 | Draft SMIv2 January 1999 | |||
| DESCRIPTION clause should be updated to explain the rationale. | DESCRIPTION clause should be updated to explain the rationale. | |||
| (3) A DESCRIPTION clause may be clarified. | (3) A DESCRIPTION clause may be clarified. | |||
| Otherwise, if the semantics of any previously defined notification are | Otherwise, if the semantics of any previously defined notification are | |||
| changed (i.e., if a non-editorial change is made to any clause other | changed (i.e., if a non-editorial change is made to any clause other | |||
| those specifically allowed above), then the OBJECT IDENTIFIER value | those specifically allowed above), then the OBJECT IDENTIFIER value | |||
| associated with that notification must also be changed. | associated with that notification must also be changed. | |||
| Note that changing the descriptor associated with an existing | Note that changing the descriptor associated with an existing | |||
| notification is considered a semantic change, as these strings may be | notification is considered a semantic change, as these strings may be | |||
| used in an IMPORTS statement. | used in an IMPORTS statement. | |||
| Draft SMIv2 October 1998 | Draft SMIv2 January 1999 | |||
| 11. Appendix A: Detailed Sub-typing Rules | 11. Appendix A: Detailed Sub-typing Rules | |||
| 11.1. Syntax Rules | 11.1. Syntax Rules | |||
| The syntax rules for sub-typing are given below. Note that while this | 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 | 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 | allowed in ASN.1, and a number of ASN.1 constructs are not allowed by | |||
| this syntax. | this syntax. | |||
| skipping to change at page 47, line 5 ¶ | skipping to change at page 48, line 5 ¶ | |||
| <range> is further restricted as follows: | <range> is further restricted as follows: | |||
| - any <value> used in a SIZE clause must be non-negative. | - any <value> used in a SIZE clause must be non-negative. | |||
| - when a pair of values is specified, the first value | - when a pair of values is specified, the first value | |||
| must be less than the second value. | must be less than the second value. | |||
| - when multiple ranges are specified, the ranges may | - when multiple ranges are specified, the ranges may | |||
| not overlap but may touch. For example, (1..4 | 4..9) | not overlap but may touch. For example, (1..4 | 4..9) | |||
| is invalid, and (1..4 | 5..9) is valid. | is invalid, and (1..4 | 5..9) is valid. | |||
| - the ranges must be a subset of the maximum range of the | - the ranges must be a subset of the maximum range of the | |||
| base type. | base type. | |||
| Draft SMIv2 October 1998 | Draft SMIv2 January 1999 | |||
| 11.2. Examples | 11.2. Examples | |||
| Some examples of legal sub-typing: | Some examples of legal sub-typing: | |||
| Integer32 (-20..100) | Integer32 (-20..100) | |||
| Integer32 (0..100 | 300..500) | Integer32 (0..100 | 300..500) | |||
| Integer32 (300..500 | 0..100) | Integer32 (300..500 | 0..100) | |||
| Integer32 (0 | 2 | 4 | 6 | 8 | 10) | Integer32 (0 | 2 | 4 | 6 | 8 | 10) | |||
| OCTET STRING (SIZE(0..100)) | OCTET STRING (SIZE(0..100)) | |||
| skipping to change at page 48, line 5 ¶ | skipping to change at page 49, line 5 ¶ | |||
| Some examples of illegal sub-typing: | Some examples of illegal sub-typing: | |||
| Integer32 (150..100) -- first greater than second | Integer32 (150..100) -- first greater than second | |||
| Integer32 (0..100 | 50..500) -- ranges overlap | Integer32 (0..100 | 50..500) -- ranges overlap | |||
| Integer32 (0 | 2 | 0 ) -- value duplicated | Integer32 (0 | 2 | 0 ) -- value duplicated | |||
| Integer32 (MIN..-1 | 1..MAX) -- MIN and MAX not allowed | Integer32 (MIN..-1 | 1..MAX) -- MIN and MAX not allowed | |||
| Integer32 (SIZE (0..34)) -- must not use SIZE | Integer32 (SIZE (0..34)) -- must not use SIZE | |||
| OCTET STRING (0..100) -- must use SIZE | OCTET STRING (0..100) -- must use SIZE | |||
| OCTET STRING (SIZE(-10..100)) -- negative SIZE | OCTET STRING (SIZE(-10..100)) -- negative SIZE | |||
| Draft SMIv2 October 1998 | Draft SMIv2 January 1999 | |||
| 12. Security Considerations | 12. Security Considerations | |||
| This document defines a language with which to write and read | This document defines a language with which to write and read | |||
| descriptions of management information. The language itself has no | descriptions of management information. The language itself has no | |||
| security impact on the Internet. | security impact on the Internet. | |||
| 13. Editors' Addresses | 13. Editors' Addresses | |||
| Keith McCloghrie | Keith McCloghrie | |||
| skipping to change at page 49, line 5 ¶ | skipping to change at page 50, line 5 ¶ | |||
| Email: dperkins@snmpinfo.com | Email: dperkins@snmpinfo.com | |||
| Juergen Schoenwaelder | Juergen Schoenwaelder | |||
| TU Braunschweig | TU Braunschweig | |||
| Bueltenweg 74/75 | Bueltenweg 74/75 | |||
| 38106 Braunschweig | 38106 Braunschweig | |||
| Germany | Germany | |||
| Phone: +49 531 391-3283 | Phone: +49 531 391-3283 | |||
| Email: schoenw@ibr.cs.tu-bs.de | Email: schoenw@ibr.cs.tu-bs.de | |||
| Draft SMIv2 October 1998 | Draft SMIv2 January 1999 | |||
| 14. References | 14. References | |||
| [1] Information processing systems - Open Systems Interconnection - | [1] Information processing systems - Open Systems Interconnection - | |||
| Specification of Abstract Syntax Notation One (ASN.1), | Specification of Abstract Syntax Notation One (ASN.1), | |||
| International Organization for Standardization. International | International Organization for Standardization. International | |||
| Standard 8824, (December, 1987). | Standard 8824, (December, 1987). | |||
| [2] McCloghrie, K., Perkins, D., and Schoenwaelder, J., "Conformance | [2] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M., | |||
| Statements for SMIv2", draft-ops-smiv2-conf-00.txt, October 1998. | and Waldbusser, S. "Conformance Statements for SMIv2", draft-ops- | |||
| smiv2-conf-01.txt, January 1999. | ||||
| [3] McCloghrie, K., Perkins, D., and Schoenwaelder, J., "Textual | [3] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M., | |||
| Conventions for SMIv2", draft-ops-smiv2-tc-00.txt, October 1998. | and Waldbusser, S. "Textual Conventions for SMIv2", draft-ops- | |||
| smiv2-tc-01.txt, January 1999. | ||||
| [4] Information processing systems - Open Systems Interconnection - | [4] Information processing systems - Open Systems Interconnection - | |||
| Specification of Basic Encoding Rules for Abstract Syntax Notation | Specification of Basic Encoding Rules for Abstract Syntax Notation | |||
| One (ASN.1), International Organization for Standardization. | One (ASN.1), International Organization for Standardization. | |||
| International Standard 8825, (December, 1987). | International Standard 8825, (December, 1987). | |||
| [5] The SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and | [5] The SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and | |||
| Waldbusser, S., "Management Information Base for Version 2 of the | Waldbusser, S., "Management Information Base for Version 2 of the | |||
| Simple Network Management Protocol (SNMPv2)", RFC 1907, January | Simple Network Management Protocol (SNMPv2)", RFC 1907, January | |||
| 1996. | 1996. | |||
| [6] The SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and | [6] The SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and | |||
| Waldbusser, S., "Protocol Operations for Version 2 of the Simple | Waldbusser, S., "Protocol Operations for Version 2 of the Simple | |||
| Network Management Protocol (SNMPv2)", RFC 1905, January 1996. | Network Management Protocol (SNMPv2)", RFC 1905, January 1996. | |||
| Draft SMIv2 October 1998 | Draft SMIv2 January 1999 | |||
| 15. Full Copyright Statement | 15. Full Copyright Statement | |||
| Copyright (C) The Internet Society (1998). All Rights Reserved. | Copyright (C) The Internet Society (1999). All Rights Reserved. | |||
| This document and translations of it may be copied and furnished to | This document and translations of it may be copied and furnished to | |||
| others, and derivative works that comment on or otherwise explain it or | others, and derivative works that comment on or otherwise explain it or | |||
| assist in its implementation may be prepared, copied, published and | assist in its implementation may be prepared, copied, published and | |||
| distributed, in whole or in part, without restriction of any kind, | distributed, in whole or in part, without restriction of any kind, | |||
| provided that the above copyright notice and this paragraph are included | provided that the above copyright notice and this paragraph are included | |||
| on all such copies and derivative works. However, this document itself | 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 | may not be modified in any way, such as by removing the copyright notice | |||
| or references to the Internet Society or other Internet organizations, | or references to the Internet Society or other Internet organizations, | |||
| except as needed for the purpose of developing Internet standards in | except as needed for the purpose of developing Internet standards in | |||
| skipping to change at page 51, line 4 ¶ | skipping to change at page 52, line 4 ¶ | |||
| The limited permissions granted above are perpetual and will not be | The limited permissions granted above are perpetual and will not be | |||
| revoked by the Internet Society or its successors or assigns. | revoked by the Internet Society or its successors or assigns. | |||
| This document and the information contained herein is provided on an "AS | This document and the information contained herein is provided on an "AS | |||
| IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK | IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK | |||
| FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT | FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT | |||
| LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT | LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT | |||
| INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR | INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR | |||
| FITNESS FOR A PARTICULAR PURPOSE." | FITNESS FOR A PARTICULAR PURPOSE." | |||
| Draft SMIv2 October 1998 | ||||
| Draft SMIv2 January 1999 | ||||
| Table of Contents | Table of Contents | |||
| 1 Introduction .................................................... 2 | 1 Introduction .................................................... 2 | |||
| 1.1 A Note on Terminology ......................................... 2 | 1.1 A Note on Terminology ......................................... 2 | |||
| 2 Definitions ..................................................... 3 | 2 Definitions ..................................................... 3 | |||
| 3.1 The MODULE-IDENTITY macro ..................................... 4 | 3.1 The MODULE-IDENTITY macro ..................................... 4 | |||
| 3.2 Object Names and Syntaxes ..................................... 6 | 3.2 Object Names and Syntaxes ..................................... 7 | |||
| 3.3 The OBJECT-TYPE macro ......................................... 9 | 3.3 The OBJECT-TYPE macro ......................................... 10 | |||
| 3.5 The NOTIFICATION-TYPE macro ................................... 11 | 3.5 The NOTIFICATION-TYPE macro ................................... 12 | |||
| 3.6 Administrative Identifiers .................................... 11 | 3.6 Administrative Identifiers .................................... 12 | |||
| 3 Information Modules ............................................. 12 | 3 Information Modules ............................................. 13 | |||
| 3.1 Macro Invocation .............................................. 13 | 3.1 Macro Invocation .............................................. 14 | |||
| 3.1.1 Textual Values and Strings .................................. 14 | 3.1.1 Textual Values and Strings .................................. 15 | |||
| 3.2 IMPORTing Symbols ............................................. 14 | 3.2 IMPORTing Symbols ............................................. 15 | |||
| 3.3 Exporting Symbols ............................................. 15 | 3.3 Exporting Symbols ............................................. 16 | |||
| 3.4 ASN.1 Comments ................................................ 15 | 3.4 ASN.1 Comments ................................................ 16 | |||
| 3.5 OBJECT IDENTIFIER values ...................................... 15 | 3.5 OBJECT IDENTIFIER values ...................................... 16 | |||
| 3.6 OBJECT IDENTIFIER usage ....................................... 16 | 3.6 OBJECT IDENTIFIER usage ....................................... 17 | |||
| 3.7 Reserved Keywords ............................................. 17 | 3.7 Reserved Keywords ............................................. 18 | |||
| 4 Naming Hierarchy ................................................ 18 | 4 Naming Hierarchy ................................................ 19 | |||
| 5 Mapping of the MODULE-IDENTITY macro ............................ 19 | 5 Mapping of the MODULE-IDENTITY macro ............................ 20 | |||
| 5.1 Mapping of the LAST-UPDATED clause ............................ 19 | 5.1 Mapping of the LAST-UPDATED clause ............................ 20 | |||
| 5.2 Mapping of the ORGANIZATION clause ............................ 19 | 5.2 Mapping of the ORGANIZATION clause ............................ 20 | |||
| 5.3 Mapping of the CONTACT-INFO clause ............................ 19 | 5.3 Mapping of the CONTACT-INFO clause ............................ 20 | |||
| 5.4 Mapping of the DESCRIPTION clause ............................. 19 | 5.4 Mapping of the DESCRIPTION clause ............................. 20 | |||
| 5.5 Mapping of the REVISION clause ................................ 19 | 5.5 Mapping of the REVISION clause ................................ 20 | |||
| 5.5.1 Mapping of the DESCRIPTION sub-clause ....................... 20 | 5.5.1 Mapping of the DESCRIPTION sub-clause ....................... 21 | |||
| 5.6 Mapping of the MODULE-IDENTITY value .......................... 20 | 5.6 Mapping of the MODULE-IDENTITY value .......................... 21 | |||
| 5.7 Usage Example ................................................. 21 | 5.7 Usage Example ................................................. 22 | |||
| 6 Mapping of the OBJECT-IDENTITY macro ............................ 22 | 6 Mapping of the OBJECT-IDENTITY macro ............................ 23 | |||
| 6.1 Mapping of the STATUS clause .................................. 22 | 6.1 Mapping of the STATUS clause .................................. 23 | |||
| 6.2 Mapping of the DESCRIPTION clause ............................. 22 | 6.2 Mapping of the DESCRIPTION clause ............................. 23 | |||
| 6.3 Mapping of the REFERENCE clause ............................... 22 | 6.3 Mapping of the REFERENCE clause ............................... 23 | |||
| 6.4 Mapping of the OBJECT-IDENTITY value .......................... 22 | 6.4 Mapping of the OBJECT-IDENTITY value .......................... 23 | |||
| 6.5 Usage Example ................................................. 23 | 6.5 Usage Example ................................................. 24 | |||
| 7 Mapping of the OBJECT-TYPE macro ................................ 24 | 7 Mapping of the OBJECT-TYPE macro ................................ 25 | |||
| 7.1 Mapping of the SYNTAX clause .................................. 24 | 7.1 Mapping of the SYNTAX clause .................................. 25 | |||
| 7.1.1 Integer32 and INTEGER ....................................... 24 | 7.1.1 Integer32 and INTEGER ....................................... 25 | |||
| 7.1.2 OCTET STRING ................................................ 25 | 7.1.2 OCTET STRING ................................................ 26 | |||
| 7.1.3 OBJECT IDENTIFIER ........................................... 25 | 7.1.3 OBJECT IDENTIFIER ........................................... 26 | |||
| 7.1.4 The BITS construct .......................................... 25 | 7.1.4 The BITS construct .......................................... 26 | |||
| 7.1.5 IpAddress ................................................... 26 | 7.1.5 IpAddress ................................................... 27 | |||
| 7.1.6 Counter32 ................................................... 26 | 7.1.6 Counter32 ................................................... 27 | |||
| 7.1.7 Gauge32 ..................................................... 27 | 7.1.7 Gauge32 ..................................................... 28 | |||
| Draft SMIv2 October 1998 | ||||
| 7.1.8 TimeTicks ................................................... 27 | Draft SMIv2 January 1999 | |||
| 7.1.9 Opaque ...................................................... 27 | ||||
| 7.1.10 Counter64 .................................................. 28 | 7.1.8 TimeTicks ................................................... 28 | |||
| 7.1.11 Unsigned32 ................................................. 28 | 7.1.9 Opaque ...................................................... 28 | |||
| 7.1.12 Conceptual Tables .......................................... 29 | 7.1.10 Counter64 .................................................. 29 | |||
| 7.1.12.1 Creation and Deletion of Conceptual Rows ................. 29 | 7.1.11 Unsigned32 ................................................. 29 | |||
| 7.2 Mapping of the UNITS clause ................................... 30 | 7.1.12 Conceptual Tables .......................................... 30 | |||
| 7.3 Mapping of the MAX-ACCESS clause .............................. 30 | 7.1.12.1 Creation and Deletion of Conceptual Rows ................. 30 | |||
| 7.4 Mapping of the STATUS clause .................................. 30 | 7.2 Mapping of the UNITS clause ................................... 31 | |||
| 7.5 Mapping of the DESCRIPTION clause ............................. 31 | 7.3 Mapping of the MAX-ACCESS clause .............................. 31 | |||
| 7.6 Mapping of the REFERENCE clause ............................... 31 | 7.4 Mapping of the STATUS clause .................................. 31 | |||
| 7.7 Mapping of the INDEX clause ................................... 31 | 7.5 Mapping of the DESCRIPTION clause ............................. 32 | |||
| 7.8 Mapping of the AUGMENTS clause ................................ 33 | 7.6 Mapping of the REFERENCE clause ............................... 32 | |||
| 7.8.1 Relation between INDEX and AUGMENTS clauses ................. 34 | 7.7 Mapping of the INDEX clause ................................... 32 | |||
| 7.9 Mapping of the DEFVAL clause .................................. 34 | 7.8 Mapping of the AUGMENTS clause ................................ 34 | |||
| 7.10 Mapping of the OBJECT-TYPE value ............................. 35 | 7.8.1 Relation between INDEX and AUGMENTS clauses ................. 35 | |||
| 7.11 Usage Example ................................................ 37 | 7.9 Mapping of the DEFVAL clause .................................. 35 | |||
| 8 Mapping of the NOTIFICATION-TYPE macro .......................... 39 | 7.10 Mapping of the OBJECT-TYPE value ............................. 36 | |||
| 8.1 Mapping of the OBJECTS clause ................................. 39 | 7.11 Usage Example ................................................ 38 | |||
| 8.2 Mapping of the STATUS clause .................................. 39 | 8 Mapping of the NOTIFICATION-TYPE macro .......................... 40 | |||
| 8.3 Mapping of the DESCRIPTION clause ............................. 40 | 8.1 Mapping of the OBJECTS clause ................................. 40 | |||
| 8.4 Mapping of the REFERENCE clause ............................... 40 | 8.2 Mapping of the STATUS clause .................................. 40 | |||
| 8.5 Mapping of the NOTIFICATION-TYPE value ........................ 40 | 8.3 Mapping of the DESCRIPTION clause ............................. 41 | |||
| 8.6 Usage Example ................................................. 41 | 8.4 Mapping of the REFERENCE clause ............................... 41 | |||
| 9 Refined Syntax .................................................. 42 | 8.5 Mapping of the NOTIFICATION-TYPE value ........................ 41 | |||
| 10 Extending an Information Module ................................ 43 | 8.6 Usage Example ................................................. 42 | |||
| 10.1 Object Assignments ........................................... 43 | 9 Refined Syntax .................................................. 43 | |||
| 10.2 Object Definitions ........................................... 43 | 10 Extending an Information Module ................................ 44 | |||
| 10.3 Notification Definitions ..................................... 44 | 10.1 Object Assignments ........................................... 44 | |||
| 11 Appendix A: Detailed Sub-typing Rules .......................... 46 | 10.2 Object Definitions ........................................... 44 | |||
| 11.1 Syntax Rules ................................................. 46 | 10.3 Notification Definitions ..................................... 45 | |||
| 11.2 Examples ..................................................... 47 | 11 Appendix A: Detailed Sub-typing Rules .......................... 47 | |||
| 12 Security Considerations ........................................ 48 | 11.1 Syntax Rules ................................................. 47 | |||
| 13 Editors' Addresses ............................................. 48 | 11.2 Examples ..................................................... 48 | |||
| 14 References ..................................................... 49 | 12 Security Considerations ........................................ 49 | |||
| 15 Full Copyright Statement ....................................... 50 | 13 Editors' Addresses ............................................. 49 | |||
| 14 References ..................................................... 50 | ||||
| 15 Full Copyright Statement ....................................... 51 | ||||
| End of changes. 74 change blocks. | ||||
| 132 lines changed or deleted | 154 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||