1 META-POLICY-PIB PIB-DEFINITIONS ::= BEGIN
5 MODULE-IDENTITY, OBJECT-TYPE,
6 InstanceId, ReferenceId
12 metaPolicyPib MODULE-IDENTITY
13 SUBJECT-CATEGORY { all }
14 LAST-UPDATED "200104010000"
16 CONTACT-INFO " Andreas Polyrakis
17 Dept. of Computer Science,
18 University of Toronto,
19 10 King's College Road,
20 Toronto, Ontario,M5S 3G4, Canada.
21 e-mail: apolyr@cs.toronto.edu
22 Phone: ++1 (416) 978-4837
23 Fax: ++1 (416) 978 1931
26 Dept. of Computer Science,
27 University of Waterloo,
28 200 University Avenue West,
29 Waterloo, Ontario N2L 3G1, Canada
30 e-mail: rboutaba@bbcr.uwaterloo.ca
31 Phone: ++1 (519) 888 4567 ext.4820
32 Fax: ++1 (519) 885 1208"
34 "The meta-policy PIB module. It contains the classes
35 that are necessary for the provisioning of meta-policy
36 related information. This module is applicable,
37 but not mandatory, to all subject-categories"
40 -- The root OID for PRCs in the Meta-Policy PIB
44 --- Textual Conventions
46 BERValue ::= TEXTUAL-CONVENTION
49 "A sequence of octets that encodes a value using BER.
50 The suppoted BER types are (borrowed by SNMPv2):
52 --------------------|----------------
58 OBJECT IDENTIFIER | 06
66 By using this type, the PEP can store values for different
67 types of parameters in the same class (PRC)."
69 SYNTAX OCTET STRING (SIZE (0..16))
71 XMLString ::= TEXTUAL-CONVENTION
74 "A string that contains a logical expression encoded using
75 XML. The semantics of the XML tags are defined in special
76 DTDs, which the PEP declares that supports."
77 SYNTAX OCTET STRING (SIZE (0..1024))
79 --- End of Textual Conventions
82 -----------------------------------------------
83 -----------------------------------------------
86 -- Meta-Policy Capabilities Group
87 metaPolicyCapabilitiesClasses
88 OBJECT IDENTIFIER ::= { metaPolicyPib 1 }
92 --- Meta-Policy Capabilities Table
94 xmlDTDTable OBJECT-TYPE
95 SYNTAX SEQUENCE OF xmlDTDEntry
99 "Each instance of this class specifies a PRC that
100 identifies an XML DTD supported by the PEP for encoding
101 logical expressions. If this class has no instances,
102 then the PEP supports only expressions that are formed
103 with boolean predicates and operators, and in this case
104 the PDP MUST not attempt to install any XML-encoded
105 expressions in the generalConditionTable."
106 ::= { metaPolicyCapabilitiesClasses 1 }
108 xmlDTDEntry OBJECT-TYPE
109 SYNTAX MetaPolicyCapabilitiesEntry
112 "An instance of the xmlDTDTable class that determines an
113 XML DTD that can be used to encode a logical expression"
114 INDEX { metaPolicyPrid }
115 ::= { metaPolicyTable 1 }
120 xmlDTDPrid InstanceId,
121 xmlDTDURL SnmpAdminString
124 xmlDTDPrid OBJECT-TYPE
128 "An arbitrary integer that uniquely identifies an
129 instance of the xmlDTD class."
130 ::= { xmlDTDEntry 1 }
132 xmlDTDURL OBJECT-TYPE
133 SYNTAX SnmpAdminString
136 "The XML DTD URL. A string that indicates the URL of an
137 XML DTD that can be used for encoding expressions.
138 These DTDs can be defined either by standardization
139 organizations, such as IETF, or be vendor specific.
141 When the PDP receives a URL that uniquely identifies
142 such a DTD, it knows that it may encode expressions
143 according to this DTD that the PEP will be able to
145 ::= { xmlDTDEntry 2 }
149 -----------------------------------------------
150 -----------------------------------------------
152 -- Base Meta-Policy Group
154 OBJECT IDENTIFIER ::= { metaPolicyPib 2 }
158 --- Meta-Policy Table
160 metaPolicyTable OBJECT-TYPE
161 SYNTAX SEQUENCE OF metaPolicyEntry
165 "Each instance of this class specifies a PRC that
166 represents a meta-policy. Each meta-policy, apart
167 from a unique identifier and an optional name, it
168 constists of a condition and a group of actions."
169 ::= { metaPolicyClasses 1 }
171 metaPolicyEntry OBJECT-TYPE
172 SYNTAX MetaPolicyEntry
176 "An instance of the metaPolicy Class that represents
178 INDEX { metaPolicyPrid }
179 ::= { metaPolicyTable 1 }
183 metaPolicyPrid InstanceId,
184 metaPolicyName SnmpAdminString,
185 metaPolicyCondition ReferenceId,
186 metaPolicyActions TagId
189 metaPolicyPrid OBJECT-TYPE
193 "An arbitrary integer that uniquely identifies an
194 instance of the metaPolicy class."
195 ::= { metaPolicyEntry 1 }
197 metaPolicyName OBJECT-TYPE
198 SYNTAX SnmpAdminString
201 "A display string that represents the name of the
202 meta-policy. It is reccomented that different
203 meta-policies have different names. However, similar
204 meta-policies may have the same name.
205 Also, an empty string can be used as a name."
206 ::= { metaPolicyEntry 2 }
208 metaPolicyCondition OBJECT-TYPE
210 PIB-REFERENCES contitionTable
213 "This attribute associates the specific meta-policy with
214 a condition in the condition Class. The condition MUST
216 exist when the meta-policy is installed. The meta-policy
217 MUST always be assosiated with one condition (which means
218 that the attribute can never be null/invalid."
219 ::= { metaPolicyEntry 3 }
221 metaPolicyActions OBJECT-TYPE
223 PIB-REFERENCES actionsTable
226 "A tag that maps this instance (meta-policy) to a group
227 of actions in the actions Class. Although the tag should
228 map to at least one action, there might be cases where a
230 meta-policy is associated to no actions. However such
231 cases should be avoided and only be temporal."
232 ::= { metaPolicyEntry 4 }
233 --End of metaPolicyTable
236 -- Meta-Policy Status Table
238 metaPolicyStatusTable OBJECT-TYPE
239 SYNTAX SEQUENCE OF metaPolicyStatusEntry
240 PIB-ACCESS REPORT-ONLY
243 "This class augments the metaPolicy class.
244 Each instance of this class defines a PRC that is used
245 in order to report to the PDP the status of the
248 Also, information form this table can be used as a
249 parameter to another meta-policy, as an alternative
250 way to ensure that two priorities cannot be
251 activated at the same time."
252 ::= { metaPolicyClasses 2 }
254 metaPolicyStatusEntry OBJECT-TYPE
255 SYNTAX MetaPolicyStatusEntry
258 "An instance of the metaPolicyStatus class that reports
259 the status of the corresponding meta-policy in the
261 AUGMENTS { metaPolicyEntry }
262 ::= { metaPolicyStatusTable 1 }
264 metaPolicyStatusEntry ::=
266 metaPolicyActive TruthValue,
267 metaPolicySuppressed TruthValue
270 metaPolicyActive OBJECT-TYPE
274 "True while the meta-policy is active"
275 ::= { metaPolicyStatusEntry 1 }
277 metaPolicySuppress OBJECT-TYPE
281 "If this meta-policy is prevented from being active by
282 an other meta-policy (but its conditions are met), this
283 attribute is set to true.
286 If this meta-policy prevents another meta-policy from
287 being active, then this attribute is true.
291 --------------------------------
292 true | true | meta-policy active,
293 | it suppresses another one
294 true | false | meta-policy active,
295 | does not suppress another one
296 false | true | meta-policy inactive
297 | because it is suppressed by another one
298 false | false | meta-policy inactive because
299 | the conditions are not met
301 ::= { metaPolicyStatusEntry 2 }
302 --End of metaPolicyStatusTable
306 --- Meta-Policy Priority Table
308 metaPolicyPriorityTable OBJECT-TYPE
309 SYNTAX SEQUENCE OF metaPolicyPriorityEntry
313 "This table reports conflicting meta-policies.
314 When a meta-policy needs to be activated, the PEP
315 MUST check if it is conflicting with another meta-policy,
316 which is already active or needs to be activated at the
317 same time. If so, the one that is referenced in the
318 higherPriority attribute is activated and the other one
319 is deactivated or remains deactivated. Similarly, when a
320 meta-policy is deactivated, the PEP must check if a
321 lower-priority meta-policy must now be activated."
322 ::= { metaPolicyClasses 3 }
324 metaPolicyPriorityEntry OBJECT-TYPE
325 SYNTAX MetaPolicyPriorityEntry
328 "An instance of the metaPolicyPriority Class that
329 identifies the relative priority between two
331 INDEX { metaPolicyPrid }
332 ::= { metaPolicyPriorityTable 1 }
334 MetaPolicyPriorityEntry ::=
336 metaPolicyPriorityPrid InstanceId,
337 higherPriority ReferenceId,
338 lowerPriority ReferenceId,
342 metaPolicyPriorityPrid OBJECT-TYPE
346 "An arbitrary integer that uniquely identifies an
347 instance of the metaPolicyPriority class."
348 ::= { metaPolicyPriorityEntry 1 }
350 higherPriority OBJECT-TYPE
352 PIB-REFERENCES metaPolicyTable
355 "This attribute references to the meta-policy that
356 has higher priority than the one referenced by the
357 lowerPriority attribute"
358 ::= { metaPolicyPriorityEntry 2 }
360 lowerPriority OBJECT-TYPE
362 PIB-REFERENCES metaPolicyTable
366 "This attribute references to the meta-policy that
367 has lower priority than the one referenced by the
368 higherPriority attribute"
369 ::= { metaPolicyPriorityEntry 3 }
371 --End of metaPolicyPriorityTable
372 -----------------------------------------------
373 ----------------------------------------------
378 OBJECT IDENTIFIER ::= { metaPolicyPib 3 }
384 conditionTable OBJECT-TYPE
385 SYNTAX SEQUENCE OF conditionEntry
389 "Each instance of this PRC represents a boolean
390 expression. The conditionss of the meta-policies are
391 instances of this class. However, if the condition of
392 a meta-policy contains more than one predicate, the
393 predicates are also instances of this PRC.
396 For instance, Suppose that we want to encode a condition
397 A, which is evaluated as ( B OR C ), where B and C some
398 other boolean expressions.
399 In this case, A, B and C are instances of this PRC.
401 All instances of this PRC MUST be extended by an instance
402 of one of the rest PRCs of this group, in order to denote
403 if this condition should be evaluated based on simpler
404 conditions, if it is a boolean operand or an other
406 ::= { conditionClasses 1 }
408 conditionEntry OBJECT-TYPE
409 SYNTAX ConditionEntry
412 "An instance of the condition Class that defines a
414 INDEX { conditionIndex }
415 ::= { conditionTable 1 }
419 conditionPrid InstanceId,
420 conditionReverse Truevalue
423 conditionPrid OBJECT-TYPE
427 "An arbitrary integer that uniquely identifies an
428 instance of the condition class."
429 ::= { conditionEntry 1 }
431 conditionReverse OBJECT-TYPE
435 "if true, the negation of the logical expression
436 is evaluated, instead."
437 ::= { conditionEntry 2 }
438 -- END OF conditionTable
441 -- Complex Condition Table
443 complexConditionTable OBJECT-TYPE
444 SYNTAX SEQUENCE OF complexConditionEntry
448 "Each instance of this PRC represents a complex
450 condition. It consists of two simplier conditions,
451 and a logical operator that determines how the two
452 terms are assosiated to compose the more
453 complicated condition"
454 ::= { conditionClasses 2 }
456 complexConditionEntry OBJECT-TYPE
457 SYNTAX ComplexConditionEntry
460 "An instance of the complexCondition class that breaks a
461 complex condition into two simpler ones."
462 EXTENDS { conditionTable }
464 ::= { complexConditionTable }
466 ComplexConditionEntry ::=
469 leftTerm ReferenceId,
470 rightTerm ReferenceId
480 "The logical operator in the complex condition"
481 ::= { complexConditionEntry 1 }
485 PIB-REFERENCES conditionTable
488 "A reference to the first simpler condition."
489 ::= { complexConditionEntry 2 }
491 rightTerm OBJECT-TYPE
493 PIB-REFERENCES conditionTable
497 "A reference to the second simpler condition."
498 ::= { complexConditionEntry 3 }
499 -- END OF complexConditionTable
502 -- Boolean Condition Expression Table
505 booleanConditionTable OBJECT-TYPE
506 SYNTAX SEQUENCE OF booleanConditionEntry
510 "Each instance of this class extends the condition class
511 and represents a boolean parameter from which the
512 condition is evaluated."
513 ::= { metaPolicyPibClasses 2 }
515 booleanConditionEntry OBJECT-TYPE
516 SYNTAX BooleanConditionEntry
519 "An instance of the booleanCondition class that defines
520 the boolean parameter that gives values to the
521 corresponding condition."
522 EXTENDS { conditionTable }
523 ::= { booleanConditionTable 1 }
525 BooleanConditionEntry ::=
527 parameterReference ReferenceId
530 parameterReference OBJECT-TYPE
532 PIB-REFERENCES parameterTable
535 "A reference to a parameter from where the condition is
536 evaluated. This condition MUST be of type boolean
538 ::= { booleanConditionEntry 1 }
539 -- End of booleanConditionTable
542 -- Generic Condition Table
544 genericConditionTable OBJECT-TYPE
545 SYNTAX SEQUENCE OF genericConditionEntry
549 "Each instance of this class extends the condition class
550 and assosiates the corresponding condition with a complex
551 logical expression, from where the condition is
553 ::= { conditionClasses 2 }
555 genericConditionEntry OBJECT-TYPE
556 SYNTAX GenericConditionEntry
560 "An instance of the generalCondition class that defines
561 the logical expression for the corresponding condition
562 of the condition class."
563 EXTENDS { generalConditionTable }
564 ::= { conditionNumericalExpressionTable }
566 GenericConditionEntry ::=
568 xmlDTDRef ReferenceId,
569 xmlCondition XMLString
572 xmlDTDRef OBJECT-TYPE
574 PIB-REFERENCES xmlDTDTable
577 "A reference to the xmlDTD class that deternies which
578 of the XML DTDs that this PEP supports is used in
579 order to encode the expression."
580 ::= { genericConditionEntry 1 }
582 xmlCondition OBJECT-TYPE
586 "The XML-encoded expression."
587 ::={ genericConditionEntry 2 }
588 -- End of genericConditionTable
590 -----------------------------------------------
591 -----------------------------------------------
596 OBJECT IDENTIFIER ::= { metaPolicyPib 4 }
602 actionTable OBJECT-TYPE
603 SYNTAX SEQUENCE of actionEntry
607 "Each instance of this class stores an action of
609 ::= { actionClasses 1 }
611 actionEntry OBJECT-TYPE
616 "An instance of the action class that stores an action
619 ::= { actionTable 1 }
623 actionPrid InstanceId,
624 actionRefTag TagReferenceId,
625 actionTargetPrid Prid
628 actionPrid OBJECT-TYPE
632 "An arbitrary integer that uniquely identifies an
633 instance of the action class."
634 ::= { actionEntry 1 }
636 actionRefTag OBJECT-TYPE
637 SYNTAX TagReferenceId
638 PIB-TAG metaPolicyActions
641 "An attribute that defines a Tag Group of actions.
642 All actions with the same tag are grouped as the actions
643 of a single meta-policy."
646 actionTargetPrid OBJECT-TYPE
650 "The PRID of the PRI to be installed/updated.
651 The PRID must point to a single PRI."
653 -- END OF actionsTable
656 -- Action Value table
658 actionValueTable OBJECT-TYPE
659 SYNTAX SEQUENCE OF actionValueEntry
663 "Each instance of this class extends the corresponding
664 instance of the action class. It provides the BER-encoded
666 that will be installed at the corresponding PRI."
667 ::= { actionClasses 2 }
672 actionValueEntry OBJECT-TYPE
673 SYNTAX ActionsValueEntry
676 "An insance of the actionValue class. It provides
677 the value (encoded with BER) that will be installed at
678 the PRI denoted by the corresponding instance of the
680 EXTENDS { actionEntry }
681 ::= { actionValueTable 1 }
685 ActionValueEpd BERValue
688 actionValueEpd OBJECT-TYPE
692 "This attribute contains the BER-encoded value of the
693 PRI to be installed/updated."
694 ::={ actionValueEntry 1 }
695 -- END OF actionValueTable
698 -- Action Parametric Value Table
700 actionParametricValueTable OBJECT-TYPE
701 SYNTAX SEQUENCE OF actionParametricValueEntry
705 "Each instance of this class that extends the
706 corresponding instance of the action class. It provides
708 parametric value that will be installed at the
710 ::= { actionClasses 3 }
712 actionParametricValueEntry OBJECT-TYPE
713 SYNTAX ActionParametricValueEntry
716 "An insance of the actionValue class. It provides with
717 the parametric value that will be installed at the PRI
718 denoted by the corresponding instance of the action
720 EXTENDS { actionEntry }
722 ::= { actionParametricValueTable 1 }
725 ActionParametricValueEntry ::=
727 ParameterRef ReferenceId
730 ParameterRef OBJECT-TYPE
732 PIB-REFERENCES parameterTable
735 "A reference to a the parameter, from where the value
736 of the installed PRI should be obtained. Whenever the
737 value of the parameter changes, the installed PRI
739 ::={ actionParametricValueEntry 1 }
740 -- END OF actionParametricValueTable
742 -----------------------------------------------
743 -----------------------------------------------
748 OBJECT IDENTIFIER ::= { metaPolicyPib 5 }
754 parameterTable OBJECT-TYPE
755 SYNTAX SEQUENCE OF parameterEntry
759 "Each instance of this class defines a parameter
760 that has been installed on the PEP. This class
761 MUST be extended by a class that defines how
762 the value of the parameter will be evaluated."
763 ::= { parameterClasses 1}
765 parameterEntry OBJECT-TYPE
766 SYNTAX ParameterEntry
769 "An instance of the parameter class that installs
770 a parameter into the PEP."
771 INDEX { parameterPrid }
772 ::= { parameterTable 1 }
776 parameterPrid InstanceId,
777 parameterName SNMPAdminString,
778 parameterType Unsigned32
782 parameterPrid OBJECT-TYPE
786 "An arbitrary integer that uniquely identifies an
787 instance of the parameter class."
788 ::= { parameterEntry 1 }
790 parameterNameOBJECT-TYPE
791 SYNTAX SNMPAdminString
794 "A string that represents the name of the parameter.
795 It is reccomented that different parameter have different
796 names. However, similar parameter may have the same name.
797 Also, an empty string can be used as a name."
798 ::= { parameterEntry 2 }
806 OBJECT IDENTIFIER (06)
811 "The BER type of the parameter.
812 The suppoted BER types are:
813 Type | BER identifier
814 --------------------|----------------
819 OBJECT IDENTIFIER | 06
821 ::= { parameterEntry 3 }
822 -- END OF parameterTable
825 -- MIBPIB Parameter Table
827 mibPibParameterTable OBJECT-TYPE
828 SYNTAX SEQUENCE OF mibPibParameterEntry
832 "This class extends the parameter class.
833 Each instance of this class assosiates to the
835 corresponding parameter a MIB or PIB variable, from
836 where the parameter is evaluated"
837 ::= { parameterClasses 2 }
839 mibPibParameterEntry OBJECT-TYPE
840 SYNTAX MibPibParameterEntry
843 "An instance of the mibPibParameter class that provides
844 the identifier of the MIB/PIB variable from where the
845 corresponding parameter is evaluated."
846 EXTENDS { parameterEntry }
847 ::= { mibPibParameterTable 1 }
849 MibPibParameterEntry ::=
851 targetOID OBJECT-IDENTIFIER,
852 EvaluationFrequency timeticks
855 targetOID OBJECT-TYPE
856 SYNTAX OBJECT-IDENTIFIER
860 "The object identifier of the MIB/PIB variable.
861 The MIB/PIB variable MUST exist in the MIB/PIB of the
862 device. Also, the type of the target variable MUST be
863 compatible with the type of the corresponding PRI of the
865 ::={ mibPibParameterEntry 1 }
867 EvaluationFrequency OBJECT-TYPE
871 "The frequency of updating the parameter in milliseconds"
872 ::={ mibPibParameterEntry 2 }
873 -- END of mibPibParameterTable
876 -- PDP Parameter Table
878 pdpParameterTable OBJECT-TYPE
879 SYNTAX SEQUENCE OF pdpParameterEntry
883 "This class extends the parameter class. Each instance
884 of this class contains the value of the corresponding
885 paramter. This value is send by the PDP and updated
887 ::= { parameterClasses 3 }
890 pdpParameterEntry OBJECT-TYPE
891 SYNTAX PdpParameterEntry
894 "An instance of the pdpParameter class that stores the
895 value, sent by the PDP, for the corresponding parameter."
896 INDEX { parameterIndex }
897 ::= { pdpParametersTable 1 }
899 PdpParameterEntry ::=
904 lastValue OBJECT-TYPE
908 "The latest value of the parameter, encoded with BER.
909 The BER-encoded value must be of the same type as the
910 corresponding PRI of the parameter class."
911 ::={ pdpParameterEntry 1 }
912 -- END OF pdpParameterTable