1 POLICY-BASED-MANAGEMENT-MIB DEFINITIONS ::= BEGIN
3 MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
4 Counter32, Gauge32, Unsigned32,
6 RowStatus, RowPointer, TEXTUAL-CONVENTION,
7 DateAndTime, StorageType FROM SNMPv2-TC
8 MODULE-COMPLIANCE, OBJECT-GROUP,
9 NOTIFICATION-GROUP FROM SNMPv2-CONF
10 SnmpAdminString FROM SNMP-FRAMEWORK-MIB;
12 -- Policy-Based Management MIB
15 LAST-UPDATED "200502070000Z" -- February 7, 2005
16 ORGANIZATION "IETF SNMP Configuration Working Group"
24 Phone: +1-650-948-6500
26 Email: waldbusser@nextbeacon.com
28 Jon Saperia (WG Co-chair)
30 84 Kettell Plain Road.
33 Phone: +1-978-461-0249
35 Email: saperia@jdscons.com
38 Riverstone Networks, Inc.
39 5200 Great America Parkway
40 Santa Clara, CA, 95054
43 Phone: +1-408-878-6562
45 Email: hongal@riverstonenet.com
47 David Partain (WG Co-chair)
53 E-mail: David.Partain@ericsson.com
55 Any questions or comments about this document can also be
56 directed to the working group at snmpconf@snmp.com."
58 "The MIB module for policy-based configuration of SNMP
61 Copyright (C) The Internet Society (2005). This version of
62 this MIB module is part of RFC 4011; see the RFC itself for
65 REVISION "200502070000Z" -- February 7, 2005
67 "The original version of this MIB, published as RFC4011."
74 PmUTF8String ::= TEXTUAL-CONVENTION
77 "An octet string containing information typically in
80 To facilitate internationalization, this
81 information is represented by using the ISO/IEC
82 IS 10646-1 character set, encoded as an octet
83 string using the UTF-8 transformation format
84 described in RFC 3629.
86 As additional code points are added by
87 amendments to the 10646 standard from time
88 to time, implementations must be prepared to
89 encounter any code point from 0x00000000 to
90 0x10FFFF. Byte sequences that do not
91 correspond to the valid UTF-8 encoding of a
92 code point or that are outside this range are
95 The use of control codes should be avoided.
97 When it is necessary to represent a newline,
98 the control code sequence CR LF should be used.
100 For code points not directly supported by user
101 interface hardware or software, an alternative
102 means of entry and display, such as hexadecimal,
105 For information encoded in 7-bit US-ASCII,
106 the UTF-8 encoding is identical to the
109 UTF-8 may require multiple bytes to represent a
110 single character/code point; thus, the length
111 of this object in octets may be different from
112 the number of characters encoded. Similarly,
113 size constraints refer to the number of encoded
114 octets, not the number of characters represented
117 Note that when this TC is used for an object
118 used or envisioned to be used as an index, then
119 a SIZE restriction MUST be specified so that the
120 number of sub-identifiers for any object instance
121 does not exceed the limit of 128, as defined by
127 Note that the size of PmUTF8String object is
128 measured in octets, not characters."
129 SYNTAX OCTET STRING (SIZE (0..65535))
133 pmPolicyTable OBJECT-TYPE
134 SYNTAX SEQUENCE OF PmPolicyEntry
135 MAX-ACCESS not-accessible
138 "The policy table. A policy is a pairing of a
139 policyCondition and a policyAction that is used to apply the
140 action to a selected set of elements."
143 pmPolicyEntry OBJECT-TYPE
145 MAX-ACCESS not-accessible
148 "An entry in the policy table representing one policy."
149 INDEX { pmPolicyAdminGroup, pmPolicyIndex }
150 ::= { pmPolicyTable 1 }
152 PmPolicyEntry ::= SEQUENCE {
153 pmPolicyAdminGroup PmUTF8String,
154 pmPolicyIndex Unsigned32,
155 pmPolicyPrecedenceGroup PmUTF8String,
156 pmPolicyPrecedence Unsigned32,
157 pmPolicySchedule Unsigned32,
158 pmPolicyElementTypeFilter PmUTF8String,
159 pmPolicyConditionScriptIndex Unsigned32,
160 pmPolicyActionScriptIndex Unsigned32,
161 pmPolicyParameters OCTET STRING,
162 pmPolicyConditionMaxLatency Unsigned32,
163 pmPolicyActionMaxLatency Unsigned32,
164 pmPolicyMaxIterations Unsigned32,
165 pmPolicyDescription PmUTF8String,
166 pmPolicyMatches Gauge32,
167 pmPolicyAbnormalTerminations Gauge32,
168 pmPolicyExecutionErrors Counter32,
169 pmPolicyDebugging INTEGER,
170 pmPolicyAdminStatus INTEGER,
171 pmPolicyStorageType StorageType,
172 pmPolicyRowStatus RowStatus
178 pmPolicyAdminGroup OBJECT-TYPE
179 SYNTAX PmUTF8String (SIZE(0..32))
180 MAX-ACCESS not-accessible
183 "An administratively assigned string that can be used to group
184 policies for convenience, for readability, or to simplify
185 configuration of access control.
187 The value of this string does not affect policy processing in
188 any way. If grouping is not desired or necessary, this object
189 may be set to a zero-length string."
190 ::= { pmPolicyEntry 1 }
192 pmPolicyIndex OBJECT-TYPE
193 SYNTAX Unsigned32 (1..4294967295)
194 MAX-ACCESS not-accessible
197 "A unique index for this policy entry, unique among all
198 policies regardless of administrative group."
199 ::= { pmPolicyEntry 2 }
201 pmPolicyPrecedenceGroup OBJECT-TYPE
202 SYNTAX PmUTF8String (SIZE (0..32))
203 MAX-ACCESS read-create
206 "An administratively assigned string that is used to group
207 policies. For each element, only one policy in the same
208 precedence group may be active on that element. If multiple
209 policies would be active on an element (because their
210 conditions return non-zero), the execution environment will
211 only allow the policy with the highest value of
212 pmPolicyPrecedence to be active.
214 All values of this object must have been successfully
215 transformed by Stringprep RFC 3454. Management stations
216 must perform this translation and must only set this object to
217 string values that have been transformed."
218 ::= { pmPolicyEntry 3 }
220 pmPolicyPrecedence OBJECT-TYPE
221 SYNTAX Unsigned32 (0..65535)
222 MAX-ACCESS read-create
228 "If, while checking to see which policy conditions match an
229 element, 2 or more ready policies in the same precedence group
230 match the same element, the pmPolicyPrecedence object provides
231 the rule to arbitrate which single policy will be active on
232 'this element'. Of policies in the same precedence group, only
233 the ready and matching policy with the highest precedence
234 value (e.g., 2 is higher than 1) will have its policy action
235 periodically executed on 'this element'.
237 When a policy is active on an element but the condition ceases
238 to match the element, its action (if currently running) will
239 be allowed to finish and then the condition-matching ready
240 policy with the next-highest precedence will immediately
241 become active (and have its action run immediately). If the
242 condition of a higher-precedence ready policy suddenly begins
243 matching an element, the previously-active policy's action (if
244 currently running) will be allowed to finish and then the
245 higher precedence policy will immediately become active. Its
246 action will run immediately, and any lower-precedence matching
247 policy will not be active anymore.
249 In the case where multiple ready policies share the highest
250 value, it is an implementation-dependent matter as to which
251 single policy action will be chosen.
253 Note that if it is necessary to take certain actions after a
254 policy is no longer active on an element, these actions should
255 be included in a lower-precedence policy that is in the same
257 ::= { pmPolicyEntry 4 }
259 pmPolicySchedule OBJECT-TYPE
260 SYNTAX Unsigned32 (1..4294967295)
261 MAX-ACCESS read-create
264 "This policy will be ready if any of the associated schedule
267 If the value of this object is 0, this policy is always
270 If the value of this object is non-zero but doesn't
271 refer to a schedule group that includes an active schedule,
272 then the policy will not be ready, even if this is due to a
273 misconfiguration of this object or the pmSchedTable."
274 ::= { pmPolicyEntry 5 }
278 pmPolicyElementTypeFilter OBJECT-TYPE
279 SYNTAX PmUTF8String (SIZE (0..128))
280 MAX-ACCESS read-create
283 "This object specifies the element types for which this policy
286 The format of this object will be a sequence of
287 pmElementTypeRegOIDPrefix values, encoded in the following
290 elementTypeFilter: oid [ ';' oid ]*
291 oid: subid [ '.' subid ]*
292 subid: '0' | decimal_constant
294 For example, to register for the policy to be run on all
295 interface elements, the 'ifEntry' element type will be
296 registered as '1.3.6.1.2.1.2.2.1'.
298 If a value is included that does not represent a registered
299 pmElementTypeRegOIDPrefix, then that value will be ignored."
300 ::= { pmPolicyEntry 6 }
302 pmPolicyConditionScriptIndex OBJECT-TYPE
303 SYNTAX Unsigned32 (1..4294967295)
307 "A pointer to the row or rows in the pmPolicyCodeTable that
308 contain the condition code for this policy. When a policy
309 entry is created, a pmPolicyCodeIndex value unused by this
310 policy's adminGroup will be assigned to this object.
312 A policy condition is one or more PolicyScript statements
313 that result(s) in a boolean value that represents whether
314 an element is a member of a set of elements upon which an
315 action is to be performed. If a policy is ready and the
316 condition returns true for an element of a proper element
317 type, and if no higher-precedence policy should be active,
318 then the policy is active on that element.
320 Condition evaluation stops immediately when any run-time
321 exception is detected, and the policyAction is not executed.
323 The policyCondition is evaluated for various elements. Any
324 element for which the policyCondition returns any nonzero value
325 will match the condition and will have the associated
329 policyAction executed on that element unless a
330 higher-precedence policy in the same precedence group also
331 matches 'this element'.
333 If the condition object is empty (contains no code) or
334 otherwise does not return a value, the element will not be
337 When this condition is executed, if SNMP requests are made to
338 the local system and secModel/secName/secLevel aren't
339 specified, access to objects is under the security
340 credentials of the requester who most recently modified the
341 associated pmPolicyAdminStatus object. If SNMP requests are
342 made in which secModel/secName/secLevel are specified, then
343 the specified credentials are retrieved from the local
344 configuration datastore only if VACM is configured to
345 allow access to the requester who most recently modified the
346 associated pmPolicyAdminStatus object. See the Security
347 Considerations section for more information."
348 ::= { pmPolicyEntry 7 }
350 pmPolicyActionScriptIndex OBJECT-TYPE
351 SYNTAX Unsigned32 (1..4294967295)
355 "A pointer to the row or rows in the pmPolicyCodeTable that
356 contain the action code for this policy. When a policy entry
357 is created, a pmPolicyCodeIndex value unused by this policy's
358 adminGroup will be assigned to this object.
360 A PolicyAction is an operation performed on a
361 set of elements for which the policy is active.
363 Action evaluation stops immediately when any run-time
364 exception is detected.
366 When this condition is executed, if SNMP requests are made to
367 the local system and secModel/secName/secLevel aren't
368 specified, access to objects is under the security
369 credentials of the requester who most recently modified the
370 associated pmPolicyAdminStatus object. If SNMP requests are
371 made in which secModel/secName/secLevel are specified, then
372 the specified credentials are retrieved from the local
373 configuration datastore only if VACM is configured to
374 allow access to the requester who most recently modified the
375 associated pmPolicyAdminStatus object. See the Security
376 Considerations section for more information."
380 ::= { pmPolicyEntry 8 }
382 pmPolicyParameters OBJECT-TYPE
383 SYNTAX OCTET STRING (SIZE (0..65535))
384 MAX-ACCESS read-create
387 "From time to time, policy scripts may seek one or more
388 parameters (e.g., site-specific constants). These parameters
389 may be installed with the script in this object and are
390 accessible to the script via the getParameters() function. If
391 it is necessary for multiple parameters to be passed to the
392 script, the script can choose whatever encoding/delimiting
393 mechanism is most appropriate."
394 ::= { pmPolicyEntry 9 }
396 pmPolicyConditionMaxLatency OBJECT-TYPE
397 SYNTAX Unsigned32 (0..2147483647)
399 MAX-ACCESS read-create
402 "Every element under the control of this agent is
403 re-checked periodically to see whether it is under control
404 of this policy by re-running the condition for this policy.
405 This object lets the manager control the maximum amount of
406 time that may pass before an element is re-checked.
408 In other words, in any given interval of this duration, all
409 elements must be re-checked. Note that how the policy agent
410 schedules the checking of various elements within this
411 interval is an implementation-dependent matter.
412 Implementations may wish to re-run a condition more
413 quickly if they note a change to the role strings for an
415 ::= { pmPolicyEntry 10 }
417 pmPolicyActionMaxLatency OBJECT-TYPE
418 SYNTAX Unsigned32 (0..2147483647)
420 MAX-ACCESS read-create
423 "Every element that matches this policy's condition and is
424 therefore under control of this policy will have this policy's
425 action executed periodically to ensure that the element
426 remains in the state dictated by the policy.
427 This object lets the manager control the maximum amount of
431 time that may pass before an element has the action run on
434 In other words, in any given interval of this duration, all
435 elements under control of this policy must have the action run
436 on them. Note that how the policy agent schedules the policy
437 action on various elements within this interval is an
438 implementation-dependent matter."
439 ::= { pmPolicyEntry 11 }
441 pmPolicyMaxIterations OBJECT-TYPE
443 MAX-ACCESS read-create
446 "If a condition or action script iterates in loops too many
447 times in one invocation, the execution environment may
448 consider it in an infinite loop or otherwise not acting
449 as intended and may be terminated by the execution
450 environment. The execution environment will count the
451 cumulative number of times all 'for' or 'while' loops iterated
452 and will apply a threshold to determine when to terminate the
453 script. What threshold the execution environment uses is an
454 implementation-dependent manner, but the value of
455 this object SHOULD be the basis for choosing the threshold for
456 each script. The value of this object represents a
457 policy-specific threshold and can be tuned for policies of
458 varying workloads. If this value is zero, no
459 threshold will be enforced except for any
460 implementation-dependent maximum. Regardless of this value,
461 the agent is allowed to terminate any script invocation that
462 exceeds a local CPU or memory limitation.
464 Note that the condition and action invocations are tracked
466 ::= { pmPolicyEntry 12 }
468 pmPolicyDescription OBJECT-TYPE
470 MAX-ACCESS read-create
473 "A description of this rule and its significance, typically
474 provided by a human."
475 ::= { pmPolicyEntry 13 }
477 pmPolicyMatches OBJECT-TYPE
486 "The number of elements that, in their most recent execution
487 of the associated condition, were matched by the condition."
488 ::= { pmPolicyEntry 14 }
490 pmPolicyAbnormalTerminations OBJECT-TYPE
496 "The number of elements that, in their most recent execution
497 of the associated condition or action, have experienced a
498 run-time exception and terminated abnormally. Note that if a
499 policy was experiencing a run-time exception while processing
500 a particular element but runs normally on a subsequent
501 invocation, this number can decline."
502 ::= { pmPolicyEntry 15 }
504 pmPolicyExecutionErrors OBJECT-TYPE
510 "The total number of times that execution of this policy's
511 condition or action has been terminated due to run-time
513 ::= { pmPolicyEntry 16 }
515 pmPolicyDebugging OBJECT-TYPE
520 MAX-ACCESS read-create
523 "The status of debugging for this policy. If this is turned
524 on(2), log entries will be created in the pmDebuggingTable
525 for each run-time exception that is experienced by this
528 ::= { pmPolicyEntry 17 }
533 pmPolicyAdminStatus OBJECT-TYPE
539 MAX-ACCESS read-create
542 "The administrative status of this policy.
544 The policy will be valid only if the associated
545 pmPolicyRowStatus is set to active(1) and this object is set
546 to enabled(2) or enabledAutoRemove(3).
548 If this object is set to enabledAutoRemove(3), the next time
549 the associated schedule moves from the active state to the
550 inactive state, this policy will immediately be deleted,
551 including any associated entries in the pmPolicyCodeTable.
553 The following related objects may not be changed unless this
554 object is set to disabled(1):
555 pmPolicyPrecedenceGroup, pmPolicyPrecedence,
556 pmPolicySchedule, pmPolicyElementTypeFilter,
557 pmPolicyConditionScriptIndex, pmPolicyActionScriptIndex,
558 pmPolicyParameters, and any pmPolicyCodeTable row
559 referenced by this policy.
560 In order to change any of these parameters, the policy must
561 be moved to the disabled(1) state, changed, and then
564 When this policy moves to either enabled state from the
565 disabled state, any cached values of policy condition must be
566 erased, and any Policy or PolicyElement scratchpad values for
567 this policy should be removed. Policy execution will begin by
568 testing the policy condition on all appropriate elements."
569 ::= { pmPolicyEntry 18 }
571 pmPolicyStorageType OBJECT-TYPE
573 MAX-ACCESS read-create
576 "This object defines whether this policy and any associated
577 entries in the pmPolicyCodeTable are kept in volatile storage
578 and lost upon reboot or if this row is backed up by
579 non-volatile or permanent storage.
584 If the value of this object is 'permanent', the values for
585 the associated pmPolicyAdminStatus object must remain
587 ::= { pmPolicyEntry 19 }
589 pmPolicyRowStatus OBJECT-TYPE
591 MAX-ACCESS read-create
594 "The row status of this pmPolicyEntry.
596 The status may not be set to active if any of the related
597 entries in the pmPolicyCode table do not have a status of
598 active or if any of the objects in this row are not set to
599 valid values. Only the following objects may be modified
600 while in the active state:
602 pmPolicyConditionMaxLatency
603 pmPolicyActionMaxLatency
607 If this row is deleted, any associated entries in the
608 pmPolicyCodeTable will be deleted as well."
609 ::= { pmPolicyEntry 20 }
613 pmPolicyCodeTable OBJECT-TYPE
614 SYNTAX SEQUENCE OF PmPolicyCodeEntry
615 MAX-ACCESS not-accessible
618 "The pmPolicyCodeTable stores the code for policy conditions and
621 An example of the relationships between the code table and the
622 policy table follows:
625 AdminGroup Index ConditionScriptIndex ActionScriptIndex
631 AdminGroup ScriptIndex Segment Note
635 '' 1 1 Filter for policy A
636 '' 2 1 Action for policy A
637 'oper' 1 1 Filter for policy B
638 'oper' 2 1 Action 1/2 for policy B
639 'oper' 2 2 Action 2/2 for policy B
640 'oper' 3 1 Filter for policy C
641 'oper' 4 1 Action for policy C
643 In this example, there are 3 policies: 1 in the '' adminGroup,
644 and 2 in the 'oper' adminGroup. Policy A has been assigned
645 script indexes 1 and 2 (these script indexes are assigned out of
646 a separate pool per adminGroup), with 1 code segment each for
647 the filter and the action. Policy B has been assigned script
648 indexes 1 and 2 (out of the pool for the 'oper' adminGroup).
649 While the filter has 1 segment, the action is longer and is
650 loaded into 2 segments. Finally, Policy C has been assigned
651 script indexes 3 and 4, with 1 code segment each for the filter
655 pmPolicyCodeEntry OBJECT-TYPE
656 SYNTAX PmPolicyCodeEntry
657 MAX-ACCESS not-accessible
660 "An entry in the policy code table representing one code
661 segment. Entries that share a common AdminGroup/ScriptIndex
662 pair make up a single script. Valid values of ScriptIndex are
663 retrieved from pmPolicyConditionScriptIndex and
664 pmPolicyActionScriptIndex after a pmPolicyEntry is
665 created. Segments of code can then be written to this table
666 with the learned ScriptIndex values.
668 The StorageType of this entry is determined by the value of
669 the associated pmPolicyStorageType.
671 The pmPolicyAdminGroup element of the index represents the
672 administrative group of the policy of which this code entry is
674 INDEX { pmPolicyAdminGroup, pmPolicyCodeScriptIndex,
675 pmPolicyCodeSegment }
676 ::= { pmPolicyCodeTable 1 }
678 PmPolicyCodeEntry ::= SEQUENCE {
679 pmPolicyCodeScriptIndex Unsigned32,
680 pmPolicyCodeSegment Unsigned32,
681 pmPolicyCodeText PmUTF8String,
682 pmPolicyCodeStatus RowStatus
688 pmPolicyCodeScriptIndex OBJECT-TYPE
689 SYNTAX Unsigned32 (1..4294967295)
690 MAX-ACCESS not-accessible
693 "A unique index for each policy condition or action. The code
694 for each such condition or action may be composed of multiple
695 entries in this table if the code cannot fit in one entry.
696 Values of pmPolicyCodeScriptIndex may not be used unless
697 they have previously been assigned in the
698 pmPolicyConditionScriptIndex or pmPolicyActionScriptIndex
700 ::= { pmPolicyCodeEntry 1 }
702 pmPolicyCodeSegment OBJECT-TYPE
703 SYNTAX Unsigned32 (1..4294967295)
704 MAX-ACCESS not-accessible
707 "A unique index for each segment of a policy condition or
710 When a policy condition or action spans multiple entries in
711 this table, the code of that policy starts from the
712 lowest-numbered segment and continues with increasing segment
713 values until it ends with the highest-numbered segment."
714 ::= { pmPolicyCodeEntry 2 }
716 pmPolicyCodeText OBJECT-TYPE
717 SYNTAX PmUTF8String (SIZE (1..1024))
718 MAX-ACCESS read-create
721 "A segment of policy code (condition or action). Lengthy
722 Policy conditions or actions may be stored in multiple
723 segments in this table that share the same value of
724 pmPolicyCodeScriptIndex. When multiple segments are used, it
725 is recommended that each segment be as large as is practical.
727 Entries in this table are associated with policies by values
728 of the pmPolicyConditionScriptIndex and
729 pmPolicyActionScriptIndex objects. If the status of the
730 related policy is active, then this object may not be
732 ::= { pmPolicyCodeEntry 3 }
737 pmPolicyCodeStatus OBJECT-TYPE
739 MAX-ACCESS read-create
742 "The status of this code entry.
744 Entries in this table are associated with policies by values
745 of the pmPolicyConditionScriptIndex and
746 pmPolicyActionScriptIndex objects. If the status of the
747 related policy is active, then this object can not be
748 modified (i.e., deleted or set to notInService), nor may new
751 If the status of this object is active, no objects in this
752 row may be modified."
753 ::= { pmPolicyCodeEntry 4 }
755 -- Element Type Registration Table
757 pmElementTypeRegTable OBJECT-TYPE
758 SYNTAX SEQUENCE OF PmElementTypeRegEntry
759 MAX-ACCESS not-accessible
762 "A registration table for element types managed by this
765 The Element Type Registration table allows the manager to
766 learn what element types are being managed by the system and
767 to register new types, if necessary. An element type is
768 registered by providing the OID of an SNMP object (i.e.,
769 without the instance). Each SNMP instance that exists under
770 that object is a distinct element. The index of the element is
771 the index part of the discovered OID. This index will be
772 supplied to policy conditions and actions so that this code
773 can inspect and configure the element.
775 For example, this table might contain the following entries.
776 The first three are agent-installed, and the 4th was
777 downloaded by a management station:
779 OIDPrefix MaxLatency Description StorageType
780 ifEntry 100 mS interfaces - builtin readOnly
781 0.0 100 mS system element - builtin readOnly
782 frCircuitEntry 100 mS FR Circuits - builtin readOnly
783 hrSWRunEntry 60 sec Running Processes volatile
788 Note that agents may automatically configure elements in this
789 table for frequently used element types (interfaces, circuits,
790 etc.). In particular, it may configure elements for whom
791 discovery is optimized in one or both of the following ways:
793 1. The agent may discover elements by scanning internal data
794 structures as opposed to issuing local SNMP requests. It is
795 possible to recreate the exact semantics described in this
796 table even if local SNMP requests are not issued.
798 2. The agent may receive asynchronous notification of new
799 elements (for example, 'card inserted') and use that
800 information to instantly create elements rather than
801 through polling. A similar feature might be available for
802 the deletion of elements.
804 Note that the disposition of agent-installed entries is
805 described by the pmPolicyStorageType object."
808 pmElementTypeRegEntry OBJECT-TYPE
809 SYNTAX PmElementTypeRegEntry
810 MAX-ACCESS not-accessible
813 "A registration of an element type.
815 Note that some values of this table's index may result in an
816 instance name that exceeds a length of 128 sub-identifiers,
817 which exceeds the maximum for the SNMP protocol.
818 Implementations should take care to avoid such values."
819 INDEX { pmElementTypeRegOIDPrefix }
820 ::= { pmElementTypeRegTable 1 }
822 PmElementTypeRegEntry ::= SEQUENCE {
823 pmElementTypeRegOIDPrefix OBJECT IDENTIFIER,
824 pmElementTypeRegMaxLatency Unsigned32,
825 pmElementTypeRegDescription PmUTF8String,
826 pmElementTypeRegStorageType StorageType,
827 pmElementTypeRegRowStatus RowStatus
830 pmElementTypeRegOIDPrefix OBJECT-TYPE
831 SYNTAX OBJECT IDENTIFIER
832 MAX-ACCESS not-accessible
835 "This OBJECT IDENTIFIER value identifies a table in which all
839 elements of this type will be found. Every row in the
840 referenced table will be treated as an element for the
841 period of time that it remains in the table. The agent will
842 then execute policy conditions and actions as appropriate on
843 each of these elements.
845 This object identifier value is specified down to the 'entry'
846 component (e.g., ifEntry) of the identifier.
848 The index of each discovered row will be passed to each
849 invocation of the policy condition and policy action.
851 The actual mechanism by which instances are discovered is
852 implementation dependent. Periodic walks of the table to
853 discover the rows in the table is one such mechanism. This
854 mechanism has the advantage that it can be performed by an
855 agent with no knowledge of the names, syntax, or semantics
856 of the MIB objects in the table. This mechanism also serves as
857 the reference design. Other implementation-dependent
858 mechanisms may be implemented that are more efficient (perhaps
859 because they are hard coded) or that don't require polling.
860 These mechanisms must discover the same elements as would the
861 table-walking reference design.
863 This object can contain a OBJECT IDENTIFIER, '0.0'.
864 '0.0' represents the single instance of the system
865 itself and provides an execution context for policies to
866 operate on the 'system element' and on MIB objects
867 modeled as scalars. For example, '0.0' gives an execution
868 context for policy-based selection of the operating system
869 code version (likely modeled as a scalar MIB object). The
870 element type '0.0' always exists; as a consequence, no actual
871 discovery will take place, and the pmElementTypeRegMaxLatency
872 object will have no effect for the '0.0' element
873 type. However, if the '0.0' element type is not registered in
874 the table, policies will not be executed on the '0.0' element.
876 When a policy is invoked on behalf of a '0.0' entry in this
877 table, the element name will be '0.0', and there is no index
878 of 'this element' (in other words, it has zero length).
880 As this object is used in the index for the
881 pmElementTypeRegTable, users of this table should be careful
882 not to create entries that would result in instance names with
883 more than 128 sub-identifiers."
884 ::= { pmElementTypeRegEntry 2 }
890 pmElementTypeRegMaxLatency OBJECT-TYPE
893 MAX-ACCESS read-create
896 "The PM agent is responsible for discovering new elements of
897 types that are registered. This object lets the manager
898 control the maximum amount of time that may pass between the
899 time an element is created and when it is discovered.
901 In other words, in any given interval of this duration, all
902 new elements must be discovered. Note that how the policy
903 agent schedules the checking of various elements within this
904 interval is an implementation-dependent matter."
905 ::= { pmElementTypeRegEntry 3 }
907 pmElementTypeRegDescription OBJECT-TYPE
908 SYNTAX PmUTF8String (SIZE (0..64))
909 MAX-ACCESS read-create
912 "A descriptive label for this registered type."
913 ::= { pmElementTypeRegEntry 4 }
915 pmElementTypeRegStorageType OBJECT-TYPE
917 MAX-ACCESS read-create
920 "This object defines whether this row is kept
921 in volatile storage and lost upon reboot or
922 backed up by non-volatile or permanent storage.
924 If the value of this object is 'permanent', no values in the
925 associated row have to be writable."
926 ::= { pmElementTypeRegEntry 5 }
928 pmElementTypeRegRowStatus OBJECT-TYPE
930 MAX-ACCESS read-create
933 "The status of this registration entry.
935 If the value of this object is active, no objects in this row
937 ::= { pmElementTypeRegEntry 6 }
943 pmRoleTable OBJECT-TYPE
944 SYNTAX SEQUENCE OF PmRoleEntry
945 MAX-ACCESS not-accessible
948 "The pmRoleTable is a read-create table that organizes role
949 strings sorted by element. This table is used to create and
950 modify role strings and their associations, as well as to allow
951 a management station to learn about the existence of roles and
954 It is the responsibility of the agent to keep track of any
955 re-indexing of the underlying SNMP elements and to continue to
956 associate role strings with the element with which they were
957 initially configured.
959 Policy MIB agents that have elements in multiple local SNMP
960 contexts have to allow some roles to be assigned to elements
961 in particular contexts. This is particularly true when some
962 elements have the same names in different contexts and the
963 context is required to disambiguate them. In those situations,
964 a value for the pmRoleContextName may be provided. When a
965 pmRoleContextName value is not provided, the assignment is to
966 the element in the default context.
968 Policy MIB agents that discover elements on other systems and
969 execute policies on their behalf need to have access to role
970 information for these remote elements. In such situations,
971 role assignments for other systems can be stored in this table
972 by providing values for the pmRoleContextEngineID parameters.
976 element role context ctxEngineID #comment
977 ifindex.1 gold local, default context
978 ifindex.2 gold local, default context
979 repeaterid.1 foo rptr1 local, rptr1 context
980 repeaterid.1 bar rptr2 local, rptr2 context
981 ifindex.1 gold '' A different system
982 ifindex.1 gold '' B different system
984 The agent must store role string associations in non-volatile
992 pmRoleEntry OBJECT-TYPE
994 MAX-ACCESS not-accessible
997 "A role string entry associates a role string with an
1000 Note that some combinations of index values may result in an
1001 instance name that exceeds a length of 128 sub-identifiers,
1002 which exceeds the maximum for the SNMP
1003 protocol. Implementations should take care to avoid such
1005 INDEX { pmRoleElement, pmRoleContextName,
1006 pmRoleContextEngineID, pmRoleString }
1007 ::= { pmRoleTable 1 }
1009 PmRoleEntry ::= SEQUENCE {
1010 pmRoleElement RowPointer,
1011 pmRoleContextName SnmpAdminString,
1012 pmRoleContextEngineID OCTET STRING,
1013 pmRoleString PmUTF8String,
1014 pmRoleStatus RowStatus
1017 pmRoleElement OBJECT-TYPE
1019 MAX-ACCESS not-accessible
1022 "The element with which this role string is associated.
1024 For example, if the element is interface 3, then this object
1025 will contain the OID for 'ifIndex.3'.
1027 If the agent assigns new indexes in the MIB table to
1028 represent the same underlying element (re-indexing), the
1029 agent will modify this value to contain the new index for the
1032 As this object is used in the index for the pmRoleTable,
1033 users of this table should be careful not to create entries
1034 that would result in instance names with more than 128
1036 ::= { pmRoleEntry 1 }
1043 pmRoleContextName OBJECT-TYPE
1044 SYNTAX SnmpAdminString (SIZE (0..32))
1045 MAX-ACCESS not-accessible
1048 "If the associated element is not in the default SNMP context
1049 for the target system, this object is used to identify the
1050 context. If the element is in the default context, this object
1051 is equal to the empty string."
1052 ::= { pmRoleEntry 2 }
1054 pmRoleContextEngineID OBJECT-TYPE
1055 SYNTAX OCTET STRING (SIZE (0 | 5..32))
1056 MAX-ACCESS not-accessible
1059 "If the associated element is on a remote system, this object
1060 is used to identify the remote system. This object contains
1061 the contextEngineID of the system for which this role string
1062 assignment is valid. If the element is on the local system
1063 this object will be the empty string."
1064 ::= { pmRoleEntry 3 }
1066 pmRoleString OBJECT-TYPE
1067 SYNTAX PmUTF8String (SIZE (0..64))
1068 MAX-ACCESS not-accessible
1071 "The role string that is associated with an element through
1072 this table. All role strings must have been successfully
1073 transformed by Stringprep RFC 3454. Management stations
1074 must perform this translation and must only set this object
1075 to string values that have been transformed.
1077 A role string is an administratively specified characteristic
1078 of a managed element (for example, an interface). It is a
1079 selector for policy rules, that determines the applicability of
1080 the rule to a particular managed element."
1081 ::= { pmRoleEntry 4 }
1083 pmRoleStatus OBJECT-TYPE
1085 MAX-ACCESS read-create
1088 "The status of this role string.
1094 If the value of this object is active, no object in this row
1096 ::= { pmRoleEntry 5 }
1098 -- Capabilities table
1100 pmCapabilitiesTable OBJECT-TYPE
1101 SYNTAX SEQUENCE OF PmCapabilitiesEntry
1102 MAX-ACCESS not-accessible
1105 "The pmCapabilitiesTable contains a description of
1106 the inherent capabilities of the system so that
1107 management stations can learn of an agent's capabilities and
1108 differentially install policies based on the capabilities.
1110 Capabilities are expressed at the system level. There can be
1111 variation in how capabilities are realized from one vendor or
1112 model to the next. Management systems should consider these
1113 differences before selecting which policy to install in a
1117 pmCapabilitiesEntry OBJECT-TYPE
1118 SYNTAX PmCapabilitiesEntry
1119 MAX-ACCESS not-accessible
1122 "A capabilities entry holds an OID indicating support for a
1123 particular capability. Capabilities may include hardware and
1124 software functions and the implementation of MIB
1125 Modules. The semantics of the OID are defined in the
1126 description of pmCapabilitiesType.
1128 Entries appear in this table if any element in the system has
1129 a specific capability. A capability should appear in this
1130 table only once, regardless of the number of elements in the
1131 system with that capability. An entry is removed from this
1132 table when the last element in the system that has the
1133 capability is removed. In some cases, capabilities are
1134 dynamic and exist only in software. This table should have an
1135 entry for the capability even if there are no current
1136 instances. Examples include systems with database or WEB
1137 services. While the system has the ability to create new
1138 databases or WEB services, the entry should exist. In these
1139 cases, the ability to create these services could come from
1140 other processes that are running in the system, even though
1141 there are no currently open databases or WEB servers running.
1145 Capabilities may include the implementation of MIB Modules
1146 but need not be limited to those that represent MIB Modules
1147 with one or more configurable objects. It may also be
1148 valuable to include entries for capabilities that do not
1149 include configuration objects, as that information, in
1150 combination with other entries in this table, might be used
1151 by the management software to determine whether to
1154 Vendor software may also add entries in this table to express
1155 capabilities from their private branch.
1157 Note that some values of this table's index may result in an
1158 instance name that exceeds a length of 128 sub-identifiers,
1159 which exceeds the maximum for the SNMP
1160 protocol. Implementations should take care to avoid such
1162 INDEX { pmCapabilitiesType }
1163 ::= { pmCapabilitiesTable 1 }
1165 PmCapabilitiesEntry ::= SEQUENCE {
1166 pmCapabilitiesType OBJECT IDENTIFIER
1169 pmCapabilitiesType OBJECT-TYPE
1170 SYNTAX OBJECT IDENTIFIER
1171 MAX-ACCESS read-only
1174 "There are three types of OIDs that may be present in the
1175 pmCapabilitiesType object:
1177 1) The OID of a MODULE-COMPLIANCE macro that represents the
1178 highest level of compliance realized by the agent for that
1179 MIB Module. For example, an agent that implements the OSPF
1180 MIB Module at the highest level of compliance would have the
1181 value of '1.3.6.1.2.1.14.15.2' in the pmCapabilitiesType
1182 object. For software that realizes standard MIB
1183 Modules that do not have compliance statements, the base OID
1184 of the MIB Module should be used instead. If the OSPF MIB
1185 Module had not been created with a compliance statement, then
1186 the correct value of the pmCapabilitiesType would be
1187 '1.3.6.1.2.1.14'. In the cases where multiple compliance
1188 statements in a MIB Module are supported by the agent, and
1189 where one compliance statement does not by definition include
1190 the other, each of the compliance OIDs would have entries in
1196 MIB Documents can contain more than one MIB Module. In the
1197 case of OSPF, there is a second MIB Module
1198 that describes notifications for the OSPF Version 2 Protocol.
1199 If the agent also realizes these functions, an entry will
1200 also exist for those capabilities in this table.
1202 2) Vendors should install OIDs in this table that represent
1203 vendor-specific capabilities. These capabilities can be
1204 expressed just as those described above for MIB Modules on
1205 the standards track. In addition, vendors may install any
1206 OID they desire from their registered branch. The OIDs may be
1207 at any level of granularity, from the root of their entire
1208 branch to an instance of a single OID. There is no
1209 restriction on the number of registrations they may make,
1210 though care should be taken to avoid unnecessary entries.
1212 3) OIDs that represent one capability or a collection of
1213 capabilities that could be any collection of MIB Objects or
1214 hardware or software functions may be created in working
1215 groups and registered in a MIB Module. Other entities (e.g.,
1216 vendors) may also make registrations. Software will register
1217 these standard capability OIDs, as well as vendor specific
1220 If the OID for a known capability is not present in the
1221 table, then it should be assumed that the capability is not
1224 As this object is used in the index for the
1225 pmCapabilitiesTable, users of this table should be careful
1226 not to create entries that would result in instance names
1227 with more than 128 sub-identifiers."
1228 ::= { pmCapabilitiesEntry 1 }
1230 -- Capabilities override table
1232 pmCapabilitiesOverrideTable OBJECT-TYPE
1233 SYNTAX SEQUENCE OF PmCapabilitiesOverrideEntry
1234 MAX-ACCESS not-accessible
1237 "The pmCapabilitiesOverrideTable allows management stations
1238 to override pmCapabilitiesTable entries that have been
1239 registered by the agent. This facility can be used to avoid
1240 situations in which managers in the network send policies to
1241 a system that has advertised a capability in the
1242 pmCapabilitiesTable but that should not be installed on this
1243 particular system. One example could be newly deployed
1247 equipment that is still in a trial state in a trial state or
1248 resources reserved for some other administrative reason.
1249 This table can also be used to override entries in the
1250 pmCapabilitiesTable through the use of the
1251 pmCapabilitiesOverrideState object. Capabilities can also be
1252 declared available in this table that were not registered in
1253 the pmCapabilitiesTable. A management application can make
1254 an entry in this table for any valid OID and declare the
1255 capability available by setting the
1256 pmCapabilitiesOverrideState for that row to valid(1)."
1259 pmCapabilitiesOverrideEntry OBJECT-TYPE
1260 SYNTAX PmCapabilitiesOverrideEntry
1261 MAX-ACCESS not-accessible
1264 "An entry in this table indicates whether a particular
1265 capability is valid or invalid.
1267 Note that some values of this table's index may result in an
1268 instance name that exceeds a length of 128 sub-identifiers,
1269 which exceeds the maximum for the SNMP
1270 protocol. Implementations should take care to avoid such
1272 INDEX { pmCapabilitiesOverrideType }
1273 ::= { pmCapabilitiesOverrideTable 1 }
1275 PmCapabilitiesOverrideEntry ::= SEQUENCE {
1276 pmCapabilitiesOverrideType OBJECT IDENTIFIER,
1277 pmCapabilitiesOverrideState INTEGER,
1278 pmCapabilitiesOverrideRowStatus RowStatus
1281 pmCapabilitiesOverrideType OBJECT-TYPE
1282 SYNTAX OBJECT IDENTIFIER
1283 MAX-ACCESS not-accessible
1286 "This is the OID of the capability that is declared valid or
1287 invalid by the pmCapabilitiesOverrideState value for this
1288 row. Any valid OID, as described in the pmCapabilitiesTable,
1289 is permitted in the pmCapabilitiesOverrideType object. This
1290 means that capabilities can be expressed at any level, from a
1291 specific instance of an object to a table or entire module.
1292 There are no restrictions on whether these objects are from
1293 standards track MIB documents or in the private branch of the
1298 If an entry exists in this table for which there is a
1299 corresponding entry in the pmCapabilitiesTable, then this entry
1300 shall have precedence over the entry in the
1301 pmCapabilitiesTable. All entries in this table must be
1302 preserved across reboots.
1304 As this object is used in the index for the
1305 pmCapabilitiesOverrideTable, users of this table should be
1306 careful not to create entries that would result in instance
1307 names with more than 128 sub-identifiers."
1308 ::= { pmCapabilitiesOverrideEntry 1 }
1310 pmCapabilitiesOverrideState OBJECT-TYPE
1315 MAX-ACCESS read-create
1318 "A pmCapabilitiesOverrideState of invalid indicates that
1319 management software should not send policies to this system
1320 for the capability identified in the
1321 pmCapabilitiesOverrideType for this row of the table. This
1322 behavior is the same whether the capability represented by
1323 the pmCapabilitiesOverrideType exists only in this table
1324 (that is, it was installed by an external management
1325 application) or exists in this table as well as the
1326 pmCapabilitiesTable. This would be the case when a manager
1327 wanted to disable a capability that the native management
1328 system found and registered in the pmCapabilitiesTable.
1330 An entry in this table that has a pmCapabilitiesOverrideState
1331 of valid should be treated as though it appeared in the
1332 pmCapabilitiesTable. If the entry also exists in the
1333 pmCapabilitiesTable in the pmCapabilitiesType object, and if
1334 the value of this object is valid, then the system shall
1335 operate as though this entry did not exist and policy
1336 installations and executions will continue in a normal
1338 ::= { pmCapabilitiesOverrideEntry 2 }
1340 pmCapabilitiesOverrideRowStatus OBJECT-TYPE
1342 MAX-ACCESS read-create
1345 "The row status of this pmCapabilitiesOverrideEntry.
1349 If the value of this object is active, no object in this row
1351 ::= { pmCapabilitiesOverrideEntry 3 }
1353 -- The Schedule Group
1355 pmSchedLocalTime OBJECT-TYPE
1356 SYNTAX DateAndTime (SIZE (11))
1357 MAX-ACCESS read-only
1360 "The local time used by the scheduler. Schedules that
1361 refer to calendar time will use the local time indicated
1362 by this object. An implementation MUST return all 11 bytes
1363 of the DateAndTime textual-convention so that a manager
1364 may retrieve the offset from GMT time."
1368 -- The schedule table that controls the scheduler.
1371 pmSchedTable OBJECT-TYPE
1372 SYNTAX SEQUENCE OF PmSchedEntry
1373 MAX-ACCESS not-accessible
1376 "This table defines schedules for policies."
1379 pmSchedEntry OBJECT-TYPE
1381 MAX-ACCESS not-accessible
1384 "An entry describing a particular schedule.
1386 Unless noted otherwise, writable objects of this row can be
1387 modified independently of the current value of pmSchedRowStatus,
1388 pmSchedAdminStatus and pmSchedOperStatus. In particular, it
1389 is legal to modify pmSchedWeekDay, pmSchedMonth, and
1390 pmSchedDay when pmSchedRowStatus is active."
1391 INDEX { pmSchedIndex }
1392 ::= { pmSchedTable 1 }
1400 PmSchedEntry ::= SEQUENCE {
1401 pmSchedIndex Unsigned32,
1402 pmSchedGroupIndex Unsigned32,
1403 pmSchedDescr PmUTF8String,
1404 pmSchedTimePeriod PmUTF8String,
1407 pmSchedWeekDay BITS,
1408 pmSchedTimeOfDay PmUTF8String,
1409 pmSchedLocalOrUtc INTEGER,
1410 pmSchedStorageType StorageType,
1411 pmSchedRowStatus RowStatus
1414 pmSchedIndex OBJECT-TYPE
1415 SYNTAX Unsigned32 (1..4294967295)
1416 MAX-ACCESS not-accessible
1419 "The locally unique, administratively assigned index for this
1421 ::= { pmSchedEntry 1 }
1423 pmSchedGroupIndex OBJECT-TYPE
1424 SYNTAX Unsigned32 (1..4294967295)
1425 MAX-ACCESS read-create
1428 "The locally unique, administratively assigned index for the
1429 schedule group this scheduling entry belongs to.
1431 To assign multiple schedule entries to the same group, the
1432 pmSchedGroupIndex of each entry in the group will be set to
1433 the same value. This pmSchedGroupIndex value must be equal to
1434 the pmSchedIndex of one of the entries in the group. If the
1435 entry whose pmSchedIndex equals the pmSchedGroupIndex
1436 for the group is deleted, the agent will assign a new
1437 pmSchedGroupIndex to all remaining members of the group.
1439 If an entry is not a member of a group, its pmSchedGroupIndex
1440 must be assigned to the value of its pmSchedIndex.
1442 Policies that are controlled by a group of schedule entries
1443 are active when any schedule in the group is active."
1444 ::= { pmSchedEntry 2 }
1451 pmSchedDescr OBJECT-TYPE
1453 MAX-ACCESS read-create
1456 "The human-readable description of the purpose of this
1459 ::= { pmSchedEntry 3 }
1461 pmSchedTimePeriod OBJECT-TYPE
1462 SYNTAX PmUTF8String (SIZE (0..31))
1463 MAX-ACCESS read-create
1466 "The overall range of calendar dates and times over which this
1467 schedule is active. It is stored in a slightly extended version
1468 of the format for a 'period-explicit' defined in RFC 2445.
1469 This format is expressed as a string representing the
1470 starting date and time, in which the character 'T' indicates
1471 the beginning of the time portion, followed by the solidus
1472 character, '/', followed by a similar string representing an
1473 end date and time. The start of the period MUST be before the
1474 end of the period. Date-Time values are expressed as
1475 substrings of the form 'yyyymmddThhmmss'. For example:
1477 20000101T080000/20000131T130000
1479 January 1, 2000, 0800 through January 31, 2000, 1PM
1481 The 'Date with UTC time' format defined in RFC 2445 in which
1482 the Date-Time string ends with the character 'Z' is not
1485 This 'period-explicit' format is also extended to allow two
1486 special cases in which one of the Date-Time strings is
1487 replaced with a special string defined in RFC 2445:
1489 1. If the first Date-Time value is replaced with the string
1490 'THISANDPRIOR', then the value indicates that the schedule
1491 is active at any time prior to the Date-Time that appears
1494 2. If the second Date-Time is replaced with the string
1495 'THISANDFUTURE', then the value indicates that the schedule
1496 is active at any time after the Date-Time that appears
1502 Note that although RFC 2445 defines these two strings, they are
1503 not specified for use in the 'period-explicit' format. The use
1504 of these strings represents an extension to the
1505 'period-explicit' format."
1506 ::= { pmSchedEntry 4 }
1508 pmSchedMonth OBJECT-TYPE
1524 MAX-ACCESS read-create
1527 "Within the overall time period specified in the
1528 pmSchedTimePeriod object, the value of this object specifies
1529 the specific months within that time period when the schedule
1530 is active. Setting all bits will cause the schedule to act
1531 independently of the month."
1532 DEFVAL { { january, february, march, april, may, june, july,
1533 august, september, october, november, december } }
1534 ::= { pmSchedEntry 5 }
1536 pmSchedDay OBJECT-TYPE
1538 d1(0), d2(1), d3(2), d4(3), d5(4),
1539 d6(5), d7(6), d8(7), d9(8), d10(9),
1540 d11(10), d12(11), d13(12), d14(13), d15(14),
1541 d16(15), d17(16), d18(17), d19(18), d20(19),
1542 d21(20), d22(21), d23(22), d24(23), d25(24),
1543 d26(25), d27(26), d28(27), d29(28), d30(29),
1545 r1(31), r2(32), r3(33), r4(34), r5(35),
1546 r6(36), r7(37), r8(38), r9(39), r10(40),
1547 r11(41), r12(42), r13(43), r14(44), r15(45),
1548 r16(46), r17(47), r18(48), r19(49), r20(50),
1549 r21(51), r22(52), r23(53), r24(54), r25(55),
1553 r26(56), r27(57), r28(58), r29(59), r30(60),
1556 MAX-ACCESS read-create
1559 "Within the overall time period specified in the
1560 pmSchedTimePeriod object, the value of this object specifies
1561 the specific days of the month within that time period when
1562 the schedule is active.
1564 There are two sets of bits one can use to define the day
1567 Enumerations starting with the letter 'd' indicate a
1568 day in a month relative to the first day of a month.
1569 The first day of the month can therefore be specified
1570 by setting the bit d1(0), and d31(30) means the last
1571 day of a month with 31 days.
1573 Enumerations starting with the letter 'r' indicate a
1574 day in a month in reverse order, relative to the last
1575 day of a month. The last day in the month can therefore
1576 be specified by setting the bit r1(31), and r31(61) means
1577 the first day of a month with 31 days.
1579 Setting multiple bits will include several days in the set
1580 of possible days for this schedule. Setting all bits starting
1581 with the letter 'd' or all bits starting with the letter 'r'
1582 will cause the schedule to act independently of the day of the
1584 DEFVAL { { d1, d2, d3, d4, d5, d6, d7, d8, d9, d10,
1585 d11, d12, d13, d14, d15, d16, d17, d18, d19, d20,
1586 d21, d22, d23, d24, d25, d26, d27, d28, d29, d30,
1587 d31, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10,
1588 r11, r12, r13, r14, r15, r16, r17, r18, r19, r20,
1589 r21, r22, r23, r24, r25, r26, r27, r28, r29, r30,
1591 ::= { pmSchedEntry 6 }
1593 pmSchedWeekDay OBJECT-TYPE
1606 MAX-ACCESS read-create
1609 "Within the overall time period specified in the
1610 pmSchedTimePeriod object, the value of this object specifies
1611 the specific days of the week within that time period when
1612 the schedule is active. Setting all bits will cause the
1613 schedule to act independently of the day of the week."
1614 DEFVAL { { sunday, monday, tuesday, wednesday, thursday,
1615 friday, saturday } }
1616 ::= { pmSchedEntry 7 }
1618 pmSchedTimeOfDay OBJECT-TYPE
1619 SYNTAX PmUTF8String (SIZE (0..15))
1620 MAX-ACCESS read-create
1624 "Within the overall time period specified in the
1625 pmSchedTimePeriod object, the value of this object specifies
1626 the range of times in a day when the schedule is active.
1628 This value is stored in a format based on the RFC 2445 format
1629 for 'time': The character 'T' followed by a 'time' string,
1630 followed by the solidus character, '/', followed by the
1631 character 'T', followed by a second time string. The first time
1632 indicates the beginning of the range, and the second time
1633 indicates the end. Thus, this value takes the following
1638 The second substring always identifies a later time than the
1639 first substring. To allow for ranges that span midnight,
1640 however, the value of the second string may be smaller than
1641 the value of the first substring. Thus, 'T080000/T210000'
1642 identifies the range from 0800 until 2100, whereas
1643 'T210000/T080000' identifies the range from 2100 until 0800 of
1646 When a range spans midnight, by definition it includes parts
1647 of two successive days. When one of these days is also
1648 selected by either the MonthOfYearMask, DayOfMonthMask, and/or
1649 DayOfWeekMask, but the other day is not, then the policy is
1650 active only during the portion of the range that falls on the
1651 selected day. For example, if the range extends from 2100
1655 until 0800, and the day of week mask selects Monday and
1656 Tuesday, then the policy is active during the following three
1659 From midnight Sunday until 0800 Monday
1660 From 2100 Monday until 0800 Tuesday
1661 From 2100 Tuesday until 23:59:59 Tuesday
1663 Setting this value to 'T000000/T235959' will cause the
1664 schedule to act independently of the time of day."
1665 DEFVAL { '543030303030302F54323335393539'H } -- T000000/T235959
1666 ::= { pmSchedEntry 8 }
1668 pmSchedLocalOrUtc OBJECT-TYPE
1673 MAX-ACCESS read-create
1676 "This object indicates whether the times represented in the
1677 TimePeriod object and in the various Mask objects represent
1678 local times or UTC times."
1680 ::= { pmSchedEntry 9 }
1682 pmSchedStorageType OBJECT-TYPE
1684 MAX-ACCESS read-create
1687 "This object defines whether this schedule entry is kept
1688 in volatile storage and lost upon reboot or
1689 backed up by non-volatile or permanent storage.
1691 Conceptual rows having the value 'permanent' must allow write
1692 access to the columnar objects pmSchedDescr, pmSchedWeekDay,
1693 pmSchedMonth, and pmSchedDay.
1695 If the value of this object is 'permanent', no values in the
1696 associated row have to be writable."
1698 ::= { pmSchedEntry 10 }
1706 pmSchedRowStatus OBJECT-TYPE
1708 MAX-ACCESS read-create
1711 "The status of this schedule entry.
1713 If the value of this object is active, no object in this row
1715 ::= { pmSchedEntry 11 }
1719 -- The "policy to element" (PE) table and the "element to policy" (EP)
1720 -- table track the status of execution contexts grouped by policy and
1721 -- element respectively.
1723 pmTrackingPETable OBJECT-TYPE
1724 SYNTAX SEQUENCE OF PmTrackingPEEntry
1725 MAX-ACCESS not-accessible
1728 "The pmTrackingPETable describes what elements
1729 are active (under control of) a policy. This table is indexed
1730 in order to optimize retrieval of the entire status for a
1734 pmTrackingPEEntry OBJECT-TYPE
1735 SYNTAX PmTrackingPEEntry
1736 MAX-ACCESS not-accessible
1739 "An entry in the pmTrackingPETable. The pmPolicyIndex in
1740 the index specifies the policy tracked by this entry.
1742 Note that some combinations of index values may result in an
1743 instance name that exceeds a length of 128 sub-identifiers,
1744 which exceeds the maximum for the SNMP
1745 protocol. Implementations should take care to avoid such
1747 INDEX { pmPolicyIndex, pmTrackingPEElement,
1748 pmTrackingPEContextName, pmTrackingPEContextEngineID }
1749 ::= { pmTrackingPETable 1 }
1757 PmTrackingPEEntry ::= SEQUENCE {
1758 pmTrackingPEElement RowPointer,
1759 pmTrackingPEContextName SnmpAdminString,
1760 pmTrackingPEContextEngineID OCTET STRING,
1761 pmTrackingPEInfo BITS
1764 pmTrackingPEElement OBJECT-TYPE
1766 MAX-ACCESS not-accessible
1769 "The element that is acted upon by the associated policy.
1771 As this object is used in the index for the
1772 pmTrackingPETable, users of this table should be careful not
1773 to create entries that would result in instance names with
1774 more than 128 sub-identifiers."
1775 ::= { pmTrackingPEEntry 1 }
1777 pmTrackingPEContextName OBJECT-TYPE
1778 SYNTAX SnmpAdminString (SIZE (0..32))
1779 MAX-ACCESS not-accessible
1782 "If the associated element is not in the default SNMP context
1783 for the target system, this object is used to identify the
1784 context. If the element is in the default context, this object
1785 is equal to the empty string."
1786 ::= { pmTrackingPEEntry 2 }
1788 pmTrackingPEContextEngineID OBJECT-TYPE
1789 SYNTAX OCTET STRING (SIZE (0 | 5..32))
1790 MAX-ACCESS not-accessible
1793 "If the associated element is on a remote system, this object
1794 is used to identify the remote system. This object contains
1795 the contextEngineID of the system on which the associated
1796 element resides. If the element is on the local system,
1797 this object will be the empty string."
1798 ::= { pmTrackingPEEntry 3 }
1800 pmTrackingPEInfo OBJECT-TYPE
1802 actionSkippedDueToPrecedence(0),
1803 conditionRunTimeException(1),
1804 conditionUserSignal(2),
1808 actionRunTimeException(3),
1811 MAX-ACCESS read-only
1814 "This object returns information about the previous policy
1817 If the actionSkippedDueToPrecedence(1) bit is set, the last
1818 execution of the associated policy condition returned non-zero,
1819 but the action is not active, because it was trumped by a
1820 matching policy condition in the same precedence group with a
1821 higher precedence value.
1823 If the conditionRunTimeException(2) bit is set, the last
1824 execution of the associated policy condition encountered a
1825 run-time exception and aborted.
1827 If the conditionUserSignal(3) bit is set, the last
1828 execution of the associated policy condition called the
1829 signalError() function.
1831 If the actionRunTimeException(4) bit is set, the last
1832 execution of the associated policy action encountered a
1833 run-time exception and aborted.
1835 If the actionUserSignal(5) bit is set, the last
1836 execution of the associated policy action called the
1837 signalError() function.
1839 Entries will only exist in this table of one or more bits are
1840 set. In particular, if an entry does not exist for a
1841 particular policy/element combination, it can be assumed that
1842 the policy's condition did not match 'this element'."
1843 ::= { pmTrackingPEEntry 4 }
1845 -- Element to Policy Table
1847 pmTrackingEPTable OBJECT-TYPE
1848 SYNTAX SEQUENCE OF PmTrackingEPEntry
1849 MAX-ACCESS not-accessible
1852 "The pmTrackingEPTable describes what policies
1853 are controlling an element. This table is indexed in
1854 order to optimize retrieval of the status of all policies
1855 active for a given element."
1861 pmTrackingEPEntry OBJECT-TYPE
1862 SYNTAX PmTrackingEPEntry
1863 MAX-ACCESS not-accessible
1866 "An entry in the pmTrackingEPTable. Entries exist for all
1867 element/policy combinations for which the policy's condition
1868 matches and only if the schedule for the policy is active.
1870 The pmPolicyIndex in the index specifies the policy
1871 tracked by this entry.
1873 Note that some combinations of index values may result in an
1874 instance name that exceeds a length of 128 sub-identifiers,
1875 which exceeds the maximum for the SNMP protocol.
1876 Implementations should take care to avoid such combinations."
1877 INDEX { pmTrackingEPElement, pmTrackingEPContextName,
1878 pmTrackingEPContextEngineID, pmPolicyIndex }
1879 ::= { pmTrackingEPTable 1 }
1881 PmTrackingEPEntry ::= SEQUENCE {
1882 pmTrackingEPElement RowPointer,
1883 pmTrackingEPContextName SnmpAdminString,
1884 pmTrackingEPContextEngineID OCTET STRING,
1885 pmTrackingEPStatus INTEGER
1888 pmTrackingEPElement OBJECT-TYPE
1890 MAX-ACCESS not-accessible
1893 "The element acted upon by the associated policy.
1895 As this object is used in the index for the
1896 pmTrackingEPTable, users of this table should be careful
1897 not to create entries that would result in instance names
1898 with more than 128 sub-identifiers."
1899 ::= { pmTrackingEPEntry 1 }
1901 pmTrackingEPContextName OBJECT-TYPE
1902 SYNTAX SnmpAdminString (SIZE (0..32))
1903 MAX-ACCESS not-accessible
1906 "If the associated element is not in the default SNMP context
1910 for the target system, this object is used to identify the
1911 context. If the element is in the default context, this object
1912 is equal to the empty string."
1913 ::= { pmTrackingEPEntry 2 }
1915 pmTrackingEPContextEngineID OBJECT-TYPE
1916 SYNTAX OCTET STRING (SIZE (0 | 5..32))
1917 MAX-ACCESS not-accessible
1920 "If the associated element is on a remote system, this object
1921 is used to identify the remote system. This object contains
1922 the contextEngineID of the system on which the associated
1923 element resides. If the element is on the local system,
1924 this object will be the empty string."
1925 ::= { pmTrackingEPEntry 3 }
1927 pmTrackingEPStatus OBJECT-TYPE
1932 MAX-ACCESS read-write
1935 "This entry will only exist if the calendar for the policy is
1936 active and if the associated policyCondition returned 1 for
1939 A policy can be forcibly disabled on a particular element
1940 by setting this value to forceOff(2). The agent should then
1941 act as though the policyCondition failed for 'this element'.
1942 The forceOff(2) state will persist (even across reboots) until
1943 this value is set to on(1) by a management request. The
1944 forceOff(2) state may be set even if the entry does not
1945 previously exist so that future policy invocations can be
1948 Unless forcibly disabled, if this entry exists, its value
1950 ::= { pmTrackingEPEntry 4 }
1952 -- Policy Debugging Table
1954 pmDebuggingTable OBJECT-TYPE
1955 SYNTAX SEQUENCE OF PmDebuggingEntry
1956 MAX-ACCESS not-accessible
1962 "Policies that have debugging turned on will generate a log
1963 entry in the policy debugging table for every runtime
1964 exception that occurs in either the condition or action
1967 The pmDebuggingTable logs debugging messages when
1968 policies experience run-time exceptions in either the condition
1969 or action code and the associated pmPolicyDebugging object
1972 The maximum number of debugging entries that will be stored
1973 and the maximum length of time an entry will be kept are an
1974 implementation-dependent manner. If entries must
1975 be discarded to make room for new entries, the oldest entries
1976 must be discarded first.
1978 If the system restarts, all debugging entries may be deleted."
1981 pmDebuggingEntry OBJECT-TYPE
1982 SYNTAX PmDebuggingEntry
1983 MAX-ACCESS not-accessible
1986 "An entry in the pmDebuggingTable. The pmPolicyIndex in the
1987 index specifies the policy that encountered the exception
1988 that led to this log entry.
1990 Note that some combinations of index values may result in an
1991 instance name that exceeds a length of 128 sub-identifiers,
1992 which exceeds the maximum for the SNMP protocol.
1993 Implementations should take care to avoid such combinations."
1994 INDEX { pmPolicyIndex, pmDebuggingElement,
1995 pmDebuggingContextName, pmDebuggingContextEngineID,
1996 pmDebuggingLogIndex }
1997 ::= { pmDebuggingTable 1 }
1999 PmDebuggingEntry ::= SEQUENCE {
2000 pmDebuggingElement RowPointer,
2001 pmDebuggingContextName SnmpAdminString,
2002 pmDebuggingContextEngineID OCTET STRING,
2003 pmDebuggingLogIndex Unsigned32,
2004 pmDebuggingMessage PmUTF8String
2012 pmDebuggingElement OBJECT-TYPE
2014 MAX-ACCESS not-accessible
2017 "The element the policy was executing on when it encountered
2018 the error that led to this log entry.
2020 For example, if the element is interface 3, then this object
2021 will contain the OID for 'ifIndex.3'.
2023 As this object is used in the index for the
2024 pmDebuggingTable, users of this table should be careful
2025 not to create entries that would result in instance names
2026 with more than 128 sub-identifiers."
2027 ::= { pmDebuggingEntry 1 }
2029 pmDebuggingContextName OBJECT-TYPE
2030 SYNTAX SnmpAdminString (SIZE (0..32))
2031 MAX-ACCESS not-accessible
2034 "If the associated element is not in the default SNMP context
2035 for the target system, this object is used to identify the
2036 context. If the element is in the default context, this object
2037 is equal to the empty string."
2038 ::= { pmDebuggingEntry 2 }
2040 pmDebuggingContextEngineID OBJECT-TYPE
2041 SYNTAX OCTET STRING (SIZE (0 | 5..32))
2042 MAX-ACCESS not-accessible
2045 "If the associated element is on a remote system, this object
2046 is used to identify the remote system. This object contains
2047 the contextEngineID of the system on which the associated
2048 element resides. If the element is on the local system,
2049 this object will be the empty string."
2050 ::= { pmDebuggingEntry 3 }
2052 pmDebuggingLogIndex OBJECT-TYPE
2053 SYNTAX Unsigned32 (1..4294967295)
2054 MAX-ACCESS not-accessible
2057 "A unique index for this log entry among other log entries
2058 for this policy/element combination."
2059 ::= { pmDebuggingEntry 4 }
2063 pmDebuggingMessage OBJECT-TYPE
2064 SYNTAX PmUTF8String (SIZE (0..128))
2065 MAX-ACCESS read-only
2068 "An error message generated by the policy execution
2069 environment. It is recommended that this message include the
2070 time of day when the message was generated, if known."
2071 ::= { pmDebuggingEntry 5 }
2075 pmNotifications OBJECT IDENTIFIER ::= { pmMib 0 }
2077 pmNewRoleNotification NOTIFICATION-TYPE
2078 OBJECTS { pmRoleStatus }
2081 "The pmNewRoleNotification is sent when an agent is configured
2082 with its first instance of a previously unused role string
2083 (not every time a new element is given a particular role).
2085 An instance of the pmRoleStatus object is sent containing
2086 the new roleString in its index. In the event that two or
2087 more elements are given the same role simultaneously, it is an
2088 implementation-dependent matter as to which pmRoleTable
2089 instance will be included in the notification."
2090 ::= { pmNotifications 1 }
2092 pmNewCapabilityNotification NOTIFICATION-TYPE
2093 OBJECTS { pmCapabilitiesType }
2096 "The pmNewCapabilityNotification is sent when an agent
2097 gains a new capability that did not previously exist in any
2098 element on the system (not every time an element gains a
2099 particular capability).
2101 An instance of the pmCapabilitiesType object is sent containing
2102 the identity of the new capability. In the event that two or
2103 more elements gain the same capability simultaneously, it is an
2104 implementation-dependent matter as to which pmCapabilitiesType
2105 instance will be included in the notification."
2106 ::= { pmNotifications 2 }
2108 pmAbnormalTermNotification NOTIFICATION-TYPE
2109 OBJECTS { pmTrackingPEInfo }
2115 "The pmAbnormalTermNotification is sent when a policy's
2116 pmPolicyAbnormalTerminations gauge value changes from zero to
2117 any value greater than zero and no such notification has been
2118 sent for that policy in the last 5 minutes.
2120 The notification contains an instance of the pmTrackingPEInfo
2121 object where the pmPolicyIndex component of the index
2122 identifies the associated policy and the rest of the index
2123 identifies an element on which the policy failed."
2124 ::= { pmNotifications 3 }
2126 -- Compliance Statements
2128 pmConformance OBJECT IDENTIFIER ::= { pmMib 12 }
2129 pmCompliances OBJECT IDENTIFIER ::= { pmConformance 1 }
2130 pmGroups OBJECT IDENTIFIER ::= { pmConformance 2 }
2132 pmCompliance MODULE-COMPLIANCE
2135 "Describes the requirements for conformance to
2136 the Policy-Based Management MIB"
2137 MODULE -- this module
2138 MANDATORY-GROUPS { pmPolicyManagementGroup, pmSchedGroup,
2139 pmNotificationGroup }
2140 ::= { pmCompliances 1 }
2142 pmPolicyManagementGroup OBJECT-GROUP
2143 OBJECTS { pmPolicyPrecedenceGroup, pmPolicyPrecedence,
2144 pmPolicySchedule, pmPolicyElementTypeFilter,
2145 pmPolicyConditionScriptIndex, pmPolicyActionScriptIndex,
2147 pmPolicyConditionMaxLatency, pmPolicyActionMaxLatency,
2148 pmPolicyMaxIterations,
2149 pmPolicyDescription, pmPolicyMatches,
2150 pmPolicyAbnormalTerminations,
2151 pmPolicyExecutionErrors, pmPolicyDebugging,
2152 pmPolicyStorageType, pmPolicyAdminStatus,
2153 pmPolicyRowStatus, pmPolicyCodeText, pmPolicyCodeStatus,
2154 pmElementTypeRegMaxLatency, pmElementTypeRegDescription,
2155 pmElementTypeRegStorageType, pmElementTypeRegRowStatus,
2157 pmCapabilitiesType, pmCapabilitiesOverrideState,
2158 pmCapabilitiesOverrideRowStatus,
2161 pmDebuggingMessage }
2167 "Objects that allow for the creation and management of
2168 configuration policies."
2171 pmSchedGroup OBJECT-GROUP
2172 OBJECTS { pmSchedLocalTime, pmSchedGroupIndex,
2173 pmSchedDescr, pmSchedTimePeriod,
2174 pmSchedMonth, pmSchedDay, pmSchedWeekDay,
2175 pmSchedTimeOfDay, pmSchedLocalOrUtc, pmSchedStorageType,
2180 "Objects that allow for the scheduling of policies."
2183 pmNotificationGroup NOTIFICATION-GROUP
2184 NOTIFICATIONS { pmNewRoleNotification,
2185 pmNewCapabilityNotification,
2186 pmAbnormalTermNotification }
2189 "Notifications sent by an Policy MIB agent."
2192 pmBaseFunctionLibrary OBJECT IDENTIFIER ::= { pmGroups 4 }