Imported Upstream version 0.4.8
[platform/upstream/libsmi.git] / pibs / ietf / DIFFSERV-PIB
1 DIFFSERV-PIB PIB-DEFINITIONS ::= BEGIN
2
3 IMPORTS
4     Unsigned32, MODULE-IDENTITY, MODULE-COMPLIANCE,
5     OBJECT-TYPE, OBJECT-GROUP, pib
6             FROM COPS-PR-SPPI
7     InstanceId, Prid, TagId, TagReferenceId
8             FROM COPS-PR-SPPI-TC
9     zeroDotZero
10          FROM SNMPv2-SMI
11     AutonomousType
12             FROM SNMPv2-TC
13     SnmpAdminString
14             FROM SNMP-FRAMEWORK-MIB
15     RoleCombination, PrcIdentifierOid, PrcIdentifierOidOrZero,
16     AttrIdentifier
17             FROM FRAMEWORK-TC-PIB
18     Dscp
19             FROM DIFFSERV-DSCP-TC
20     IfDirection
21             FROM DIFFSERV-MIB
22     BurstSize
23             FROM INTEGRATED-SERVICES-MIB;
24
25
26 dsPolicyPib  MODULE-IDENTITY
27     SUBJECT-CATEGORIES { diffServ (2) } -- DiffServ QoS COPS Client Type
28     LAST-UPDATED "200302180000Z"        -- 18 Feb 2003
29     ORGANIZATION "IETF DIFFSERV WG"
30     CONTACT-INFO "
31                   Keith McCloghrie
32                   Cisco Systems, Inc.
33                   170 West Tasman Drive,
34                   San Jose, CA 95134-1706 USA
35                   Phone: +1 408 526 5260
36                   Email: kzm@cisco.com
37
38                   John Seligson
39                   Nortel Networks, Inc.
40                   4401 Great America Parkway
41                   Santa Clara, CA 95054 USA
42                   Phone: +1 408 495 2992
43                   Email: jseligso@nortelnetworks.com
44
45                   Kwok Ho Chan
46                   Nortel Networks, Inc.
47
48
49
50                   600 Technology Park Drive
51                   Billerica, MA 01821 USA
52                   Phone: +1 978 288 8175
53                   Email: khchan@nortelnetworks.com
54
55                   Differentiated Services Working Group:
56                   diffserv@ietf.org"
57     DESCRIPTION
58          "The PIB module containing a set of provisioning classes
59          that describe quality of service (QoS) policies for
60          DiffServ. It includes general classes that may be extended
61          by other PIB specifications as well as a set of PIB
62          classes related to IP processing.
63
64          Copyright (C) The Internet Society (2003). This version of
65          this PIB module is part of RFC 3317; see the RFC itself for
66          full legal notices."
67
68     REVISION "200302180000Z"        -- 18 Feb 2003
69     DESCRIPTION
70          "Initial version, published as RFC 3317."
71     ::= { pib 4 }
72
73 dsCapabilityClasses    OBJECT IDENTIFIER ::= { dsPolicyPib 1 }
74 dsPolicyClasses        OBJECT IDENTIFIER ::= { dsPolicyPib 2 }
75 dsPolicyPibConformance OBJECT IDENTIFIER ::= { dsPolicyPib 3 }
76
77 --
78 -- Interface Type Capabilities Group
79 --
80
81 --
82 -- Interface Type Capability Tables
83 --
84 -- The Interface type capability tables define capabilities that may
85 -- be associated with interfaces of a specific type.
86 -- This PIB defines capability tables for DiffServ Functionalities.
87 --
88
89 --
90 -- The Base Capability Table
91 --
92
93 dsBaseIfCapsTable OBJECT-TYPE
94     SYNTAX         SEQUENCE OF DsBaseIfCapsEntry
95     PIB-ACCESS     notify
96     STATUS         current
97     DESCRIPTION
98
99
100
101       "The Base Interface Type Capability class.  This class
102        represents a generic capability supported by a device in the
103        ingress, egress, or both directions."
104     ::= { dsCapabilityClasses 1 }
105
106 dsBaseIfCapsEntry OBJECT-TYPE
107     SYNTAX         DsBaseIfCapsEntry
108     STATUS         current
109     DESCRIPTION
110       "An instance of this class describes the dsBaseIfCaps class."
111
112     PIB-INDEX { dsBaseIfCapsPrid }
113 ::= { dsBaseIfCapsTable 1 }
114
115 DsBaseIfCapsEntry ::= SEQUENCE {
116         dsBaseIfCapsPrid           InstanceId,
117         dsBaseIfCapsDirection      INTEGER
118 }
119
120 dsBaseIfCapsPrid OBJECT-TYPE
121     SYNTAX         InstanceId
122     STATUS         current
123     DESCRIPTION
124         "An arbitrary integer index that uniquely identifies an
125         instance of the class."
126     ::= { dsBaseIfCapsEntry 1 }
127
128
129 dsBaseIfCapsDirection OBJECT-TYPE
130     SYNTAX         INTEGER {
131                         inbound(1),
132                         outbound(2),
133                         inAndOut(3)
134                    }
135     STATUS         current
136     DESCRIPTION
137       "This object specifies the direction(s) for which the
138       capability applies. A value of 'inbound(1)' means the
139       capability applies only to the ingress direction.  A value of
140       'outbound(2)' means the capability applies only to the egress
141       direction.  A value of 'inAndOut(3)' means the capability
142       applies to both directions."
143     ::= { dsBaseIfCapsEntry 2 }
144
145 --
146 -- The Classification Capability Table
147 --
148
149
150
151
152 dsIfClassificationCapsTable OBJECT-TYPE
153     SYNTAX         SEQUENCE OF DsIfClassificationCapsEntry
154     PIB-ACCESS     notify
155     STATUS         current
156     DESCRIPTION
157         "This class specifies the classification capabilities of
158         a Capability Set."
159     ::= { dsCapabilityClasses 2 }
160
161
162 dsIfClassificationCapsEntry OBJECT-TYPE
163     SYNTAX         DsIfClassificationCapsEntry
164     STATUS         current
165     DESCRIPTION
166         "An instance of this class describes the classification
167         capabilities of a Capability Set."
168
169
170     EXTENDS { dsBaseIfCapsEntry }
171     UNIQUENESS { dsBaseIfCapsDirection,
172                  dsIfClassificationCapsSpec }
173     ::= { dsIfClassificationCapsTable 1 }
174
175 DsIfClassificationCapsEntry ::= SEQUENCE {
176         dsIfClassificationCapsSpec BITS
177 }
178
179 dsIfClassificationCapsSpec OBJECT-TYPE
180     SYNTAX       BITS {
181                        ipSrcAddrClassification(0),
182                        -- indicates the ability to classify based on
183                        -- IP source addresses
184                        ipDstAddrClassification(1),
185                        -- indicates the ability to classify based on
186                        -- IP destination addresses
187                        ipProtoClassification(2),
188                        -- indicates the ability to classify based on
189                        -- IP protocol numbers
190                        ipDscpClassification(3),
191                        -- indicates the ability to classify based on
192                        -- IP DSCP
193                        ipL4Classification(4),
194                        -- indicates the ability to classify based on
195                        -- IP layer 4 port numbers for UDP and TCP
196                        ipV6FlowID(5)
197                        -- indicates the ability to classify based on
198                        -- IPv6 FlowIDs.
199                       }
200
201
202
203     STATUS         current
204     DESCRIPTION
205       "Bit set of supported classification capabilities.  In
206       addition to these capabilities, other PIBs may define other
207       capabilities that can then be specified in addition to the
208       ones specified here (or instead of the ones specified here if
209       none of these are specified)."
210     ::= { dsIfClassificationCapsEntry 1 }
211
212 --
213 -- Metering Capabilities
214 --
215
216 dsIfMeteringCapsTable OBJECT-TYPE
217     SYNTAX         SEQUENCE OF DsIfMeteringCapsEntry
218     PIB-ACCESS     notify
219     STATUS         current
220     DESCRIPTION
221         "This class specifies the metering capabilities of a
222         Capability Set."
223     ::= { dsCapabilityClasses 3 }
224
225 dsIfMeteringCapsEntry OBJECT-TYPE
226     SYNTAX         DsIfMeteringCapsEntry
227     STATUS         current
228     DESCRIPTION
229       "An instance of this class describes the metering
230       capabilities of a Capability Set."
231
232     EXTENDS { dsBaseIfCapsEntry }
233     UNIQUENESS { dsBaseIfCapsDirection,
234                  dsIfMeteringCapsSpec }
235     ::= { dsIfMeteringCapsTable 1 }
236
237 DsIfMeteringCapsEntry ::= SEQUENCE {
238         dsIfMeteringCapsSpec       BITS
239 }
240
241 dsIfMeteringCapsSpec OBJECT-TYPE
242     SYNTAX  BITS {
243                   zeroNotUsed(0),
244                   simpleTokenBucket(1),
245                   avgRate(2),
246                   srTCMBlind(3),
247                   srTCMAware(4),
248                   trTCMBlind(5),
249                   trTCMAware(6),
250                   tswTCM(7)
251
252
253
254                  }
255     STATUS       current
256     DESCRIPTION
257       "Bit set of supported metering capabilities.  As with
258       classification capabilities, these metering capabilities may
259       be augmented by capabilities specified in other PRCs (in other
260       PIBs)."
261     ::= { dsIfMeteringCapsEntry 1 }
262
263 --
264 -- Algorithmic Dropper Capabilities
265 --
266
267 dsIfAlgDropCapsTable OBJECT-TYPE
268     SYNTAX         SEQUENCE OF DsIfAlgDropCapsEntry
269     PIB-ACCESS     notify
270     STATUS         current
271     DESCRIPTION
272         "This class specifies the algorithmic dropper
273         capabilities of a Capability Set.
274
275         This capability table indicates the types of algorithmic
276         drop supported by a Capability Set for a specific flow
277         direction.
278         Additional capabilities affecting the drop functionalities
279         are determined based on queue capabilities associated with
280         specific instance of a dropper, hence not specified by
281         this class."
282     ::= { dsCapabilityClasses 4 }
283
284 dsIfAlgDropCapsEntry OBJECT-TYPE
285     SYNTAX         DsIfAlgDropCapsEntry
286     STATUS         current
287     DESCRIPTION
288         "An instance of this class describes the algorithmic dropper
289         capabilities of a Capability Set."
290     EXTENDS { dsBaseIfCapsEntry }
291     UNIQUENESS { dsBaseIfCapsDirection,
292                  dsIfAlgDropCapsType,
293                  dsIfAlgDropCapsMQCount }
294     ::= { dsIfAlgDropCapsTable 1 }
295
296 DsIfAlgDropCapsEntry ::= SEQUENCE {
297         dsIfAlgDropCapsType                BITS,
298         dsIfAlgDropCapsMQCount             Unsigned32
299 }
300
301 dsIfAlgDropCapsType OBJECT-TYPE
302
303
304
305     SYNTAX      BITS {
306                      zeroNotUsed(0),
307                      oneNotUsed(1),
308                      tailDrop(2),
309                      headDrop(3),
310                      randomDrop(4),
311                      alwaysDrop(5),
312                      mQDrop(6) }
313     STATUS      current
314     DESCRIPTION
315       "The type of algorithm that droppers associated with queues
316       may use.
317
318       The tailDrop(2) algorithm means that packets are dropped from
319       the tail of the queue when the associated queue's MaxQueueSize
320       is exceeded.  The headDrop(3) algorithm means that packets are
321       dropped from the head of the queue when the associated queue's
322       MaxQueueSize is exceeded. The randomDrop(4) algorithm means
323       that an algorithm is executed which may randomly
324       drop the packet, or  drop  other  packet(s) from  the  queue
325       in  its place.  The specifics of the algorithm may be
326       proprietary.  However, parameters would be specified in the
327       dsRandomDropTable.  The alwaysDrop(5) will drop every packet
328       presented to it.  The mQDrop(6) algorithm will drop packets
329       based on measurement from multiple queues."
330     ::= { dsIfAlgDropCapsEntry 1 }
331
332 dsIfAlgDropCapsMQCount OBJECT-TYPE
333     SYNTAX      Unsigned32  (1..4294967295)
334     STATUS      current
335     DESCRIPTION
336       "Indicates the number of queues measured for the drop
337       algorithm.
338       This attribute is ignored when alwaysDrop(5) algorithm is
339       used.  This attribute contains the value of 1 for all drop
340       algorithm types except for mQDrop(6), where this attribute
341       is used to indicate the maximum number of dsMQAlgDropEntry
342       that can be chained together."
343     ::= { dsIfAlgDropCapsEntry 2 }
344
345 --
346 -- Queue Capabilities
347 --
348
349 dsIfQueueCapsTable OBJECT-TYPE
350     SYNTAX         SEQUENCE OF DsIfQueueCapsEntry
351     PIB-ACCESS     notify
352     STATUS         current
353
354
355
356     DESCRIPTION
357         "This class specifies the queueing capabilities of a
358         Capability Set."
359     ::= { dsCapabilityClasses 5 }
360
361 dsIfQueueCapsEntry OBJECT-TYPE
362     SYNTAX         DsIfQueueCapsEntry
363     STATUS         current
364     DESCRIPTION
365         "An instance of this class describes the queue
366         capabilities of a Capability Set."
367     EXTENDS { dsBaseIfCapsEntry }
368     UNIQUENESS { dsBaseIfCapsDirection,
369                  dsIfQueueCapsMinQueueSize,
370                  dsIfQueueCapsMaxQueueSize,
371                  dsIfQueueCapsTotalQueueSize }
372     ::= { dsIfQueueCapsTable 1 }
373
374 DsIfQueueCapsEntry ::= SEQUENCE {
375         dsIfQueueCapsMinQueueSize          Unsigned32,
376         dsIfQueueCapsMaxQueueSize          Unsigned32,
377         dsIfQueueCapsTotalQueueSize        Unsigned32
378 }
379
380 dsIfQueueCapsMinQueueSize OBJECT-TYPE
381     SYNTAX      Unsigned32  (0..4294967295)
382     UNITS       "Bytes"
383     STATUS      current
384     DESCRIPTION
385         "Some interfaces may allow the size of a queue to be
386         configured.  This attribute specifies the minimum size that
387         can be configured for a queue, specified in bytes.
388         dsIfQueueCapsMinQueueSize must be less than or equals to
389         dsIfQueueCapsMaxQueueSize when both are specified.
390         A zero value indicates not specified."
391     ::= { dsIfQueueCapsEntry 1 }
392
393 dsIfQueueCapsMaxQueueSize OBJECT-TYPE
394     SYNTAX      Unsigned32  (0..4294967295)
395     UNITS       "Bytes"
396     STATUS      current
397     DESCRIPTION
398         "Some interfaces may allow the size of a queue to be
399         configured.  This attribute specifies the maximum size that
400         can be configured for a queue, specified in bytes.
401         dsIfQueueCapsMinQueueSize must be less than or equals to
402         dsIfQueueCapsMaxQueueSize when both are specified.
403         A zero value indicates not specified."
404
405
406
407     ::= { dsIfQueueCapsEntry 2 }
408
409 dsIfQueueCapsTotalQueueSize OBJECT-TYPE
410     SYNTAX      Unsigned32  (0..4294967295)
411     UNITS       "Bytes"
412     STATUS      current
413     DESCRIPTION
414         "Some interfaces may have a limited buffer space to be
415         shared amongst all queues of that interface while also
416         allowing the size of each queue to be configurable.  To
417         prevent the situation where the PDP configures the sizes of
418         the queues in excess of the total buffer available to the
419         interface, the PEP can report the total buffer space in
420         bytes available with this capability.
421         A zero value indicates not specified."
422     ::= { dsIfQueueCapsEntry 3 }
423
424 --
425 -- Scheduler Capabilities
426 --
427
428 dsIfSchedulerCapsTable OBJECT-TYPE
429     SYNTAX         SEQUENCE OF DsIfSchedulerCapsEntry
430     PIB-ACCESS     notify
431     STATUS         current
432     DESCRIPTION
433       "This class specifies the scheduler capabilities of a
434       Capability Set."
435     ::= { dsCapabilityClasses 6 }
436
437 dsIfSchedulerCapsEntry OBJECT-TYPE
438     SYNTAX         DsIfSchedulerCapsEntry
439     STATUS         current
440     DESCRIPTION
441       "An instance of this class describes the scheduler
442       capabilities of a Capability Set."
443     EXTENDS { dsBaseIfCapsEntry }
444     UNIQUENESS { dsBaseIfCapsDirection,
445                  dsIfSchedulerCapsServiceDisc,
446                  dsIfSchedulerCapsMaxInputs }
447     ::= { dsIfSchedulerCapsTable 1 }
448
449 DsIfSchedulerCapsEntry ::= SEQUENCE {
450         dsIfSchedulerCapsServiceDisc      AutonomousType,
451         dsIfSchedulerCapsMaxInputs        Unsigned32,
452         dsIfSchedulerCapsMinMaxRate       INTEGER
453 }
454
455
456
457
458 dsIfSchedulerCapsServiceDisc OBJECT-TYPE
459     SYNTAX      AutonomousType
460     STATUS      current
461     DESCRIPTION
462       "The scheduling discipline for which the set of capabilities
463       specified in this object apply. Object identifiers for several
464       general purpose and well-known scheduling disciplines are
465       shared with and defined in the DiffServ MIB.
466
467       These include diffServSchedulerPriority,
468       diffServSchedulerWRR, diffServSchedulerWFQ."
469     ::= { dsIfSchedulerCapsEntry 1 }
470
471 dsIfSchedulerCapsMaxInputs OBJECT-TYPE
472     SYNTAX      Unsigned32  (0..4294967295)
473     STATUS      current
474     DESCRIPTION
475       "The maximum number of queues and/or schedulers that can
476       feed into a scheduler indicated by this capability entry.
477       A value of zero means there is no maximum."
478     ::= { dsIfSchedulerCapsEntry 2 }
479
480 dsIfSchedulerCapsMinMaxRate OBJECT-TYPE
481     SYNTAX      INTEGER {
482                       minRate(1),
483                       maxRate(2),
484                       minAndMaxRates(3)
485                 }
486     STATUS      current
487     DESCRIPTION
488       "Scheduler capability indicating ability to handle inputs
489       with minimum rate, maximum rate, or both."
490     ::= { dsIfSchedulerCapsEntry 3 }
491
492 --
493 -- Maximum Rate Capabilities
494 --
495
496 dsIfMaxRateCapsTable OBJECT-TYPE
497     SYNTAX         SEQUENCE OF DsIfMaxRateCapsEntry
498     PIB-ACCESS     notify
499     STATUS         current
500     DESCRIPTION
501         "This class specifies the maximum rate capabilities of a
502         Capability Set."
503     ::= { dsCapabilityClasses 7 }
504
505 dsIfMaxRateCapsEntry OBJECT-TYPE
506
507
508
509     SYNTAX         DsIfMaxRateCapsEntry
510     STATUS         current
511     DESCRIPTION
512         "An instance of this class describes the maximum rate
513         capabilities of a Capability Set."
514     EXTENDS { dsBaseIfCapsEntry }
515     UNIQUENESS { dsBaseIfCapsDirection,
516                  dsIfMaxRateCapsMaxLevels }
517     ::= { dsIfMaxRateCapsTable 1 }
518
519 DsIfMaxRateCapsEntry ::= SEQUENCE {
520         dsIfMaxRateCapsMaxLevels           Unsigned32
521 }
522
523 dsIfMaxRateCapsMaxLevels OBJECT-TYPE
524     SYNTAX      Unsigned32  (1..4294967295)
525     STATUS      current
526     DESCRIPTION
527         "The maximum number of levels a maximum rate specification
528         may have for this Capability Set and flow direction."
529     ::= { dsIfMaxRateCapsEntry 1 }
530
531 --
532 -- DataPath Element Linkage Capabilities
533 --
534
535 --
536 -- DataPath Element Cascade Depth
537 --
538
539 dsIfElmDepthCapsTable OBJECT-TYPE
540     SYNTAX         SEQUENCE OF DsIfElmDepthCapsEntry
541     PIB-ACCESS     notify
542     STATUS         current
543     DESCRIPTION
544         "This class specifies the number of elements of the same
545         type that can be cascaded together in a datapath."
546     ::= { dsCapabilityClasses 8 }
547
548 dsIfElmDepthCapsEntry OBJECT-TYPE
549     SYNTAX         DsIfElmDepthCapsEntry
550     STATUS         current
551     DESCRIPTION
552         "An instance of this class describes the cascade depth
553         for a particular functional datapath element PRC.  A
554         functional datapath element not represented in this
555         class can be assumed to have no specific maximum
556         depth."
557
558
559
560     EXTENDS { dsBaseIfCapsEntry }
561     UNIQUENESS { dsBaseIfCapsDirection,
562                  dsIfElmDepthCapsPrc }
563     ::= { dsIfElmDepthCapsTable 1 }
564
565 DsIfElmDepthCapsEntry ::= SEQUENCE {
566         dsIfElmDepthCapsPrc                PrcIdentifierOid,
567         dsIfElmDepthCapsCascadeMax         Unsigned32
568 }
569
570 dsIfElmDepthCapsPrc OBJECT-TYPE
571     SYNTAX         PrcIdentifierOid
572     STATUS         current
573     DESCRIPTION
574       "The object identifier of a PRC that represents a functional
575       datapath element.  This may be one of:  dsClfrElementEntry,
576       dsMeterEntry, dsActionEntry, dsAlgDropEntry, dsQEntry, or
577       dsSchedulerEntry.
578       There may not be more than one instance of this class with
579       the same value of dsIfElmDepthCapsPrc and same value of
580       dsBaseIfCapsDirection.  Must not contain the value of
581       zeroDotZero."
582     ::= { dsIfElmDepthCapsEntry 1 }
583
584 dsIfElmDepthCapsCascadeMax OBJECT-TYPE
585     SYNTAX         Unsigned32  (0..4294967295)
586     STATUS         current
587     DESCRIPTION
588       "The maximum number of elements of type dsIfElmDepthCapsPrc
589       that can be linked consecutively in a data path.  A value of
590       zero indicates there is no specific maximum."
591     ::= { dsIfElmDepthCapsEntry 2 }
592
593 --
594 -- DataPath Element Linkage Types
595 --
596
597 dsIfElmLinkCapsTable OBJECT-TYPE
598     SYNTAX         SEQUENCE OF DsIfElmLinkCapsEntry
599     PIB-ACCESS     notify
600     STATUS         current
601     DESCRIPTION
602         "This class specifies what types of datapath functional
603         elements may be used as the next downstream element for
604         a specific type of functional element."
605     ::= { dsCapabilityClasses 9 }
606
607 dsIfElmLinkCapsEntry OBJECT-TYPE
608
609
610
611     SYNTAX         DsIfElmLinkCapsEntry
612     STATUS         current
613     DESCRIPTION
614         "An instance of this class specifies a PRC that may
615          be used as the next functional element after a specific
616          type of element in a data path."
617     EXTENDS { dsBaseIfCapsEntry }
618     UNIQUENESS { dsBaseIfCapsDirection,
619                  dsIfElmLinkCapsPrc,
620                  dsIfElmLinkCapsAttr,
621                  dsIfElmLinkCapsNextPrc }
622     ::= { dsIfElmLinkCapsTable 1 }
623
624 DsIfElmLinkCapsEntry ::= SEQUENCE {
625         dsIfElmLinkCapsPrc               PrcIdentifierOid,
626         dsIfElmLinkCapsAttr              AttrIdentifier,
627         dsIfElmLinkCapsNextPrc           PrcIdentifierOidOrZero
628 }
629
630 dsIfElmLinkCapsPrc OBJECT-TYPE
631     SYNTAX         PrcIdentifierOid
632     STATUS         current
633     DESCRIPTION
634       " The object identifier of a PRC that represents a functional
635       datapath element.  This may be one of:  dsClfrElementEntry,
636       dsMeterEntry, dsActionEntry, dsAlgDropEntry, dsQEntry, or
637       dsSchedulerEntry.
638       This must not have the value zeroDotZero."
639     ::= { dsIfElmLinkCapsEntry 1 }
640
641 dsIfElmLinkCapsAttr OBJECT-TYPE
642     SYNTAX         AttrIdentifier
643     STATUS         current
644     DESCRIPTION
645       "The value represents the attribute in the PRC
646       indicated by dsIfElmLinkCapsPrc that is used to
647       specify the next functional element in the datapath."
648     ::= { dsIfElmLinkCapsEntry 2 }
649
650 dsIfElmLinkCapsNextPrc OBJECT-TYPE
651     SYNTAX         PrcIdentifierOidOrZero
652     STATUS         current
653     DESCRIPTION
654       "The value is the OID of a PRC table entry from which
655       instances can be referenced by the attribute indicated
656       by dsIfElmLinkCapsPrc and dsIfElmLinkAttr.
657
658       For example, suppose a meter's success output can be an
659
660
661
662       action or another meter, and the fail output can only be
663       an action.  This can be expressed as follows:
664
665       Prid Prc             Attr                  NextPrc
666       1    dsMeterEntry   dsMeterSucceedNext   dsActionEntry
667       2    dsMeterEntry   dsMeterSucceedNext   dsMeterEntry
668       3    dsMeterEntry   dsMeterFailNext      dsActionEntry.
669
670       zeroDotZero is a valid value for this attribute to
671       specify that the PRC specified in dsIfElmLinkCapsPrc
672       is the last functional data path element."
673     ::= { dsIfElmLinkCapsEntry 3 }
674
675 --
676 -- Policy Classes
677 --
678
679 --
680 -- Data Path Table
681 --
682
683 dsDataPathTable OBJECT-TYPE
684     SYNTAX       SEQUENCE OF DsDataPathEntry
685     PIB-ACCESS   install
686     STATUS       current
687     DESCRIPTION
688        "The data path table indicates the start of
689        functional data paths in this device.
690
691        The Data Path Table enumerates the Differentiated
692        Services Functional Data Paths within this device.
693        Each entry specifies the first functional datapath
694        element to process data flow for each specific datapath.
695        Each datapath is defined by the interface set's capability
696        set name, role combination, and direction. This class can
697        therefore have up to two entries for each interface set,
698        ingress and egress."
699     ::= { dsPolicyClasses 1 }
700
701 dsDataPathEntry OBJECT-TYPE
702     SYNTAX       DsDataPathEntry
703     STATUS       current
704     DESCRIPTION
705        "Each entry in this class indicates the start of a single
706        functional data path, defined by its capability set name,
707        role combination and traffic direction.  The first
708        functional datapath element to handle traffic for each
709        data path is defined by the dsDataPathStart attribute
710
711
712
713        of each table entry.
714        Notice for each entry:
715        1. dsDataPathCapSetName must reference an existing capability
716           set name in frwkCapabilitySetTable [FR-PIB].
717        2. dsDataPathRoles must reference existing Role Combination
718           in frwkIfRoleComboTable [FR-PIB].
719        3. dsDataPathStart must reference an existing entry in a
720           functional data path element table.
721        If any one or more of these three requirements is not
722        satisfied, the dsDataPathEntry will not be installed."
723     PIB-INDEX { dsDataPathPrid }
724     UNIQUENESS { dsDataPathCapSetName,
725                  dsDataPathRoles,
726                  dsDataPathIfDirection }
727     ::= { dsDataPathTable 1 }
728
729 DsDataPathEntry ::= SEQUENCE  {
730     dsDataPathPrid           InstanceId,
731     dsDataPathCapSetName     SnmpAdminString,
732     dsDataPathRoles          RoleCombination,
733     dsDataPathIfDirection    IfDirection,
734     dsDataPathStart          Prid
735 }
736
737 dsDataPathPrid OBJECT-TYPE
738     SYNTAX       InstanceId
739     STATUS       current
740     DESCRIPTION
741        "An arbitrary integer index that uniquely identifies an
742         instance of the class."
743     ::= { dsDataPathEntry 1 }
744
745 dsDataPathCapSetName OBJECT-TYPE
746     SYNTAX       SnmpAdminString
747     STATUS       current
748     DESCRIPTION
749        "The capability set associated with this data path entry.
750         The capability set name specified by this attribute
751         must exist in the frwkCapabilitySetTable [FR-PIB]
752         prior to association with an instance of this class."
753     ::= { dsDataPathEntry 2 }
754
755 dsDataPathRoles OBJECT-TYPE
756     SYNTAX       RoleCombination
757     STATUS       current
758     DESCRIPTION
759        "The interfaces to which this data path entry applies,
760         specified in terms of roles.  There must exist an entry
761
762
763
764         in the frwkIfRoleComboTable [FR-PIB] specifying
765         this role combination, together with the capability
766         set specified by dsDataPathCapSetName, prior to
767         association with an instance of this class."
768     ::= { dsDataPathEntry 3 }
769
770 dsDataPathIfDirection OBJECT-TYPE
771     SYNTAX       IfDirection
772     STATUS       current
773     DESCRIPTION
774        "Specifies the direction for which this data path
775        entry applies."
776     ::= { dsDataPathEntry 4 }
777
778 dsDataPathStart OBJECT-TYPE
779     SYNTAX       Prid
780     STATUS       current
781     DESCRIPTION
782        "This selects the first functional datapath element
783        to  handle traffic for this data path.   This
784        Prid should point to an instance of one of:
785          dsClfrEntry
786          dsMeterEntry
787          dsActionEntry
788          dsAlgDropEntry
789          dsQEntry
790
791        The PRI pointed to must exist prior to the installation of
792        this datapath start element."
793     ::= { dsDataPathEntry 5 }
794
795 --
796 -- Classifiers
797 --
798 -- Classifier allows multiple classifier elements, of same or
799 -- different types, to be used together.
800 -- A classifier must completely classify all packets presented to
801 -- it. This means all traffic handled by a classifier must match
802 -- at least one classifier element within the classifier,
803 -- with the classifier element parameters specified by a filter.
804 -- It is the PDP's responsibility to create a _catch all_ classifier
805 -- element and filter that matches all packet.  This _catch all_
806 -- classifier element should have the lowest Precedence value.
807 --
808 -- If there is ambiguity between classifier elements of different
809 -- classifier, classifier linkage order indicates their precedence;
810 -- the first classifier in the link is applied to the traffic first.
811 --
812
813
814
815 -- Each entry in the classifier table represents a classifier, with
816 -- classifier element table handling the fan-out functionality of a
817 -- classifier, and filter table defining the classification
818 -- patterns.
819 --
820
821 --
822 -- Classifier Table
823 --
824
825 dsClfrTable OBJECT-TYPE
826     SYNTAX       SEQUENCE OF DsClfrEntry
827     PIB-ACCESS   install
828     STATUS       current
829     DESCRIPTION
830        "This table enumerates all the DiffServ classifier functional
831        data path elements of this device.  The actual classification
832        definitions are detailed in dsClfrElementTable entries
833        belonging to each classifier.  Each classifier is referenced
834        by its classifier elements using its classifier ID.
835
836        An entry in this table, referenced by an upstream functional
837        data path element or a datapath table entry, is the entry
838        point to the classifier functional data path element.
839
840        The dsClfrId of each entry is used to organize all
841        classifier elements belonging to the same classifier."
842     REFERENCE
843         "An Informal Management Model for Diffserv Routers,
844         RFC 3290, section 4.1"
845     ::= { dsPolicyClasses 2 }
846
847 dsClfrEntry OBJECT-TYPE
848     SYNTAX       DsClfrEntry
849     STATUS       current
850     DESCRIPTION
851        "An entry in the classifier table describes a single
852        classifier. Each classifier element belonging to this
853        classifier must have its dsClfrElementClfrId attribute equal
854        to dsClfrId."
855     PIB-INDEX { dsClfrPrid }
856     UNIQUENESS { dsClfrId }
857     ::= { dsClfrTable 1 }
858
859 DsClfrEntry ::= SEQUENCE  {
860     dsClfrPrid            InstanceId,
861     dsClfrId              TagReferenceId
862 }
863
864
865
866
867 dsClfrPrid OBJECT-TYPE
868     SYNTAX       InstanceId
869     STATUS       current
870     DESCRIPTION
871        "An arbitrary integer index that uniquely identifies an
872         instance of the class."
873     ::= { dsClfrEntry 1 }
874
875 dsClfrId OBJECT-TYPE
876     SYNTAX       TagReferenceId
877     PIB-TAG      { dsClfrElementClfrId }
878     STATUS       current
879     DESCRIPTION
880        "Identifies a Classifier.  A  Classifier must be
881        complete, this means all traffic handled by a
882        Classifier must match at least  one  Classifier
883        Element within  the  Classifier."
884     ::= { dsClfrEntry 2 }
885
886 --
887 -- Classifier Element Table
888 --
889
890 dsClfrElementTable OBJECT-TYPE
891     SYNTAX       SEQUENCE OF DsClfrElementEntry
892     PIB-ACCESS   install
893     STATUS       current
894     DESCRIPTION
895        "Entries in the classifier element table serves as
896        the anchor for each classification pattern, defined
897        in filter table entries.  Each classifier element
898        table entry also specifies the subsequent downstream
899        diffserv functional datapath element when the
900        classification pattern is satisfied.  Hence
901        the classifier element table enumerates the relationship
902        between classification patterns and subsequent downstream
903        diffserv functional data path elements, describing one
904        branch of the fan-out characteristic of a classifier
905        indicated in [Model].
906
907        Classification parameters are defined by entries of filter
908        tables pointed to by dsClfrElementSpecific.  There can be
909        filter tables of different types, and they can be inter-mixed
910        and used within a classifier. An example of a filter table is
911        the frwkIpFilterTable [FR-PIB], for IP Multi-Field
912        Classifiers (MFCs).
913
914
915
916
917        If there is ambiguity between classifier elements of the same
918        classifier, then dsClfrElementPrecedence needs to be used."
919     ::= { dsPolicyClasses 3 }
920
921 dsClfrElementEntry OBJECT-TYPE
922     SYNTAX       DsClfrElementEntry
923     STATUS       current
924     DESCRIPTION
925        "An entry in the classifier element table describes a
926        single element of the classifier."
927     PIB-INDEX { dsClfrElementPrid }
928     UNIQUENESS { dsClfrElementClfrId,
929                  dsClfrElementPrecedence,
930                  dsClfrElementSpecific }
931     ::= { dsClfrElementTable 1 }
932
933 DsClfrElementEntry ::= SEQUENCE  {
934     dsClfrElementPrid        InstanceId,
935     dsClfrElementClfrId      TagId,
936     dsClfrElementPrecedence  Unsigned32,
937     dsClfrElementNext        Prid,
938     dsClfrElementSpecific    Prid
939 }
940
941 dsClfrElementPrid OBJECT-TYPE
942     SYNTAX       InstanceId
943     STATUS       current
944     DESCRIPTION
945        "An arbitrary integer index that uniquely identifies an
946         instance of the class."
947     ::= { dsClfrElementEntry 1 }
948
949 dsClfrElementClfrId OBJECT-TYPE
950     SYNTAX       TagId
951     STATUS       current
952     DESCRIPTION
953        "A classifier is composed of one or more classifier
954         elements. Each classifier element belonging to
955         the same classifier uses the same classifier ID.
956
957         Hence, A classifier Id identifies which classifier
958         this classifier element is a part of. This must be
959         the value of dsClfrId attribute for an existing
960         instance of dsClfrEntry."
961     ::= { dsClfrElementEntry 2 }
962
963 dsClfrElementPrecedence OBJECT-TYPE
964     SYNTAX       Unsigned32  (1..4294967295)
965
966
967
968     STATUS       current
969     DESCRIPTION
970        "The relative order in which classifier elements are
971        applied: higher numbers represent classifier elements
972        with higher precedence.  Classifier elements with the
973        same precedence must be unambiguous i.e., they must
974        define non-overlapping patterns, and are considered to
975        be applied  simultaneously  to the traffic stream.
976        Classifier elements with different precedence may
977        overlap in their filters: the classifier element with
978        the highest precedence that matches is taken.
979
980        On a given interface, there must be a complete
981        classifier in place at all times in the ingress
982        direction.  This means that there will always be one
983        or more filters that match every possible pattern
984        that could be presented in an incoming packet.
985        There is no such requirement in the egress direction."
986     ::= { dsClfrElementEntry 3 }
987
988 dsClfrElementNext OBJECT-TYPE
989     SYNTAX       Prid
990     STATUS       current
991     DESCRIPTION
992        "This attribute provides one branch  of  the  fan-out
993        functionality  of  a  classifier described in Diffserv
994        Model section 4.1.
995
996        This selects the next diffserv functional datapath
997        element  to  handle traffic for this data path.
998
999        A value of zeroDotZero marks the end of DiffServ processing
1000        for this data path.  Any other value must point to a
1001        valid (pre-existing) instance of one of:
1002          dsClfrEntry
1003          dsMeterEntry
1004          dsActionEntry
1005          dsAlgDropEntry
1006          dsQEntry."
1007     DEFVAL      { zeroDotZero }
1008     ::= { dsClfrElementEntry 4 }
1009
1010 dsClfrElementSpecific OBJECT-TYPE
1011     SYNTAX       Prid
1012     STATUS       current
1013     DESCRIPTION
1014        "A pointer to a valid entry  in  another  table  that
1015        describes  the applicable classification filter, e.g.,
1016
1017
1018
1019        an entry in frwkIpFilterTable (Framework PIB).
1020
1021        The PRI pointed to must exist prior to the installation of
1022        this classifier element.
1023
1024        The value zeroDotZero is interpreted  to  match  any-
1025        thing  not  matched  by another classifier element - only one
1026        such entry  may exist for each classifier."
1027     ::= { dsClfrElementEntry 5 }
1028
1029 --
1030 -- Meters
1031 --
1032 -- This PIB supports a variety of Meters.  It includes a
1033 -- specific definition for Meters whose parameter set can
1034 -- be modeled using Token Bucket parameters.
1035 -- Other metering parameter sets can be defined by other PIBs.
1036 --
1037 -- Multiple meter elements may be logically cascaded
1038 -- using their dsMeterSucceedNext and dsMeterFailNext pointers if
1039 -- required.
1040 -- One example of this might be for an AF PHB implementation
1041 -- that uses multiple level conformance meters.
1042 --
1043 -- Cascading of individual meter elements in the PIB is intended
1044 -- to be functionally equivalent to multiple level conformance
1045 -- determination of a packet.  The sequential nature of the
1046 -- representation is merely a notational convenience for this PIB.
1047 --
1048 -- srTCM meters (RFC 2697) can be specified using two sets of
1049 -- dsMeterEntry and dsTBParamEntry. First set specifies the
1050 -- Committed Information Rate and Committed Burst Size
1051 -- token-bucket.  Second set specifies the Excess Burst
1052 -- Size token-bucket.
1053 --
1054 -- trTCM meters (RFC 2698) can be specified using two sets of
1055 -- dsMeterEntry and dsTBParamEntry. First set specifies the
1056 -- Committed Information Rate and Committed Burst Size
1057 -- token-bucket.  Second set specifies the Peak Information
1058 -- Rate and Peak Burst Size token-bucket.
1059 --
1060 -- tswTCM meters (RFC 2859) can be specified using two sets of
1061 -- dsMeterEntry and dsTBParamEntry. First set specifies the
1062 -- Committed Target Rate token-bucket. Second set specifies the
1063 -- Peak Target Rate token-bucket. dsTBParamInterval in each
1064 -- token bucket reflects the Average Interval.
1065
1066 dsMeterTable OBJECT-TYPE
1067
1068
1069
1070     SYNTAX       SEQUENCE OF DsMeterEntry
1071     PIB-ACCESS   install
1072     STATUS       current
1073     DESCRIPTION
1074        "This class enumerates specific meters that a system
1075        may use to police a stream of traffic. The traffic
1076        stream to be metered is determined by the element(s)
1077        upstream of the meter i.e., by the object(s) that
1078        point to each entry in this class. This may include
1079        all traffic on an interface.
1080
1081        Specific meter details are to be found in table entry
1082        referenced by dsMeterSpecific."
1083    REFERENCE
1084        "An Informal Management Model for Diffserv Routers,
1085        RFC 3290, section 5"
1086     ::= { dsPolicyClasses 4 }
1087
1088 dsMeterEntry OBJECT-TYPE
1089     SYNTAX       DsMeterEntry
1090     STATUS       current
1091     DESCRIPTION
1092        "An entry in the meter table describes a single
1093        conformance level of a meter."
1094     PIB-INDEX { dsMeterPrid }
1095     UNIQUENESS { dsMeterSucceedNext,
1096                  dsMeterFailNext,
1097                  dsMeterSpecific }
1098     ::= { dsMeterTable 1 }
1099
1100 DsMeterEntry ::= SEQUENCE  {
1101     dsMeterPrid              InstanceId,
1102     dsMeterSucceedNext       Prid,
1103     dsMeterFailNext          Prid,
1104     dsMeterSpecific          Prid
1105 }
1106
1107 dsMeterPrid OBJECT-TYPE
1108     SYNTAX       InstanceId
1109     STATUS       current
1110     DESCRIPTION
1111        "An arbitrary integer index that uniquely identifies an
1112         instance of the class."
1113     ::= { dsMeterEntry 1 }
1114
1115 dsMeterSucceedNext OBJECT-TYPE
1116     SYNTAX       Prid
1117     STATUS       current
1118
1119
1120
1121     DESCRIPTION
1122        "If the traffic does conform, this selects  the  next
1123        diffserv functional datapath element to handle
1124        traffic for this data path.
1125
1126        The value zeroDotZero in this variable indicates no
1127        further DiffServ treatment is performed on traffic of
1128        this datapath.  Any other value must point to a valid
1129        (pre-existing) instance of one of:
1130          dsClfrEntry
1131          dsMeterEntry
1132          dsActionEntry
1133          dsAlgDropEntry
1134          dsQEntry."
1135     DEFVAL      { zeroDotZero }
1136     ::= { dsMeterEntry 2 }
1137
1138 dsMeterFailNext OBJECT-TYPE
1139     SYNTAX       Prid
1140     STATUS       current
1141     DESCRIPTION
1142        "If the traffic does not conform, this selects the
1143        next diffserv functional datapath element to handle
1144        traffic for this data path.
1145
1146        The value zeroDotZero in this variable indicates no
1147        further DiffServ treatment is performed on traffic of
1148        this datapath.  Any other value must point to a valid
1149        (pre-existing) instance of one of:
1150          dsClfrEntry
1151          dsMeterEntry
1152          dsActionEntry
1153          dsAlgDropEntry
1154          dsQEntry."
1155     DEFVAL      { zeroDotZero }
1156     ::= { dsMeterEntry 3 }
1157
1158 dsMeterSpecific OBJECT-TYPE
1159     SYNTAX       Prid
1160      STATUS       current
1161     DESCRIPTION
1162        "This indicates the behaviour of the meter by point-
1163        ing to an entry containing detailed parameters. Note
1164        that entries in that specific table must be managed
1165        explicitly.
1166
1167        For example, dsMeterSpecific may point to an
1168        entry in dsTBMeterTable, which contains an
1169
1170
1171
1172        instance of a single set of Token Bucket parameters.
1173
1174        The PRI pointed to must exist prior to installing this
1175        Meter datapath element."
1176     ::= { dsMeterEntry 4 }
1177
1178 --
1179 -- Token-Bucket Parameter Table
1180 --
1181 -- Each entry in the Token Bucket Parameter Table parameterizes
1182 -- a single token bucket.  Multiple token buckets can be
1183 -- used together to parameterize multiple levels of
1184 -- conformance.
1185 --
1186 -- Note that an entry in the Token Bucket Parameter Table can
1187 -- be shared, pointed to, by multiple dsMeterTable entries.
1188 --
1189
1190 dsTBParamTable OBJECT-TYPE
1191     SYNTAX       SEQUENCE OF DsTBParamEntry
1192     PIB-ACCESS   install
1193     STATUS       current
1194     DESCRIPTION
1195        "This table enumerates token-bucket meter parameter sets
1196        that a system may use to police a stream of traffic.
1197        Such parameter sets are modelled here as each having a single
1198        rate and a single burst size.  Multiple entries are used
1199        when multiple rates/burst sizes are needed."
1200     REFERENCE
1201         "An Informal Management Model for Diffserv Routers,
1202         RFC 3290, section 5.1"
1203     ::= { dsPolicyClasses 5 }
1204
1205 dsTBParamEntry OBJECT-TYPE
1206     SYNTAX       DsTBParamEntry
1207     STATUS       current
1208     DESCRIPTION
1209        "An entry that describes a single token-bucket
1210        parameter set."
1211     PIB-INDEX { dsTBParamPrid }
1212     UNIQUENESS { dsTBParamType,
1213                  dsTBParamRate,
1214                  dsTBParamBurstSize,
1215                  dsTBParamInterval }
1216     ::= { dsTBParamTable 1 }
1217
1218 DsTBParamEntry ::= SEQUENCE  {
1219     dsTBParamPrid            InstanceId,
1220
1221
1222
1223     dsTBParamType            AutonomousType,
1224     dsTBParamRate            Unsigned32,
1225     dsTBParamBurstSize       BurstSize,
1226     dsTBParamInterval        Unsigned32
1227 }
1228
1229 dsTBParamPrid OBJECT-TYPE
1230     SYNTAX       InstanceId
1231     STATUS       current
1232     DESCRIPTION
1233        "An arbitrary integer index that uniquely identifies an
1234         instance of the class."
1235     ::= { dsTBParamEntry 1 }
1236
1237 dsTBParamType OBJECT-TYPE
1238     SYNTAX       AutonomousType
1239     STATUS       current
1240     DESCRIPTION
1241       "The Metering algorithm associated with the
1242       Token-Bucket parameters.  zeroDotZero indicates this
1243       is unknown.
1244
1245       Standard values for generic algorithms are as follows:
1246
1247       diffServTBParamSimpleTokenBucket, diffServTBParamAvgRate,
1248       diffServTBParamSrTCMBlind, diffServTBParamSrTCMAware,
1249       diffServTBParamTrTCMBlind, diffServTBParamTrTCMAware,
1250       diffServTBParamTswTCM
1251
1252       These are specified in the DiffServ MIB."
1253     REFERENCE
1254         "An Informal Management Model for Diffserv Routers,
1255         RFC 3290, section 5.1"
1256     ::= { dsTBParamEntry 2 }
1257
1258 dsTBParamRate OBJECT-TYPE
1259     SYNTAX       Unsigned32  (1..4294967295)
1260     UNITS        "kilobits per second"
1261     STATUS       current
1262     DESCRIPTION
1263        "The token-bucket rate, in kilobits per second
1264        (kbps).  This attribute is used for:
1265        1. CIR in RFC 2697 for srTCM
1266        2. CIR and PIR in RFC 2698 for trTCM
1267        3. CTR and PTR in RFC 2859 for TSWTCM
1268        4. AverageRate in RFC 3290, section 5.1.1"
1269     ::= { dsTBParamEntry 3 }
1270
1271
1272
1273
1274 dsTBParamBurstSize OBJECT-TYPE
1275     SYNTAX       BurstSize
1276     UNITS        "Bytes"
1277     STATUS       current
1278     DESCRIPTION
1279        "The maximum number of bytes in a single transmission
1280        burst.  This attribute is used for:
1281        1. CBS and EBS in RFC 2697 for srTCM
1282        2. CBS and PBS in RFC 2698 for trTCM
1283        3. Burst Size in RFC 3290, section 5."
1284     ::= { dsTBParamEntry 4 }
1285
1286 dsTBParamInterval OBJECT-TYPE
1287     SYNTAX       Unsigned32  (1..4294967295)
1288     UNITS        "microseconds"
1289     STATUS       current
1290     DESCRIPTION
1291        "The time interval used with the token bucket.  For:
1292        1. Average Rate Meter, RFC 3290, section 5.1.1,
1293          -Delta.
1294        2. Simple Token Bucket Meter, RFC 3290, section
1295           5.1.3, - time interval t.
1296        3. RFC 2859  TSWTCM, -  AVG_INTERVAL.
1297        4. RFC 2697 srTCM, RFC 2698 trTCM, - token
1298           bucket update time interval."
1299     ::= { dsTBParamEntry 5 }
1300
1301 --
1302 -- Actions
1303 --
1304
1305 --
1306 -- The Action Table allows enumeration of the different
1307 -- types of actions to be applied to a traffic flow.
1308 --
1309
1310 dsActionTable OBJECT-TYPE
1311     SYNTAX       SEQUENCE OF DsActionEntry
1312     PIB-ACCESS   install
1313     STATUS       current
1314     DESCRIPTION
1315        "The Action Table enumerates actions that can be per-
1316        formed to a stream of traffic.  Multiple actions can
1317        be concatenated.
1318
1319        Specific actions are indicated by dsAction-
1320        Specific which points to an entry of a specific
1321        action type parameterizing the action in detail."
1322
1323
1324
1325     REFERENCE
1326         "An Informal Management Model for Diffserv Routers,
1327         RFC 3290, section 6."
1328     ::= { dsPolicyClasses 6 }
1329
1330 dsActionEntry OBJECT-TYPE
1331     SYNTAX       DsActionEntry
1332     STATUS       current
1333     DESCRIPTION
1334        "Each entry in the action table allows description of
1335        one specific action to be applied to traffic."
1336     PIB-INDEX { dsActionPrid }
1337     UNIQUENESS { dsActionNext,
1338                  dsActionSpecific }
1339     ::= { dsActionTable 1 }
1340
1341 DsActionEntry ::= SEQUENCE  {
1342     dsActionPrid              InstanceId,
1343     dsActionNext              Prid,
1344     dsActionSpecific          Prid
1345 }
1346
1347 dsActionPrid OBJECT-TYPE
1348     SYNTAX       InstanceId
1349     STATUS       current
1350     DESCRIPTION
1351        "An arbitrary integer index that uniquely identifies an
1352         instance of the class."
1353     ::= { dsActionEntry 1 }
1354
1355 dsActionNext OBJECT-TYPE
1356     SYNTAX       Prid
1357     STATUS       current
1358     DESCRIPTION
1359        "This selects the next diffserv functional datapath
1360        element to handle traffic for this data path.
1361
1362        The value zeroDotZero in this variable indicates no
1363        further DiffServ treatment is performed on traffic of
1364        this datapath.  Any other value must point to a valid
1365        (pre-existing) instance of one of:
1366          dsClfrEntry
1367          dsMeterEntry
1368          dsActionEntry
1369          dsAlgDropEntry
1370          dsQEntry."
1371     DEFVAL      { zeroDotZero }
1372     ::= { dsActionEntry 2 }
1373
1374
1375
1376
1377 dsActionSpecific OBJECT-TYPE
1378     SYNTAX       Prid
1379     STATUS       current
1380     DESCRIPTION
1381        "A pointer to an object instance providing additional
1382        information for the type of action indicated by this
1383        action table entry.
1384
1385        For the standard actions defined by this PIB module,
1386        this should point to an instance of dsDscpMarkActEntry.
1387        For other actions, it may point to an instance of a
1388        PRC defined in some other PIB.
1389
1390        The PRI pointed to must exist prior to installing this
1391        action datapath entry."
1392     ::= { dsActionEntry 3 }
1393
1394 -- DSCP Mark Action Table
1395 --
1396 -- Rows of this class are pointed to by dsActionSpecific
1397 -- to provide detailed parameters specific to the DSCP
1398 -- Mark action.
1399 -- This class should at most contain one entry for each supported
1400 -- DSCP value.  These entries should be reused by different
1401 -- dsActionEntry in same or different data paths.
1402 --
1403
1404 dsDscpMarkActTable OBJECT-TYPE
1405     SYNTAX       SEQUENCE OF DsDscpMarkActEntry
1406     PIB-ACCESS   install
1407     STATUS       current
1408     DESCRIPTION
1409        "This class enumerates specific DSCPs used for marking or
1410        remarking the DSCP field of IP packets. The entries of this
1411        table may be referenced by a dsActionSpecific attribute."
1412     REFERENCE
1413         "An Informal Management Model for Diffserv Routers,
1414         RFC 3290, section 6.1"
1415     ::= { dsPolicyClasses 7 }
1416
1417 dsDscpMarkActEntry OBJECT-TYPE
1418     SYNTAX       DsDscpMarkActEntry
1419     STATUS       current
1420     DESCRIPTION
1421       "An entry in the DSCP mark action table that describes a
1422       single DSCP used for marking."
1423     PIB-INDEX { dsDscpMarkActPrid }
1424
1425
1426
1427     UNIQUENESS { dsDscpMarkActDscp }
1428     ::= { dsDscpMarkActTable 1 }
1429
1430 DsDscpMarkActEntry ::= SEQUENCE  {
1431     dsDscpMarkActPrid          InstanceId,
1432     dsDscpMarkActDscp          Dscp
1433 }
1434
1435 dsDscpMarkActPrid OBJECT-TYPE
1436     SYNTAX       InstanceId
1437     STATUS       current
1438     DESCRIPTION
1439        "An arbitrary integer index that uniquely identifies an
1440         instance of the class."
1441     ::= { dsDscpMarkActEntry 1 }
1442
1443 dsDscpMarkActDscp OBJECT-TYPE
1444     SYNTAX       Dscp
1445     STATUS       current
1446     DESCRIPTION
1447        "The DSCP that this Action uses for marking/remarking
1448        traffic.  Note that a DSCP value of -1 is not permit-
1449        ted in this class.  It is quite possible that the
1450        only packets subject to this Action are already
1451        marked with this DSCP.  Note also that DiffServ may
1452        result in packet remarking both on ingress to a net-
1453        work and on egress from it and it is quite possible
1454        that ingress and egress would occur in the same
1455        router."
1456     ::= { dsDscpMarkActEntry 2 }
1457
1458 --
1459 -- Algorithmic Drop Table
1460 --
1461
1462 -- Algorithmic Drop Table is the entry point for the Algorithmic
1463 -- Dropper functional data path element.
1464
1465 -- For a simple algorithmic dropper, a single algorithmic drop entry
1466 -- will be sufficient to parameterize the dropper.
1467
1468 -- For more complex algorithmic dropper, the dsAlgDropSpecific
1469 -- attribute can be used to reference an entry in a parameter table,
1470 -- e.g., dsRandomDropTable for random dropper.
1471
1472 -- For yet more complex dropper, for example, dropper that measures
1473 -- multiple queues, each queue with its own algorithm, can use a
1474 -- dsAlgDropTable entry as the entry point for Algorithmic Dropper
1475
1476
1477
1478 -- functional data path element, leaving the dropper parameters
1479 -- for each queue be specified by entries of dsMQAlgDropTable.
1480 -- In such usage, the anchoring dsAlgDropEntry's dsAlgDropType
1481 -- should be mQDrop, and its dsAlgDropQMeasure should reference
1482 -- the subsequent dsMQAlgDropEntry's, its dsAlgDropSpecific
1483 -- should be used to reference parameters applicable to all the
1484 -- queues being measured.
1485 -- The subsequent dsMQAlgDropEntry's will provide the parameters,
1486 -- one for each queue being measured.  The dsMQAlgDropEntry's are
1487 -- chained using their dsMQAlgDropNext attributes.
1488 --
1489
1490 dsAlgDropTable OBJECT-TYPE
1491     SYNTAX       SEQUENCE OF DsAlgDropEntry
1492     PIB-ACCESS   install
1493     STATUS       current
1494     DESCRIPTION
1495        "The algorithmic drop table contains entries describ-
1496        ing a functional data path element that drops
1497        packets according to some algorithm."
1498     REFERENCE
1499         "An Informal Management Model for Diffserv Routers,
1500         RFC 3290, section 7.1.3"
1501     ::= { dsPolicyClasses 8 }
1502
1503 dsAlgDropEntry OBJECT-TYPE
1504     SYNTAX       DsAlgDropEntry
1505     STATUS       current
1506     DESCRIPTION
1507        "An entry describes a process that drops packets
1508        according to some algorithm.  Further details of the
1509        algorithm type are to be found in dsAlgDropType
1510        and with more detail parameter entry pointed to by
1511        dsAlgDropSpecific when necessary."
1512     PIB-INDEX { dsAlgDropPrid }
1513     UNIQUENESS { dsAlgDropType,
1514                  dsAlgDropNext,
1515                  dsAlgDropQMeasure,
1516                  dsAlgDropQThreshold,
1517                  dsAlgDropSpecific }
1518     ::= { dsAlgDropTable 1 }
1519
1520 DsAlgDropEntry ::= SEQUENCE  {
1521     dsAlgDropPrid             InstanceId,
1522     dsAlgDropType             INTEGER,
1523     dsAlgDropNext             Prid,
1524     dsAlgDropQMeasure         Prid,
1525     dsAlgDropQThreshold       Unsigned32,
1526
1527
1528
1529     dsAlgDropSpecific         Prid
1530 }
1531
1532 dsAlgDropPrid OBJECT-TYPE
1533     SYNTAX       InstanceId
1534     STATUS       current
1535     DESCRIPTION
1536        "An arbitrary integer index that uniquely identifies an
1537         instance of the class."
1538     ::= { dsAlgDropEntry 1 }
1539
1540 dsAlgDropType OBJECT-TYPE
1541     SYNTAX       INTEGER {
1542                      other(1),
1543                      tailDrop(2),
1544                      headDrop(3),
1545                      randomDrop(4),
1546                      alwaysDrop(5),
1547                      mQDrop(6)
1548                  }
1549     STATUS       current
1550     DESCRIPTION
1551        "The type of algorithm used by this dropper. A value
1552        of tailDrop(2), headDrop(3), or alwaysDrop(5) represents
1553        an algorithm that is completely specified by this PIB.
1554
1555        A value of other(1) indicates that the specifics of
1556        the drop algorithm are specified in some other PIB
1557        module, and that the dsAlgDropSpecific attribute
1558        points to an instance of a PRC in that PIB that
1559        specifies the information necessary to implement the
1560        algorithm.
1561
1562        The tailDrop(2) algorithm is described as follows:
1563        dsAlgDropQThreshold represents the depth of the
1564        queue, pointed to by dsAlgDropQMeasure, at
1565        which all newly arriving packets will be dropped.
1566
1567        The headDrop(3) algorithm is described as follows: if
1568        a packet arrives when the current depth of the queue,
1569        pointed to by dsAlgDropQMeasure, is at
1570        dsAlgDropQThreshold, packets currently at the head of
1571        the queue are dropped to make room for the new packet
1572        to be enqueued at the tail of the queue.
1573
1574        The randomDrop(4) algorithm is described as follows:
1575        on packet arrival, an algorithm is executed which may
1576        randomly drop the packet, or drop other packet(s)
1577
1578
1579
1580        from the queue in its place.  The specifics of the
1581        algorithm may be proprietary.  For this algorithm,
1582        dsAlgDropSpecific points to a dsRandomDropEntry
1583        that describes the algorithm.  For this
1584        algorithm, dsAlgQThreshold is understood to be
1585        the absolute maximum size of the queue and additional
1586        parameters are described in dsRandomDropTable.
1587
1588        The alwaysDrop(5) algorithm always drops packets. In
1589        this case, the other configuration values in this Entry
1590        are not meaningful; The queue is not used, therefore,
1591        dsAlgDropNext, dsAlgDropQMeasure, and
1592        dsAlgDropSpecific should be all set to zeroDotZero.
1593
1594        The mQDrop(6) algorithm measures multiple queues for
1595        the drop algorithm.  The queues measured are represented
1596        by having dsAlgDropQMeasure referencing a dsMQAlgDropEntry.
1597        Each of the chained dsMQAlgDropEntry is used to describe
1598        the drop algorithm for one of the measured queues."
1599
1600     ::= { dsAlgDropEntry 2 }
1601
1602 dsAlgDropNext OBJECT-TYPE
1603     SYNTAX       Prid
1604     STATUS       current
1605     DESCRIPTION
1606        "This selects the next diffserv functional datapath
1607        element to handle traffic for this data path.
1608
1609        The value zeroDotZero in this attribute indicates no
1610        further DiffServ treatment is performed on traffic of
1611        this datapath.  Any other value must point to a valid
1612        (pre-existing) instance of one of:
1613          dsClfrEntry
1614          dsMeterEntry
1615          dsActionEntry
1616          dsAlgDropEntry
1617          dsQEntry.
1618
1619        When dsAlgDropType is alwaysDrop(5), this attribute is
1620        Ignored."
1621     DEFVAL      { zeroDotZero }
1622     ::= { dsAlgDropEntry 3 }
1623
1624 dsAlgDropQMeasure OBJECT-TYPE
1625     SYNTAX       Prid
1626     STATUS       current
1627     DESCRIPTION
1628
1629
1630
1631        "Points to a PRI to indicate the queues that a drop algorithm
1632        is to monitor when deciding whether to drop a packet.
1633
1634        For alwaysDrop(5), this attribute should be zeroDotZero.
1635        For tailDrop(2), headDrop(3), randomDrop(4), this should
1636        point to an entry in the dsQTable.
1637        For mQDrop(6), this should point to a dsMQAlgDropEntry that
1638        Describe one of the queues being measured for multiple
1639        queue dropper.
1640
1641        The PRI pointed to must exist prior to installing
1642        this dropper element."
1643     ::= { dsAlgDropEntry 4 }
1644
1645 dsAlgDropQThreshold OBJECT-TYPE
1646     SYNTAX       Unsigned32  (1..4294967295)
1647     UNITS        "Bytes"
1648     STATUS       current
1649     DESCRIPTION
1650        "A threshold on the depth in bytes of the queue being
1651        measured at which a trigger is generated to the drop-
1652        ping algorithm, unless dsAlgDropType is alwaysDrop(5)
1653        where this attribute is ignored.
1654
1655        For the tailDrop(2) or headDrop(3) algorithms, this
1656        represents the depth of the queue, pointed to by
1657        dsAlgDropQMeasure, at which the drop action
1658        will take place. Other algorithms will need to define
1659        their own semantics for this threshold."
1660     ::= { dsAlgDropEntry 5 }
1661
1662 dsAlgDropSpecific OBJECT-TYPE
1663     SYNTAX       Prid
1664     STATUS       current
1665     DESCRIPTION
1666        "Points to a table entry that provides further detail
1667        regarding a drop algorithm.  The PRI pointed to
1668        must exist prior to installing this dropper element.
1669
1670        Entries with dsAlgDropType equal to other(1) must
1671        have this point to an instance of a PRC defined
1672        in another PIB module.
1673
1674        Entries with dsAlgDropType equal to random-
1675        Drop(4) must have this point to an entry in
1676        dsRandomDropTable.
1677
1678        Entries with dsAlgDropType equal to mQDrop(6) can use this
1679
1680
1681
1682        attribute to reference parameters that is used by all the
1683        queues of the multiple queues being measured.
1684
1685        For all other algorithms, this should take the value
1686        zeroDotZero."
1687     ::= { dsAlgDropEntry 6 }
1688
1689 --
1690 -- Multiple Queue Algorithmic Drop Table
1691 --
1692 -- Entries of this table should be referenced by dsAlgDropQMeasure
1693 -- when dsAlgDropType is mQDrop(6) for droppers measuring multiple
1694 -- queues for its drop algorithm.
1695 -- Each entry of the table is used to describe the drop algorithm
1696 -- for a single queue within the multiple queues being measured.
1697 --
1698 -- Entries of this table, dsMQAlgDropEntry, is extended from
1699 -- dsAlgDropEntry, with usage of corresponding parameters the same
1700 -- except:
1701 --   dsAlgDropNext is used to point to the next diffserv
1702 --     functional data path element when the packet is not dropped.
1703 --   dsMQAlgDropExceedNext is used to point to the next
1704 --     dsMQAlgDropEntry for chaining together the multiple
1705 --     dsMQAlgDropEntry's for the multiple queues being measured.
1706 --
1707
1708 dsMQAlgDropTable OBJECT-TYPE
1709     SYNTAX       SEQUENCE OF DsMQAlgDropEntry
1710     PIB-ACCESS   install
1711     STATUS       current
1712     DESCRIPTION
1713        "The multiple queue algorithmic drop table contains entries
1714        describing each queue being measured for the multiple queue
1715        algorithmic dropper."
1716     ::= { dsPolicyClasses 9 }
1717
1718 dsMQAlgDropEntry OBJECT-TYPE
1719     SYNTAX       DsMQAlgDropEntry
1720     STATUS       current
1721     DESCRIPTION
1722        "An entry describes a process that drops packets
1723        according to some algorithm.  Each entry is used for
1724        each of the multiple queues being measured.  Each entry
1725        extends the basic dsAlgDropEntry with adding of a
1726        dsMQAlgDropExceedNext attribute.
1727
1728        Further details of the algorithm type are to be found in
1729        dsAlgDropType and with more detail parameter entry pointed
1730
1731
1732
1733        to by dsMQAlgDropSpecific when necessary."
1734     EXTENDS { dsAlgDropEntry }
1735     UNIQUENESS { dsMQAlgDropExceedNext }
1736     ::= { dsMQAlgDropTable 1 }
1737
1738 DsMQAlgDropEntry ::= SEQUENCE  {
1739     dsMQAlgDropExceedNext     Prid
1740 }
1741
1742 dsMQAlgDropExceedNext OBJECT-TYPE
1743     SYNTAX       Prid
1744     STATUS       current
1745     DESCRIPTION
1746        "Used for linking of multiple dsMQAlgDropEntry for mQDrop.
1747        A value of zeroDotZero indicates this is the last of a
1748        chain of dsMQAlgDropEntry."
1749     DEFVAL      { zeroDotZero }
1750     ::= { dsMQAlgDropEntry 1 }
1751
1752 --
1753 -- Random Drop Table
1754 --
1755
1756 dsRandomDropTable OBJECT-TYPE
1757     SYNTAX       SEQUENCE OF DsRandomDropEntry
1758     PIB-ACCESS   install
1759     STATUS       current
1760     DESCRIPTION
1761        "The random drop table contains entries describing a
1762        process that drops packets randomly. Entries in this
1763        table is intended to be pointed to by dsAlgDropSpecific
1764        when dsAlgDropType is randomDrop(4)."
1765     REFERENCE
1766         "An Informal Management Model for Diffserv Routers,
1767         RFC 3290, section 7.1.3"
1768     ::= { dsPolicyClasses 10 }
1769
1770 dsRandomDropEntry OBJECT-TYPE
1771     SYNTAX       DsRandomDropEntry
1772     STATUS       current
1773     DESCRIPTION
1774        "An entry describes a process that drops packets
1775        according to a random algorithm."
1776     PIB-INDEX { dsRandomDropPrid }
1777     UNIQUENESS { dsRandomDropMinThreshBytes,
1778                  dsRandomDropMinThreshPkts,
1779                  dsRandomDropMaxThreshBytes,
1780                  dsRandomDropMaxThreshPkts,
1781
1782
1783
1784                  dsRandomDropProbMax,
1785                  dsRandomDropWeight,
1786                  dsRandomDropSamplingRate
1787                }
1788     ::= { dsRandomDropTable 1 }
1789
1790 DsRandomDropEntry ::= SEQUENCE  {
1791     dsRandomDropPrid             InstanceId,
1792     dsRandomDropMinThreshBytes   Unsigned32,
1793     dsRandomDropMinThreshPkts    Unsigned32,
1794     dsRandomDropMaxThreshBytes   Unsigned32,
1795     dsRandomDropMaxThreshPkts    Unsigned32,
1796     dsRandomDropProbMax          Unsigned32,
1797     dsRandomDropWeight           Unsigned32,
1798     dsRandomDropSamplingRate     Unsigned32
1799 }
1800
1801 dsRandomDropPrid OBJECT-TYPE
1802     SYNTAX       InstanceId
1803     STATUS       current
1804     DESCRIPTION
1805        "An arbitrary integer index that uniquely identifies an
1806         instance of the class."
1807     ::= { dsRandomDropEntry 1 }
1808
1809 dsRandomDropMinThreshBytes OBJECT-TYPE
1810     SYNTAX       Unsigned32  (1..4294967295)
1811     UNITS        "bytes"
1812     STATUS       current
1813     DESCRIPTION
1814        "The average queue depth in bytes, beyond which traffic has a
1815        non-zero probability of being dropped."
1816      ::= { dsRandomDropEntry 2 }
1817
1818 dsRandomDropMinThreshPkts OBJECT-TYPE
1819     SYNTAX       Unsigned32  (1..4294967295)
1820     UNITS        "packets"
1821     STATUS       current
1822     DESCRIPTION
1823       "The average queue depth in packets, beyond which traffic has
1824       a non-zero probability of being dropped."
1825     ::= { dsRandomDropEntry 3 }
1826
1827 dsRandomDropMaxThreshBytes OBJECT-TYPE
1828     SYNTAX       Unsigned32  (1..4294967295)
1829     UNITS        "bytes"
1830     STATUS       current
1831     DESCRIPTION
1832
1833
1834
1835       "The average queue depth beyond which traffic has a
1836       probability indicated by dsRandomDropProbMax of being dropped
1837       or marked.  Note that this differs from the physical queue
1838       limit, which is stored in dsAlgDropQThreshold."
1839     ::= { dsRandomDropEntry 4 }
1840
1841 dsRandomDropMaxThreshPkts OBJECT-TYPE
1842     SYNTAX       Unsigned32  (1..4294967295)
1843     UNITS        "packets"
1844     STATUS       current
1845     DESCRIPTION
1846       "The average queue depth beyond which traffic has a
1847       probability indicated by dsRandomDropProbMax of being dropped
1848       or marked.  Note that this differs from the physical queue
1849       limit, which is stored in dsAlgDropQThreshold."
1850     ::= { dsRandomDropEntry 5 }
1851
1852 dsRandomDropProbMax OBJECT-TYPE
1853     SYNTAX       Unsigned32  (0..1000)
1854     STATUS       current
1855     DESCRIPTION
1856       "The worst case random drop probability, expressed in drops
1857       per thousand packets.
1858
1859       For example, if every packet may be dropped in the worst case
1860       (100%), this has the value 1000. Alternatively, if in the
1861       worst case one percent (1%) of traffic may be dropped, it has
1862       the value 10."
1863     ::= { dsRandomDropEntry 6 }
1864
1865 dsRandomDropWeight OBJECT-TYPE
1866     SYNTAX       Unsigned32  (0..4294967295)
1867     STATUS       current
1868     DESCRIPTION
1869       "The weighting of past history in affecting the Exponentially
1870       Weighted Moving Average function which calculates the current
1871       average queue depth.  The equation uses
1872       dsRandomDropWeight/MaxValue as the coefficient for the new
1873       sample in the equation, and
1874       (MaxValue - dsRandomDropWeight)/MaxValue as the coefficient
1875       of the old value, where, MaxValue is determined via capability
1876       reported by the PEP.
1877
1878       Implementations may further limit the values of
1879       dsRandomDropWeight via the capability tables."
1880     ::= { dsRandomDropEntry 7 }
1881
1882 dsRandomDropSamplingRate OBJECT-TYPE
1883
1884
1885
1886     SYNTAX       Unsigned32  (0..1000000)
1887     STATUS       current
1888     DESCRIPTION
1889       "The number of times per second the queue is sampled for queue
1890       average calculation. A value of zero means the queue is
1891       sampled approximately each time a packet is enqueued (or
1892       dequeued)."
1893     ::= { dsRandomDropEntry 8 }
1894
1895 --
1896 -- Queue Table
1897 --
1898
1899 --
1900 -- An entry of dsQTable represents a FIFO queue diffserv
1901 -- functional data path element as described in [MODEL] section
1902 -- 7.1.1.
1903 -- Notice the specification of scheduling parameters for a queue
1904 -- as part of the input to a scheduler functional data path
1905 -- element as described in [MODEL] section 7.1.2.  This allows
1906 -- building of hierarchical queuing/scheduling.
1907 -- A queue therefore is parameterized by:
1908 -- 1. Which scheduler will service this queue, dsQNext.
1909 -- 2. How the scheduler will service this queue, with respect
1910 --    to all the other queues the same scheduler needs to service,
1911 --    dsQMinRate and dsQMaxRate.
1912 --
1913 -- Notice one or more upstream diffserv functional data path element
1914 -- may share, point to, a dsQTable entry as described in [MODEL]
1915 -- section 7.1.1.
1916 --
1917
1918 dsQTable OBJECT-TYPE
1919     SYNTAX       SEQUENCE OF DsQEntry
1920     PIB-ACCESS   install
1921     STATUS       current
1922     DESCRIPTION
1923     "The Queue Table enumerates the queues."
1924     ::= { dsPolicyClasses 11 }
1925
1926 dsQEntry OBJECT-TYPE
1927     SYNTAX       DsQEntry
1928     STATUS       current
1929     DESCRIPTION
1930        "An entry in the Queue Table describes a single queue
1931        as a functional data path element."
1932     PIB-INDEX { dsQPrid }
1933     UNIQUENESS { dsQNext,
1934
1935
1936
1937                  dsQMinRate,
1938                  dsQMaxRate }
1939     ::= { dsQTable 1 }
1940
1941 DsQEntry ::= SEQUENCE  {
1942     dsQPrid                    InstanceId,
1943     dsQNext                    Prid,
1944     dsQMinRate                 Prid,
1945     dsQMaxRate                 Prid
1946 }
1947
1948 dsQPrid OBJECT-TYPE
1949     SYNTAX       InstanceId
1950     STATUS       current
1951     DESCRIPTION
1952         "An arbitrary integer index that uniquely identifies an
1953         instance of the class."
1954     ::= { dsQEntry 1 }
1955
1956 dsQNext OBJECT-TYPE
1957     SYNTAX       Prid
1958     STATUS       current
1959     DESCRIPTION
1960        "This selects the next diffserv scheduler.  This must point
1961        to a dsSchedulerEntry.
1962
1963        A value of zeroDotZero in this attribute indicates an
1964        incomplete dsQEntry instance.  In such a case, the entry
1965        has no operational effect, since it has no parameters to
1966        give it meaning."
1967     ::= { dsQEntry 2 }
1968
1969 dsQMinRate OBJECT-TYPE
1970     SYNTAX       Prid
1971     STATUS       current
1972     DESCRIPTION
1973        "This Prid indicates the entry in dsMinRateTable
1974        the scheduler, pointed to by dsQNext, should use to service
1975        this queue.
1976        If this value is zeroDotZero
1977        then minimum rate and priority is unspecified.
1978        If this value is not zeroDotZero then the instance pointed to
1979        must exist prior to installing this entry."
1980     ::= { dsQEntry 3 }
1981
1982 dsQMaxRate OBJECT-TYPE
1983     SYNTAX       Prid
1984     STATUS       current
1985
1986
1987
1988     DESCRIPTION
1989        "This Prid indicates the entry in dsMaxRateTable
1990        the scheduler, pointed to by dsQNext, should use to service
1991        this queue.
1992        If this value is zeroDotZero, then the maximum rate is the
1993        line speed of the interface.
1994        If this value is not zeroDotZero, then the instance pointed
1995        to must exist prior to installing this entry."
1996     ::= { dsQEntry 4 }
1997
1998 --
1999 -- Scheduler Table
2000 --
2001 --
2002 -- The Scheduler Table is used for representing packet schedulers:
2003 -- it provides flexibility for multiple scheduling algorithms, each
2004 -- servicing multiple queues, to be used on the same
2005 -- logical/physical interface of a data path.
2006 --
2007 -- Notice the servicing parameters the scheduler uses is
2008 -- specified by each of its upstream functional data path elements,
2009 -- queues or schedulers of this PIB.
2010 -- The coordination and coherency between the servicing parameters
2011 -- of the scheduler's upstream functional data path elements must
2012 -- be maintained for the scheduler to function correctly.
2013 --
2014 -- The dsSchedulerMinRate and dsSchedulerMaxRate attributes are
2015 -- used for specifying the servicing parameters for output of a
2016 -- scheduler when its downstream functional data path element
2017 -- is another scheduler.
2018 -- This is used for building hierarchical queue/scheduler.
2019 --
2020 -- More discussion of the scheduler functional data path element
2021 -- is in [MODEL] section 7.1.2.
2022 --
2023
2024 dsSchedulerTable OBJECT-TYPE
2025     SYNTAX       SEQUENCE OF DsSchedulerEntry
2026     PIB-ACCESS   install
2027     STATUS       current
2028     DESCRIPTION
2029        "The Scheduler Table enumerates packet schedulers.
2030        Multiple scheduling algorithms can be used on a given
2031        datapath, with each algorithm described by one
2032        dsSchedulerEntry."
2033     REFERENCE
2034         "An Informal Management Model for Diffserv Routers,
2035         RFC 3290, section 7.1.2"
2036
2037
2038
2039     ::= { dsPolicyClasses 12 }
2040
2041 dsSchedulerEntry OBJECT-TYPE
2042     SYNTAX       DsSchedulerEntry
2043     STATUS       current
2044     DESCRIPTION
2045        "An entry in the Scheduler Table describing a single
2046        instance of a scheduling algorithm."
2047     PIB-INDEX { dsSchedulerPrid }
2048     UNIQUENESS { dsSchedulerNext,
2049                  dsSchedulerMethod,
2050                  dsSchedulerMinRate,
2051                  dsSchedulerMaxRate }
2052     ::= { dsSchedulerTable 1 }
2053
2054 DsSchedulerEntry ::= SEQUENCE  {
2055     dsSchedulerPrid                 InstanceId,
2056     dsSchedulerNext                 Prid,
2057     dsSchedulerMethod               AutonomousType,
2058     dsSchedulerMinRate              Prid,
2059     dsSchedulerMaxRate              Prid
2060 }
2061
2062 dsSchedulerPrid OBJECT-TYPE
2063     SYNTAX       InstanceId
2064     STATUS       current
2065     DESCRIPTION
2066         "An arbitrary integer index that uniquely identifies an
2067         instance of the class."
2068     ::= { dsSchedulerEntry 1 }
2069
2070 dsSchedulerNext OBJECT-TYPE
2071     SYNTAX       Prid
2072     STATUS       current
2073     DESCRIPTION
2074        "This selects the next diffserv functional datapath
2075        element to handle traffic for this data path.
2076
2077        This attribute normally have a value of zeroDotZero to
2078        indicate no further DiffServ treatment is performed on
2079        traffic of this datapath.  The use of zeroDotZero is the
2080        normal usage for the last functional datapath element.
2081        Any value other than zeroDotZero must point to a valid
2082        (pre-existing) instance of one of:
2083          dsSchedulerEntry
2084          dsQEntry,
2085
2086        or:
2087
2088
2089
2090          dsClfrEntry
2091          dsMeterEntry
2092          dsActionEntry
2093          dsAlgDropEntry
2094
2095        This points to another dsSchedulerEntry
2096        for implementation of multiple scheduler methods for
2097        the same data path, and for implementation of
2098        hierarchical schedulers."
2099     DEFVAL       { zeroDotZero }
2100     ::= { dsSchedulerEntry 2 }
2101
2102 dsSchedulerMethod OBJECT-TYPE
2103     SYNTAX       AutonomousType
2104     STATUS       current
2105     DESCRIPTION
2106       "The scheduling algorithm used by this Scheduler.
2107       Standard values for generic algorithms:
2108         diffServSchedulerPriority,
2109         diffServSchedulerWRR,
2110         diffServSchedulerWFQ
2111       are specified in the DiffServ MIB.
2112       Additional values may be further specified in other PIBs.
2113       A value of zeroDotZero indicates this is unknown."
2114     REFERENCE
2115         "An Informal Management Model for Diffserv Routers,
2116         RFC 3290, section 7.1.2"
2117     ::= { dsSchedulerEntry 3 }
2118
2119 dsSchedulerMinRate OBJECT-TYPE
2120     SYNTAX       Prid
2121     STATUS       current
2122     DESCRIPTION
2123       "This Prid indicates the entry in dsMinRateTable
2124        which indicates the priority or minimum output rate from this
2125        scheduler.  This attribute is used only when there is more
2126        than one level of scheduler.
2127
2128        When it has the value zeroDotZero, it indicates that no
2129        Minimum rate or priority is imposed."
2130     DEFVAL      { zeroDotZero }
2131     ::= { dsSchedulerEntry 4 }
2132
2133 dsSchedulerMaxRate OBJECT-TYPE
2134     SYNTAX       Prid
2135     STATUS       current
2136     DESCRIPTION
2137       "This Prid indicates the entry in dsMaxRateTable
2138
2139
2140
2141        which indicates the maximum output rate from this scheduler.
2142        When more than one maximum rate applies (e.g., a multi-rate
2143        shaper is used), it points to the first of the rate entries.
2144        This attribute is only used when there is more than one level
2145        of scheduler.
2146
2147        When it has the value zeroDotZero, it indicates that no
2148        Maximum rate is imposed."
2149      DEFVAL      { zeroDotZero }
2150     ::= { dsSchedulerEntry 5 }
2151
2152 --
2153 -- Minimum Rate Parameters Table
2154 --
2155 -- The parameters used by a scheduler for its inputs or outputs are
2156 -- maintained separately from the Queue or Scheduler table entries
2157 -- for reusability reasons and so that they may be used by both
2158 -- queues and schedulers.  This follows the approach for separation
2159 -- of data path elements from parameterization that is used
2160 -- throughout this PIB.
2161 -- Use of these Minimum Rate Parameter Table entries by Queues and
2162 -- Schedulers allows the modeling of hierarchical scheduling
2163 -- systems.
2164 --
2165 -- Specifically, a Scheduler has one or more inputs and one output.
2166 -- Any queue feeding a scheduler, or any scheduler which feeds a
2167 -- second scheduler, might specify a minimum transfer rate by
2168 -- pointing to a Minimum Rate Parameter Table entry.
2169 --
2170 -- The dsMinRatePriority/Absolute/Relative attributes are used as
2171 -- parameters to the work-conserving portion of a scheduler:
2172 -- "work-conserving" implies that the scheduler can continue to emit
2173 -- data as long as there is data available at its input(s).  This
2174 -- has the effect of guaranteeing a certain priority relative to
2175 -- other scheduler inputs and/or a certain minimum proportion of the
2176 -- available output bandwidth.  Properly configured, this means a
2177 -- certain minimum rate, which may be exceeded should traffic be
2178 -- available should there be spare bandwidth after all other classes
2179 -- have had opportunities to consume their own minimum rates.
2180 --
2181
2182 dsMinRateTable OBJECT-TYPE
2183     SYNTAX       SEQUENCE OF DsMinRateEntry
2184     PIB-ACCESS   install
2185     STATUS       current
2186     DESCRIPTION
2187        "The Minimum Rate Table enumerates individual
2188        sets of scheduling parameter that can be used/reused
2189
2190
2191
2192        by Queues and Schedulers."
2193     ::= { dsPolicyClasses 13 }
2194
2195 dsMinRateEntry OBJECT-TYPE
2196     SYNTAX       DsMinRateEntry
2197     STATUS       current
2198     DESCRIPTION
2199        "An entry in the Minimum Rate Table describes
2200        a single set of scheduling parameter for use by
2201        queues and schedulers."
2202     PIB-INDEX { dsMinRatePrid }
2203     UNIQUENESS { dsMinRatePriority,
2204                  dsMinRateAbsolute,
2205                  dsMinRateRelative }
2206     ::= { dsMinRateTable 1 }
2207
2208 DsMinRateEntry ::= SEQUENCE  {
2209     dsMinRatePrid            InstanceId,
2210     dsMinRatePriority        Unsigned32,
2211     dsMinRateAbsolute        Unsigned32,
2212     dsMinRateRelative        Unsigned32
2213 }
2214
2215 dsMinRatePrid OBJECT-TYPE
2216     SYNTAX       InstanceId
2217     STATUS       current
2218     DESCRIPTION
2219         "An arbitrary integer index that uniquely identifies an
2220         instance of the class."
2221     ::= { dsMinRateEntry 1 }
2222
2223 dsMinRatePriority OBJECT-TYPE
2224     SYNTAX       Unsigned32 (1..4294967295)
2225     STATUS       current
2226     DESCRIPTION
2227       "The priority of this input to the associated scheduler,
2228       relative to the scheduler's other inputs. Higher Priority
2229       value indicates the associated queue/scheduler will get
2230       service first before others with lower Priority values."
2231     ::= { dsMinRateEntry 2 }
2232
2233 dsMinRateAbsolute OBJECT-TYPE
2234     SYNTAX       Unsigned32 (1..4294967295)
2235     UNITS        "kilobits per second"
2236     STATUS       current
2237     DESCRIPTION
2238       "The minimum absolute rate, in kilobits/sec, that a downstream
2239       scheduler element should allocate to this queue. If the value
2240
2241
2242
2243       is zero, then there is effectively no minimum rate guarantee.
2244       If the value is non-zero, the scheduler will assure the
2245       servicing of this queue to at least this rate.
2246
2247       Note that this attribute's value is coupled to that
2248       of dsMinRateRelative:  changes to one will affect the value
2249       of the other.
2250
2251       [IFMIB] defines ifSpeed as Gauge32 in units of bits per
2252       second, and ifHighSpeed as Gauge32 in units of 1,000,000 bits
2253       per second.
2254       This yields the following equations:
2255
2256       RateRelative  = [ (RateAbsolute * 1000) / ifSpeed ] * 1,000
2257
2258       Where, 1000 is for converting kbps used by RateAbsolute to bps
2259       used by ifSpeed, 1,000 is for 'in units of 1/1,000 of 1' for
2260       RateRelative.
2261
2262       or, if appropriate:
2263
2264       RateRelative  =
2265          { [ (RateAbsolute * 1000) / 1,000,000 ] / ifHIghSpeed } *
2266          1,000
2267
2268       Where, 1000 and 1,000,000 is for converting kbps used by
2269       RateAbsolute to 1 million bps used by ifHighSpeed, 1,000 is
2270       for 'in units of 1/1,000 of 1' for RateRelative."
2271     REFERENCE
2272         "ifSpeed, ifHighSpeed from the IF-MIB, RFC 2863."
2273     ::= { dsMinRateEntry 3 }
2274
2275 dsMinRateRelative OBJECT-TYPE
2276     SYNTAX       Unsigned32 (1..4294967295)
2277     STATUS       current
2278     DESCRIPTION
2279       "The minimum rate that a downstream scheduler element
2280       should allocate to this queue, relative to the max-
2281       imum rate of the interface as reported by ifSpeed or
2282       ifHighSpeed, in units of 1/1,000 of 1.  If the value
2283       is zero, then there is effectively no minimum rate
2284       guarantee.   If the value is non-zero, the scheduler
2285       will assure the servicing of this queue to at least
2286       this rate.
2287
2288       Note that this attribute's value is coupled to that
2289       of dsMinRateAbsolute:  changes to one will
2290       affect the value of the other.
2291
2292
2293
2294
2295       [IFMIB] defines ifSpeed as Gauge32 in units of bits per
2296       second, and ifHighSpeed as Gauge32 in units of 1,000,000 bits
2297       per second.
2298       This yields the following equations:
2299
2300       RateRelative  = [ (RateAbsolute * 1000) / ifSpeed ] * 1,000
2301
2302       Where, 1000 is for converting kbps used by RateAbsolute to bps
2303       used by ifSpeed, 1,000 is for 'in units of 1/1,000 of 1' for
2304       RateRelative.
2305
2306       or, if appropriate:
2307
2308       RateRelative  =
2309          { [ (RateAbsolute * 1000) / 1,000,000 ] / ifHIghSpeed } *
2310          1,000
2311
2312       Where, 1000 and 1,000,000 is for converting kbps used by
2313       RateAbsolute to 1 million bps used by ifHighSpeed, 1,000 is
2314       for 'in units of 1/1,000 of 1' for RateRelative."
2315     REFERENCE
2316         "ifSpeed, ifHighSpeed from the IF-MIB, RFC 2863."
2317     ::= { dsMinRateEntry 4 }
2318
2319 --
2320 -- Maximum Rate Parameters Table
2321 --
2322 -- The parameters used by a scheduler for its inputs or outputs are
2323 -- maintained separately from the Queue or Scheduler table entries
2324 -- for reusability reasons and so that they may be used by both
2325 -- queues and schedulers.  This follows the approach for separation
2326 -- of data path elements from parameterization that is used
2327 -- throughout this PIB.
2328 --
2329 -- Use of these Maximum Rate Parameter Table entries by Queues and
2330 -- Schedulers allows the modeling of hierarchical scheduling
2331 -- systems.
2332 --
2333 -- Specifically, a Scheduler has one or more inputs and one output.
2334 -- Any queue feeding a scheduler, or any scheduler which feeds a
2335 -- second scheduler, might specify a maximum transfer rate by
2336 -- pointing to a Maximum Rate Parameter Table entry.  Multi-rate
2337 -- shapers, such as a Dual Leaky Bucket algorithm, specify their
2338 -- rates using multiple Maximum Rate Parameter Entries with the same
2339 -- dsMaxRateId but different dsMaxRateLevels.
2340 --
2341 -- The dsMaxRateLevel/Absolute/Relative attributes are used as
2342
2343
2344
2345 -- parameters to the non-work-conserving portion of a scheduler:
2346 -- non-work-conserving implies that the scheduler may sometimes not
2347 -- emit a packet, even if there is data available at its input(s).
2348 -- This has the effect of limiting the servicing of the
2349 -- queue/scheduler input or output, in effect performing shaping of
2350 -- the packet stream passing through the queue/scheduler, as
2351 -- described in the Informal Differentiated Services Model
2352 -- section 7.2.
2353 --
2354
2355 dsMaxRateTable OBJECT-TYPE
2356     SYNTAX       SEQUENCE OF DsMaxRateEntry
2357     PIB-ACCESS   install
2358     STATUS       current
2359     DESCRIPTION
2360        "The Maximum Rate Table enumerates individual
2361        sets of scheduling parameter that can be used/reused
2362        by Queues and Schedulers."
2363     ::= { dsPolicyClasses 14 }
2364
2365 dsMaxRateEntry OBJECT-TYPE
2366     SYNTAX       DsMaxRateEntry
2367     STATUS       current
2368     DESCRIPTION
2369        "An entry in the Maximum Rate Table describes
2370        a single set of scheduling parameter for use by
2371        queues and schedulers."
2372     PIB-INDEX { dsMaxRatePrid }
2373     UNIQUENESS { dsMaxRateId,
2374                  dsMaxRateLevel,
2375                  dsMaxRateAbsolute,
2376                  dsMaxRateRelative,
2377                  dsMaxRateThreshold }
2378     ::= { dsMaxRateTable 1 }
2379
2380 DsMaxRateEntry ::= SEQUENCE  {
2381     dsMaxRatePrid            InstanceId,
2382     dsMaxRateId              Unsigned32,
2383     dsMaxRateLevel           Unsigned32,
2384     dsMaxRateAbsolute        Unsigned32,
2385     dsMaxRateRelative        Unsigned32,
2386     dsMaxRateThreshold       BurstSize
2387 }
2388
2389 dsMaxRatePrid OBJECT-TYPE
2390     SYNTAX       InstanceId
2391     STATUS       current
2392     DESCRIPTION
2393
2394
2395
2396         "An arbitrary integer index that uniquely identifies an
2397         instance of the class."
2398     ::= { dsMaxRateEntry 1 }
2399
2400 dsMaxRateId OBJECT-TYPE
2401     SYNTAX       Unsigned32  (0..4294967295)
2402     STATUS       current
2403     DESCRIPTION
2404       "An identifier used together with dsMaxRateLevel for
2405       representing a multi-rate shaper.  This attribute is used for
2406       associating all the rate attributes of a multi-rate shaper.
2407       Each dsMaxRateEntry of a multi-rate shaper must have the same
2408       value in this attribute.  The different rates of a multi-rate
2409       shaper is identified using dsMaxRateLevel.
2410       This attribute uses the value of zero to indicate this
2411       attribute is not used, for single rate shaper."
2412     DEFVAL { 0 }
2413     ::= { dsMaxRateEntry 2 }
2414
2415 dsMaxRateLevel OBJECT-TYPE
2416     SYNTAX       Unsigned32 (1..32)
2417     STATUS       current
2418     DESCRIPTION
2419       "An index that indicates which level of a multi-rate shaper is
2420       being given its parameters. A multi-rate shaper has some
2421       number of rate levels. Frame Relay's dual rate specification
2422       refers to a 'committed' and an 'excess' rate; ATM's dual rate
2423       specification refers to a 'mean' and a 'peak' rate. This table
2424       is generalized to support an arbitrary number of rates. The
2425       committed or mean rate is level 1, the peak rate (if any) is
2426       the highest level rate configured, and if there are other
2427       rates they are distributed in monotonically increasing order
2428       between them.
2429       When the entry is used for a single rate shaper, this
2430       attribute contains a value of one."
2431     DEFVAL { 1 }
2432     ::= { dsMaxRateEntry 3 }
2433
2434 dsMaxRateAbsolute OBJECT-TYPE
2435     SYNTAX       Unsigned32 (1..4294967295)
2436     UNITS        "kilobits per second"
2437     STATUS       current
2438     DESCRIPTION
2439       "The maximum rate in kilobits/sec that a downstream
2440       scheduler element should allocate to this queue. If
2441       the value is zero, then there is effectively no max-
2442       imum rate limit and that the scheduler should attempt
2443       to be work-conserving for this queue.  If the value
2444
2445
2446
2447       is  non-zero, the scheduler will limit the servicing
2448       of this queue to, at most, this rate in a non-work-
2449       conserving manner.
2450
2451       Note that this attribute's value is coupled to that
2452       of dsMaxRateRelative:  changes to one will
2453       affect the value of the other.
2454
2455       [IFMIB] defines ifSpeed as Gauge32 in units of bits per
2456       second, and ifHighSpeed as Gauge32 in units of 1,000,000 bits
2457       per second.
2458       This yields the following equations:
2459
2460       RateRelative  = [ (RateAbsolute * 1000) / ifSpeed ] * 1,000
2461
2462       Where, 1000 is for converting kbps used by RateAbsolute to bps
2463       used by ifSpeed, 1,000 is for 'in units of 1/1,000 of 1'
2464       for RateRelative.
2465
2466       or, if appropriate:
2467
2468       RateRelative  =
2469          { [ (RateAbsolute * 1000) / 1,000,000 ] / ifHIghSpeed } *
2470          1,000
2471
2472       Where, 1000 and 1,000,000 is for converting kbps used by
2473       RateAbsolute to 1 million bps used by ifHighSpeed, 1,000 is
2474       for 'in units of 1/1,000 of 1' for RateRelative."
2475     ::= { dsMaxRateEntry 4 }
2476
2477 dsMaxRateRelative OBJECT-TYPE
2478     SYNTAX       Unsigned32 (1..4294967295)
2479     STATUS       current
2480     DESCRIPTION
2481       "The maximum rate that a downstream scheduler element
2482       should allocate to this queue, relative to the max-
2483       imum rate of the interface as reported by ifSpeed or
2484       ifHighSpeed, in units of 1/1,000 of 1.  If the value
2485       is zero, then there is effectively no maximum rate
2486       limit and the scheduler should attempt to be work-
2487       conserving for this queue.  If the value is non-zero,
2488       the scheduler will limit the servicing of this queue
2489       to, at most, this rate in a non-work-conserving
2490       manner.
2491
2492       Note that this attribute's value is coupled to that
2493       of dsMaxRateAbsolute:  changes to one will
2494       affect the value of the other.
2495
2496
2497
2498
2499       [IFMIB] defines ifSpeed as Gauge32 in units of bits per
2500       second, and ifHighSpeed as Gauge32 in units of 1,000,000 bits
2501       per second.
2502       This yields the following equations:
2503
2504       RateRelative  = [ (RateAbsolute * 1000) / ifSpeed ] * 1,000
2505
2506       Where, 1000 is for converting kbps used by RateAbsolute to bps
2507       used by ifSpeed, 1,000 is for 'in units of 1/1,000 of 1' for
2508       RateRelative.
2509
2510       or, if appropriate:
2511
2512       RateRelative  =
2513          { [ (RateAbsolute * 1000) / 1,000,000 ] / ifHIghSpeed } *
2514          1,000
2515
2516       Where, 1000 and 1,000,000 is for converting kbps used by
2517       RateAbsolute to 1 million bps used by ifHighSpeed, 1,000 is
2518       for 'in units of 1/1,000 of 1' for RateRelative."
2519     REFERENCE
2520         "ifSpeed, ifHighSpeed from the IF-MIB, RFC 2863."
2521     ::= { dsMaxRateEntry 5 }
2522
2523 dsMaxRateThreshold OBJECT-TYPE
2524     SYNTAX       BurstSize
2525     UNITS        "Bytes"
2526     STATUS       current
2527     DESCRIPTION
2528       "The number of bytes of queue depth at which the rate of a
2529       multi-rate scheduler will increase to the next output rate. In
2530       the last PRI for such a shaper, this threshold is
2531       ignored and by convention is zero."
2532     REFERENCE
2533         "Adaptive Rate Shaper, RFC 2963"
2534  ::= { dsMaxRateEntry 6 }
2535
2536 --
2537 -- Conformance Section
2538 --
2539
2540 dsPolicyPibCompliances
2541                 OBJECT IDENTIFIER ::= { dsPolicyPibConformance 1 }
2542 dsPolicyPibGroups
2543                 OBJECT IDENTIFIER ::= { dsPolicyPibConformance 2 }
2544
2545 dsPolicyPibCompliance MODULE-COMPLIANCE
2546
2547
2548
2549     STATUS  current
2550     DESCRIPTION
2551             "Describes the requirements for conformance to the
2552             QoS Policy PIB."
2553
2554     MODULE FRAMEWORK-PIB
2555         MANDATORY-GROUPS {
2556             frwkPrcSupportGroup,
2557             frwkPibIncarnationGroup,
2558             frwkDeviceIdGroup,
2559             frwkCompLimitsGroup,
2560             frwkCapabilitySetGroup,
2561             frwkRoleComboGroup,
2562             frwkIfRoleComboGroup,
2563             frwkBaseFilterGroup,
2564             frwkIpFilterGroup }
2565
2566     OBJECT frwkPibIncarnationLongevity
2567     PIB-MIN-ACCESS  notify
2568     DESCRIPTION
2569        "Install support is required if policy expiration is to
2570        be supported."
2571
2572     OBJECT frwkPibIncarnationTtl
2573     PIB-MIN-ACCESS  notify
2574     DESCRIPTION
2575        "Install support is required if policy expiration is to
2576        be supported."
2577
2578     MODULE DIFFSERV-PIB -- this module
2579         MANDATORY-GROUPS {
2580             dsPibBaseIfCapsGroup,
2581             dsPibIfClassificationCapsGroup,
2582             dsPibIfAlgDropCapsGroup,
2583             dsPibIfQueueCapsGroup,
2584             dsPibIfSchedulerCapsGroup,
2585             dsPibIfMaxRateCapsGroup,
2586             dsPibIfElmDepthCapsGroup,
2587             dsPibIfElmLinkCapsGroup,
2588             dsPibDataPathGroup,
2589             dsPibClfrGroup,
2590             dsPibClfrElementGroup,
2591             dsPibActionGroup,
2592             dsPibAlgDropGroup,
2593             dsPibQGroup,
2594             dsPibSchedulerGroup,
2595             dsPibMinRateGroup,
2596             dsPibMaxRateGroup }
2597
2598
2599
2600
2601     GROUP dsPibIfMeteringCapsGroup
2602     DESCRIPTION
2603        "This group is mandatory for devices that implement
2604        metering functions."
2605
2606     GROUP dsPibMeterGroup
2607     DESCRIPTION
2608        "This group is mandatory for devices that implement
2609        metering functions."
2610
2611     GROUP dsPibTBParamGroup
2612     DESCRIPTION
2613        "This group is mandatory for devices that implement
2614        token-bucket metering functions."
2615
2616     GROUP dsPibDscpMarkActGroup
2617     DESCRIPTION
2618        "This group is mandatory for devices that implement
2619        DSCP-Marking functions."
2620
2621     GROUP dsPibMQAlgDropGroup
2622     DESCRIPTION
2623        "This group is mandatory for devices that implement
2624        Multiple Queue Measured Algorithmic Drop functions."
2625
2626     GROUP dsPibRandomDropGroup
2627     DESCRIPTION
2628        "This group is mandatory for devices that implement
2629        Random Drop functions."
2630
2631     OBJECT dsClfrId
2632     PIB-MIN-ACCESS not-accessible
2633     DESCRIPTION
2634        "Install support is not required."
2635
2636     OBJECT dsClfrElementClfrId
2637     PIB-MIN-ACCESS not-accessible
2638     DESCRIPTION
2639        "Install support is not required."
2640
2641     OBJECT dsClfrElementPrecedence
2642     PIB-MIN-ACCESS not-accessible
2643     DESCRIPTION
2644        "Install support is not required."
2645
2646     OBJECT dsClfrElementNext
2647     PIB-MIN-ACCESS not-accessible
2648
2649
2650
2651     DESCRIPTION
2652        "Install support is not required."
2653
2654     OBJECT dsClfrElementSpecific
2655     PIB-MIN-ACCESS not-accessible
2656     DESCRIPTION
2657        "Install support is not required."
2658
2659     OBJECT dsMeterSucceedNext
2660     PIB-MIN-ACCESS not-accessible
2661     DESCRIPTION
2662        "Install support is not required."
2663
2664     OBJECT dsMeterFailNext
2665     PIB-MIN-ACCESS not-accessible
2666     DESCRIPTION
2667        "Install support is not required."
2668
2669     OBJECT dsMeterSpecific
2670     PIB-MIN-ACCESS not-accessible
2671     DESCRIPTION
2672        "Install support is not required."
2673
2674     OBJECT dsTBParamType
2675     PIB-MIN-ACCESS not-accessible
2676     DESCRIPTION
2677        "Install support is not required."
2678
2679     OBJECT dsTBParamRate
2680     PIB-MIN-ACCESS not-accessible
2681     DESCRIPTION
2682        "Install support is not required."
2683
2684     OBJECT dsTBParamBurstSize
2685     PIB-MIN-ACCESS not-accessible
2686     DESCRIPTION
2687        "Install support is not required."
2688
2689     OBJECT dsTBParamInterval
2690     PIB-MIN-ACCESS not-accessible
2691     DESCRIPTION
2692        "Install support is not required."
2693
2694     OBJECT dsActionNext
2695     PIB-MIN-ACCESS not-accessible
2696     DESCRIPTION
2697        "Install support is not required."
2698
2699
2700
2701
2702     OBJECT dsActionSpecific
2703     PIB-MIN-ACCESS not-accessible
2704     DESCRIPTION
2705        "Install support is not required."
2706
2707     OBJECT dsAlgDropType
2708     PIB-MIN-ACCESS not-accessible
2709     DESCRIPTION
2710        "Install support is not required."
2711
2712     OBJECT dsAlgDropNext
2713     PIB-MIN-ACCESS not-accessible
2714     DESCRIPTION
2715        "Install support is not required."
2716
2717     OBJECT dsAlgDropQMeasure
2718     PIB-MIN-ACCESS not-accessible
2719     DESCRIPTION
2720        "Install support is not required."
2721
2722     OBJECT dsAlgDropQThreshold
2723     PIB-MIN-ACCESS not-accessible
2724     DESCRIPTION
2725        "Install support is not required."
2726
2727     OBJECT dsAlgDropSpecific
2728     PIB-MIN-ACCESS not-accessible
2729     DESCRIPTION
2730        "Install support is not required."
2731
2732     OBJECT dsRandomDropMinThreshBytes
2733     PIB-MIN-ACCESS not-accessible
2734     DESCRIPTION
2735        "Install support is not required."
2736
2737     OBJECT dsRandomDropMinThreshPkts
2738     PIB-MIN-ACCESS not-accessible
2739     DESCRIPTION
2740        "Install support is not required."
2741
2742     OBJECT dsRandomDropMaxThreshBytes
2743     PIB-MIN-ACCESS not-accessible
2744     DESCRIPTION
2745        "Install support is not required."
2746
2747     OBJECT dsRandomDropMaxThreshPkts
2748     PIB-MIN-ACCESS not-accessible
2749     DESCRIPTION
2750
2751
2752
2753        "Install support is not required."
2754
2755     OBJECT dsRandomDropProbMax
2756     PIB-MIN-ACCESS not-accessible
2757     DESCRIPTION
2758        "Install support is not required."
2759
2760     OBJECT dsRandomDropWeight
2761     PIB-MIN-ACCESS not-accessible
2762     DESCRIPTION
2763        "Install support is not required."
2764
2765     OBJECT dsRandomDropSamplingRate
2766     PIB-MIN-ACCESS not-accessible
2767     DESCRIPTION
2768        "Install support is not required."
2769
2770     OBJECT dsQNext
2771     PIB-MIN-ACCESS not-accessible
2772     DESCRIPTION
2773        "Install support is not required."
2774
2775     OBJECT dsQMinRate
2776     PIB-MIN-ACCESS not-accessible
2777     DESCRIPTION
2778        "Install support is not required."
2779
2780     OBJECT dsQMaxRate
2781     PIB-MIN-ACCESS not-accessible
2782     DESCRIPTION
2783        "Install support is not required."
2784
2785     OBJECT dsSchedulerNext
2786     PIB-MIN-ACCESS not-accessible
2787     DESCRIPTION
2788        "Install support is not required."
2789
2790     OBJECT dsSchedulerMethod
2791     PIB-MIN-ACCESS not-accessible
2792     DESCRIPTION
2793        "Install support is not required."
2794
2795     OBJECT dsSchedulerMinRate
2796     PIB-MIN-ACCESS not-accessible
2797     DESCRIPTION
2798        "Install support is not required."
2799
2800     OBJECT dsSchedulerMaxRate
2801
2802
2803
2804     PIB-MIN-ACCESS not-accessible
2805     DESCRIPTION
2806        "Install support is not required."
2807
2808     OBJECT dsMinRatePriority
2809     PIB-MIN-ACCESS not-accessible
2810     DESCRIPTION
2811        "Install support is not required."
2812
2813     OBJECT dsMinRateAbsolute
2814     PIB-MIN-ACCESS not-accessible
2815     DESCRIPTION
2816        "Install support is not required."
2817
2818     OBJECT dsMinRateRelative
2819     PIB-MIN-ACCESS not-accessible
2820     DESCRIPTION
2821        "Install support is not required."
2822
2823     OBJECT dsMaxRateId
2824     PIB-MIN-ACCESS not-accessible
2825     DESCRIPTION
2826        "Install support is not required."
2827
2828     OBJECT dsMaxRateLevel
2829     PIB-MIN-ACCESS not-accessible
2830     DESCRIPTION
2831        "Install support is not required."
2832
2833     OBJECT dsMaxRateAbsolute
2834     PIB-MIN-ACCESS not-accessible
2835     DESCRIPTION
2836        "Install support is not required."
2837
2838     OBJECT dsMaxRateRelative
2839     PIB-MIN-ACCESS not-accessible
2840     DESCRIPTION
2841        "Install support is not required."
2842
2843     OBJECT dsMaxRateThreshold
2844     PIB-MIN-ACCESS not-accessible
2845     DESCRIPTION
2846        "Install support is not required."
2847
2848     ::= { dsPolicyPibCompliances 1 }
2849
2850 dsPibBaseIfCapsGroup OBJECT-GROUP
2851     OBJECTS {
2852
2853
2854
2855         dsBaseIfCapsPrid, dsBaseIfCapsDirection
2856     }
2857     STATUS current
2858     DESCRIPTION
2859        "The Base Interface Capability Group defines the PIB
2860        Objects that describe the base for interface capabilities."
2861     ::= { dsPolicyPibGroups 1 }
2862
2863 dsPibIfClassificationCapsGroup OBJECT-GROUP
2864     OBJECTS {
2865         dsIfClassificationCapsSpec
2866     }
2867     STATUS current
2868     DESCRIPTION
2869        "The Classification Capability Group defines the PIB
2870        Objects that describe the classification capabilities."
2871     ::= { dsPolicyPibGroups 2 }
2872
2873 dsPibIfMeteringCapsGroup OBJECT-GROUP
2874     OBJECTS {
2875         dsIfMeteringCapsSpec
2876     }
2877     STATUS current
2878     DESCRIPTION
2879        "The Metering Capability Group defines the PIB
2880        Objects that describe the metering capabilities."
2881     ::= { dsPolicyPibGroups 3 }
2882
2883 dsPibIfAlgDropCapsGroup OBJECT-GROUP
2884     OBJECTS {
2885         dsIfAlgDropCapsType, dsIfAlgDropCapsMQCount
2886     }
2887     STATUS current
2888     DESCRIPTION
2889        "The Algorithmic Dropper Capability Group defines the
2890        PIB Objects that describe the algorithmic dropper
2891        capabilities."
2892     ::= { dsPolicyPibGroups 4 }
2893
2894 dsPibIfQueueCapsGroup OBJECT-GROUP
2895     OBJECTS {
2896         dsIfQueueCapsMinQueueSize, dsIfQueueCapsMaxQueueSize,
2897         dsIfQueueCapsTotalQueueSize
2898     }
2899     STATUS current
2900     DESCRIPTION
2901        "The Queueing Capability Group defines the PIB
2902        Objects that describe the queueing capabilities."
2903
2904
2905
2906     ::= { dsPolicyPibGroups 5 }
2907
2908 dsPibIfSchedulerCapsGroup OBJECT-GROUP
2909     OBJECTS {
2910         dsIfSchedulerCapsServiceDisc, dsIfSchedulerCapsMaxInputs,
2911         dsIfSchedulerCapsMinMaxRate
2912     }
2913     STATUS current
2914     DESCRIPTION
2915        "The Scheduler Capability Group defines the PIB
2916        Objects that describe the scheduler capabilities."
2917     ::= { dsPolicyPibGroups 6 }
2918
2919 dsPibIfMaxRateCapsGroup OBJECT-GROUP
2920     OBJECTS {
2921         dsIfMaxRateCapsMaxLevels
2922     }
2923     STATUS current
2924     DESCRIPTION
2925        "The Max Rate Capability Group defines the PIB
2926        Objects that describe the max rate capabilities."
2927     ::= { dsPolicyPibGroups 7 }
2928
2929 dsPibIfElmDepthCapsGroup OBJECT-GROUP
2930     OBJECTS {
2931         dsIfElmDepthCapsPrc, dsIfElmDepthCapsCascadeMax
2932     }
2933     STATUS current
2934     DESCRIPTION
2935        "The DataPath Element Depth Capability Group defines the PIB
2936        Objects that describe the datapath element depth
2937        capabilities."
2938     ::= { dsPolicyPibGroups 8 }
2939
2940 dsPibIfElmLinkCapsGroup OBJECT-GROUP
2941     OBJECTS {
2942         dsIfElmLinkCapsPrc, dsIfElmLinkCapsAttr,
2943         dsIfElmLinkCapsNextPrc
2944     }
2945     STATUS current
2946     DESCRIPTION
2947        "The DataPath Element Linkage Capability Group defines the
2948        PIB Objects that describe the datapath element linkage
2949        capabilities."
2950     ::= { dsPolicyPibGroups 9 }
2951
2952 dsPibDataPathGroup OBJECT-GROUP
2953     OBJECTS {
2954
2955
2956
2957         dsDataPathPrid, dsDataPathCapSetName,
2958         dsDataPathRoles, dsDataPathIfDirection,
2959         dsDataPathStart
2960     }
2961     STATUS current
2962     DESCRIPTION
2963        "The Data Path Group defines the PIB Objects that
2964        describe a data path."
2965     ::= { dsPolicyPibGroups 10 }
2966
2967 dsPibClfrGroup OBJECT-GROUP
2968     OBJECTS {
2969         dsClfrPrid, dsClfrId
2970     }
2971     STATUS current
2972     DESCRIPTION
2973        "The Classifier Group defines the PIB Objects that
2974        describe a generic classifier."
2975     ::= { dsPolicyPibGroups 11 }
2976
2977 dsPibClfrElementGroup OBJECT-GROUP
2978     OBJECTS {
2979         dsClfrElementPrid, dsClfrElementClfrId,
2980         dsClfrElementPrecedence, dsClfrElementNext,
2981         dsClfrElementSpecific
2982     }
2983     STATUS current
2984     DESCRIPTION
2985        "The Classifier Group defines the PIB Objects that
2986        describe a generic classifier."
2987     ::= { dsPolicyPibGroups 12 }
2988
2989 dsPibMeterGroup OBJECT-GROUP
2990     OBJECTS {
2991         dsMeterPrid, dsMeterSucceedNext,
2992         dsMeterFailNext, dsMeterSpecific
2993     }
2994     STATUS current
2995     DESCRIPTION
2996        "The Meter Group defines the objects used in describ-
2997        ing a generic meter element."
2998     ::= { dsPolicyPibGroups 13 }
2999
3000 dsPibTBParamGroup OBJECT-GROUP
3001     OBJECTS {
3002         dsTBParamPrid, dsTBParamType, dsTBParamRate,
3003         dsTBParamBurstSize, dsTBParamInterval
3004     }
3005
3006
3007
3008     STATUS current
3009     DESCRIPTION
3010        "The Token-Bucket Parameter Group defines the objects
3011        used in describing a single-rate token bucket meter
3012        element."
3013     ::= { dsPolicyPibGroups 14 }
3014
3015 dsPibActionGroup OBJECT-GROUP
3016     OBJECTS {
3017         dsActionPrid, dsActionNext, dsActionSpecific
3018     }
3019     STATUS current
3020     DESCRIPTION
3021        "The  Action Group defines the objects used in
3022        describing a generic action element."
3023     ::= { dsPolicyPibGroups 15 }
3024
3025 dsPibDscpMarkActGroup OBJECT-GROUP
3026     OBJECTS {
3027         dsDscpMarkActPrid, dsDscpMarkActDscp
3028     }
3029     STATUS current
3030     DESCRIPTION
3031        "The DSCP Mark Action Group defines the objects used
3032        in describing a DSCP Marking Action element."
3033     ::= { dsPolicyPibGroups 16 }
3034
3035 dsPibAlgDropGroup OBJECT-GROUP
3036     OBJECTS {
3037         dsAlgDropPrid, dsAlgDropType, dsAlgDropNext,
3038         dsAlgDropQMeasure, dsAlgDropQThreshold,
3039         dsAlgDropSpecific
3040     }
3041     STATUS current
3042     DESCRIPTION
3043        "The Algorithmic Drop Group contains the objects that
3044        describe algorithmic dropper operation and configura-
3045        tion."
3046     ::= { dsPolicyPibGroups 17 }
3047
3048 dsPibMQAlgDropGroup OBJECT-GROUP
3049     OBJECTS {
3050         dsMQAlgDropExceedNext
3051     }
3052     STATUS current
3053     DESCRIPTION
3054        "The Multiple Queue Measured Algorithmic Drop Group
3055        contains the objects that describe multiple queue
3056
3057
3058
3059        measured algorithmic dropper operation and configuration."
3060     ::= { dsPolicyPibGroups 18 }
3061
3062 dsPibRandomDropGroup OBJECT-GROUP
3063     OBJECTS {
3064         dsRandomDropPrid,
3065         dsRandomDropMinThreshBytes,
3066         dsRandomDropMinThreshPkts,
3067         dsRandomDropMaxThreshBytes,
3068         dsRandomDropMaxThreshPkts,
3069         dsRandomDropProbMax,
3070         dsRandomDropWeight,
3071         dsRandomDropSamplingRate
3072     }
3073     STATUS current
3074     DESCRIPTION
3075        "The Random Drop Group augments the Algorithmic Drop Group
3076        for random dropper operation and configuration."
3077     ::= { dsPolicyPibGroups 19 }
3078
3079 dsPibQGroup OBJECT-GROUP
3080     OBJECTS {
3081         dsQPrid, dsQNext, dsQMinRate, dsQMaxRate
3082     }
3083     STATUS current
3084     DESCRIPTION
3085        "The Queue Group contains the objects that describe
3086        an interface type's queues."
3087     ::= { dsPolicyPibGroups 20 }
3088
3089 dsPibSchedulerGroup OBJECT-GROUP
3090     OBJECTS {
3091         dsSchedulerPrid, dsSchedulerNext, dsSchedulerMethod,
3092         dsSchedulerMinRate, dsSchedulerMaxRate
3093     }
3094     STATUS current
3095     DESCRIPTION
3096        "The Scheduler Group contains the objects that
3097        describe packet schedulers on interface types."
3098     ::= { dsPolicyPibGroups 21 }
3099
3100 dsPibMinRateGroup OBJECT-GROUP
3101     OBJECTS {
3102         dsMinRatePrid, dsMinRatePriority,
3103         dsMinRateAbsolute, dsMinRateRelative
3104     }
3105     STATUS current
3106     DESCRIPTION
3107
3108
3109
3110        "The Minimum Rate Group contains the objects
3111        that describe packet schedulers' parameters on interface
3112        types."
3113     ::= { dsPolicyPibGroups 22 }
3114
3115 dsPibMaxRateGroup OBJECT-GROUP
3116     OBJECTS {
3117         dsMaxRatePrid, dsMaxRateId, dsMaxRateLevel,
3118         dsMaxRateAbsolute, dsMaxRateRelative,
3119         dsMaxRateThreshold
3120     }
3121     STATUS current
3122     DESCRIPTION
3123        "The Maximum Rate Group contains the objects
3124        that describe packet schedulers' parameters on interface
3125        types."
3126     ::= { dsPolicyPibGroups 23 }
3127
3128 END