Blame mibs/ietf/SNMPv2-TC

Packit Service 9ccfef
SNMPv2-TC DEFINITIONS ::= BEGIN
Packit Service 9ccfef
Packit Service 9ccfef
IMPORTS
Packit Service 9ccfef
    TimeTicks         FROM SNMPv2-SMI;
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
-- definition of textual conventions
Packit Service 9ccfef
Packit Service 9ccfef
TEXTUAL-CONVENTION MACRO ::=
Packit Service 9ccfef
BEGIN
Packit Service 9ccfef
    TYPE NOTATION ::=
Packit Service 9ccfef
                  DisplayPart
Packit Service 9ccfef
                  "STATUS" Status
Packit Service 9ccfef
                  "DESCRIPTION" Text
Packit Service 9ccfef
                  ReferPart
Packit Service 9ccfef
                  "SYNTAX" Syntax
Packit Service 9ccfef
Packit Service 9ccfef
    VALUE NOTATION ::=
Packit Service 9ccfef
                   value(VALUE Syntax)      -- adapted ASN.1
Packit Service 9ccfef
Packit Service 9ccfef
    DisplayPart ::=
Packit Service 9ccfef
                  "DISPLAY-HINT" Text
Packit Service 9ccfef
                | empty
Packit Service 9ccfef
Packit Service 9ccfef
    Status ::=
Packit Service 9ccfef
                  "current"
Packit Service 9ccfef
                | "deprecated"
Packit Service 9ccfef
                | "obsolete"
Packit Service 9ccfef
Packit Service 9ccfef
    ReferPart ::=
Packit Service 9ccfef
                  "REFERENCE" Text
Packit Service 9ccfef
                | empty
Packit Service 9ccfef
Packit Service 9ccfef
    -- a character string as defined in [2]
Packit Service 9ccfef
    Text ::= value(IA5String)
Packit Service 9ccfef
Packit Service 9ccfef
    Syntax ::=   -- Must be one of the following:
Packit Service 9ccfef
                       -- a base type (or its refinement), or
Packit Service 9ccfef
                       -- a BITS pseudo-type
Packit Service 9ccfef
                  type
Packit Service 9ccfef
                | "BITS" "{" NamedBits "}"
Packit Service 9ccfef
Packit Service 9ccfef
    NamedBits ::= NamedBit
Packit Service 9ccfef
                | NamedBits "," NamedBit
Packit Service 9ccfef
Packit Service 9ccfef
    NamedBit ::=  identifier "(" number ")" -- number is nonnegative
Packit Service 9ccfef
Packit Service 9ccfef
END
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
DisplayString ::= TEXTUAL-CONVENTION
Packit Service 9ccfef
    DISPLAY-HINT "255a"
Packit Service 9ccfef
    STATUS       current
Packit Service 9ccfef
    DESCRIPTION
Packit Service 9ccfef
            "Represents textual information taken from the NVT ASCII
Packit Service 9ccfef
            character set, as defined in pages 4, 10-11 of RFC 854.
Packit Service 9ccfef
Packit Service 9ccfef
            To summarize RFC 854, the NVT ASCII repertoire specifies:
Packit Service 9ccfef
Packit Service 9ccfef
              - the use of character codes 0-127 (decimal)
Packit Service 9ccfef
Packit Service 9ccfef
              - the graphics characters (32-126) are interpreted as
Packit Service 9ccfef
                US ASCII
Packit Service 9ccfef
Packit Service 9ccfef
              - NUL, LF, CR, BEL, BS, HT, VT and FF have the special
Packit Service 9ccfef
                meanings specified in RFC 854
Packit Service 9ccfef
Packit Service 9ccfef
              - the other 25 codes have no standard interpretation
Packit Service 9ccfef
Packit Service 9ccfef
              - the sequence 'CR LF' means newline
Packit Service 9ccfef
Packit Service 9ccfef
              - the sequence 'CR NUL' means carriage-return
Packit Service 9ccfef
Packit Service 9ccfef
              - an 'LF' not preceded by a 'CR' means moving to the
Packit Service 9ccfef
                same column on the next line.
Packit Service 9ccfef
Packit Service 9ccfef
              - the sequence 'CR x' for any x other than LF or NUL is
Packit Service 9ccfef
                illegal.  (Note that this also means that a string may
Packit Service 9ccfef
                end with either 'CR LF' or 'CR NUL', but not with CR.)
Packit Service 9ccfef
Packit Service 9ccfef
            Any object defined using this syntax may not exceed 255
Packit Service 9ccfef
            characters in length."
Packit Service 9ccfef
    SYNTAX       OCTET STRING (SIZE (0..255))
Packit Service 9ccfef
Packit Service 9ccfef
PhysAddress ::= TEXTUAL-CONVENTION
Packit Service 9ccfef
    DISPLAY-HINT "1x:"
Packit Service 9ccfef
    STATUS       current
Packit Service 9ccfef
    DESCRIPTION
Packit Service 9ccfef
            "Represents media- or physical-level addresses."
Packit Service 9ccfef
    SYNTAX       OCTET STRING
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
MacAddress ::= TEXTUAL-CONVENTION
Packit Service 9ccfef
    DISPLAY-HINT "1x:"
Packit Service 9ccfef
    STATUS       current
Packit Service 9ccfef
    DESCRIPTION
Packit Service 9ccfef
            "Represents an 802 MAC address represented in the
Packit Service 9ccfef
            `canonical' order defined by IEEE 802.1a, i.e., as if it
Packit Service 9ccfef
            were transmitted least significant bit first, even though
Packit Service 9ccfef
            802.5 (in contrast to other 802.x protocols) requires MAC
Packit Service 9ccfef
            addresses to be transmitted most significant bit first."
Packit Service 9ccfef
    SYNTAX       OCTET STRING (SIZE (6))
Packit Service 9ccfef
Packit Service 9ccfef
TruthValue ::= TEXTUAL-CONVENTION
Packit Service 9ccfef
    STATUS       current
Packit Service 9ccfef
    DESCRIPTION
Packit Service 9ccfef
            "Represents a boolean value."
Packit Service 9ccfef
    SYNTAX       INTEGER { true(1), false(2) }
Packit Service 9ccfef
Packit Service 9ccfef
TestAndIncr ::= TEXTUAL-CONVENTION
Packit Service 9ccfef
    STATUS       current
Packit Service 9ccfef
    DESCRIPTION
Packit Service 9ccfef
            "Represents integer-valued information used for atomic
Packit Service 9ccfef
            operations.  When the management protocol is used to specify
Packit Service 9ccfef
            that an object instance having this syntax is to be
Packit Service 9ccfef
            modified, the new value supplied via the management protocol
Packit Service 9ccfef
            must precisely match the value presently held by the
Packit Service 9ccfef
            instance.  If not, the management protocol set operation
Packit Service 9ccfef
            fails with an error of `inconsistentValue'.  Otherwise, if
Packit Service 9ccfef
            the current value is the maximum value of 2^31-1 (2147483647
Packit Service 9ccfef
            decimal), then the value held by the instance is wrapped to
Packit Service 9ccfef
            zero; otherwise, the value held by the instance is
Packit Service 9ccfef
            incremented by one.  (Note that regardless of whether the
Packit Service 9ccfef
            management protocol set operation succeeds, the variable-
Packit Service 9ccfef
            binding in the request and response PDUs are identical.)
Packit Service 9ccfef
Packit Service 9ccfef
            The value of the ACCESS clause for objects having this
Packit Service 9ccfef
            syntax is either `read-write' or `read-create'.  When an
Packit Service 9ccfef
            instance of a columnar object having this syntax is created,
Packit Service 9ccfef
            any value may be supplied via the management protocol.
Packit Service 9ccfef
Packit Service 9ccfef
            When the network management portion of the system is re-
Packit Service 9ccfef
            initialized, the value of every object instance having this
Packit Service 9ccfef
            syntax must either be incremented from its value prior to
Packit Service 9ccfef
            the re-initialization, or (if the value prior to the re-
Packit Service 9ccfef
            initialization is unknown) be set to a pseudo-randomly
Packit Service 9ccfef
            generated value."
Packit Service 9ccfef
    SYNTAX       INTEGER (0..2147483647)
Packit Service 9ccfef
Packit Service 9ccfef
AutonomousType ::= TEXTUAL-CONVENTION
Packit Service 9ccfef
    STATUS       current
Packit Service 9ccfef
    DESCRIPTION
Packit Service 9ccfef
            "Represents an independently extensible type identification
Packit Service 9ccfef
            value.  It may, for example, indicate a particular sub-tree
Packit Service 9ccfef
            with further MIB definitions, or define a particular type of
Packit Service 9ccfef
            protocol or hardware."
Packit Service 9ccfef
    SYNTAX       OBJECT IDENTIFIER
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
InstancePointer ::= TEXTUAL-CONVENTION
Packit Service 9ccfef
    STATUS       obsolete
Packit Service 9ccfef
    DESCRIPTION
Packit Service 9ccfef
            "A pointer to either a specific instance of a MIB object or
Packit Service 9ccfef
            a conceptual row of a MIB table in the managed device.  In
Packit Service 9ccfef
            the latter case, by convention, it is the name of the
Packit Service 9ccfef
            particular instance of the first accessible columnar object
Packit Service 9ccfef
            in the conceptual row.
Packit Service 9ccfef
Packit Service 9ccfef
            The two uses of this textual convention are replaced by
Packit Service 9ccfef
            VariablePointer and RowPointer, respectively."
Packit Service 9ccfef
    SYNTAX       OBJECT IDENTIFIER
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
VariablePointer ::= TEXTUAL-CONVENTION
Packit Service 9ccfef
    STATUS       current
Packit Service 9ccfef
    DESCRIPTION
Packit Service 9ccfef
            "A pointer to a specific object instance.  For example,
Packit Service 9ccfef
            sysContact.0 or ifInOctets.3."
Packit Service 9ccfef
    SYNTAX       OBJECT IDENTIFIER
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
RowPointer ::= TEXTUAL-CONVENTION
Packit Service 9ccfef
    STATUS       current
Packit Service 9ccfef
    DESCRIPTION
Packit Service 9ccfef
            "Represents a pointer to a conceptual row.  The value is the
Packit Service 9ccfef
            name of the instance of the first accessible columnar object
Packit Service 9ccfef
            in the conceptual row.
Packit Service 9ccfef
Packit Service 9ccfef
            For example, ifIndex.3 would point to the 3rd row in the
Packit Service 9ccfef
            ifTable (note that if ifIndex were not-accessible, then
Packit Service 9ccfef
            ifDescr.3 would be used instead)."
Packit Service 9ccfef
    SYNTAX       OBJECT IDENTIFIER
Packit Service 9ccfef
Packit Service 9ccfef
RowStatus ::= TEXTUAL-CONVENTION
Packit Service 9ccfef
    STATUS       current
Packit Service 9ccfef
    DESCRIPTION
Packit Service 9ccfef
            "The RowStatus textual convention is used to manage the
Packit Service 9ccfef
            creation and deletion of conceptual rows, and is used as the
Packit Service 9ccfef
            value of the SYNTAX clause for the status column of a
Packit Service 9ccfef
            conceptual row (as described in Section 7.7.1 of [2].)
Packit Service 9ccfef
            The status column has six defined values:
Packit Service 9ccfef
Packit Service 9ccfef
                 - `active', which indicates that the conceptual row is
Packit Service 9ccfef
                 available for use by the managed device;
Packit Service 9ccfef
Packit Service 9ccfef
                 - `notInService', which indicates that the conceptual
Packit Service 9ccfef
                 row exists in the agent, but is unavailable for use by
Packit Service 9ccfef
                 the managed device (see NOTE below); 'notInService' has
Packit Service 9ccfef
                 no implication regarding the internal consistency of
Packit Service 9ccfef
                 the row, availability of resources, or consistency with
Packit Service 9ccfef
                 the current state of the managed device;
Packit Service 9ccfef
Packit Service 9ccfef
                 - `notReady', which indicates that the conceptual row
Packit Service 9ccfef
                 exists in the agent, but is missing information
Packit Service 9ccfef
                 necessary in order to be available for use by the
Packit Service 9ccfef
                 managed device (i.e., one or more required columns in
Packit Service 9ccfef
                 the conceptual row have not been instanciated);
Packit Service 9ccfef
Packit Service 9ccfef
                 - `createAndGo', which is supplied by a management
Packit Service 9ccfef
                 station wishing to create a new instance of a
Packit Service 9ccfef
                 conceptual row and to have its status automatically set
Packit Service 9ccfef
                 to active, making it available for use by the managed
Packit Service 9ccfef
                 device;
Packit Service 9ccfef
Packit Service 9ccfef
                 - `createAndWait', which is supplied by a management
Packit Service 9ccfef
                 station wishing to create a new instance of a
Packit Service 9ccfef
                 conceptual row (but not make it available for use by
Packit Service 9ccfef
                 the managed device); and,
Packit Service 9ccfef
Packit Service 9ccfef
                 - `destroy', which is supplied by a management station
Packit Service 9ccfef
                 wishing to delete all of the instances associated with
Packit Service 9ccfef
                 an existing conceptual row.
Packit Service 9ccfef
Packit Service 9ccfef
            Whereas five of the six values (all except `notReady') may
Packit Service 9ccfef
            be specified in a management protocol set operation, only
Packit Service 9ccfef
            three values will be returned in response to a management
Packit Service 9ccfef
            protocol retrieval operation:  `notReady', `notInService' or
Packit Service 9ccfef
            `active'.  That is, when queried, an existing conceptual row
Packit Service 9ccfef
            has only three states:  it is either available for use by
Packit Service 9ccfef
            the managed device (the status column has value `active');
Packit Service 9ccfef
            it is not available for use by the managed device, though
Packit Service 9ccfef
            the agent has sufficient information to attempt to make it
Packit Service 9ccfef
            so (the status column has value `notInService'); or, it is
Packit Service 9ccfef
            not available for use by the managed device, and an attempt
Packit Service 9ccfef
            to make it so would fail because the agent has insufficient
Packit Service 9ccfef
            information (the state column has value `notReady').
Packit Service 9ccfef
Packit Service 9ccfef
                                     NOTE WELL
Packit Service 9ccfef
Packit Service 9ccfef
                 This textual convention may be used for a MIB table,
Packit Service 9ccfef
                 irrespective of whether the values of that table's
Packit Service 9ccfef
                 conceptual rows are able to be modified while it is
Packit Service 9ccfef
                 active, or whether its conceptual rows must be taken
Packit Service 9ccfef
                 out of service in order to be modified.  That is, it is
Packit Service 9ccfef
                 the responsibility of the DESCRIPTION clause of the
Packit Service 9ccfef
                 status column to specify whether the status column must
Packit Service 9ccfef
                 not be `active' in order for the value of some other
Packit Service 9ccfef
                 column of the same conceptual row to be modified.  If
Packit Service 9ccfef
                 such a specification is made, affected columns may be
Packit Service 9ccfef
                 changed by an SNMP set PDU if the RowStatus would not
Packit Service 9ccfef
                 be equal to `active' either immediately before or after
Packit Service 9ccfef
                 processing the PDU.  In other words, if the PDU also
Packit Service 9ccfef
                 contained a varbind that would change the RowStatus
Packit Service 9ccfef
                 value, the column in question may be changed if the
Packit Service 9ccfef
                 RowStatus was not equal to `active' as the PDU was
Packit Service 9ccfef
                 received, or if the varbind sets the status to a value
Packit Service 9ccfef
                 other than 'active'.
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
            Also note that whenever any elements of a row exist, the
Packit Service 9ccfef
            RowStatus column must also exist.
Packit Service 9ccfef
Packit Service 9ccfef
            To summarize the effect of having a conceptual row with a
Packit Service 9ccfef
            status column having a SYNTAX clause value of RowStatus,
Packit Service 9ccfef
            consider the following state diagram:
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
                                         STATE
Packit Service 9ccfef
              +--------------+-----------+-------------+-------------
Packit Service 9ccfef
              |      A       |     B     |      C      |      D
Packit Service 9ccfef
              |              |status col.|status column|
Packit Service 9ccfef
              |status column |    is     |      is     |status column
Packit Service 9ccfef
    ACTION    |does not exist|  notReady | notInService|  is active
Packit Service 9ccfef
--------------+--------------+-----------+-------------+-------------
Packit Service 9ccfef
set status    |noError    ->D|inconsist- |inconsistent-|inconsistent-
Packit Service 9ccfef
column to     |       or     |   entValue|        Value|        Value
Packit Service 9ccfef
createAndGo   |inconsistent- |           |             |
Packit Service 9ccfef
              |         Value|           |             |
Packit Service 9ccfef
--------------+--------------+-----------+-------------+-------------
Packit Service 9ccfef
set status    |noError  see 1|inconsist- |inconsistent-|inconsistent-
Packit Service 9ccfef
column to     |       or     |   entValue|        Value|        Value
Packit Service 9ccfef
createAndWait |wrongValue    |           |             |
Packit Service 9ccfef
--------------+--------------+-----------+-------------+-------------
Packit Service 9ccfef
set status    |inconsistent- |inconsist- |noError      |noError
Packit Service 9ccfef
column to     |         Value|   entValue|             |
Packit Service 9ccfef
active        |              |           |             |
Packit Service 9ccfef
              |              |     or    |             |
Packit Service 9ccfef
              |              |           |             |
Packit Service 9ccfef
              |              |see 2   ->D|see 8     ->D|          ->D
Packit Service 9ccfef
--------------+--------------+-----------+-------------+-------------
Packit Service 9ccfef
set status    |inconsistent- |inconsist- |noError      |noError   ->C
Packit Service 9ccfef
column to     |         Value|   entValue|             |
Packit Service 9ccfef
notInService  |              |           |             |
Packit Service 9ccfef
              |              |     or    |             |      or
Packit Service 9ccfef
              |              |           |             |
Packit Service 9ccfef
              |              |see 3   ->C|          ->C|see 6
Packit Service 9ccfef
--------------+--------------+-----------+-------------+-------------
Packit Service 9ccfef
set status    |noError       |noError    |noError      |noError   ->A
Packit Service 9ccfef
column to     |              |           |             |      or
Packit Service 9ccfef
destroy       |           ->A|        ->A|          ->A|see 7
Packit Service 9ccfef
--------------+--------------+-----------+-------------+-------------
Packit Service 9ccfef
set any other |see 4         |noError    |noError      |see 5
Packit Service 9ccfef
column to some|              |           |             |
Packit Service 9ccfef
value         |              |      see 1|          ->C|          ->D
Packit Service 9ccfef
--------------+--------------+-----------+-------------+-------------
Packit Service 9ccfef
Packit Service 9ccfef
            (1) goto B or C, depending on information available to the
Packit Service 9ccfef
            agent.
Packit Service 9ccfef
Packit Service 9ccfef
            (2) if other variable bindings included in the same PDU,
Packit Service 9ccfef
            provide values for all columns which are missing but
Packit Service 9ccfef
            required, and all columns have acceptable values, then
Packit Service 9ccfef
            return noError and goto D.
Packit Service 9ccfef
Packit Service 9ccfef
            (3) if other variable bindings included in the same PDU,
Packit Service 9ccfef
            provide legal values for all columns which are missing but
Packit Service 9ccfef
            required, then return noError and goto C.
Packit Service 9ccfef
Packit Service 9ccfef
            (4) at the discretion of the agent, the return value may be
Packit Service 9ccfef
            either:
Packit Service 9ccfef
Packit Service 9ccfef
                 inconsistentName:  because the agent does not choose to
Packit Service 9ccfef
                 create such an instance when the corresponding
Packit Service 9ccfef
                 RowStatus instance does not exist, or
Packit Service 9ccfef
Packit Service 9ccfef
                 inconsistentValue:  if the supplied value is
Packit Service 9ccfef
                 inconsistent with the state of some other MIB object's
Packit Service 9ccfef
                 value, or
Packit Service 9ccfef
Packit Service 9ccfef
                 noError: because the agent chooses to create the
Packit Service 9ccfef
                 instance.
Packit Service 9ccfef
Packit Service 9ccfef
            If noError is returned, then the instance of the status
Packit Service 9ccfef
            column must also be created, and the new state is B or C,
Packit Service 9ccfef
            depending on the information available to the agent.  If
Packit Service 9ccfef
            inconsistentName or inconsistentValue is returned, the row
Packit Service 9ccfef
            remains in state A.
Packit Service 9ccfef
Packit Service 9ccfef
            (5) depending on the MIB definition for the column/table,
Packit Service 9ccfef
            either noError or inconsistentValue may be returned.
Packit Service 9ccfef
Packit Service 9ccfef
            (6) the return value can indicate one of the following
Packit Service 9ccfef
            errors:
Packit Service 9ccfef
Packit Service 9ccfef
                 wrongValue: because the agent does not support
Packit Service 9ccfef
                 notInService (e.g., an agent which does not support
Packit Service 9ccfef
                 createAndWait), or
Packit Service 9ccfef
Packit Service 9ccfef
                 inconsistentValue: because the agent is unable to take
Packit Service 9ccfef
                 the row out of service at this time, perhaps because it
Packit Service 9ccfef
                 is in use and cannot be de-activated.
Packit Service 9ccfef
Packit Service 9ccfef
            (7) the return value can indicate the following error:
Packit Service 9ccfef
Packit Service 9ccfef
                 inconsistentValue: because the agent is unable to
Packit Service 9ccfef
                 remove the row at this time, perhaps because it is in
Packit Service 9ccfef
                 use and cannot be de-activated.
Packit Service 9ccfef
Packit Service 9ccfef
            (8) the transition to D can fail, e.g., if the values of the
Packit Service 9ccfef
            conceptual row are inconsistent, then the error code would
Packit Service 9ccfef
            be inconsistentValue.
Packit Service 9ccfef
Packit Service 9ccfef
            NOTE: Other processing of (this and other varbinds of) the
Packit Service 9ccfef
            set request may result in a response other than noError
Packit Service 9ccfef
            being returned, e.g., wrongValue, noCreation, etc.
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
                              Conceptual Row Creation
Packit Service 9ccfef
Packit Service 9ccfef
            There are four potential interactions when creating a
Packit Service 9ccfef
            conceptual row:  selecting an instance-identifier which is
Packit Service 9ccfef
            not in use; creating the conceptual row; initializing any
Packit Service 9ccfef
            objects for which the agent does not supply a default; and,
Packit Service 9ccfef
            making the conceptual row available for use by the managed
Packit Service 9ccfef
            device.
Packit Service 9ccfef
Packit Service 9ccfef
            Interaction 1: Selecting an Instance-Identifier
Packit Service 9ccfef
Packit Service 9ccfef
            The algorithm used to select an instance-identifier varies
Packit Service 9ccfef
            for each conceptual row.  In some cases, the instance-
Packit Service 9ccfef
            identifier is semantically significant, e.g., the
Packit Service 9ccfef
            destination address of a route, and a management station
Packit Service 9ccfef
            selects the instance-identifier according to the semantics.
Packit Service 9ccfef
Packit Service 9ccfef
            In other cases, the instance-identifier is used solely to
Packit Service 9ccfef
            distinguish conceptual rows, and a management station
Packit Service 9ccfef
            without specific knowledge of the conceptual row might
Packit Service 9ccfef
            examine the instances present in order to determine an
Packit Service 9ccfef
            unused instance-identifier.  (This approach may be used, but
Packit Service 9ccfef
            it is often highly sub-optimal; however, it is also a
Packit Service 9ccfef
            questionable practice for a naive management station to
Packit Service 9ccfef
            attempt conceptual row creation.)
Packit Service 9ccfef
Packit Service 9ccfef
            Alternately, the MIB module which defines the conceptual row
Packit Service 9ccfef
            might provide one or more objects which provide assistance
Packit Service 9ccfef
            in determining an unused instance-identifier.  For example,
Packit Service 9ccfef
            if the conceptual row is indexed by an integer-value, then
Packit Service 9ccfef
            an object having an integer-valued SYNTAX clause might be
Packit Service 9ccfef
            defined for such a purpose, allowing a management station to
Packit Service 9ccfef
            issue a management protocol retrieval operation.  In order
Packit Service 9ccfef
            to avoid unnecessary collisions between competing management
Packit Service 9ccfef
            stations, `adjacent' retrievals of this object should be
Packit Service 9ccfef
            different.
Packit Service 9ccfef
Packit Service 9ccfef
            Finally, the management station could select a pseudo-random
Packit Service 9ccfef
            number to use as the index.  In the event that this index
Packit Service 9ccfef
            was already in use and an inconsistentValue was returned in
Packit Service 9ccfef
            response to the management protocol set operation, the
Packit Service 9ccfef
            management station should simply select a new pseudo-random
Packit Service 9ccfef
            number and retry the operation.
Packit Service 9ccfef
Packit Service 9ccfef
            A MIB designer should choose between the two latter
Packit Service 9ccfef
            algorithms based on the size of the table (and therefore the
Packit Service 9ccfef
            efficiency of each algorithm).  For tables in which a large
Packit Service 9ccfef
            number of entries are expected, it is recommended that a MIB
Packit Service 9ccfef
            object be defined that returns an acceptable index for
Packit Service 9ccfef
            creation.  For tables with small numbers of entries, it is
Packit Service 9ccfef
            recommended that the latter pseudo-random index mechanism be
Packit Service 9ccfef
            used.
Packit Service 9ccfef
Packit Service 9ccfef
            Interaction 2: Creating the Conceptual Row
Packit Service 9ccfef
Packit Service 9ccfef
            Once an unused instance-identifier has been selected, the
Packit Service 9ccfef
            management station determines if it wishes to create and
Packit Service 9ccfef
            activate the conceptual row in one transaction or in a
Packit Service 9ccfef
            negotiated set of interactions.
Packit Service 9ccfef
Packit Service 9ccfef
            Interaction 2a: Creating and Activating the Conceptual Row
Packit Service 9ccfef
Packit Service 9ccfef
            The management station must first determine the column
Packit Service 9ccfef
            requirements, i.e., it must determine those columns for
Packit Service 9ccfef
            which it must or must not provide values.  Depending on the
Packit Service 9ccfef
            complexity of the table and the management station's
Packit Service 9ccfef
            knowledge of the agent's capabilities, this determination
Packit Service 9ccfef
            can be made locally by the management station.  Alternately,
Packit Service 9ccfef
            the management station issues a management protocol get
Packit Service 9ccfef
            operation to examine all columns in the conceptual row that
Packit Service 9ccfef
            it wishes to create.  In response, for each column, there
Packit Service 9ccfef
            are three possible outcomes:
Packit Service 9ccfef
Packit Service 9ccfef
                 - a value is returned, indicating that some other
Packit Service 9ccfef
                 management station has already created this conceptual
Packit Service 9ccfef
                 row.  We return to interaction 1.
Packit Service 9ccfef
Packit Service 9ccfef
                 - the exception `noSuchInstance' is returned,
Packit Service 9ccfef
                 indicating that the agent implements the object-type
Packit Service 9ccfef
                 associated with this column, and that this column in at
Packit Service 9ccfef
                 least one conceptual row would be accessible in the MIB
Packit Service 9ccfef
                 view used by the retrieval were it to exist. For those
Packit Service 9ccfef
                 columns to which the agent provides read-create access,
Packit Service 9ccfef
                 the `noSuchInstance' exception tells the management
Packit Service 9ccfef
                 station that it should supply a value for this column
Packit Service 9ccfef
                 when the conceptual row is to be created.
Packit Service 9ccfef
Packit Service 9ccfef
                 - the exception `noSuchObject' is returned, indicating
Packit Service 9ccfef
                 that the agent does not implement the object-type
Packit Service 9ccfef
                 associated with this column or that there is no
Packit Service 9ccfef
                 conceptual row for which this column would be
Packit Service 9ccfef
                 accessible in the MIB view used by the retrieval.  As
Packit Service 9ccfef
                 such, the management station can not issue any
Packit Service 9ccfef
                 management protocol set operations to create an
Packit Service 9ccfef
                 instance of this column.
Packit Service 9ccfef
Packit Service 9ccfef
            Once the column requirements have been determined, a
Packit Service 9ccfef
            management protocol set operation is accordingly issued.
Packit Service 9ccfef
            This operation also sets the new instance of the status
Packit Service 9ccfef
            column to `createAndGo'.
Packit Service 9ccfef
Packit Service 9ccfef
            When the agent processes the set operation, it verifies that
Packit Service 9ccfef
            it has sufficient information to make the conceptual row
Packit Service 9ccfef
            available for use by the managed device.  The information
Packit Service 9ccfef
            available to the agent is provided by two sources:  the
Packit Service 9ccfef
            management protocol set operation which creates the
Packit Service 9ccfef
            conceptual row, and, implementation-specific defaults
Packit Service 9ccfef
            supplied by the agent (note that an agent must provide
Packit Service 9ccfef
            implementation-specific defaults for at least those objects
Packit Service 9ccfef
            which it implements as read-only).  If there is sufficient
Packit Service 9ccfef
            information available, then the conceptual row is created, a
Packit Service 9ccfef
            `noError' response is returned, the status column is set to
Packit Service 9ccfef
            `active', and no further interactions are necessary (i.e.,
Packit Service 9ccfef
            interactions 3 and 4 are skipped).  If there is insufficient
Packit Service 9ccfef
            information, then the conceptual row is not created, and the
Packit Service 9ccfef
            set operation fails with an error of `inconsistentValue'.
Packit Service 9ccfef
            On this error, the management station can issue a management
Packit Service 9ccfef
            protocol retrieval operation to determine if this was
Packit Service 9ccfef
            because it failed to specify a value for a required column,
Packit Service 9ccfef
            or, because the selected instance of the status column
Packit Service 9ccfef
            already existed.  In the latter case, we return to
Packit Service 9ccfef
            interaction 1.  In the former case, the management station
Packit Service 9ccfef
            can re-issue the set operation with the additional
Packit Service 9ccfef
            information, or begin interaction 2 again using
Packit Service 9ccfef
            `createAndWait' in order to negotiate creation of the
Packit Service 9ccfef
            conceptual row.
Packit Service 9ccfef
Packit Service 9ccfef
                                     NOTE WELL
Packit Service 9ccfef
Packit Service 9ccfef
                 Regardless of the method used to determine the column
Packit Service 9ccfef
                 requirements, it is possible that the management
Packit Service 9ccfef
                 station might deem a column necessary when, in fact,
Packit Service 9ccfef
                 the agent will not allow that particular columnar
Packit Service 9ccfef
                 instance to be created or written.  In this case, the
Packit Service 9ccfef
                 management protocol set operation will fail with an
Packit Service 9ccfef
                 error such as `noCreation' or `notWritable'.  In this
Packit Service 9ccfef
                 case, the management station decides whether it needs
Packit Service 9ccfef
                 to be able to set a value for that particular columnar
Packit Service 9ccfef
                 instance.  If not, the management station re-issues the
Packit Service 9ccfef
                 management protocol set operation, but without setting
Packit Service 9ccfef
                 a value for that particular columnar instance;
Packit Service 9ccfef
                 otherwise, the management station aborts the row
Packit Service 9ccfef
                 creation algorithm.
Packit Service 9ccfef
Packit Service 9ccfef
            Interaction 2b: Negotiating the Creation of the Conceptual
Packit Service 9ccfef
            Row
Packit Service 9ccfef
Packit Service 9ccfef
            The management station issues a management protocol set
Packit Service 9ccfef
            operation which sets the desired instance of the status
Packit Service 9ccfef
            column to `createAndWait'.  If the agent is unwilling to
Packit Service 9ccfef
            process a request of this sort, the set operation fails with
Packit Service 9ccfef
            an error of `wrongValue'.  (As a consequence, such an agent
Packit Service 9ccfef
            must be prepared to accept a single management protocol set
Packit Service 9ccfef
            operation, i.e., interaction 2a above, containing all of the
Packit Service 9ccfef
            columns indicated by its column requirements.)  Otherwise,
Packit Service 9ccfef
            the conceptual row is created, a `noError' response is
Packit Service 9ccfef
            returned, and the status column is immediately set to either
Packit Service 9ccfef
            `notInService' or `notReady', depending on whether it has
Packit Service 9ccfef
            sufficient information to (attempt to) make the conceptual
Packit Service 9ccfef
            row available for use by the managed device.  If there is
Packit Service 9ccfef
            sufficient information available, then the status column is
Packit Service 9ccfef
            set to `notInService'; otherwise, if there is insufficient
Packit Service 9ccfef
            information, then the status column is set to `notReady'.
Packit Service 9ccfef
            Regardless, we proceed to interaction 3.
Packit Service 9ccfef
Packit Service 9ccfef
            Interaction 3: Initializing non-defaulted Objects
Packit Service 9ccfef
Packit Service 9ccfef
            The management station must now determine the column
Packit Service 9ccfef
            requirements.  It issues a management protocol get operation
Packit Service 9ccfef
            to examine all columns in the created conceptual row.  In
Packit Service 9ccfef
            the response, for each column, there are three possible
Packit Service 9ccfef
            outcomes:
Packit Service 9ccfef
Packit Service 9ccfef
                 - a value is returned, indicating that the agent
Packit Service 9ccfef
                 implements the object-type associated with this column
Packit Service 9ccfef
                 and had sufficient information to provide a value.  For
Packit Service 9ccfef
                 those columns to which the agent provides read-create
Packit Service 9ccfef
                 access (and for which the agent allows their values to
Packit Service 9ccfef
                 be changed after their creation), a value return tells
Packit Service 9ccfef
                 the management station that it may issue additional
Packit Service 9ccfef
                 management protocol set operations, if it desires, in
Packit Service 9ccfef
                 order to change the value associated with this column.
Packit Service 9ccfef
Packit Service 9ccfef
                 - the exception `noSuchInstance' is returned,
Packit Service 9ccfef
                 indicating that the agent implements the object-type
Packit Service 9ccfef
                 associated with this column, and that this column in at
Packit Service 9ccfef
                 least one conceptual row would be accessible in the MIB
Packit Service 9ccfef
                 view used by the retrieval were it to exist. However,
Packit Service 9ccfef
                 the agent does not have sufficient information to
Packit Service 9ccfef
                 provide a value, and until a value is provided, the
Packit Service 9ccfef
                 conceptual row may not be made available for use by the
Packit Service 9ccfef
                 managed device.  For those columns to which the agent
Packit Service 9ccfef
                 provides read-create access, the `noSuchInstance'
Packit Service 9ccfef
                 exception tells the management station that it must
Packit Service 9ccfef
                 issue additional management protocol set operations, in
Packit Service 9ccfef
                 order to provide a value associated with this column.
Packit Service 9ccfef
Packit Service 9ccfef
                 - the exception `noSuchObject' is returned, indicating
Packit Service 9ccfef
                 that the agent does not implement the object-type
Packit Service 9ccfef
                 associated with this column or that there is no
Packit Service 9ccfef
                 conceptual row for which this column would be
Packit Service 9ccfef
                 accessible in the MIB view used by the retrieval.  As
Packit Service 9ccfef
                 such, the management station can not issue any
Packit Service 9ccfef
                 management protocol set operations to create an
Packit Service 9ccfef
                 instance of this column.
Packit Service 9ccfef
Packit Service 9ccfef
            If the value associated with the status column is
Packit Service 9ccfef
            `notReady', then the management station must first deal with
Packit Service 9ccfef
            all `noSuchInstance' columns, if any.  Having done so, the
Packit Service 9ccfef
            value of the status column becomes `notInService', and we
Packit Service 9ccfef
            proceed to interaction 4.
Packit Service 9ccfef
Packit Service 9ccfef
            Interaction 4: Making the Conceptual Row Available
Packit Service 9ccfef
Packit Service 9ccfef
            Once the management station is satisfied with the values
Packit Service 9ccfef
            associated with the columns of the conceptual row, it issues
Packit Service 9ccfef
            a management protocol set operation to set the status column
Packit Service 9ccfef
            to `active'.  If the agent has sufficient information to
Packit Service 9ccfef
            make the conceptual row available for use by the managed
Packit Service 9ccfef
            device, the management protocol set operation succeeds (a
Packit Service 9ccfef
            `noError' response is returned).  Otherwise, the management
Packit Service 9ccfef
            protocol set operation fails with an error of
Packit Service 9ccfef
            `inconsistentValue'.
Packit Service 9ccfef
Packit Service 9ccfef
                                     NOTE WELL
Packit Service 9ccfef
Packit Service 9ccfef
                 A conceptual row having a status column with value
Packit Service 9ccfef
                 `notInService' or `notReady' is unavailable to the
Packit Service 9ccfef
                 managed device.  As such, it is possible for the
Packit Service 9ccfef
                 managed device to create its own instances during the
Packit Service 9ccfef
                 time between the management protocol set operation
Packit Service 9ccfef
                 which sets the status column to `createAndWait' and the
Packit Service 9ccfef
                 management protocol set operation which sets the status
Packit Service 9ccfef
                 column to `active'.  In this case, when the management
Packit Service 9ccfef
                 protocol set operation is issued to set the status
Packit Service 9ccfef
                 column to `active', the values held in the agent
Packit Service 9ccfef
                 supersede those used by the managed device.
Packit Service 9ccfef
Packit Service 9ccfef
            If the management station is prevented from setting the
Packit Service 9ccfef
            status column to `active' (e.g., due to management station
Packit Service 9ccfef
            or network failure) the conceptual row will be left in the
Packit Service 9ccfef
            `notInService' or `notReady' state, consuming resources
Packit Service 9ccfef
            indefinitely.  The agent must detect conceptual rows that
Packit Service 9ccfef
            have been in either state for an abnormally long period of
Packit Service 9ccfef
            time and remove them.  It is the responsibility of the
Packit Service 9ccfef
            DESCRIPTION clause of the status column to indicate what an
Packit Service 9ccfef
            abnormally long period of time would be.  This period of
Packit Service 9ccfef
            time should be long enough to allow for human response time
Packit Service 9ccfef
            (including `think time') between the creation of the
Packit Service 9ccfef
            conceptual row and the setting of the status to `active'.
Packit Service 9ccfef
            In the absence of such information in the DESCRIPTION
Packit Service 9ccfef
            clause, it is suggested that this period be approximately 5
Packit Service 9ccfef
            minutes in length.  This removal action applies not only to
Packit Service 9ccfef
            newly-created rows, but also to previously active rows which
Packit Service 9ccfef
            are set to, and left in, the notInService state for a
Packit Service 9ccfef
            prolonged period exceeding that which is considered normal
Packit Service 9ccfef
            for such a conceptual row.
Packit Service 9ccfef
Packit Service 9ccfef
                             Conceptual Row Suspension
Packit Service 9ccfef
Packit Service 9ccfef
            When a conceptual row is `active', the management station
Packit Service 9ccfef
            may issue a management protocol set operation which sets the
Packit Service 9ccfef
            instance of the status column to `notInService'.  If the
Packit Service 9ccfef
            agent is unwilling to do so, the set operation fails with an
Packit Service 9ccfef
            error of `wrongValue' or `inconsistentValue'.  Otherwise,
Packit Service 9ccfef
            the conceptual row is taken out of service, and a `noError'
Packit Service 9ccfef
            response is returned.  It is the responsibility of the
Packit Service 9ccfef
            DESCRIPTION clause of the status column to indicate under
Packit Service 9ccfef
            what circumstances the status column should be taken out of
Packit Service 9ccfef
            service (e.g., in order for the value of some other column
Packit Service 9ccfef
            of the same conceptual row to be modified).
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
                              Conceptual Row Deletion
Packit Service 9ccfef
Packit Service 9ccfef
            For deletion of conceptual rows, a management protocol set
Packit Service 9ccfef
            operation is issued which sets the instance of the status
Packit Service 9ccfef
            column to `destroy'.  This request may be made regardless of
Packit Service 9ccfef
            the current value of the status column (e.g., it is possible
Packit Service 9ccfef
            to delete conceptual rows which are either `notReady',
Packit Service 9ccfef
            `notInService' or `active'.)  If the operation succeeds,
Packit Service 9ccfef
            then all instances associated with the conceptual row are
Packit Service 9ccfef
            immediately removed."
Packit Service 9ccfef
    SYNTAX       INTEGER {
Packit Service 9ccfef
                     -- the following two values are states:
Packit Service 9ccfef
                     -- these values may be read or written
Packit Service 9ccfef
                     active(1),
Packit Service 9ccfef
                     notInService(2),
Packit Service 9ccfef
Packit Service 9ccfef
                     -- the following value is a state:
Packit Service 9ccfef
                     -- this value may be read, but not written
Packit Service 9ccfef
                     notReady(3),
Packit Service 9ccfef
Packit Service 9ccfef
                     -- the following three values are
Packit Service 9ccfef
                     -- actions: these values may be written,
Packit Service 9ccfef
                     --   but are never read
Packit Service 9ccfef
                     createAndGo(4),
Packit Service 9ccfef
                     createAndWait(5),
Packit Service 9ccfef
                     destroy(6)
Packit Service 9ccfef
                 }
Packit Service 9ccfef
Packit Service 9ccfef
TimeStamp ::= TEXTUAL-CONVENTION
Packit Service 9ccfef
    STATUS       current
Packit Service 9ccfef
    DESCRIPTION
Packit Service 9ccfef
            "The value of the sysUpTime object at which a specific
Packit Service 9ccfef
            occurrence happened.  The specific occurrence must be
Packit Service 9ccfef
            defined in the description of any object defined using this
Packit Service 9ccfef
            type.
Packit Service 9ccfef
Packit Service 9ccfef
            If sysUpTime is reset to zero as a result of a re-
Packit Service 9ccfef
            initialization of the network management (sub)system, then
Packit Service 9ccfef
            the values of all TimeStamp objects are also reset.
Packit Service 9ccfef
            However, after approximately 497 days without a re-
Packit Service 9ccfef
            initialization, the sysUpTime object will reach 2^^32-1 and
Packit Service 9ccfef
            then increment around to zero; in this case, existing values
Packit Service 9ccfef
            of TimeStamp objects do not change.  This can lead to
Packit Service 9ccfef
            ambiguities in the value of TimeStamp objects."
Packit Service 9ccfef
    SYNTAX       TimeTicks
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
TimeInterval ::= TEXTUAL-CONVENTION
Packit Service 9ccfef
    STATUS       current
Packit Service 9ccfef
    DESCRIPTION
Packit Service 9ccfef
            "A period of time, measured in units of 0.01 seconds."
Packit Service 9ccfef
    SYNTAX       INTEGER (0..2147483647)
Packit Service 9ccfef
Packit Service 9ccfef
DateAndTime ::= TEXTUAL-CONVENTION
Packit Service 9ccfef
    DISPLAY-HINT "2d-1d-1d,1d:1d:1d.1d,1a1d:1d"
Packit Service 9ccfef
    STATUS       current
Packit Service 9ccfef
    DESCRIPTION
Packit Service 9ccfef
            "A date-time specification.
Packit Service 9ccfef
Packit Service 9ccfef
            field  octets  contents                  range
Packit Service 9ccfef
            -----  ------  --------                  -----
Packit Service 9ccfef
              1      1-2   year*                     0..65536
Packit Service 9ccfef
              2       3    month                     1..12
Packit Service 9ccfef
              3       4    day                       1..31
Packit Service 9ccfef
              4       5    hour                      0..23
Packit Service 9ccfef
              5       6    minutes                   0..59
Packit Service 9ccfef
              6       7    seconds                   0..60
Packit Service 9ccfef
                           (use 60 for leap-second)
Packit Service 9ccfef
              7       8    deci-seconds              0..9
Packit Service 9ccfef
              8       9    direction from UTC        '+' / '-'
Packit Service 9ccfef
              9      10    hours from UTC*           0..13
Packit Service 9ccfef
             10      11    minutes from UTC          0..59
Packit Service 9ccfef
Packit Service 9ccfef
            * Notes:
Packit Service 9ccfef
            - the value of year is in network-byte order
Packit Service 9ccfef
            - daylight saving time in New Zealand is +13
Packit Service 9ccfef
Packit Service 9ccfef
            For example, Tuesday May 26, 1992 at 1:30:15 PM EDT would be
Packit Service 9ccfef
            displayed as:
Packit Service 9ccfef
Packit Service 9ccfef
                             1992-5-26,13:30:15.0,-4:0
Packit Service 9ccfef
Packit Service 9ccfef
            Note that if only local time is known, then timezone
Packit Service 9ccfef
            information (fields 8-10) is not present."
Packit Service 9ccfef
    SYNTAX       OCTET STRING (SIZE (8 | 11))
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
StorageType ::= TEXTUAL-CONVENTION
Packit Service 9ccfef
    STATUS       current
Packit Service 9ccfef
    DESCRIPTION
Packit Service 9ccfef
            "Describes the memory realization of a conceptual row.  A
Packit Service 9ccfef
            row which is volatile(2) is lost upon reboot.  A row which
Packit Service 9ccfef
            is either nonVolatile(3), permanent(4) or readOnly(5), is
Packit Service 9ccfef
            backed up by stable storage.  A row which is permanent(4)
Packit Service 9ccfef
            can be changed but not deleted.  A row which is readOnly(5)
Packit Service 9ccfef
            cannot be changed nor deleted.
Packit Service 9ccfef
Packit Service 9ccfef
            If the value of an object with this syntax is either
Packit Service 9ccfef
            permanent(4) or readOnly(5), it cannot be written.
Packit Service 9ccfef
            Conversely, if the value is either other(1), volatile(2) or
Packit Service 9ccfef
            nonVolatile(3), it cannot be modified to be permanent(4) or
Packit Service 9ccfef
            readOnly(5).  (All illegal modifications result in a
Packit Service 9ccfef
            'wrongValue' error.)
Packit Service 9ccfef
Packit Service 9ccfef
            Every usage of this textual convention is required to
Packit Service 9ccfef
            specify the columnar objects which a permanent(4) row must
Packit Service 9ccfef
            at a minimum allow to be writable."
Packit Service 9ccfef
    SYNTAX       INTEGER {
Packit Service 9ccfef
                     other(1),       -- eh?
Packit Service 9ccfef
                     volatile(2),    -- e.g., in RAM
Packit Service 9ccfef
                     nonVolatile(3), -- e.g., in NVRAM
Packit Service 9ccfef
                     permanent(4),   -- e.g., partially in ROM
Packit Service 9ccfef
                     readOnly(5)     -- e.g., completely in ROM
Packit Service 9ccfef
                 }
Packit Service 9ccfef
Packit Service 9ccfef
TDomain ::= TEXTUAL-CONVENTION
Packit Service 9ccfef
    STATUS       current
Packit Service 9ccfef
    DESCRIPTION
Packit Service 9ccfef
          "Denotes a kind of transport service.
Packit Service 9ccfef
Packit Service 9ccfef
          Some possible values, such as snmpUDPDomain, are defined in
Packit Service 9ccfef
          the SNMPv2-TM MIB module.  Other possible values are defined
Packit Service 9ccfef
          in other MIB modules."
Packit Service 9ccfef
    REFERENCE    "The SNMPv2-TM MIB module is defined in RFC 1906."
Packit Service 9ccfef
    SYNTAX       OBJECT IDENTIFIER
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
TAddress ::= TEXTUAL-CONVENTION
Packit Service 9ccfef
    STATUS       current
Packit Service 9ccfef
    DESCRIPTION
Packit Service 9ccfef
          "Denotes a transport service address.
Packit Service 9ccfef
Packit Service 9ccfef
          A TAddress value is always interpreted within the context of a
Packit Service 9ccfef
          TDomain value.  Thus, each definition of a TDomain value must
Packit Service 9ccfef
          be accompanied by a definition of a textual convention for use
Packit Service 9ccfef
          with that TDomain.  Some possible textual conventions, such as
Packit Service 9ccfef
          SnmpUDPAddress for snmpUDPDomain, are defined in the SNMPv2-TM
Packit Service 9ccfef
          MIB module.  Other possible textual conventions are defined in
Packit Service 9ccfef
          other MIB modules."
Packit Service 9ccfef
    REFERENCE    "The SNMPv2-TM MIB module is defined in RFC 1906."
Packit Service 9ccfef
    SYNTAX       OCTET STRING (SIZE (1..255))
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
END