Annotation of 43BSDReno/contrib/isode-beta/doc/rfcs/rfc1155.txt, revision 1.1

1.1     ! root        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: [email protected]
        !          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: [email protected]
        !          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: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.