home *** CD-ROM | disk | FTP | other *** search
/ A Beginner's Guide to the Internet / INTERNET.ISO / text / std / std0016.txt < prev    next >
Encoding:
Text File  |  1995-04-05  |  80.4 KB  |  2,303 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                            M. Rose
  8. Request for Comments:  1155            Performance Systems International
  9. Obsoletes:  RFC 1065                                       K. McCloghrie
  10.                                                       Hughes LAN Systems
  11.                                                                 May 1990
  12.  
  13.  
  14.  
  15.          Structure and Identification of Management Information
  16.                        for TCP/IP-based Internets
  17.  
  18.                            Table of Contents
  19.  
  20. 1. Status of this Memo .............................................  1
  21. 2. Introduction ....................................................  2
  22. 3. Structure and Identification of Management Information...........  4
  23. 3.1 Names ..........................................................  4
  24. 3.1.1 Directory ....................................................  5
  25. 3.1.2 Mgmt .........................................................  6
  26. 3.1.3 Experimental .................................................  6
  27. 3.1.4 Private ......................................................  7
  28. 3.2 Syntax .........................................................  7
  29. 3.2.1 Primitive Types ..............................................  7
  30. 3.2.1.1 Guidelines for Enumerated INTEGERs .........................  7
  31. 3.2.2 Constructor Types ............................................  8
  32. 3.2.3 Defined Types ................................................  8
  33. 3.2.3.1 NetworkAddress .............................................  8
  34. 3.2.3.2 IpAddress ..................................................  8
  35. 3.2.3.3 Counter ....................................................  8
  36. 3.2.3.4 Gauge ......................................................  9
  37. 3.2.3.5 TimeTicks ..................................................  9
  38. 3.2.3.6 Opaque .....................................................  9
  39. 3.3 Encodings ......................................................  9
  40. 4. Managed Objects ................................................. 10
  41. 4.1 Guidelines for Object Names .................................... 10
  42. 4.2 Object Types and Instances ..................................... 10
  43. 4.3 Macros for Managed Objects ..................................... 14
  44. 5. Extensions to the MIB ........................................... 16
  45. 6. Definitions ..................................................... 17
  46. 7. Acknowledgements ................................................ 20
  47. 8. References ...................................................... 21
  48. 9. Security Considerations.......................................... 21
  49. 10. Authors' Addresses.............................................. 22
  50.  
  51. 1.  Status of this Memo
  52.  
  53.    This RFC is a re-release of RFC 1065, with a changed "Status of this
  54.    Memo", plus a few minor typographical corrections.  The technical
  55.  
  56.  
  57.  
  58. Rose & McCloghrie                                               [Page 1]
  59.  
  60. RFC 1155                          SMI                           May 1990
  61.  
  62.  
  63.    content of the document is unchanged from RFC 1065.
  64.  
  65.    This memo provides the common definitions for the structure and
  66.    identification of management information for TCP/IP-based internets.
  67.    In particular, together with its companion memos which describe the
  68.    management information base along with the network management
  69.    protocol, these documents provide a simple, workable architecture and
  70.    system for managing TCP/IP-based internets and in particular, the
  71.    Internet.
  72.  
  73.    This memo specifies a Standard Protocol for the Internet community.
  74.    Its status is "Recommended".  TCP/IP implementations in the Internet
  75.    which are network manageable are expected to adopt and implement this
  76.    specification.
  77.  
  78.    The Internet Activities Board recommends that all IP and TCP
  79.    implementations be network manageable.  This implies implementation
  80.    of the Internet MIB (RFC-1156) and at least one of the two
  81.    recommended management protocols SNMP (RFC-1157) or CMOT (RFC-1095).
  82.    It should be noted that, at this time, SNMP is a full Internet
  83.    standard and CMOT is a draft standard.  See also the Host and Gateway
  84.    Requirements RFCs for more specific information on the applicability
  85.    of this standard.
  86.  
  87.    Please refer to the latest edition of the "IAB Official Protocol
  88.    Standards" RFC for current information on the state and status of
  89.    standard Internet protocols.
  90.  
  91.    Distribution of this memo is unlimited.
  92.  
  93. 2.  Introduction
  94.  
  95.    This memo describes the common structures and identification scheme
  96.    for the definition of management information used in managing
  97.    TCP/IP-based internets.  Included are descriptions of an object
  98.    information model for network management along with a set of generic
  99.    types used to describe management information.  Formal descriptions
  100.    of the structure are given using Abstract Syntax Notation One (ASN.1)
  101.    [1].
  102.  
  103.    This memo is largely concerned with organizational concerns and
  104.    administrative policy:  it neither specifies the objects which are
  105.    managed, nor the protocols used to manage those objects.  These
  106.    concerns are addressed by two companion memos:  one describing the
  107.    Management Information Base (MIB) [2], and the other describing the
  108.    Simple Network Management Protocol (SNMP) [3].
  109.  
  110.    This memo is based in part on the work of the Internet Engineering
  111.  
  112.  
  113.  
  114. Rose & McCloghrie                                               [Page 2]
  115.  
  116. RFC 1155                          SMI                           May 1990
  117.  
  118.  
  119.    Task Force, particularly the working note titled "Structure and
  120.    Identification of Management Information for the Internet" [4].  This
  121.    memo uses a skeletal structure derived from that note, but differs in
  122.    one very significant way:  that note focuses entirely on the use of
  123.    OSI-style network management.  As such, it is not suitable for use
  124.    with SNMP.
  125.  
  126.    This memo attempts to achieve two goals:  simplicity and
  127.    extensibility.  Both are motivated by a common concern:  although the
  128.    management of TCP/IP-based internets has been a topic of study for
  129.    some time, the authors do not feel that the depth and breadth of such
  130.    understanding is complete.  More bluntly, we feel that previous
  131.    experiences, while giving the community insight, are hardly
  132.    conclusive.  By fostering a simple SMI, the minimal number of
  133.    constraints are imposed on future potential approaches; further, by
  134.    fostering an extensible SMI, the maximal number of potential
  135.    approaches are available for experimentation.
  136.  
  137.    It is believed that this memo and its two companions comply with the
  138.    guidelines set forth in RFC 1052, "IAB Recommendations for the
  139.    Development of Internet Network Management Standards" [5] and RFC
  140.    1109, "Report of the Second Ad Hoc Network Management Review Group"
  141.    [6].  In particular, we feel that this memo, along with the memo
  142.    describing the management information base, provide a solid basis for
  143.    network management of the Internet.
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170. Rose & McCloghrie                                               [Page 3]
  171.  
  172. RFC 1155                          SMI                           May 1990
  173.  
  174.  
  175. 3.  Structure and Identification of Management Information
  176.  
  177.    Managed objects are accessed via a virtual information store, termed
  178.    the Management Information Base or MIB.  Objects in the MIB are
  179.    defined using Abstract Syntax Notation One (ASN.1) [1].
  180.  
  181.    Each type of object (termed an object type) has a name, a syntax, and
  182.    an encoding.  The name is represented uniquely as an OBJECT
  183.    IDENTIFIER.  An OBJECT IDENTIFIER is an administratively assigned
  184.    name.  The administrative policies used for assigning names are
  185.    discussed later in this memo.
  186.  
  187.    The syntax for an object type defines the abstract data structure
  188.    corresponding to that object type.  For example, the structure of a
  189.    given object type might be an INTEGER or OCTET STRING.  Although in
  190.    general, we should permit any ASN.1 construct to be available for use
  191.    in defining the syntax of an object type, this memo purposely
  192.    restricts the ASN.1 constructs which may be used.  These restrictions
  193.    are made solely for the sake of simplicity.
  194.  
  195.    The encoding of an object type is simply how instances of that object
  196.    type are represented using the object's type syntax.  Implicitly tied
  197.    to the notion of an object's syntax and encoding is how the object is
  198.    represented when being transmitted on the network.  This memo
  199.    specifies the use of the basic encoding rules of ASN.1 [7].
  200.  
  201.    It is beyond the scope of this memo to define either the MIB used for
  202.    network management or the network management protocol.  As mentioned
  203.    earlier, these tasks are left to companion memos.  This memo attempts
  204.    to minimize the restrictions placed upon its companions so as to
  205.    maximize generality.  However, in some cases, restrictions have been
  206.    made (e.g., the syntax which may be used when defining object types
  207.    in the MIB) in order to encourage a particular style of management.
  208.    Future editions of this memo may remove these restrictions.
  209.  
  210. 3.1.  Names
  211.  
  212.    Names are used to identify managed objects.  This memo specifies
  213.    names which are hierarchical in nature.  The OBJECT IDENTIFIER
  214.    concept is used to model this notion.  An OBJECT IDENTIFIER can be
  215.    used for purposes other than naming managed object types; for
  216.    example, each international standard has an OBJECT IDENTIFIER
  217.    assigned to it for the purposes of identification.  In short, OBJECT
  218.    IDENTIFIERs are a means for identifying some object, regardless of
  219.    the semantics associated with the object (e.g., a network object, a
  220.    standards document, etc.)
  221.  
  222.    An OBJECT IDENTIFIER is a sequence of integers which traverse a
  223.  
  224.  
  225.  
  226. Rose & McCloghrie                                               [Page 4]
  227.  
  228. RFC 1155                          SMI                           May 1990
  229.  
  230.  
  231.    global tree.  The tree consists of a root connected to a number of
  232.    labeled nodes via edges.  Each node may, in turn, have children of
  233.    its own which are labeled.  In this case, we may term the node a
  234.    subtree.  This process may continue to an arbitrary level of depth.
  235.    Central to the notion of the OBJECT IDENTIFIER is the understanding
  236.    that administrative control of the meanings assigned to the nodes may
  237.    be delegated as one traverses the tree.  A label is a pairing of a
  238.    brief textual description and an integer.
  239.  
  240.    The root node itself is unlabeled, but has at least three children
  241.    directly under it:  one node is administered by the International
  242.    Organization for Standardization, with label iso(1); another is
  243.    administrated by the International Telegraph and Telephone
  244.    Consultative Committee, with label ccitt(0); and the third is jointly
  245.    administered by the ISO and the CCITT, joint-iso-ccitt(2).
  246.  
  247.    Under the iso(1) node, the ISO has designated one subtree for use by
  248.    other (inter)national organizations, org(3).  Of the children nodes
  249.    present, two have been assigned to the U.S. National Institutes of
  250.    Standards and Technology.  One of these subtrees has been transferred
  251.    by the NIST to the U.S. Department of Defense, dod(6).
  252.  
  253.    As of this writing, the DoD has not indicated how it will manage its
  254.    subtree of OBJECT IDENTIFIERs.  This memo assumes that DoD will
  255.    allocate a node to the Internet community, to be administered by the
  256.    Internet Activities Board (IAB) as follows:
  257.  
  258.       internet    OBJECT IDENTIFIER ::= { iso org(3) dod(6) 1 }
  259.  
  260.    That is, the Internet subtree of OBJECT IDENTIFIERs starts with the
  261.    prefix:
  262.  
  263.       1.3.6.1.
  264.  
  265.    This memo, as a standard approved by the IAB, now specifies the
  266.    policy under which this subtree of OBJECT IDENTIFIERs is
  267.    administered.  Initially, four nodes are present:
  268.  
  269.       directory     OBJECT IDENTIFIER ::= { internet 1 }
  270.       mgmt          OBJECT IDENTIFIER ::= { internet 2 }
  271.       experimental  OBJECT IDENTIFIER ::= { internet 3 }
  272.       private       OBJECT IDENTIFIER ::= { internet 4 }
  273.  
  274. 3.1.1.  Directory
  275.  
  276.    The directory(1) subtree is reserved for use with a future memo that
  277.    discusses how the OSI Directory may be used in the Internet.
  278.  
  279.  
  280.  
  281.  
  282. Rose & McCloghrie                                               [Page 5]
  283.  
  284. RFC 1155                          SMI                           May 1990
  285.  
  286.  
  287. 3.1.2.  Mgmt
  288.  
  289.    The mgmt(2) subtree is used to identify objects which are defined in
  290.    IAB-approved documents.  Administration of the mgmt(2) subtree is
  291.    delegated by the IAB to the Internet Assigned Numbers Authority for
  292.    the Internet.  As RFCs which define new versions of the Internet-
  293.    standard Management Information Base are approved, they are assigned
  294.    an OBJECT IDENTIFIER by the Internet Assigned Numbers Authority for
  295.    identifying the objects defined by that memo.
  296.  
  297.    For example, the RFC which defines the initial Internet standard MIB
  298.    would be assigned management document number 1.  This RFC would use
  299.    the OBJECT IDENTIFIER
  300.  
  301.       { mgmt 1 }
  302.  
  303.    or
  304.  
  305.       1.3.6.1.2.1
  306.  
  307.    in defining the Internet-standard MIB.
  308.  
  309.    The generation of new versions of the Internet-standard MIB is a
  310.    rigorous process.  Section 5 of this memo describes the rules used
  311.    when a new version is defined.
  312.  
  313. 3.1.3.  Experimental
  314.  
  315.    The experimental(3) subtree is used to identify objects used in
  316.    Internet experiments.  Administration of the experimental(3) subtree
  317.    is delegated by the IAB to the Internet Assigned Numbers Authority of
  318.    the Internet.
  319.  
  320.    For example, an experimenter might received number 17, and would have
  321.    available the OBJECT IDENTIFIER
  322.  
  323.       { experimental 17 }
  324.  
  325.    or
  326.  
  327.       1.3.6.1.3.17
  328.  
  329.    for use.
  330.  
  331.    As a part of the assignment process, the Internet Assigned Numbers
  332.    Authority may make requirements as to how that subtree is used.
  333.  
  334.  
  335.  
  336.  
  337.  
  338. Rose & McCloghrie                                               [Page 6]
  339.  
  340. RFC 1155                          SMI                           May 1990
  341.  
  342.  
  343. 3.1.4.  Private
  344.  
  345.    The private(4) subtree is used to identify objects defined
  346.    unilaterally.  Administration of the private(4) subtree is delegated
  347.    by the IAB to the Internet Assigned Numbers Authority for the
  348.    Internet.  Initially, this subtree has at least one child:
  349.  
  350.       enterprises   OBJECT IDENTIFIER ::= { private 1 }
  351.  
  352.    The enterprises(1) subtree is used, among other things, to permit
  353.    parties providing networking subsystems to register models of their
  354.    products.
  355.  
  356.    Upon receiving a subtree, the enterprise may, for example, define new
  357.    MIB objects in this subtree.  In addition, it is strongly recommended
  358.    that the enterprise will also register its networking subsystems
  359.    under this subtree, in order to provide an unambiguous identification
  360.    mechanism for use in management protocols.  For example, if the
  361.    "Flintstones, Inc."  enterprise produced networking subsystems, then
  362.    they could request a node under the enterprises subtree from the
  363.    Internet Assigned Numbers Authority.  Such a node might be numbered:
  364.  
  365.       1.3.6.1.4.1.42
  366.  
  367.    The "Flintstones, Inc." enterprise might then register their "Fred
  368.    Router" under the name of:
  369.  
  370.       1.3.6.1.4.1.42.1.1
  371.  
  372. 3.2.  Syntax
  373.  
  374.    Syntax is used to define the structure corresponding to object types.
  375.    ASN.1 constructs are used to define this structure, although the full
  376.    generality of ASN.1 is not permitted.
  377.  
  378.    The ASN.1 type ObjectSyntax defines the different syntaxes which may
  379.    be used in defining an object type.
  380.  
  381. 3.2.1.  Primitive Types
  382.  
  383.    Only the ASN.1 primitive types INTEGER, OCTET STRING, OBJECT
  384.    IDENTIFIER, and NULL are permitted.  These are sometimes referred to
  385.    as non-aggregate types.
  386.  
  387. 3.2.1.1.  Guidelines for Enumerated INTEGERs
  388.  
  389.    If an enumerated INTEGER is listed as an object type, then a named-
  390.    number having the value 0 shall not be present in the list of
  391.  
  392.  
  393.  
  394. Rose & McCloghrie                                               [Page 7]
  395.  
  396. RFC 1155                          SMI                           May 1990
  397.  
  398.  
  399.    enumerations.  Use of this value is prohibited.
  400.  
  401. 3.2.2.  Constructor Types
  402.  
  403.    The ASN.1 constructor type SEQUENCE is permitted, providing that it
  404.    is used to generate either lists or tables.
  405.  
  406.    For lists, the syntax takes the form:
  407.  
  408.       SEQUENCE { <type1>, ..., <typeN> }
  409.  
  410.    where each <type> resolves to one of the ASN.1 primitive types listed
  411.    above.  Further, these ASN.1 types are always present (the DEFAULT
  412.    and OPTIONAL clauses do not appear in the SEQUENCE definition).
  413.  
  414.    For tables, the syntax takes the form:
  415.  
  416.       SEQUENCE OF <entry>
  417.  
  418.    where <entry> resolves to a list constructor.
  419.  
  420.    Lists and tables are sometimes referred to as aggregate types.
  421.  
  422. 3.2.3.  Defined Types
  423.  
  424.    In addition, new application-wide types may be defined, so long as
  425.    they resolve into an IMPLICITly defined ASN.1 primitive type, list,
  426.    table, or some other application-wide type.  Initially, few
  427.    application-wide types are defined.  Future memos will no doubt
  428.    define others once a consensus is reached.
  429.  
  430. 3.2.3.1.  NetworkAddress
  431.  
  432.    This CHOICE represents an address from one of possibly several
  433.    protocol families.  Currently, only one protocol family, the Internet
  434.    family, is present in this CHOICE.
  435.  
  436. 3.2.3.2.  IpAddress
  437.  
  438.    This application-wide type represents a 32-bit internet address.  It
  439.    is represented as an OCTET STRING of length 4, in network byte-order.
  440.  
  441.    When this ASN.1 type is encoded using the ASN.1 basic encoding rules,
  442.    only the primitive encoding form shall be used.
  443.  
  444. 3.2.3.3.  Counter
  445.  
  446.    This application-wide type represents a non-negative integer which
  447.  
  448.  
  449.  
  450. Rose & McCloghrie                                               [Page 8]
  451.  
  452. RFC 1155                          SMI                           May 1990
  453.  
  454.  
  455.    monotonically increases until it reaches a maximum value, when it
  456.    wraps around and starts increasing again from zero.  This memo
  457.    specifies a maximum value of 2^32-1 (4294967295 decimal) for
  458.    counters.
  459.  
  460. 3.2.3.4.  Gauge
  461.  
  462.    This application-wide type represents a non-negative integer, which
  463.    may increase or decrease, but which latches at a maximum value.  This
  464.    memo specifies a maximum value of 2^32-1 (4294967295 decimal) for
  465.    gauges.
  466.  
  467. 3.2.3.5.  TimeTicks
  468.  
  469.    This application-wide type represents a non-negative integer which
  470.    counts the time in hundredths of a second since some epoch.  When
  471.    object types are defined in the MIB which use this ASN.1 type, the
  472.    description of the object type identifies the reference epoch.
  473.  
  474. 3.2.3.6.  Opaque
  475.  
  476.    This application-wide type supports the capability to pass arbitrary
  477.    ASN.1 syntax.  A value is encoded using the ASN.1 basic rules into a
  478.    string of octets.  This, in turn, is encoded as an OCTET STRING, in
  479.    effect "double-wrapping" the original ASN.1 value.
  480.  
  481.    Note that a conforming implementation need only be able to accept and
  482.    recognize opaquely-encoded data.  It need not be able to unwrap the
  483.    data and then interpret its contents.
  484.  
  485.    Further note that by use of the ASN.1 EXTERNAL type, encodings other
  486.    than ASN.1 may be used in opaquely-encoded data.
  487.  
  488. 3.3.  Encodings
  489.  
  490.    Once an instance of an object type has been identified, its value may
  491.    be transmitted by applying the basic encoding rules of ASN.1 to the
  492.    syntax for the object type.
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506. Rose & McCloghrie                                               [Page 9]
  507.  
  508. RFC 1155                          SMI                           May 1990
  509.  
  510.  
  511. 4.  Managed Objects
  512.  
  513.    Although it is not the purpose of this memo to define objects in the
  514.    MIB, this memo specifies a format to be used by other memos which
  515.    define these objects.
  516.  
  517.    An object type definition consists of five fields:
  518.  
  519.    OBJECT:
  520.    -------
  521.       A textual name, termed the OBJECT DESCRIPTOR, for the object type,
  522.       along with its corresponding OBJECT IDENTIFIER.
  523.  
  524.    Syntax:
  525.       The abstract syntax for the object type.  This must resolve to an
  526.       instance of the ASN.1 type ObjectSyntax (defined below).
  527.  
  528.    Definition:
  529.       A textual description of the semantics of the object type.
  530.       Implementations should ensure that their instance of the object
  531.       fulfills this definition since this MIB is intended for use in
  532.       multi-vendor environments.  As such it is vital that objects have
  533.       consistent meaning across all machines.
  534.  
  535.    Access:
  536.       One of read-only, read-write, write-only, or not-accessible.
  537.  
  538.    Status:
  539.       One of mandatory, optional, or obsolete.
  540.  
  541.    Future memos may also specify other fields for the objects which they
  542.    define.
  543.  
  544. 4.1.  Guidelines for Object Names
  545.  
  546.    No object type in the Internet-Standard MIB shall use a sub-
  547.    identifier of 0 in its name.  This value is reserved for use with
  548.    future extensions.
  549.  
  550.    Each OBJECT DESCRIPTOR corresponding to an object type in the
  551.    internet-standard MIB shall be a unique, but mnemonic, printable
  552.    string.  This promotes a common language for humans to use when
  553.    discussing the MIB and also facilitates simple table mappings for
  554.    user interfaces.
  555.  
  556. 4.2.  Object Types and Instances
  557.  
  558.    An object type is a definition of a kind of managed object; it is
  559.  
  560.  
  561.  
  562. Rose & McCloghrie                                              [Page 10]
  563.  
  564. RFC 1155                          SMI                           May 1990
  565.  
  566.  
  567.    declarative in nature.  In contrast, an object instance is an
  568.    instantiation of an object type which has been bound to a value.  For
  569.    example, the notion of an entry in a routing table might be defined
  570.    in the MIB.  Such a notion corresponds to an object type; individual
  571.    entries in a particular routing table which exist at some time are
  572.    object instances of that object type.
  573.  
  574.    A collection of object types is defined in the MIB.  Each such
  575.    subject type is uniquely named by its OBJECT IDENTIFIER and also has
  576.    a textual name, which is its OBJECT DESCRIPTOR.  The means whereby
  577.    object instances are referenced is not defined in the MIB.  Reference
  578.    to object instances is achieved by a protocol-specific mechanism:  it
  579.    is the responsibility of each management protocol adhering to the SMI
  580.    to define this mechanism.
  581.  
  582.    An object type may be defined in the MIB such that an instance of
  583.    that object type represents an aggregation of information also
  584.    represented by instances of some number of "subordinate" object
  585.    types.  For example, suppose the following object types are defined
  586.    in the MIB:
  587.  
  588.  
  589.    OBJECT:
  590.    -------
  591.       atIndex { atEntry 1 }
  592.  
  593.    Syntax:
  594.       INTEGER
  595.  
  596.    Definition:
  597.       The interface number for the physical address.
  598.  
  599.    Access:
  600.       read-write.
  601.  
  602.    Status:
  603.       mandatory.
  604.  
  605.  
  606.    OBJECT:
  607.    -------
  608.       atPhysAddress { atEntry 2 }
  609.  
  610.    Syntax:
  611.       OCTET STRING
  612.  
  613.    Definition:
  614.       The media-dependent physical address.
  615.  
  616.  
  617.  
  618. Rose & McCloghrie                                              [Page 11]
  619.  
  620. RFC 1155                          SMI                           May 1990
  621.  
  622.  
  623.    Access:
  624.       read-write.
  625.  
  626.    Status:
  627.       mandatory.
  628.  
  629.  
  630.    OBJECT:
  631.    -------
  632.       atNetAddress { atEntry 3 }
  633.  
  634.    Syntax:
  635.       NetworkAddress
  636.  
  637.    Definition:
  638.       The network address corresponding to the media-dependent physical
  639.       address.
  640.  
  641.    Access:
  642.       read-write.
  643.  
  644.    Status:
  645.       mandatory.
  646.  
  647.    Then, a fourth object type might also be defined in the MIB:
  648.  
  649.  
  650.    OBJECT:
  651.    -------
  652.       atEntry { atTable 1 }
  653.  
  654.    Syntax:
  655.  
  656.       AtEntry ::= SEQUENCE {
  657.             atIndex
  658.             INTEGER,
  659.             atPhysAddress
  660.             OCTET STRING,
  661.             atNetAddress
  662.             NetworkAddress
  663.             }
  664.  
  665.    Definition:
  666.       An entry in the address translation table.
  667.  
  668.    Access:
  669.       read-write.
  670.  
  671.  
  672.  
  673.  
  674. Rose & McCloghrie                                              [Page 12]
  675.  
  676. RFC 1155                          SMI                           May 1990
  677.  
  678.  
  679.    Status:
  680.       mandatory.
  681.  
  682.    Each instance of this object type comprises information represented
  683.    by instances of the former three object types.  An object type
  684.    defined in this way is called a list.
  685.  
  686.    Similarly, tables can be formed by aggregations of a list type.  For
  687.    example, a fifth object type might also be defined in the MIB:
  688.  
  689.  
  690.    OBJECT:
  691.    ------
  692.       atTable { at 1 }
  693.  
  694.    Syntax:
  695.       SEQUENCE OF AtEntry
  696.  
  697.    Definition:
  698.       The address translation table.
  699.  
  700.    Access:
  701.       read-write.
  702.  
  703.    Status:
  704.       mandatory.
  705.  
  706.    such that each instance of the atTable object comprises information
  707.    represented by the set of atEntry object types that collectively
  708.    constitute a given atTable object instance, that is, a given address
  709.    translation table.
  710.  
  711.    Consider how one might refer to a simple object within a table.
  712.    Continuing with the previous example, one might name the object type
  713.  
  714.       { atPhysAddress }
  715.  
  716.    and specify, using a protocol-specific mechanism, the object instance
  717.  
  718.       { atNetAddress } = { internet "10.0.0.52" }
  719.  
  720.    This pairing of object type and object instance would refer to all
  721.    instances of atPhysAddress which are part of any entry in some
  722.    address translation table for which the associated atNetAddress value
  723.    is { internet "10.0.0.52" }.
  724.  
  725.    To continue with this example, consider how one might refer to an
  726.    aggregate object (list) within a table.  Naming the object type
  727.  
  728.  
  729.  
  730. Rose & McCloghrie                                              [Page 13]
  731.  
  732. RFC 1155                          SMI                           May 1990
  733.  
  734.  
  735.       { atEntry }
  736.  
  737.    and specifying, using a protocol-specific mechanism, the object
  738.    instance
  739.  
  740.       { atNetAddress } = { internet "10.0.0.52" }
  741.  
  742.    refers to all instances of entries in the table for which the
  743.    associated atNetAddress value is { internet "10.0.0.52" }.
  744.  
  745.    Each management protocol must provide a mechanism for accessing
  746.    simple (non-aggregate) object types.  Each management protocol
  747.    specifies whether or not it supports access to aggregate object
  748.    types.  Further, the protocol must specify which instances are
  749.    "returned" when an object type/instance pairing refers to more than
  750.    one instance of a type.
  751.  
  752.    To afford support for a variety of management protocols, all
  753.    information by which instances of a given object type may be usefully
  754.    distinguished, one from another, is represented by instances of
  755.    object types defined in the MIB.
  756.  
  757. 4.3.  Macros for Managed Objects
  758.  
  759.    In order to facilitate the use of tools for processing the definition
  760.    of the MIB, the OBJECT-TYPE macro may be used.  This macro permits
  761.    the key aspects of an object type to be represented in a formal way.
  762.  
  763.       OBJECT-TYPE MACRO ::=
  764.       BEGIN
  765.           TYPE NOTATION ::= "SYNTAX" type (TYPE ObjectSyntax)
  766.                             "ACCESS" Access
  767.                             "STATUS" Status
  768.           VALUE NOTATION ::= value (VALUE ObjectName)
  769.  
  770.           Access ::= "read-only"
  771.                           | "read-write"
  772.                           | "write-only"
  773.                           | "not-accessible"
  774.           Status ::= "mandatory"
  775.                           | "optional"
  776.                           | "obsolete"
  777.           END
  778.  
  779.    Given the object types defined earlier, we might imagine the
  780.    following definitions being present in the MIB:
  781.  
  782.                   atIndex OBJECT-TYPE
  783.  
  784.  
  785.  
  786. Rose & McCloghrie                                              [Page 14]
  787.  
  788. RFC 1155                          SMI                           May 1990
  789.  
  790.  
  791.                           SYNTAX  INTEGER
  792.                           ACCESS  read-write
  793.                           STATUS  mandatory
  794.                           ::= { atEntry 1 }
  795.  
  796.                   atPhysAddress OBJECT-TYPE
  797.                           SYNTAX  OCTET STRING
  798.                           ACCESS  read-write
  799.                           STATUS  mandatory
  800.                           ::= { atEntry 2 }
  801.  
  802.                   atNetAddress OBJECT-TYPE
  803.                           SYNTAX  NetworkAddress
  804.                           ACCESS  read-write
  805.                           STATUS  mandatory
  806.                           ::= { atEntry 3 }
  807.  
  808.                   atEntry OBJECT-TYPE
  809.                           SYNTAX  AtEntry
  810.                           ACCESS  read-write
  811.                           STATUS  mandatory
  812.                           ::= { atTable 1 }
  813.  
  814.                   atTable OBJECT-TYPE
  815.                           SYNTAX  SEQUENCE OF AtEntry
  816.                           ACCESS  read-write
  817.                           STATUS  mandatory
  818.                           ::= { at 1 }
  819.  
  820.                   AtEntry ::= SEQUENCE {
  821.                       atIndex
  822.                           INTEGER,
  823.                       atPhysAddress
  824.                           OCTET STRING,
  825.                       atNetAddress
  826.                           NetworkAddress
  827.                   }
  828.  
  829.    The first five definitions describe object types, relating, for
  830.    example, the OBJECT DESCRIPTOR atIndex to the OBJECT IDENTIFIER {
  831.    atEntry 1 }.  In addition, the syntax of this object is defined
  832.    (INTEGER) along with the access permitted (read-write) and status
  833.    (mandatory).  The sixth definition describes an ASN.1 type called
  834.    AtEntry.
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842. Rose & McCloghrie                                              [Page 15]
  843.  
  844. RFC 1155                          SMI                           May 1990
  845.  
  846.  
  847. 5.  Extensions to the MIB
  848.  
  849.    Every Internet-standard MIB document obsoletes all previous such
  850.    documents.  The portion of a name, termed the tail, following the
  851.    OBJECT IDENTIFIER
  852.  
  853.       { mgmt version-number }
  854.  
  855.    used to name objects shall remain unchanged between versions.  New
  856.    versions may:
  857.  
  858.       (1) declare old object types obsolete (if necessary), but not
  859.       delete their names;
  860.  
  861.       (2) augment the definition of an object type corresponding to a
  862.       list by appending non-aggregate object types to the object types
  863.       in the list; or,
  864.  
  865.       (3) define entirely new object types.
  866.  
  867.    New versions may not:
  868.  
  869.       (1) change the semantics of any previously defined object without
  870.       changing the name of that object.
  871.  
  872.    These rules are important because they admit easier support for
  873.    multiple versions of the Internet-standard MIB.  In particular, the
  874.    semantics associated with the tail of a name remain constant
  875.    throughout different versions of the MIB.  Because multiple versions
  876.    of the MIB may thus coincide in "tail-space," implementations
  877.    supporting multiple versions of the MIB can be vastly simplified.
  878.  
  879.    However, as a consequence, a management agent might return an
  880.    instance corresponding to a superset of the expected object type.
  881.    Following the principle of robustness, in this exceptional case, a
  882.    manager should ignore any additional information beyond the
  883.    definition of the expected object type.  However, the robustness
  884.    principle requires that one exercise care with respect to control
  885.    actions:  if an instance does not have the same syntax as its
  886.    expected object type, then those control actions must fail.  In both
  887.    the monitoring and control cases, the name of an object returned by
  888.    an operation must be identical to the name requested by an operation.
  889.  
  890.  
  891.  
  892.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898. Rose & McCloghrie                                              [Page 16]
  899.  
  900. RFC 1155                          SMI                           May 1990
  901.  
  902.  
  903. 6.  Definitions
  904.  
  905.            RFC1155-SMI DEFINITIONS ::= BEGIN
  906.  
  907.            EXPORTS -- EVERYTHING
  908.                    internet, directory, mgmt,
  909.                    experimental, private, enterprises,
  910.                    OBJECT-TYPE, ObjectName, ObjectSyntax, SimpleSyntax,
  911.                    ApplicationSyntax, NetworkAddress, IpAddress,
  912.                    Counter, Gauge, TimeTicks, Opaque;
  913.  
  914.             -- the path to the root
  915.  
  916.             internet      OBJECT IDENTIFIER ::= { iso org(3) dod(6) 1 }
  917.  
  918.             directory     OBJECT IDENTIFIER ::= { internet 1 }
  919.  
  920.             mgmt          OBJECT IDENTIFIER ::= { internet 2 }
  921.  
  922.             experimental  OBJECT IDENTIFIER ::= { internet 3 }
  923.  
  924.             private       OBJECT IDENTIFIER ::= { internet 4 }
  925.             enterprises   OBJECT IDENTIFIER ::= { private 1 }
  926.  
  927.  
  928.             -- definition of object types
  929.  
  930.             OBJECT-TYPE MACRO ::=
  931.             BEGIN
  932.                 TYPE NOTATION ::= "SYNTAX" type (TYPE ObjectSyntax)
  933.                                   "ACCESS" Access
  934.                                   "STATUS" Status
  935.                 VALUE NOTATION ::= value (VALUE ObjectName)
  936.  
  937.                 Access ::= "read-only"
  938.                                 | "read-write"
  939.                                 | "write-only"
  940.                                 | "not-accessible"
  941.                 Status ::= "mandatory"
  942.                                 | "optional"
  943.                                 | "obsolete"
  944.             END
  945.  
  946.                -- names of objects in the MIB
  947.  
  948.                ObjectName ::=
  949.                    OBJECT IDENTIFIER
  950.  
  951.  
  952.  
  953.  
  954. Rose & McCloghrie                                              [Page 17]
  955.  
  956. RFC 1155                          SMI                           May 1990
  957.  
  958.  
  959.                -- syntax of objects in the MIB
  960.  
  961.                ObjectSyntax ::=
  962.                    CHOICE {
  963.                        simple
  964.                            SimpleSyntax,
  965.  
  966.                -- note that simple SEQUENCEs are not directly
  967.                -- mentioned here to keep things simple (i.e.,
  968.                -- prevent mis-use).  However, application-wide
  969.                -- types which are IMPLICITly encoded simple
  970.                -- SEQUENCEs may appear in the following CHOICE
  971.  
  972.                        application-wide
  973.                            ApplicationSyntax
  974.                    }
  975.  
  976.                   SimpleSyntax ::=
  977.                       CHOICE {
  978.                           number
  979.                               INTEGER,
  980.  
  981.                           string
  982.                               OCTET STRING,
  983.  
  984.                           object
  985.                               OBJECT IDENTIFIER,
  986.  
  987.                           empty
  988.                               NULL
  989.                       }
  990.  
  991.                   ApplicationSyntax ::=
  992.                       CHOICE {
  993.                           address
  994.                               NetworkAddress,
  995.  
  996.                           counter
  997.                               Counter,
  998.  
  999.                           gauge
  1000.                               Gauge,
  1001.  
  1002.                           ticks
  1003.                               TimeTicks,
  1004.  
  1005.                           arbitrary
  1006.                               Opaque
  1007.  
  1008.  
  1009.  
  1010. Rose & McCloghrie                                              [Page 18]
  1011.  
  1012. RFC 1155                          SMI                           May 1990
  1013.  
  1014.  
  1015.                   -- other application-wide types, as they are
  1016.                   -- defined, will be added here
  1017.                       }
  1018.  
  1019.  
  1020.                   -- application-wide types
  1021.  
  1022.                   NetworkAddress ::=
  1023.                       CHOICE {
  1024.                           internet
  1025.                               IpAddress
  1026.                       }
  1027.  
  1028.                   IpAddress ::=
  1029.                       [APPLICATION 0]          -- in network-byte order
  1030.                           IMPLICIT OCTET STRING (SIZE (4))
  1031.  
  1032.                   Counter ::=
  1033.                       [APPLICATION 1]
  1034.                           IMPLICIT INTEGER (0..4294967295)
  1035.  
  1036.                   Gauge ::=
  1037.                       [APPLICATION 2]
  1038.                           IMPLICIT INTEGER (0..4294967295)
  1039.  
  1040.                   TimeTicks ::=
  1041.                       [APPLICATION 3]
  1042.                           IMPLICIT INTEGER (0..4294967295)
  1043.  
  1044.                   Opaque ::=
  1045.                       [APPLICATION 4]          -- arbitrary ASN.1 value,
  1046.                           IMPLICIT OCTET STRING   --   "double-wrapped"
  1047.  
  1048.                   END
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063.  
  1064.  
  1065.  
  1066. Rose & McCloghrie                                              [Page 19]
  1067.  
  1068. RFC 1155                          SMI                           May 1990
  1069.  
  1070.  
  1071. 7.  Acknowledgements
  1072.  
  1073.    This memo was influenced by three sets of contributors to earlier
  1074.    drafts:
  1075.  
  1076.    First, Lee Labarre of the MITRE Corporation, who as author of the
  1077.    NETMAN SMI [4], presented the basic roadmap for the SMI.
  1078.  
  1079.    Second, several individuals who provided valuable comments on this
  1080.    memo prior to its initial distribution:
  1081.  
  1082.          James R. Davin, Proteon
  1083.          Mark S. Fedor, NYSERNet
  1084.          Craig Partridge, BBN Laboratories
  1085.          Martin Lee Schoffstall, Rensselaer Polytechnic Institute
  1086.          Wengyik Yeong, NYSERNet
  1087.  
  1088.  
  1089.    Third, the IETF MIB working group:
  1090.  
  1091.          Karl Auerbach, Epilogue Technology
  1092.          K. Ramesh Babu, Excelan
  1093.          Lawrence Besaw, Hewlett-Packard
  1094.          Jeffrey D. Case, University of Tennessee at Knoxville
  1095.          James R. Davin, Proteon
  1096.          Mark S. Fedor, NYSERNet
  1097.          Robb Foster, BBN
  1098.          Phill Gross, The MITRE Corporation
  1099.          Bent Torp Jensen, Convergent Technology
  1100.          Lee Labarre, The MITRE Corporation
  1101.          Dan Lynch, Advanced Computing Environments
  1102.          Keith McCloghrie, The Wollongong Group
  1103.          Dave Mackie, 3Com/Bridge
  1104.          Craig Partridge, BBN (chair)
  1105.          Jim Robertson, 3Com/Bridge
  1106.          Marshall T. Rose, The Wollongong Group
  1107.          Greg Satz, cisco
  1108.          Martin Lee Schoffstall, Rensselaer Polytechnic Institute
  1109.          Lou Steinberg, IBM
  1110.          Dean Throop, Data General
  1111.          Unni Warrier, Unisys
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.  
  1120.  
  1121.  
  1122. Rose & McCloghrie                                              [Page 20]
  1123.  
  1124. RFC 1155                          SMI                           May 1990
  1125.  
  1126.  
  1127. 8.  References
  1128.  
  1129.    [1] Information processing systems - Open Systems Interconnection,
  1130.        "Specification of Abstract Syntax Notation One (ASN.1)",
  1131.        International Organization for Standardization, International
  1132.        Standard 8824, December 1987.
  1133.  
  1134.    [2] McCloghrie K., and M. Rose, "Management Information Base for
  1135.        Network Management of TCP/IP-based Internets", RFC 1156,
  1136.        Performance Systems International and Hughes LAN Systems, May
  1137.        1990.
  1138.  
  1139.    [3] Case, J., M. Fedor, M. Schoffstall, and J. Davin, The Simple
  1140.        Network Management Protocol", RFC 1157, University of Tennessee
  1141.        at Knoxville, Performance Systems International, Performance
  1142.        Systems International, and the MIT Laboratory for Computer
  1143.        Science, May 1990.
  1144.  
  1145.    [4] LaBarre, L., "Structure and Identification of Management
  1146.        Information for the Internet", Internet Engineering Task Force
  1147.        working note, Network Information Center, SRI International,
  1148.        Menlo Park, California, April 1988.
  1149.  
  1150.    [5] Cerf, V., "IAB Recommendations for the Development of Internet
  1151.        Network Management Standards", RFC 1052, IAB, April 1988.
  1152.  
  1153.    [6] Cerf, V., "Report of the Second Ad Hoc Network Management Review
  1154.        Group", RFC 1109, IAB, August 1989.
  1155.  
  1156.    [7] Information processing systems - Open Systems Interconnection,
  1157.        "Specification of Basic Encoding Rules for Abstract Notation One
  1158.        (ASN.1)", International Organization for Standardization,
  1159.        International Standard 8825, December 1987.
  1160.  
  1161. Security Considerations
  1162.  
  1163.    Security issues are not discussed in this memo.
  1164.  
  1165.  
  1166.  
  1167.  
  1168.  
  1169.  
  1170.  
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178. Rose & McCloghrie                                              [Page 21]
  1179.  
  1180. RFC 1155                          SMI                           May 1990
  1181.  
  1182.  
  1183. Authors' Addresses
  1184.  
  1185.    Marshall T. Rose
  1186.    PSI, Inc.
  1187.    PSI California Office
  1188.    P.O. Box 391776
  1189.    Mountain View, CA 94039
  1190.  
  1191.    Phone: (415) 961-3380
  1192.  
  1193.    EMail: mrose@PSI.COM
  1194.  
  1195.  
  1196.    Keith McCloghrie
  1197.    The Wollongong Group
  1198.    1129 San Antonio Road
  1199.    Palo Alto, CA 04303
  1200.  
  1201.    Phone: (415) 962-7160
  1202.  
  1203.    EMail: sytek!kzm@HPLABS.HP.COM
  1204.  
  1205.  
  1206.  
  1207.  
  1208.  
  1209.  
  1210.  
  1211.  
  1212.  
  1213.  
  1214.  
  1215.  
  1216.  
  1217.  
  1218.  
  1219.  
  1220.  
  1221.  
  1222.  
  1223.  
  1224.  
  1225.  
  1226.  
  1227.  
  1228.  
  1229.  
  1230.  
  1231.  
  1232.  
  1233.  
  1234. Rose & McCloghrie                                              [Page 22]
  1235.  
  1236. =======================================================================
  1237.  
  1238.  
  1239.  
  1240.  
  1241.  
  1242.  
  1243. Network Working Group                                           M. Rose
  1244. Request for Comments: 1212            Performance Systems International
  1245.                                                           K. McCloghrie
  1246.                                                      Hughes LAN Systems
  1247.                                                                 Editors
  1248.                                                              March 1991
  1249.  
  1250.  
  1251.                         Concise MIB Definitions
  1252. Status of this Memo
  1253.  
  1254.    This memo defines a format for producing MIB modules.  This RFC
  1255.    specifies an IAB standards track document for the Internet community,
  1256.    and requests discussion and suggestions for improvements.  Please
  1257.    refer to the current edition of the "IAB Official Protocol Standards"
  1258.    for the standardization state and status of this protocol.
  1259.    Distribution of this memo is unlimited.
  1260.  
  1261. Table of Contents
  1262.  
  1263.    1. Abstract..............................................    2
  1264.    2. Historical Perspective ...............................    2
  1265.    3. Columnar Objects .....................................    3
  1266.    3.1 Row Deletion ........................................    4
  1267.    3.2 Row Addition ........................................    4
  1268.    4. Defining Objects .....................................    5
  1269.    4.1 Mapping of the OBJECT-TYPE macro ....................    7
  1270.    4.1.1 Mapping of the SYNTAX clause ......................    7
  1271.    4.1.2 Mapping of the ACCESS clause ......................    8
  1272.    4.1.3 Mapping of the STATUS clause ......................    8
  1273.    4.1.4 Mapping of the DESCRIPTION clause .................    8
  1274.    4.1.5 Mapping of the REFERENCE clause ...................    8
  1275.    4.1.6 Mapping of the INDEX clause .......................    8
  1276.    4.1.7 Mapping of the DEFVAL clause ......................   10
  1277.    4.1.8 Mapping of the OBJECT-TYPE value ..................   11
  1278.    4.2 Usage Example .......................................   11
  1279.    5. Appendix: DE-osifying MIBs ...........................   13
  1280.    5.1 Managed Object Mapping ..............................   14
  1281.    5.1.1 Mapping to the SYNTAX clause ......................   15
  1282.    5.1.2 Mapping to the ACCESS clause ......................   15
  1283.    5.1.3 Mapping to the STATUS clause ......................   15
  1284.    5.1.4 Mapping to the DESCRIPTION clause .................   15
  1285.    5.1.5 Mapping to the REFERENCE clause ...................   16
  1286.    5.1.6 Mapping to the INDEX clause .......................   16
  1287.    5.1.7 Mapping to the DEFVAL clause ......................   16
  1288.    5.2 Action Mapping ......................................   16
  1289.    5.2.1 Mapping to the SYNTAX clause ......................   16
  1290.    5.2.2 Mapping to the ACCESS clause ......................   16
  1291.  
  1292.  
  1293.  
  1294. SNMP Working Group                                              [Page 1]
  1295.  
  1296. RFC 1212                Concise MIB Definitions               March 1991
  1297.  
  1298.  
  1299.    5.2.3 Mapping to the STATUS clause ......................   16
  1300.    5.2.4 Mapping to the DESCRIPTION clause .................   16
  1301.    5.2.5 Mapping to the REFERENCE clause ...................   16
  1302.    6. Acknowledgements .....................................   17
  1303.    7. References ...........................................   18
  1304.    8. Security Considerations...............................   19
  1305.    9. Authors' Addresses....................................   19
  1306.  
  1307. 1.  Abstract
  1308.  
  1309.    This memo describes a straight-forward approach toward producing
  1310.    concise, yet descriptive, MIB modules.  It is intended that all
  1311.    future MIB modules be written in this format.
  1312.  
  1313. 2.  Historical Perspective
  1314.  
  1315.    As reported in RFC 1052, IAB Recommendations for the Development of
  1316.    Internet Network Management Standards [1], a two-prong strategy for
  1317.    network management of TCP/IP-based internets was undertaken.  In the
  1318.    short-term, the Simple Network Management Protocol (SNMP), defined in
  1319.    RFC 1067, was to be used to manage nodes in the Internet community.
  1320.    In the long-term, the use of the OSI network management framework was
  1321.    to be examined.  Two documents were produced to define the management
  1322.    information: RFC 1065, which defined the Structure of Management
  1323.    Information (SMI), and RFC 1066, which defined the Management
  1324.    Information Base (MIB).  Both of these documents were designed so as
  1325.    to be compatible with both the SNMP and the OSI network management
  1326.    framework.
  1327.  
  1328.    This strategy was quite successful in the short-term: Internet-based
  1329.    network management technology was fielded, by both the research and
  1330.    commercial communities, within a few months.  As a result of this,
  1331.    portions of the Internet community became network manageable in a
  1332.    timely fashion.
  1333.  
  1334.    As reported in RFC 1109, Report of the Second Ad Hoc Network
  1335.    Management Review Group [2], the requirements of the SNMP and the OSI
  1336.    network management frameworks were more different than anticipated.
  1337.    As such, the requirement for compatibility between the SMI/MIB and
  1338.    both frameworks was suspended.  This action permitted the operational
  1339.    network management framework, based on the SNMP, to respond to new
  1340.    operational needs in the Internet community by producing MIB-II.
  1341.  
  1342.    In May of 1990, the core documents were elevated to "Standard
  1343.    Protocols" with "Recommended" status.  As such, the Internet-standard
  1344.    network management framework consists of: Structure and
  1345.    Identification of Management Information for TCP/IP-based internets,
  1346.    RFC 1155 [3], which describes how managed objects contained in the
  1347.  
  1348.  
  1349.  
  1350. SNMP Working Group                                              [Page 2]
  1351.  
  1352. RFC 1212                Concise MIB Definitions               March 1991
  1353.  
  1354.  
  1355.    MIB are defined; Management Information Base for Network Management
  1356.    of TCP/IP-based internets, which describes the managed objects
  1357.    contained in the MIB, RFC 1156 [4]; and, the Simple Network
  1358.    Management Protocol, RFC 1157 [5], which defines the protocol used to
  1359.    manage these objects.  Consistent with the IAB directive to produce
  1360.    simple, workable systems in the short-term, the list of managed
  1361.    objects defined in the Internet-standard MIB was derived by taking
  1362.    only those elements which are considered essential.  However, the SMI
  1363.    defined three extensibility mechanisms: one, the addition of new
  1364.    standard objects through the definitions of new versions of the MIB;
  1365.    two, the addition of widely-available but non-standard objects
  1366.    through the experimental subtree; and three, the addition of private
  1367.    objects through the enterprises subtree.  Such additional objects can
  1368.    not only be used for vendor-specific elements, but also for
  1369.    experimentation as required to further the knowledge of which other
  1370.    objects are essential.
  1371.  
  1372.    As more objects are defined using the second method, experience has
  1373.    shown that the resulting MIB descriptions contain redundant
  1374.    information.  In order to provide for MIB descriptions which are more
  1375.    concise, and yet as informative, an enhancement is suggested.  This
  1376.    enhancement allows the author of a MIB to remove the redundant
  1377.    information, while retaining the important descriptive text.
  1378.  
  1379.    Before presenting the approach, a brief presentation of columnar
  1380.    object handling by the SNMP is necessary.  This explains and further
  1381.    motivates the value of the enhancement.
  1382.  
  1383. 3.  Columnar Objects
  1384.  
  1385.    The SNMP supports operations on MIB objects whose syntax is
  1386.    ObjectSyntax as defined in the SMI.  Informally stated, SNMP
  1387.    operations apply exclusively to scalar objects.  However, it is
  1388.    convenient for developers of management applications to impose
  1389.    imaginary, tabular structures on the ordered collection of objects
  1390.    that constitute the MIB.  Each such conceptual table contains zero or
  1391.    more rows, and each row may contain one or more scalar objects,
  1392.    termed columnar objects.  Historically, this conceptualization has
  1393.    been formalized by using the OBJECT-TYPE macro to define both an
  1394.    object which corresponds to a table and an object which corresponds
  1395.    to a row in that table.  (The ACCESS clause for such objects is
  1396.    "not-accessible", of course.) However, it must be emphasized that, at
  1397.    the protocol level, relationships among columnar objects in the same
  1398.    row is a matter of convention, not of protocol.
  1399.  
  1400.    Note that there are good reasons why the tabular structure is not a
  1401.    matter of protocol.  Consider the operation of the SNMP Get-Next-PDU
  1402.    acting on the last columnar object of an instance of a conceptual
  1403.  
  1404.  
  1405.  
  1406. SNMP Working Group                                              [Page 3]
  1407.  
  1408. RFC 1212                Concise MIB Definitions               March 1991
  1409.  
  1410.  
  1411.    row; it returns the next column of the first conceptual row or the
  1412.    first object instance occurring after the table.  In contrast, if the
  1413.    rows were a matter of protocol, then it would instead return an
  1414.    error.  By not returning an error, a single PDU exchange informs the
  1415.    manager that not only has the end of the conceptual row/table been
  1416.    reached, but also provides information on the next object instance,
  1417.    thereby increasing the information density of the PDU exchange.
  1418.  
  1419. 3.1.  Row Deletion
  1420.  
  1421.    Nonetheless, it is highly useful to provide a means whereby a
  1422.    conceptual row may be removed from a table. In MIB-II, this was
  1423.    achieved by defining, for each conceptual row, an integer-valued
  1424.    columnar object.  If a management station sets the value of this
  1425.    object to some value, usually termed "invalid", then the effect is
  1426.    one of invalidating the corresponding row in the table.  However, it
  1427.    is an implementation-specific matter as to whether an agent removes
  1428.    an invalidated entry from the table.  Accordingly, management
  1429.    stations must be prepared to receive tabular information from agents
  1430.    that corresponds to entries not currently in use.  Proper
  1431.    interpretation of such entries requires examination of the columnar
  1432.    object indicating the in-use status.
  1433.  
  1434. 3.2.  Row Addition
  1435.  
  1436.    It is also highly useful to have a clear understanding of how a
  1437.    conceptual row may be added to a table.  In the SNMP, at the protocol
  1438.    level, a management station issues an SNMP set operation containing
  1439.    an arbitrary set of variable bindings.  In the case that an agent
  1440.    detects that one or more of those variable bindings refers to an
  1441.    object instance not currently available in that agent, it may,
  1442.    according to the rules of the SNMP, behave according to any of the
  1443.    following paradigms:
  1444.  
  1445.           (1)  It may reject the SNMP set operation as referring to
  1446.                non-existent object instances by returning a response
  1447.                with the error-status field set to "noSuchName" and the
  1448.                error-index field set to refer to the first vacuous
  1449.                reference.
  1450.  
  1451.           (2)  It may accept the SNMP set operation as requesting the
  1452.                creation  of new object instances corresponding to each
  1453.                of the object instances named in the variable bindings.
  1454.                The value of each (potentially) newly created object
  1455.                instance is specified by the "value" component of the
  1456.                relevant variable binding.  In this case, if the request
  1457.                specifies a value for a newly (or previously) created
  1458.                object that it deems inappropriate by reason of value or
  1459.  
  1460.  
  1461.  
  1462. SNMP Working Group                                              [Page 4]
  1463.  
  1464. RFC 1212                Concise MIB Definitions               March 1991
  1465.  
  1466.  
  1467.                syntax, then it rejects the SNMP set operation by
  1468.                responding with the error-status field set to badValue
  1469.                and the error-index field set to refer to the first
  1470.                offending variable binding.
  1471.  
  1472.           (3)  It may accept the SNMP set operation and create new
  1473.                object instances as described in (2) above and, in
  1474.                addition, at its discretion, create supplemental object
  1475.                instances to complete a row in a conceptual table of
  1476.                which the new object instances specified in the request
  1477.                may be a part.
  1478.  
  1479.    It should be emphasized that all three of the above behaviors are
  1480.    fully conformant to the SNMP specification and are fully acceptable,
  1481.    subject to any restrictions which may be imposed by access control
  1482.    and/or the definitions of the MIB objects themselves.
  1483.  
  1484. 4.  Defining Objects
  1485.  
  1486.    The Internet-standard SMI employs a two-level approach towards object
  1487.    definition.  A MIB definition consists of two parts: a textual part,
  1488.    in which objects are placed into groups, and a MIB module, in which
  1489.    objects are described solely in terms of the ASN.1 macro OBJECT-TYPE,
  1490.    which is defined by the SMI.
  1491.  
  1492.    An example of the former definition might be:
  1493.  
  1494.           OBJECT:
  1495.           -------
  1496.                sysLocation { system 6 }
  1497.  
  1498.           Syntax:
  1499.                DisplayString (SIZE (0..255))
  1500.  
  1501.           Definition:
  1502.                The physical location of this node (e.g., "telephone
  1503.                closet, 3rd floor").
  1504.  
  1505.           Access:
  1506.                read-only.
  1507.  
  1508.           Status:
  1509.                mandatory.
  1510.  
  1511.           An example of the latter definition might be:
  1512.  
  1513.                sysLocation OBJECT-TYPE
  1514.                    SYNTAX  DisplayString (SIZE (0..255))
  1515.  
  1516.  
  1517.  
  1518. SNMP Working Group                                              [Page 5]
  1519.  
  1520. RFC 1212                Concise MIB Definitions               March 1991
  1521.  
  1522.  
  1523.                    ACCESS  read-only
  1524.                    STATUS  mandatory
  1525.                    ::= { system 6 }
  1526.  
  1527.           In the interests of brevity and to reduce the chance of
  1528.           editing errors, it would seem useful to combine the two
  1529.           definitions.  This can be accomplished by defining an
  1530.           extension to the OBJECT-TYPE macro:
  1531.  
  1532.           IMPORTS
  1533.               ObjectName
  1534.                   FROM RFC1155-SMI
  1535.               DisplayString
  1536.                   FROM RFC1158-MIB;
  1537.  
  1538.           OBJECT-TYPE MACRO ::=
  1539.           BEGIN
  1540.               TYPE NOTATION ::=
  1541.                                           -- must conform to
  1542.                                           -- RFC1155's ObjectSyntax
  1543.                                 "SYNTAX" type(ObjectSyntax)
  1544.                                 "ACCESS" Access
  1545.                                 "STATUS" Status
  1546.                                 DescrPart
  1547.                                 ReferPart
  1548.                                 IndexPart
  1549.                                 DefValPart
  1550.               VALUE NOTATION ::= value (VALUE ObjectName)
  1551.  
  1552.               Access ::= "read-only"
  1553.                               | "read-write"
  1554.                               | "write-only"
  1555.                               | "not-accessible"
  1556.               Status ::= "mandatory"
  1557.                               | "optional"
  1558.                               | "obsolete"
  1559.                               | "deprecated"
  1560.  
  1561.               DescrPart ::=
  1562.                          "DESCRIPTION" value (description DisplayString)
  1563.                               | empty
  1564.  
  1565.               ReferPart ::=
  1566.                          "REFERENCE" value (reference DisplayString)
  1567.                               | empty
  1568.  
  1569.               IndexPart ::=
  1570.                          "INDEX" "{" IndexTypes "}"
  1571.  
  1572.  
  1573.  
  1574. SNMP Working Group                                              [Page 6]
  1575.  
  1576. RFC 1212                Concise MIB Definitions               March 1991
  1577.  
  1578.  
  1579.                               | empty
  1580.               IndexTypes ::=
  1581.                          IndexType | IndexTypes "," IndexType
  1582.               IndexType ::=
  1583.                                   -- if indexobject, use the SYNTAX
  1584.                                   -- value of the correspondent
  1585.                                   -- OBJECT-TYPE invocation
  1586.                          value (indexobject ObjectName)
  1587.                                   -- otherwise use named SMI type
  1588.                                   -- must conform to IndexSyntax below
  1589.                               | type (indextype)
  1590.  
  1591.               DefValPart ::=
  1592.                          "DEFVAL" "{" value (defvalue ObjectSyntax) "}"
  1593.                               | empty
  1594.  
  1595.           END
  1596.  
  1597.           IndexSyntax ::=
  1598.               CHOICE {
  1599.                   number
  1600.                       INTEGER (0..MAX),
  1601.                   string
  1602.                       OCTET STRING,
  1603.                   object
  1604.                       OBJECT IDENTIFIER,
  1605.                   address
  1606.                       NetworkAddress,
  1607.                   ipAddress
  1608.                       IpAddress
  1609.               }
  1610.  
  1611.  
  1612. 4.1.  Mapping of the OBJECT-TYPE macro
  1613.  
  1614.    It should be noted that the expansion of the OBJECT-TYPE macro is
  1615.    something which conceptually happens during implementation and not
  1616.    during run-time.
  1617.  
  1618. 4.1.1.  Mapping of the SYNTAX clause
  1619.  
  1620.    The SYNTAX clause, which must be present, defines the abstract data
  1621.    structure corresponding to that object type.  The ASN.1 language [6]
  1622.    is used for this purpose.  However, the SMI purposely restricts the
  1623.    ASN.1 constructs which may be used.  These restrictions are made
  1624.    expressly for simplicity.
  1625.  
  1626.  
  1627.  
  1628.  
  1629.  
  1630. SNMP Working Group                                              [Page 7]
  1631.  
  1632. RFC 1212                Concise MIB Definitions               March 1991
  1633.  
  1634.  
  1635. 4.1.2.  Mapping of the ACCESS clause
  1636.  
  1637.    The ACCESS clause, which must be present, defines the minimum level
  1638.    of support required for that object type.  As a local matter,
  1639.    implementations may support other access types (e.g., an
  1640.    implementation may elect to permitting writing a variable marked as
  1641.    read-only).  Further, protocol-specific "views" (e.g., those
  1642.    indirectly implied by an SNMP community) may make further
  1643.    restrictions on access to a variable.
  1644.  
  1645. 4.1.3.  Mapping of the STATUS clause
  1646.  
  1647.    The STATUS clause, which must be present, defines the implementation
  1648.    support required for that object type.
  1649.  
  1650. 4.1.4.  Mapping of the DESCRIPTION clause
  1651.  
  1652.    The DESCRIPTION clause, which need not be present, contains a textual
  1653.    definition of that object type which provides all semantic
  1654.    definitions necessary for implementation, and should embody any
  1655.    information which would otherwise be communicated in any ASN.1
  1656.    commentary annotations associated with the object.  Note that, in
  1657.    order to conform to the ASN.1 syntax, the entire value of this clause
  1658.    must be enclosed in double quotation marks, although the value may be
  1659.    multi-line.
  1660.  
  1661.    Further, note that if the MIB module does not contain a textual
  1662.    description of the object type elsewhere then the DESCRIPTION clause
  1663.    must be present.
  1664.  
  1665. 4.1.5.  Mapping of the REFERENCE clause
  1666.  
  1667.    The REFERENCE clause, which need not be present, contains a textual
  1668.    cross-reference to an object defined in some other MIB module.  This
  1669.    is useful when de-osifying a MIB produced by some other organization.
  1670.  
  1671. 4.1.6.  Mapping of the INDEX clause
  1672.  
  1673.    The INDEX clause, which may be present only if that object type
  1674.    corresponds to a conceptual row, defines instance identification
  1675.    information for that object type.  (Historically, each MIB definition
  1676.    contained a section entitled "Identification of OBJECT instances for
  1677.    use with the SNMP".  By using the INDEX clause, this section need no
  1678.    longer occur as this clause concisely captures the precise semantics
  1679.    needed for instance identification.)
  1680.  
  1681.    If the INDEX clause is not present, and the object type corresponds
  1682.    to a non-columnar object, then instances of the object are identified
  1683.  
  1684.  
  1685.  
  1686. SNMP Working Group                                              [Page 8]
  1687.  
  1688. RFC 1212                Concise MIB Definitions               March 1991
  1689.  
  1690.  
  1691.    by appending a sub-identifier of zero to the name of that object.
  1692.    Further, note that if the MIB module does not contain a textual
  1693.    description of how instance identification information is derived for
  1694.    columnar objects, then the INDEX clause must be present.
  1695.  
  1696.    To define the instance identification information, determine which
  1697.    object value(s) will unambiguously distinguish a conceptual row.  The
  1698.    syntax of those objects indicate how to form the instance-identifier:
  1699.  
  1700.           (1)  integer-valued: a single sub-identifier taking the
  1701.                integer value (this works only for non-negative
  1702.                integers);
  1703.  
  1704.           (2)  string-valued, fixed-length strings: `n' sub-identifiers,
  1705.                where `n' is the length of the string (each octet of the
  1706.                string is encoded in a separate sub-identifier);
  1707.  
  1708.           (3)  string-valued, variable-length strings: `n+1' sub-
  1709.                identifiers, where `n' is the length of the string (the
  1710.                first sub-identifier is `n' itself, following this, each
  1711.                octet of the string is encoded in a separate sub-
  1712.                identifier);
  1713.  
  1714.           (4)  object identifier-valued: `n+1' sub-identifiers, where
  1715.                `n' is the number of sub-identifiers in the value (the
  1716.                first sub-identifier is `n' itself, following this, each
  1717.                sub-identifier in the value is copied);
  1718.  
  1719.           (5)  NetworkAddress-valued: `n+1' sub-identifiers, where `n'
  1720.                depends on the kind of address being encoded (the first
  1721.                sub-identifier indicates the kind of address, value 1
  1722.                indicates an IpAddress); or,
  1723.  
  1724.           (6)  IpAddress-valued: 4 sub-identifiers, in the familiar
  1725.                a.b.c.d notation.
  1726.  
  1727.    Note that if an "indextype" value is present (e.g., INTEGER rather
  1728.    than ifIndex), then a DESCRIPTION clause must be present; the text
  1729.    contained therein indicates the semantics of the "indextype" value.
  1730.  
  1731.  
  1732.  
  1733.  
  1734.  
  1735.  
  1736.  
  1737.  
  1738.  
  1739.  
  1740.  
  1741.  
  1742. SNMP Working Group                                              [Page 9]
  1743.  
  1744. RFC 1212                Concise MIB Definitions               March 1991
  1745.  
  1746.  
  1747.    By way of example, in the context of MIB-II [7], the following INDEX
  1748.    clauses might be present:
  1749.  
  1750.                  objects under         INDEX clause
  1751.                -----------------       ------------
  1752.                ifEntry                 { ifIndex }
  1753.                atEntry                 { atNetIfIndex,
  1754.                                          atNetAddress }
  1755.                ipAddrEntry             { ipAdEntAddr }
  1756.                ipRouteEntry            { ipRouteDest }
  1757.                ipNetToMediaEntry       { ipNetToMediaIfIndex,
  1758.                                          ipNetToMediaNetAddress }
  1759.                tcpConnEntry            { tcpConnLocalAddress,
  1760.                                          tcpConnLocalPort,
  1761.                                          tcpConnRemoteAddress,
  1762.                                          tcpConnRemotePort }
  1763.                udpEntry                { udpLocalAddress,
  1764.                                          udpLocalPort }
  1765.                egpNeighEntry           { egpNeighAddr }
  1766.  
  1767.  
  1768. 4.1.7.  Mapping of the DEFVAL clause
  1769.  
  1770.    The DEFVAL clause, which need not be present, defines an acceptable
  1771.    default value which may be used when an object instance is created at
  1772.    the discretion of the agent acting in conformance with the third
  1773.    paradigm described in Section 4.2 above.
  1774.  
  1775.    During conceptual row creation, if an instance of a columnar object
  1776.    is not present as one of the operands in the correspondent SNMP set
  1777.    operation, then the value of the DEFVAL clause, if present, indicates
  1778.    an acceptable default value that the agent might use.
  1779.  
  1780.    The value of the DEFVAL clause must, of course, correspond to the
  1781.    SYNTAX clause for the object.  Note that if an operand to the SNMP
  1782.    set operation is an instance of a read-only object, then the error
  1783.    noSuchName will be returned.  As such, the DEFVAL clause can be used
  1784.    to provide an acceptable default value that the agent might use.
  1785.  
  1786.    It is possible that no acceptable default value may exist for any of
  1787.    the columnar objects in a conceptual row for which the creation of
  1788.    new object instances is allowed.  In this case, the objects specified
  1789.    in the INDEX clause must have a corresponding ACCESS clause value of
  1790.    read-write.
  1791.  
  1792.  
  1793.  
  1794.  
  1795.  
  1796.  
  1797.  
  1798. SNMP Working Group                                             [Page 10]
  1799.  
  1800. RFC 1212                Concise MIB Definitions               March 1991
  1801.  
  1802.  
  1803.    By way of example, consider the following possible DEFVAL clauses:
  1804.  
  1805.        ObjectSyntax            DEFVAL clause
  1806.        -----------------       ------------
  1807.        INTEGER                 1 -- same for Counter, Gauge, TimeTicks
  1808.        OCTET STRING            'ffffffffffff'h
  1809.        DisplayString           "any NVT ASCII string"
  1810.        OBJECT IDENTIFIER       sysDescr
  1811.        OBJECT IDENTIFIER       { system 2 }
  1812.        NULL                    NULL
  1813.        NetworkAddress          { internet 'c0210415'h }
  1814.        IpAddress               'c0210415'h -- 192.33.4.21
  1815.  
  1816.  
  1817. 4.1.8.  Mapping of the OBJECT-TYPE value
  1818.  
  1819.    The value of an invocation of the OBJECT-TYPE macro is the name of
  1820.    the object, which is an object identifier.
  1821.  
  1822. 4.2.  Usage Example
  1823.  
  1824.    Consider how the ipNetToMediaTable from MIB-II might be fully
  1825.    described:
  1826.  
  1827.           -- the IP Address Translation tables
  1828.  
  1829.           -- The Address Translation tables contain IpAddress to
  1830.           -- "physical" address equivalences.  Some interfaces do not
  1831.           -- use translation tables for determining address equivalences
  1832.           -- (e.g., DDN-X.25 has an algorithmic method); if all
  1833.           -- interfaces are of this type, then the Address Translation
  1834.           -- table is empty, i.e., has zero entries.
  1835.  
  1836.           ipNetToMediaTable OBJECT-TYPE
  1837.               SYNTAX  SEQUENCE OF IpNetToMediaEntry
  1838.               ACCESS  not-accessible
  1839.               STATUS  mandatory
  1840.               DESCRIPTION
  1841.                       "The IP Address Translation table used for mapping
  1842.                       from IP addresses to physical addresses."
  1843.               ::= { ip 22 }
  1844.  
  1845.           ipNetToMediaEntry OBJECT-TYPE
  1846.               SYNTAX  IpNetToMediaEntry
  1847.               ACCESS  not-accessible
  1848.               STATUS  mandatory
  1849.               DESCRIPTION
  1850.                       "Each entry contains one IpAddress to 'physical'
  1851.  
  1852.  
  1853.  
  1854. SNMP Working Group                                             [Page 11]
  1855.  
  1856. RFC 1212                Concise MIB Definitions               March 1991
  1857.  
  1858.  
  1859.                       address equivalence."
  1860.               INDEX   { ipNetToMediaIfIndex,
  1861.                         ipNetToMediaNetAddress }
  1862.               ::= { ipNetToMediaTable 1 }
  1863.  
  1864.           IpNetToMediaEntry ::=
  1865.               SEQUENCE {
  1866.                   ipNetToMediaIfIndex
  1867.                       INTEGER,
  1868.                   ipNetToMediaPhysAddress
  1869.                       OCTET STRING,
  1870.                   ipNetToMediaNetAddress
  1871.                       IpAddress,
  1872.                   ipNetoToMediaType
  1873.                       INTEGER
  1874.               }
  1875.  
  1876.           ipNetToMediaIfIndex OBJECT-TYPE
  1877.               SYNTAX  INTEGER
  1878.               ACCESS  read-write
  1879.               STATUS  mandatory
  1880.               DESCRIPTION
  1881.                       "The interface on which this entry's equivalence
  1882.                       is effective.  The interface identified by a
  1883.                       particular value of this index is the same
  1884.                       interface as identified by the same value of
  1885.                       ifIndex."
  1886.               ::= { ipNetToMediaEntry 1 }
  1887.  
  1888.           ipNetToMediaPhysAddress OBJECT-TYPE
  1889.               SYNTAX  OCTET STRING
  1890.               ACCESS  read-write
  1891.               STATUS  mandatory
  1892.               DESCRIPTION
  1893.                       "The media-dependent 'physical' address."
  1894.               ::= { ipNetToMediaEntry 2 }
  1895.  
  1896.           ipNetToMediaNetAddress OBJECT-TYPE
  1897.               SYNTAX  IpAddress
  1898.               ACCESS  read-write
  1899.               STATUS  mandatory
  1900.               DESCRIPTION
  1901.                       "The IpAddress corresponding to the media-
  1902.                       dependent 'physical' address."
  1903.               ::= { ipNetToMediaEntry 3 }
  1904.  
  1905.           ipNetToMediaType OBJECT-TYPE
  1906.               SYNTAX  INTEGER {
  1907.  
  1908.  
  1909.  
  1910. SNMP Working Group                                             [Page 12]
  1911.  
  1912. RFC 1212                Concise MIB Definitions               March 1991
  1913.  
  1914.  
  1915.                           other(1),   -- none of the following
  1916.                           invalid(2), -- an invalidated mapping
  1917.                           dynamic(3),
  1918.                           static(4)
  1919.                       }
  1920.               ACCESS  read-write
  1921.               STATUS  mandatory
  1922.               DESCRIPTION
  1923.                       "The type of mapping.
  1924.  
  1925.                       Setting this object to the value invalid(2) has
  1926.                       the effect of invalidating the corresponding entry
  1927.                       in the ipNetToMediaTable.  That is, it effectively
  1928.                       disassociates the interface identified with said
  1929.                       entry from the mapping identified with said entry.
  1930.                       It is an implementation-specific matter as to
  1931.                       whether the agent removes an invalidated entry
  1932.                       from the table.  Accordingly, management stations
  1933.                       must be prepared to receive tabular information
  1934.                       from agents that corresponds to entries not
  1935.                       currently in use.  Proper interpretation of such
  1936.                       entries requires examination of the relevant
  1937.                       ipNetToMediaType object."
  1938.                   ::= { ipNetToMediaEntry 4 }
  1939.  
  1940.  
  1941. 5.  Appendix: DE-osifying MIBs
  1942.  
  1943.    There has been an increasing amount of work recently on taking MIBs
  1944.    defined by other organizations (e.g., the IEEE) and de-osifying them
  1945.    for use with the Internet-standard network management framework.  The
  1946.    steps to achieve this are straight-forward, though tedious.  Of
  1947.    course, it is helpful to already be experienced in writing MIB
  1948.    modules for use with the Internet-standard network management
  1949.    framework.
  1950.  
  1951.    The first step is to construct a skeletal MIB module, e.g.,
  1952.  
  1953.                RFC1213-MIB DEFINITIONS ::= BEGIN
  1954.  
  1955.                IMPORTS
  1956.                        experimental, OBJECT-TYPE, Counter
  1957.                            FROM RFC1155-SMI;
  1958.  
  1959.                        -- contact IANA for actual number
  1960.                root    OBJECT IDENTIFIER ::= { experimental xx }
  1961.  
  1962.                END
  1963.  
  1964.  
  1965.  
  1966. SNMP Working Group                                             [Page 13]
  1967.  
  1968. RFC 1212                Concise MIB Definitions               March 1991
  1969.  
  1970.  
  1971.    The next step is to categorize the objects into groups.  For
  1972.    experimental MIBs, optional objects are permitted.  However, when a
  1973.    MIB module is placed in the Internet-standard space, these optional
  1974.    objects are either removed, or placed in a optional group, which, if
  1975.    implemented, all objects in the group must be implemented.  For the
  1976.    first pass, it is wisest to simply ignore any optional objects in the
  1977.    original MIB: experience shows it is better to define a core MIB
  1978.    module first, containing only essential objects; later, if experience
  1979.    demands, other objects can be added.
  1980.  
  1981.    It must be emphasized that groups are "units of conformance" within a
  1982.    MIB: everything in a group is "mandatory" and implementations do
  1983.    either whole groups or none.
  1984.  
  1985. 5.1.  Managed Object Mapping
  1986.  
  1987.    Next for each managed object class, determine whether there can exist
  1988.    multiple instances of that managed object class.  If not, then for
  1989.    each of its attributes, use the OBJECT-TYPE macro to make an
  1990.    equivalent definition.
  1991.  
  1992.    Otherwise, if multiple instances of the managed object class can
  1993.    exist, then define a conceptual table having conceptual rows each
  1994.    containing a columnar object for each of the managed object class's
  1995.    attributes. If the managed object class is contained within the
  1996.    containment tree of another managed object class, then the assignment
  1997.    of an object type is normally required for each of the "distinguished
  1998.    attributes" of the containing managed object class.  If they do not
  1999.    already exist within the MIB module, then they can be added via the
  2000.    definition of additional columnar objects in the conceptual row
  2001.    corresponding to the contained managed object class.
  2002.  
  2003.    In defining a conceptual row, it is useful to consider the
  2004.    optimization of network management operations which will act upon its
  2005.    columnar objects.  In particular, it is wisest to avoid defining more
  2006.    columnar objects within a conceptual row, than can fit in a single
  2007.    PDU.  As a rule of thumb, a conceptual row should contain no more
  2008.    than approximately 20 objects.  Similarly, or as a way to abide by
  2009.    the "20 object guideline", columnar objects should be grouped into
  2010.    tables according to the expected grouping of network management
  2011.    operations upon them.  As such, the content of conceptual rows should
  2012.    reflect typical access scenarios, e.g., they should be organized
  2013.    along functional lines such as one row for statistics and another row
  2014.    for parameters, or along usage lines such as commonly-needed objects
  2015.    versus rarely-needed objects.
  2016.  
  2017.    On the other hand, the definition of conceptual rows where the number
  2018.    of columnar objects used as indexes outnumbers the number used to
  2019.  
  2020.  
  2021.  
  2022. SNMP Working Group                                             [Page 14]
  2023.  
  2024. RFC 1212                Concise MIB Definitions               March 1991
  2025.  
  2026.  
  2027.    hold information, should also be avoided.  In particular, the
  2028.    splitting of a managed object class's attributes into many conceptual
  2029.    tables should not be used as a way to obtain the same degree of
  2030.    flexibility/complexity as is often found in MIB's with a myriad of
  2031.    optionals.
  2032.  
  2033. 5.1.1.  Mapping to the SYNTAX clause
  2034.  
  2035.    When mapping to the SYNTAX clause of the OBJECT-type macro:
  2036.  
  2037.           (1)  An object with BOOLEAN syntax becomes an INTEGER taking
  2038.                either of values true(1) or false(2).
  2039.  
  2040.           (2)  An object with ENUMERATED syntax becomes an INTEGER,
  2041.                taking any of the values given.
  2042.  
  2043.           (3)  An object with BIT STRING syntax containing no more than
  2044.                32 bits becomes an INTEGER defined as a sum; otherwise if
  2045.                more than 32 bits are present, the object becomes an
  2046.                OCTET STRING, with the bits numbered from left-to-right,
  2047.                in which the least significant bits of the last octet may
  2048.                be "reserved for future use".
  2049.  
  2050.           (4)  An object with a character string syntax becomes either
  2051.                an OCTET STRING or a DisplayString, depending on the
  2052.                repertoire of the character string.
  2053.  
  2054.           (5)  An non-tabular object with a complex syntax, such as REAL
  2055.                or EXTERNAL, must be decomposed, usually into an OCTET
  2056.                STRING (if sensible).  As a rule, any object with a
  2057.                complicated syntax should be avoided.
  2058.  
  2059.           (6)  Tabular objects must be decomposed into rows of columnar
  2060.                objects.
  2061.  
  2062. 5.1.2.  Mapping to the ACCESS clause
  2063.  
  2064.    This is straight-forward.
  2065.  
  2066. 5.1.3.  Mapping to the STATUS clause
  2067.  
  2068.    This is usually straight-forward; however, some osified-MIBs use the
  2069.    term "recommended".  In this case, a choice must be made between
  2070.    "mandatory" and "optional".
  2071.  
  2072. 5.1.4.  Mapping to the DESCRIPTION clause
  2073.  
  2074.    This is straight-forward: simply copy the text, making sure that any
  2075.  
  2076.  
  2077.  
  2078. SNMP Working Group                                             [Page 15]
  2079.  
  2080. RFC 1212                Concise MIB Definitions               March 1991
  2081.  
  2082.  
  2083.    embedded double quotation marks are sanitized (i.e., replaced with
  2084.    single-quotes or removed).
  2085.  
  2086. 5.1.5.  Mapping to the REFERENCE clause
  2087.  
  2088.    This is straight-forward: simply include a textual reference to the
  2089.    object being mapped, the document which defines the object, and
  2090.    perhaps a page number in the document.
  2091.  
  2092. 5.1.6.  Mapping to the INDEX clause
  2093.  
  2094.    Decide how instance-identifiers for columnar objects are to be formed
  2095.    and define this clause accordingly.
  2096.  
  2097. 5.1.7.  Mapping to the DEFVAL clause
  2098.  
  2099.    Decide if a meaningful default value can be assigned to the object
  2100.    being mapped, and if so, define the DEFVAL clause accordingly.
  2101.  
  2102. 5.2.  Action Mapping
  2103.  
  2104.    Actions are modeled as read-write objects, in which writing a
  2105.    particular value results in the action taking place.
  2106.  
  2107. 5.2.1.  Mapping to the SYNTAX clause
  2108.  
  2109.    Usually an INTEGER syntax is used with a distinguished value provided
  2110.    for each action that the object provides access to.  In addition,
  2111.    there is usually one other distinguished value, which is the one
  2112.    returned when the object is read.
  2113.  
  2114. 5.2.2.  Mapping to the ACCESS clause
  2115.  
  2116.    Always use read-write.
  2117.  
  2118. 5.2.3.  Mapping to the STATUS clause
  2119.  
  2120.    This is straight-forward.
  2121.  
  2122. 5.2.4.  Mapping to the DESCRIPTION clause
  2123.  
  2124.    This is straight-forward: simply copy the text, making sure that any
  2125.    embedded double quotation marks are sanitized (i.e., replaced with
  2126.    single-quotes or removed).
  2127.  
  2128. 5.2.5.  Mapping to the REFERENCE clause
  2129.  
  2130.    This is straight-forward: simply include a textual reference to the
  2131.  
  2132.  
  2133.  
  2134. SNMP Working Group                                             [Page 16]
  2135.  
  2136. RFC 1212                Concise MIB Definitions               March 1991
  2137.  
  2138.  
  2139.    action being mapped, the document which defines the action, and
  2140.    perhaps a page number in the document.
  2141.  
  2142. 6.  Acknowledgements
  2143.  
  2144.    This document was produced by the SNMP Working Group:
  2145.  
  2146.                Anne Ambler, Spider
  2147.                Karl Auerbach, Sun
  2148.                Fred Baker, ACC
  2149.                Ken Brinkerhoff
  2150.                Ron Broersma, NOSC
  2151.                Jack Brown, US Army
  2152.                Theodore Brunner, Bellcore
  2153.                Jeffrey Buffum, HP
  2154.                John Burress, Wellfleet
  2155.                Jeffrey D. Case, University of Tennessee at Knoxville
  2156.                Chris Chiptasso, Spartacus
  2157.                Paul Ciarfella, DEC
  2158.                Bob Collet
  2159.                John Cook, Chipcom
  2160.                Tracy Cox, Bellcore
  2161.                James R. Davin, MIT-LCS
  2162.                Eric Decker, cisco
  2163.                Kurt Dobbins, Cabletron
  2164.                Nadya El-Afandi, Network Systems
  2165.                Gary Ellis, HP
  2166.                Fred Engle
  2167.                Mike Erlinger
  2168.                Mark S. Fedor, PSI
  2169.                Richard Fox, Synoptics
  2170.                Karen Frisa, CMU
  2171.                Chris Gunner, DEC
  2172.                Fred Harris, University of Tennessee at Knoxville
  2173.                Ken Hibbard, Xylogics
  2174.                Ole Jacobsen, Interop
  2175.                Ken Jones
  2176.                Satish Joshi, Synoptics
  2177.                Frank Kastenholz, Racal-Interlan
  2178.                Shimshon Kaufman, Spartacus
  2179.                Ken Key, University of Tennessee at Knoxville
  2180.                Jim Kinder, Fibercom
  2181.                Alex Koifman, BBN
  2182.                Christopher Kolb, PSI
  2183.                Cheryl Krupczak, NCR
  2184.                Paul Langille, DEC
  2185.                Peter Lin, Vitalink
  2186.                John Lunny, TWG
  2187.  
  2188.  
  2189.  
  2190. SNMP Working Group                                             [Page 17]
  2191.  
  2192. RFC 1212                Concise MIB Definitions               March 1991
  2193.  
  2194.  
  2195.                Carl Malamud
  2196.                Randy Mayhew, University of Tennessee at Knoxville
  2197.                Keith McCloghrie, Hughes LAN Systems
  2198.                Donna McMaster, David Systems
  2199.                Lynn Monsanto, Sun
  2200.                Dave Perkins, 3COM
  2201.                Jim Reinstedler, Ungerman Bass
  2202.                Anil Rijsinghani, DEC
  2203.                Kathy Rinehart, Arnold AFB
  2204.                Kary Robertson
  2205.                Marshall T. Rose, PSI (chair)
  2206.                L. Michael Sabo, NCSC
  2207.                Jon Saperia, DEC
  2208.                Greg Satz, cisco
  2209.                Martin Schoffstall, PSI
  2210.                John Seligson
  2211.                Steve Sherry, Xyplex
  2212.                Fei Shu, NEC
  2213.                Sam Sjogren, TGV
  2214.                Mark Sleeper, Sparta
  2215.                Lance Sprung
  2216.                Mike St.Johns
  2217.                Bob Stewart, Xyplex
  2218.                Emil Sturniold
  2219.                Kaj Tesink, Bellcore
  2220.                Dean Throop, Data General
  2221.                Bill Townsend, Xylogics
  2222.                Maurice Turcotte, Racal-Milgo
  2223.                Kannan Varadhou
  2224.                Sudhanshu Verma, HP
  2225.                Bill Versteeg, Network Research Corporation
  2226.                Warren Vik, Interactive Systems
  2227.                David Waitzman, BBN
  2228.                Steve Waldbusser, CMU
  2229.                Dan Wintringhan
  2230.                David Wood
  2231.                Wengyik Yeong, PSI
  2232.                Jeff Young, Cray Research
  2233.  
  2234. 7.  References
  2235.  
  2236.    [1] Cerf, V., "IAB Recommendations for the Development of Internet
  2237.        Network Management Standards", RFC 1052, NRI, April 1988.
  2238.  
  2239.    [2] Cerf, V., "Report of the Second Ad Hoc Network Management Review
  2240.        Group", RFC 1109, NRI, August 1989.
  2241.  
  2242.    [3] Rose M., and K. McCloghrie, "Structure and Identification of
  2243.  
  2244.  
  2245.  
  2246. SNMP Working Group                                             [Page 18]
  2247.  
  2248. RFC 1212                Concise MIB Definitions               March 1991
  2249.  
  2250.  
  2251.        Management Information for TCP/IP-based internets", RFC 1155,
  2252.        Performance Systems International, Hughes LAN Systems, May 1990.
  2253.  
  2254.    [4] McCloghrie K., and M. Rose, "Management Information Base for
  2255.        Network Management of TCP/IP-based internets", RFC 1156, Hughes
  2256.        LAN Systems, Performance Systems International, May 1990.
  2257.  
  2258.    [5] Case, J., Fedor, M., Schoffstall, M., and J. Davin, "Simple
  2259.        Network Management Protocol", RFC 1157, SNMP Research,
  2260.        Performance Systems International, Performance Systems
  2261.        International, MIT Laboratory for Computer Science, May 1990.
  2262.  
  2263.    [6] Information processing systems - Open Systems Interconnection -
  2264.        Specification of Abstract Syntax Notation One (ASN.1),
  2265.        International Organization for Standardization International
  2266.        Standard 8824, December 1987.
  2267.  
  2268.    [7] Rose M., Editor, "Management Information Base for Network
  2269.        Management of TCP/IP-based internets: MIB-II", RFC 1213,
  2270.        Performance Systems International, March 1991.
  2271.  
  2272. 8.  Security Considerations
  2273.  
  2274.    Security issues are not discussed in this memo.
  2275.  
  2276. 9.  Authors' Addresses
  2277.  
  2278.    Marshall T. Rose
  2279.    Performance Systems International
  2280.    5201 Great America Parkway
  2281.    Suite 3106
  2282.    Santa Clara, CA  95054
  2283.  
  2284.    Phone: +1 408 562 6222
  2285.    EMail: mrose@psi.com
  2286.    X.500:  rose, psi, us
  2287.  
  2288.  
  2289.    Keith McCloghrie
  2290.    Hughes LAN Systems
  2291.    1225 Charleston Road
  2292.    Mountain View, CA 94043
  2293.    1225 Charleston Road
  2294.    Mountain View, CA 94043
  2295.  
  2296.    Phone: (415) 966-7934
  2297.    EMail: kzm@hls.com
  2298.  
  2299.  
  2300.  
  2301.  
  2302. SNMP Working Group                                             [Page 19]
  2303.