Blame mibs/ietf/DISMAN-EXPRESSION-MIB

Packit 022b05
DISMAN-EXPRESSION-MIB DEFINITIONS ::= BEGIN
Packit 022b05
Packit 022b05
IMPORTS
Packit 022b05
    MODULE-IDENTITY, OBJECT-TYPE,
Packit 022b05
    Integer32, Gauge32, Unsigned32,
Packit 022b05
    Counter32, Counter64, IpAddress,
Packit 022b05
    TimeTicks, mib-2, zeroDotZero  FROM SNMPv2-SMI
Packit 022b05
    RowStatus, TruthValue, TimeStamp    FROM SNMPv2-TC
Packit 022b05
    sysUpTime                 FROM SNMPv2-MIB
Packit 022b05
    SnmpAdminString           FROM SNMP-FRAMEWORK-MIB
Packit 022b05
    MODULE-COMPLIANCE, OBJECT-GROUP     FROM SNMPv2-CONF;
Packit 022b05
Packit 022b05
dismanExpressionMIB MODULE-IDENTITY
Packit 022b05
    LAST-UPDATED "200010160000Z" -- 16 October 2000
Packit 022b05
    ORGANIZATION "IETF Distributed Management Working Group"
Packit 022b05
    CONTACT-INFO "Ramanathan Kavasseri
Packit 022b05
                  Cisco Systems, Inc.
Packit 022b05
                  170 West Tasman Drive,
Packit 022b05
                  San Jose CA 95134-1706.
Packit 022b05
                  Phone: +1 408 527 2446
Packit 022b05
                  Email: ramk@cisco.com"
Packit 022b05
    DESCRIPTION
Packit 022b05
     "The MIB module for defining expressions of MIB objects for
Packit 022b05
     management purposes."
Packit 022b05
-- Revision History
Packit 022b05
Packit 022b05
       REVISION     "200010160000Z" -- 16 October 2000
Packit 022b05
       DESCRIPTION  "This is the initial version of this MIB.
Packit 022b05
                    Published as RFC 2982"
Packit 022b05
    ::= { mib-2 90 }
Packit 022b05
Packit 022b05
Packit 022b05
dismanExpressionMIBObjects OBJECT IDENTIFIER ::=
Packit 022b05
                                            { dismanExpressionMIB 1 }
Packit 022b05
Packit 022b05
expResource    OBJECT IDENTIFIER ::= { dismanExpressionMIBObjects 1 }
Packit 022b05
expDefine OBJECT IDENTIFIER ::= { dismanExpressionMIBObjects 2 }
Packit 022b05
expValue  OBJECT IDENTIFIER ::= { dismanExpressionMIBObjects 3 }
Packit 022b05
Packit 022b05
--
Packit 022b05
-- Resource Control
Packit 022b05
--
Packit 022b05
Packit 022b05
Packit 022b05
Packit 022b05
expResourceDeltaMinimum OBJECT-TYPE
Packit 022b05
    SYNTAX      Integer32 (-1 | 1..600)
Packit 022b05
    UNITS       "seconds"
Packit 022b05
    MAX-ACCESS  read-write
Packit 022b05
    STATUS      current
Packit 022b05
    DESCRIPTION
Packit 022b05
     "The minimum expExpressionDeltaInterval this system will
Packit 022b05
     accept.  A system may use the larger values of this minimum to
Packit 022b05
     lessen the impact of constantly computing deltas.  For larger
Packit 022b05
     delta sampling intervals the system samples less often and
Packit 022b05
     suffers less overhead.  This object provides a way to enforce
Packit 022b05
     such lower overhead for all expressions created after it is
Packit 022b05
     set.
Packit 022b05
Packit 022b05
     The value -1 indicates that expResourceDeltaMinimum is
Packit 022b05
     irrelevant as the system will not accept 'deltaValue' as a
Packit 022b05
     value for expObjectSampleType.
Packit 022b05
Packit 022b05
     Unless explicitly resource limited, a system's value for
Packit 022b05
     this object should be 1, allowing as small as a 1 second
Packit 022b05
     interval for ongoing delta sampling.
Packit 022b05
Packit 022b05
     Changing this value will not invalidate an existing setting
Packit 022b05
     of expObjectSampleType."
Packit 022b05
    ::= { expResource 1 }
Packit 022b05
Packit 022b05
expResourceDeltaWildcardInstanceMaximum OBJECT-TYPE
Packit 022b05
    SYNTAX      Unsigned32
Packit 022b05
    UNITS       "instances"
Packit 022b05
    MAX-ACCESS  read-write
Packit 022b05
    STATUS      current
Packit 022b05
    DESCRIPTION
Packit 022b05
     "For every instance of a deltaValue object, one dynamic instance
Packit 022b05
     entry is needed for holding the instance value from the previous
Packit 022b05
     sample, i.e. to maintain state.
Packit 022b05
Packit 022b05
     This object limits maximum number of dynamic instance entries
Packit 022b05
     this system will support for wildcarded delta objects in
Packit 022b05
     expressions. For a given delta expression, the number of
Packit 022b05
     dynamic instances is the number of values that meet all criteria
Packit 022b05
     to exist times the number of delta values in the expression.
Packit 022b05
Packit 022b05
     A value of 0 indicates no preset limit, that is, the limit
Packit 022b05
     is dynamic based on system operation and resources.
Packit 022b05
Packit 022b05
     Unless explicitly resource limited, a system's value for
Packit 022b05
     this object should be 0.
Packit 022b05
Packit 022b05
Packit 022b05
Packit 022b05
     Changing this value will not eliminate or inhibit existing delta
Packit 022b05
     wildcard instance objects but will prevent the creation of more
Packit 022b05
     such objects.
Packit 022b05
Packit 022b05
     An attempt to allocate beyond the limit results in expErrorCode
Packit 022b05
     being tooManyWildcardValues for that evaluation attempt."
Packit 022b05
    ::= { expResource 2 }
Packit 022b05
Packit 022b05
expResourceDeltaWildcardInstances OBJECT-TYPE
Packit 022b05
    SYNTAX      Gauge32
Packit 022b05
    UNITS       "instances"
Packit 022b05
    MAX-ACCESS  read-only
Packit 022b05
    STATUS      current
Packit 022b05
    DESCRIPTION
Packit 022b05
     "The number of currently active instance entries as
Packit 022b05
     defined for expResourceDeltaWildcardInstanceMaximum."
Packit 022b05
    ::= { expResource 3 }
Packit 022b05
Packit 022b05
expResourceDeltaWildcardInstancesHigh OBJECT-TYPE
Packit 022b05
    SYNTAX      Gauge32
Packit 022b05
    UNITS       "instances"
Packit 022b05
    MAX-ACCESS  read-only
Packit 022b05
    STATUS      current
Packit 022b05
    DESCRIPTION
Packit 022b05
     "The highest value of expResourceDeltaWildcardInstances
Packit 022b05
     that has occurred since initialization of the managed
Packit 022b05
     system."
Packit 022b05
    ::= { expResource 4 }
Packit 022b05
Packit 022b05
expResourceDeltaWildcardInstanceResourceLacks OBJECT-TYPE
Packit 022b05
    SYNTAX      Counter32
Packit 022b05
    UNITS       "instances"
Packit 022b05
    MAX-ACCESS  read-only
Packit 022b05
    STATUS      current
Packit 022b05
    DESCRIPTION
Packit 022b05
     "The number of times this system could not evaluate an
Packit 022b05
     expression because that would have created a value instance in
Packit 022b05
     excess of expResourceDeltaWildcardInstanceMaximum."
Packit 022b05
    ::= { expResource 5 }
Packit 022b05
Packit 022b05
--
Packit 022b05
Packit 022b05
-- Definition
Packit 022b05
--
Packit 022b05
-- Expression Definition Table
Packit 022b05
--
Packit 022b05
Packit 022b05
expExpressionTable OBJECT-TYPE
Packit 022b05
Packit 022b05
Packit 022b05
    SYNTAX      SEQUENCE OF ExpExpressionEntry
Packit 022b05
    MAX-ACCESS  not-accessible
Packit 022b05
    STATUS      current
Packit 022b05
    DESCRIPTION
Packit 022b05
     "A table of expression definitions."
Packit 022b05
    ::= { expDefine 1 }
Packit 022b05
Packit 022b05
expExpressionEntry OBJECT-TYPE
Packit 022b05
    SYNTAX      ExpExpressionEntry
Packit 022b05
    MAX-ACCESS  not-accessible
Packit 022b05
    STATUS      current
Packit 022b05
    DESCRIPTION
Packit 022b05
     "Information about a single expression.  New expressions
Packit 022b05
     can be created using expExpressionRowStatus.
Packit 022b05
Packit 022b05
     To create an expression first create the named entry in this
Packit 022b05
     table.  Then use expExpressionName to populate expObjectTable.
Packit 022b05
     For expression evaluation to succeed all related entries in
Packit 022b05
     expExpressionTable and expObjectTable must be 'active'.  If
Packit 022b05
     these conditions are not met the corresponding values in
Packit 022b05
     expValue simply are not instantiated.
Packit 022b05
Packit 022b05
     Deleting an entry deletes all related entries in expObjectTable
Packit 022b05
     and expErrorTable.
Packit 022b05
Packit 022b05
     Because of the relationships among the multiple tables for an
Packit 022b05
     expression (expExpressionTable, expObjectTable, and
Packit 022b05
     expValueTable) and the SNMP rules for independence in setting
Packit 022b05
     object values, it is necessary to do final error checking when
Packit 022b05
     an expression is evaluated, that is, when one of its instances
Packit 022b05
     in expValueTable is read or a delta interval expires.  Earlier
Packit 022b05
     checking need not be done and an implementation may not impose
Packit 022b05
     any ordering on the creation of objects related to an
Packit 022b05
     expression.
Packit 022b05
Packit 022b05
     To maintain security of MIB information, when creating a new row in
Packit 022b05
     this table, the managed system must record the security credentials
Packit 022b05
     of the requester.  These security credentials are the parameters
Packit 022b05
     necessary as inputs to isAccessAllowed from the Architecture for
Packit 022b05
Packit 022b05
     Describing SNMP Management Frameworks.  When obtaining the objects
Packit 022b05
     that make up the expression, the system must (conceptually) use
Packit 022b05
     isAccessAllowed to ensure that it does not violate security.
Packit 022b05
Packit 022b05
     The evaluation of the expression takes place under the
Packit 022b05
     security credentials of the creator of its expExpressionEntry.
Packit 022b05
Packit 022b05
     Values of read-write objects in this table may be changed
Packit 022b05
Packit 022b05
Packit 022b05
     at any time."
Packit 022b05
    INDEX       { expExpressionOwner, expExpressionName }
Packit 022b05
    ::= { expExpressionTable 1 }
Packit 022b05
Packit 022b05
ExpExpressionEntry ::= SEQUENCE {
Packit 022b05
    expExpressionOwner           SnmpAdminString,
Packit 022b05
    expExpressionName             SnmpAdminString,
Packit 022b05
    expExpression                OCTET STRING,
Packit 022b05
    expExpressionValueType       INTEGER,
Packit 022b05
    expExpressionComment         SnmpAdminString,
Packit 022b05
    expExpressionDeltaInterval   Integer32,
Packit 022b05
    expExpressionPrefix           OBJECT IDENTIFIER,
Packit 022b05
    expExpressionErrors          Counter32,
Packit 022b05
    expExpressionEntryStatus     RowStatus
Packit 022b05
}
Packit 022b05
Packit 022b05
expExpressionOwner OBJECT-TYPE
Packit 022b05
   SYNTAX      SnmpAdminString (SIZE(0..32))
Packit 022b05
   MAX-ACCESS  not-accessible
Packit 022b05
   STATUS      current
Packit 022b05
   DESCRIPTION
Packit 022b05
     "The owner of this entry. The exact semantics of this
Packit 022b05
     string are subject to the security policy defined by the
Packit 022b05
     security administrator."
Packit 022b05
    ::= { expExpressionEntry 1 }
Packit 022b05
Packit 022b05
expExpressionName OBJECT-TYPE
Packit 022b05
    SYNTAX      SnmpAdminString (SIZE (1..32))
Packit 022b05
    MAX-ACCESS  not-accessible
Packit 022b05
    STATUS      current
Packit 022b05
    DESCRIPTION
Packit 022b05
     "The name of the expression.  This is locally unique, within
Packit 022b05
     the scope of an expExpressionOwner."
Packit 022b05
    ::= { expExpressionEntry 2 }
Packit 022b05
Packit 022b05
expExpression OBJECT-TYPE
Packit 022b05
    SYNTAX      OCTET STRING (SIZE (1..1024))
Packit 022b05
    MAX-ACCESS  read-create
Packit 022b05
    STATUS      current
Packit 022b05
    DESCRIPTION
Packit 022b05
     "The expression to be evaluated.  This object is the same
Packit 022b05
     as a DisplayString (RFC 1903) except for its maximum length.
Packit 022b05
Packit 022b05
     Except for the variable names the expression is in ANSI C
Packit 022b05
     syntax.  Only the subset of ANSI C operators and functions
Packit 022b05
     listed here is allowed.
Packit 022b05
Packit 022b05
     Variables are expressed as a dollar sign ('$') and an
Packit 022b05
Packit 022b05
Packit 022b05
     integer that corresponds to an expObjectIndex.  An
Packit 022b05
     example of a valid expression is:
Packit 022b05
Packit 022b05
          ($1-$5)*100
Packit 022b05
Packit 022b05
     Expressions must not be recursive, that is although an expression
Packit 022b05
     may use the results of another expression, it must not contain
Packit 022b05
     any variable that is directly or indirectly a result of its own
Packit 022b05
     evaluation. The managed system must check for recursive
Packit 022b05
     expressions.
Packit 022b05
Packit 022b05
     The only allowed operators are:
Packit 022b05
Packit 022b05
          ( )
Packit 022b05
          - (unary)
Packit 022b05
          + - * / %
Packit 022b05
          & | ^ << >> ~
Packit 022b05
          ! && || == != > >= < <=
Packit 022b05
Packit 022b05
     Note the parentheses are included for parenthesizing the
Packit 022b05
     expression, not for casting data types.
Packit 022b05
Packit 022b05
     The only constant types defined are:
Packit 022b05
Packit 022b05
          int (32-bit signed)
Packit 022b05
          long (64-bit signed)
Packit 022b05
          unsigned int
Packit 022b05
          unsigned long
Packit 022b05
          hexadecimal
Packit 022b05
          character
Packit 022b05
          string
Packit 022b05
          oid
Packit 022b05
Packit 022b05
     The default type for a positive integer is int unless it is too
Packit 022b05
     large in which case it is long.
Packit 022b05
Packit 022b05
     All but oid are as defined for ANSI C.  Note that a
Packit 022b05
     hexadecimal constant may end up as a scalar or an array of
Packit 022b05
     8-bit integers.  A string constant is enclosed in double
Packit 022b05
     quotes and may contain back-slashed individual characters
Packit 022b05
     as in ANSI C.
Packit 022b05
Packit 022b05
     An oid constant comprises 32-bit, unsigned integers and at
Packit 022b05
     least one period, for example:
Packit 022b05
Packit 022b05
          0.
Packit 022b05
          .0
Packit 022b05
          1.3.6.1
Packit 022b05
Packit 022b05
Packit 022b05
     No additional leading or trailing subidentifiers are automatically
Packit 022b05
     added to an OID constant.  The constant is taken as expressed.
Packit 022b05
Packit 022b05
     Integer-typed objects are treated as 32- or 64-bit, signed
Packit 022b05
     or unsigned integers, as appropriate.  The results of
Packit 022b05
     mixing them are as for ANSI C, including the type of the
Packit 022b05
     result.  Note that a 32-bit value is thus promoted to 64 bits
Packit 022b05
     only in an operation with a 64-bit value.  There is no
Packit 022b05
     provision for larger values to handle overflow.
Packit 022b05
Packit 022b05
     Relative to SNMP data types, a resulting value becomes
Packit 022b05
     unsigned when calculating it uses any unsigned value,
Packit 022b05
     including a counter.  To force the final value to be of
Packit 022b05
     data type counter the expression must explicitly use the
Packit 022b05
     counter32() or counter64() function (defined below).
Packit 022b05
Packit 022b05
     OCTET STRINGS and OBJECT IDENTIFIERs are treated as
Packit 022b05
     one-dimensioned arrays of unsigned 8-bit integers and
Packit 022b05
     unsigned 32-bit integers, respectively.
Packit 022b05
Packit 022b05
     IpAddresses are treated as 32-bit, unsigned integers in
Packit 022b05
     network byte order, that is, the hex version of 255.0.0.0 is
Packit 022b05
     0xff000000.
Packit 022b05
Packit 022b05
     Conditional expressions result in a 32-bit, unsigned integer
Packit 022b05
     of value 0 for false or 1 for true. When an arbitrary value
Packit 022b05
     is used as a boolean 0 is false and non-zero is true.
Packit 022b05
Packit 022b05
     Rules for the resulting data type from an operation, based on
Packit 022b05
     the operator:
Packit 022b05
Packit 022b05
     For << and >> the result is the same as the left hand operand.
Packit 022b05
Packit 022b05
     For &&, ||, ==, !=, <, <=, >, and >= the result is always
Packit 022b05
     Unsigned32.
Packit 022b05
Packit 022b05
     For unary - the result is always Integer32.
Packit 022b05
Packit 022b05
     For +, -, *, /, %, &, |, and ^ the result is promoted according
Packit 022b05
     to the following rules, in order from most to least preferred:
Packit 022b05
Packit 022b05
          If left hand and right hand operands are the same type,
Packit 022b05
          use that.
Packit 022b05
Packit 022b05
          If either side is Counter64, use that.
Packit 022b05
Packit 022b05
          If either side is IpAddress, use that.
Packit 022b05
Packit 022b05
Packit 022b05
Packit 022b05
          If either side is TimeTicks, use that.
Packit 022b05
Packit 022b05
          If either side is Counter32, use that.
Packit 022b05
Packit 022b05
          Otherwise use Unsigned32.
Packit 022b05
Packit 022b05
     The following rules say what operators apply with what data
Packit 022b05
     types.  Any combination not explicitly defined does not work.
Packit 022b05
Packit 022b05
     For all operators any of the following can be the left hand or
Packit 022b05
     right hand operand: Integer32, Counter32, Unsigned32, Counter64.
Packit 022b05
Packit 022b05
     The operators +, -, *, /, %, <, <=, >, and >= work with
Packit 022b05
     TimeTicks.
Packit 022b05
Packit 022b05
     The operators &, |, and ^ work with IpAddress.
Packit 022b05
Packit 022b05
     The operators << and >> work with IpAddress but only as the
Packit 022b05
     left hand operand.
Packit 022b05
Packit 022b05
     The + operator performs a concatenation of two OCTET STRINGs or
Packit 022b05
     two OBJECT IDENTIFIERs.
Packit 022b05
Packit 022b05
     The operators &, | perform bitwise operations on OCTET STRINGs.
Packit 022b05
     If the OCTET STRING happens to be a DisplayString the results
Packit 022b05
     may be meaningless, but the agent system does not check this as
Packit 022b05
     some such systems do not have this information.
Packit 022b05
Packit 022b05
     The operators << and >> perform bitwise operations on OCTET
Packit 022b05
     STRINGs appearing as the left hand operand.
Packit 022b05
Packit 022b05
     The only functions defined are:
Packit 022b05
Packit 022b05
          counter32
Packit 022b05
          counter64
Packit 022b05
          arraySection
Packit 022b05
          stringBegins
Packit 022b05
          stringEnds
Packit 022b05
          stringContains
Packit 022b05
          oidBegins
Packit 022b05
          oidEnds
Packit 022b05
          oidContains
Packit 022b05
          average
Packit 022b05
          maximum
Packit 022b05
          minimum
Packit 022b05
          sum
Packit 022b05
          exists
Packit 022b05
Packit 022b05
Packit 022b05
Packit 022b05
     The following function definitions indicate their parameters by
Packit 022b05
     naming the data type of the parameter in the parameter's position
Packit 022b05
     in the parameter list.  The parameter must be of the type indicated
Packit 022b05
     and generally may be a constant, a MIB object, a function, or an
Packit 022b05
     expression.
Packit 022b05
Packit 022b05
     counter32(integer) - wrapped around an integer value counter32
Packit 022b05
     forces Counter32 as a data type.
Packit 022b05
Packit 022b05
     counter64(integer) - similar to counter32 except that the
Packit 022b05
     resulting data type is 'counter64'.
Packit 022b05
Packit 022b05
     arraySection(array, integer, integer) - selects a piece of an
Packit 022b05
     array (i.e. part of an OCTET STRING or OBJECT IDENTIFIER).  The
Packit 022b05
     integer arguments are in the range 0 to 4,294,967,295.  The
Packit 022b05
     first is an initial array index (one-dimensioned) and the second
Packit 022b05
     is an ending array index.  A value of 0 indicates first or last
Packit 022b05
     element, respectively.  If the first element is larger than the
Packit 022b05
     array length the result is 0 length.  If the second integer is
Packit 022b05
     less than or equal to the first, the result is 0 length.  If the
Packit 022b05
     second is larger than the array length it indicates last
Packit 022b05
     element.
Packit 022b05
Packit 022b05
     stringBegins/Ends/Contains(octetString, octetString) - looks for
Packit 022b05
     the second string (which can be a string constant) in the first
Packit 022b05
     and returns the one-dimensioned arrayindex where the match began.
Packit 022b05
     A return value of 0 indicates no match (i.e. boolean false).
Packit 022b05
Packit 022b05
     oidBegins/Ends/Contains(oid, oid) - looks for the second OID
Packit 022b05
     (which can be an OID constant) in the first and returns the
Packit 022b05
     the one-dimensioned index where the match began. A return value
Packit 022b05
     of 0 indicates no match (i.e. boolean false).
Packit 022b05
Packit 022b05
     average/maximum/minimum(integer) - calculates the average,
Packit 022b05
     minimum, or maximum value of the integer valued object over
Packit 022b05
     multiple sample times.  If the object disappears for any
Packit 022b05
     sample period, the accumulation and the resulting value object
Packit 022b05
     cease to exist until the object reappears at which point the
Packit 022b05
     calculation starts over.
Packit 022b05
Packit 022b05
     sum(integerObject*) - sums all available values of the
Packit 022b05
     wildcarded integer object, resulting in an integer scalar.  Must
Packit 022b05
     be used with caution as it wraps on overflow with no
Packit 022b05
     notification.
Packit 022b05
Packit 022b05
     exists(anyTypeObject) - verifies the object instance exists. A
Packit 022b05
     return value of 0 indicates NoSuchInstance (i.e. boolean
Packit 022b05
     false)."
Packit 022b05
Packit 022b05
Packit 022b05
    ::= { expExpressionEntry 3 }
Packit 022b05
Packit 022b05
expExpressionValueType OBJECT-TYPE
Packit 022b05
    SYNTAX      INTEGER { counter32(1), unsigned32(2), timeTicks(3),
Packit 022b05
                 integer32(4), ipAddress(5), octetString(6),
Packit 022b05
                 objectId(7), counter64(8) }
Packit 022b05
    MAX-ACCESS  read-create
Packit 022b05
    STATUS      current
Packit 022b05
    DESCRIPTION
Packit 022b05
     "The type of the expression value.  One and only one of the
Packit 022b05
     value objects in expValueTable will be instantiated to match
Packit 022b05
     this type.
Packit 022b05
Packit 022b05
     If the result of the expression can not be made into this type,
Packit 022b05
     an invalidOperandType error will occur."
Packit 022b05
    DEFVAL      { counter32 }
Packit 022b05
    ::= { expExpressionEntry 4 }
Packit 022b05
Packit 022b05
expExpressionComment OBJECT-TYPE
Packit 022b05
    SYNTAX      SnmpAdminString
Packit 022b05
    MAX-ACCESS  read-create
Packit 022b05
    STATUS      current
Packit 022b05
    DESCRIPTION
Packit 022b05
     "A comment to explain the use or meaning of the expression."
Packit 022b05
    DEFVAL      { ''H }
Packit 022b05
    ::= { expExpressionEntry 5 }
Packit 022b05
Packit 022b05
expExpressionDeltaInterval OBJECT-TYPE
Packit 022b05
    SYNTAX      Integer32 (0..86400)
Packit 022b05
    UNITS       "seconds"
Packit 022b05
    MAX-ACCESS  read-create
Packit 022b05
    STATUS      current
Packit 022b05
    DESCRIPTION
Packit 022b05
     "Sampling interval for objects in this expression with
Packit 022b05
     expObjectSampleType 'deltaValue'.
Packit 022b05
Packit 022b05
     This object has no effect if the the expression has no
Packit 022b05
     deltaValue objects.
Packit 022b05
Packit 022b05
     A value of 0 indicates no automated sampling.  In this case
Packit 022b05
     the delta is the difference from the last time the expression
Packit 022b05
     was evaluated.  Note that this is subject to unpredictable
Packit 022b05
     delta times in the face of retries or multiple managers.
Packit 022b05
Packit 022b05
     A value greater than zero is the number of seconds between
Packit 022b05
     automated samples.
Packit 022b05
Packit 022b05
     Until the delta interval has expired once the delta for the
Packit 022b05
Packit 022b05
Packit 022b05
     object is effectively not instantiated and evaluating
Packit 022b05
     the expression has results as if the object itself were not
Packit 022b05
     instantiated.
Packit 022b05
Packit 022b05
     Note that delta values potentially consume large amounts of
Packit 022b05
     system CPU and memory.  Delta state and processing must
Packit 022b05
     continue constantly even if the expression is not being used.
Packit 022b05
     That is, the expression is being evaluated every delta interval,
Packit 022b05
     even if no application is reading those values.  For wildcarded
Packit 022b05
     objects this can be substantial overhead.
Packit 022b05
Packit 022b05
     Note that delta intervals, external expression value sampling
Packit 022b05
     intervals and delta intervals for expressions within other
Packit 022b05
     expressions can have unusual interactions as they are impossible
Packit 022b05
     to synchronize accurately.  In general one interval embedded
Packit 022b05
     below another must be enough shorter that the higher sample
Packit 022b05
     sees relatively smooth, predictable behavior.  So, for example,
Packit 022b05
     to avoid the higher level getting the same sample twice, the
Packit 022b05
     lower level should sample at least twice as fast as the higher
Packit 022b05
     level does."
Packit 022b05
    DEFVAL      { 0 }
Packit 022b05
    ::= { expExpressionEntry 6 }
Packit 022b05
Packit 022b05
expExpressionPrefix OBJECT-TYPE
Packit 022b05
    SYNTAX      OBJECT IDENTIFIER
Packit 022b05
    MAX-ACCESS  read-only
Packit 022b05
    STATUS      current
Packit 022b05
    DESCRIPTION
Packit 022b05
     "An object prefix to assist an application in determining
Packit 022b05
     the instance indexing to use in expValueTable, relieving the
Packit 022b05
     application of the need to scan the expObjectTable to
Packit 022b05
     determine such a prefix.
Packit 022b05
Packit 022b05
     See expObjectTable for information on wildcarded objects.
Packit 022b05
Packit 022b05
     If the expValueInstance portion of the value OID may
Packit 022b05
     be treated as a scalar (that is, normally, 0) the value of
Packit 022b05
     expExpressionPrefix is zero length, that is, no OID at all.
Packit 022b05
     Note that zero length implies a null OID, not the OID 0.0.
Packit 022b05
Packit 022b05
     Otherwise, the value of expExpressionPrefix is the expObjectID
Packit 022b05
     value of any one of the wildcarded objects for the expression.
Packit 022b05
     This is sufficient, as the remainder, that is, the instance
Packit 022b05
     fragment relevant to instancing the values, must be the same for
Packit 022b05
     all wildcarded objects in the expression."
Packit 022b05
    ::= { expExpressionEntry 7 }
Packit 022b05
Packit 022b05
expExpressionErrors OBJECT-TYPE
Packit 022b05
Packit 022b05
Packit 022b05
    SYNTAX      Counter32
Packit 022b05
    MAX-ACCESS  read-only
Packit 022b05
    STATUS      current
Packit 022b05
    DESCRIPTION
Packit 022b05
     "The number of errors encountered while evaluating this
Packit 022b05
     expression.
Packit 022b05
Packit 022b05
     Note that an object in the expression not being accessible,
Packit 022b05
     is not considered an error. An example of an inaccessible
Packit 022b05
     object is when the object is excluded from the view of the
Packit 022b05
     user whose security credentials are used in the expression
Packit 022b05
     evaluation. In such cases, it is a legitimate condition
Packit 022b05
     that causes the corresponding expression value not to be
Packit 022b05
     instantiated."
Packit 022b05
    ::= { expExpressionEntry 8 }
Packit 022b05
Packit 022b05
expExpressionEntryStatus OBJECT-TYPE
Packit 022b05
    SYNTAX      RowStatus
Packit 022b05
    MAX-ACCESS  read-create
Packit 022b05
    STATUS      current
Packit 022b05
    DESCRIPTION
Packit 022b05
     "The control that allows creation and deletion of entries."
Packit 022b05
    ::= { expExpressionEntry 9 }
Packit 022b05
Packit 022b05
--
Packit 022b05
-- Expression Error Table
Packit 022b05
--
Packit 022b05
Packit 022b05
expErrorTable OBJECT-TYPE
Packit 022b05
    SYNTAX      SEQUENCE OF ExpErrorEntry
Packit 022b05
    MAX-ACCESS  not-accessible
Packit 022b05
    STATUS      current
Packit 022b05
    DESCRIPTION
Packit 022b05
     "A table of expression errors."
Packit 022b05
    ::= { expDefine 2 }
Packit 022b05
Packit 022b05
expErrorEntry OBJECT-TYPE
Packit 022b05
    SYNTAX      ExpErrorEntry
Packit 022b05
    MAX-ACCESS  not-accessible
Packit 022b05
    STATUS      current
Packit 022b05
    DESCRIPTION
Packit 022b05
     "Information about errors in processing an expression.
Packit 022b05
Packit 022b05
     Entries appear in this table only when there is a matching
Packit 022b05
     expExpressionEntry and then only when there has been an
Packit 022b05
     error for that expression as reflected by the error codes
Packit 022b05
     defined for expErrorCode."
Packit 022b05
    INDEX       { expExpressionOwner, expExpressionName }
Packit 022b05
Packit 022b05
Packit 022b05
    ::= { expErrorTable 1 }
Packit 022b05
Packit 022b05
ExpErrorEntry ::= SEQUENCE {
Packit 022b05
    expErrorTime       TimeStamp,
Packit 022b05
    expErrorIndex      Integer32,
Packit 022b05
    expErrorCode       INTEGER,
Packit 022b05
    expErrorInstance   OBJECT IDENTIFIER
Packit 022b05
}
Packit 022b05
Packit 022b05
expErrorTime OBJECT-TYPE
Packit 022b05
    SYNTAX      TimeStamp
Packit 022b05
    MAX-ACCESS  read-only
Packit 022b05
    STATUS      current
Packit 022b05
    DESCRIPTION
Packit 022b05
     "The value of sysUpTime the last time an error caused a
Packit 022b05
     failure to evaluate this expression."
Packit 022b05
    ::= { expErrorEntry 1 }
Packit 022b05
Packit 022b05
expErrorIndex OBJECT-TYPE
Packit 022b05
    SYNTAX      Integer32
Packit 022b05
    MAX-ACCESS  read-only
Packit 022b05
    STATUS      current
Packit 022b05
    DESCRIPTION
Packit 022b05
     "The one-dimensioned character array index into
Packit 022b05
     expExpression for where the error occurred.  The value
Packit 022b05
     zero indicates irrelevance."
Packit 022b05
    ::= { expErrorEntry 2 }
Packit 022b05
Packit 022b05
expErrorCode OBJECT-TYPE
Packit 022b05
    SYNTAX      INTEGER {
Packit 022b05
          invalidSyntax(1),
Packit 022b05
          undefinedObjectIndex(2),
Packit 022b05
          unrecognizedOperator(3),
Packit 022b05
          unrecognizedFunction(4),
Packit 022b05
          invalidOperandType(5),
Packit 022b05
          unmatchedParenthesis(6),
Packit 022b05
          tooManyWildcardValues(7),
Packit 022b05
          recursion(8),
Packit 022b05
          deltaTooShort(9),
Packit 022b05
          resourceUnavailable(10),
Packit 022b05
          divideByZero(11)
Packit 022b05
          }
Packit 022b05
    MAX-ACCESS  read-only
Packit 022b05
    STATUS      current
Packit 022b05
    DESCRIPTION
Packit 022b05
     "The error that occurred.  In the following explanations the
Packit 022b05
     expected timing of the error is in parentheses.  'S' means
Packit 022b05
     the error occurs on a Set request.  'E' means the error
Packit 022b05
Packit 022b05
Packit 022b05
     occurs on the attempt to evaluate the expression either due to
Packit 022b05
     Get from expValueTable or in ongoing delta processing.
Packit 022b05
Packit 022b05
     invalidSyntax       the value sent for expExpression is not
Packit 022b05
                    valid Expression MIB expression syntax
Packit 022b05
                    (S)
Packit 022b05
     undefinedObjectIndex     an object reference ($n) in
Packit 022b05
                    expExpression does not have a matching
Packit 022b05
                    instance in expObjectTable (E)
Packit 022b05
     unrecognizedOperator     the value sent for expExpression held an
Packit 022b05
                    unrecognized operator (S)
Packit 022b05
     unrecognizedFunction     the value sent for expExpression held an
Packit 022b05
                    unrecognized function name (S)
Packit 022b05
     invalidOperandType  an operand in expExpression is not the
Packit 022b05
                    right type for the associated operator
Packit 022b05
                    or result (SE)
Packit 022b05
     unmatchedParenthesis     the value sent for expExpression is not
Packit 022b05
                    correctly parenthesized (S)
Packit 022b05
     tooManyWildcardValues    evaluating the expression exceeded the
Packit 022b05
                    limit set by
Packit 022b05
                    expResourceDeltaWildcardInstanceMaximum
Packit 022b05
                    (E)
Packit 022b05
     recursion      through some chain of embedded
Packit 022b05
                    expressions the expression invokes itself
Packit 022b05
                    (E)
Packit 022b05
     deltaTooShort       the delta for the next evaluation passed
Packit 022b05
                    before the system could evaluate the
Packit 022b05
                    present sample (E)
Packit 022b05
     resourceUnavailable some resource, typically dynamic memory,
Packit 022b05
                    was unavailable (SE)
Packit 022b05
     divideByZero        an attempt to divide by zero occurred
Packit 022b05
                    (E)
Packit 022b05
Packit 022b05
     For the errors that occur when the attempt is made to set
Packit 022b05
     expExpression Set request fails with the SNMP error code
Packit 022b05
     'wrongValue'.  Such failures refer to the most recent failure to
Packit 022b05
     Set expExpression, not to the present value of expExpression
Packit 022b05
     which must be either unset or syntactically correct.
Packit 022b05
Packit 022b05
     Errors that occur during evaluation for a Get* operation return
Packit 022b05
     the SNMP error code 'genErr' except for 'tooManyWildcardValues'
Packit 022b05
     and 'resourceUnavailable' which return the SNMP error code
Packit 022b05
     'resourceUnavailable'."
Packit 022b05
    ::= { expErrorEntry 3 }
Packit 022b05
Packit 022b05
expErrorInstance OBJECT-TYPE
Packit 022b05
    SYNTAX      OBJECT IDENTIFIER
Packit 022b05
    MAX-ACCESS  read-only
Packit 022b05
Packit 022b05
Packit 022b05
    STATUS      current
Packit 022b05
    DESCRIPTION
Packit 022b05
     "The expValueInstance being evaluated when the error
Packit 022b05
     occurred.  A zero-length indicates irrelevance."
Packit 022b05
    ::= { expErrorEntry 4 }
Packit 022b05
Packit 022b05
--
Packit 022b05
-- Object Table
Packit 022b05
--
Packit 022b05
Packit 022b05
expObjectTable OBJECT-TYPE
Packit 022b05
    SYNTAX      SEQUENCE OF ExpObjectEntry
Packit 022b05
    MAX-ACCESS  not-accessible
Packit 022b05
    STATUS      current
Packit 022b05
    DESCRIPTION
Packit 022b05
     "A table of object definitions for each expExpression.
Packit 022b05
Packit 022b05
     Wildcarding instance IDs:
Packit 022b05
Packit 022b05
     It is legal to omit all or part of the instance portion for
Packit 022b05
     some or all of the objects in an expression. (See the
Packit 022b05
     DESCRIPTION of expObjectID for details.  However, note that
Packit 022b05
     if more than one object in the same expression is wildcarded
Packit 022b05
     in this way, they all must be objects where that portion of
Packit 022b05
     the instance is the same.  In other words, all objects may be
Packit 022b05
     in the same SEQUENCE or in different SEQUENCEs but with the
Packit 022b05
     same semantic index value (e.g., a value of ifIndex)
Packit 022b05
     for the wildcarded portion."
Packit 022b05
    ::= { expDefine 3 }
Packit 022b05
Packit 022b05
expObjectEntry OBJECT-TYPE
Packit 022b05
    SYNTAX      ExpObjectEntry
Packit 022b05
    MAX-ACCESS  not-accessible
Packit 022b05
    STATUS      current
Packit 022b05
    DESCRIPTION
Packit 022b05
     "Information about an object.  An application uses
Packit 022b05
     expObjectEntryStatus to create entries in this table while
Packit 022b05
     in the process of defining an expression.
Packit 022b05
Packit 022b05
     Values of read-create objects in this table may be
Packit 022b05
     changed at any time."
Packit 022b05
    INDEX       { expExpressionOwner, expExpressionName, expObjectIndex }
Packit 022b05
    ::= { expObjectTable 1 }
Packit 022b05
Packit 022b05
ExpObjectEntry ::= SEQUENCE {
Packit 022b05
    expObjectIndex                     Unsigned32,
Packit 022b05
    expObjectID                        OBJECT IDENTIFIER,
Packit 022b05
    expObjectIDWildcard                TruthValue,
Packit 022b05
Packit 022b05
Packit 022b05
    expObjectSampleType                INTEGER,
Packit 022b05
    expObjectDeltaDiscontinuityID      OBJECT IDENTIFIER,
Packit 022b05
    expObjectDiscontinuityIDWildcard   TruthValue,
Packit 022b05
    expObjectDiscontinuityIDType       INTEGER,
Packit 022b05
    expObjectConditional               OBJECT IDENTIFIER,
Packit 022b05
    expObjectConditionalWildcard       TruthValue,
Packit 022b05
    expObjectEntryStatus               RowStatus
Packit 022b05
}
Packit 022b05
Packit 022b05
expObjectIndex OBJECT-TYPE
Packit 022b05
    SYNTAX      Unsigned32 (1..4294967295)
Packit 022b05
    MAX-ACCESS  not-accessible
Packit 022b05
    STATUS      current
Packit 022b05
    DESCRIPTION
Packit 022b05
     "Within an expression, a unique, numeric identification for an
Packit 022b05
     object.  Prefixed with a dollar sign ('$') this is used to
Packit 022b05
     reference the object in the corresponding expExpression."
Packit 022b05
    ::= { expObjectEntry 1 }
Packit 022b05
Packit 022b05
expObjectID OBJECT-TYPE
Packit 022b05
    SYNTAX      OBJECT IDENTIFIER
Packit 022b05
    MAX-ACCESS  read-create
Packit 022b05
    STATUS      current
Packit 022b05
    DESCRIPTION
Packit 022b05
     "The OBJECT IDENTIFIER (OID) of this object.  The OID may be
Packit 022b05
     fully qualified, meaning it includes a complete instance
Packit 022b05
     identifier part (e.g., ifInOctets.1 or sysUpTime.0), or it
Packit 022b05
     may not be fully qualified, meaning it may lack all or part
Packit 022b05
     of the instance identifier.  If the expObjectID is not fully
Packit 022b05
     qualified, then expObjectWildcard must be set to true(1).
Packit 022b05
     The value of the expression will be multiple
Packit 022b05
     values, as if done for a GetNext sweep of the object.
Packit 022b05
Packit 022b05
     An object here may itself be the result of an expression but
Packit 022b05
     recursion is not allowed.
Packit 022b05
Packit 022b05
     NOTE:  The simplest implementations of this MIB may not allow
Packit 022b05
     wildcards."
Packit 022b05
    ::= { expObjectEntry 2 }
Packit 022b05
Packit 022b05
expObjectIDWildcard  OBJECT-TYPE
Packit 022b05
    SYNTAX      TruthValue
Packit 022b05
    MAX-ACCESS  read-create
Packit 022b05
    STATUS      current
Packit 022b05
    DESCRIPTION
Packit 022b05
        "A true value indicates the expObjecID of this row is a wildcard
Packit 022b05
        object. False indicates that expObjectID is fully instanced.
Packit 022b05
        If all expObjectWildcard values for a given expression are FALSE,
Packit 022b05
Packit 022b05
Packit 022b05
        expExpressionPrefix will reflect a scalar object (i.e. will
Packit 022b05
        be 0.0).
Packit 022b05
Packit 022b05
        NOTE:  The simplest implementations of this MIB may not allow
Packit 022b05
        wildcards."
Packit 022b05
    DEFVAL      { false }
Packit 022b05
    ::= { expObjectEntry 3 }
Packit 022b05
Packit 022b05
expObjectSampleType OBJECT-TYPE
Packit 022b05
    SYNTAX      INTEGER { absoluteValue(1), deltaValue(2),
Packit 022b05
                          changedValue(3) }
Packit 022b05
    MAX-ACCESS  read-create
Packit 022b05
    STATUS      current
Packit 022b05
    DESCRIPTION
Packit 022b05
     "The method of sampling the selected variable.
Packit 022b05
Packit 022b05
     An 'absoluteValue' is simply the present value of the object.
Packit 022b05
Packit 022b05
     A 'deltaValue' is the present value minus the previous value,
Packit 022b05
     which was sampled expExpressionDeltaInterval seconds ago.
Packit 022b05
     This is intended primarily for use with SNMP counters, which are
Packit 022b05
     meaningless as an 'absoluteValue', but may be used with any
Packit 022b05
     integer-based value.
Packit 022b05
Packit 022b05
     A 'changedValue' is a boolean for whether the present value is
Packit 022b05
     different from the previous value.  It is applicable to any data
Packit 022b05
     type and results in an Unsigned32 with value 1 if the object's
Packit 022b05
     value is changed and 0 if not.  In all other respects it is as a
Packit 022b05
     'deltaValue' and all statements and operation regarding delta
Packit 022b05
     values apply to changed values.
Packit 022b05
Packit 022b05
     When an expression contains both delta and absolute values
Packit 022b05
     the absolute values are obtained at the end of the delta
Packit 022b05
     period."
Packit 022b05
    DEFVAL      { absoluteValue }
Packit 022b05
    ::= { expObjectEntry 4 }
Packit 022b05
Packit 022b05
sysUpTimeInstance OBJECT IDENTIFIER ::= { sysUpTime 0 }
Packit 022b05
Packit 022b05
expObjectDeltaDiscontinuityID OBJECT-TYPE
Packit 022b05
    SYNTAX      OBJECT IDENTIFIER
Packit 022b05
    MAX-ACCESS  read-create
Packit 022b05
    STATUS      current
Packit 022b05
    DESCRIPTION
Packit 022b05
     "The OBJECT IDENTIFIER (OID) of a TimeTicks, TimeStamp, or
Packit 022b05
     DateAndTime object that indicates a discontinuity in the value
Packit 022b05
     at expObjectID.
Packit 022b05
Packit 022b05
Packit 022b05
Packit 022b05
     This object is instantiated only if expObjectSampleType is
Packit 022b05
     'deltaValue' or 'changedValue'.
Packit 022b05
Packit 022b05
     The OID may be for a leaf object (e.g. sysUpTime.0) or may
Packit 022b05
     be wildcarded to match expObjectID.
Packit 022b05
Packit 022b05
     This object supports normal checking for a discontinuity in a
Packit 022b05
     counter.  Note that if this object does not point to sysUpTime
Packit 022b05
     discontinuity checking must still check sysUpTime for an overall
Packit 022b05
     discontinuity.
Packit 022b05
Packit 022b05
     If the object identified is not accessible no discontinuity
Packit 022b05
     check will be made."
Packit 022b05
    DEFVAL      { sysUpTimeInstance }
Packit 022b05
    ::= { expObjectEntry 5 }
Packit 022b05
Packit 022b05
expObjectDiscontinuityIDWildcard OBJECT-TYPE
Packit 022b05
     SYNTAX      TruthValue
Packit 022b05
     MAX-ACCESS  read-create
Packit 022b05
     STATUS      current
Packit 022b05
     DESCRIPTION
Packit 022b05
     "A true value indicates the expObjectDeltaDiscontinuityID of
Packit 022b05
     this row is a wildcard object.  False indicates that
Packit 022b05
     expObjectDeltaDiscontinuityID is fully instanced.
Packit 022b05
Packit 022b05
     This object is instantiated only if expObjectSampleType is
Packit 022b05
     'deltaValue' or 'changedValue'.
Packit 022b05
Packit 022b05
     NOTE:  The simplest implementations of this MIB may not allow
Packit 022b05
     wildcards."
Packit 022b05
    DEFVAL      { false }
Packit 022b05
     ::= { expObjectEntry 6 }
Packit 022b05
Packit 022b05
expObjectDiscontinuityIDType OBJECT-TYPE
Packit 022b05
     SYNTAX      INTEGER { timeTicks(1), timeStamp(2), dateAndTime(3) }
Packit 022b05
     MAX-ACCESS  read-create
Packit 022b05
     STATUS      current
Packit 022b05
     DESCRIPTION
Packit 022b05
     "The value 'timeTicks' indicates the expObjectDeltaDiscontinuityID
Packit 022b05
     of this row is of syntax TimeTicks.  The value 'timeStamp' indicates
Packit 022b05
     syntax TimeStamp.  The value 'dateAndTime indicates syntax
Packit 022b05
     DateAndTime.
Packit 022b05
Packit 022b05
     This object is instantiated only if expObjectSampleType is
Packit 022b05
     'deltaValue' or 'changedValue'."
Packit 022b05
    DEFVAL      { timeTicks }
Packit 022b05
     ::= { expObjectEntry 7 }
Packit 022b05
Packit 022b05
Packit 022b05
Packit 022b05
expObjectConditional OBJECT-TYPE
Packit 022b05
    SYNTAX      OBJECT IDENTIFIER
Packit 022b05
    MAX-ACCESS  read-create
Packit 022b05
    STATUS      current
Packit 022b05
    DESCRIPTION
Packit 022b05
     "The OBJECT IDENTIFIER (OID) of an object that overrides
Packit 022b05
     whether the instance of expObjectID is to be considered
Packit 022b05
     usable.  If the value of the object at expObjectConditional
Packit 022b05
     is 0 or not instantiated, the object at expObjectID is
Packit 022b05
     treated as if it is not instantiated.  In other words,
Packit 022b05
     expObjectConditional is a filter that controls whether or
Packit 022b05
     not to use the value at expObjectID.
Packit 022b05
Packit 022b05
     The OID may be for a leaf object (e.g. sysObjectID.0) or may be
Packit 022b05
     wildcarded to match expObjectID.  If expObject is wildcarded and
Packit 022b05
     expObjectID in the same row is not, the wild portion of
Packit 022b05
     expObjectConditional must match the wildcarding of the rest of
Packit 022b05
     the expression.  If no object in the expression is wildcarded
Packit 022b05
     but expObjectConditional is, use the lexically first instance
Packit 022b05
     (if any) of expObjectConditional.
Packit 022b05
Packit 022b05
     If the value of expObjectConditional is 0.0 operation is
Packit 022b05
     as if the value pointed to by expObjectConditional is a
Packit 022b05
     non-zero (true) value.
Packit 022b05
Packit 022b05
     Note that expObjectConditional can not trivially use an object
Packit 022b05
     of syntax TruthValue, since the underlying value is not 0 or 1."
Packit 022b05
    DEFVAL      { zeroDotZero }
Packit 022b05
    ::= { expObjectEntry 8 }
Packit 022b05
Packit 022b05
 expObjectConditionalWildcard  OBJECT-TYPE
Packit 022b05
     SYNTAX      TruthValue
Packit 022b05
     MAX-ACCESS  read-create
Packit 022b05
     STATUS      current
Packit 022b05
     DESCRIPTION
Packit 022b05
Packit 022b05
     "A true value indicates the expObjectConditional of this row is
Packit 022b05
     a wildcard object. False indicates that expObjectConditional is
Packit 022b05
     fully instanced.
Packit 022b05
Packit 022b05
     NOTE: The simplest implementations of this MIB may not allow
Packit 022b05
     wildcards."
Packit 022b05
    DEFVAL      { false }
Packit 022b05
     ::= { expObjectEntry 9 }
Packit 022b05
Packit 022b05
expObjectEntryStatus OBJECT-TYPE
Packit 022b05
    SYNTAX      RowStatus
Packit 022b05
    MAX-ACCESS  read-create
Packit 022b05
Packit 022b05
Packit 022b05
    STATUS      current
Packit 022b05
    DESCRIPTION
Packit 022b05
     "The control that allows creation/deletion of entries.
Packit 022b05
Packit 022b05
     Objects in this table may be changed while
Packit 022b05
     expObjectEntryStatus is in any state."
Packit 022b05
    ::= { expObjectEntry 10 }
Packit 022b05
Packit 022b05
--
Packit 022b05
-- Expression Value Table
Packit 022b05
--
Packit 022b05
Packit 022b05
expValueTable OBJECT-TYPE
Packit 022b05
    SYNTAX      SEQUENCE OF ExpValueEntry
Packit 022b05
    MAX-ACCESS  not-accessible
Packit 022b05
    STATUS      current
Packit 022b05
    DESCRIPTION
Packit 022b05
     "A table of values from evaluated expressions."
Packit 022b05
    ::= { expValue 1 }
Packit 022b05
Packit 022b05
expValueEntry OBJECT-TYPE
Packit 022b05
    SYNTAX      ExpValueEntry
Packit 022b05
    MAX-ACCESS  not-accessible
Packit 022b05
    STATUS      current
Packit 022b05
    DESCRIPTION
Packit 022b05
     "A single value from an evaluated expression.  For a given
Packit 022b05
     instance, only one 'Val' object in the conceptual row will be
Packit 022b05
     instantiated, that is, the one with the appropriate type for
Packit 022b05
     the value.  For values that contain no objects of
Packit 022b05
     expObjectSampleType 'deltaValue' or 'changedValue', reading a
Packit 022b05
     value from the table causes the evaluation of the expression
Packit 022b05
     for that value.  For those that contain a 'deltaValue' or
Packit 022b05
     'changedValue' the value read is as of the last sampling
Packit 022b05
     interval.
Packit 022b05
Packit 022b05
     If in the attempt to evaluate the expression one or more
Packit 022b05
     of the necessary objects is not available, the corresponding
Packit 022b05
     entry in this table is effectively not instantiated.
Packit 022b05
Packit 022b05
     To maintain security of MIB information, when creating a new
Packit 022b05
     row in this table, the managed system must record the security
Packit 022b05
     credentials of the requester.  These security credentials are
Packit 022b05
     the parameters necessary as inputs to isAccessAllowed from
Packit 022b05
     [RFC2571]. When obtaining the objects that make up the
Packit 022b05
     expression, the system must (conceptually) use isAccessAllowed to
Packit 022b05
     ensure that it does not violate security.
Packit 022b05
Packit 022b05
     The evaluation of that expression takes place under the
Packit 022b05
Packit 022b05
Packit 022b05
     security credentials of the creator of its expExpressionEntry.
Packit 022b05
Packit 022b05
     To maintain security of MIB information, expression evaluation must
Packit 022b05
     take place using security credentials for the implied Gets of the
Packit 022b05
     objects in the expression as inputs (conceptually) to
Packit 022b05
     isAccessAllowed from the Architecture for Describing SNMP
Packit 022b05
     Management Frameworks.  These are the security credentials of the
Packit 022b05
     creator of the corresponding expExpressionEntry."
Packit 022b05
    INDEX       { expExpressionOwner, expExpressionName,
Packit 022b05
                  IMPLIED expValueInstance }
Packit 022b05
    ::= { expValueTable 1 }
Packit 022b05
Packit 022b05
ExpValueEntry ::= SEQUENCE {
Packit 022b05
    expValueInstance          OBJECT IDENTIFIER,
Packit 022b05
    expValueCounter32Val      Counter32,
Packit 022b05
    expValueUnsigned32Val     Unsigned32,
Packit 022b05
    expValueTimeTicksVal      TimeTicks,
Packit 022b05
    expValueInteger32Val      Integer32,
Packit 022b05
    expValueIpAddressVal      IpAddress,
Packit 022b05
    expValueOctetStringVal    OCTET STRING,
Packit 022b05
    expValueOidVal            OBJECT IDENTIFIER,
Packit 022b05
    expValueCounter64Val      Counter64
Packit 022b05
}
Packit 022b05
Packit 022b05
expValueInstance OBJECT-TYPE
Packit 022b05
    SYNTAX      OBJECT IDENTIFIER
Packit 022b05
    MAX-ACCESS  not-accessible
Packit 022b05
    STATUS      current
Packit 022b05
    DESCRIPTION
Packit 022b05
     "The final instance portion of a value's OID according to
Packit 022b05
     the wildcarding in instances of expObjectID for the
Packit 022b05
     expression.  The prefix of this OID fragment is 0.0,
Packit 022b05
     leading to the following behavior.
Packit 022b05
Packit 022b05
     If there is no wildcarding, the value is 0.0.0.  In other
Packit 022b05
     words, there is one value which standing alone would have
Packit 022b05
     been a scalar with a 0 at the end of its OID.
Packit 022b05
Packit 022b05
     If there is wildcarding, the value is 0.0 followed by
Packit 022b05
     a value that the wildcard can take, thus defining one value
Packit 022b05
     instance for each real, possible value of the wildcard.
Packit 022b05
     So, for example, if the wildcard worked out to be an ifIndex,
Packit 022b05
     there is an expValueInstance for each applicable ifIndex."
Packit 022b05
    ::= { expValueEntry 1 }
Packit 022b05
Packit 022b05
expValueCounter32Val OBJECT-TYPE
Packit 022b05
    SYNTAX      Counter32
Packit 022b05
    MAX-ACCESS  read-only
Packit 022b05
Packit 022b05
Packit 022b05
    STATUS      current
Packit 022b05
    DESCRIPTION
Packit 022b05
     "The value when expExpressionValueType is 'counter32'."
Packit 022b05
    ::= { expValueEntry 2 }
Packit 022b05
Packit 022b05
expValueUnsigned32Val OBJECT-TYPE
Packit 022b05
    SYNTAX      Unsigned32
Packit 022b05
    MAX-ACCESS  read-only
Packit 022b05
    STATUS      current
Packit 022b05
    DESCRIPTION
Packit 022b05
     "The value when expExpressionValueType is 'unsigned32'."
Packit 022b05
    ::= { expValueEntry 3 }
Packit 022b05
Packit 022b05
expValueTimeTicksVal OBJECT-TYPE
Packit 022b05
    SYNTAX      TimeTicks
Packit 022b05
    MAX-ACCESS  read-only
Packit 022b05
    STATUS      current
Packit 022b05
    DESCRIPTION
Packit 022b05
     "The value when expExpressionValueType is 'timeTicks'."
Packit 022b05
    ::= { expValueEntry 4 }
Packit 022b05
Packit 022b05
expValueInteger32Val OBJECT-TYPE
Packit 022b05
    SYNTAX      Integer32
Packit 022b05
    MAX-ACCESS  read-only
Packit 022b05
    STATUS      current
Packit 022b05
    DESCRIPTION
Packit 022b05
     "The value when expExpressionValueType is 'integer32'."
Packit 022b05
    ::= { expValueEntry 5 }
Packit 022b05
Packit 022b05
expValueIpAddressVal OBJECT-TYPE
Packit 022b05
    SYNTAX      IpAddress
Packit 022b05
    MAX-ACCESS  read-only
Packit 022b05
    STATUS      current
Packit 022b05
    DESCRIPTION
Packit 022b05
     "The value when expExpressionValueType is 'ipAddress'."
Packit 022b05
    ::= { expValueEntry 6 }
Packit 022b05
Packit 022b05
expValueOctetStringVal OBJECT-TYPE
Packit 022b05
    SYNTAX      OCTET STRING -- (SIZE (0..65536))
Packit 022b05
    MAX-ACCESS  read-only
Packit 022b05
    STATUS      current
Packit 022b05
    DESCRIPTION
Packit 022b05
     "The value when expExpressionValueType is 'octetString'."
Packit 022b05
    ::= { expValueEntry 7 }
Packit 022b05
Packit 022b05
expValueOidVal OBJECT-TYPE
Packit 022b05
    SYNTAX      OBJECT IDENTIFIER
Packit 022b05
    MAX-ACCESS  read-only
Packit 022b05
Packit 022b05
Packit 022b05
    STATUS      current
Packit 022b05
    DESCRIPTION
Packit 022b05
     "The value when expExpressionValueType is 'objectId'."
Packit 022b05
    ::= { expValueEntry 8 }
Packit 022b05
Packit 022b05
expValueCounter64Val OBJECT-TYPE
Packit 022b05
    SYNTAX      Counter64
Packit 022b05
    MAX-ACCESS  read-only
Packit 022b05
    STATUS      current
Packit 022b05
    DESCRIPTION
Packit 022b05
     "The value when expExpressionValueType is 'counter64'."
Packit 022b05
    ::= { expValueEntry 9 }
Packit 022b05
Packit 022b05
--
Packit 022b05
-- Conformance
Packit 022b05
--
Packit 022b05
Packit 022b05
dismanExpressionMIBConformance OBJECT IDENTIFIER ::=
Packit 022b05
    { dismanExpressionMIB 3 }
Packit 022b05
dismanExpressionMIBCompliances OBJECT IDENTIFIER ::=
Packit 022b05
    { dismanExpressionMIBConformance 1 }
Packit 022b05
dismanExpressionMIBGroups      OBJECT IDENTIFIER ::=
Packit 022b05
    { dismanExpressionMIBConformance 2 }
Packit 022b05
Packit 022b05
-- Compliance
Packit 022b05
Packit 022b05
dismanExpressionMIBCompliance MODULE-COMPLIANCE
Packit 022b05
     STATUS current
Packit 022b05
     DESCRIPTION
Packit 022b05
          "The compliance statement for entities which implement
Packit 022b05
          the Expression MIB."
Packit 022b05
     MODULE    -- this module
Packit 022b05
          MANDATORY-GROUPS {
Packit 022b05
               dismanExpressionResourceGroup,
Packit 022b05
               dismanExpressionDefinitionGroup,
Packit 022b05
               dismanExpressionValueGroup
Packit 022b05
          }
Packit 022b05
Packit 022b05
     OBJECT         expResourceDeltaMinimum
Packit 022b05
     SYNTAX         Integer32 (-1 | 60..600)
Packit 022b05
     DESCRIPTION
Packit 022b05
          "Implementation need not allow deltas or it may
Packit 022b05
          implement them and restrict them to higher values."
Packit 022b05
Packit 022b05
     OBJECT         expObjectSampleType
Packit 022b05
     WRITE-SYNTAX   INTEGER { absoluteValue(1) }
Packit 022b05
     DESCRIPTION
Packit 022b05
          "Implementation may disallow deltas calculation or
Packit 022b05
Packit 022b05
Packit 022b05
          change detection."
Packit 022b05
Packit 022b05
     OBJECT         expObjectIDWildcard
Packit 022b05
     WRITE-SYNTAX   INTEGER { false(2) }
Packit 022b05
     DESCRIPTION
Packit 022b05
          "Implementation may allow wildcards."
Packit 022b05
Packit 022b05
     OBJECT         expObjectDiscontinuityIDWildcard
Packit 022b05
     WRITE-SYNTAX   INTEGER { false(2) }
Packit 022b05
     DESCRIPTION
Packit 022b05
          "Implementation need not allow wildcards."
Packit 022b05
Packit 022b05
     OBJECT          expObjectConditionalWildcard
Packit 022b05
     WRITE-SYNTAX   INTEGER { false(2) }
Packit 022b05
     DESCRIPTION
Packit 022b05
          "Implementation need not allow deltas wildcards."
Packit 022b05
Packit 022b05
     ::= { dismanExpressionMIBCompliances 1 }
Packit 022b05
Packit 022b05
-- Units of Conformance
Packit 022b05
Packit 022b05
dismanExpressionResourceGroup OBJECT-GROUP
Packit 022b05
     OBJECTS {
Packit 022b05
          expResourceDeltaMinimum,
Packit 022b05
          expResourceDeltaWildcardInstanceMaximum,
Packit 022b05
          expResourceDeltaWildcardInstances,
Packit 022b05
          expResourceDeltaWildcardInstancesHigh,
Packit 022b05
          expResourceDeltaWildcardInstanceResourceLacks
Packit 022b05
     }
Packit 022b05
     STATUS current
Packit 022b05
     DESCRIPTION
Packit 022b05
          "Expression definition resource management."
Packit 022b05
     ::= { dismanExpressionMIBGroups 1 }
Packit 022b05
Packit 022b05
dismanExpressionDefinitionGroup OBJECT-GROUP
Packit 022b05
     OBJECTS {
Packit 022b05
          expExpression,
Packit 022b05
          expExpressionValueType,
Packit 022b05
          expExpressionComment,
Packit 022b05
          expExpressionDeltaInterval,
Packit 022b05
          expExpressionPrefix,
Packit 022b05
          expExpressionErrors,
Packit 022b05
          expExpressionEntryStatus,
Packit 022b05
Packit 022b05
          expErrorTime,
Packit 022b05
          expErrorIndex,
Packit 022b05
          expErrorCode,
Packit 022b05
          expErrorInstance,
Packit 022b05
Packit 022b05
Packit 022b05
          expObjectID,
Packit 022b05
          expObjectIDWildcard,
Packit 022b05
          expObjectSampleType,
Packit 022b05
          expObjectDeltaDiscontinuityID,
Packit 022b05
          expObjectDiscontinuityIDWildcard,
Packit 022b05
          expObjectDiscontinuityIDType,
Packit 022b05
          expObjectConditional,
Packit 022b05
          expObjectConditionalWildcard,
Packit 022b05
          expObjectEntryStatus
Packit 022b05
     }
Packit 022b05
     STATUS current
Packit 022b05
     DESCRIPTION
Packit 022b05
          "Expression definition."
Packit 022b05
     ::= { dismanExpressionMIBGroups 2 }
Packit 022b05
Packit 022b05
dismanExpressionValueGroup OBJECT-GROUP
Packit 022b05
     OBJECTS {
Packit 022b05
          expValueCounter32Val,
Packit 022b05
          expValueUnsigned32Val,
Packit 022b05
          expValueTimeTicksVal,
Packit 022b05
          expValueInteger32Val,
Packit 022b05
          expValueIpAddressVal,
Packit 022b05
          expValueOctetStringVal,
Packit 022b05
          expValueOidVal,
Packit 022b05
          expValueCounter64Val
Packit 022b05
     }
Packit 022b05
     STATUS current
Packit 022b05
     DESCRIPTION
Packit 022b05
          "Expression value."
Packit 022b05
     ::= { dismanExpressionMIBGroups 3 }
Packit 022b05
Packit 022b05
END