Imported Upstream version 0.4.8
[platform/upstream/libsmi.git] / mibs / ietf / POLICY-BASED-MANAGEMENT-MIB
1 POLICY-BASED-MANAGEMENT-MIB DEFINITIONS ::= BEGIN
2 IMPORTS
3     MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
4     Counter32, Gauge32, Unsigned32,
5     mib-2                                       FROM SNMPv2-SMI
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;
11
12 --  Policy-Based Management MIB
13
14 pmMib MODULE-IDENTITY
15     LAST-UPDATED "200502070000Z"  -- February 7, 2005
16     ORGANIZATION "IETF SNMP Configuration Working Group"
17     CONTACT-INFO
18         "
19
20
21
22
23         Steve Waldbusser
24         Phone: +1-650-948-6500
25         Fax:   +1-650-745-0671
26         Email: waldbusser@nextbeacon.com
27
28         Jon Saperia (WG Co-chair)
29         JDS Consulting, Inc.
30         84 Kettell Plain Road.
31         Stow MA 01775
32         USA
33         Phone: +1-978-461-0249
34         Fax:   +1-617-249-0874
35         Email: saperia@jdscons.com
36
37         Thippanna Hongal
38         Riverstone Networks, Inc.
39         5200 Great America Parkway
40         Santa Clara, CA, 95054
41         USA
42
43         Phone: +1-408-878-6562
44         Fax:   +1-408-878-6501
45         Email: hongal@riverstonenet.com
46
47         David Partain (WG Co-chair)
48         Postal: Ericsson AB
49                 P.O. Box 1248
50                 SE-581 12 Linkoping
51                 Sweden
52         Tel: +46 13 28 41 44
53         E-mail: David.Partain@ericsson.com
54
55         Any questions or comments about this document can also be
56         directed to the working group at snmpconf@snmp.com."
57     DESCRIPTION
58         "The MIB module for policy-based configuration of SNMP
59         infrastructures.
60
61         Copyright (C) The Internet Society (2005).  This version of
62         this MIB module is part of RFC 4011; see the RFC itself for
63         full legal notices."
64
65     REVISION "200502070000Z"    -- February 7, 2005
66     DESCRIPTION
67         "The original version of this MIB, published as RFC4011."
68     ::= { mib-2 124 }
69
70
71
72
73
74 PmUTF8String ::= TEXTUAL-CONVENTION
75     STATUS       current
76     DESCRIPTION
77         "An octet string containing information typically in
78         human-readable form.
79
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.
85
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
93         prohibited.
94
95         The use of control codes should be avoided.
96
97         When it is necessary to represent a newline,
98         the control code sequence CR LF should be used.
99
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,
103         may be provided.
104
105         For information encoded in 7-bit US-ASCII,
106         the UTF-8 encoding is identical to the
107         US-ASCII encoding.
108
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
115         by an encoding.
116
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
122
123
124
125         RFC 3416.
126
127         Note that the size of PmUTF8String object is
128         measured in octets, not characters."
129        SYNTAX       OCTET STRING (SIZE (0..65535))
130
131 -- The policy table
132
133 pmPolicyTable OBJECT-TYPE
134     SYNTAX      SEQUENCE OF PmPolicyEntry
135     MAX-ACCESS  not-accessible
136     STATUS      current
137     DESCRIPTION
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."
141     ::= { pmMib 1 }
142
143 pmPolicyEntry OBJECT-TYPE
144     SYNTAX      PmPolicyEntry
145     MAX-ACCESS  not-accessible
146     STATUS      current
147     DESCRIPTION
148         "An entry in the policy table representing one policy."
149     INDEX { pmPolicyAdminGroup, pmPolicyIndex }
150     ::= { pmPolicyTable 1 }
151
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
173
174
175
176 }
177
178 pmPolicyAdminGroup OBJECT-TYPE
179     SYNTAX      PmUTF8String (SIZE(0..32))
180     MAX-ACCESS  not-accessible
181     STATUS      current
182     DESCRIPTION
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.
186
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 }
191
192 pmPolicyIndex OBJECT-TYPE
193     SYNTAX      Unsigned32 (1..4294967295)
194     MAX-ACCESS  not-accessible
195     STATUS      current
196     DESCRIPTION
197          "A unique index for this policy entry, unique among all
198          policies regardless of administrative group."
199     ::= { pmPolicyEntry 2 }
200
201 pmPolicyPrecedenceGroup OBJECT-TYPE
202     SYNTAX      PmUTF8String (SIZE (0..32))
203     MAX-ACCESS  read-create
204     STATUS      current
205     DESCRIPTION
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.
213
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 }
219
220 pmPolicyPrecedence OBJECT-TYPE
221     SYNTAX      Unsigned32 (0..65535)
222     MAX-ACCESS  read-create
223     STATUS      current
224
225
226
227     DESCRIPTION
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'.
236
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.
248
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.
252
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
256         precedence group."
257     ::= { pmPolicyEntry 4 }
258
259 pmPolicySchedule OBJECT-TYPE
260     SYNTAX      Unsigned32 (1..4294967295)
261     MAX-ACCESS  read-create
262     STATUS      current
263     DESCRIPTION
264          "This policy will be ready if any of the associated schedule
265          entries are active.
266
267          If the value of this object is 0, this policy is always
268          ready.
269
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 }
275
276
277
278 pmPolicyElementTypeFilter OBJECT-TYPE
279     SYNTAX      PmUTF8String (SIZE (0..128))
280     MAX-ACCESS  read-create
281     STATUS      current
282     DESCRIPTION
283         "This object specifies the element types for which this policy
284         can be executed.
285
286         The format of this object will be a sequence of
287         pmElementTypeRegOIDPrefix values, encoded in the following
288         BNF form:
289
290         elementTypeFilter:   oid [ ';' oid ]*
291                       oid:   subid [ '.' subid ]*
292                     subid:   '0' | decimal_constant
293
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'.
297
298         If a value is included that does not represent a registered
299         pmElementTypeRegOIDPrefix, then that value will be ignored."
300     ::= { pmPolicyEntry 6 }
301
302 pmPolicyConditionScriptIndex OBJECT-TYPE
303     SYNTAX      Unsigned32 (1..4294967295)
304     MAX-ACCESS  read-only
305     STATUS      current
306     DESCRIPTION
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.
311
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.
319
320          Condition evaluation stops immediately when any run-time
321          exception is detected, and the policyAction is not executed.
322
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
326
327
328
329          policyAction executed on that element unless a
330          higher-precedence policy in the same precedence group also
331          matches 'this element'.
332
333          If the condition object is empty (contains no code) or
334          otherwise does not return a value, the element will not be
335          matched.
336
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 }
349
350 pmPolicyActionScriptIndex OBJECT-TYPE
351     SYNTAX      Unsigned32 (1..4294967295)
352     MAX-ACCESS  read-only
353     STATUS      current
354     DESCRIPTION
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.
359
360          A PolicyAction is an operation performed on a
361          set of elements for which the policy is active.
362
363          Action evaluation stops immediately when any run-time
364          exception is detected.
365
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."
377
378
379
380     ::= { pmPolicyEntry 8 }
381
382 pmPolicyParameters OBJECT-TYPE
383     SYNTAX      OCTET STRING (SIZE (0..65535))
384     MAX-ACCESS  read-create
385     STATUS      current
386     DESCRIPTION
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 }
395
396 pmPolicyConditionMaxLatency OBJECT-TYPE
397     SYNTAX      Unsigned32 (0..2147483647)
398     UNITS       "milliseconds"
399     MAX-ACCESS  read-create
400     STATUS      current
401     DESCRIPTION
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.
407
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
414         element."
415     ::= { pmPolicyEntry 10 }
416
417 pmPolicyActionMaxLatency OBJECT-TYPE
418     SYNTAX      Unsigned32 (0..2147483647)
419     UNITS       "milliseconds"
420     MAX-ACCESS  read-create
421     STATUS      current
422     DESCRIPTION
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
428
429
430
431         time that may pass before an element has the action run on
432         it.
433
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 }
440
441 pmPolicyMaxIterations OBJECT-TYPE
442     SYNTAX      Unsigned32
443     MAX-ACCESS  read-create
444     STATUS      current
445     DESCRIPTION
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.
463
464         Note that the condition and action invocations are tracked
465         separately."
466     ::= { pmPolicyEntry 12 }
467
468 pmPolicyDescription OBJECT-TYPE
469     SYNTAX      PmUTF8String
470     MAX-ACCESS  read-create
471     STATUS      current
472     DESCRIPTION
473          "A description of this rule and its significance, typically
474          provided by a human."
475     ::= { pmPolicyEntry 13 }
476
477 pmPolicyMatches OBJECT-TYPE
478     SYNTAX      Gauge32
479
480
481
482     UNITS       "elements"
483     MAX-ACCESS  read-only
484     STATUS      current
485     DESCRIPTION
486          "The number of elements that, in their most recent execution
487          of the associated condition, were matched by the condition."
488     ::= { pmPolicyEntry 14 }
489
490 pmPolicyAbnormalTerminations OBJECT-TYPE
491     SYNTAX      Gauge32
492     UNITS       "elements"
493     MAX-ACCESS  read-only
494     STATUS      current
495     DESCRIPTION
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 }
503
504 pmPolicyExecutionErrors OBJECT-TYPE
505     SYNTAX      Counter32
506     UNITS       "errors"
507     MAX-ACCESS  read-only
508     STATUS      current
509     DESCRIPTION
510          "The total number of times that execution of this policy's
511          condition or action has been terminated due to run-time
512          exceptions."
513     ::= { pmPolicyEntry 16 }
514
515 pmPolicyDebugging OBJECT-TYPE
516     SYNTAX      INTEGER {
517                     off(1),
518                     on(2)
519                 }
520     MAX-ACCESS  read-create
521     STATUS      current
522     DESCRIPTION
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
526          policy."
527     DEFVAL { off }
528     ::= { pmPolicyEntry 17 }
529
530
531
532
533 pmPolicyAdminStatus OBJECT-TYPE
534     SYNTAX      INTEGER {
535                     disabled(1),
536                     enabled(2),
537                     enabledAutoRemove(3)
538                 }
539     MAX-ACCESS  read-create
540     STATUS      current
541     DESCRIPTION
542          "The administrative status of this policy.
543
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).
547
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.
552
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
562          re-enabled.
563
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 }
570
571 pmPolicyStorageType OBJECT-TYPE
572     SYNTAX      StorageType
573     MAX-ACCESS  read-create
574     STATUS      current
575     DESCRIPTION
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.
580
581
582
583
584          If the value of this object is 'permanent', the values for
585          the associated pmPolicyAdminStatus object must remain
586          writable."
587     ::= { pmPolicyEntry 19 }
588
589 pmPolicyRowStatus OBJECT-TYPE
590     SYNTAX      RowStatus
591     MAX-ACCESS  read-create
592     STATUS      current
593     DESCRIPTION
594          "The row status of this pmPolicyEntry.
595
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:
601              pmPolicyParameters
602              pmPolicyConditionMaxLatency
603              pmPolicyActionMaxLatency
604              pmPolicyDebugging
605              pmPolicyAdminStatus
606
607          If this row is deleted, any associated entries in the
608          pmPolicyCodeTable will be deleted as well."
609     ::= { pmPolicyEntry 20 }
610
611 -- Policy Code Table
612
613 pmPolicyCodeTable OBJECT-TYPE
614     SYNTAX      SEQUENCE OF PmPolicyCodeEntry
615     MAX-ACCESS  not-accessible
616     STATUS      current
617     DESCRIPTION
618         "The pmPolicyCodeTable stores the code for policy conditions and
619         actions.
620
621         An example of the relationships between the code table and the
622         policy table follows:
623
624         pmPolicyTable
625             AdminGroup  Index   ConditionScriptIndex  ActionScriptIndex
626         A   ''          1       1                     2
627         B   'oper'      1       1                     2
628         C   'oper'      2       3                     4
629
630         pmPolicyCodeTable
631         AdminGroup  ScriptIndex  Segment    Note
632
633
634
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
642
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
652         and the action."
653     ::= { pmMib 2 }
654
655 pmPolicyCodeEntry OBJECT-TYPE
656     SYNTAX      PmPolicyCodeEntry
657     MAX-ACCESS  not-accessible
658     STATUS      current
659     DESCRIPTION
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.
667
668         The StorageType of this entry is determined by the value of
669         the associated pmPolicyStorageType.
670
671         The pmPolicyAdminGroup element of the index represents the
672         administrative group of the policy of which this code entry is
673         a part."
674     INDEX { pmPolicyAdminGroup, pmPolicyCodeScriptIndex,
675             pmPolicyCodeSegment }
676     ::= { pmPolicyCodeTable 1 }
677
678 PmPolicyCodeEntry ::= SEQUENCE {
679     pmPolicyCodeScriptIndex    Unsigned32,
680     pmPolicyCodeSegment        Unsigned32,
681     pmPolicyCodeText           PmUTF8String,
682     pmPolicyCodeStatus         RowStatus
683
684
685
686 }
687
688 pmPolicyCodeScriptIndex OBJECT-TYPE
689     SYNTAX      Unsigned32 (1..4294967295)
690     MAX-ACCESS  not-accessible
691     STATUS      current
692     DESCRIPTION
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
699          objects."
700     ::= { pmPolicyCodeEntry 1 }
701
702 pmPolicyCodeSegment OBJECT-TYPE
703     SYNTAX      Unsigned32 (1..4294967295)
704     MAX-ACCESS  not-accessible
705     STATUS      current
706     DESCRIPTION
707          "A unique index for each segment of a policy condition or
708          action.
709
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 }
715
716 pmPolicyCodeText OBJECT-TYPE
717     SYNTAX      PmUTF8String (SIZE (1..1024))
718     MAX-ACCESS  read-create
719     STATUS      current
720     DESCRIPTION
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.
726
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
731          modified."
732     ::= { pmPolicyCodeEntry 3 }
733
734
735
736
737 pmPolicyCodeStatus OBJECT-TYPE
738     SYNTAX      RowStatus
739     MAX-ACCESS  read-create
740     STATUS      current
741     DESCRIPTION
742          "The status of this code entry.
743
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
749          entries be created.
750
751          If the status of this object is active, no objects in this
752          row may be modified."
753     ::= { pmPolicyCodeEntry 4 }
754
755 -- Element Type Registration Table
756
757 pmElementTypeRegTable OBJECT-TYPE
758     SYNTAX      SEQUENCE OF PmElementTypeRegEntry
759     MAX-ACCESS  not-accessible
760     STATUS      current
761     DESCRIPTION
762         "A registration table for element types managed by this
763         system.
764
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.
774
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:
778
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
784
785
786
787
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:
792
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.
797
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.
803
804         Note that the disposition of agent-installed entries is
805         described by the pmPolicyStorageType object."
806     ::= { pmMib 3 }
807
808 pmElementTypeRegEntry OBJECT-TYPE
809     SYNTAX      PmElementTypeRegEntry
810     MAX-ACCESS  not-accessible
811     STATUS      current
812     DESCRIPTION
813         "A registration of an element type.
814
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 }
821
822 PmElementTypeRegEntry ::= SEQUENCE {
823     pmElementTypeRegOIDPrefix     OBJECT IDENTIFIER,
824     pmElementTypeRegMaxLatency    Unsigned32,
825     pmElementTypeRegDescription   PmUTF8String,
826     pmElementTypeRegStorageType   StorageType,
827     pmElementTypeRegRowStatus     RowStatus
828 }
829
830 pmElementTypeRegOIDPrefix OBJECT-TYPE
831     SYNTAX      OBJECT IDENTIFIER
832     MAX-ACCESS  not-accessible
833     STATUS      current
834     DESCRIPTION
835         "This OBJECT IDENTIFIER value identifies a table in which all
836
837
838
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.
844
845         This object identifier value is specified down to the 'entry'
846         component (e.g., ifEntry) of the identifier.
847
848         The index of each discovered row will be passed to each
849         invocation of the policy condition and policy action.
850
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.
862
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.
875
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).
879
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 }
885
886
887
888
889
890 pmElementTypeRegMaxLatency OBJECT-TYPE
891     SYNTAX      Unsigned32
892     UNITS       "milliseconds"
893     MAX-ACCESS  read-create
894     STATUS      current
895     DESCRIPTION
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.
900
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 }
906
907 pmElementTypeRegDescription OBJECT-TYPE
908     SYNTAX      PmUTF8String (SIZE (0..64))
909     MAX-ACCESS  read-create
910     STATUS      current
911     DESCRIPTION
912         "A descriptive label for this registered type."
913     ::= { pmElementTypeRegEntry 4 }
914
915 pmElementTypeRegStorageType OBJECT-TYPE
916     SYNTAX      StorageType
917     MAX-ACCESS  read-create
918     STATUS      current
919     DESCRIPTION
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.
923
924          If the value of this object is 'permanent', no values in the
925          associated row have to be writable."
926     ::= { pmElementTypeRegEntry 5 }
927
928 pmElementTypeRegRowStatus OBJECT-TYPE
929     SYNTAX      RowStatus
930     MAX-ACCESS  read-create
931     STATUS      current
932     DESCRIPTION
933         "The status of this registration entry.
934
935         If the value of this object is active, no objects in this row
936         may be modified."
937     ::= { pmElementTypeRegEntry 6 }
938
939
940
941 -- Role Table
942
943 pmRoleTable OBJECT-TYPE
944     SYNTAX      SEQUENCE OF PmRoleEntry
945     MAX-ACCESS  not-accessible
946     STATUS      current
947     DESCRIPTION
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
952         their associations.
953
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.
958
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.
967
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.
973
974     For example:
975     Example:
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
983
984          The agent must store role string associations in non-volatile
985          storage."
986     ::= { pmMib 4 }
987
988
989
990
991
992 pmRoleEntry OBJECT-TYPE
993     SYNTAX      PmRoleEntry
994     MAX-ACCESS  not-accessible
995     STATUS      current
996     DESCRIPTION
997          "A role string entry associates a role string with an
998          individual element.
999
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
1004          combinations."
1005     INDEX       { pmRoleElement, pmRoleContextName,
1006                   pmRoleContextEngineID, pmRoleString }
1007     ::= { pmRoleTable 1 }
1008
1009 PmRoleEntry ::= SEQUENCE {
1010     pmRoleElement          RowPointer,
1011     pmRoleContextName      SnmpAdminString,
1012     pmRoleContextEngineID  OCTET STRING,
1013     pmRoleString           PmUTF8String,
1014     pmRoleStatus           RowStatus
1015 }
1016
1017 pmRoleElement OBJECT-TYPE
1018     SYNTAX      RowPointer
1019     MAX-ACCESS  not-accessible
1020     STATUS      current
1021     DESCRIPTION
1022          "The element with which this role string is associated.
1023
1024          For example, if the element is interface 3, then this object
1025          will contain the OID for 'ifIndex.3'.
1026
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
1030          underlying element.
1031
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
1035          sub-identifiers."
1036     ::= { pmRoleEntry 1 }
1037
1038
1039
1040
1041
1042
1043 pmRoleContextName OBJECT-TYPE
1044     SYNTAX      SnmpAdminString (SIZE (0..32))
1045     MAX-ACCESS  not-accessible
1046     STATUS      current
1047     DESCRIPTION
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 }
1053
1054 pmRoleContextEngineID OBJECT-TYPE
1055     SYNTAX      OCTET STRING (SIZE (0 | 5..32))
1056     MAX-ACCESS  not-accessible
1057     STATUS      current
1058     DESCRIPTION
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 }
1065
1066 pmRoleString OBJECT-TYPE
1067     SYNTAX      PmUTF8String (SIZE (0..64))
1068     MAX-ACCESS  not-accessible
1069     STATUS      current
1070     DESCRIPTION
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.
1076
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 }
1082
1083 pmRoleStatus OBJECT-TYPE
1084     SYNTAX      RowStatus
1085     MAX-ACCESS  read-create
1086     STATUS      current
1087     DESCRIPTION
1088          "The status of this role string.
1089
1090
1091
1092
1093
1094          If the value of this object is active, no object in this row
1095          may be modified."
1096     ::= { pmRoleEntry 5 }
1097
1098 -- Capabilities table
1099
1100 pmCapabilitiesTable OBJECT-TYPE
1101     SYNTAX      SEQUENCE OF PmCapabilitiesEntry
1102     MAX-ACCESS  not-accessible
1103     STATUS      current
1104     DESCRIPTION
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.
1109
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
1114          system."
1115     ::= { pmMib 5 }
1116
1117 pmCapabilitiesEntry OBJECT-TYPE
1118     SYNTAX      PmCapabilitiesEntry
1119     MAX-ACCESS  not-accessible
1120     STATUS      current
1121     DESCRIPTION
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.
1127
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.
1142
1143
1144
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
1152          install a policy.
1153
1154          Vendor software may also add entries in this table to express
1155          capabilities from their private branch.
1156
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
1161          values."
1162     INDEX       { pmCapabilitiesType }
1163     ::= { pmCapabilitiesTable 1 }
1164
1165 PmCapabilitiesEntry ::= SEQUENCE {
1166     pmCapabilitiesType               OBJECT IDENTIFIER
1167 }
1168
1169 pmCapabilitiesType OBJECT-TYPE
1170     SYNTAX      OBJECT IDENTIFIER
1171     MAX-ACCESS  read-only
1172     STATUS      current
1173     DESCRIPTION
1174          "There are three types of OIDs that may be present in the
1175          pmCapabilitiesType object:
1176
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
1191          this table.
1192
1193
1194
1195
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.
1201
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.
1211
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
1218          OIDs.
1219
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
1222          implemented.
1223
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 }
1229
1230 -- Capabilities override table
1231
1232 pmCapabilitiesOverrideTable OBJECT-TYPE
1233     SYNTAX      SEQUENCE OF PmCapabilitiesOverrideEntry
1234     MAX-ACCESS  not-accessible
1235     STATUS      current
1236     DESCRIPTION
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
1244
1245
1246
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)."
1257     ::= { pmMib 6 }
1258
1259 pmCapabilitiesOverrideEntry OBJECT-TYPE
1260     SYNTAX      PmCapabilitiesOverrideEntry
1261     MAX-ACCESS  not-accessible
1262     STATUS      current
1263     DESCRIPTION
1264          "An entry in this table indicates whether a particular
1265          capability is valid or invalid.
1266
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
1271          values."
1272     INDEX       { pmCapabilitiesOverrideType }
1273     ::= { pmCapabilitiesOverrideTable 1 }
1274
1275 PmCapabilitiesOverrideEntry ::= SEQUENCE {
1276     pmCapabilitiesOverrideType               OBJECT IDENTIFIER,
1277     pmCapabilitiesOverrideState              INTEGER,
1278     pmCapabilitiesOverrideRowStatus          RowStatus
1279 }
1280
1281 pmCapabilitiesOverrideType OBJECT-TYPE
1282     SYNTAX      OBJECT IDENTIFIER
1283     MAX-ACCESS  not-accessible
1284     STATUS      current
1285     DESCRIPTION
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
1294          MIB.
1295
1296
1297
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.
1303
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 }
1309
1310 pmCapabilitiesOverrideState OBJECT-TYPE
1311     SYNTAX      INTEGER {
1312                     invalid(1),
1313                     valid(2)
1314                 }
1315     MAX-ACCESS  read-create
1316     STATUS      current
1317     DESCRIPTION
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.
1329
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
1337          fashion."
1338     ::= { pmCapabilitiesOverrideEntry 2 }
1339
1340 pmCapabilitiesOverrideRowStatus OBJECT-TYPE
1341     SYNTAX      RowStatus
1342     MAX-ACCESS  read-create
1343     STATUS      current
1344     DESCRIPTION
1345          "The row status of this pmCapabilitiesOverrideEntry.
1346
1347
1348
1349          If the value of this object is active, no object in this row
1350          may be modified."
1351     ::= { pmCapabilitiesOverrideEntry 3 }
1352
1353 -- The Schedule Group
1354
1355 pmSchedLocalTime OBJECT-TYPE
1356     SYNTAX      DateAndTime (SIZE (11))
1357     MAX-ACCESS  read-only
1358     STATUS      current
1359     DESCRIPTION
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."
1365     ::= { pmMib 7 }
1366
1367 --
1368 -- The schedule table that controls the scheduler.
1369 --
1370
1371 pmSchedTable OBJECT-TYPE
1372     SYNTAX      SEQUENCE OF PmSchedEntry
1373     MAX-ACCESS  not-accessible
1374     STATUS      current
1375     DESCRIPTION
1376         "This table defines schedules for policies."
1377     ::= { pmMib 8 }
1378
1379 pmSchedEntry OBJECT-TYPE
1380     SYNTAX      PmSchedEntry
1381     MAX-ACCESS  not-accessible
1382     STATUS      current
1383     DESCRIPTION
1384         "An entry describing a particular schedule.
1385
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 }
1393
1394
1395
1396
1397
1398
1399
1400 PmSchedEntry ::= SEQUENCE {
1401     pmSchedIndex          Unsigned32,
1402     pmSchedGroupIndex     Unsigned32,
1403     pmSchedDescr          PmUTF8String,
1404     pmSchedTimePeriod     PmUTF8String,
1405     pmSchedMonth          BITS,
1406     pmSchedDay            BITS,
1407     pmSchedWeekDay        BITS,
1408     pmSchedTimeOfDay      PmUTF8String,
1409     pmSchedLocalOrUtc     INTEGER,
1410     pmSchedStorageType    StorageType,
1411     pmSchedRowStatus      RowStatus
1412 }
1413
1414 pmSchedIndex OBJECT-TYPE
1415     SYNTAX      Unsigned32 (1..4294967295)
1416     MAX-ACCESS  not-accessible
1417     STATUS      current
1418     DESCRIPTION
1419         "The locally unique, administratively assigned index for this
1420         scheduling entry."
1421     ::= { pmSchedEntry 1 }
1422
1423 pmSchedGroupIndex OBJECT-TYPE
1424     SYNTAX      Unsigned32 (1..4294967295)
1425     MAX-ACCESS  read-create
1426     STATUS      current
1427     DESCRIPTION
1428         "The locally unique, administratively assigned index for the
1429         schedule group this scheduling entry belongs to.
1430
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.
1438
1439         If an entry is not a member of a group, its pmSchedGroupIndex
1440         must be assigned to the value of its pmSchedIndex.
1441
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 }
1445
1446
1447
1448
1449
1450
1451 pmSchedDescr OBJECT-TYPE
1452     SYNTAX      PmUTF8String
1453     MAX-ACCESS  read-create
1454     STATUS      current
1455     DESCRIPTION
1456         "The human-readable description of the purpose of this
1457         scheduling entry."
1458     DEFVAL { ''H }
1459     ::= { pmSchedEntry 3 }
1460
1461 pmSchedTimePeriod OBJECT-TYPE
1462     SYNTAX      PmUTF8String (SIZE (0..31))
1463     MAX-ACCESS  read-create
1464     STATUS      current
1465     DESCRIPTION
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:
1476
1477             20000101T080000/20000131T130000
1478
1479               January 1, 2000, 0800 through January 31, 2000, 1PM
1480
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
1483         allowed.
1484
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:
1488
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
1492            after the '/'.
1493
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
1497            before the '/'.
1498
1499
1500
1501
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 }
1507
1508 pmSchedMonth OBJECT-TYPE
1509     SYNTAX      BITS {
1510                     january(0),
1511                     february(1),
1512                     march(2),
1513                     april(3),
1514                     may(4),
1515                     june(5),
1516                     july(6),
1517                     august(7),
1518                     september(8),
1519                     october(9),
1520                     november(10),
1521                     december(11)
1522                 }
1523
1524     MAX-ACCESS  read-create
1525     STATUS      current
1526     DESCRIPTION
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 }
1535
1536 pmSchedDay OBJECT-TYPE
1537     SYNTAX      BITS {
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),
1544                     d31(30),
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),
1550
1551
1552
1553                     r26(56), r27(57), r28(58), r29(59), r30(60),
1554                     r31(61)
1555                 }
1556     MAX-ACCESS  read-create
1557     STATUS      current
1558     DESCRIPTION
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.
1563
1564         There are two sets of bits one can use to define the day
1565         within a month:
1566
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.
1572
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.
1578
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
1583         month."
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,
1590                 r31 } }
1591     ::= { pmSchedEntry 6 }
1592
1593 pmSchedWeekDay OBJECT-TYPE
1594     SYNTAX      BITS {
1595                     sunday(0),
1596                     monday(1),
1597                     tuesday(2),
1598                     wednesday(3),
1599                     thursday(4),
1600                     friday(5),
1601
1602
1603
1604                     saturday(6)
1605                 }
1606     MAX-ACCESS  read-create
1607     STATUS      current
1608     DESCRIPTION
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 }
1617
1618 pmSchedTimeOfDay OBJECT-TYPE
1619     SYNTAX      PmUTF8String (SIZE (0..15))
1620     MAX-ACCESS  read-create
1621     STATUS      current
1622     DESCRIPTION
1623
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.
1627
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
1634         form:
1635
1636             'Thhmmss/Thhmmss'.
1637
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
1644         the following day.
1645
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
1652
1653
1654
1655         until 0800, and the day of week mask selects Monday and
1656         Tuesday, then the policy is active during the following three
1657         intervals:
1658
1659             From midnight Sunday until 0800 Monday
1660             From 2100 Monday until 0800 Tuesday
1661             From 2100 Tuesday until 23:59:59 Tuesday
1662
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 }
1667
1668 pmSchedLocalOrUtc OBJECT-TYPE
1669     SYNTAX      INTEGER {
1670                     localTime(1),
1671                     utcTime(2)
1672                 }
1673     MAX-ACCESS  read-create
1674     STATUS      current
1675     DESCRIPTION
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."
1679     DEFVAL { utcTime }
1680     ::= { pmSchedEntry 9 }
1681
1682 pmSchedStorageType OBJECT-TYPE
1683     SYNTAX      StorageType
1684     MAX-ACCESS  read-create
1685     STATUS      current
1686     DESCRIPTION
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.
1690
1691          Conceptual rows having the value 'permanent' must allow write
1692          access to the columnar objects pmSchedDescr, pmSchedWeekDay,
1693          pmSchedMonth, and pmSchedDay.
1694
1695          If the value of this object is 'permanent', no values in the
1696          associated row have to be writable."
1697     DEFVAL { volatile }
1698     ::= { pmSchedEntry 10 }
1699
1700
1701
1702
1703
1704
1705
1706 pmSchedRowStatus OBJECT-TYPE
1707     SYNTAX      RowStatus
1708     MAX-ACCESS  read-create
1709     STATUS      current
1710     DESCRIPTION
1711         "The status of this schedule entry.
1712
1713          If the value of this object is active, no object in this row
1714          may be modified."
1715     ::= { pmSchedEntry 11 }
1716
1717 -- Policy Tracking
1718
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.
1722
1723 pmTrackingPETable OBJECT-TYPE
1724     SYNTAX      SEQUENCE OF PmTrackingPEEntry
1725     MAX-ACCESS  not-accessible
1726     STATUS      current
1727     DESCRIPTION
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
1731          given policy."
1732     ::= { pmMib 9 }
1733
1734 pmTrackingPEEntry OBJECT-TYPE
1735     SYNTAX      PmTrackingPEEntry
1736     MAX-ACCESS  not-accessible
1737     STATUS      current
1738     DESCRIPTION
1739          "An entry in the pmTrackingPETable.  The pmPolicyIndex in
1740          the index specifies the policy tracked by this entry.
1741
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
1746          combinations."
1747     INDEX       { pmPolicyIndex, pmTrackingPEElement,
1748                   pmTrackingPEContextName, pmTrackingPEContextEngineID }
1749     ::= { pmTrackingPETable 1 }
1750
1751
1752
1753
1754
1755
1756
1757 PmTrackingPEEntry ::= SEQUENCE {
1758     pmTrackingPEElement          RowPointer,
1759     pmTrackingPEContextName      SnmpAdminString,
1760     pmTrackingPEContextEngineID  OCTET STRING,
1761     pmTrackingPEInfo             BITS
1762 }
1763
1764 pmTrackingPEElement OBJECT-TYPE
1765     SYNTAX      RowPointer
1766     MAX-ACCESS  not-accessible
1767     STATUS      current
1768     DESCRIPTION
1769          "The element that is acted upon by the associated policy.
1770
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 }
1776
1777 pmTrackingPEContextName OBJECT-TYPE
1778     SYNTAX      SnmpAdminString (SIZE (0..32))
1779     MAX-ACCESS  not-accessible
1780     STATUS      current
1781     DESCRIPTION
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 }
1787
1788 pmTrackingPEContextEngineID OBJECT-TYPE
1789     SYNTAX      OCTET STRING (SIZE (0 | 5..32))
1790     MAX-ACCESS  not-accessible
1791     STATUS      current
1792     DESCRIPTION
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 }
1799
1800 pmTrackingPEInfo OBJECT-TYPE
1801     SYNTAX      BITS {
1802                     actionSkippedDueToPrecedence(0),
1803                     conditionRunTimeException(1),
1804                     conditionUserSignal(2),
1805
1806
1807
1808                     actionRunTimeException(3),
1809                     actionUserSignal(4)
1810                 }
1811     MAX-ACCESS  read-only
1812     STATUS      current
1813     DESCRIPTION
1814          "This object returns information about the previous policy
1815          script executions.
1816
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.
1822
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.
1826
1827          If the conditionUserSignal(3) bit is set, the last
1828          execution of the associated policy condition called the
1829          signalError() function.
1830
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.
1834
1835          If the actionUserSignal(5) bit is set, the last
1836          execution of the associated policy action called the
1837          signalError() function.
1838
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 }
1844
1845 -- Element to Policy Table
1846
1847 pmTrackingEPTable OBJECT-TYPE
1848     SYNTAX      SEQUENCE OF PmTrackingEPEntry
1849     MAX-ACCESS  not-accessible
1850     STATUS      current
1851     DESCRIPTION
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."
1856
1857
1858
1859     ::= { pmMib 10 }
1860
1861 pmTrackingEPEntry OBJECT-TYPE
1862     SYNTAX      PmTrackingEPEntry
1863     MAX-ACCESS  not-accessible
1864     STATUS      current
1865     DESCRIPTION
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.
1869
1870          The pmPolicyIndex in the index specifies the policy
1871          tracked by this entry.
1872
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 }
1880
1881 PmTrackingEPEntry ::= SEQUENCE {
1882     pmTrackingEPElement          RowPointer,
1883     pmTrackingEPContextName      SnmpAdminString,
1884     pmTrackingEPContextEngineID  OCTET STRING,
1885     pmTrackingEPStatus           INTEGER
1886 }
1887
1888 pmTrackingEPElement OBJECT-TYPE
1889     SYNTAX      RowPointer
1890     MAX-ACCESS  not-accessible
1891     STATUS      current
1892     DESCRIPTION
1893          "The element acted upon by the associated policy.
1894
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 }
1900
1901 pmTrackingEPContextName OBJECT-TYPE
1902     SYNTAX      SnmpAdminString (SIZE (0..32))
1903     MAX-ACCESS  not-accessible
1904     STATUS      current
1905     DESCRIPTION
1906         "If the associated element is not in the default SNMP context
1907
1908
1909
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 }
1914
1915 pmTrackingEPContextEngineID OBJECT-TYPE
1916     SYNTAX      OCTET STRING (SIZE (0 | 5..32))
1917     MAX-ACCESS  not-accessible
1918     STATUS      current
1919     DESCRIPTION
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 }
1926
1927 pmTrackingEPStatus OBJECT-TYPE
1928     SYNTAX      INTEGER {
1929                     on(1),
1930                     forceOff(2)
1931                 }
1932     MAX-ACCESS  read-write
1933     STATUS      current
1934     DESCRIPTION
1935          "This entry will only exist if the calendar for the policy is
1936          active and if the associated policyCondition returned 1 for
1937          'this element'.
1938
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
1946          avoided.
1947
1948          Unless forcibly disabled, if this entry exists, its value
1949          will be on(1)."
1950     ::= { pmTrackingEPEntry 4 }
1951
1952 -- Policy Debugging Table
1953
1954 pmDebuggingTable OBJECT-TYPE
1955     SYNTAX      SEQUENCE OF PmDebuggingEntry
1956     MAX-ACCESS  not-accessible
1957     STATUS      current
1958
1959
1960
1961     DESCRIPTION
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
1965          code.
1966
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
1970          has been turned on.
1971
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.
1977
1978          If the system restarts, all debugging entries may be deleted."
1979     ::= { pmMib 11 }
1980
1981 pmDebuggingEntry OBJECT-TYPE
1982     SYNTAX      PmDebuggingEntry
1983     MAX-ACCESS  not-accessible
1984     STATUS      current
1985     DESCRIPTION
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.
1989
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 }
1998
1999 PmDebuggingEntry ::= SEQUENCE {
2000     pmDebuggingElement          RowPointer,
2001     pmDebuggingContextName      SnmpAdminString,
2002     pmDebuggingContextEngineID  OCTET STRING,
2003     pmDebuggingLogIndex         Unsigned32,
2004     pmDebuggingMessage          PmUTF8String
2005 }
2006
2007
2008
2009
2010
2011
2012 pmDebuggingElement OBJECT-TYPE
2013     SYNTAX      RowPointer
2014     MAX-ACCESS  not-accessible
2015     STATUS      current
2016     DESCRIPTION
2017          "The element the policy was executing on when it encountered
2018          the error that led to this log entry.
2019
2020          For example, if the element is interface 3, then this object
2021          will contain the OID for 'ifIndex.3'.
2022
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 }
2028
2029 pmDebuggingContextName OBJECT-TYPE
2030     SYNTAX      SnmpAdminString (SIZE (0..32))
2031     MAX-ACCESS  not-accessible
2032     STATUS      current
2033     DESCRIPTION
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 }
2039
2040 pmDebuggingContextEngineID OBJECT-TYPE
2041     SYNTAX      OCTET STRING (SIZE (0 | 5..32))
2042     MAX-ACCESS  not-accessible
2043     STATUS      current
2044     DESCRIPTION
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 }
2051
2052 pmDebuggingLogIndex OBJECT-TYPE
2053     SYNTAX      Unsigned32 (1..4294967295)
2054     MAX-ACCESS  not-accessible
2055     STATUS      current
2056     DESCRIPTION
2057          "A unique index for this log entry among other log entries
2058          for this policy/element combination."
2059     ::= { pmDebuggingEntry 4 }
2060
2061
2062
2063 pmDebuggingMessage OBJECT-TYPE
2064     SYNTAX      PmUTF8String (SIZE (0..128))
2065     MAX-ACCESS  read-only
2066     STATUS      current
2067     DESCRIPTION
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 }
2072
2073 -- Notifications
2074
2075 pmNotifications OBJECT IDENTIFIER ::= { pmMib 0 }
2076
2077 pmNewRoleNotification NOTIFICATION-TYPE
2078     OBJECTS     { pmRoleStatus }
2079     STATUS      current
2080     DESCRIPTION
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).
2084
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 }
2091
2092 pmNewCapabilityNotification NOTIFICATION-TYPE
2093     OBJECTS     { pmCapabilitiesType }
2094     STATUS      current
2095     DESCRIPTION
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).
2100
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 }
2107
2108 pmAbnormalTermNotification NOTIFICATION-TYPE
2109     OBJECTS     { pmTrackingPEInfo }
2110     STATUS      current
2111
2112
2113
2114     DESCRIPTION
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.
2119
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 }
2125
2126 -- Compliance Statements
2127
2128     pmConformance   OBJECT IDENTIFIER ::= { pmMib 12 }
2129     pmCompliances   OBJECT IDENTIFIER ::= { pmConformance 1 }
2130     pmGroups        OBJECT IDENTIFIER ::= { pmConformance 2 }
2131
2132 pmCompliance MODULE-COMPLIANCE
2133     STATUS  current
2134     DESCRIPTION
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 }
2141
2142 pmPolicyManagementGroup OBJECT-GROUP
2143     OBJECTS { pmPolicyPrecedenceGroup, pmPolicyPrecedence,
2144               pmPolicySchedule, pmPolicyElementTypeFilter,
2145               pmPolicyConditionScriptIndex, pmPolicyActionScriptIndex,
2146               pmPolicyParameters,
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,
2156               pmRoleStatus,
2157               pmCapabilitiesType, pmCapabilitiesOverrideState,
2158               pmCapabilitiesOverrideRowStatus,
2159               pmTrackingPEInfo,
2160               pmTrackingEPStatus,
2161               pmDebuggingMessage }
2162
2163
2164
2165     STATUS  current
2166     DESCRIPTION
2167         "Objects that allow for the creation and management of
2168         configuration policies."
2169     ::=  { pmGroups 1 }
2170
2171 pmSchedGroup OBJECT-GROUP
2172     OBJECTS { pmSchedLocalTime, pmSchedGroupIndex,
2173               pmSchedDescr, pmSchedTimePeriod,
2174               pmSchedMonth, pmSchedDay, pmSchedWeekDay,
2175               pmSchedTimeOfDay, pmSchedLocalOrUtc, pmSchedStorageType,
2176               pmSchedRowStatus
2177             }
2178     STATUS current
2179     DESCRIPTION
2180         "Objects that allow for the scheduling of policies."
2181     ::= { pmGroups 2 }
2182
2183 pmNotificationGroup NOTIFICATION-GROUP
2184     NOTIFICATIONS { pmNewRoleNotification,
2185                     pmNewCapabilityNotification,
2186                     pmAbnormalTermNotification }
2187     STATUS        current
2188     DESCRIPTION
2189         "Notifications sent by an Policy MIB agent."
2190     ::= { pmGroups 3 }
2191
2192 pmBaseFunctionLibrary OBJECT IDENTIFIER ::= { pmGroups 4 }
2193
2194 END