1 META-POLICY-PIB PIB-DEFINITIONS ::= BEGIN
7 MODULE-IDENTITY, OBJECT-TYPE,
10 InstanceId, ReferenceId, TagId, TagReferenceId, Prid
13 FROM SNMP-FRAMEWORK-MIB
17 metaPolicyPib MODULE-IDENTITY
18 SUBJECT-CATEGORIES { all }
19 LAST-UPDATED "200104010000Z"
21 CONTACT-INFO " Andreas Polyrakis
22 Dept. of Computer Science,
23 University of Toronto,
24 10 King's College Road,
25 Toronto, Ontario,M5S 3G4, Canada.
26 e-mail: apolyr@cs.toronto.edu
27 Phone: ++1 (416) 978-4837
28 Fax: ++1 (416) 978 1931
31 Dept. of Computer Science,
32 University of Waterloo,
33 200 University Avenue West,
34 Waterloo, Ontario N2L 3G1, Canada
35 e-mail: rboutaba@bbcr.uwaterloo.ca
36 Phone: ++1 (519) 888 4567 ext.4820
37 Fax: ++1 (519) 885 1208"
39 "The meta-policy PIB module. It contains the classes
40 that are necessary for the provisioning of meta-policy
41 related information. This module is applicable,
42 but not current, to all subject-categories"
45 -- The root OID for PRCs in the Meta-Policy PIB
49 --- Textual Conventions
51 BERValue ::= TEXTUAL-CONVENTION
54 "A sequence of octets that encodes a value using BER.
55 The suppoted BER types are (borrowed by SNMPv2):
57 --------------------|----------------
63 OBJECT IDENTIFIER | 06
71 By using this type, the PEP can store values for different
72 types of parameters in the same class (PRC)."
74 SYNTAX OCTET STRING (SIZE (0..16))
76 XMLString ::= TEXTUAL-CONVENTION
79 "A string that contains a logical expression encoded using
80 XML. The semantics of the XML tags are defined in special
81 DTDs, which the PEP declares that supports."
82 SYNTAX OCTET STRING (SIZE (0..1024))
84 --- End of Textual Conventions
87 -----------------------------------------------
88 -----------------------------------------------
91 -- Meta-Policy Capabilities Group
92 metaPolicyCapabilitiesClasses
93 OBJECT IDENTIFIER ::= { metaPolicyPib 1 }
97 --- Meta-Policy Capabilities Table
99 xmlDTDTable OBJECT-TYPE
100 SYNTAX SEQUENCE OF XmlDTDEntry
104 "Each instance of this class specifies a PRC that
105 identifies an XML DTD supported by the PEP for encoding
106 logical expressions. If this class has no instances,
107 then the PEP supports only expressions that are formed
108 with boolean predicates and operators, and in this case
109 the PDP MUST not attempt to install any XML-encoded
110 expressions in the generalConditionTable."
111 ::= { metaPolicyCapabilitiesClasses 1 }
113 xmlDTDEntry OBJECT-TYPE
117 "An instance of the xmlDTDTable class that determines an
118 XML DTD that can be used to encode a logical expression"
119 PIB-INDEX { xmlDTDPrid }
120 ::= { xmlDTDTable 1 }
125 xmlDTDPrid InstanceId,
126 xmlDTDURL SnmpAdminString
129 xmlDTDPrid OBJECT-TYPE
133 "An arbitrary integer that uniquely identifies an
134 instance of the xmlDTD class."
135 ::= { xmlDTDEntry 1 }
137 xmlDTDURL OBJECT-TYPE
138 SYNTAX SnmpAdminString
141 "The XML DTD URL. A string that indicates the URL of an
142 XML DTD that can be used for encoding expressions.
143 These DTDs can be defined either by standardization
144 organizations, such as IETF, or be vendor specific.
146 When the PDP receives a URL that uniquely identifies
147 such a DTD, it knows that it may encode expressions
148 according to this DTD that the PEP will be able to
150 ::= { xmlDTDEntry 2 }
154 -----------------------------------------------
155 -----------------------------------------------
157 -- Base Meta-Policy Group
159 OBJECT IDENTIFIER ::= { metaPolicyPib 2 }
163 --- Meta-Policy Table
165 metaPolicyTable OBJECT-TYPE
166 SYNTAX SEQUENCE OF MetaPolicyEntry
170 "Each instance of this class specifies a PRC that
171 represents a meta-policy. Each meta-policy, apart
172 from a unique identifier and an optional name, it
173 constists of a condition and a group of actions."
174 ::= { metaPolicyClasses 1 }
176 metaPolicyEntry OBJECT-TYPE
177 SYNTAX MetaPolicyEntry
181 "An instance of the metaPolicy Class that represents
183 PIB-INDEX { metaPolicyPrid }
184 ::= { metaPolicyTable 1 }
188 metaPolicyPrid InstanceId,
189 metaPolicyName SnmpAdminString,
190 metaPolicyCondition ReferenceId,
191 metaPolicyActions TagId
194 metaPolicyPrid OBJECT-TYPE
198 "An arbitrary integer that uniquely identifies an
199 instance of the metaPolicy class."
200 ::= { metaPolicyEntry 1 }
202 metaPolicyName OBJECT-TYPE
203 SYNTAX SnmpAdminString
206 "A display string that represents the name of the
207 meta-policy. It is reccomented that different
208 meta-policies have different names. However, similar
209 meta-policies may have the same name.
210 Also, an empty string can be used as a name."
211 ::= { metaPolicyEntry 2 }
213 metaPolicyCondition OBJECT-TYPE
215 PIB-REFERENCES { conditionEntry }
218 "This attribute associates the specific meta-policy with
219 a condition in the condition Class. The condition MUST
221 exist when the meta-policy is installed. The meta-policy
222 MUST always be assosiated with one condition (which means
223 that the attribute can never be null/invalid."
224 ::= { metaPolicyEntry 3 }
226 metaPolicyActions OBJECT-TYPE
228 -- PIB-REFERENCES { actionEntry }
231 "A tag that maps this instance (meta-policy) to a group
232 of actions in the actions Class. Although the tag should
233 map to at least one action, there might be cases where a
235 meta-policy is associated to no actions. However such
236 cases should be avoided and only be temporal."
237 ::= { metaPolicyEntry 4 }
238 --End of metaPolicyTable
241 -- Meta-Policy Status Table
243 metaPolicyStatusTable OBJECT-TYPE
244 SYNTAX SEQUENCE OF MetaPolicyStatusEntry
245 PIB-ACCESS report-only
248 "This class augments the metaPolicy class.
249 Each instance of this class defines a PRC that is used
250 in order to report to the PDP the status of the
253 Also, information form this table can be used as a
254 parameter to another meta-policy, as an alternative
255 way to ensure that two priorities cannot be
256 activated at the same time."
257 ::= { metaPolicyClasses 2 }
259 metaPolicyStatusEntry OBJECT-TYPE
260 SYNTAX MetaPolicyStatusEntry
263 "An instance of the metaPolicyStatus class that reports
264 the status of the corresponding meta-policy in the
266 AUGMENTS { metaPolicyEntry }
267 ::= { metaPolicyStatusTable 1 }
269 MetaPolicyStatusEntry ::=
271 metaPolicyActive TruthValue,
272 metaPolicySuppressed TruthValue
275 metaPolicyActive OBJECT-TYPE
279 "True while the meta-policy is active"
280 ::= { metaPolicyStatusEntry 1 }
282 metaPolicySuppressed OBJECT-TYPE
286 "If this meta-policy is prevented from being active by
287 an other meta-policy (but its conditions are met), this
288 attribute is set to true.
291 If this meta-policy prevents another meta-policy from
292 being active, then this attribute is true.
296 --------------------------------
297 true | true | meta-policy active,
298 | it suppresses another one
299 true | false | meta-policy active,
300 | does not suppress another one
301 false | true | meta-policy inactive
302 | because it is suppressed by another one
303 false | false | meta-policy inactive because
304 | the conditions are not met
306 ::= { metaPolicyStatusEntry 2 }
307 --End of metaPolicyStatusTable
311 --- Meta-Policy Priority Table
313 metaPolicyPriorityTable OBJECT-TYPE
314 SYNTAX SEQUENCE OF MetaPolicyPriorityEntry
318 "This table reports conflicting meta-policies.
319 When a meta-policy needs to be activated, the PEP
320 MUST check if it is conflicting with another meta-policy,
321 which is already active or needs to be activated at the
322 same time. If so, the one that is referenced in the
323 higherPriority attribute is activated and the other one
324 is deactivated or remains deactivated. Similarly, when a
325 meta-policy is deactivated, the PEP must check if a
326 lower-priority meta-policy must now be activated."
327 ::= { metaPolicyClasses 3 }
329 metaPolicyPriorityEntry OBJECT-TYPE
330 SYNTAX MetaPolicyPriorityEntry
333 "An instance of the metaPolicyPriority Class that
334 identifies the relative priority between two
336 PIB-INDEX { metaPolicyPriorityPrid }
337 ::= { metaPolicyPriorityTable 1 }
339 MetaPolicyPriorityEntry ::=
341 metaPolicyPriorityPrid InstanceId,
342 higherPriority ReferenceId,
343 lowerPriority ReferenceId
347 metaPolicyPriorityPrid OBJECT-TYPE
351 "An arbitrary integer that uniquely identifies an
352 instance of the metaPolicyPriority class."
353 ::= { metaPolicyPriorityEntry 1 }
355 higherPriority OBJECT-TYPE
357 PIB-REFERENCES { metaPolicyEntry }
360 "This attribute references to the meta-policy that
361 has higher priority than the one referenced by the
362 lowerPriority attribute"
363 ::= { metaPolicyPriorityEntry 2 }
365 lowerPriority OBJECT-TYPE
367 PIB-REFERENCES { metaPolicyEntry }
371 "This attribute references to the meta-policy that
372 has lower priority than the one referenced by the
373 higherPriority attribute"
374 ::= { metaPolicyPriorityEntry 3 }
376 --End of metaPolicyPriorityTable
377 -----------------------------------------------
378 ----------------------------------------------
383 OBJECT IDENTIFIER ::= { metaPolicyPib 3 }
389 conditionTable OBJECT-TYPE
390 SYNTAX SEQUENCE OF ConditionEntry
394 "Each instance of this PRC represents a boolean
395 expression. The conditionss of the meta-policies are
396 instances of this class. However, if the condition of
397 a meta-policy contains more than one predicate, the
398 predicates are also instances of this PRC.
401 For instance, Suppose that we want to encode a condition
402 A, which is evaluated as ( B OR C ), where B and C some
403 other boolean expressions.
404 In this case, A, B and C are instances of this PRC.
406 All instances of this PRC MUST be extended by an instance
407 of one of the rest PRCs of this group, in order to denote
408 if this condition should be evaluated based on simpler
409 conditions, if it is a boolean operand or an other
411 ::= { conditionClasses 1 }
413 conditionEntry OBJECT-TYPE
414 SYNTAX ConditionEntry
417 "An instance of the condition Class that defines a
419 PIB-INDEX { conditionPrid }
420 ::= { conditionTable 1 }
424 conditionPrid InstanceId,
425 conditionReverse TruthValue
428 conditionPrid OBJECT-TYPE
432 "An arbitrary integer that uniquely identifies an
433 instance of the condition class."
434 ::= { conditionEntry 1 }
436 conditionReverse OBJECT-TYPE
440 "if true, the negation of the logical expression
441 is evaluated, instead."
442 ::= { conditionEntry 2 }
443 -- END OF conditionTable
446 -- Complex Condition Table
448 complexConditionTable OBJECT-TYPE
449 SYNTAX SEQUENCE OF ComplexConditionEntry
453 "Each instance of this PRC represents a complex
455 condition. It consists of two simplier conditions,
456 and a logical operator that determines how the two
457 terms are assosiated to compose the more
458 complicated condition"
459 ::= { conditionClasses 2 }
461 complexConditionEntry OBJECT-TYPE
462 SYNTAX ComplexConditionEntry
465 "An instance of the complexCondition class that breaks a
466 complex condition into two simpler ones."
467 EXTENDS { conditionEntry }
469 ::= { complexConditionTable 1 }
471 ComplexConditionEntry ::=
474 leftTerm ReferenceId,
475 rightTerm ReferenceId
485 "The logical operator in the complex condition"
486 ::= { complexConditionEntry 1 }
490 PIB-REFERENCES { conditionEntry }
493 "A reference to the first simpler condition."
494 ::= { complexConditionEntry 2 }
496 rightTerm OBJECT-TYPE
498 PIB-REFERENCES { conditionEntry }
502 "A reference to the second simpler condition."
503 ::= { complexConditionEntry 3 }
504 -- END OF complexConditionTable
507 -- Boolean Condition Expression Table
510 booleanConditionTable OBJECT-TYPE
511 SYNTAX SEQUENCE OF BooleanConditionEntry
515 "Each instance of this class extends the condition class
516 and represents a boolean parameter from which the
517 condition is evaluated."
518 ::= { metaPolicyCapabilitiesClasses 2 }
520 booleanConditionEntry OBJECT-TYPE
521 SYNTAX BooleanConditionEntry
524 "An instance of the booleanCondition class that defines
525 the boolean parameter that gives values to the
526 corresponding condition."
527 EXTENDS { conditionEntry }
528 ::= { booleanConditionTable 1 }
530 BooleanConditionEntry ::=
532 parameterReference ReferenceId
535 parameterReference OBJECT-TYPE
537 PIB-REFERENCES { parameterEntry }
540 "A reference to a parameter from where the condition is
541 evaluated. This condition MUST be of type boolean
543 ::= { booleanConditionEntry 1 }
544 -- End of booleanConditionTable
547 -- Generic Condition Table
549 genericConditionTable OBJECT-TYPE
550 SYNTAX SEQUENCE OF GenericConditionEntry
554 "Each instance of this class extends the condition class
555 and assosiates the corresponding condition with a complex
556 logical expression, from where the condition is
558 ::= { conditionClasses 3 }
560 genericConditionEntry OBJECT-TYPE
561 SYNTAX GenericConditionEntry
565 "An instance of the generalCondition class that defines
566 the logical expression for the corresponding condition
567 of the condition class."
568 PIB-INDEX { xmlDTDID }
569 ::= { genericConditionTable 1 }
571 GenericConditionEntry ::=
574 xmlDTDRef ReferenceId,
575 xmlCondition XMLString
583 ::= { genericConditionEntry 1 }
585 xmlDTDRef OBJECT-TYPE
587 PIB-REFERENCES { xmlDTDEntry }
590 "A reference to the xmlDTD class that deternies which
591 of the XML DTDs that this PEP supports is used in
592 order to encode the expression."
593 ::= { genericConditionEntry 2 }
595 xmlCondition OBJECT-TYPE
599 "The XML-encoded expression."
600 ::={ genericConditionEntry 3 }
601 -- End of genericConditionTable
603 -----------------------------------------------
604 -----------------------------------------------
609 OBJECT IDENTIFIER ::= { metaPolicyPib 4 }
615 actionTable OBJECT-TYPE
616 SYNTAX SEQUENCE OF ActionEntry
620 "Each instance of this class stores an action of
622 ::= { actionClasses 1 }
624 actionEntry OBJECT-TYPE
629 "An instance of the action class that stores an action
631 PIB-INDEX { actionPrid }
632 ::= { actionTable 1 }
636 actionPrid InstanceId,
637 actionRefTag TagReferenceId,
638 actionTargetPrid Prid
641 actionPrid OBJECT-TYPE
645 "An arbitrary integer that uniquely identifies an
646 instance of the action class."
647 ::= { actionEntry 1 }
649 actionRefTag OBJECT-TYPE
650 SYNTAX TagReferenceId
651 PIB-TAG { metaPolicyActions }
654 "An attribute that defines a Tag Group of actions.
655 All actions with the same tag are grouped as the actions
656 of a single meta-policy."
659 actionTargetPrid OBJECT-TYPE
663 "The PRID of the PRI to be installed/updated.
664 The PRID must point to a single PRI."
666 -- END OF actionTable
669 -- Action Value table
671 actionValueTable OBJECT-TYPE
672 SYNTAX SEQUENCE OF ActionValueEntry
676 "Each instance of this class extends the corresponding
677 instance of the action class. It provides the BER-encoded
679 that will be installed at the corresponding PRI."
680 ::= { actionClasses 2 }
685 actionValueEntry OBJECT-TYPE
686 SYNTAX ActionValueEntry
689 "An insance of the actionValue class. It provides
690 the value (encoded with BER) that will be installed at
691 the PRI denoted by the corresponding instance of the
693 EXTENDS { actionEntry }
694 ::= { actionValueTable 1 }
698 actionValueEpd BERValue
701 actionValueEpd OBJECT-TYPE
705 "This attribute contains the BER-encoded value of the
706 PRI to be installed/updated."
707 ::={ actionValueEntry 1 }
708 -- END OF actionValueTable
711 -- Action Parametric Value Table
713 actionParametricValueTable OBJECT-TYPE
714 SYNTAX SEQUENCE OF ActionParametricValueEntry
718 "Each instance of this class that extends the
719 corresponding instance of the action class. It provides
721 parametric value that will be installed at the
723 ::= { actionClasses 3 }
725 actionParametricValueEntry OBJECT-TYPE
726 SYNTAX ActionParametricValueEntry
729 "An insance of the actionValue class. It provides with
730 the parametric value that will be installed at the PRI
731 denoted by the corresponding instance of the action
733 EXTENDS { actionEntry }
735 ::= { actionParametricValueTable 1 }
738 ActionParametricValueEntry ::=
740 parameterRef ReferenceId
743 parameterRef OBJECT-TYPE
745 PIB-REFERENCES { parameterEntry }
748 "A reference to a the parameter, from where the value
749 of the installed PRI should be obtained. Whenever the
750 value of the parameter changes, the installed PRI
752 ::={ actionParametricValueEntry 1 }
753 -- END OF actionParametricValueTable
755 -----------------------------------------------
756 -----------------------------------------------
761 OBJECT IDENTIFIER ::= { metaPolicyPib 5 }
767 parameterTable OBJECT-TYPE
768 SYNTAX SEQUENCE OF ParameterEntry
772 "Each instance of this class defines a parameter
773 that has been installed on the PEP. This class
774 MUST be extended by a class that defines how
775 the value of the parameter will be evaluated."
776 ::= { parameterClasses 1}
778 parameterEntry OBJECT-TYPE
779 SYNTAX ParameterEntry
782 "An instance of the parameter class that installs
783 a parameter into the PEP."
784 PIB-INDEX { parameterPrid }
785 ::= { parameterTable 1 }
789 parameterPrid InstanceId,
790 parameterName SnmpAdminString,
791 parameterType INTEGER
795 parameterPrid OBJECT-TYPE
799 "An arbitrary integer that uniquely identifies an
800 instance of the parameter class."
801 ::= { parameterEntry 1 }
803 parameterName OBJECT-TYPE
804 SYNTAX SnmpAdminString
807 "A string that represents the name of the parameter.
808 It is reccomented that different parameter have different
809 names. However, similar parameter may have the same name.
810 Also, an empty string can be used as a name."
811 ::= { parameterEntry 2 }
813 parameterType OBJECT-TYPE
819 objectidentifier (6),
824 "The BER type of the parameter.
825 The suppoted BER types are:
826 Type | BER identifier
827 --------------------|----------------
832 OBJECT IDENTIFIER | 06
834 ::= { parameterEntry 3 }
835 -- END OF parameterTable
838 -- MIBPIB Parameter Table
840 mibPibParameterTable OBJECT-TYPE
841 SYNTAX SEQUENCE OF MibPibParameterEntry
845 "This class extends the parameter class.
846 Each instance of this class assosiates to the
848 corresponding parameter a MIB or PIB variable, from
849 where the parameter is evaluated"
850 ::= { parameterClasses 2 }
852 mibPibParameterEntry OBJECT-TYPE
853 SYNTAX MibPibParameterEntry
856 "An instance of the mibPibParameter class that provides
857 the identifier of the MIB/PIB variable from where the
858 corresponding parameter is evaluated."
859 EXTENDS { parameterEntry }
860 ::= { mibPibParameterTable 1 }
862 MibPibParameterEntry ::=
864 targetOID OBJECT IDENTIFIER,
865 evaluationFrequency TimeTicks
868 targetOID OBJECT-TYPE
869 SYNTAX OBJECT IDENTIFIER
873 "The object identifier of the MIB/PIB variable.
874 The MIB/PIB variable MUST exist in the MIB/PIB of the
875 device. Also, the type of the target variable MUST be
876 compatible with the type of the corresponding PRI of the
878 ::={ mibPibParameterEntry 1 }
880 evaluationFrequency OBJECT-TYPE
884 "The frequency of updating the parameter in milliseconds"
885 ::={ mibPibParameterEntry 2 }
886 -- END of mibPibParameterTable
889 -- PDP Parameter Table
891 pdpParameterTable OBJECT-TYPE
892 SYNTAX SEQUENCE OF PdpParameterEntry
896 "This class extends the parameter class. Each instance
897 of this class contains the value of the corresponding
898 paramter. This value is send by the PDP and updated
900 ::= { parameterClasses 3 }
903 pdpParameterEntry OBJECT-TYPE
904 SYNTAX PdpParameterEntry
907 "An instance of the pdpParameter class that stores the
908 value, sent by the PDP, for the corresponding parameter."
909 PIB-INDEX { pdpParameterPrid }
910 ::= { pdpParameterTable 1 }
912 PdpParameterEntry ::=
914 pdpParameterPrid InstanceId,
918 lastValue OBJECT-TYPE
922 "The latest value of the parameter, encoded with BER.
923 The BER-encoded value must be of the same type as the
924 corresponding PRI of the parameter class."
925 ::={ pdpParameterEntry 1 }
927 pdpParameterPrid OBJECT-TYPE
931 "An index to uniquely identify this parameter."
933 ::= { pdpParameterEntry 2 }
935 -- END OF pdpParameterTable