Imported Upstream version 0.4.8
[platform/upstream/libsmi.git] / pibs / tubs / QOS-POLICY-IP-PIB
1 QOS-POLICY-IP-PIB PIB-DEFINITIONS ::= BEGIN
2
3 IMPORTS
4     ibrpib FROM TUBS-SMI
5     Unsigned32, Integer32,
6     MODULE-IDENTITY, OBJECT-TYPE
7             FROM SNMPv2-SMI
8     TruthValue, TEXTUAL-CONVENTION
9             FROM SNMPv2-TC
10     RoleCombination
11             FROM POLICY-FRAMEWORK-PIB
12     InetAddress
13             FROM INET-ADDRESS-MIB
14     InstanceId
15             FROM COPS-PR-SPPI-TC;
16
17 qosPolicyIpPib  MODULE-IDENTITY
18     SUBJECT-CATEGORIES { all } -- to be assigned
19     LAST-UPDATED "9906241800Z"
20     ORGANIZATION "IETF RAP WG"
21     CONTACT-INFO "
22                   Michael Fine
23                   Cisco Systems, Inc.
24                   170 West Tasman Drive
25                   San Jose, CA  95134-1706 USA
26                   Phone: +1 408 527 8218
27                   Email: mfine@cisco.com
28
29                   Keith McCloghrie
30                   Cisco Systems, Inc.
31                   170 West Tasman Drive,
32                   San Jose, CA 95134-1706 USA
33                   Phone: +1 408 526 5260
34                   Email: kzm@cisco.com
35
36                   John Seligson
37                   Nortel Networks, Inc.
38                   4401 Great America Parkway
39                   Santa Clara, CA 95054 USA
40                   Phone: +1 408 495 2992
41                   Email: jseligso@nortelnetworks.com"
42     DESCRIPTION
43             "The PIB module containing an initial set of policy
44              rule classes that describe the quality of service
45              (QoS) policies. It includes general classes that may
46              be extended by other PIB specifications as well as
47              an initial set of PIB classes related to IP processing."
48
49     ::= { ibrpib 4 } -- to be assigned!
50
51 qosPolicyGenPibClasses  OBJECT IDENTIFIER ::= { qosPolicyIpPib 1 }
52 qosPolicyIpPibClasses   OBJECT IDENTIFIER ::= { qosPolicyIpPib 2 }
53
54 --
55 -- Textual Conventions
56 --
57
58 --
59 -- Diffserv Codepoint
60 --
61
62 Dscp ::= TEXTUAL-CONVENTION
63     STATUS       current
64     DESCRIPTION
65         "An integer that is in the range of the diffserv codepoint
66         values."
67
68     SYNTAX INTEGER (0..63)
69
70 --
71 -- Interface types
72 --
73
74 QosInterfaceQueueCount ::= TEXTUAL-CONVENTION
75     STATUS       current
76     DESCRIPTION
77         "An integer that describes the number of queues an interface
78         supports.  It is limited to the number of DSCP values."
79
80     SYNTAX INTEGER (1..64)
81
82 --
83 -- QoS Interface Group
84 --
85 --
86 -- This group specifies the configuration of the various interface
87 -- types including the setting of queueing parameters and the
88 -- mapping of DSCPs and 802.1 CoS to queues.
89 --
90
91 qosIfParameters OBJECT IDENTIFIER ::= { qosPolicyGenPibClasses 1 }
92
93 --
94 -- Interface Type Table
95
96 --
97
98 qosInterfaceTypeTable OBJECT-TYPE
99     SYNTAX         SEQUENCE OF QosInterfaceTypeEntry
100     PIB-ACCESS  notify
101     STATUS         current
102     DESCRIPTION
103         "Interface type definitions. This class describes the types
104         of interfaces that exist on the device. An interface type
105         is denoted by its designated role identifier as well as
106         by the queue set and queue capabilities it supports."
107
108     ::= { qosIfParameters 1 }
109
110 qosInterfaceTypeEntry OBJECT-TYPE
111     SYNTAX         QosInterfaceTypeEntry
112     STATUS         current
113     DESCRIPTION
114         "An instance of this class describes the characteristics
115         of a type of an interface. Interface type characteristics
116         include a role combination identifier, a queue set
117         identifier and a queue capabilities attribute.  An
118         instance is required for each different unique role
119         combination identifier which represents the different
120         interface types that are operational in the device at
121         any given time.  The PEP does not report which specific
122         interfaces have which characteristics."
123
124     PIB-INDEX { qosInterfaceTypeId }
125     ::= { qosInterfaceTypeTable 1 }
126
127 QosInterfaceTypeEntry ::= SEQUENCE {
128         qosInterfaceTypeId           InstanceId,
129         qosInterfaceTypeRoles        RoleCombination,
130         qosInterfaceTypeQueueSet     InstanceId,
131         qosInterfaceTypeCapabilities BITS
132 }
133
134 qosInterfaceTypeId OBJECT-TYPE
135     SYNTAX         InstanceId
136     STATUS         current
137     DESCRIPTION
138         "An arbitrary integer index that uniquely identifies a
139         instance of the qosInterfaceType class. Class instances
140         may not be contiguous."
141
142     ::= { qosInterfaceTypeEntry 1 }
143
144 qosInterfaceTypeRoles OBJECT-TYPE
145     SYNTAX         RoleCombination
146     STATUS         current
147     DESCRIPTION
148         "The role combination that is used to identify interfaces
149         with the characteristics specified by the attributes
150         of this class instance. Interface role combination
151         identifiers are used within a number of classes to
152         logically identify a physical set of interfaces to which
153         policy rules and actions are applied. Role combination
154         identifiers must exist in this table prior to being
155         referenced in other class instances."
156
157     ::= { qosInterfaceTypeEntry 2 }
158
159 qosInterfaceTypeQueueSet OBJECT-TYPE
160     SYNTAX         InstanceId
161     STATUS         current
162     DESCRIPTION
163         "The index of the queue set that is associated with
164         interfaces that are identified with the role combination
165         identifier that is associated with this class instance."
166
167     ::= { qosInterfaceTypeEntry 3 }
168
169 qosInterfaceTypeCapabilities OBJECT-TYPE
170     SYNTAX         BITS {
171                         other(0),
172
173                         -- Classification support
174                         inputIpClassification(1),
175                         outputIpClassification(2),
176                         input802Classification(3),
177                         output802Classification(4),
178
179                         -- Queuing discipline support
180                         singleQueuingDiscipline(5),
181                         hybridQueuingDiscipline(6)
182                    }
183     STATUS         current
184     DESCRIPTION
185         "An enumeration of interface capabilities.  Used by the
186         PDP or network manager to select which policies and
187
188         configuration it should push to the PEP."
189
190     ::= { qosInterfaceTypeEntry 4 }
191
192 --
193 -- Interface Queue Table
194 --
195 -- The Interface Queue Table enumerates the individual queues that
196 -- comprise a given queue set. Information specific to each queue
197 -- is exported by this table.
198 --
199
200 qosIfQueueTable OBJECT-TYPE
201     SYNTAX         SEQUENCE OF QosIfQueueEntry
202     PIB-ACCESS  notify
203     STATUS         current
204     DESCRIPTION
205         "Contains information about the individual queues that
206         comprise a queue set implemented on the device."
207
208     ::= { qosIfParameters 2 }
209
210 qosIfQueueEntry OBJECT-TYPE
211     SYNTAX         QosIfQueueEntry
212     STATUS         current
213     DESCRIPTION
214         "A conceptual row in the qosIfQueueTable.
215
216         Each row identifies a specific queue within a given queue
217         set and contains detailed information about the queue. Queues
218         are associated with a given set through this table and
219         a queue set is associated with an interface set through
220         the qosInterfaceTypeTable."
221
222     PIB-INDEX { qosIfQueueId }
223     ::= { qosIfQueueTable 1 }
224
225 QosIfQueueEntry ::= SEQUENCE {
226         qosIfQueueId                    InstanceId,
227         qosIfQueueSetId                 INTEGER,
228         qosIfQueueIndex                 QosInterfaceQueueCount,
229         qosIfQueueGenDiscipline         INTEGER,
230         qosIfQueueExtDiscipline         OBJECT IDENTIFIER,
231         qosIfQueueDrainSize             Unsigned32,
232         qosIfQueueAbsBandwidth          Unsigned32,
233
234         qosIfQueueBandwidthAllocation   INTEGER,
235         qosIfQueueServiceOrder          QosInterfaceQueueCount,
236         qosIfQueueSize                  Unsigned32
237 }
238
239 qosIfQueueId OBJECT-TYPE
240     SYNTAX         InstanceId
241     STATUS         current
242     DESCRIPTION
243         "The index that uniquely identifies this row in the table,
244         i.e., this PRI."
245
246     ::= { qosIfQueueEntry 1 }
247
248 qosIfQueueSetId OBJECT-TYPE
249     SYNTAX         INTEGER
250     STATUS         current
251     DESCRIPTION
252         "An index that uniquely identifies a specific queue set. The
253         queue set that is identified with this value is associated
254         with an interface set through the qosInterfaceTypeQueueSet
255         object in the qosInterfaceTypeTable. The individual queues
256         that are members of this set all have the same value for
257         this attribute (i.e., they have the same set ID)."
258
259     ::= { qosIfQueueEntry 2 }
260
261 qosIfQueueIndex OBJECT-TYPE
262     SYNTAX         QosInterfaceQueueCount
263     STATUS         current
264     DESCRIPTION
265         "An arbitrary index that uniquely identifies a specific
266         queue within a set of queues that is identified by the
267         qosIfQueueSetId value."
268
269     ::= { qosIfQueueEntry 3 }
270
271 qosIfQueueGenDiscipline OBJECT-TYPE
272     SYNTAX         INTEGER {
273                        other(1),  -- Use qosIfQueueExtDiscipline
274                        fifo(2),   -- First In First Out queuing
275                        pq(3),     -- Priority Queuing
276                        fq(4),     -- Fair Queuing
277                        wfq(5)     -- Weighted Fair Queuing
278                    }
279
280     STATUS         current
281     DESCRIPTION
282         "This object identifies the queuing discipline that is
283         associated with the specified queue. Several general
284         purpose and well-known queuing disciplines are supported
285         by this attribute. Queuing disciplines that differ from
286         those that are supported by this object are specified
287         by setting this attribute to other(1) and providing
288         the object identifier that represents the different
289         queuing paradigm in the qosIfQueueExtDiscipline object.
290
291         A value of fifo(2) indicates that the queue is serviced
292         on a first-in-first-out (FIFO) basis. This discipline is
293         generally employed when only a single queue is available
294         for a given interface.
295
296         A value of pq(3) indicates that the queue is serviced
297         using a priority queuing discipline. This technique is
298         used when several queues are available for a given
299         interface. Each queue is assigned a priority and queues
300         are serviced in order of priority. Higher priority queues
301         are completely drained before lower priority queues are
302         serviced.
303
304         A value of fq(4) indicates that the queue is serviced
305         using a fair queuing discipline. This technique is used
306         when several queues are available for a given interface.
307         Each queue is treated equally and is serviced in a
308         round-robin fashion.
309
310         A value of wfq(5) indicates that the queue is serviced
311         using a weighted fair queuing discipline. This technique is
312         used when several queues are available for a given interface.
313         Each queue is serviced based on queue weights which determine
314         the scheduling and frequency of queue servicing. Queues that
315         are assigned a greater weight are implicitly provided with
316         more bandwidth.
317
318         Note that the processing disciplines for all of the queues
319         in a given set must be considered when trying to establish
320         a processing profile for a given interface."
321
322     ::= { qosIfQueueEntry 4 }
323
324 qosIfQueueExtDiscipline OBJECT-TYPE
325
326     SYNTAX         OBJECT IDENTIFIER
327     STATUS         current
328     DESCRIPTION
329         "This object identifies the queuing discipline that is
330         associated with the specified queue.  This attribute
331         provides a means through which additional queuing mechanisms
332         can be identified should the general queuing disciplines
333         be inadequate for a given device. As such. this attribute is
334         consulted only when the value of the qosIfQueueGenDiscipline
335         object is other(1). It contains an object identifier that
336         uniquely identifies a queuing paradigm.
337
338         Note that the processing disciplines for all of the queues
339         in a given set must be considered when trying to establish
340         a processing profile for a given interface."
341
342     ::= { qosIfQueueEntry 5 }
343
344 qosIfQueueDrainSize OBJECT-TYPE
345     SYNTAX         Unsigned32
346     STATUS         current
347     DESCRIPTION
348         "The maximum number of bytes that may be drained from the
349         queue in one cycle.  The percentage of the interface
350         bandwidth allocated to this queue can be calculated from
351         this attribute and the sum of the drain sizes of all the
352         queues in a specific queue cluster in a queue set.
353
354         This attribute represents the relative bandwidth that is
355         available to a given queue with respect to other queues with
356         which it is associated. The absolute bandwidth that is
357         available to a given queue is specified by the attribute
358         qosIfQueueAbsBandwidth.  Which of these two applies is
359         specified by the attribute qosIfQueueBandwidthAllocation."
360
361     ::= { qosIfQueueEntry 6 }
362
363 qosIfQueueAbsBandwidth OBJECT-TYPE
364     SYNTAX         Unsigned32
365     STATUS         current
366     DESCRIPTION
367         "The maximum interface bandwidth that is available for
368         consumption when servicing this queue. This bandwidth is
369         specified in terms of kilobits per second.
370
371         This attribute represents the absolute bandwidth that is
372         available to a given queue. The relative bandwidth that is
373         available to a given queue, with respect to other queues with
374         which it is associated, is specified by the attribute
375         qosIfQueueDrainSize.  Which of these two applies is specified
376         by the attribute qosIfQueueBandwidthAllocation."
377
378     ::= { qosIfQueueEntry 7 }
379
380 qosIfQueueBandwidthAllocation OBJECT-TYPE
381     SYNTAX         INTEGER {
382                         absolute(1),  --use qosIfQueueAbsBandwidth
383                         relative(2)   --use qosIfQueueDrainSize
384                    }
385     STATUS         current
386     DESCRIPTION
387         "This attribute specifies whether to configure the queue for
388         an absolute bandwidth limit or one that is relative to other
389         queues of the interface. i.e., whether to configure the queue
390         using qosIfQueueAbsBandwidth or qosIfQueueDrainSize."
391
392      ::= { qosIfQueueEntry 8 }
393
394 qosIfQueueServiceOrder OBJECT-TYPE
395     SYNTAX         QosInterfaceQueueCount
396     STATUS         current
397     DESCRIPTION
398         "This object is used to provide an additional level of
399         priority that is required for certain queuing disciplines
400         and when the different queues that comprise a queue set
401         are serviced using a mix of queuing disciplines. This
402         object can be used to specify, for example, the order in
403         which queues will be serviced when priority queuing is
404         used. It also supports the ability to describe the
405         servicing hierarchy when a hybrid queuing scheme, such
406         as priority queuing coupled with weighted fair queuing,
407         is used.
408
409         Queue service priority is assigned such that a lower
410         service order value indicates a higher priority. For
411         example, a priority queue with a value of 1 will be
412         serviced (i.e., drained) before another priority queue
413         with a service order value of 2.
414
415         Note that multiple queues that are logically associated,
416
417         based on the queuing discipline that is being employed,
418         will be assigned the same service order value.  Under
419         this scenario, other parameters that are related to the
420         queuing discipline determine the order of queue servicing
421         (e.g., queue drain size is used for 'wfq').
422
423         For example, an interface that is associated with a queue
424         set supporting two priority queues and three queues that
425         are serviced using WFQ would be modeled as follows:
426
427           Q Index  Q Discipline  Q Drain Size  Q Service Order
428              22         pq(1)         -              1
429              23         pq(1)         -              2
430              24        wfq(3)        500             3
431              25        wfq(3)        350             3
432              26        wfq(3)        150             3
433
434         The queue set presented in this example would service
435         all queued traffic in queue 22 first, followed by all of
436         the queued traffic in queue 23. Next the queued traffic
437         in queues 24 through 26 would be serviced in a round
438         robin fashion with queue 24 receiving 50% of the available
439         bandwidth, queue 25 receiving 35% of the available
440         bandwidth and queue 26 receiving 15% of the available
441         bandwidth. This example is presented for expository
442         purposes and has been simplified accordingly.
443
444         Note that, in this example, queues 24, 25 and 26 form a
445         queue cluster. Members of a queue cluster are all assigned
446         the same qosIfQueueServiceOrder as there are tightly
447         coupled. The qosIfQueueDrainSize attribute is used to
448         determine the additional processing characteristics of
449         the individual queues in a cluster."
450
451     ::= { qosIfQueueEntry 9 }
452
453 qosIfQueueSize OBJECT-TYPE
454     SYNTAX         Unsigned32
455     STATUS         current
456     DESCRIPTION
457        "The size of the queue in bytes.  Some devices set queue size
458         in terms of packets.  These devices must calculate the queue
459         size in packets by assuming an average packet size suitable
460         for the particular interface.
461
462         Some devices have a fixed size buffer to be shared among all
463         queues.  These devices must allocate a fraction of the
464         total buffer space to this queue calculated as the the ratio
465         of the queue size to the sum of the queue sizes for the
466         interface."
467
468     ::= { qosIfQueueEntry 10 }
469
470 --
471 -- DSCP Assignment Table
472 --
473 -- Supports the assignment of DSCPs to queues for each
474 -- interface type.
475 --
476
477 qosIfDscpAssignmentTable OBJECT-TYPE
478     SYNTAX         SEQUENCE OF QosIfDscpAssignmentEntry
479     PIB-ACCESS  install
480     STATUS         current
481     DESCRIPTION
482         "Supports the assignment of DSCP values to a queue for
483         each interface with a specific queue count. There will be
484         64 instances of this class for each supported combination
485         of queue count and role combination."
486
487     ::= { qosIfParameters 3 }
488
489 qosIfDscpAssignmentEntry OBJECT-TYPE
490     SYNTAX         QosIfDscpAssignmentEntry
491     STATUS         current
492     DESCRIPTION
493         "An instance of the qosIfDscpAssignment class."
494
495     PIB-INDEX { qosIfDscpAssignmentId }
496     ::= { qosIfDscpAssignmentTable 1 }
497
498 QosIfDscpAssignmentEntry ::= SEQUENCE {
499         qosIfDscpAssignmentId         InstanceId,
500         qosIfDscpAssignmentRoles      RoleCombination,
501         qosIfDscpAssignmentDscp       Dscp,
502         qosIfDscpAssignmentQueue      QosInterfaceQueueCount
503 }
504
505 qosIfDscpAssignmentId OBJECT-TYPE
506     SYNTAX         InstanceId
507
508     STATUS         current
509     DESCRIPTION
510         "An index that is used to uniquely identify the
511         instance of the qosIfDscpAssignment class."
512
513     ::= { qosIfDscpAssignmentEntry 1 }
514
515 qosIfDscpAssignmentRoles OBJECT-TYPE
516     SYNTAX         RoleCombination
517     STATUS         current
518     DESCRIPTION
519         "The role combination with which an interface must be
520         configured to support the DSCP-to-queue assignment
521         described by this instance. The specified role
522         combination must be defined in the qosInterfaceType
523         table prior to being referenced by this entry.
524         Otherwise a 'priAssociationUnknown(3)' error code
525         will be returned."
526
527     ::= { qosIfDscpAssignmentEntry 2 }
528
529 qosIfDscpAssignmentDscp OBJECT-TYPE
530     SYNTAX         Dscp
531     STATUS         current
532     DESCRIPTION
533         "The DSCP to which this class instance applies."
534
535     ::= { qosIfDscpAssignmentEntry 3 }
536
537 qosIfDscpAssignmentQueue OBJECT-TYPE
538     SYNTAX         QosInterfaceQueueCount
539     STATUS         current
540     DESCRIPTION
541         "The specific queue, within the queue set that is
542         associated with the interface set identified by the
543         qosIfDscpAssignmentRoles tag, on which traffic with
544         the specified DSCP, dictated by the
545         qosIfDscpAssignmentDscp value, is placed. Failure to
546         specify an appropriate queue results in a
547         'priAssociationConflict(4)' error indication being
548         returned."
549
550     ::= { qosIfDscpAssignmentEntry 4 }
551
552 --
553 -- QoS Meter Table
554 --
555 -- The QoS Meter Table contains metering specifications that
556 -- can be used to provide an acceptable flow bandwidth
557 -- dimension to the Target table.
558 --
559
560 qosMeter OBJECT IDENTIFIER ::= { qosPolicyGenPibClasses 2 }
561
562 qosMeterTable OBJECT-TYPE
563     SYNTAX         SEQUENCE OF QosMeterEntry
564     PIB-ACCESS  install
565     STATUS         current
566     DESCRIPTION
567         "Contains the current set of configured meters. The
568         meters are associated with a classifier during
569         operation through the QoS Target Table."
570
571     ::= { qosMeter 1 }
572
573 qosMeterEntry OBJECT-TYPE
574     SYNTAX         QosMeterEntry
575     STATUS         current
576     DESCRIPTION
577         "General metering definitions. Each entry specifies
578         an instance of the qosMeter class which specifies
579         metering information in terms of traffic stream
580         bandwidth parameters. An entry can thus be used to
581         support traffic metering based on the specified
582         service level specification."
583
584     PIB-INDEX { qosMeterId }
585     ::= { qosMeterTable 1 }
586
587 QosMeterEntry ::= SEQUENCE {
588         qosMeterId                InstanceId,
589         qosMeterDataSpecification INTEGER,
590         qosMeterCommittedRate     Unsigned32,
591         qosMeterCommittedBurst    Unsigned32,
592         qosMeterPeakRate          Unsigned32,
593         qosMeterPeakBurst         Unsigned32,
594         qosMeterHighConfAction    InstanceId,
595         qosMeterMedConfAction     InstanceId,
596
597         qosMeterLowConfAction     InstanceId
598 }
599
600 qosMeterId OBJECT-TYPE
601     SYNTAX         InstanceId
602     STATUS         current
603     DESCRIPTION
604         "An arbitrary integer index that uniquely identifies
605         the instance of the qosMeter class. Meters are
606         associated with specific flows using this attribute
607         through the qosTargetMeter attribute in the QoS
608         Target class."
609
610     ::= { qosMeterEntry 1 }
611
612 qosMeterDataSpecification OBJECT-TYPE
613     SYNTAX         INTEGER {
614                         noMeterData(1),   -- no metering reqd
615                         committedData(2), -- committed rate only
616                         peakData(3)       -- committed and peak
617                    }
618     STATUS         current
619     DESCRIPTION
620         "Specifies the metering data, and thus the actions, that
621         are defined in a given entry.
622
623         A value of noMeterData(1) indicates that no flow metering
624         is necessary. All flows associated with this meter entry
625         are considered to be at a high level of conformance.
626
627         A value of committedData(2) indicates that committed rate
628         and committed burst information has been specified and will
629         be applied to associated flows. No peak rate and burst
630         information has been specified meaning that two levels
631         of conformance (high, medium) are supported.
632
633         A value of peakData(3) indicates that peak rate and peak
634         burst information has been provided in addition to the
635         committed rate and committed burst information. All provided
636         information will be applied to associated flows meaning that
637         three levels of conformance (high, medium, low) are
638         supported."
639
640      ::= { qosMeterEntry 2 }
641
642 qosMeterCommittedRate OBJECT-TYPE
643     SYNTAX         Unsigned32 (0..'ffffffff'h)
644     STATUS         current
645     DESCRIPTION
646         "This object represents the committed information rate
647         (CIR) against which associated traffic streams will be
648         metered. The CIR specifies the rate at which incoming
649         traffic can arrive to be considered to be at a high
650         level of conformance. Typically, this value specifies
651         the rate at which tokens are added to a token bucket
652         used to meter received flows.
653
654         This object specifies a rate in bytes per second units
655         such that, for example, a value of 100 equates to a
656         committed information rate of 100 bytes per second.
657
658         Committed rate (and burst) information must be present
659         if the qosMeterDataSpecification object has the value
660         committedData(2) or peakRate(3). This, in turn, requires
661         that at least both high and medium conformance actions
662         be specified."
663
664     ::= { qosMeterEntry 3 }
665
666 qosMeterCommittedBurst OBJECT-TYPE
667     SYNTAX         Unsigned32 (0..'ffffffff'h)
668     STATUS         current
669     DESCRIPTION
670         "This object represents the committed burst size
671         (CBS) against which associated traffic streams will
672         be metered. The CBS specifies the maximum burst size
673         that is supported for flows to be considered to be at
674         a high level of conformance. Typically, this value
675         represents the maximum number of tokens in a token
676         bucket.
677
678         This object specifies flow data in bytes per second
679         units such that, for example, a value of 100 equates
680         to a committed information rate of 100 bytes per
681         second.
682
683         Committed burst (and rate) information must be present
684         if the qosMeterDataSpecification object has the value
685         committedData(2) or peakRate(3). This, in turn, requires
686         that at least both high and medium conformance actions
687
688         be specified."
689
690     ::= { qosMeterEntry 4 }
691
692 qosMeterPeakRate OBJECT-TYPE
693     SYNTAX         Unsigned32 (0..'ffffffff'h)
694     STATUS         current
695     DESCRIPTION
696         "This object represents the peak information rate (PIR)
697         against which associated traffic streams will be
698         metered. The PIR specifies the rate at which incoming
699         traffic can arrive to be considered to be at a medium
700         level of conformance. Typically, this value specifies
701         the rate at which tokens are added to a token bucket
702         used to meter received flows.
703
704         This object specifies a rate in bytes per second units
705         such that, for example, a value of 100 equates to a
706         committed information rate of 100 bytes per second.
707
708         Peak rate (and burst) information must be present
709         if the qosMeterDataSpecification object has the value
710         peakData(3). This, in turn, requires that high, medium
711         and low conformance actions be specified."
712
713     ::= { qosMeterEntry 5 }
714
715 qosMeterPeakBurst OBJECT-TYPE
716     SYNTAX         Unsigned32 (0..'ffffffff'h)
717     STATUS         current
718     DESCRIPTION
719         "This object represents the peak burst size (PBS)
720         against which associated traffic streams will
721         be metered. The CBS specifies the maximum burst size
722         that is supported for flows to be considered to be at
723         a medium level of conformance. Typically, this value
724         represents the maximum number of tokens in a token
725         bucket.
726
727         This object specifies flow data in bytes per second
728         units such that, for example, a value of 100 equates
729         to a committed information rate of 100 bytes per
730         second.
731
732         Peak burst (and rate) information must be present
733
734         if the qosMeterDataSpecification object has the value
735         peakData(3). This, in turn, requires that high, medium
736         and low conformance actions be specified."
737
738     ::= { qosMeterEntry 6 }
739
740 qosMeterHighConfAction OBJECT-TYPE
741     SYNTAX         InstanceId
742     STATUS         current
743     DESCRIPTION
744         "This attribute identifies the action that is to be
745         initiated for flows that are determined to have a high
746         level of conformance with regard to metering criteria
747         being applied to the flow.
748
749         Actions must be defined in the qosActionTable prior to
750         being referenced by this attribute. A valid value for
751         this attribute must always be provided."
752
753     ::= { qosMeterEntry 7 }
754
755 qosMeterMedConfAction OBJECT-TYPE
756     SYNTAX         InstanceId
757     STATUS         current
758     DESCRIPTION
759         "This attribute identifies the action that is to be
760         initiated for flows that are determined to have a medium
761         level of conformance with regard to metering criteria
762         being applied to the flow.
763
764         Actions must be defined in the qosActionTable prior to
765         being referenced by this attribute. A valid value for
766         this attribute must be provided if the value of the
767         associated qosMeterDataSpecification object is
768         committedRate(2) or peakRate(3)."
769
770     ::= { qosMeterEntry 8 }
771
772 qosMeterLowConfAction OBJECT-TYPE
773     SYNTAX         InstanceId
774     STATUS         current
775     DESCRIPTION
776         "This attribute identifies the action that is to be
777         initiated for flows that are determined to have a low
778         level of conformance with regard to metering criteria
779
780         being applied to the flow.
781
782         Actions must be defined in the qosActionTable prior to
783         being referenced by this attribute. A valid value for
784         this attribute must be provided if the value of the
785         associated qosMeterDataSpecification object is
786         peakRate(3)."
787
788     ::= { qosMeterEntry 9 }
789
790 --
791 -- The Generic QoS ACL Action Group
792 --
793
794 qosAction OBJECT IDENTIFIER ::= { qosPolicyGenPibClasses 3 }
795
796 --
797 -- The QoS Action Table
798 --
799 -- The QoS Action Table describes actions that are associated with
800 -- specific IP, IEEE 802 and other ACLs through the QoS Target
801 -- Table.  An action specification may be simple (i.e., a single
802 -- action) or complex (i.e., multiple actions that are performed
803 -- in "parallel").
804 --
805
806 qosActionTable OBJECT-TYPE
807     SYNTAX         SEQUENCE OF QosActionEntry
808     PIB-ACCESS  install
809     STATUS         current
810     DESCRIPTION
811         "Contains the current set of configured actions. The actions
812         are associated with IP, IEEE 802 and other ACLs and
813         interfaces during operation."
814
815     ::= { qosAction 1 }
816
817 qosActionEntry OBJECT-TYPE
818     SYNTAX         QosActionEntry
819     STATUS         current
820     DESCRIPTION
821         "General action definitions. Each entry specifies an instance
822         of the qosAction class which describes (potentially)
823
824         several distinct action attributes. Each action is taken
825         individually regarding the data in question. Several actions
826         can be taken for a single frame.
827
828         An instance of this class can not be deleted while it is being
829         referenced in a target instance in another class. This
830         class may be extended with actions that apply to specific QoS
831         policies (e.g., IP, IEEE 802, security) using augmentation."
832
833     PIB-INDEX { qosActionId }
834     ::= { qosActionTable 1 }
835
836 QosActionEntry ::= SEQUENCE {
837         qosActionId         InstanceId,
838         qosActionDrop       TruthValue,
839         qosActionUpdateDSCP Integer32,
840         qosActionMeter      InstanceId
841 }
842
843 qosActionId OBJECT-TYPE
844     SYNTAX         InstanceId
845     STATUS         current
846     DESCRIPTION
847         "An arbitrary integer index that uniquely identifies
848         the instance of the QoS Action class. Class instances
849         may not be contiguous. Actions are associated with
850         Target instances in other classes (e.g., the QoS
851         Target class) using this attribute."
852
853     ::= { qosActionEntry 1 }
854
855 qosActionDrop OBJECT-TYPE
856     SYNTAX         TruthValue
857     STATUS         current
858     DESCRIPTION
859         "This action attribute, when specified, will cause the
860         frame being evaluated to be dropped if the value is
861         'true(1)'. A value of 'false(2)' indicates that this
862         action will not be initiated (i.e., the frame will not
863         be dropped) based on this attribute.
864
865         Prior to discarding a packet, other actions that have
866         been specified should be performed if they make protocol
867         sense. For example, requests for traffic mirroring (if
868         such an action is supported by a device) should be
869
870         honored. However, updating protocol header values will
871         typically not be necessary."
872
873     ::= { qosActionEntry 2 }
874
875 qosActionUpdateDSCP OBJECT-TYPE
876     SYNTAX         Integer32 (-1 | 0..63)
877     STATUS         current
878     DESCRIPTION
879         "This action component, when specified, will cause the
880         value contained in the Differentiated Services (DS)
881         field of an associated IP datagram to be updated with
882         the value of this object.
883
884         A value of -1 indicates that this action component has not
885         been set to an appropriate value and should not be used for
886         action initiation. The DSCP should remain unchanged."
887
888     ::= { qosActionEntry 3 }
889
890 qosActionMeter OBJECT-TYPE
891     SYNTAX         InstanceId
892     STATUS         current
893     DESCRIPTION
894         "This action component, when specified, will identify
895         another level of metering that should be applied to
896         the given flow. This action is only taken if it is
897         not in conflict with other specified actions, i.e.,
898         qosActionDrop.
899
900         A value of 0 indicates that an additional metering
901         component has not been specified. No additional metering
902         is thus required."
903
904     ::= { qosActionEntry 4 }
905
906 --
907 -- The QoS Target Table
908 --
909 -- The QoS Target Table supports the association of ACLs,
910 -- interfaces and actions. It allows ACL class instances, as
911 -- defined in various ACL Defintion classes, to be associated
912 -- with specific interfaces/flow direction (based on interface
913 -- role combination and traffic direction) and actions to be
914
915 -- performed based on traffic classification. Furthermore, it
916 -- allows heterogeneous ACL Definition class instances (e.g.,
917 -- IP, IEEE 802, security) to be applied to the same interface
918 -- group in a prescribed order of precedence.
919 --
920
921 qosTargetTable OBJECT-TYPE
922     SYNTAX         SEQUENCE OF QosTargetEntry
923     PIB-ACCESS  install
924     STATUS         current
925     DESCRIPTION
926         "A class that applies a set of ACLs to interfaces specifying,
927         for each interface, the precedence order of the ACL with
928         respect to other ACLs applied to the same interface and, for
929         each ACL, the action to take for a packet that matches a
930         permit ACE in that ACL.  Interfaces are specified abstractly
931         in terms of interface roles.
932
933         This class may contain ACLs that specify different types
934         of traffic classification (e.g., IP ACLs and IEEE 802 ACLs
935         defined in their respective definition tables). An ACL is
936         identified by its class and instance within that class. An
937         ACL association is formed when ACLs apply to the same
938         interfaces, as determined by the specified interface role
939         and direction. ACL evaluation precedence within an
940         association is determined by the precedence attribute."
941
942     INSTALL-ERRORS {
943         priPrecedenceConflict(1) -- precedence conflict detected
944         }
945
946     ::= { qosAction 2 }
947
948 qosTargetEntry OBJECT-TYPE
949     SYNTAX         QosTargetEntry
950     STATUS         current
951     DESCRIPTION
952         "An instance of the qosTarget class. Instance creation
953         may be prohibited based on the status of certain class
954         attributes which must exist prior to class instantiation."
955
956     PIB-INDEX { qosTargetId }
957     ::= { qosTargetTable 1 }
958
959 QosTargetEntry ::= SEQUENCE {
960
961         qosTargetId                 InstanceId,
962         qosTargetAclId              InstanceId,
963         qosTargetAclType            OBJECT IDENTIFIER,
964         qosTargetInterfaceRoles     RoleCombination,
965         qosTargetInterfaceDirection INTEGER,
966         qosTargetOrder              Unsigned32,
967         qosTargetMeter              InstanceId
968 }
969
970 qosTargetId OBJECT-TYPE
971     SYNTAX         InstanceId
972     STATUS         current
973     DESCRIPTION
974         "An arbitrary integer index that uniquely identifies
975         the instance of the QoS Target class."
976
977     ::= { qosTargetEntry 1 }
978
979 qosTargetAclId OBJECT-TYPE
980     SYNTAX         InstanceId
981     STATUS         current
982     DESCRIPTION
983         "This attribute identifies the ACL that is associated
984         with this target. It identifies (potentially many) ACL
985         class instances in a specific ACL Definition table
986         where ACLs, and their associated ACEs, are defined.
987         For example, instances in the qosIpAclDefinitionTable
988         are identified by setting the value of this object
989         equal to the qosIpAclDefinitionAclId of the instances
990         being targeted. This value, together with the value of
991         the corresponding qosTargetAclType attribute,
992         uniquely identifies one or more instances of a specific
993         ACL Definition class.
994
995         Attempting to specify an unknown ACL class instance will
996         result in an appropriate error indication being returned
997         to the entity that is attempting to install the conflicting
998         entry. For example, a 'priUnknown(2)' error indication is
999         returned to the policy server in this situation."
1000
1001     ::= { qosTargetEntry 2 }
1002
1003 qosTargetAclType OBJECT-TYPE
1004     SYNTAX         OBJECT IDENTIFIER
1005     STATUS         current
1006
1007     DESCRIPTION
1008         "The ACL Definition class that is being referenced by
1009         this instance of the ACL Target class. This policy
1010         class identifier, together with the corresponding
1011         qosTargetAclId attribute, uniquely identifies
1012         instances of a specific ACL Definition class.
1013
1014         The object identifier value of this attribute must
1015         exist in the policyPrcSupportTable."
1016
1017     ::= { qosTargetEntry 3 }
1018
1019 qosTargetInterfaceRoles OBJECT-TYPE
1020     SYNTAX         RoleCombination
1021     STATUS         current
1022     DESCRIPTION
1023         "The interfaces to which this ACL applies specified
1024         in terms of a set of roles. The role combination
1025         specified by this attribute must exist in the
1026         qosInterfaceTypeTable prior to being association
1027         with an instance of this class."
1028
1029     ::= { qosTargetEntry 4 }
1030
1031 qosTargetInterfaceDirection OBJECT-TYPE
1032     SYNTAX         INTEGER {
1033                        in(1),
1034                        out(2)
1035                    }
1036     STATUS         current
1037     DESCRIPTION
1038         "The direction of packet flow at the interface in
1039         question to which this ACL applies."
1040
1041     ::= { qosTargetEntry 5 }
1042
1043 qosTargetOrder OBJECT-TYPE
1044     SYNTAX         Unsigned32
1045     STATUS         current
1046     DESCRIPTION
1047         "An integer that determines the precedence order of
1048         this ACL in the list of ACLs applied to interfaces of
1049         the specified role combination. An ACL with a given
1050         precedence order is positioned in the list before one
1051         with a higher-valued precedence order.
1052
1053         As an example, consider the following ACL Target association:
1054
1055           Index   IfRoleCombo  IfDirection AclId AclType Order
1056             14  'eth1000+L2+L3'   'in'       8    '802'    1
1057             15  'eth1000+L2+L3'   'in'       3    '802'    2
1058             16  'eth1000+L2+L3'   'in'      12    'IP'     3
1059             17  'eth1000+L2+L3'   'in'       6    'IP'     4
1060             18  'eth1000+L2+L3'   'in'      21    'IP'     5
1061
1062         Five distinct ACL specifications, 3 from an IP ACL
1063         Definition class and 2 from an IEEE 802 ACL Definition class,
1064         form an Acl Target association (e.g., based on the specified
1065         interface role combination and direction attributes) with a
1066         prescribed order of evaluation. The AclType and AclId
1067         attributes identify the ACL Definition instances in their
1068         respective classes.
1069
1070         Precedence values within an association must be unique
1071         otherwise instance installation will be prohibited and an
1072         error value will be returned."
1073
1074     ::= { qosTargetEntry 6 }
1075
1076 qosTargetMeter OBJECT-TYPE
1077     SYNTAX         InstanceId
1078     STATUS         current
1079     DESCRIPTION
1080         "This attribute identifies the meter that is associated
1081         with this QoS Target instance. Meters are defined
1082         in the qosMeterTable. The corresponding instance in
1083         the qosMeter class (i.e., the class instance where
1084         the qosMeterId is equal to the value of this object)
1085         must exist prior to being associated with a Target
1086         entry."
1087
1088     ::= { qosTargetEntry 7 }
1089
1090 --
1091 -- The IP Classification and Policing Group
1092 --
1093
1094 qosIpQos OBJECT IDENTIFIER ::= { qosPolicyIpPibClasses 1 }
1095
1096 -- The IP ACE Table
1097
1098 qosIpAceTable OBJECT-TYPE
1099     SYNTAX         SEQUENCE OF QosIpAceEntry
1100     PIB-ACCESS  install
1101     STATUS         current
1102     DESCRIPTION
1103         "ACE definitions.  A packet has to match all fields in an
1104         ACE.  Wildcards may be specified for those fields that are
1105         not relevant."
1106
1107     ::= { qosIpQos 1 }
1108
1109 qosIpAceEntry OBJECT-TYPE
1110     SYNTAX         QosIpAceEntry
1111     STATUS         current
1112     DESCRIPTION
1113         "An instance of the qosIpAce class."
1114
1115     PIB-INDEX { qosIpAceId }
1116     ::= { qosIpAceTable 1 }
1117
1118 QosIpAceEntry ::= SEQUENCE {
1119         qosIpAceId           InstanceId,
1120         qosIpAceDstAddr      InetAddress,
1121         qosIpAceDstAddrMask  InetAddress,
1122         qosIpAceSrcAddr      InetAddress,
1123         qosIpAceSrcAddrMask  InetAddress,
1124         qosIpAceDscp         Integer32,
1125         qosIpAceProtocol     INTEGER,
1126         qosIpAceDstL4PortMin INTEGER,
1127         qosIpAceDstL4PortMax INTEGER,
1128         qosIpAceSrcL4PortMin INTEGER,
1129         qosIpAceSrcL4PortMax INTEGER,
1130         qosIpAcePermit       TruthValue
1131 }
1132
1133 qosIpAceId OBJECT-TYPE
1134     SYNTAX         InstanceId
1135     STATUS         current
1136     DESCRIPTION
1137         "An integer index to uniquely identify this ACE among all the
1138         ACEs."
1139
1140     ::= { qosIpAceEntry 1 }
1141
1142 qosIpAceDstAddr OBJECT-TYPE
1143
1144     SYNTAX         InetAddress
1145     STATUS         current
1146     DESCRIPTION
1147         "The IP address to match against the packet's destination IP
1148         address."
1149
1150     ::= { qosIpAceEntry 2 }
1151
1152 qosIpAceDstAddrMask OBJECT-TYPE
1153     SYNTAX         InetAddress
1154     STATUS         current
1155     DESCRIPTION
1156         "A mask for the matching of the destination IP address.
1157         A zero bit in the mask means that the corresponding bit in
1158         the address always matches."
1159
1160     ::= { qosIpAceEntry 3 }
1161
1162 qosIpAceSrcAddr OBJECT-TYPE
1163     SYNTAX         InetAddress
1164     STATUS         current
1165     DESCRIPTION
1166         "The IP address to match against the packet's source IP
1167         address."
1168
1169     ::= { qosIpAceEntry 4 }
1170
1171 qosIpAceSrcAddrMask OBJECT-TYPE
1172     SYNTAX         InetAddress
1173     STATUS         current
1174     DESCRIPTION
1175         "A mask for the matching of the source IP address."
1176
1177     ::= { qosIpAceEntry 5 }
1178
1179 qosIpAceDscp OBJECT-TYPE
1180     SYNTAX         Integer32 (-1 | 0..63)
1181     STATUS         current
1182     DESCRIPTION
1183         "The value that the DSCP in the packet can have and
1184         match this ACE. A value of -1 indicates that a specific
1185         DSCP value has not been defined and thus all DSCP values
1186         are considered a match."
1187
1188     ::= { qosIpAceEntry 6 }
1189
1190 qosIpAceProtocol OBJECT-TYPE
1191     SYNTAX         INTEGER (0..255)
1192     STATUS         current
1193     DESCRIPTION
1194         "The IP protocol to match against the packet's protocol.
1195         A value of zero means match all."
1196
1197     ::= { qosIpAceEntry 7 }
1198
1199 qosIpAceDstL4PortMin OBJECT-TYPE
1200     SYNTAX         INTEGER (0..65535)
1201     STATUS         current
1202     DESCRIPTION
1203         "The minimum value that the packet's layer 4 destination
1204         port number can have and match this ACE."
1205
1206     ::= { qosIpAceEntry 8 }
1207
1208 qosIpAceDstL4PortMax OBJECT-TYPE
1209     SYNTAX         INTEGER (0..65535)
1210     STATUS         current
1211     DESCRIPTION
1212         "The maximum value that the packet's layer 4 destination
1213         port number can have and match this ACE. This value must be
1214         equal to or greater that the value specified for this ACE in
1215         qosIpAceDstL4PortMin."
1216
1217     ::= { qosIpAceEntry 9 }
1218
1219 qosIpAceSrcL4PortMin OBJECT-TYPE
1220     SYNTAX         INTEGER (0..65535)
1221     STATUS         current
1222     DESCRIPTION
1223         "The minimum value that the packet's layer 4 source port
1224         number can have and match this ACE."
1225
1226     ::= { qosIpAceEntry 10 }
1227
1228 qosIpAceSrcL4PortMax OBJECT-TYPE
1229     SYNTAX         INTEGER (0..65535)
1230     STATUS         current
1231     DESCRIPTION
1232         "The maximum value that the packet's layer 4 source port
1233         number can have and match this ACE.  This value must be equal
1234         to or greater that the value specified for this ACE in
1235
1236         qosIpAceSrcL4PortMin."
1237
1238     ::= { qosIpAceEntry 11 }
1239
1240 qosIpAcePermit OBJECT-TYPE
1241     SYNTAX         TruthValue
1242     STATUS         current
1243     DESCRIPTION
1244         "If the packet matches this ACE and the value of this
1245         attribute is true, then the matching process terminates
1246         and the QoS associated with this ACE (indirectly through
1247         the ACL) is applied to the packet.  If the value of this
1248         attribute is false, then no more ACEs in this ACL are
1249         compared to this packet and matching continues with the
1250         first ACE of the next ACL."
1251
1252     ::= { qosIpAceEntry 12 }
1253
1254 --
1255 -- The IP ACL Definition Table
1256 --
1257
1258 qosIpAclDefinitionTable OBJECT-TYPE
1259     SYNTAX         SEQUENCE OF QosIpAclDefinitionEntry
1260     PIB-ACCESS  install
1261     STATUS         current
1262     DESCRIPTION
1263         "A class that defines a set of ACLs each being an ordered list
1264         of ACEs.  Each instance of this class identifies one ACE of
1265         an ACL and the precedence order of that ACE with respect to
1266         other ACEs in the same ACL."
1267
1268     INSTALL-ERRORS {
1269         priPrecedenceConflict(1) -- precedence conflict detected
1270         }
1271
1272     ::= { qosIpQos 2 }
1273
1274 qosIpAclDefinitionEntry OBJECT-TYPE
1275     SYNTAX         QosIpAclDefinitionEntry
1276     STATUS         current
1277     DESCRIPTION
1278         "An instance of the qosIpAclDefinition class."
1279
1280     PIB-INDEX { qosIpAclDefinitionId }
1281
1282     ::= { qosIpAclDefinitionTable 1 }
1283
1284 QosIpAclDefinitionEntry ::= SEQUENCE {
1285         qosIpAclDefinitionId       InstanceId,
1286         qosIpAclDefinitionAclId    InstanceId,
1287         qosIpAclDefinitionAceId    InstanceId,
1288         qosIpAclDefinitionAceOrder Unsigned32
1289 }
1290
1291 qosIpAclDefinitionId OBJECT-TYPE
1292     SYNTAX         InstanceId
1293     STATUS         current
1294     DESCRIPTION
1295         "Unique index of this policy rule instance."
1296
1297     ::= { qosIpAclDefinitionEntry 1 }
1298
1299 qosIpAclDefinitionAclId OBJECT-TYPE
1300     SYNTAX         InstanceId
1301     STATUS         current
1302     DESCRIPTION
1303         "An ID for this ACL.  There will be one instance of
1304         the class qosIpAclDefinition with this ID for each ACE in
1305         the ACL per role combination."
1306
1307     ::= { qosIpAclDefinitionEntry 2 }
1308
1309 qosIpAclDefinitionAceId OBJECT-TYPE
1310     SYNTAX         InstanceId
1311     STATUS         current
1312     DESCRIPTION
1313         "This attribute specifies the ACE in the qosIpAceTable that
1314         is in the ACL specified by qosIpAclDefinitionAclId at the
1315         position specified by qosIpAceOrder.
1316
1317         Attempting to specify an unknown class instance will result
1318         in an appropriate error indication being returned to the
1319         entity that is attempting to install the conflicting entry.
1320         For example, a 'priUnknown(2)' error indication is returned
1321         to the policy server in this situation."
1322
1323     ::= { qosIpAclDefinitionEntry 3 }
1324
1325 qosIpAclDefinitionAceOrder OBJECT-TYPE
1326     SYNTAX         Unsigned32
1327
1328     STATUS         current
1329     DESCRIPTION
1330         "The precedence order of this ACE.  The precedence order
1331         determines the position of this ACE in the ACL.  An ACE with
1332         a given precedence order is positioned in the access control
1333         list before one with a higher-valued precedence order.
1334
1335         Precedence values within a group must be unique otherwise
1336         instance installation will be prohibited and an error
1337         value will be returned."
1338
1339     ::= { qosIpAclDefinitionEntry 4 }
1340
1341 END