rfc1442.txt

来自「RFC 的详细文档!」· 文本 代码 · 共 2,194 行 · 第 1/5 页

TXT
2,194
字号


























          Case, McCloghrie, Rose & Waldbusser                   [Page 6]





          RFC 1442                SMI for SNMPv2              April 1993


          -- names of objects

          ObjectName ::=
              OBJECT IDENTIFIER


          -- syntax of objects

          ObjectSyntax ::=
              CHOICE {
                  simple
                      SimpleSyntax,

                    -- note that SEQUENCEs for conceptual tables and
                    -- rows are not mentioned here...

                  application-wide
                      ApplicationSyntax
              }


          -- built-in ASN.1 types

          SimpleSyntax ::=
              CHOICE {
                  -- INTEGERs with a more restrictive range
                  -- may also be used
                  integer-value
                      INTEGER (-2147483648..2147483647),

                  string-value
                      OCTET STRING,

                  objectID-value
                      OBJECT IDENTIFIER,

                  -- only the enumerated form is allowed
                  bit-value
                      BIT STRING
              }










          Case, McCloghrie, Rose & Waldbusser                   [Page 7]





          RFC 1442                SMI for SNMPv2              April 1993


          -- indistinguishable from INTEGER, but never needs more than
          -- 32-bits for a two's complement representation
          Integer32 ::=
              [UNIVERSAL 2]
                  IMPLICIT INTEGER (-2147483648..2147483647)


          -- application-wide types

          ApplicationSyntax ::=
              CHOICE {
                  ipAddress-value
                      IpAddress,

                  counter-value
                      Counter32,

                  gauge-value
                      Gauge32,

                  timeticks-value
                      TimeTicks,

                  arbitrary-value
                      Opaque,

                  nsapAddress-value
                      NsapAddress,

                  big-counter-value
                      Counter64,

                  unsigned-integer-value
                      UInteger32
              }

          -- in network-byte order
          -- (this is a tagged type for historical reasons)
          IpAddress ::=
              [APPLICATION 0]
                  IMPLICIT OCTET STRING (SIZE (4))









          Case, McCloghrie, Rose & Waldbusser                   [Page 8]





          RFC 1442                SMI for SNMPv2              April 1993


          -- this wraps
          Counter32 ::=
              [APPLICATION 1]
                  IMPLICIT INTEGER (0..4294967295)

          -- this doesn't wrap
          Gauge32 ::=
              [APPLICATION 2]
                  IMPLICIT INTEGER (0..4294967295)

          -- hundredths of seconds since an epoch
          TimeTicks ::=
              [APPLICATION 3]
                  IMPLICIT INTEGER (0..4294967295)

          -- for backward-compatibility only
          Opaque ::=
              [APPLICATION 4]
                  IMPLICIT OCTET STRING

          -- for OSI NSAP addresses
          -- (this is a tagged type for historical reasons)
          NsapAddress ::=
              [APPLICATION 5]
                  IMPLICIT OCTET STRING (SIZE (1 | 4..21))

          -- for counters that wrap in less than one hour with only 32 bits
          Counter64 ::=
              [APPLICATION 6]
                  IMPLICIT INTEGER (0..18446744073709551615)

          -- an unsigned 32-bit quantity
          UInteger32 ::=
              [APPLICATION 7]
                  IMPLICIT INTEGER (0..4294967295)















          Case, McCloghrie, Rose & Waldbusser                   [Page 9]





          RFC 1442                SMI for SNMPv2              April 1993


          -- definition for objects

          OBJECT-TYPE MACRO ::=
          BEGIN
              TYPE NOTATION ::=
                            "SYNTAX" type(Syntax)
                            UnitsPart
                            "MAX-ACCESS" Access
                            "STATUS" Status
                            "DESCRIPTION" Text
                            ReferPart
                            IndexPart
                            DefValPart

              VALUE NOTATION ::=
                            value(VALUE ObjectName)

              UnitsPart ::=
                            "UNITS" Text
                          | empty

              Access ::=
                            "not-accessible"
                          | "read-only"
                          | "read-write"
                          | "read-create"

              Status ::=
                            "current"
                          | "deprecated"
                          | "obsolete"

              ReferPart ::=
                            "REFERENCE" Text
                          | empty

              IndexPart ::=
                            "INDEX"    "{" IndexTypes "}"
                          | "AUGMENTS" "{" Entry      "}"
                          | empty
              IndexTypes ::=
                            IndexType
                          | IndexTypes "," IndexType







          Case, McCloghrie, Rose & Waldbusser                  [Page 10]





          RFC 1442                SMI for SNMPv2              April 1993


              IndexType ::=
                            "IMPLIED" Index
                          | Index
              Index ::=
                              -- use the SYNTAX value of the
                              -- correspondent OBJECT-TYPE invocation
                            value(Indexobject ObjectName)
              Entry ::=
                              -- use the INDEX value of the
                              -- correspondent OBJECT-TYPE invocation
                            value(Entryobject ObjectName)

              DefValPart ::=
                            "DEFVAL" "{" value(Defval Syntax) "}"
                          | empty

              -- uses the NVT ASCII character set
              Text ::= """" string """"
          END































          Case, McCloghrie, Rose & Waldbusser                  [Page 11]





          RFC 1442                SMI for SNMPv2              April 1993


          -- definitions for notifications

          NOTIFICATION-TYPE MACRO ::=
          BEGIN
              TYPE NOTATION ::=
                            ObjectsPart
                            "STATUS" Status
                            "DESCRIPTION" Text
                            ReferPart

              VALUE NOTATION ::=
                            value(VALUE OBJECT IDENTIFIER)

              ObjectsPart ::=
                            "OBJECTS" "{" Objects "}"
                          | empty
              Objects ::=
                            Object
                          | Objects "," Object
              Object ::=
                            value(Name ObjectName)

              Status ::=
                            "current"
                          | "deprecated"
                          | "obsolete"

              ReferPart ::=
                          "REFERENCE" Text
                        | empty

              -- uses the NVT ASCII character set
              Text ::= """" string """"
          END


          END













          Case, McCloghrie, Rose & Waldbusser                  [Page 12]





          RFC 1442                SMI for SNMPv2              April 1993


          3.  Information Modules

          An "information module" is an ASN.1 module defining
          information relating to network management.

          The SMI describes how to use a subset of ASN.1 to define an
          information module.  Further, additional restrictions are
          placed on "standard" information modules.  It is strongly
          recommended that "enterprise-specific" information modules
          also adhere to these restrictions.

          Typically, there are three kinds of information modules:

          (1)  MIB modules, which contain definitions of inter-related
               managed objects, make use of the OBJECT-TYPE and
               NOTIFICATION-TYPE macros;

          (2)  compliance statements for MIB modules, which make use of
               the MODULE-COMPLIANCE and OBJECT-GROUP macros [2]; and,

          (3)  capability statements for agent implementations which
               make use of the AGENT-CAPABILITIES macros [2].

          This classification scheme does not imply a rigid taxonomy.
          For example, a "standard" information module might include
          definitions of managed objects and a compliance statement.
          Similarly, an "enterprise-specific" information module might
          include definitions of managed objects and a capability
          statement.  Of course, a "standard" information module may not
          contain capability statements.

          All information modules start with exactly one invocation of
          the MODULE-IDENTITY macro, which provides contact and revision
          history.  This invocation must appear immediately after any
          IMPORTs or EXPORTs statements.


          3.1.  Macro Invocation

          Within an information module, each macro invocation appears
          as:

               <descriptor> <macro> <clauses> ::= <value>

          where <descriptor> corresponds to an ASN.1 identifier, <macro>





⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?