⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc1448.txt

📁 RFC 的详细文档!
💻 TXT
📖 第 1 页 / 共 5 页
字号:



          Case, McCloghrie, Rose & Waldbusser                  [Page 23]





          RFC 1448        Protocol Operations for SNMPv2      April 1993


          (1)  If the variable binding's name specifies a variable which
               is not accessible by this request, then the value of the
               Response-PDU's error-status field is set to `noAccess',
               and the value of its error-index field is set to the
               index of the failed variable binding.

          (2)  Otherwise, if the variable binding's name specifies a
               variable which does not exist and could not ever be
               created, then the value of the Response-PDU's error-
               status field is set to `noCreation', and the value of its
               error-index field is set to the index of the failed
               variable binding.

          (3)  Otherwise, if the variable binding's name specifies a
               variable which exists but can not be modified no matter
               what new value is specified, then the value of the
               Response-PDU's error-status field is set to
               `notWritable', and the value of its error-index field is
               set to the index of the failed variable binding.

          (4)  Otherwise, if the variable binding's value field
               specifies, according to the ASN.1 language, a type which
               is inconsistent with that required for the variable, then
               the value of the Response-PDU's error-status field is set
               to `wrongType', and the value of its error-index field is
               set to the index of the failed variable binding.

          (5)  Otherwise, if the variable binding's value field
               specifies, according to the ASN.1 language, a length
               which is inconsistent with that required for the
               variable, then the value of the Response-PDU's error-
               status field is set to `wrongLength', and the value of
               its error-index field is set to the index of the failed
               variable binding.

          (6)  Otherwise, if the variable binding's value field contains
               an ASN.1 encoding which is inconsistent with that field's
               ASN.1 tag, then: the value of the Response-PDU's error-
               status field is set to `wrongEncoding', and the value of
               its error-index field is set to the index of the failed
               variable binding.

          (7)  Otherwise, if the variable binding's value field
               specifies a value which could under no circumstances be
               assigned to the variable, then: the value of the





          Case, McCloghrie, Rose & Waldbusser                  [Page 24]





          RFC 1448        Protocol Operations for SNMPv2      April 1993


               Response-PDU's error-status field is set to `wrongValue',
               and the value of its error-index field is set to the
               index of the failed variable binding.

          (8)  Otherwise, if the variable binding's name specifies a
               variable which does not exist but can not be created not
               under the present circumstances (even though it could be
               created under other circumstances), then the value of the
               Response-PDU's error-status field is set to
               `inconsistentName', and the value of its error-index
               field is set to the index of the failed variable binding.

          (9)  Otherwise, if the variable binding's value field
               specifies a value that could under other circumstances be
               assigned to the variable, but is presently inconsistent,
               then the value of the Response-PDU's error-status field
               is set to `inconsistentValue', and the value of its
               error-index field is set to the index of the failed
               variable binding.

          (10) Otherwise, if the assignment of the value specified by
               the variable binding's value field to the specified
               variable requires the allocation of a resource which is
               presently unavailable, then: the value of the Response-
               PDU's error-status field is set to `resourceUnavailable',
               and the value of its error-index field is set to the
               index of the failed variable binding.

          (11) If the processing of the variable binding fails for a
               reason other than listed above, then the value of the
               Response-PDU's error-status field is set to `genErr', and
               the value of its error-index field is set to the index of
               the failed variable binding.

          (12) Otherwise, the validation of the variable binding
               succeeds.

          At the end of the first phase, if the validation of all
          variable bindings succeeded, then:

          The value of the Response-PDU's error-status field is set to
          `noError' and the value of its error-index field is zero.

          For each variable binding in the request, the named variable
          is created if necessary, and the specified value is assigned





          Case, McCloghrie, Rose & Waldbusser                  [Page 25]





          RFC 1448        Protocol Operations for SNMPv2      April 1993


          to it.  Each of these variable assignments occurs as if
          simultaneously with respect to all other assignments specified
          in the same request.  However, if the same variable is named
          more than once in a single request, with different associated
          values, then the actual assignment made to that variable is
          implementation-specific.

          If any of these assignments fail (even after all the previous
          validations), then all other assignments are undone, and the
          Response-PDU is modified to have the value of its error-status
          field set to `commitFailed', and the value of its error-index
          field set to the index of the failed variable binding.

          If and only if it is not possible to undo all the assignments,
          then the Response-PDU is modified to have the value of its
          error-status field set to `undoFailed', and the value of its
          error-index field is set to zero.  Note that implementations
          are strongly encouraged to take all possible measures to avoid
          use of either `commitFailed' or `undoFailed' - these two
          error-status codes are not to be taken as license to take the
          easy way out in an implementation.

          Finally, the generated Response-PDU is encapsulated into a
          message, and transmitted to the originator of the SetRequest-
          PDU.


          4.2.6.  The SNMPv2-Trap-PDU

          A SNMPv2-Trap-PDU is generated and transmitted by a SNMPv2
          entity acting in an agent role when an exceptional situation
          occurs.

          The destination(s) to which a SNMPv2-Trap-PDU is sent is
          determined by consulting the aclTable [5] to find all entries
          satisfying the following conditions:

          (1)  The value of aclSubject refers to the SNMPv2 entity.

          (2)  The value of aclPrivileges allows for the SNMPv2-Trap-
               PDU.

          (3)  aclResources refers to a SNMPv2 context denoting local
               object resources, and the notification's administratively
               assigned name is present in the corresponding MIB view.





          Case, McCloghrie, Rose & Waldbusser                  [Page 26]





          RFC 1448        Protocol Operations for SNMPv2      April 1993


               (That is, the set of entries in the viewTable [5] for
               which the instance of viewIndex has the same value as the
               aclResources's contextViewIndex, define a MIB view which
               contains the notification's administratively assigned
               name.)

          (4)  If the OBJECTS clause is present in the invocation of the
               corresponding NOTIFICATION-TYPE macro, then the
               correspondent variables are all present in the MIB view
               corresponding to aclResource.

          Then, for each entry satisfying these conditions, a SNMPv2-
          Trap-PDU is sent from aclSubject with context aclResources to
          aclTarget.  The instance of snmpTrapNumbers [11] corresponding
          to aclTarget is incremented, and is used as the request-id
          field of the SNMPv2-Trap-PDU.  Then, the variable-bindings
          field are constructed as:

          (1)  The first variable is sysUpTime.0 [9].

          (2)  The second variable is snmpTrapOID.0 [11], which contains
               the administratively assigned name of the notification.

          (3)  If the OBJECTS clause is present in the invocation of the
               corresponding NOTIFICATION-TYPE macro, then each
               corresponding variable is copied, in order, to the
               variable-bindings field.

          (4)  At the option of the SNMPv2 entity acting in an agent
               role, additional variables may follow in the variable-
               bindings field.


          4.2.7.  The InformRequest-PDU

          An InformRequest-PDU is generated and transmitted at the
          request an application in a SNMPv2 entity acting in a manager
          role, that wishes to notify another application (in a SNMPv2
          entity also acting in a manager role) of information in the
          MIB View of a party local to the sending application.

          The destination(s) to which an InformRequest-PDU is sent is
          determined by inspecting the snmpEventNotifyTable [12], or as
          specified by the requesting application.  The first two
          variable bindings in the variable binding list of an





          Case, McCloghrie, Rose & Waldbusser                  [Page 27]





          RFC 1448        Protocol Operations for SNMPv2      April 1993


          InformRequest-PDU are sysUpTime.0 [9] and snmpEventID.i [12]
          respectively.  If the OBJECTS clause is present in the
          invocation of the corresponding NOTIFICATION-TYPE macro, then
          each corresponding variable, as instantiated by this
          notification, is copied, in order, to the variable-bindings
          field.

          Upon receipt of an InformRequest-PDU, the receiving SNMPv2
          entity determines the size of a message encapsulating a
          Response-PDU with the same values in its request-id, error-
          status, error-index and variable-bindings fields as the
          received InformRequest-PDU.  If the determined message size is
          greater than either a local constraint or the maximum message
          size of the request's source party, then an alternate
          Response-PDU is generated, transmitted to the originator of
          the InformRequest-PDU, and processing of the InformRequest-PDU
          terminates immediately thereafter.  This alternate Response-
          PDU is formatted with the same values in its request-id field
          as the received InformRequest-PDU, with the value of its
          error-status field set to `tooBig', the value of its error-
          index field set to zero, and an empty variable-bindings field.
          This alternate Response-PDU is then encapsulated into a
          message.  If the size of the resultant message is less than or
          equal to both a local constraint and the maximum message size
          of the request's source party, it is transmitted to the
          originator of the InformRequest-PDU.  Otherwise, the resultant
          message is discarded.  Regardless, processing of the
          InformRequest-PDU terminates.

          Otherwise, the receiving SNMPv2 entity:

          (1)  presents its contents to the appropriate SNMPv2
               application;

          (2)  generates a Response-PDU with the same values in its
               request-id and variable-bindings fields as the received
               InformRequest-PDU, with the value of its error-status
               field is set to `noError' and the value of its error-
               index field is zero; and

          (3)  transmits the generated Response-PDU to the originator of
               the InformRequest-PDU.








          Case, McCloghrie, Rose & Waldbusser                  [Page 28]





          RFC 1448        Protocol Operations for SNMPv2      April 1993


          5.  Acknowledgements

          This document is based, in part, on RFC 1157.  The mechanism
          for bulk retrieval is influenced by many experiments,
          including RFC1187 and also Greg Satz's work on SNMP over TCP.

          Finally, the comments of the SNMP version 2 working group are
          gratefully acknowledged:

               Beth Adams, Network Management Forum
               Steve Alexander, INTERACTIVE Systems Corporation
               David Arneson, Cabletron Systems
               Toshiya Asaba
               Fred Baker, ACC
               Jim Barnes, Xylogics, Inc.
               Brian Bataille
               Andy Bierman, SynOptics Communications, Inc.
               Uri Blumenthal, IBM Corporation
               Fred Bohle, Interlink
               Jack Brown
               Theodore Brunner, Bellcore
               Stephen F. Bush, GE Information Services
               Jeffrey D. Case, University of Tennessee, Knoxville
               John Chang, IBM Corporation
               Szusin Chen, Sun Microsystems
               Robert Ching
               Chris Chiotasso, Ungermann-Bass
               Bobby A. Clay, NASA/Boeing
               John Cooke, Chipcom
               Tracy Cox, Bellcore
               Juan Cruz, Datability, Inc.
               David Cullerot, Cabletron Systems
               Cathy Cunningham, Microcom
               James R. (Chuck) Davin, Bellcore
               Michael Davis, Clearpoint
               Mike Davison, FiberCom
               Cynthia DellaTorre, MITRE
               Taso N. Devetzis, Bellcore
               Manual Diaz, DAVID Systems, Inc.
               Jon Dreyer, Sun Microsystems
               David Engel, Optical Data Systems
               Mike Erlinger, Lexcel
               Roger Fajman,

⌨️ 快捷键说明

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