1 DISMAN-EXPRESSION-MIB DEFINITIONS ::= BEGIN
4 MODULE-IDENTITY, OBJECT-TYPE,
5 Integer32, Gauge32, Unsigned32,
6 Counter32, Counter64, IpAddress,
7 TimeTicks, mib-2, zeroDotZero FROM SNMPv2-SMI
8 RowStatus, TruthValue, TimeStamp FROM SNMPv2-TC
9 sysUpTime FROM SNMPv2-MIB
10 SnmpAdminString FROM SNMP-FRAMEWORK-MIB
11 MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF;
13 dismanExpressionMIB MODULE-IDENTITY
14 LAST-UPDATED "200010160000Z" -- 16 October 2000
15 ORGANIZATION "IETF Distributed Management Working Group"
16 CONTACT-INFO "Ramanathan Kavasseri
18 170 West Tasman Drive,
19 San Jose CA 95134-1706.
20 Phone: +1 408 527 2446
21 Email: ramk@cisco.com"
23 "The MIB module for defining expressions of MIB objects for
27 REVISION "200010160000Z" -- 16 October 2000
28 DESCRIPTION "This is the initial version of this MIB.
29 Published as RFC 2982"
33 dismanExpressionMIBObjects OBJECT IDENTIFIER ::=
34 { dismanExpressionMIB 1 }
36 expResource OBJECT IDENTIFIER ::= { dismanExpressionMIBObjects 1 }
37 expDefine OBJECT IDENTIFIER ::= { dismanExpressionMIBObjects 2 }
38 expValue OBJECT IDENTIFIER ::= { dismanExpressionMIBObjects 3 }
46 expResourceDeltaMinimum OBJECT-TYPE
47 SYNTAX Integer32 (-1 | 1..600)
52 "The minimum expExpressionDeltaInterval this system will
53 accept. A system may use the larger values of this minimum to
54 lessen the impact of constantly computing deltas. For larger
55 delta sampling intervals the system samples less often and
56 suffers less overhead. This object provides a way to enforce
57 such lower overhead for all expressions created after it is
60 The value -1 indicates that expResourceDeltaMinimum is
61 irrelevant as the system will not accept 'deltaValue' as a
62 value for expObjectSampleType.
64 Unless explicitly resource limited, a system's value for
65 this object should be 1, allowing as small as a 1 second
66 interval for ongoing delta sampling.
68 Changing this value will not invalidate an existing setting
69 of expObjectSampleType."
72 expResourceDeltaWildcardInstanceMaximum OBJECT-TYPE
78 "For every instance of a deltaValue object, one dynamic instance
79 entry is needed for holding the instance value from the previous
80 sample, i.e. to maintain state.
82 This object limits maximum number of dynamic instance entries
83 this system will support for wildcarded delta objects in
84 expressions. For a given delta expression, the number of
85 dynamic instances is the number of values that meet all criteria
86 to exist times the number of delta values in the expression.
88 A value of 0 indicates no preset limit, that is, the limit
89 is dynamic based on system operation and resources.
91 Unless explicitly resource limited, a system's value for
92 this object should be 0.
96 Changing this value will not eliminate or inhibit existing delta
97 wildcard instance objects but will prevent the creation of more
100 An attempt to allocate beyond the limit results in expErrorCode
101 being tooManyWildcardValues for that evaluation attempt."
102 ::= { expResource 2 }
104 expResourceDeltaWildcardInstances OBJECT-TYPE
110 "The number of currently active instance entries as
111 defined for expResourceDeltaWildcardInstanceMaximum."
112 ::= { expResource 3 }
114 expResourceDeltaWildcardInstancesHigh OBJECT-TYPE
120 "The highest value of expResourceDeltaWildcardInstances
121 that has occurred since initialization of the managed
123 ::= { expResource 4 }
125 expResourceDeltaWildcardInstanceResourceLacks OBJECT-TYPE
131 "The number of times this system could not evaluate an
132 expression because that would have created a value instance in
133 excess of expResourceDeltaWildcardInstanceMaximum."
134 ::= { expResource 5 }
140 -- Expression Definition Table
143 expExpressionTable OBJECT-TYPE
146 SYNTAX SEQUENCE OF ExpExpressionEntry
147 MAX-ACCESS not-accessible
150 "A table of expression definitions."
153 expExpressionEntry OBJECT-TYPE
154 SYNTAX ExpExpressionEntry
155 MAX-ACCESS not-accessible
158 "Information about a single expression. New expressions
159 can be created using expExpressionRowStatus.
161 To create an expression first create the named entry in this
162 table. Then use expExpressionName to populate expObjectTable.
163 For expression evaluation to succeed all related entries in
164 expExpressionTable and expObjectTable must be 'active'. If
165 these conditions are not met the corresponding values in
166 expValue simply are not instantiated.
168 Deleting an entry deletes all related entries in expObjectTable
171 Because of the relationships among the multiple tables for an
172 expression (expExpressionTable, expObjectTable, and
173 expValueTable) and the SNMP rules for independence in setting
174 object values, it is necessary to do final error checking when
175 an expression is evaluated, that is, when one of its instances
176 in expValueTable is read or a delta interval expires. Earlier
177 checking need not be done and an implementation may not impose
178 any ordering on the creation of objects related to an
181 To maintain security of MIB information, when creating a new row in
182 this table, the managed system must record the security credentials
183 of the requester. These security credentials are the parameters
184 necessary as inputs to isAccessAllowed from the Architecture for
186 Describing SNMP Management Frameworks. When obtaining the objects
187 that make up the expression, the system must (conceptually) use
188 isAccessAllowed to ensure that it does not violate security.
190 The evaluation of the expression takes place under the
191 security credentials of the creator of its expExpressionEntry.
193 Values of read-write objects in this table may be changed
197 INDEX { expExpressionOwner, expExpressionName }
198 ::= { expExpressionTable 1 }
200 ExpExpressionEntry ::= SEQUENCE {
201 expExpressionOwner SnmpAdminString,
202 expExpressionName SnmpAdminString,
203 expExpression OCTET STRING,
204 expExpressionValueType INTEGER,
205 expExpressionComment SnmpAdminString,
206 expExpressionDeltaInterval Integer32,
207 expExpressionPrefix OBJECT IDENTIFIER,
208 expExpressionErrors Counter32,
209 expExpressionEntryStatus RowStatus
212 expExpressionOwner OBJECT-TYPE
213 SYNTAX SnmpAdminString (SIZE(0..32))
214 MAX-ACCESS not-accessible
217 "The owner of this entry. The exact semantics of this
218 string are subject to the security policy defined by the
219 security administrator."
220 ::= { expExpressionEntry 1 }
222 expExpressionName OBJECT-TYPE
223 SYNTAX SnmpAdminString (SIZE (1..32))
224 MAX-ACCESS not-accessible
227 "The name of the expression. This is locally unique, within
228 the scope of an expExpressionOwner."
229 ::= { expExpressionEntry 2 }
231 expExpression OBJECT-TYPE
232 SYNTAX OCTET STRING (SIZE (1..1024))
233 MAX-ACCESS read-create
236 "The expression to be evaluated. This object is the same
237 as a DisplayString (RFC 1903) except for its maximum length.
239 Except for the variable names the expression is in ANSI C
240 syntax. Only the subset of ANSI C operators and functions
241 listed here is allowed.
243 Variables are expressed as a dollar sign ('$') and an
246 integer that corresponds to an expObjectIndex. An
247 example of a valid expression is:
251 Expressions must not be recursive, that is although an expression
252 may use the results of another expression, it must not contain
253 any variable that is directly or indirectly a result of its own
254 evaluation. The managed system must check for recursive
257 The only allowed operators are:
263 ! && || == != > >= < <=
265 Note the parentheses are included for parenthesizing the
266 expression, not for casting data types.
268 The only constant types defined are:
279 The default type for a positive integer is int unless it is too
280 large in which case it is long.
282 All but oid are as defined for ANSI C. Note that a
283 hexadecimal constant may end up as a scalar or an array of
284 8-bit integers. A string constant is enclosed in double
285 quotes and may contain back-slashed individual characters
288 An oid constant comprises 32-bit, unsigned integers and at
289 least one period, for example:
296 No additional leading or trailing subidentifiers are automatically
297 added to an OID constant. The constant is taken as expressed.
299 Integer-typed objects are treated as 32- or 64-bit, signed
300 or unsigned integers, as appropriate. The results of
301 mixing them are as for ANSI C, including the type of the
302 result. Note that a 32-bit value is thus promoted to 64 bits
303 only in an operation with a 64-bit value. There is no
304 provision for larger values to handle overflow.
306 Relative to SNMP data types, a resulting value becomes
307 unsigned when calculating it uses any unsigned value,
308 including a counter. To force the final value to be of
309 data type counter the expression must explicitly use the
310 counter32() or counter64() function (defined below).
312 OCTET STRINGS and OBJECT IDENTIFIERs are treated as
313 one-dimensioned arrays of unsigned 8-bit integers and
314 unsigned 32-bit integers, respectively.
316 IpAddresses are treated as 32-bit, unsigned integers in
317 network byte order, that is, the hex version of 255.0.0.0 is
320 Conditional expressions result in a 32-bit, unsigned integer
321 of value 0 for false or 1 for true. When an arbitrary value
322 is used as a boolean 0 is false and non-zero is true.
324 Rules for the resulting data type from an operation, based on
327 For << and >> the result is the same as the left hand operand.
329 For &&, ||, ==, !=, <, <=, >, and >= the result is always
332 For unary - the result is always Integer32.
334 For +, -, *, /, %, &, |, and ^ the result is promoted according
335 to the following rules, in order from most to least preferred:
337 If left hand and right hand operands are the same type,
340 If either side is Counter64, use that.
342 If either side is IpAddress, use that.
346 If either side is TimeTicks, use that.
348 If either side is Counter32, use that.
350 Otherwise use Unsigned32.
352 The following rules say what operators apply with what data
353 types. Any combination not explicitly defined does not work.
355 For all operators any of the following can be the left hand or
356 right hand operand: Integer32, Counter32, Unsigned32, Counter64.
358 The operators +, -, *, /, %, <, <=, >, and >= work with
361 The operators &, |, and ^ work with IpAddress.
363 The operators << and >> work with IpAddress but only as the
366 The + operator performs a concatenation of two OCTET STRINGs or
367 two OBJECT IDENTIFIERs.
369 The operators &, | perform bitwise operations on OCTET STRINGs.
370 If the OCTET STRING happens to be a DisplayString the results
371 may be meaningless, but the agent system does not check this as
372 some such systems do not have this information.
374 The operators << and >> perform bitwise operations on OCTET
375 STRINGs appearing as the left hand operand.
377 The only functions defined are:
396 The following function definitions indicate their parameters by
397 naming the data type of the parameter in the parameter's position
398 in the parameter list. The parameter must be of the type indicated
399 and generally may be a constant, a MIB object, a function, or an
402 counter32(integer) - wrapped around an integer value counter32
403 forces Counter32 as a data type.
405 counter64(integer) - similar to counter32 except that the
406 resulting data type is 'counter64'.
408 arraySection(array, integer, integer) - selects a piece of an
409 array (i.e. part of an OCTET STRING or OBJECT IDENTIFIER). The
410 integer arguments are in the range 0 to 4,294,967,295. The
411 first is an initial array index (one-dimensioned) and the second
412 is an ending array index. A value of 0 indicates first or last
413 element, respectively. If the first element is larger than the
414 array length the result is 0 length. If the second integer is
415 less than or equal to the first, the result is 0 length. If the
416 second is larger than the array length it indicates last
419 stringBegins/Ends/Contains(octetString, octetString) - looks for
420 the second string (which can be a string constant) in the first
421 and returns the one-dimensioned arrayindex where the match began.
422 A return value of 0 indicates no match (i.e. boolean false).
424 oidBegins/Ends/Contains(oid, oid) - looks for the second OID
425 (which can be an OID constant) in the first and returns the
426 the one-dimensioned index where the match began. A return value
427 of 0 indicates no match (i.e. boolean false).
429 average/maximum/minimum(integer) - calculates the average,
430 minimum, or maximum value of the integer valued object over
431 multiple sample times. If the object disappears for any
432 sample period, the accumulation and the resulting value object
433 cease to exist until the object reappears at which point the
434 calculation starts over.
436 sum(integerObject*) - sums all available values of the
437 wildcarded integer object, resulting in an integer scalar. Must
438 be used with caution as it wraps on overflow with no
441 exists(anyTypeObject) - verifies the object instance exists. A
442 return value of 0 indicates NoSuchInstance (i.e. boolean
446 ::= { expExpressionEntry 3 }
448 expExpressionValueType OBJECT-TYPE
449 SYNTAX INTEGER { counter32(1), unsigned32(2), timeTicks(3),
450 integer32(4), ipAddress(5), octetString(6),
451 objectId(7), counter64(8) }
452 MAX-ACCESS read-create
455 "The type of the expression value. One and only one of the
456 value objects in expValueTable will be instantiated to match
459 If the result of the expression can not be made into this type,
460 an invalidOperandType error will occur."
462 ::= { expExpressionEntry 4 }
464 expExpressionComment OBJECT-TYPE
465 SYNTAX SnmpAdminString
466 MAX-ACCESS read-create
469 "A comment to explain the use or meaning of the expression."
471 ::= { expExpressionEntry 5 }
473 expExpressionDeltaInterval OBJECT-TYPE
474 SYNTAX Integer32 (0..86400)
476 MAX-ACCESS read-create
479 "Sampling interval for objects in this expression with
480 expObjectSampleType 'deltaValue'.
482 This object has no effect if the the expression has no
485 A value of 0 indicates no automated sampling. In this case
486 the delta is the difference from the last time the expression
487 was evaluated. Note that this is subject to unpredictable
488 delta times in the face of retries or multiple managers.
490 A value greater than zero is the number of seconds between
493 Until the delta interval has expired once the delta for the
496 object is effectively not instantiated and evaluating
497 the expression has results as if the object itself were not
500 Note that delta values potentially consume large amounts of
501 system CPU and memory. Delta state and processing must
502 continue constantly even if the expression is not being used.
503 That is, the expression is being evaluated every delta interval,
504 even if no application is reading those values. For wildcarded
505 objects this can be substantial overhead.
507 Note that delta intervals, external expression value sampling
508 intervals and delta intervals for expressions within other
509 expressions can have unusual interactions as they are impossible
510 to synchronize accurately. In general one interval embedded
511 below another must be enough shorter that the higher sample
512 sees relatively smooth, predictable behavior. So, for example,
513 to avoid the higher level getting the same sample twice, the
514 lower level should sample at least twice as fast as the higher
517 ::= { expExpressionEntry 6 }
519 expExpressionPrefix OBJECT-TYPE
520 SYNTAX OBJECT IDENTIFIER
524 "An object prefix to assist an application in determining
525 the instance indexing to use in expValueTable, relieving the
526 application of the need to scan the expObjectTable to
527 determine such a prefix.
529 See expObjectTable for information on wildcarded objects.
531 If the expValueInstance portion of the value OID may
532 be treated as a scalar (that is, normally, 0) the value of
533 expExpressionPrefix is zero length, that is, no OID at all.
534 Note that zero length implies a null OID, not the OID 0.0.
536 Otherwise, the value of expExpressionPrefix is the expObjectID
537 value of any one of the wildcarded objects for the expression.
538 This is sufficient, as the remainder, that is, the instance
539 fragment relevant to instancing the values, must be the same for
540 all wildcarded objects in the expression."
541 ::= { expExpressionEntry 7 }
543 expExpressionErrors OBJECT-TYPE
550 "The number of errors encountered while evaluating this
553 Note that an object in the expression not being accessible,
554 is not considered an error. An example of an inaccessible
555 object is when the object is excluded from the view of the
556 user whose security credentials are used in the expression
557 evaluation. In such cases, it is a legitimate condition
558 that causes the corresponding expression value not to be
560 ::= { expExpressionEntry 8 }
562 expExpressionEntryStatus OBJECT-TYPE
564 MAX-ACCESS read-create
567 "The control that allows creation and deletion of entries."
568 ::= { expExpressionEntry 9 }
571 -- Expression Error Table
574 expErrorTable OBJECT-TYPE
575 SYNTAX SEQUENCE OF ExpErrorEntry
576 MAX-ACCESS not-accessible
579 "A table of expression errors."
582 expErrorEntry OBJECT-TYPE
584 MAX-ACCESS not-accessible
587 "Information about errors in processing an expression.
589 Entries appear in this table only when there is a matching
590 expExpressionEntry and then only when there has been an
591 error for that expression as reflected by the error codes
592 defined for expErrorCode."
593 INDEX { expExpressionOwner, expExpressionName }
596 ::= { expErrorTable 1 }
598 ExpErrorEntry ::= SEQUENCE {
599 expErrorTime TimeStamp,
600 expErrorIndex Integer32,
601 expErrorCode INTEGER,
602 expErrorInstance OBJECT IDENTIFIER
605 expErrorTime OBJECT-TYPE
610 "The value of sysUpTime the last time an error caused a
611 failure to evaluate this expression."
612 ::= { expErrorEntry 1 }
614 expErrorIndex OBJECT-TYPE
619 "The one-dimensioned character array index into
620 expExpression for where the error occurred. The value
621 zero indicates irrelevance."
622 ::= { expErrorEntry 2 }
624 expErrorCode OBJECT-TYPE
627 undefinedObjectIndex(2),
628 unrecognizedOperator(3),
629 unrecognizedFunction(4),
630 invalidOperandType(5),
631 unmatchedParenthesis(6),
632 tooManyWildcardValues(7),
635 resourceUnavailable(10),
641 "The error that occurred. In the following explanations the
642 expected timing of the error is in parentheses. 'S' means
643 the error occurs on a Set request. 'E' means the error
646 occurs on the attempt to evaluate the expression either due to
647 Get from expValueTable or in ongoing delta processing.
649 invalidSyntax the value sent for expExpression is not
650 valid Expression MIB expression syntax
652 undefinedObjectIndex an object reference ($n) in
653 expExpression does not have a matching
654 instance in expObjectTable (E)
655 unrecognizedOperator the value sent for expExpression held an
656 unrecognized operator (S)
657 unrecognizedFunction the value sent for expExpression held an
658 unrecognized function name (S)
659 invalidOperandType an operand in expExpression is not the
660 right type for the associated operator
662 unmatchedParenthesis the value sent for expExpression is not
663 correctly parenthesized (S)
664 tooManyWildcardValues evaluating the expression exceeded the
666 expResourceDeltaWildcardInstanceMaximum
668 recursion through some chain of embedded
669 expressions the expression invokes itself
671 deltaTooShort the delta for the next evaluation passed
672 before the system could evaluate the
674 resourceUnavailable some resource, typically dynamic memory,
676 divideByZero an attempt to divide by zero occurred
679 For the errors that occur when the attempt is made to set
680 expExpression Set request fails with the SNMP error code
681 'wrongValue'. Such failures refer to the most recent failure to
682 Set expExpression, not to the present value of expExpression
683 which must be either unset or syntactically correct.
685 Errors that occur during evaluation for a Get* operation return
686 the SNMP error code 'genErr' except for 'tooManyWildcardValues'
687 and 'resourceUnavailable' which return the SNMP error code
688 'resourceUnavailable'."
689 ::= { expErrorEntry 3 }
691 expErrorInstance OBJECT-TYPE
692 SYNTAX OBJECT IDENTIFIER
698 "The expValueInstance being evaluated when the error
699 occurred. A zero-length indicates irrelevance."
700 ::= { expErrorEntry 4 }
706 expObjectTable OBJECT-TYPE
707 SYNTAX SEQUENCE OF ExpObjectEntry
708 MAX-ACCESS not-accessible
711 "A table of object definitions for each expExpression.
713 Wildcarding instance IDs:
715 It is legal to omit all or part of the instance portion for
716 some or all of the objects in an expression. (See the
717 DESCRIPTION of expObjectID for details. However, note that
718 if more than one object in the same expression is wildcarded
719 in this way, they all must be objects where that portion of
720 the instance is the same. In other words, all objects may be
721 in the same SEQUENCE or in different SEQUENCEs but with the
722 same semantic index value (e.g., a value of ifIndex)
723 for the wildcarded portion."
726 expObjectEntry OBJECT-TYPE
727 SYNTAX ExpObjectEntry
728 MAX-ACCESS not-accessible
731 "Information about an object. An application uses
732 expObjectEntryStatus to create entries in this table while
733 in the process of defining an expression.
735 Values of read-create objects in this table may be
736 changed at any time."
737 INDEX { expExpressionOwner, expExpressionName, expObjectIndex }
738 ::= { expObjectTable 1 }
740 ExpObjectEntry ::= SEQUENCE {
741 expObjectIndex Unsigned32,
742 expObjectID OBJECT IDENTIFIER,
743 expObjectIDWildcard TruthValue,
746 expObjectSampleType INTEGER,
747 expObjectDeltaDiscontinuityID OBJECT IDENTIFIER,
748 expObjectDiscontinuityIDWildcard TruthValue,
749 expObjectDiscontinuityIDType INTEGER,
750 expObjectConditional OBJECT IDENTIFIER,
751 expObjectConditionalWildcard TruthValue,
752 expObjectEntryStatus RowStatus
755 expObjectIndex OBJECT-TYPE
756 SYNTAX Unsigned32 (1..4294967295)
757 MAX-ACCESS not-accessible
760 "Within an expression, a unique, numeric identification for an
761 object. Prefixed with a dollar sign ('$') this is used to
762 reference the object in the corresponding expExpression."
763 ::= { expObjectEntry 1 }
765 expObjectID OBJECT-TYPE
766 SYNTAX OBJECT IDENTIFIER
767 MAX-ACCESS read-create
770 "The OBJECT IDENTIFIER (OID) of this object. The OID may be
771 fully qualified, meaning it includes a complete instance
772 identifier part (e.g., ifInOctets.1 or sysUpTime.0), or it
773 may not be fully qualified, meaning it may lack all or part
774 of the instance identifier. If the expObjectID is not fully
775 qualified, then expObjectWildcard must be set to true(1).
776 The value of the expression will be multiple
777 values, as if done for a GetNext sweep of the object.
779 An object here may itself be the result of an expression but
780 recursion is not allowed.
782 NOTE: The simplest implementations of this MIB may not allow
784 ::= { expObjectEntry 2 }
786 expObjectIDWildcard OBJECT-TYPE
788 MAX-ACCESS read-create
791 "A true value indicates the expObjecID of this row is a wildcard
792 object. False indicates that expObjectID is fully instanced.
793 If all expObjectWildcard values for a given expression are FALSE,
796 expExpressionPrefix will reflect a scalar object (i.e. will
799 NOTE: The simplest implementations of this MIB may not allow
802 ::= { expObjectEntry 3 }
804 expObjectSampleType OBJECT-TYPE
805 SYNTAX INTEGER { absoluteValue(1), deltaValue(2),
807 MAX-ACCESS read-create
810 "The method of sampling the selected variable.
812 An 'absoluteValue' is simply the present value of the object.
814 A 'deltaValue' is the present value minus the previous value,
815 which was sampled expExpressionDeltaInterval seconds ago.
816 This is intended primarily for use with SNMP counters, which are
817 meaningless as an 'absoluteValue', but may be used with any
820 A 'changedValue' is a boolean for whether the present value is
821 different from the previous value. It is applicable to any data
822 type and results in an Unsigned32 with value 1 if the object's
823 value is changed and 0 if not. In all other respects it is as a
824 'deltaValue' and all statements and operation regarding delta
825 values apply to changed values.
827 When an expression contains both delta and absolute values
828 the absolute values are obtained at the end of the delta
830 DEFVAL { absoluteValue }
831 ::= { expObjectEntry 4 }
833 sysUpTimeInstance OBJECT IDENTIFIER ::= { sysUpTime 0 }
835 expObjectDeltaDiscontinuityID OBJECT-TYPE
836 SYNTAX OBJECT IDENTIFIER
837 MAX-ACCESS read-create
840 "The OBJECT IDENTIFIER (OID) of a TimeTicks, TimeStamp, or
841 DateAndTime object that indicates a discontinuity in the value
846 This object is instantiated only if expObjectSampleType is
847 'deltaValue' or 'changedValue'.
849 The OID may be for a leaf object (e.g. sysUpTime.0) or may
850 be wildcarded to match expObjectID.
852 This object supports normal checking for a discontinuity in a
853 counter. Note that if this object does not point to sysUpTime
854 discontinuity checking must still check sysUpTime for an overall
857 If the object identified is not accessible no discontinuity
859 DEFVAL { sysUpTimeInstance }
860 ::= { expObjectEntry 5 }
862 expObjectDiscontinuityIDWildcard OBJECT-TYPE
864 MAX-ACCESS read-create
867 "A true value indicates the expObjectDeltaDiscontinuityID of
868 this row is a wildcard object. False indicates that
869 expObjectDeltaDiscontinuityID is fully instanced.
871 This object is instantiated only if expObjectSampleType is
872 'deltaValue' or 'changedValue'.
874 NOTE: The simplest implementations of this MIB may not allow
877 ::= { expObjectEntry 6 }
879 expObjectDiscontinuityIDType OBJECT-TYPE
880 SYNTAX INTEGER { timeTicks(1), timeStamp(2), dateAndTime(3) }
881 MAX-ACCESS read-create
884 "The value 'timeTicks' indicates the expObjectDeltaDiscontinuityID
885 of this row is of syntax TimeTicks. The value 'timeStamp' indicates
886 syntax TimeStamp. The value 'dateAndTime indicates syntax
889 This object is instantiated only if expObjectSampleType is
890 'deltaValue' or 'changedValue'."
892 ::= { expObjectEntry 7 }
896 expObjectConditional OBJECT-TYPE
897 SYNTAX OBJECT IDENTIFIER
898 MAX-ACCESS read-create
901 "The OBJECT IDENTIFIER (OID) of an object that overrides
902 whether the instance of expObjectID is to be considered
903 usable. If the value of the object at expObjectConditional
904 is 0 or not instantiated, the object at expObjectID is
905 treated as if it is not instantiated. In other words,
906 expObjectConditional is a filter that controls whether or
907 not to use the value at expObjectID.
909 The OID may be for a leaf object (e.g. sysObjectID.0) or may be
910 wildcarded to match expObjectID. If expObject is wildcarded and
911 expObjectID in the same row is not, the wild portion of
912 expObjectConditional must match the wildcarding of the rest of
913 the expression. If no object in the expression is wildcarded
914 but expObjectConditional is, use the lexically first instance
915 (if any) of expObjectConditional.
917 If the value of expObjectConditional is 0.0 operation is
918 as if the value pointed to by expObjectConditional is a
919 non-zero (true) value.
921 Note that expObjectConditional can not trivially use an object
922 of syntax TruthValue, since the underlying value is not 0 or 1."
923 DEFVAL { zeroDotZero }
924 ::= { expObjectEntry 8 }
926 expObjectConditionalWildcard OBJECT-TYPE
928 MAX-ACCESS read-create
932 "A true value indicates the expObjectConditional of this row is
933 a wildcard object. False indicates that expObjectConditional is
936 NOTE: The simplest implementations of this MIB may not allow
939 ::= { expObjectEntry 9 }
941 expObjectEntryStatus OBJECT-TYPE
943 MAX-ACCESS read-create
948 "The control that allows creation/deletion of entries.
950 Objects in this table may be changed while
951 expObjectEntryStatus is in any state."
952 ::= { expObjectEntry 10 }
955 -- Expression Value Table
958 expValueTable OBJECT-TYPE
959 SYNTAX SEQUENCE OF ExpValueEntry
960 MAX-ACCESS not-accessible
963 "A table of values from evaluated expressions."
966 expValueEntry OBJECT-TYPE
968 MAX-ACCESS not-accessible
971 "A single value from an evaluated expression. For a given
972 instance, only one 'Val' object in the conceptual row will be
973 instantiated, that is, the one with the appropriate type for
974 the value. For values that contain no objects of
975 expObjectSampleType 'deltaValue' or 'changedValue', reading a
976 value from the table causes the evaluation of the expression
977 for that value. For those that contain a 'deltaValue' or
978 'changedValue' the value read is as of the last sampling
981 If in the attempt to evaluate the expression one or more
982 of the necessary objects is not available, the corresponding
983 entry in this table is effectively not instantiated.
985 To maintain security of MIB information, when creating a new
986 row in this table, the managed system must record the security
987 credentials of the requester. These security credentials are
988 the parameters necessary as inputs to isAccessAllowed from
989 [RFC2571]. When obtaining the objects that make up the
990 expression, the system must (conceptually) use isAccessAllowed to
991 ensure that it does not violate security.
993 The evaluation of that expression takes place under the
996 security credentials of the creator of its expExpressionEntry.
998 To maintain security of MIB information, expression evaluation must
999 take place using security credentials for the implied Gets of the
1000 objects in the expression as inputs (conceptually) to
1001 isAccessAllowed from the Architecture for Describing SNMP
1002 Management Frameworks. These are the security credentials of the
1003 creator of the corresponding expExpressionEntry."
1004 INDEX { expExpressionOwner, expExpressionName,
1005 IMPLIED expValueInstance }
1006 ::= { expValueTable 1 }
1008 ExpValueEntry ::= SEQUENCE {
1009 expValueInstance OBJECT IDENTIFIER,
1010 expValueCounter32Val Counter32,
1011 expValueUnsigned32Val Unsigned32,
1012 expValueTimeTicksVal TimeTicks,
1013 expValueInteger32Val Integer32,
1014 expValueIpAddressVal IpAddress,
1015 expValueOctetStringVal OCTET STRING,
1016 expValueOidVal OBJECT IDENTIFIER,
1017 expValueCounter64Val Counter64
1020 expValueInstance OBJECT-TYPE
1021 SYNTAX OBJECT IDENTIFIER
1022 MAX-ACCESS not-accessible
1025 "The final instance portion of a value's OID according to
1026 the wildcarding in instances of expObjectID for the
1027 expression. The prefix of this OID fragment is 0.0,
1028 leading to the following behavior.
1030 If there is no wildcarding, the value is 0.0.0. In other
1031 words, there is one value which standing alone would have
1032 been a scalar with a 0 at the end of its OID.
1034 If there is wildcarding, the value is 0.0 followed by
1035 a value that the wildcard can take, thus defining one value
1036 instance for each real, possible value of the wildcard.
1037 So, for example, if the wildcard worked out to be an ifIndex,
1038 there is an expValueInstance for each applicable ifIndex."
1039 ::= { expValueEntry 1 }
1041 expValueCounter32Val OBJECT-TYPE
1043 MAX-ACCESS read-only
1048 "The value when expExpressionValueType is 'counter32'."
1049 ::= { expValueEntry 2 }
1051 expValueUnsigned32Val OBJECT-TYPE
1053 MAX-ACCESS read-only
1056 "The value when expExpressionValueType is 'unsigned32'."
1057 ::= { expValueEntry 3 }
1059 expValueTimeTicksVal OBJECT-TYPE
1061 MAX-ACCESS read-only
1064 "The value when expExpressionValueType is 'timeTicks'."
1065 ::= { expValueEntry 4 }
1067 expValueInteger32Val OBJECT-TYPE
1069 MAX-ACCESS read-only
1072 "The value when expExpressionValueType is 'integer32'."
1073 ::= { expValueEntry 5 }
1075 expValueIpAddressVal OBJECT-TYPE
1077 MAX-ACCESS read-only
1080 "The value when expExpressionValueType is 'ipAddress'."
1081 ::= { expValueEntry 6 }
1083 expValueOctetStringVal OBJECT-TYPE
1084 SYNTAX OCTET STRING -- (SIZE (0..65536))
1085 MAX-ACCESS read-only
1088 "The value when expExpressionValueType is 'octetString'."
1089 ::= { expValueEntry 7 }
1091 expValueOidVal OBJECT-TYPE
1092 SYNTAX OBJECT IDENTIFIER
1093 MAX-ACCESS read-only
1098 "The value when expExpressionValueType is 'objectId'."
1099 ::= { expValueEntry 8 }
1101 expValueCounter64Val OBJECT-TYPE
1103 MAX-ACCESS read-only
1106 "The value when expExpressionValueType is 'counter64'."
1107 ::= { expValueEntry 9 }
1113 dismanExpressionMIBConformance OBJECT IDENTIFIER ::=
1114 { dismanExpressionMIB 3 }
1115 dismanExpressionMIBCompliances OBJECT IDENTIFIER ::=
1116 { dismanExpressionMIBConformance 1 }
1117 dismanExpressionMIBGroups OBJECT IDENTIFIER ::=
1118 { dismanExpressionMIBConformance 2 }
1122 dismanExpressionMIBCompliance MODULE-COMPLIANCE
1125 "The compliance statement for entities which implement
1126 the Expression MIB."
1127 MODULE -- this module
1129 dismanExpressionResourceGroup,
1130 dismanExpressionDefinitionGroup,
1131 dismanExpressionValueGroup
1134 OBJECT expResourceDeltaMinimum
1135 SYNTAX Integer32 (-1 | 60..600)
1137 "Implementation need not allow deltas or it may
1138 implement them and restrict them to higher values."
1140 OBJECT expObjectSampleType
1141 WRITE-SYNTAX INTEGER { absoluteValue(1) }
1143 "Implementation may disallow deltas calculation or
1148 OBJECT expObjectIDWildcard
1149 WRITE-SYNTAX INTEGER { false(2) }
1151 "Implementation may allow wildcards."
1153 OBJECT expObjectDiscontinuityIDWildcard
1154 WRITE-SYNTAX INTEGER { false(2) }
1156 "Implementation need not allow wildcards."
1158 OBJECT expObjectConditionalWildcard
1159 WRITE-SYNTAX INTEGER { false(2) }
1161 "Implementation need not allow deltas wildcards."
1163 ::= { dismanExpressionMIBCompliances 1 }
1165 -- Units of Conformance
1167 dismanExpressionResourceGroup OBJECT-GROUP
1169 expResourceDeltaMinimum,
1170 expResourceDeltaWildcardInstanceMaximum,
1171 expResourceDeltaWildcardInstances,
1172 expResourceDeltaWildcardInstancesHigh,
1173 expResourceDeltaWildcardInstanceResourceLacks
1177 "Expression definition resource management."
1178 ::= { dismanExpressionMIBGroups 1 }
1180 dismanExpressionDefinitionGroup OBJECT-GROUP
1183 expExpressionValueType,
1184 expExpressionComment,
1185 expExpressionDeltaInterval,
1186 expExpressionPrefix,
1187 expExpressionErrors,
1188 expExpressionEntryStatus,
1197 expObjectIDWildcard,
1198 expObjectSampleType,
1199 expObjectDeltaDiscontinuityID,
1200 expObjectDiscontinuityIDWildcard,
1201 expObjectDiscontinuityIDType,
1202 expObjectConditional,
1203 expObjectConditionalWildcard,
1204 expObjectEntryStatus
1208 "Expression definition."
1209 ::= { dismanExpressionMIBGroups 2 }
1211 dismanExpressionValueGroup OBJECT-GROUP
1213 expValueCounter32Val,
1214 expValueUnsigned32Val,
1215 expValueTimeTicksVal,
1216 expValueInteger32Val,
1217 expValueIpAddressVal,
1218 expValueOctetStringVal,
1220 expValueCounter64Val
1225 ::= { dismanExpressionMIBGroups 3 }