Annotation of 43BSDReno/contrib/isode-beta/doc/rfcs/smux.rf, revision 1.1

1.1     ! root        1: .\" smux.rf - SNMP MUX definitions
        !             2: .de UL
        !             3: .ti -.5i
        !             4: -------
        !             5: .br
        !             6: ..
        !             7: .ie \nh \{\
        !             8: .ll 66 
        !             9: .po 2 \}
        !            10: .el \{\
        !            11: .ll 62 
        !            12: .pl 58
        !            13: .nr sf R
        !            14: .nr fm 0 \}
        !            15: .he 'draft'SMUX'May 1990'
        !            16: .fo 'M.T. Rose''[Page %]'
        !            17: .de $0
        !            18: .(x t
        !            19: \\$2 \\$1
        !            20: .)x
        !            21: ..
        !            22: .lp
        !            23: .na
        !            24: .nh
        !            25: .ce
        !            26: \fBSNMP MUX Protocol and MIB\fR
        !            27: .sp 1
        !            28: .ce
        !            29: Sun May 13 14:53:58 1990
        !            30: .sp 2
        !            31: .ce
        !            32: Marshall T. Rose
        !            33: .sp 1
        !            34: .ce 4
        !            35: Performance Systems International, Inc.
        !            36: 11800 Sunrise Valley Drive
        !            37: Suite 1100
        !            38: Reston, VA  22091
        !            39: .sp 1
        !            40: .ce
        !            41: [email protected]
        !            42: .sp 5
        !            43: .sh 1 "Status of this Memo"
        !            44: .lp
        !            45: This document defines a mechanism by which multiple UNIX daemons
        !            46: may communicate with the local SNMP agent on a host.
        !            47: This is a local mechanism.
        !            48: 
        !            49: .bp
        !            50: .sh 1 "Introduction"
        !            51: .lp
        !            52: On kernel/user systems such as BSD UNIX,
        !            53: an agent speaking the SNMP [1] is often implemented as a user-process,
        !            54: which reads kernel variables in order to realize the Internet-standard
        !            55: MIB [2].
        !            56: This approach works fine as long as all of the information needed by
        !            57: the SNMP agent resides in either the kernel or in stable storage
        !            58: (i.e., files).
        !            59: However,
        !            60: when other user-processes are employed to implement other network
        !            61: services,
        !            62: such as routing protocols,
        !            63: communication between the SNMP agent the and other processes is problematic.
        !            64: .lp
        !            65: In order to solve this problem,
        !            66: a new protocol,
        !            67: the SNMP multiplexing (SMUX) protocol is introduced.
        !            68: When a user-process,
        !            69: termed a SMUX peer,
        !            70: wishes to export a MIB module,
        !            71: it initiates a SMUX association to the local SNMP agent,
        !            72: registers itself, and (later) fields management operations for objects
        !            73: in the MIB module.
        !            74: .lp
        !            75: Carrying this approach to its fullest,
        !            76: it is possible to generalize the SNMP agent so that it knows about
        !            77: only the SNMP group of the Internet-standard MIB.
        !            78: All other portions of the Internet-standard MIB can be implemented by
        !            79: another process.
        !            80: This is quite useful, for example, when a computer manufacturer wishes
        !            81: to provide SNMP access for its operating system in binary form.
        !            82: .lp
        !            83: In addition to defining the SMUX protocol,
        !            84: this document defines a MIB for the SMUX.
        !            85: Obviously,
        !            86: this MIB module must also be implemented in the local SNMP agent.
        !            87: 
        !            88: .bp
        !            89: .sh 1 "Architecture"
        !            90: .lp
        !            91: There are two approaches that can be taken when trying to integrate
        !            92: arbitrary MIB modules with the SNMP agent: request-response and cache-ahead.
        !            93: .lp
        !            94: The request-response model simply propagates the SNMP requests
        !            95: received by the SNMP agent to the user process which exported the MIB
        !            96: module.
        !            97: The SMUX peer then performs the operation and returns a response.
        !            98: In turn,
        !            99: the SNMP agent propagates this response back to the network management station.
        !           100: The request-response model is said to be agent-driven since,
        !           101: after registration,
        !           102: the SNMP agent initiates all transactions.
        !           103: .lp
        !           104: The cache-ahead model requires that the SMUX peer,
        !           105: after registration,
        !           106: periodically updates the SNMP agent with the subtree for the MIB module
        !           107: which has been registered.
        !           108: The SNMP agent, upon receiving an SNMP request,
        !           109: locally performs the operation,
        !           110: and returns a response to the network management station.
        !           111: The cache-ahead model is said to be peer-driven since,
        !           112: after registration,
        !           113: the SMUX peer initiates all transactions.
        !           114: .lp
        !           115: There are advantages and disadvantages to both approaches.
        !           116: As such,
        !           117: the architecture envisioned supports both models in the following
        !           118: fashion:
        !           119: the protocol between the SNMP agent and the SMUX peer is based on the
        !           120: request-response model.
        !           121: However,
        !           122: the SMUX peer,
        !           123: may itself be a user-process which employs the cache-ahead model with
        !           124: other user-processes.
        !           125: .lp
        !           126: Obviously,
        !           127: the SMUX peer which employs the cache-ahead model acts as a \*(lqfirewall\*(rq
        !           128: for those user-processes which actually implement the managed objects
        !           129: in the given MIB module.
        !           130: .lp
        !           131: Note that this document describes only the SMUX protocol,
        !           132: for the request-response model.
        !           133: Each SMUX peer is free to define a cache-ahead protocol specific for
        !           134: the application at hand.
        !           135: 
        !           136: .bp
        !           137: .sh 1 "Protocol"
        !           138: .lp
        !           139: The SMUX protocol is simple:
        !           140: the SNMP agent listens for incoming connections.
        !           141: Upon establishing a connection,
        !           142: the SMUX peer issues an OpenPDU to initialize the SMUX association.
        !           143: If the SNMP agent declines the association,
        !           144: it issues a closePDU and closes the connection.
        !           145: If the SNMP agent accepts the association,
        !           146: no response is issued by the SNMP agent.
        !           147: .lp
        !           148: For each subtree defined in a MIB module that the SMUX peer wishes to
        !           149: register (or unregister),
        !           150: the SMUX peer issues a RReqPDU.
        !           151: When the SNMP agent receives such a PDU,
        !           152: it issues a corresponding RRspPDU.
        !           153: The SNMP agent returns RRspPDUs in the same order as the RReqPDUs were
        !           154: received.
        !           155: .lp
        !           156: When the SMUX peer wishes to issue a trap,
        !           157: it issues an SNMP Trap-PDU.
        !           158: When the SNMP agent receives such a PDU,
        !           159: it propagates this to the network management stations that it is
        !           160: configured to send traps to.
        !           161: .lp
        !           162: When the SNMP agent receives an SNMP GetRequest-PDU,
        !           163: GetNextRequest-PDU, or SetRequest-PDU which includes one or more
        !           164: variable-bindings within a subtree registered by a SMUX peer,
        !           165: the SNMP agent sends an equivalent SNMP PDU containing only those
        !           166: variables within the subtree registered by that SMUX peer.
        !           167: When the SMUX peer receives such a PDU,
        !           168: it applies the indicated operation and issues a corresponding SNMP
        !           169: GetResponse-PDU.
        !           170: The SNMP agent then correlates this result and propagates the
        !           171: resulting GetResponse-PDU to the network management station.
        !           172: .lp
        !           173: When either the SNMP agent or the SMUX peer wishes to release the SMUX
        !           174: association,
        !           175: the ClosePDU is issued and the connection is closed.
        !           176: 
        !           177: .sh 2 "Tricky Things"
        !           178: .lp
        !           179: Although straight-forward, there are a few nuances.
        !           180: 
        !           181: .sh 3 "Registration"
        !           182: .lp
        !           183: Associated with each registration is an integer priority,
        !           184: from 0 to (2^31)-1.
        !           185: The lower the value,
        !           186: the higher the priority.
        !           187: .lp
        !           188: Multiple SMUX peers may register the same subtree.
        !           189: However,
        !           190: they must do so at different priorities
        !           191: (i.e., a subtree and a priority uniquely identifies a SMUX peer).
        !           192: As such,
        !           193: if a SMUX peer wishes to register a subtree at a priority which is
        !           194: already taken,
        !           195: the SNMP agent repeatedly increments the integer value until an unused
        !           196: priority is found.
        !           197: .lp
        !           198: When registering a subtree,
        !           199: the special priority -1 may be used,
        !           200: which selects the highest available priority.
        !           201: .lp
        !           202: Of course,
        !           203: the SNMP agent may select an arbitrarily worse priority for a SMUX
        !           204: peer,
        !           205: based on local (configuration)  information.
        !           206: .lp
        !           207: Note that when a subtree is registered,
        !           208: the SMUX peer with the highest registration priority is exclusively
        !           209: consulted for all operations on that subtree.
        !           210: Further note that SNMP agents must enforce the
        !           211: \*(lqsubtree mounting effect\*(rq,
        !           212: which hides the registrations by other SMUX peers of objects within
        !           213: the subtree.
        !           214: For example,
        !           215: if a SMUX peer registered \*(lqsysDescr\*(rq,
        !           216: and later another SMUX peer registered \*(lqsystem\*(rq
        !           217: (which scopes \*(lqsysDescr\*(rq),
        !           218: then all requests for \*(lqsysDescr\*(rq would be given to the latter
        !           219: SMUX peer.
        !           220: .lp
        !           221: An SNMP agent should disallow any attempt to register at or within the SNMP
        !           222: and SMUX subtrees of the MIB.
        !           223: Other subtrees may be disallowed as an implementation-specific option.
        !           224: 
        !           225: .sh 3 "Removing Registration"
        !           226: .lp
        !           227: A SMUX peer may remove registrations for only those subtrees which it
        !           228: has registered.
        !           229: If the priority given in the RReq-PDU is -1,
        !           230: then the registration of highest priority is selected for deletion.
        !           231: Otherwise, only that registration with the precise registration
        !           232: is selected.
        !           233: 
        !           234: .sh 3 "Variables in Requests"
        !           235: .lp
        !           236: When constructing an SNMP GetRequest-PDU, GetNextRequest-PDU, or
        !           237: SetRequest-PDU, for a SMUX peer,
        !           238: the SNMP agent may send one, or more than one variable in a single request.
        !           239: In all cases,
        !           240: the SNMP agent should process each variable sequentially,
        !           241: and block accordingly when a SMUX peer is contacted.
        !           242: 
        !           243: .sh 3 "Request-ID"
        !           244: .lp
        !           245: When the SNMP agent constructs an SNMP GetRequest-PDU,
        !           246: GetNextRequest-PDU, or SetRequest-PDU, for a SMUX peer,
        !           247: the \fIrequest_id\fR field of the SNMP takes a special meaning.
        !           248: Basically,
        !           249: this field should take a different value for each SNMP PDU received by
        !           250: the SNMP agent.
        !           251: As such,
        !           252: if an SNMP agent generates multiple PDUs for a SMUX peer,
        !           253: upon receipt of a single PDU from the network management station,
        !           254: then the \fIrequest_id\fR field of the PDUs sent to the SMUX peer
        !           255: takes the same value
        !           256: (which need bear no relationship to the value of the \fIrequest_id\fR
        !           257: field of the PDU originally received by the SNMP agent.)
        !           258: 
        !           259: .sh 3 "The powerful get-next operator"
        !           260: .lp
        !           261: Each SMUX peer acts as though it contains the entire MIB when
        !           262: processing the powerful get-next operator.
        !           263: This means that the SNMP agent must check each variable named returned
        !           264: in the SNMP GetResponse-PDU generated by a SMUX peer and see if it is in
        !           265: the subtree of the managed object corresponding to original SNMP
        !           266: GetNextRequest-PDU.
        !           267: If not,
        !           268: the SNMP agent will apply the get-next operator to the next managed object.
        !           269: This may result in contacting a different SMUX peer,
        !           270: depending on the registration topology.
        !           271: 
        !           272: .sh 2 "Protocol Data Units"
        !           273: .lp
        !           274: The SMUX protocol data units are defined using Abstract Syntax
        !           275: Notation One (ASN.1) [3]:
        !           276: .sp
        !           277: .in +.5i
        !           278: .nf
        !           279: SMUX DEFINITIONS ::= BEGIN
        !           280: 
        !           281: IMPORTS
        !           282:        DisplayString, ObjectName
        !           283:                FROM RFC1155-SMI
        !           284: 
        !           285:        PDUs
        !           286:                FROM RFC1157-SNMP;
        !           287: 
        !           288: 
        !           289: -- tags for SMUX-specific PDUs are application-wide to
        !           290: -- avoid conflict with tags for current (and future)
        !           291: -- SNMP-generic PDUs
        !           292: 
        !           293: SMUX-PDUs ::=
        !           294:     CHOICE {
        !           295:        open            -- SMUX peer uses
        !           296:            OpenPDU,    -- immediately after TCP open
        !           297: 
        !           298:        close           -- either uses immediately before TCP close
        !           299:            ClosePDU,
        !           300: 
        !           301:        registerRequest -- SMUX peer uses
        !           302:            RReqPDU,
        !           303: 
        !           304:        registerResponse -- SNMP agent uses
        !           305:            RRspPDU,
        !           306: 
        !           307:        PDUs            -- note that roles are reversed:
        !           308:                        --   SNMP agent does get/get-next/set
        !           309:                        --   SMUX peer does get-response/trap
        !           310:     }
        !           311: 
        !           312: 
        !           313: -- open PDU
        !           314: -- currently only simple authentication
        !           315: 
        !           316: OpenPDU ::=
        !           317:     CHOICE {
        !           318:        simple
        !           319:            SimpleOpen
        !           320:     }
        !           321: 
        !           322: SimpleOpen ::=
        !           323:     [APPLICATION 0] IMPLICIT
        !           324:        SEQUENCE {
        !           325:            version     -- of SMUX protocol
        !           326:                INTEGER {
        !           327:                    version-1(0)
        !           328:                },
        !           329: 
        !           330:            identity    -- of SMUX peer, authoritative
        !           331:                OBJECT IDENTIFIER,
        !           332: 
        !           333:            description -- of SMUX peer, implementation-specific
        !           334:                DisplayString,
        !           335: 
        !           336:            password    -- zero length indicates no authentication
        !           337:                OCTET STRING
        !           338:        }
        !           339: 
        !           340: 
        !           341: -- close PDU
        !           342: 
        !           343: ClosePDU ::=
        !           344:     [APPLICATION 1] IMPLICIT
        !           345:        INTEGER {
        !           346:            goingDown(0)        !           347:            unsupportedVersion(1),
        !           348:            packetFormat(2),
        !           349:            protocolError(3),
        !           350:            internalError(4),
        !           351:            authenticationFailure(5)
        !           352:        }
        !           353: 
        !           354: 
        !           355: -- insert PDU
        !           356: 
        !           357: RReqPDU ::=
        !           358:     [APPLICATION 2] IMPLICIT
        !           359:        SEQUENCE {
        !           360:            subtree
        !           361:                ObjectName,
        !           362: 
        !           363:            priority    -- the lower the better, "-1" means default
        !           364:                INTEGER (-1..2147483647),
        !           365: 
        !           366:            operation
        !           367:                INTEGER {
        !           368:                    delete(0),
        !           369:                    readOnly(1),
        !           370:                    readWrite(2)
        !           371:                }
        !           372:        }
        !           373: 
        !           374: RRspPDU ::=
        !           375:     [APPLICATION 3] IMPLICIT
        !           376:        INTEGER {
        !           377:            failure(-1)
        !           378: 
        !           379:            -- on success the non-negative priority is returned
        !           380:        }
        !           381: 
        !           382: END
        !           383: .fi
        !           384: .in -.5i
        !           385: .sp
        !           386: 
        !           387: .sh 2 "Mappings on Transport Service"
        !           388: .lp
        !           389: The SMUX protocol may be mapped onto any CO-mode transport service.
        !           390: At present,
        !           391: only one such mapping is defined.
        !           392: 
        !           393: .sh 3 "Mapping onto the TCP"
        !           394: .lp
        !           395: When using the TCP to provide the transport-backing for the SMUX
        !           396: protocol,
        !           397: the SNMP agent listens on TCP port 199.
        !           398: .lp
        !           399: Each SMUX PDU is serialized using the Basic Encoding Rules [4] and
        !           400: sent on the TCP.
        !           401: As ASN.1 objects are self-delimiting when encoding using the BER,
        !           402: so no packetization protocol is required.
        !           403: 
        !           404: .bp
        !           405: .sh 1 "MIB for the SMUX"
        !           406: .lp
        !           407: The MIB objects for the SMUX are implemented by the local SNMP agent:
        !           408: .sp
        !           409: .in +.5i
        !           410: .nf
        !           411: SMUX-MIB DEFINITIONS ::= BEGIN
        !           412: 
        !           413: IMPORTS
        !           414:        enterprises, OBJECT-TYPE, ObjectName
        !           415:                FROM RFC1155-SMI;
        !           416: 
        !           417: 
        !           418: unix    OBJECT IDENTIFIER ::= { enterprises 4 }
        !           419: 
        !           420: 
        !           421: smux   OBJECT IDENTIFIER ::= { unix 4 }
        !           422: 
        !           423: smuxPeerTable  OBJECT-TYPE
        !           424:        SYNTAX  SEQUENCE OF SmuxPeerEntry
        !           425:        ACCESS  not-accessible
        !           426:        STATUS  mandatory
        !           427:        ::= { smux 1 }
        !           428: 
        !           429: smuxPeerEntry  OBJECT-TYPE
        !           430:        SYNTAX  SmuxPeerEntry
        !           431:        ACCESS  not-accessible
        !           432:        STATUS  mandatory
        !           433: --     INDEX   { smuxPindex }
        !           434:        ::= { smuxPeerTable 1}
        !           435: 
        !           436: SmuxPeerEntry ::= SEQUENCE {
        !           437:     smuxPindex
        !           438:        INTEGER,
        !           439:     smuxPidentity
        !           440:        OBJECT IDENTIFIER,
        !           441:     smuxPdescription
        !           442:        DisplayString,
        !           443:     smuxPstatus
        !           444:        INTEGER
        !           445: }
        !           446: 
        !           447: smuxPindex     OBJECT-TYPE
        !           448:        SYNTAX  INTEGER
        !           449:        ACCESS  read-write
        !           450:        STATUS  mandatory
        !           451:        ::= { smuxPeerEntry 1 }
        !           452: 
        !           453: smuxPidentity  OBJECT-TYPE
        !           454:        SYNTAX  OBJECT IDENTIFIER
        !           455:        ACCESS  read-write
        !           456:        STATUS  mandatory
        !           457:        ::= { smuxPeerEntry 2 }
        !           458: 
        !           459: smuxPdescription OBJECT-TYPE
        !           460:        SYNTAX  DisplayString (SIZE (0..255))
        !           461:        ACCESS  read-write
        !           462:        STATUS  mandatory
        !           463:        ::= { smuxPeerEntry 3 }
        !           464: 
        !           465: smuxPstatus    OBJECT-TYPE
        !           466:        SYNTAX  INTEGER { valid(1), invalid(2), connecting(3) }
        !           467:        ACCESS  read-write
        !           468:        STATUS  mandatory
        !           469:        ::= { smuxPeerEntry 4 }
        !           470: 
        !           471: smuxTreeTable  OBJECT-TYPE
        !           472:        SYNTAX  SEQUENCE OF SmuxTreeEntry
        !           473:        ACCESS  not-accessible
        !           474:        STATUS  mandatory
        !           475:        ::= { smux 2 }
        !           476: 
        !           477: smuxTreeEntry  OBJECT-TYPE
        !           478:        SYNTAX  SmuxTreeEntry
        !           479:        ACCESS  not-accessible
        !           480:        STATUS  mandatory
        !           481:        ::= { smuxTreeTable 1}
        !           482: 
        !           483: SmuxTreeEntry ::= SEQUENCE {
        !           484:     smuxTsubtree
        !           485:        ObjectName
        !           486:     smuxTpriority
        !           487:        INTEGER,
        !           488:     smuxTindex
        !           489:        INTEGER,
        !           490:     smuxTstatus
        !           491:        INTEGER
        !           492: }
        !           493: 
        !           494: smuxTsubtree   OBJECT-TYPE
        !           495:        SYNTAX  ObjectName
        !           496:        ACCESS  read-write
        !           497:        STATUS  mandatory
        !           498: --     INDEX   { smuxTsubtree, smuxTpriority }
        !           499:        ::= { smuxTreeEntry 1 }
        !           500: 
        !           501: smuxTpriority OBJECT-TYPE
        !           502:        SYNTAX  INTEGER (0..2147483647)
        !           503:        ACCESS  read-write
        !           504:        STATUS  mandatory
        !           505:        ::= { smuxTreeEntry 2 }
        !           506: 
        !           507: smuxTindex OBJECT-TYPE
        !           508:        SYNTAX  INTEGER (0..2147483647)
        !           509:        ACCESS  read-write
        !           510:        STATUS  mandatory
        !           511:        ::= { smuxTreeEntry 3 }
        !           512: 
        !           513: smuxTstatus    OBJECT-TYPE
        !           514:        SYNTAX  INTEGER { valid(1), invalid(2) }
        !           515:        ACCESS  read-write
        !           516:        STATUS  mandatory
        !           517:        ::= { smuxTreeEntry 4 }
        !           518: 
        !           519: END
        !           520: .fi
        !           521: .in -.5i
        !           522: .sp
        !           523: 
        !           524: .sh 2 "Identification of OBJECT instances for use with the SNMP"
        !           525: .lp
        !           526: The names for all object types in the MIB are defined explicitly either
        !           527: in the Internet-standard MIB or in other documents which conform to
        !           528: the naming conventions of the SMI[5]. The SMI requires
        !           529: that conformant management protocols define mechanisms
        !           530: for identifying individual instances of those object types
        !           531: for a particular network element.
        !           532: .lp
        !           533: Each instance of any object type defined in the MIB is identified
        !           534: in SNMP operations by a unique name called its "variable name."
        !           535: In general, the name of an SNMP variable is an OBJECT IDENTIFIER
        !           536: of the form x.y, where x is the name of a non-aggregate object type 
        !           537: defined in the MIB and y is an OBJECT IDENTIFIER fragment
        !           538: that, in a way specific to the named object type, identifies the
        !           539: desired instance.
        !           540: .lp
        !           541: This naming strategy admits the fullest exploitation of the
        !           542: semantics of the powerful SNMP get-next operator,
        !           543: because it assigns names for related variables so as to be contiguous
        !           544: in the lexicographical ordering of all variable names
        !           545: known in the MIB.
        !           546: .lp
        !           547: The type-specific naming of object instances is defined below
        !           548: for a number of classes of object types.
        !           549: Instances of
        !           550: an object type to which
        !           551: none of the following naming conventions are applicable are
        !           552: named by OBJECT IDENTIFIERs of the form
        !           553: x.0, where x is the name of said object type in the MIB definition.
        !           554: .lp
        !           555: For example,
        !           556: suppose one wanted to identify an instance of the variable sysDescr.
        !           557: The object class for sysDescr is:
        !           558: .sp
        !           559: .in +0.25
        !           560: .nf
        !           561: iso org dod internet mgmt mib system sysDescr
        !           562:  1   3   6     1      2    1    1       1
        !           563: .fi
        !           564: .in -0.25
        !           565: .sp
        !           566: Hence,
        !           567: the object type, x, would be 1.3.6.1.2.1.1.1 to which
        !           568: is appended an instance sub-identifier of 0.
        !           569: That is, 1.3.6.1.2.1.1.1.0
        !           570: identifies the one and only instance of sysDescr.
        !           571: 
        !           572: .sh 3 "smuxPeerTable Object Type Names"
        !           573: .lp
        !           574: The name of a SMUX peer relationship, s, is the OBJECT IDENTIFIER
        !           575: value of the form i, where i has the value of that
        !           576: instance of the smuxPindex object type associated with s.
        !           577: .lp
        !           578: For each object type, t, for which the defined name, n, has
        !           579: a prefix of smuxPeerEntry, an instance, i, of t is named by an OBJECT
        !           580: IDENTIFIER of the form n.s, where s is the name of the SMUX peer relationship
        !           581: about which i represents information.
        !           582: .lp
        !           583: For example,
        !           584: suppose one wanted to identify the instance of the variable smuxPidentity
        !           585: associated with peer relationship number 2.
        !           586: Accordingly, smuxPidentity.2 would identify the desired instance.
        !           587: 
        !           588: .sh 3 "smuxTreeTable Object Type Names"
        !           589: .lp
        !           590: The name of a SMUX subtree relationship, s, is the OBJECT IDENTIFIER
        !           591: value of the form i.j, where i has the value of that
        !           592: instance of the smuxTsubtree object type,
        !           593: and j has the value of that instance of the smuxTpriority object type,
        !           594: associated with s.
        !           595: .lp
        !           596: For each object type, t, for which the defined name, n, has
        !           597: a prefix of smuxTreeEntry, an instance, i, of t is named by an OBJECT
        !           598: IDENTIFIER of the form n.s.t.u,
        !           599: where s is the number of sub-identifiers in the corresponding instance
        !           600: of smuxTsubtree,
        !           601: t is the value of the instance of smuxTsubtree corresponding to this
        !           602: entry,
        !           603: and u is the value of the instance of smuxTpriority corresponding to
        !           604: this entry.
        !           605: .lp
        !           606: For example,
        !           607: suppose one wanted to identify the instance of the variable smuxTindex
        !           608: associated with the subtree 1.3.6.1.5 for priority 3.
        !           609: Accordingly, smuxTindex.5.1.3.6.1.5.3 would identify the desired instance.
        !           610: 
        !           611: .bp
        !           612: .sh 1 "Acknowledgements"
        !           613: .lp
        !           614: SMUX was designed one afternoon by these people:
        !           615: .sp
        !           616: .in +.5i
        !           617: .nf
        !           618: Jeffrey S. Case, UTK-CS
        !           619: James R. Davin, MIT-LCS
        !           620: Mark S. Fedor, PSI
        !           621: Jeffrey C. Honig, Cornell
        !           622: Louie A. Mamakos, UMD
        !           623: Michael G. Petry, UMD
        !           624: Yakov Rekhter, IBM
        !           625: Marshall T. Rose, PSI
        !           626: .fi
        !           627: .in -.5i
        !           628: .sp
        !           629: 
        !           630: .bp
        !           631: .sh 1 "References"
        !           632: .ip [1]
        !           633: J.D.\0Case, M.S.\0Fedor, M.L.\0Schoffstall, and J.R.\0Davin,
        !           634: \fISimple Network Management Protocol\fR,
        !           635: Internet Working Group Request for Comments 1157.
        !           636: Network Information Center, SRI International, Menlo Park, California,
        !           637: (May, 1990).
        !           638: .ip [2]
        !           639: K.\0McCloghrie and M.T.\0Rose,
        !           640: \fIManagement Information Base for Network Management of TCP/IP-based
        !           641: internets\fR,
        !           642: Internet Working Group Request for Comments 1156.
        !           643: Network Information Center, SRI International, Menlo Park, California,
        !           644: (May, 1990).
        !           645: .ip [3]
        !           646: \fIInformation processing systems \(em Open Systems Interconnection \(em
        !           647: Specification of Abstract Syntax Notation One (ASN.1)\fP, International
        !           648: Organization for Standardization.  International Standard 8824,
        !           649: (December, 1987).
        !           650: .ip [4]
        !           651: \fIInformation processing systems \(em Open Systems Interconnection \(em
        !           652: Specification of Basic Encoding Rules for Abstract Notation
        !           653: One (ASN.1)\fP, International Organization for Standardization.
        !           654: International Standard 8825,
        !           655: (December, 1987).
        !           656: .ip [5]
        !           657: M.T.\0Rose and K.\0McCloghrie,
        !           658: \fIStructure and Identification of Management Information for
        !           659: TCP/IP\-based internets\fR,
        !           660: Internet Working Group Request for Comments 1155.
        !           661: Network Information Center, SRI International, Menlo Park, California,
        !           662: (May, 1990).
        !           663: 
        !           664: .bp
        !           665: .lp
        !           666: \fBTable of Contents\fR
        !           667: .sp 2
        !           668: .xp t

unix.superglobalmegacorp.com

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