RFC 3781 - Next Generation Structure of Management Informati(5)

时间:2006-10-30 来源: 作者: 点击:
AMIBdesignershouldchoosebetweenthetwolatter algorithmsbasedonthesizeofthetable(andthereforethe efficiencyofeachalgorithm).Fortablesinwhichalarge numberofentriesareexpected,itisrecommendedthataMIB obj
  

         A MIB designer should choose between the two latter
         algorithms based on the size of the table (and therefore the
         efficiency of each algorithm).  For tables in which a large
         number of entries are expected, it is recommended that a MIB

         object be defined that returns an acceptable index for
         creation.  For tables with small numbers of entries, it is
         recommended that the latter pseudo-random index mechanism be
         used.

         Interaction 2: Creating the Conceptual Row

         Once an unused instance-identifier has been selected, the
         management station determines if it wishes to create and
         activate the conceptual row in one transaction or in a
         negotiated set of interactions.

         Interaction 2a: Creating and Activating the Conceptual Row

         The management station must first determine the column
         requirements, i.e., it must determine those columns for
         which it must or must not provide values.  Depending on the
         complexity of the table and the management station’s
         knowledge of the agent’s capabilities, this determination
         can be made locally by the management station.  Alternately,
         the management station issues a management protocol get
         operation to examine all columns in the conceptual row that
         it wishes to create.  In response, for each column, there
         are three possible outcomes:

             - a value is returned, indicating that some other
             management station has already created this conceptual
             row.  We return to interaction 1.

             - the exception `noSuchInstance’ is returned,
             indicating that the agent implements the object-type
             associated with this column, and that this column in at
             least one conceptual row would be accessible in the MIB
             view used by the retrieval were it to exist. For those
             columns to which the agent provides read-create access,
             the `noSuchInstance’ exception tells the management
             station that it should supply a value for this column
             when the conceptual row is to be created.

             - the exception `noSuchObject’ is returned, indicating
             that the agent does not implement the object-type
             associated with this column or that there is no
             conceptual row for which this column would be
             accessible in the MIB view used by the retrieval.  As
             such, the management station can not issue any
             management protocol set operations to create an
             instance of this column.

         Once the column requirements have been determined, a
         management protocol set operation is accordingly issued.
         This operation also sets the new instance of the status
         column to `createAndGo’.

         When the agent processes the set operation, it verifies that
         it has sufficient information to make the conceptual row
         available for use by the managed device.  The information
         available to the agent is provided by two sources: the
         management protocol set operation which creates the
         conceptual row, and, implementation-specific defaults
         supplied by the agent (note that an agent must provide
         implementation-specific defaults for at least those objects
         which it implements as read-only).  If there is sufficient
         information available, then the conceptual row is created, a
         `noError’ response is returned, the status column is set to
         `active’, and no further interactions are necessary (i.e.,
         interactions 3 and 4 are skipped).  If there is insufficient
         information, then the conceptual row is not created, and the
         set operation fails with an error of `inconsistentValue’.
         On this error, the management station can issue a management
         protocol retrieval operation to determine if this was
         because it failed to specify a value for a required column,
         or, because the selected instance of the status column
         already existed.  In the latter case, we return to
         interaction 1.  In the former case, the management station
         can re-issue the set operation with the additional
         information, or begin interaction 2 again using
         `createAndWait’ in order to negotiate creation of the
         conceptual row.

                                 NOTE WELL

             Regardless of the method used to determine the column
             requirements, it is possible that the management
             station might deem a column necessary when, in fact,
             the agent will not allow that particular columnar
             instance to be created or written.  In this case, the
             management protocol set operation will fail with an
             error such as `noCreation’ or `notWritable’.  In this
             case, the management station decides whether it needs
             to be able to set a value for that particular columnar
             instance.  If not, the management station re-issues the
             management protocol set operation, but without setting

             a value for that particular columnar instance;
             otherwise, the management station aborts the row
             creation algorithm.

         Interaction 2b: Negotiating the Creation of the Conceptual
         Row

         The management station issues a management protocol set
         operation which sets the desired instance of the status
         column to `createAndWait’.  If the agent is unwilling to
         process a request of this sort, the set operation fails with
         an error of `wrongValue’.  (As a consequence, such an agent
         must be prepared to accept a single management protocol set
         operation, i.e., interaction 2a above, containing all of the
         columns indicated by its column requirements.) Otherwise,
         the conceptual row is created, a `noError’ response is
         returned, and the status column is immediately set to either
         `notInService’ or `notReady’, depending on whether it has
         sufficient information to make the conceptual row available
         for use by the managed device.  If there is sufficient
         information available, then the status column is set to
         `notInService’; otherwise, if there is insufficient
         information, then the status column is set to `notReady’.
         Regardless, we proceed to interaction 3.

         Interaction 3: Initializing non-defaulted Objects

         The management station must now determine the column
         requirements.  It issues a management protocol get operation
         to examine all columns in the created conceptual row.  In
         the response, for each column, there are three possible
         outcomes:

             - a value is returned, indicating that the agent
             implements the object-type associated with this column
             and had sufficient information to provide a value.  For
             those columns to which the agent provides read-create
             access (and for which the agent allows their values to
             be changed after their creation), a value return tells
             the management station that it may issue additional
             management protocol set operations, if it desires, in
             order to change the value associated with this column.

             - the exception `noSuchInstance’ is returned,
             indicating that the agent implements the object-type
             associated with this column, and that this column in at
             least one conceptual row would be accessible in the MIB
             view used by the retrieval were it to exist. However,

             the agent does not have sufficient information to
             provide a value, and until a value is provided, the
             conceptual row may not be made available for use by the
             managed device.  For those columns to which the agent
             provides read-create access, the `noSuchInstance’
             exception tells the management station that it must
             issue additional management protocol set operations, in
             order to provide a value associated with this column.

             - the exception `noSuchObject’ is returned, indicating
             that the agent does not implement the object-type
             associated with this column or that there is no
             conceptual row for which this column would be
             accessible in the MIB view used by the retrieval.  As
             such, the management station can not issue any
             management protocol set operations to create an
             instance of this column.

         If the value associated with the status column is
         `notReady’, then the management station must first deal with
         all `noSuchInstance’ columns, if any.  Having done so, the
         value of the status column becomes `notInService’, and we
         proceed to interaction 4.

         Interaction 4: Making the Conceptual Row Available

         Once the management station is satisfied with the values
         associated with the columns of the conceptual row, it issues
         a management protocol set operation to set the status column
         to `active’.  If the agent has sufficient information to
         make the conceptual row available for use by the managed
         device, the management protocol set operation succeeds (a
         `noError’ response is returned).  Otherwise, the management
         protocol set operation fails with an error of
         `inconsistentValue’.

                                 NOTE WELL

             A conceptual row having a status column with value
             `notInService’ or `notReady’ is unavailable to the
             managed device.  As such, it is possible for the
             managed device to create its own instances during the
             time between the management protocol set operation
             which sets the status column to `createAndWait’ and the
             management protocol set operation which sets the status
             column to `active’.  In this case, when the management
             protocol set operation is issued to set the status
             column to `active’, the values held in the agent

             supersede those used by the managed device.

         If the management station is prevented from setting the
         status column to `active’ (e.g., due to management station or
         network failure) the conceptual row will be left in the
         `notInService’ or `notReady’ state, consuming resources
         indefinitely.  The agent must detect conceptual rows that
         have been in either state for an abnormally long period of
         time and remove them.  It is the responsibility of the
         DESCRIPTION clause of the status column to indicate what an
         abnormally long period of time would be.  This period of time
         should be long enough to allow for human response time
         (including `think time’) between the creation of the
         conceptual row and the setting of the status to `active’.  In
         the absence of such information in the DESCRIPTION clause, it
         is suggested that this period be approximately 5 minutes in
         length.  This removal action applies not only to newly-
         created rows, but also to previously active rows which are
         set to, and left in, the notInService state for a prolonged
         period exceeding that which is considered normal for such a
         conceptual row.

                         Conceptual Row Suspension

         When a conceptual row is `active’, the management station
         may issue a management protocol set operation which sets the
         instance of the status column to `notInService’.  If the
         agent is unwilling to do so, the set operation fails with an
         error of `wrongValue’ or `inconsistentValue’.
         Otherwise, the conceptual row is taken out of service, and a
         `noError’ response is returned.  It is the responsibility of
         the DESCRIPTION clause of the status column to indicate
         under what circumstances the status column should be taken
         out of service (e.g., in order for the value of some other
         column of the same conceptual row to be modified).

                          Conceptual Row Deletion

         For deletion of conceptual rows, a management protocol set
         operation is issued which sets the instance of the status
         column to `destroy’.  This request may be made regardless of
         the current value of the status column (e.g., it is possible
         to delete conceptual rows which are either `notReady’,
         `notInService’ or `active’.) If the operation succeeds, then
         all instances associated with the conceptual row are
         immediately removed.";
    };

    typedef StorageType {
        type        Enumeration (other(1), volatile(2),
                        nonVolatile(3), permanent(4),
                        readOnly(5));
        description
            "Describes the memory realization of a conceptual row.  A
             row which is volatile(2) is lost upon reboot.  A row
             which is either nonVolatile(3), permanent(4) or
             readOnly(5), is backed up by stable storage.  A row which
             is permanent(4) can be changed but not deleted.  A row
             which is readOnly(5) cannot be changed nor deleted.

             If the value of an object with this syntax is either
             permanent(4) or readOnly(5), it cannot be modified.
             Conversely, if the value is either other(1), volatile(2)
             or nonVolatile(3), it cannot be modified to be
             permanent(4) or readOnly(5).  (All illegal modifications
             result in a ’wrongValue’ error.)

             Every usage of this textual convention is required to
             specify the columnar objects which a permanent(4) row
             must at a minimum allow to be writable.";
    };

    typedef TDomain {
        type        Pointer;
        description
            "Denotes a kind of transport service.

             Some possible values, such as snmpUDPDomain, are defined
             in the SNMPv2-TM MIB module.  Other possible values are
             defined in other MIB modules."
        reference
            "The SNMPv2-TM MIB module is defined in RFC 3417."
    };

    typedef TAddressOrZero {
        type        OctetString (0..255);
        description
            "Denotes a transport service address.

             A TAddress value is always interpreted within the context
             of a TDomain value.  Thus, each definition of a TDomain
             value must be accompanied by a definition of a textual
             convention for use with that TDomain.  Some possible
             textual conventions, such as SnmpUDPAddress for
             snmpUDPDomain, are defined in the SNMPv2-TM MIB module.
             Other possible textual conventions are defined in other

             MIB modules.

             A zero-length TAddress value denotes an unknown transport
             service address."
        reference
            "The SNMPv2-TM MIB module is defined in RFC 3417."
    };

    typedef TAddress {
        type        TAddressOrZero (1..255);
        description
            "Denotes a transport service address.

             This type does not allow a zero-length TAddress value."
    };

};

7.  Security Considerations

   This document presents an extension of the SMIng data definition
   language which supports the mapping of SMIng data definitions so that
   they can be used with the SNMP management framework.  The language
   extension and the mapping itself has no security impact on the
   Internet.

8.  Acknowledgements

   Since SMIng started as a close successor of SMIv2, some paragraphs
   and phrases are directly taken from the SMIv2 specifications
   [RFC2578], [RFC2579], [RFC2580] written by Jeff Case, Keith
   McCloghrie, David Perkins, Marshall T.  Rose, Juergen Schoenwaelder,
   and Steven L. Waldbusser.

   The authors would like to thank all participants of the 7th NMRG
   meeting held in Schloss Kleinheubach from 6-8 September 2000, which
   was a major step towards the current status of this memo, namely
   Heiko Dassow, David Durham, Keith McCloghrie, and Bert Wijnen.

   Furthermore, several discussions within the SMING Working Group
   reflected experience with SMIv2 and influenced this specification at
   some points.

9. References

9.1.  Normative References

   [RFC3780]  Strauss, F. and J. Schoenwaelder, "SMIng - Next Generation
              Structure of Management Information", RFC 3780, May 2004.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC2234]  Crocker, D. and P. Overell, "Augmented BNF for Syntax
              Specifications: ABNF", RFC 2234, November 1997.

9.2.  Informative References

   [RFC3410]  Case, J., Mundy, R., Partain, D. and B. Stewart,
              "Introduction and Applicability Statements for Internet
              Standard Management Framework", RFC 3410, December 2002.

   [RFC2578]  McCloghrie, K., Perkins, D. and J. Schoenwaelder,
              "Structure of Management Information Version 2 (SMIv2)",
              STD 58, RFC 2578, April 1999.

   [RFC2579]  McCloghrie, K., Perkins, D. and J. Schoenwaelder, "Textual
              Conventions for SMIv2", STD 59, RFC 2579, April 1999.

   [RFC2580]  McCloghrie, K., Perkins, D. and J. Schoenwaelder,
              "Conformance Statements for SMIv2", STD 60, RFC 2580,
              April 1999.

   [ASN1]     International Organization for Standardization,
              "Specification of Abstract Syntax Notation One (ASN.1)",
              International Standard 8824, December 1987.

   [RFC3159]  McCloghrie, K., Fine, M., Seligson, J., Chan, K., Hahn,
              S., Sahita, R., Smith, A. and F. Reichmeyer, "Structure of
              Policy Provisioning Information (SPPI)", RFC 3159, August
              2001.

   [IEEE754]  Institute of Electrical and Electronics Engineers, "IEEE
              Standard for Binary Floating-Point Arithmetic", ANSI/IEEE
              Standard 754-1985, August 1985.

   [RFC3418]  Presuhn, R., Case, J., McCloghrie, K., Rose, M. and S.
              Waldbusser, "Management Information Base (MIB) for the
              Simple Network Management Protocol (SNMP)", STD 62, RFC
              3418, December 2002.

   [RFC3416]  Presuhn, R., Case, J., McCloghrie, K., Rose, M. and S.
              Waldbusser, "Version 2 of the Protocol Operations for the
              Simple  Network Management Protocol (SNMP)", STD 62, RFC
              3416, December 2002.

Authors’ Addresses

   Frank Strauss
   TU Braunschweig
   Muehlenpfordtstrasse 23
   38106 Braunschweig
   Germany

   Phone: +49 531 391 3266
   EMail: strauss@ibr.cs.tu-bs.de
   URI:   http://www.ibr.cs.tu-bs.de/

   Juergen Schoenwaelder
   International University Bremen
   P.O. Box 750 561
   28725 Bremen
   Germany

   Phone: +49 421 200 3587
   EMail: j.schoenwaelder@iu-bremen.de
   URI:   http://www.eecs.iu-bremen.de/

Full Copyright Statement

   Copyright (C) The Internet Society (2004).  This document is subject
   to the rights, licenses and restrictions contained in BCP 78, and
   except as set forth therein, the authors retain all their rights.

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
   ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
   INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
   INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Intellectual Property

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
------分隔线----------------------------
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
推荐内容