home *** CD-ROM | disk | FTP | other *** search
/ Handbook of Infosec Terms 2.0 / Handbook_of_Infosec_Terms_Version_2.0_ISSO.iso / text / rfcs / rfc1065.txt < prev    next >
Text File  |  1996-05-07  |  39KB  |  677 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                            M. Rose Request for Comments: 1065                                 K. McCloghrie                                                                      TWG                                                              August 1988 
  8.  
  9.  
  10.  
  11.          Structure and Identification of Management Information                        for TCP/IP-based internets 
  12.  
  13.                            Table of Contents 
  14.  
  15. 1. Status of this Memo .............................................  1 2. Introduction ....................................................  2 3. Structure and Identification of Management Information...........  4 3.1 Names ..........................................................  4 3.1.1 DIRECTORY ....................................................  5 3.1.2 MGMT .........................................................  6 3.1.3 EXPERIMENTAL .................................................  6 3.1.4 PRIVATE ......................................................  7 3.2 Syntax .........................................................  7 3.2.1 Primitive Types ..............................................  7 3.2.1.1 Guidelines for Enumerated INTEGERs .........................  7 3.2.2 Constructor Types ............................................  8 3.2.3 Defined Types ................................................  8 3.2.3.1 NetworkAddress .............................................  8 3.2.3.2 IpAddress ..................................................  8 3.2.3.3 Counter ....................................................  8 3.2.3.4 Gauge ......................................................  9 3.2.3.5 TimeTicks ..................................................  9 3.2.3.6 Opaque .....................................................  9 3.3 Encodings ......................................................  9 4. Managed Objects ................................................. 10 4.1 Guidelines for Object Names .................................... 10 4.2 Object Types and Instances ..................................... 10 4.3 Macros for Managed Objects ..................................... 14 5. Extensions to the MIB ........................................... 16 6. Definitions ..................................................... 17 7. Acknowledgements ................................................ 20 8. References ...................................................... 21 
  16.  
  17. 1.  Status of this Memo 
  18.  
  19.    This memo provides the common definitions for the structure and    identification of management information for TCP/IP-based internets.    In particular, together with its companion memos which describe the    initial management information base along with the initial network    management protocol, these documents provide a simple, workable 
  20.  
  21.  
  22.  
  23. Rose & McCloghrie                                               [Page 1] 
  24.  RFC 1065                          SMI                        August 1988 
  25.  
  26.     architecture and system for managing TCP/IP-based internets and in    particular, the Internet. 
  27.  
  28.    This memo specifies a draft standard for the Internet community.    TCP/IP implementations in the Internet which are network manageable    are expected to adopt and implement this specification. 
  29.  
  30.    Distribution of this memo is unlimited. 
  31.  
  32. 2.  Introduction 
  33.  
  34.    This memo describes the common structures and identification scheme    for the definition of management information used in managing    TCP/IP-based internets.  Included are descriptions of an object    information model for network management along with a set of generic    types used to describe management information.  Formal descriptions    of the structure are given using Abstract Syntax Notation One (ASN.1)    [1]. 
  35.  
  36.    This memo is largely concerned with organizational concerns and    administrative policy: it neither specifies the objects which are    managed, nor the protocols used to manage those objects.  These    concerns are addressed by two companion memos: one describing the    Management Information Base (MIB) [2], and the other describing the    Simple Network Management Protocol (SNMP) [3]. 
  37.  
  38.    This memo is based in part on the work of the Internet Engineering    Task Force, particularly the working note titled "Structure and    Identification of Management Information for the Internet" [4].  This    memo uses a skeletal structure derived from that note, but differs in    one very significant way:that note focuses entirely on the use of    OSI-style network management.  As such, it is not suitable for use in    the short-term for which a non-OSI protocol, the SNMP, has been    designated as the standard. 
  39.  
  40.    This memo attempts to achieve two goals: simplicity and    extensibility.  Both are motivated by a common concern: although the    management of TCP/IP-based internets has been a topic of study for    some time, the authors do not feel that the depth and breadth of such    understanding is complete.  More bluntly, we feel that previous    experiences, while giving the community insight, are hardly    conclusive.  By fostering a simple SMI, the minimal number of    constraints are imposed on future potential approaches; further, by    fostering an extensible SMI, the maximal number of potential    approaches are available for experimentation. 
  41.  
  42.    It is believed that this memo and its two companions comply with the    guidelines set forth in RFC 1052, "IAB Recommendations for the 
  43.  
  44.  
  45.  
  46. Rose & McCloghrie                                               [Page 2] 
  47.  RFC 1065                          SMI                        August 1988 
  48.  
  49.     Development of Internet Network Management Standards" [5].  In    particular, we feel that this memo, along with the memo describing    the initial management information base, provide a solid basis for    network management of the Internet. 
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97. Rose & McCloghrie                                               [Page 3] 
  98.  RFC 1065                          SMI                        August 1988 
  99.  
  100.  3.  Structure and Identification of Management Information 
  101.  
  102.    Managed objects are accessed via a virtual information store, termed    the Management Information Base or MIB.  Objects in the MIB are    defined using Abstract Syntax Notation One (ASN.1) [1]. 
  103.  
  104.    Each type of object (termed an object type) has a name, a syntax, and    an encoding.  The name is represented uniquely as an OBJECT    IDENTIFIER.  An OBJECT IDENTIFIER is an administratively assigned    name.  The administrative policies used for assigning names are    discussed later in this memo. 
  105.  
  106.    The syntax for an object type defines the abstract data structure    corresponding to that object type.  For example, the structure of a    given object type might be an INTEGER or OCTET STRING.  Although in    general, we should permit any ASN.1 construct to be available for use    in defining the syntax of an object type, this memo purposely    restricts the ASN.1 constructs which may be used.  These restrictions    are made solely for the sake of simplicity. 
  107.  
  108.    The encoding of an object type is simply how instances of that object    type are represented using the object's type syntax.  Implicitly tied    to the notion of an object's syntax and encoding is how the object is    represented when being transmitted on the network.  This memo    specifies the use of the basic encoding rules of ASN.1 [6].     It is beyond the scope of this memo to define either the initial MIB    used for network management or the network management protocol.  As    mentioned earlier, these tasks are left to the companion memos.  This    memo attempts to minimize the restrictions placed upon its companions    so as to maximize generality.  However, in some cases, restrictions    have been made (e.g., the syntax which may be used when defining    object types in the MIB) in order to encourage a particular style of    management.  Future editions of this memo may remove these    restrictions. 
  109.  
  110. 3.1.  Names 
  111.  
  112.    Names are used to identify managed objects.  This memo specifies    names which are hierarchical in nature.  The OBJECT IDENTIFIER    concept is used to model this notion.  An OBJECT IDENTIFIER can be    used for purposes other than naming managed object types; for    example, each international standard has an OBJECT IDENTIFIER    assigned to it for the purposes of identification.  In short, OBJECT    IDENTIFIERs are a means for identifying some object, regardless of    the semantics associated with the object (e.g., a network object, a    standards document, etc.) 
  113.  
  114.  
  115.  
  116.  Rose & McCloghrie                                               [Page 4] 
  117.  RFC 1065                          SMI                        August 1988 
  118.  
  119.     An OBJECT IDENTIFIER is a sequence of integers which traverse a    global tree.  The tree consists of a root connected to a number of    labeled nodes via edges.  Each node may, in turn, have children of    its own which are labeled.  In this case, we may term the node a    subtree.  This process may continue to an arbitrary level of depth.    Central to the notion of the OBJECT IDENTIFIER is the understanding    that administrative control of the meanings assigned to the nodes may    be delegated as one traverses the tree.  A label is a pairing of a    brief textual description and an integer. 
  120.  
  121.    The root node itself is unlabeled, but has at least three children    directly under it:  one node is administered by the International    Standards Organization, with label iso(1); another is administrated    by the International Telegraph and Telephone Consultative Committee,    with label ccitt(2); and the third is jointly administered by the ISO    and the CCITT, joint-iso-ccitt(3). 
  122.  
  123.    Under the iso(1) node, the ISO has designated one subtree for use by    other (inter)national organizations, org(3).  Of the children nodes    present, two have been assigned to the U.S. National Bureau of    Standards.  One of these subtrees has been transferred by the NBS to    the U.S. Department of Defense, dod(6). 
  124.  
  125.    As of this writing, the DoD has not indicated how it will manage its    subtree of OBJECT IDENTIFIERs.  This memo assumes that DoD will    allocate a node to the Internet community, to be administered by the    Internet Activities Board (IAB) as follows: 
  126.  
  127.       internet    OBJECT IDENTIFIER ::= { iso org(3) dod(6) 1 } 
  128.  
  129.    That is, the Internet subtree of OBJECT IDENTIFIERs starts with the    prefix: 
  130.  
  131.       1.3.6.1. 
  132.  
  133.    This memo, as an RFC approved by the IAB, now specifies the policy    under which this subtree of OBJECT IDENTIFIERs is administered.    Initially, four nodes are present: 
  134.  
  135.       directory     OBJECT IDENTIFIER ::= { internet 1 }       mgmt          OBJECT IDENTIFIER ::= { internet 2 }       experimental   OBJECT IDENTIFIER ::= { internet 3 }       private       OBJECT IDENTIFIER ::= { internet 4 } 
  136.  
  137. 3.1.1.  DIRECTORY 
  138.  
  139.    The directory(1) subtree is reserved for use with a future memo that    discusses how the OSI Directory may be used in the Internet. 
  140.  
  141.  
  142.  
  143. Rose & McCloghrie                                               [Page 5] 
  144.  RFC 1065                          SMI                        August 1988 
  145.  
  146.  3.1.2.  MGMT 
  147.  
  148.    The mgmt(2) subtree is used to identify objects which are defined in    IAB-approved documents.  Administration of the mgmt(2) subtree is    delegated by the IAB to the Assigned Numbers authority for the    Internet.  As RFCs which define new versions of the Internet-standard    Management Information Base are approved, they are assigned an OBJECT    IDENTIFIER by the Assigned Numbers authority for identifying the    objects defined by that memo. 
  149.  
  150.    For example, the RFC which defines the initial Internet standard MIB    would be assigned management document number 1.  This RFC would use    the OBJECT IDENTIFIER 
  151.  
  152.       { mgmt 1 } 
  153.  
  154.    or 
  155.  
  156.       1.3.6.1.2.1 
  157.  
  158.    in defining the Internet-standard MIB. 
  159.  
  160.    The generation of new versions of the Internet-standard MIB is a    rigorous process.  Section 5 of this memo describes the rules used    when a new version is defined. 
  161.  
  162. 3.1.3.  EXPERIMENTAL 
  163.  
  164.    The experimental(3) subtree is used to identify objects used in    Internet experiments.  Administration of the experimental(3) subtree    is delegated by the IAB to the Assigned Numbers authority of the    Internet. 
  165.  
  166.    For example, an experimenter might received number 17, and would have    available the OBJECT IDENTIFIER 
  167.  
  168.       { experimental 17 } 
  169.  
  170.    or 
  171.  
  172.       1.3.6.1.3.17 
  173.  
  174.    for use. 
  175.  
  176.    As a part of the assignment process, the Assigned Numbers authority    may make requirements as to how that subtree is used. 
  177.  
  178.  
  179.  
  180.  
  181.  
  182. Rose & McCloghrie                                               [Page 6] 
  183.  RFC 1065                          SMI                        August 1988 
  184.  
  185.  3.1.4.  PRIVATE 
  186.  
  187.    The private(4) subtree is used to identify objects defined    unilaterally.  Administration of the private(4) subtree is delegated    by the IAB to the Assigned Numbers authority for the Internet.    Initially, this subtree has at least one child: 
  188.  
  189.       enterprises   OBJECT IDENTIFIER ::= { private 1 } 
  190.  
  191.    The enterprises(1) subtree is used, among other things, to permit    parties providing networking subsystems to register models of their    products. 
  192.  
  193.    Upon receiving a subtree, the enterprise may, for example, define new    MIB objects in this subtree.  In addition, it is strongly recommended    that the enterprise will also register its networking subsystems    under this subtree, in order to provide an unambiguous identification    mechanism for use in management protocols.  For example, if the    "Flintstones, Inc."  enterprise produced networking subsystems, then    they could request a node under the enterprises subtree from the    Assigned Numbers authority.  Such a node might be numbered: 
  194.  
  195.       1.3.6.1.4.1.42 
  196.  
  197.    The "Flintstones, Inc." enterprise might then register their "Fred    Router" under the name of: 
  198.  
  199.       1.3.6.1.4.1.42.1.1 
  200.  
  201. 3.2.  Syntax 
  202.  
  203.    Syntax is used to define the structure corresponding to object types.    ASN.1 constructs are used to define this structure, although the full    generality of ASN.1 is not permitted. 
  204.  
  205.    The ASN.1 type ObjectSyntax defines the different syntaxes which may    be used in defining an object type. 
  206.  
  207. 3.2.1.  Primitive Types 
  208.  
  209.    Only the ASN.1 primitive types INTEGER, OCTET STRING, OBJECT    IDENTIFIER, and NULL are permitted.  These are sometimes referred to    as non-aggregate types. 
  210.  
  211. 3.2.1.1.  Guidelines for Enumerated INTEGERs 
  212.  
  213.    If an enumerated INTEGER is listed as an object type, then a named-    number having the value 0 shall not be present in the list of 
  214.  
  215.  
  216.  
  217. Rose & McCloghrie                                               [Page 7] 
  218.  RFC 1065                          SMI                        August 1988 
  219.  
  220.     enumerations.  Use of this value is prohibited. 
  221.  
  222. 3.2.2.  Constructor Types 
  223.  
  224.    The ASN.1 constructor type SEQUENCE is permitted, providing that it    is used to generate either lists or tables. 
  225.  
  226.    For lists, the syntax takes the form: 
  227.  
  228.       SEQUENCE { <type1>, ..., <typeN> } 
  229.  
  230.    where each <type> resolves to one of the ASN.1 primitive types listed    above.  Further, these ASN.1 types are always present (the DEFAULT    and OPTIONAL clauses do not appear in the SEQUENCE definition). 
  231.  
  232.    For tables, the syntax takes the form: 
  233.  
  234.       SEQUENCE OF <entry> 
  235.  
  236.    where <entry> resolves to a list constructor. 
  237.  
  238.    Lists and tables are sometimes referred to as aggregate types. 
  239.  
  240. 3.2.3.  Defined Types 
  241.  
  242.    In addition, new application-wide types may be defined, so long as    they resolve into an IMPLICITly defined ASN.1 primitive type, list,    table, or some other application-wide type.  Initially, few    application-wide types are defined.  Future memos will no doubt    define others once a consensus is reached. 
  243.  
  244. 3.2.3.1.  NetworkAddress 
  245.  
  246.    This CHOICE represents an address from one of possibly several    protocol families.  Currently, only one protocol family, the Internet    family, is present in this CHOICE. 
  247.  
  248. 3.2.3.2.  IpAddress 
  249.  
  250.    This application-wide type represents a 32-bit internet address.  It    is represented as an OCTET STRING of length 4, in network byte-order. 
  251.  
  252.    When this ASN.1 type is encoded using the ASN.1 basic encoding rules,    only the primitive encoding form shall be used. 
  253.  
  254. 3.2.3.3.  Counter 
  255.  
  256.    This application-wide type represents a non-negative integer which 
  257.  
  258.  
  259.  
  260. Rose & McCloghrie                                               [Page 8] 
  261.  RFC 1065                          SMI                        August 1988 
  262.  
  263.     monotonically increases until it reaches a maximum value, when it    wraps around and starts increasing again from zero.  This memo    specifies a maximum value of 2^32-1 (4294967295 decimal) for    counters. 
  264.  
  265. 3.2.3.4.  Gauge 
  266.  
  267.    This application-wide type represents a non-negative integer, which    may increase or decrease, but which latches at a maximum value.  This    memo specifies a maximum value of 2^32-1 (4294967295 decimal) for    gauges. 
  268.  
  269. 3.2.3.5.  TimeTicks 
  270.  
  271.    This application-wide type represents a non-negative integer which    counts the time in hundredths of a second since some epoch.  When    object types are defined in the MIB which use this ASN.1 type, the    description of the object type identifies the reference epoch. 
  272.  
  273. 3.2.3.6.  Opaque 
  274.  
  275.    This application-wide type supports the capability to pass arbitrary    ASN.1 syntax.  A value is encoded using the ASN.1 basic rules into a    string of octets.  This, in turn, is encoded as an OCTET STRING, in    effect "double-wrapping" the original ASN.1 value. 
  276.  
  277.    Note that a conforming implementation need only be able to accept and    recognize opaquely-encoded data.  It need not be able to unwrap the    data and then interpret its contents. 
  278.  
  279.    Further note that by use of the ASN.1 EXTERNAL type, encodings other    than ASN.1 may be used in opaquely-encoded data. 
  280.  
  281. 3.3.  Encodings 
  282.  
  283.    Once an instance of an object type has been identified, its value may    be transmitted by applying the basic encoding rules of ASN.1 to the    syntax for the object type. 
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297. Rose & McCloghrie                                               [Page 9] 
  298.  RFC 1065                          SMI                        August 1988 
  299.  
  300.  4.  Managed Objects 
  301.  
  302.    Although it is not the purpose of this memo to define objects in the    MIB, this memo specifies a format to be used by other memos which    define these objects. 
  303.  
  304.    An object type definition consists of five fields: 
  305.  
  306.    OBJECT:    -------       A textual name, termed the OBJECT DESCRIPTOR, for the object type,       along with its corresponding OBJECT IDENTIFIER. 
  307.  
  308.    Syntax:       The abstract syntax for the object type.  This must resolve to an       instance of the ASN.1 type ObjectSyntax (defined below). 
  309.  
  310.    Definition:       A textual description of the semantics of the object type.       Implementations should ensure that their instance of the object       fulfills this definition since this MIB is intended for use in       multi-vendor environments.  As such it is vital that objects have       consistent meaning across all machines. 
  311.  
  312.    Access:       One of read-only, read-write, write-only, or not-accessible. 
  313.  
  314.    Status:       One of mandatory, optional, or obsolete. 
  315.  
  316.    Future memos may also specify other fields for the objects which they    define. 
  317.  
  318. 4.1.  Guidelines for Object Names 
  319.  
  320.    No object type in the Internet-Standard MIB shall use a sub-    identifier of 0 in its name.  This value is reserved for use with    future extensions. 
  321.  
  322.    Each OBJECT DESCRIPTOR corresponding to an object type in the    internet-standard MIB shall be a unique, but mnemonic, printable    string.  This promotes a common language for humans to use when    discussing the MIB and also facilitates simple table mappings for    user interfaces. 
  323.  
  324. 4.2.  Object Types and Instances 
  325.  
  326.    An object type is a definition of a kind of managed object; it is 
  327.  
  328.  
  329.  
  330. Rose & McCloghrie                                              [Page 10] 
  331.  RFC 1065                          SMI                        August 1988 
  332.  
  333.     declarative in nature.  In contrast, an object instance is an    instantiation of an object type which has been bound to a value.  For    example, the notion of an entry in a routing table might be defined    in the MIB.  Such a notion corresponds to an object type; individual    entries in a particular routing table which exist at some time are    object instances of that object type. 
  334.  
  335.    A collection of object types is defined in the MIB.  Each such    subject type is uniquely named by its OBJECT IDENTIFIER and also has    a textual name, which is its OBJECT DESCRIPTOR.  The means whereby    object instances are referenced is not defined in the MIB.  Reference    to object instances is achieved by a protocol-specific mechanism: it    is the responsibility of each management protocol adhering to the SMI    to define this mechanism. 
  336.  
  337.    An object type may be defined in the MIB such that an instance of    that object type represents an aggregation of information also    represented by instances of some number of "subordinate" object    types.  For example, suppose the following object types are defined    in the MIB: 
  338.  
  339.     OBJECT:    -------       atIndex { atEntry 1 } 
  340.  
  341.    Syntax:       INTEGER 
  342.  
  343.    Definition:       The interface number for the physical address. 
  344.  
  345.    Access:       read-write. 
  346.  
  347.    Status:       mandatory. 
  348.  
  349.     OBJECT:    -------       atPhysAddress { atEntry 2 } 
  350.  
  351.    Syntax:       OCTET STRING 
  352.  
  353.    Definition:       The media-dependent physical address. 
  354.  
  355.  
  356.  
  357. Rose & McCloghrie                                              [Page 11] 
  358.  RFC 1065                          SMI                        August 1988 
  359.  
  360.     Access:       read-write. 
  361.  
  362.    Status:       mandatory. 
  363.  
  364.     OBJECT:    -------       atNetAddress { atEntry 3 } 
  365.  
  366.    Syntax:       NetworkAddress 
  367.  
  368.    Definition:       The network address corresponding to the media-dependent physical       address. 
  369.  
  370.    Access:       read-write. 
  371.  
  372.    Status:       mandatory. 
  373.  
  374.    Then, a fourth object type might also be defined in the MIB: 
  375.  
  376.     OBJECT:    -------       atEntry { atTable 1 } 
  377.  
  378.    Syntax: 
  379.  
  380.       AtEntry ::= SEQUENCE {             atIndex             INTEGER,             atPhysAddress             OCTET STRING,             atNetAddress             NetworkAddress             } 
  381.  
  382.    Definition:       An entry in the address translation table. 
  383.  
  384.    Access:       read-write. 
  385.  
  386.  
  387.  
  388.  Rose & McCloghrie                                              [Page 12] 
  389.  RFC 1065                          SMI                        August 1988 
  390.  
  391.     Status:       mandatory. 
  392.  
  393.    Each instance of this object type comprises information represented    by instances of the former three object types.  An object type    defined in this way is called a list. 
  394.  
  395.    Similarly, tables can be formed by aggregations of a list type.  For    example, a fifth object type might also be defined in the MIB: 
  396.  
  397.     OBJECT:    ------       atTable { at 1 } 
  398.  
  399.    Syntax:       SEQUENCE OF AtEntry 
  400.  
  401.    Definition:       The address translation table. 
  402.  
  403.    Access:       read-write. 
  404.  
  405.    Status:       mandatory. 
  406.  
  407.    such that each instance of the atTable object comprises information    represented by the set of atEntry object types that collectively    constitute a given atTable object instance, that is, a given address    translation table. 
  408.  
  409.    Consider how one might refer to a simple object within a table.    Continuing with the previous example, one might name the object type 
  410.  
  411.       { atPhysAddress } 
  412.  
  413.    and specify, using a protocol-specific mechanism, the object instance 
  414.  
  415.       { atNetAddress } = { internet "10.0.0.52" } 
  416.  
  417.    This pairing of object type and object instance would refer to all    instances of atPhysAddress which are part of any entry in some    address translation table for which the associated atNetAddress value    is { internet "10.0.0.52" }. 
  418.  
  419.    To continue with this example, consider how one might refer to an    aggregate object (list) within a table.  Naming the object type 
  420.  
  421.  
  422.  
  423. Rose & McCloghrie                                              [Page 13] 
  424.  RFC 1065                          SMI                        August 1988 
  425.  
  426.        { atEntry } 
  427.  
  428.    and specifying, using a protocol-specific mechanism, the object    instance 
  429.  
  430.       { atNetAddress } = { internet "10.0.0.52" } 
  431.  
  432.    refers to all instances of entries in the table for which the    associated atNetAddress value is { internet "10.0.0.52" }. 
  433.  
  434.    Each management protocol must provide a mechanism for accessing    simple (non-aggregate) object types.  Each management protocol    specifies whether or not it supports access to aggregate object    types.  Further, the protocol must specify which instances are    "returned" when an object type/instance pairing refers to more than    one instance of a type. 
  435.  
  436.    To afford support for a variety of management protocols, all    information by which instances of a given object type may be usefully    distinguished, one from another, is represented by instances of    object types defined in the MIB. 
  437.  
  438. 4.3.  Macros for Managed Objects 
  439.  
  440.    In order to facilitate the use of tools for processing the definition    of the MIB, the OBJECT-TYPE macro may be used.  This macro permits    the key aspects of an object type to be represented in a formal way. 
  441.  
  442.       OBJECT-TYPE MACRO ::=       BEGIN           TYPE NOTATION ::= "SYNTAX" type (TYPE ObjectSyntax)                             "ACCESS" Access                             "STATUS" Status           VALUE NOTATION ::= value (VALUE ObjectName) 
  443.  
  444.           Access ::= "read-only"                           | "read-write"                           | "write-only"                           | "not-accessible"           Status ::= "mandatory"                           | "optional"                           | "obsolete"           END 
  445.  
  446.    Given the object types defined earlier, we might imagine the    following definitions being present in the MIB: 
  447.  
  448.                   atIndex OBJECT-TYPE 
  449.  
  450.  
  451.  
  452. Rose & McCloghrie                                              [Page 14] 
  453.  RFC 1065                          SMI                        August 1988 
  454.  
  455.                            SYNTAX  INTEGER                           ACCESS  read-write                           STATUS  mandatory                           ::= { atEntry 1 } 
  456.  
  457.                   atPhysAddress OBJECT-TYPE                           SYNTAX  OCTET STRING                           ACCESS  read-write                           STATUS  mandatory                           ::= { atEntry 2 } 
  458.  
  459.                   atNetAddress OBJECT-TYPE                           SYNTAX  NetworkAddress                           ACCESS  read-write                           STATUS  mandatory                           ::= { atEntry 3 } 
  460.  
  461.                   atEntry OBJECT-TYPE                           SYNTAX  AtEntry                           ACCESS  read-write                           STATUS  mandatory                           ::= { atTable 1 } 
  462.  
  463.                   atTable OBJECT-TYPE                           SYNTAX  SEQUENCE OF AtEntry                           ACCESS  read-write                           STATUS  mandatory                           ::= { at 1 } 
  464.  
  465.                   AtEntry ::= SEQUENCE {                       atIndex                           INTEGER,                       atPhysAddress                           OCTET STRING,                       atNetAddress                           NetworkAddress                   } 
  466.  
  467.    The first five definitions describe object types, relating, for    example, the OBJECT DESCRIPTOR atIndex to the OBJECT IDENTIFIER {    atEntry 1 }.  In addition, the syntax of this object is defined    (INTEGER) along with the access permitted (read-write) and status    (mandatory).  The sixth definition describes an ASN.1 type called    AtEntry. 
  468.  
  469.  
  470.  
  471.  
  472.  
  473.  
  474.  
  475. Rose & McCloghrie                                              [Page 15] 
  476.  RFC 1065                          SMI                        August 1988 
  477.  
  478.  5.  Extensions to the MIB 
  479.  
  480.    Every Internet-standard MIB document obsoletes all previous such    documents.  The portion of a name, termed the tail, following the    OBJECT IDENTIFIER 
  481.  
  482.       { mgmt version-number } 
  483.  
  484.    used to name objects shall remain unchanged between versions.  New    versions may: 
  485.  
  486.       (1) declare old object types obsolete (if necessary), but not       delete their names; 
  487.  
  488.       (2) augment the definition of an object type corresponding to a       list by appending non-aggregate object types to the object types       in the list; or, 
  489.  
  490.       (3) define entirely new object types. 
  491.  
  492.    New versions may not: 
  493.  
  494.       (1) change the semantics of any previously defined object without       changing the name of that object. 
  495.  
  496.    These rules are important because they admit easier support for    multiple versions of the Internet-standard MIB.  In particular, the    semantics associated with the tail of a name remain constant    throughout different versions of the MIB.  Because multiple versions    of the MIB may thus coincide in "tail-space," implementations    supporting multiple versions of the MIB can be vastly simplified. 
  497.  
  498.    However, as a consequence, a management agent might return an    instance corresponding to a superset of the expected object type.    Following the principle of robustness, in this exceptional case, a    manager should ignore any additional information beyond the    definition of the expected object type.  However, the robustness    principle requires that one exercise care with respect to control    actions: if an instance does not have the same syntax as its expected    object type, then those control actions must fail.  In both the    monitoring and control cases, the name of an object returned by an    operation must be identical to the name requested by an operation. 
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508. Rose & McCloghrie                                              [Page 16] 
  509.  RFC 1065                          SMI                        August 1988 
  510.  
  511.  6.  Definitions 
  512.  
  513.            RFC1065-SMI DEFINITIONS ::= BEGIN 
  514.  
  515.            EXPORTS -- EVERYTHING                    internet, directory, mgmt,                    experimental, private, enterprises,                    OBJECT-TYPE, ObjectName, ObjectSyntax, SimpleSyntax,                    ApplicationSyntax, NetworkAddress, IpAddress,                    Counter, Gauge, TimeTicks, Opaque; 
  516.  
  517.             -- the path to the root 
  518.  
  519.             internet      OBJECT IDENTIFIER ::= { iso org(3) dod(6) 1 } 
  520.  
  521.             directory     OBJECT IDENTIFIER ::= { internet 1 } 
  522.  
  523.             mgmt          OBJECT IDENTIFIER ::= { internet 2 } 
  524.  
  525.             experimental  OBJECT IDENTIFIER ::= { internet 3 } 
  526.  
  527.             private       OBJECT IDENTIFIER ::= { internet 4 }             enterprises   OBJECT IDENTIFIER ::= { private 1 } 
  528.  
  529.              -- definition of object types 
  530.  
  531.             OBJECT-TYPE MACRO ::=             BEGIN                 TYPE NOTATION ::= "SYNTAX" type (TYPE ObjectSyntax)                                   "ACCESS" Access                                   "STATUS" Status                 VALUE NOTATION ::= value (VALUE ObjectName) 
  532.  
  533.                 Access ::= "read-only"                                 | "read-write"                                 | "write-only"                                 | "not-accessible"                 Status ::= "mandatory"                                 | "optional"                                 | "obsolete"             END 
  534.  
  535.                -- names of objects in the MIB 
  536.  
  537.                ObjectName ::=                    OBJECT IDENTIFIER 
  538.  
  539.  
  540.  
  541.  Rose & McCloghrie                                              [Page 17] 
  542.  RFC 1065                          SMI                        August 1988 
  543.  
  544.                 -- syntax of objects in the MIB 
  545.  
  546.                ObjectSyntax ::=                    CHOICE {                        simple                            SimpleSyntax, 
  547.  
  548.                -- note that simple SEQUENCEs are not directly                -- mentioned here to keep things simple (i.e.,                -- prevent mis-use).  However, application-wide                -- types which are IMPLICITly encoded simple                -- SEQUENCEs may appear in the following CHOICE 
  549.  
  550.                           application-wide                               ApplicationSyntax                       } 
  551.  
  552.                   SimpleSyntax ::=                       CHOICE {                           number                               INTEGER, 
  553.  
  554.                           string                               OCTET STRING, 
  555.  
  556.                           object                               OBJECT IDENTIFIER, 
  557.  
  558.                           empty                               NULL                       } 
  559.  
  560.                   ApplicationSyntax ::=                       CHOICE {                           address                               NetworkAddress, 
  561.  
  562.                           counter                               Counter, 
  563.  
  564.                           gauge                               Gauge, 
  565.  
  566.                           ticks                               TimeTicks, 
  567.  
  568.                           arbitrary                               Opaque 
  569.  
  570.  
  571.  
  572. Rose & McCloghrie                                              [Page 18] 
  573.  RFC 1065                          SMI                        August 1988 
  574.  
  575.                    -- other application-wide types, as they are                   -- defined, will be added here                       } 
  576.  
  577.                    -- application-wide types 
  578.  
  579.                   NetworkAddress ::=                       CHOICE {                           internet                               IpAddress                       } 
  580.  
  581.                   IpAddress ::=                       [APPLICATION 0]          -- in network-byte order                           IMPLICIT OCTET STRING (SIZE (4)) 
  582.  
  583.                   Counter ::=                       [APPLICATION 1]                           IMPLICIT INTEGER (0..4294967295) 
  584.  
  585.                   Gauge ::=                       [APPLICATION 2]                           IMPLICIT INTEGER (0..4294967295) 
  586.  
  587.                   TimeTicks ::=                       [APPLICATION 3]                           IMPLICIT INTEGER 
  588.  
  589.                   Opaque ::=                       [APPLICATION 4]          -- arbitrary ASN.1 value,                           IMPLICIT OCTET STRING   --   "double-wrapped" 
  590.  
  591.                   END 
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.  
  602.  
  603.  
  604.  
  605.  
  606.  
  607.  
  608.  
  609. Rose & McCloghrie                                              [Page 19] 
  610.  RFC 1065                          SMI                        August 1988 
  611.  
  612.  7.  Acknowledgements 
  613.  
  614.    This memo was influenced by three sets of contributors: 
  615.  
  616.    First, Lee Labarre of the MITRE Corporation, who as author of the    NETMAN SMI [4], presented the basic roadmap for the SMI. 
  617.  
  618.    Second, several individuals who provided valuable comments on this    memo prior to its initial distribution: 
  619.  
  620.          James Davin, Proteon          Mark S. Fedor, NYSERNet          Craig Partridge, BBN Laboratories          Martin Lee Schoffstall, Rensselaer Polytechnic Institute          Wengyik Yeong, NYSERNet 
  621.  
  622.     Third, the IETF MIB working group: 
  623.  
  624.          Karl Auerbach, Epilogue Technology          K. Ramesh Babu, Excelan          Lawrence Besaw, Hewlett-Packard          Jeffrey D. Case, University of Tennessee at Knoxville          James R. Davin, Proteon          Mark S. Fedor, NYSERNet          Robb Foster, BBN          Phill Gross, The MITRE Corporation          Bent Torp Jensen, Convergent Technology          Lee Labarre, The MITRE Corporation          Dan Lynch, Advanced Computing Environments          Keith McCloghrie, The Wollongong Group          Dave Mackie, 3Com/Bridge          Craig Partridge, BBN (chair)          Jim Robertson, 3Com/Bridge          Marshall T. Rose, The Wollongong Group          Greg Satz, cisco          Martin Lee Schoffstall, Rensselaer Polytechnic Institute          Lou Steinberg, IBM          Dean Throop, Data General          Unni Warrier, Unisys 
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636. Rose & McCloghrie                                              [Page 20] 
  637.  RFC 1065                          SMI                        August 1988 
  638.  
  639.  8.  References 
  640.  
  641.    [1] Information processing systems - Open Systems Interconnection,        "Specification of Abstract Syntax Notation One (ASN.1)",        International Organization for Standardization, International        Standard 8824, December 1987. 
  642.  
  643.    [2] McCloghrie K., and M. Rose, "Management Information Base for        Network Management of TCP/IP-based internets", RFC 1066, TWG,        August 1988. 
  644.  
  645.    [3] Case, J., M. Fedor, M. Schoffstall, and J. Davin, The Simple        Network Management Protocol", RFC 1067, University of Tennessee        at Knoxville, NYSERNet, Rensselaer Polytechnic, Proteon, August        1988. 
  646.  
  647.    [4] LaBarre, L., "Structure and Identification of Management        Information for the Internet", Internet Engineering Task Force        working note, Network Information Center, SRI International,        Menlo Park, California, April 1988. 
  648.  
  649.    [5] Cerf, V., "IAB Recommendations for the Development of Internet        Network Management Standards", RFC 1052, IAB, April 1988. 
  650.  
  651.    [6] Information processing systems - Open Systems Interconnection,        "Specification of Basic Encoding Rules for Abstract Notation One        (ASN.1)", International Organization for Standardization,        International Standard 8825, December 1987. 
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  
  667.  
  668.  
  669.  
  670.  
  671.  
  672.  
  673.  
  674.  
  675. Rose & McCloghrie                                              [Page 21] 
  676.  
  677.