1 DIFFSERV-PIB PIB-DEFINITIONS ::= BEGIN
4 Unsigned32, MODULE-IDENTITY, MODULE-COMPLIANCE,
5 OBJECT-TYPE, OBJECT-GROUP, pib
7 InstanceId, Prid, TagId, TagReferenceId
14 FROM SNMP-FRAMEWORK-MIB
15 RoleCombination, PrcIdentifierOid, PrcIdentifierOidOrZero,
23 FROM INTEGRATED-SERVICES-MIB;
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"
33 170 West Tasman Drive,
34 San Jose, CA 95134-1706 USA
35 Phone: +1 408 526 5260
40 4401 Great America Parkway
41 Santa Clara, CA 95054 USA
42 Phone: +1 408 495 2992
43 Email: jseligso@nortelnetworks.com
50 600 Technology Park Drive
51 Billerica, MA 01821 USA
52 Phone: +1 978 288 8175
53 Email: khchan@nortelnetworks.com
55 Differentiated Services Working Group:
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.
64 Copyright (C) The Internet Society (2003). This version of
65 this PIB module is part of RFC 3317; see the RFC itself for
68 REVISION "200302180000Z" -- 18 Feb 2003
70 "Initial version, published as RFC 3317."
73 dsCapabilityClasses OBJECT IDENTIFIER ::= { dsPolicyPib 1 }
74 dsPolicyClasses OBJECT IDENTIFIER ::= { dsPolicyPib 2 }
75 dsPolicyPibConformance OBJECT IDENTIFIER ::= { dsPolicyPib 3 }
78 -- Interface Type Capabilities Group
82 -- Interface Type Capability Tables
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.
90 -- The Base Capability Table
93 dsBaseIfCapsTable OBJECT-TYPE
94 SYNTAX SEQUENCE OF DsBaseIfCapsEntry
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 }
106 dsBaseIfCapsEntry OBJECT-TYPE
107 SYNTAX DsBaseIfCapsEntry
110 "An instance of this class describes the dsBaseIfCaps class."
112 PIB-INDEX { dsBaseIfCapsPrid }
113 ::= { dsBaseIfCapsTable 1 }
115 DsBaseIfCapsEntry ::= SEQUENCE {
116 dsBaseIfCapsPrid InstanceId,
117 dsBaseIfCapsDirection INTEGER
120 dsBaseIfCapsPrid OBJECT-TYPE
124 "An arbitrary integer index that uniquely identifies an
125 instance of the class."
126 ::= { dsBaseIfCapsEntry 1 }
129 dsBaseIfCapsDirection OBJECT-TYPE
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 }
146 -- The Classification Capability Table
152 dsIfClassificationCapsTable OBJECT-TYPE
153 SYNTAX SEQUENCE OF DsIfClassificationCapsEntry
157 "This class specifies the classification capabilities of
159 ::= { dsCapabilityClasses 2 }
162 dsIfClassificationCapsEntry OBJECT-TYPE
163 SYNTAX DsIfClassificationCapsEntry
166 "An instance of this class describes the classification
167 capabilities of a Capability Set."
170 EXTENDS { dsBaseIfCapsEntry }
171 UNIQUENESS { dsBaseIfCapsDirection,
172 dsIfClassificationCapsSpec }
173 ::= { dsIfClassificationCapsTable 1 }
175 DsIfClassificationCapsEntry ::= SEQUENCE {
176 dsIfClassificationCapsSpec BITS
179 dsIfClassificationCapsSpec OBJECT-TYPE
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
193 ipL4Classification(4),
194 -- indicates the ability to classify based on
195 -- IP layer 4 port numbers for UDP and TCP
197 -- indicates the ability to classify based on
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 }
213 -- Metering Capabilities
216 dsIfMeteringCapsTable OBJECT-TYPE
217 SYNTAX SEQUENCE OF DsIfMeteringCapsEntry
221 "This class specifies the metering capabilities of a
223 ::= { dsCapabilityClasses 3 }
225 dsIfMeteringCapsEntry OBJECT-TYPE
226 SYNTAX DsIfMeteringCapsEntry
229 "An instance of this class describes the metering
230 capabilities of a Capability Set."
232 EXTENDS { dsBaseIfCapsEntry }
233 UNIQUENESS { dsBaseIfCapsDirection,
234 dsIfMeteringCapsSpec }
235 ::= { dsIfMeteringCapsTable 1 }
237 DsIfMeteringCapsEntry ::= SEQUENCE {
238 dsIfMeteringCapsSpec BITS
241 dsIfMeteringCapsSpec OBJECT-TYPE
244 simpleTokenBucket(1),
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
261 ::= { dsIfMeteringCapsEntry 1 }
264 -- Algorithmic Dropper Capabilities
267 dsIfAlgDropCapsTable OBJECT-TYPE
268 SYNTAX SEQUENCE OF DsIfAlgDropCapsEntry
272 "This class specifies the algorithmic dropper
273 capabilities of a Capability Set.
275 This capability table indicates the types of algorithmic
276 drop supported by a Capability Set for a specific flow
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
282 ::= { dsCapabilityClasses 4 }
284 dsIfAlgDropCapsEntry OBJECT-TYPE
285 SYNTAX DsIfAlgDropCapsEntry
288 "An instance of this class describes the algorithmic dropper
289 capabilities of a Capability Set."
290 EXTENDS { dsBaseIfCapsEntry }
291 UNIQUENESS { dsBaseIfCapsDirection,
293 dsIfAlgDropCapsMQCount }
294 ::= { dsIfAlgDropCapsTable 1 }
296 DsIfAlgDropCapsEntry ::= SEQUENCE {
297 dsIfAlgDropCapsType BITS,
298 dsIfAlgDropCapsMQCount Unsigned32
301 dsIfAlgDropCapsType OBJECT-TYPE
315 "The type of algorithm that droppers associated with queues
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 }
332 dsIfAlgDropCapsMQCount OBJECT-TYPE
333 SYNTAX Unsigned32 (1..4294967295)
336 "Indicates the number of queues measured for the drop
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 }
346 -- Queue Capabilities
349 dsIfQueueCapsTable OBJECT-TYPE
350 SYNTAX SEQUENCE OF DsIfQueueCapsEntry
357 "This class specifies the queueing capabilities of a
359 ::= { dsCapabilityClasses 5 }
361 dsIfQueueCapsEntry OBJECT-TYPE
362 SYNTAX DsIfQueueCapsEntry
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 }
374 DsIfQueueCapsEntry ::= SEQUENCE {
375 dsIfQueueCapsMinQueueSize Unsigned32,
376 dsIfQueueCapsMaxQueueSize Unsigned32,
377 dsIfQueueCapsTotalQueueSize Unsigned32
380 dsIfQueueCapsMinQueueSize OBJECT-TYPE
381 SYNTAX Unsigned32 (0..4294967295)
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 }
393 dsIfQueueCapsMaxQueueSize OBJECT-TYPE
394 SYNTAX Unsigned32 (0..4294967295)
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."
407 ::= { dsIfQueueCapsEntry 2 }
409 dsIfQueueCapsTotalQueueSize OBJECT-TYPE
410 SYNTAX Unsigned32 (0..4294967295)
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 }
425 -- Scheduler Capabilities
428 dsIfSchedulerCapsTable OBJECT-TYPE
429 SYNTAX SEQUENCE OF DsIfSchedulerCapsEntry
433 "This class specifies the scheduler capabilities of a
435 ::= { dsCapabilityClasses 6 }
437 dsIfSchedulerCapsEntry OBJECT-TYPE
438 SYNTAX DsIfSchedulerCapsEntry
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 }
449 DsIfSchedulerCapsEntry ::= SEQUENCE {
450 dsIfSchedulerCapsServiceDisc AutonomousType,
451 dsIfSchedulerCapsMaxInputs Unsigned32,
452 dsIfSchedulerCapsMinMaxRate INTEGER
458 dsIfSchedulerCapsServiceDisc OBJECT-TYPE
459 SYNTAX AutonomousType
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.
467 These include diffServSchedulerPriority,
468 diffServSchedulerWRR, diffServSchedulerWFQ."
469 ::= { dsIfSchedulerCapsEntry 1 }
471 dsIfSchedulerCapsMaxInputs OBJECT-TYPE
472 SYNTAX Unsigned32 (0..4294967295)
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 }
480 dsIfSchedulerCapsMinMaxRate OBJECT-TYPE
488 "Scheduler capability indicating ability to handle inputs
489 with minimum rate, maximum rate, or both."
490 ::= { dsIfSchedulerCapsEntry 3 }
493 -- Maximum Rate Capabilities
496 dsIfMaxRateCapsTable OBJECT-TYPE
497 SYNTAX SEQUENCE OF DsIfMaxRateCapsEntry
501 "This class specifies the maximum rate capabilities of a
503 ::= { dsCapabilityClasses 7 }
505 dsIfMaxRateCapsEntry OBJECT-TYPE
509 SYNTAX DsIfMaxRateCapsEntry
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 }
519 DsIfMaxRateCapsEntry ::= SEQUENCE {
520 dsIfMaxRateCapsMaxLevels Unsigned32
523 dsIfMaxRateCapsMaxLevels OBJECT-TYPE
524 SYNTAX Unsigned32 (1..4294967295)
527 "The maximum number of levels a maximum rate specification
528 may have for this Capability Set and flow direction."
529 ::= { dsIfMaxRateCapsEntry 1 }
532 -- DataPath Element Linkage Capabilities
536 -- DataPath Element Cascade Depth
539 dsIfElmDepthCapsTable OBJECT-TYPE
540 SYNTAX SEQUENCE OF DsIfElmDepthCapsEntry
544 "This class specifies the number of elements of the same
545 type that can be cascaded together in a datapath."
546 ::= { dsCapabilityClasses 8 }
548 dsIfElmDepthCapsEntry OBJECT-TYPE
549 SYNTAX DsIfElmDepthCapsEntry
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
560 EXTENDS { dsBaseIfCapsEntry }
561 UNIQUENESS { dsBaseIfCapsDirection,
562 dsIfElmDepthCapsPrc }
563 ::= { dsIfElmDepthCapsTable 1 }
565 DsIfElmDepthCapsEntry ::= SEQUENCE {
566 dsIfElmDepthCapsPrc PrcIdentifierOid,
567 dsIfElmDepthCapsCascadeMax Unsigned32
570 dsIfElmDepthCapsPrc OBJECT-TYPE
571 SYNTAX PrcIdentifierOid
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
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
582 ::= { dsIfElmDepthCapsEntry 1 }
584 dsIfElmDepthCapsCascadeMax OBJECT-TYPE
585 SYNTAX Unsigned32 (0..4294967295)
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 }
594 -- DataPath Element Linkage Types
597 dsIfElmLinkCapsTable OBJECT-TYPE
598 SYNTAX SEQUENCE OF DsIfElmLinkCapsEntry
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 }
607 dsIfElmLinkCapsEntry OBJECT-TYPE
611 SYNTAX DsIfElmLinkCapsEntry
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,
621 dsIfElmLinkCapsNextPrc }
622 ::= { dsIfElmLinkCapsTable 1 }
624 DsIfElmLinkCapsEntry ::= SEQUENCE {
625 dsIfElmLinkCapsPrc PrcIdentifierOid,
626 dsIfElmLinkCapsAttr AttrIdentifier,
627 dsIfElmLinkCapsNextPrc PrcIdentifierOidOrZero
630 dsIfElmLinkCapsPrc OBJECT-TYPE
631 SYNTAX PrcIdentifierOid
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
638 This must not have the value zeroDotZero."
639 ::= { dsIfElmLinkCapsEntry 1 }
641 dsIfElmLinkCapsAttr OBJECT-TYPE
642 SYNTAX AttrIdentifier
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 }
650 dsIfElmLinkCapsNextPrc OBJECT-TYPE
651 SYNTAX PrcIdentifierOidOrZero
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.
658 For example, suppose a meter's success output can be an
662 action or another meter, and the fail output can only be
663 an action. This can be expressed as follows:
665 Prid Prc Attr NextPrc
666 1 dsMeterEntry dsMeterSucceedNext dsActionEntry
667 2 dsMeterEntry dsMeterSucceedNext dsMeterEntry
668 3 dsMeterEntry dsMeterFailNext dsActionEntry.
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 }
683 dsDataPathTable OBJECT-TYPE
684 SYNTAX SEQUENCE OF DsDataPathEntry
688 "The data path table indicates the start of
689 functional data paths in this device.
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,
699 ::= { dsPolicyClasses 1 }
701 dsDataPathEntry OBJECT-TYPE
702 SYNTAX DsDataPathEntry
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
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,
726 dsDataPathIfDirection }
727 ::= { dsDataPathTable 1 }
729 DsDataPathEntry ::= SEQUENCE {
730 dsDataPathPrid InstanceId,
731 dsDataPathCapSetName SnmpAdminString,
732 dsDataPathRoles RoleCombination,
733 dsDataPathIfDirection IfDirection,
737 dsDataPathPrid OBJECT-TYPE
741 "An arbitrary integer index that uniquely identifies an
742 instance of the class."
743 ::= { dsDataPathEntry 1 }
745 dsDataPathCapSetName OBJECT-TYPE
746 SYNTAX SnmpAdminString
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 }
755 dsDataPathRoles OBJECT-TYPE
756 SYNTAX RoleCombination
759 "The interfaces to which this data path entry applies,
760 specified in terms of roles. There must exist an entry
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 }
770 dsDataPathIfDirection OBJECT-TYPE
774 "Specifies the direction for which this data path
776 ::= { dsDataPathEntry 4 }
778 dsDataPathStart OBJECT-TYPE
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:
791 The PRI pointed to must exist prior to the installation of
792 this datapath start element."
793 ::= { dsDataPathEntry 5 }
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.
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.
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
825 dsClfrTable OBJECT-TYPE
826 SYNTAX SEQUENCE OF DsClfrEntry
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.
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.
840 The dsClfrId of each entry is used to organize all
841 classifier elements belonging to the same classifier."
843 "An Informal Management Model for Diffserv Routers,
844 RFC 3290, section 4.1"
845 ::= { dsPolicyClasses 2 }
847 dsClfrEntry OBJECT-TYPE
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
855 PIB-INDEX { dsClfrPrid }
856 UNIQUENESS { dsClfrId }
857 ::= { dsClfrTable 1 }
859 DsClfrEntry ::= SEQUENCE {
860 dsClfrPrid InstanceId,
861 dsClfrId TagReferenceId
867 dsClfrPrid OBJECT-TYPE
871 "An arbitrary integer index that uniquely identifies an
872 instance of the class."
873 ::= { dsClfrEntry 1 }
876 SYNTAX TagReferenceId
877 PIB-TAG { dsClfrElementClfrId }
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 }
887 -- Classifier Element Table
890 dsClfrElementTable OBJECT-TYPE
891 SYNTAX SEQUENCE OF DsClfrElementEntry
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].
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
917 If there is ambiguity between classifier elements of the same
918 classifier, then dsClfrElementPrecedence needs to be used."
919 ::= { dsPolicyClasses 3 }
921 dsClfrElementEntry OBJECT-TYPE
922 SYNTAX DsClfrElementEntry
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 }
933 DsClfrElementEntry ::= SEQUENCE {
934 dsClfrElementPrid InstanceId,
935 dsClfrElementClfrId TagId,
936 dsClfrElementPrecedence Unsigned32,
937 dsClfrElementNext Prid,
938 dsClfrElementSpecific Prid
941 dsClfrElementPrid OBJECT-TYPE
945 "An arbitrary integer index that uniquely identifies an
946 instance of the class."
947 ::= { dsClfrElementEntry 1 }
949 dsClfrElementClfrId OBJECT-TYPE
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.
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 }
963 dsClfrElementPrecedence OBJECT-TYPE
964 SYNTAX Unsigned32 (1..4294967295)
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.
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 }
988 dsClfrElementNext OBJECT-TYPE
992 "This attribute provides one branch of the fan-out
993 functionality of a classifier described in Diffserv
996 This selects the next diffserv functional datapath
997 element to handle traffic for this data path.
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:
1007 DEFVAL { zeroDotZero }
1008 ::= { dsClfrElementEntry 4 }
1010 dsClfrElementSpecific OBJECT-TYPE
1014 "A pointer to a valid entry in another table that
1015 describes the applicable classification filter, e.g.,
1019 an entry in frwkIpFilterTable (Framework PIB).
1021 The PRI pointed to must exist prior to the installation of
1022 this classifier element.
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 }
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.
1037 -- Multiple meter elements may be logically cascaded
1038 -- using their dsMeterSucceedNext and dsMeterFailNext pointers if
1040 -- One example of this might be for an AF PHB implementation
1041 -- that uses multiple level conformance meters.
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.
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.
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.
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.
1066 dsMeterTable OBJECT-TYPE
1070 SYNTAX SEQUENCE OF DsMeterEntry
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.
1081 Specific meter details are to be found in table entry
1082 referenced by dsMeterSpecific."
1084 "An Informal Management Model for Diffserv Routers,
1085 RFC 3290, section 5"
1086 ::= { dsPolicyClasses 4 }
1088 dsMeterEntry OBJECT-TYPE
1092 "An entry in the meter table describes a single
1093 conformance level of a meter."
1094 PIB-INDEX { dsMeterPrid }
1095 UNIQUENESS { dsMeterSucceedNext,
1098 ::= { dsMeterTable 1 }
1100 DsMeterEntry ::= SEQUENCE {
1101 dsMeterPrid InstanceId,
1102 dsMeterSucceedNext Prid,
1103 dsMeterFailNext Prid,
1104 dsMeterSpecific Prid
1107 dsMeterPrid OBJECT-TYPE
1111 "An arbitrary integer index that uniquely identifies an
1112 instance of the class."
1113 ::= { dsMeterEntry 1 }
1115 dsMeterSucceedNext OBJECT-TYPE
1122 "If the traffic does conform, this selects the next
1123 diffserv functional datapath element to handle
1124 traffic for this data path.
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:
1135 DEFVAL { zeroDotZero }
1136 ::= { dsMeterEntry 2 }
1138 dsMeterFailNext OBJECT-TYPE
1142 "If the traffic does not conform, this selects the
1143 next diffserv functional datapath element to handle
1144 traffic for this data path.
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:
1155 DEFVAL { zeroDotZero }
1156 ::= { dsMeterEntry 3 }
1158 dsMeterSpecific OBJECT-TYPE
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
1167 For example, dsMeterSpecific may point to an
1168 entry in dsTBMeterTable, which contains an
1172 instance of a single set of Token Bucket parameters.
1174 The PRI pointed to must exist prior to installing this
1175 Meter datapath element."
1176 ::= { dsMeterEntry 4 }
1179 -- Token-Bucket Parameter Table
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
1186 -- Note that an entry in the Token Bucket Parameter Table can
1187 -- be shared, pointed to, by multiple dsMeterTable entries.
1190 dsTBParamTable OBJECT-TYPE
1191 SYNTAX SEQUENCE OF DsTBParamEntry
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."
1201 "An Informal Management Model for Diffserv Routers,
1202 RFC 3290, section 5.1"
1203 ::= { dsPolicyClasses 5 }
1205 dsTBParamEntry OBJECT-TYPE
1206 SYNTAX DsTBParamEntry
1209 "An entry that describes a single token-bucket
1211 PIB-INDEX { dsTBParamPrid }
1212 UNIQUENESS { dsTBParamType,
1216 ::= { dsTBParamTable 1 }
1218 DsTBParamEntry ::= SEQUENCE {
1219 dsTBParamPrid InstanceId,
1223 dsTBParamType AutonomousType,
1224 dsTBParamRate Unsigned32,
1225 dsTBParamBurstSize BurstSize,
1226 dsTBParamInterval Unsigned32
1229 dsTBParamPrid OBJECT-TYPE
1233 "An arbitrary integer index that uniquely identifies an
1234 instance of the class."
1235 ::= { dsTBParamEntry 1 }
1237 dsTBParamType OBJECT-TYPE
1238 SYNTAX AutonomousType
1241 "The Metering algorithm associated with the
1242 Token-Bucket parameters. zeroDotZero indicates this
1245 Standard values for generic algorithms are as follows:
1247 diffServTBParamSimpleTokenBucket, diffServTBParamAvgRate,
1248 diffServTBParamSrTCMBlind, diffServTBParamSrTCMAware,
1249 diffServTBParamTrTCMBlind, diffServTBParamTrTCMAware,
1250 diffServTBParamTswTCM
1252 These are specified in the DiffServ MIB."
1254 "An Informal Management Model for Diffserv Routers,
1255 RFC 3290, section 5.1"
1256 ::= { dsTBParamEntry 2 }
1258 dsTBParamRate OBJECT-TYPE
1259 SYNTAX Unsigned32 (1..4294967295)
1260 UNITS "kilobits per second"
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 }
1274 dsTBParamBurstSize OBJECT-TYPE
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 }
1286 dsTBParamInterval OBJECT-TYPE
1287 SYNTAX Unsigned32 (1..4294967295)
1288 UNITS "microseconds"
1291 "The time interval used with the token bucket. For:
1292 1. Average Rate Meter, RFC 3290, section 5.1.1,
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 }
1306 -- The Action Table allows enumeration of the different
1307 -- types of actions to be applied to a traffic flow.
1310 dsActionTable OBJECT-TYPE
1311 SYNTAX SEQUENCE OF DsActionEntry
1315 "The Action Table enumerates actions that can be per-
1316 formed to a stream of traffic. Multiple actions can
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."
1326 "An Informal Management Model for Diffserv Routers,
1327 RFC 3290, section 6."
1328 ::= { dsPolicyClasses 6 }
1330 dsActionEntry OBJECT-TYPE
1331 SYNTAX DsActionEntry
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,
1339 ::= { dsActionTable 1 }
1341 DsActionEntry ::= SEQUENCE {
1342 dsActionPrid InstanceId,
1344 dsActionSpecific Prid
1347 dsActionPrid OBJECT-TYPE
1351 "An arbitrary integer index that uniquely identifies an
1352 instance of the class."
1353 ::= { dsActionEntry 1 }
1355 dsActionNext OBJECT-TYPE
1359 "This selects the next diffserv functional datapath
1360 element to handle traffic for this data path.
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:
1371 DEFVAL { zeroDotZero }
1372 ::= { dsActionEntry 2 }
1377 dsActionSpecific OBJECT-TYPE
1381 "A pointer to an object instance providing additional
1382 information for the type of action indicated by this
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.
1390 The PRI pointed to must exist prior to installing this
1391 action datapath entry."
1392 ::= { dsActionEntry 3 }
1394 -- DSCP Mark Action Table
1396 -- Rows of this class are pointed to by dsActionSpecific
1397 -- to provide detailed parameters specific to the DSCP
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.
1404 dsDscpMarkActTable OBJECT-TYPE
1405 SYNTAX SEQUENCE OF DsDscpMarkActEntry
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."
1413 "An Informal Management Model for Diffserv Routers,
1414 RFC 3290, section 6.1"
1415 ::= { dsPolicyClasses 7 }
1417 dsDscpMarkActEntry OBJECT-TYPE
1418 SYNTAX DsDscpMarkActEntry
1421 "An entry in the DSCP mark action table that describes a
1422 single DSCP used for marking."
1423 PIB-INDEX { dsDscpMarkActPrid }
1427 UNIQUENESS { dsDscpMarkActDscp }
1428 ::= { dsDscpMarkActTable 1 }
1430 DsDscpMarkActEntry ::= SEQUENCE {
1431 dsDscpMarkActPrid InstanceId,
1432 dsDscpMarkActDscp Dscp
1435 dsDscpMarkActPrid OBJECT-TYPE
1439 "An arbitrary integer index that uniquely identifies an
1440 instance of the class."
1441 ::= { dsDscpMarkActEntry 1 }
1443 dsDscpMarkActDscp OBJECT-TYPE
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
1456 ::= { dsDscpMarkActEntry 2 }
1459 -- Algorithmic Drop Table
1462 -- Algorithmic Drop Table is the entry point for the Algorithmic
1463 -- Dropper functional data path element.
1465 -- For a simple algorithmic dropper, a single algorithmic drop entry
1466 -- will be sufficient to parameterize the dropper.
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.
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
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.
1490 dsAlgDropTable OBJECT-TYPE
1491 SYNTAX SEQUENCE OF DsAlgDropEntry
1495 "The algorithmic drop table contains entries describ-
1496 ing a functional data path element that drops
1497 packets according to some algorithm."
1499 "An Informal Management Model for Diffserv Routers,
1500 RFC 3290, section 7.1.3"
1501 ::= { dsPolicyClasses 8 }
1503 dsAlgDropEntry OBJECT-TYPE
1504 SYNTAX DsAlgDropEntry
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,
1516 dsAlgDropQThreshold,
1518 ::= { dsAlgDropTable 1 }
1520 DsAlgDropEntry ::= SEQUENCE {
1521 dsAlgDropPrid InstanceId,
1522 dsAlgDropType INTEGER,
1524 dsAlgDropQMeasure Prid,
1525 dsAlgDropQThreshold Unsigned32,
1529 dsAlgDropSpecific Prid
1532 dsAlgDropPrid OBJECT-TYPE
1536 "An arbitrary integer index that uniquely identifies an
1537 instance of the class."
1538 ::= { dsAlgDropEntry 1 }
1540 dsAlgDropType OBJECT-TYPE
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.
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
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.
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.
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)
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.
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.
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."
1600 ::= { dsAlgDropEntry 2 }
1602 dsAlgDropNext OBJECT-TYPE
1606 "This selects the next diffserv functional datapath
1607 element to handle traffic for this data path.
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:
1619 When dsAlgDropType is alwaysDrop(5), this attribute is
1621 DEFVAL { zeroDotZero }
1622 ::= { dsAlgDropEntry 3 }
1624 dsAlgDropQMeasure OBJECT-TYPE
1631 "Points to a PRI to indicate the queues that a drop algorithm
1632 is to monitor when deciding whether to drop a packet.
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
1641 The PRI pointed to must exist prior to installing
1642 this dropper element."
1643 ::= { dsAlgDropEntry 4 }
1645 dsAlgDropQThreshold OBJECT-TYPE
1646 SYNTAX Unsigned32 (1..4294967295)
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.
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 }
1662 dsAlgDropSpecific OBJECT-TYPE
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.
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.
1674 Entries with dsAlgDropType equal to random-
1675 Drop(4) must have this point to an entry in
1678 Entries with dsAlgDropType equal to mQDrop(6) can use this
1682 attribute to reference parameters that is used by all the
1683 queues of the multiple queues being measured.
1685 For all other algorithms, this should take the value
1687 ::= { dsAlgDropEntry 6 }
1690 -- Multiple Queue Algorithmic Drop Table
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.
1698 -- Entries of this table, dsMQAlgDropEntry, is extended from
1699 -- dsAlgDropEntry, with usage of corresponding parameters the same
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.
1708 dsMQAlgDropTable OBJECT-TYPE
1709 SYNTAX SEQUENCE OF DsMQAlgDropEntry
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 }
1718 dsMQAlgDropEntry OBJECT-TYPE
1719 SYNTAX DsMQAlgDropEntry
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.
1728 Further details of the algorithm type are to be found in
1729 dsAlgDropType and with more detail parameter entry pointed
1733 to by dsMQAlgDropSpecific when necessary."
1734 EXTENDS { dsAlgDropEntry }
1735 UNIQUENESS { dsMQAlgDropExceedNext }
1736 ::= { dsMQAlgDropTable 1 }
1738 DsMQAlgDropEntry ::= SEQUENCE {
1739 dsMQAlgDropExceedNext Prid
1742 dsMQAlgDropExceedNext OBJECT-TYPE
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 }
1753 -- Random Drop Table
1756 dsRandomDropTable OBJECT-TYPE
1757 SYNTAX SEQUENCE OF DsRandomDropEntry
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)."
1766 "An Informal Management Model for Diffserv Routers,
1767 RFC 3290, section 7.1.3"
1768 ::= { dsPolicyClasses 10 }
1770 dsRandomDropEntry OBJECT-TYPE
1771 SYNTAX DsRandomDropEntry
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,
1784 dsRandomDropProbMax,
1786 dsRandomDropSamplingRate
1788 ::= { dsRandomDropTable 1 }
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
1801 dsRandomDropPrid OBJECT-TYPE
1805 "An arbitrary integer index that uniquely identifies an
1806 instance of the class."
1807 ::= { dsRandomDropEntry 1 }
1809 dsRandomDropMinThreshBytes OBJECT-TYPE
1810 SYNTAX Unsigned32 (1..4294967295)
1814 "The average queue depth in bytes, beyond which traffic has a
1815 non-zero probability of being dropped."
1816 ::= { dsRandomDropEntry 2 }
1818 dsRandomDropMinThreshPkts OBJECT-TYPE
1819 SYNTAX Unsigned32 (1..4294967295)
1823 "The average queue depth in packets, beyond which traffic has
1824 a non-zero probability of being dropped."
1825 ::= { dsRandomDropEntry 3 }
1827 dsRandomDropMaxThreshBytes OBJECT-TYPE
1828 SYNTAX Unsigned32 (1..4294967295)
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 }
1841 dsRandomDropMaxThreshPkts OBJECT-TYPE
1842 SYNTAX Unsigned32 (1..4294967295)
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 }
1852 dsRandomDropProbMax OBJECT-TYPE
1853 SYNTAX Unsigned32 (0..1000)
1856 "The worst case random drop probability, expressed in drops
1857 per thousand packets.
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
1863 ::= { dsRandomDropEntry 6 }
1865 dsRandomDropWeight OBJECT-TYPE
1866 SYNTAX Unsigned32 (0..4294967295)
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.
1878 Implementations may further limit the values of
1879 dsRandomDropWeight via the capability tables."
1880 ::= { dsRandomDropEntry 7 }
1882 dsRandomDropSamplingRate OBJECT-TYPE
1886 SYNTAX Unsigned32 (0..1000000)
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
1893 ::= { dsRandomDropEntry 8 }
1900 -- An entry of dsQTable represents a FIFO queue diffserv
1901 -- functional data path element as described in [MODEL] section
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.
1913 -- Notice one or more upstream diffserv functional data path element
1914 -- may share, point to, a dsQTable entry as described in [MODEL]
1918 dsQTable OBJECT-TYPE
1919 SYNTAX SEQUENCE OF DsQEntry
1923 "The Queue Table enumerates the queues."
1924 ::= { dsPolicyClasses 11 }
1926 dsQEntry OBJECT-TYPE
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,
1941 DsQEntry ::= SEQUENCE {
1952 "An arbitrary integer index that uniquely identifies an
1953 instance of the class."
1960 "This selects the next diffserv scheduler. This must point
1961 to a dsSchedulerEntry.
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
1969 dsQMinRate OBJECT-TYPE
1973 "This Prid indicates the entry in dsMinRateTable
1974 the scheduler, pointed to by dsQNext, should use to service
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."
1982 dsQMaxRate OBJECT-TYPE
1989 "This Prid indicates the entry in dsMaxRateTable
1990 the scheduler, pointed to by dsQNext, should use to service
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."
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.
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.
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.
2020 -- More discussion of the scheduler functional data path element
2021 -- is in [MODEL] section 7.1.2.
2024 dsSchedulerTable OBJECT-TYPE
2025 SYNTAX SEQUENCE OF DsSchedulerEntry
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
2034 "An Informal Management Model for Diffserv Routers,
2035 RFC 3290, section 7.1.2"
2039 ::= { dsPolicyClasses 12 }
2041 dsSchedulerEntry OBJECT-TYPE
2042 SYNTAX DsSchedulerEntry
2045 "An entry in the Scheduler Table describing a single
2046 instance of a scheduling algorithm."
2047 PIB-INDEX { dsSchedulerPrid }
2048 UNIQUENESS { dsSchedulerNext,
2051 dsSchedulerMaxRate }
2052 ::= { dsSchedulerTable 1 }
2054 DsSchedulerEntry ::= SEQUENCE {
2055 dsSchedulerPrid InstanceId,
2056 dsSchedulerNext Prid,
2057 dsSchedulerMethod AutonomousType,
2058 dsSchedulerMinRate Prid,
2059 dsSchedulerMaxRate Prid
2062 dsSchedulerPrid OBJECT-TYPE
2066 "An arbitrary integer index that uniquely identifies an
2067 instance of the class."
2068 ::= { dsSchedulerEntry 1 }
2070 dsSchedulerNext OBJECT-TYPE
2074 "This selects the next diffserv functional datapath
2075 element to handle traffic for this data path.
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:
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 }
2102 dsSchedulerMethod OBJECT-TYPE
2103 SYNTAX AutonomousType
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."
2115 "An Informal Management Model for Diffserv Routers,
2116 RFC 3290, section 7.1.2"
2117 ::= { dsSchedulerEntry 3 }
2119 dsSchedulerMinRate OBJECT-TYPE
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.
2128 When it has the value zeroDotZero, it indicates that no
2129 Minimum rate or priority is imposed."
2130 DEFVAL { zeroDotZero }
2131 ::= { dsSchedulerEntry 4 }
2133 dsSchedulerMaxRate OBJECT-TYPE
2137 "This Prid indicates the entry in dsMaxRateTable
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
2147 When it has the value zeroDotZero, it indicates that no
2148 Maximum rate is imposed."
2149 DEFVAL { zeroDotZero }
2150 ::= { dsSchedulerEntry 5 }
2153 -- Minimum Rate Parameters Table
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
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.
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.
2182 dsMinRateTable OBJECT-TYPE
2183 SYNTAX SEQUENCE OF DsMinRateEntry
2187 "The Minimum Rate Table enumerates individual
2188 sets of scheduling parameter that can be used/reused
2192 by Queues and Schedulers."
2193 ::= { dsPolicyClasses 13 }
2195 dsMinRateEntry OBJECT-TYPE
2196 SYNTAX DsMinRateEntry
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,
2206 ::= { dsMinRateTable 1 }
2208 DsMinRateEntry ::= SEQUENCE {
2209 dsMinRatePrid InstanceId,
2210 dsMinRatePriority Unsigned32,
2211 dsMinRateAbsolute Unsigned32,
2212 dsMinRateRelative Unsigned32
2215 dsMinRatePrid OBJECT-TYPE
2219 "An arbitrary integer index that uniquely identifies an
2220 instance of the class."
2221 ::= { dsMinRateEntry 1 }
2223 dsMinRatePriority OBJECT-TYPE
2224 SYNTAX Unsigned32 (1..4294967295)
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 }
2233 dsMinRateAbsolute OBJECT-TYPE
2234 SYNTAX Unsigned32 (1..4294967295)
2235 UNITS "kilobits per second"
2238 "The minimum absolute rate, in kilobits/sec, that a downstream
2239 scheduler element should allocate to this queue. If the value
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.
2247 Note that this attribute's value is coupled to that
2248 of dsMinRateRelative: changes to one will affect the value
2251 [IFMIB] defines ifSpeed as Gauge32 in units of bits per
2252 second, and ifHighSpeed as Gauge32 in units of 1,000,000 bits
2254 This yields the following equations:
2256 RateRelative = [ (RateAbsolute * 1000) / ifSpeed ] * 1,000
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
2265 { [ (RateAbsolute * 1000) / 1,000,000 ] / ifHIghSpeed } *
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."
2272 "ifSpeed, ifHighSpeed from the IF-MIB, RFC 2863."
2273 ::= { dsMinRateEntry 3 }
2275 dsMinRateRelative OBJECT-TYPE
2276 SYNTAX Unsigned32 (1..4294967295)
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
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.
2295 [IFMIB] defines ifSpeed as Gauge32 in units of bits per
2296 second, and ifHighSpeed as Gauge32 in units of 1,000,000 bits
2298 This yields the following equations:
2300 RateRelative = [ (RateAbsolute * 1000) / ifSpeed ] * 1,000
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
2309 { [ (RateAbsolute * 1000) / 1,000,000 ] / ifHIghSpeed } *
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."
2316 "ifSpeed, ifHighSpeed from the IF-MIB, RFC 2863."
2317 ::= { dsMinRateEntry 4 }
2320 -- Maximum Rate Parameters Table
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.
2329 -- Use of these Maximum Rate Parameter Table entries by Queues and
2330 -- Schedulers allows the modeling of hierarchical scheduling
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.
2341 -- The dsMaxRateLevel/Absolute/Relative attributes are used as
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
2355 dsMaxRateTable OBJECT-TYPE
2356 SYNTAX SEQUENCE OF DsMaxRateEntry
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 }
2365 dsMaxRateEntry OBJECT-TYPE
2366 SYNTAX DsMaxRateEntry
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,
2377 dsMaxRateThreshold }
2378 ::= { dsMaxRateTable 1 }
2380 DsMaxRateEntry ::= SEQUENCE {
2381 dsMaxRatePrid InstanceId,
2382 dsMaxRateId Unsigned32,
2383 dsMaxRateLevel Unsigned32,
2384 dsMaxRateAbsolute Unsigned32,
2385 dsMaxRateRelative Unsigned32,
2386 dsMaxRateThreshold BurstSize
2389 dsMaxRatePrid OBJECT-TYPE
2396 "An arbitrary integer index that uniquely identifies an
2397 instance of the class."
2398 ::= { dsMaxRateEntry 1 }
2400 dsMaxRateId OBJECT-TYPE
2401 SYNTAX Unsigned32 (0..4294967295)
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."
2413 ::= { dsMaxRateEntry 2 }
2415 dsMaxRateLevel OBJECT-TYPE
2416 SYNTAX Unsigned32 (1..32)
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
2429 When the entry is used for a single rate shaper, this
2430 attribute contains a value of one."
2432 ::= { dsMaxRateEntry 3 }
2434 dsMaxRateAbsolute OBJECT-TYPE
2435 SYNTAX Unsigned32 (1..4294967295)
2436 UNITS "kilobits per second"
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
2447 is non-zero, the scheduler will limit the servicing
2448 of this queue to, at most, this rate in a non-work-
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.
2455 [IFMIB] defines ifSpeed as Gauge32 in units of bits per
2456 second, and ifHighSpeed as Gauge32 in units of 1,000,000 bits
2458 This yields the following equations:
2460 RateRelative = [ (RateAbsolute * 1000) / ifSpeed ] * 1,000
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'
2469 { [ (RateAbsolute * 1000) / 1,000,000 ] / ifHIghSpeed } *
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 }
2477 dsMaxRateRelative OBJECT-TYPE
2478 SYNTAX Unsigned32 (1..4294967295)
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
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.
2499 [IFMIB] defines ifSpeed as Gauge32 in units of bits per
2500 second, and ifHighSpeed as Gauge32 in units of 1,000,000 bits
2502 This yields the following equations:
2504 RateRelative = [ (RateAbsolute * 1000) / ifSpeed ] * 1,000
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
2513 { [ (RateAbsolute * 1000) / 1,000,000 ] / ifHIghSpeed } *
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."
2520 "ifSpeed, ifHighSpeed from the IF-MIB, RFC 2863."
2521 ::= { dsMaxRateEntry 5 }
2523 dsMaxRateThreshold OBJECT-TYPE
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."
2533 "Adaptive Rate Shaper, RFC 2963"
2534 ::= { dsMaxRateEntry 6 }
2537 -- Conformance Section
2540 dsPolicyPibCompliances
2541 OBJECT IDENTIFIER ::= { dsPolicyPibConformance 1 }
2543 OBJECT IDENTIFIER ::= { dsPolicyPibConformance 2 }
2545 dsPolicyPibCompliance MODULE-COMPLIANCE
2551 "Describes the requirements for conformance to the
2554 MODULE FRAMEWORK-PIB
2556 frwkPrcSupportGroup,
2557 frwkPibIncarnationGroup,
2559 frwkCompLimitsGroup,
2560 frwkCapabilitySetGroup,
2562 frwkIfRoleComboGroup,
2563 frwkBaseFilterGroup,
2566 OBJECT frwkPibIncarnationLongevity
2567 PIB-MIN-ACCESS notify
2569 "Install support is required if policy expiration is to
2572 OBJECT frwkPibIncarnationTtl
2573 PIB-MIN-ACCESS notify
2575 "Install support is required if policy expiration is to
2578 MODULE DIFFSERV-PIB -- this module
2580 dsPibBaseIfCapsGroup,
2581 dsPibIfClassificationCapsGroup,
2582 dsPibIfAlgDropCapsGroup,
2583 dsPibIfQueueCapsGroup,
2584 dsPibIfSchedulerCapsGroup,
2585 dsPibIfMaxRateCapsGroup,
2586 dsPibIfElmDepthCapsGroup,
2587 dsPibIfElmLinkCapsGroup,
2590 dsPibClfrElementGroup,
2594 dsPibSchedulerGroup,
2601 GROUP dsPibIfMeteringCapsGroup
2603 "This group is mandatory for devices that implement
2604 metering functions."
2606 GROUP dsPibMeterGroup
2608 "This group is mandatory for devices that implement
2609 metering functions."
2611 GROUP dsPibTBParamGroup
2613 "This group is mandatory for devices that implement
2614 token-bucket metering functions."
2616 GROUP dsPibDscpMarkActGroup
2618 "This group is mandatory for devices that implement
2619 DSCP-Marking functions."
2621 GROUP dsPibMQAlgDropGroup
2623 "This group is mandatory for devices that implement
2624 Multiple Queue Measured Algorithmic Drop functions."
2626 GROUP dsPibRandomDropGroup
2628 "This group is mandatory for devices that implement
2629 Random Drop functions."
2632 PIB-MIN-ACCESS not-accessible
2634 "Install support is not required."
2636 OBJECT dsClfrElementClfrId
2637 PIB-MIN-ACCESS not-accessible
2639 "Install support is not required."
2641 OBJECT dsClfrElementPrecedence
2642 PIB-MIN-ACCESS not-accessible
2644 "Install support is not required."
2646 OBJECT dsClfrElementNext
2647 PIB-MIN-ACCESS not-accessible
2652 "Install support is not required."
2654 OBJECT dsClfrElementSpecific
2655 PIB-MIN-ACCESS not-accessible
2657 "Install support is not required."
2659 OBJECT dsMeterSucceedNext
2660 PIB-MIN-ACCESS not-accessible
2662 "Install support is not required."
2664 OBJECT dsMeterFailNext
2665 PIB-MIN-ACCESS not-accessible
2667 "Install support is not required."
2669 OBJECT dsMeterSpecific
2670 PIB-MIN-ACCESS not-accessible
2672 "Install support is not required."
2674 OBJECT dsTBParamType
2675 PIB-MIN-ACCESS not-accessible
2677 "Install support is not required."
2679 OBJECT dsTBParamRate
2680 PIB-MIN-ACCESS not-accessible
2682 "Install support is not required."
2684 OBJECT dsTBParamBurstSize
2685 PIB-MIN-ACCESS not-accessible
2687 "Install support is not required."
2689 OBJECT dsTBParamInterval
2690 PIB-MIN-ACCESS not-accessible
2692 "Install support is not required."
2695 PIB-MIN-ACCESS not-accessible
2697 "Install support is not required."
2702 OBJECT dsActionSpecific
2703 PIB-MIN-ACCESS not-accessible
2705 "Install support is not required."
2707 OBJECT dsAlgDropType
2708 PIB-MIN-ACCESS not-accessible
2710 "Install support is not required."
2712 OBJECT dsAlgDropNext
2713 PIB-MIN-ACCESS not-accessible
2715 "Install support is not required."
2717 OBJECT dsAlgDropQMeasure
2718 PIB-MIN-ACCESS not-accessible
2720 "Install support is not required."
2722 OBJECT dsAlgDropQThreshold
2723 PIB-MIN-ACCESS not-accessible
2725 "Install support is not required."
2727 OBJECT dsAlgDropSpecific
2728 PIB-MIN-ACCESS not-accessible
2730 "Install support is not required."
2732 OBJECT dsRandomDropMinThreshBytes
2733 PIB-MIN-ACCESS not-accessible
2735 "Install support is not required."
2737 OBJECT dsRandomDropMinThreshPkts
2738 PIB-MIN-ACCESS not-accessible
2740 "Install support is not required."
2742 OBJECT dsRandomDropMaxThreshBytes
2743 PIB-MIN-ACCESS not-accessible
2745 "Install support is not required."
2747 OBJECT dsRandomDropMaxThreshPkts
2748 PIB-MIN-ACCESS not-accessible
2753 "Install support is not required."
2755 OBJECT dsRandomDropProbMax
2756 PIB-MIN-ACCESS not-accessible
2758 "Install support is not required."
2760 OBJECT dsRandomDropWeight
2761 PIB-MIN-ACCESS not-accessible
2763 "Install support is not required."
2765 OBJECT dsRandomDropSamplingRate
2766 PIB-MIN-ACCESS not-accessible
2768 "Install support is not required."
2771 PIB-MIN-ACCESS not-accessible
2773 "Install support is not required."
2776 PIB-MIN-ACCESS not-accessible
2778 "Install support is not required."
2781 PIB-MIN-ACCESS not-accessible
2783 "Install support is not required."
2785 OBJECT dsSchedulerNext
2786 PIB-MIN-ACCESS not-accessible
2788 "Install support is not required."
2790 OBJECT dsSchedulerMethod
2791 PIB-MIN-ACCESS not-accessible
2793 "Install support is not required."
2795 OBJECT dsSchedulerMinRate
2796 PIB-MIN-ACCESS not-accessible
2798 "Install support is not required."
2800 OBJECT dsSchedulerMaxRate
2804 PIB-MIN-ACCESS not-accessible
2806 "Install support is not required."
2808 OBJECT dsMinRatePriority
2809 PIB-MIN-ACCESS not-accessible
2811 "Install support is not required."
2813 OBJECT dsMinRateAbsolute
2814 PIB-MIN-ACCESS not-accessible
2816 "Install support is not required."
2818 OBJECT dsMinRateRelative
2819 PIB-MIN-ACCESS not-accessible
2821 "Install support is not required."
2824 PIB-MIN-ACCESS not-accessible
2826 "Install support is not required."
2828 OBJECT dsMaxRateLevel
2829 PIB-MIN-ACCESS not-accessible
2831 "Install support is not required."
2833 OBJECT dsMaxRateAbsolute
2834 PIB-MIN-ACCESS not-accessible
2836 "Install support is not required."
2838 OBJECT dsMaxRateRelative
2839 PIB-MIN-ACCESS not-accessible
2841 "Install support is not required."
2843 OBJECT dsMaxRateThreshold
2844 PIB-MIN-ACCESS not-accessible
2846 "Install support is not required."
2848 ::= { dsPolicyPibCompliances 1 }
2850 dsPibBaseIfCapsGroup OBJECT-GROUP
2855 dsBaseIfCapsPrid, dsBaseIfCapsDirection
2859 "The Base Interface Capability Group defines the PIB
2860 Objects that describe the base for interface capabilities."
2861 ::= { dsPolicyPibGroups 1 }
2863 dsPibIfClassificationCapsGroup OBJECT-GROUP
2865 dsIfClassificationCapsSpec
2869 "The Classification Capability Group defines the PIB
2870 Objects that describe the classification capabilities."
2871 ::= { dsPolicyPibGroups 2 }
2873 dsPibIfMeteringCapsGroup OBJECT-GROUP
2875 dsIfMeteringCapsSpec
2879 "The Metering Capability Group defines the PIB
2880 Objects that describe the metering capabilities."
2881 ::= { dsPolicyPibGroups 3 }
2883 dsPibIfAlgDropCapsGroup OBJECT-GROUP
2885 dsIfAlgDropCapsType, dsIfAlgDropCapsMQCount
2889 "The Algorithmic Dropper Capability Group defines the
2890 PIB Objects that describe the algorithmic dropper
2892 ::= { dsPolicyPibGroups 4 }
2894 dsPibIfQueueCapsGroup OBJECT-GROUP
2896 dsIfQueueCapsMinQueueSize, dsIfQueueCapsMaxQueueSize,
2897 dsIfQueueCapsTotalQueueSize
2901 "The Queueing Capability Group defines the PIB
2902 Objects that describe the queueing capabilities."
2906 ::= { dsPolicyPibGroups 5 }
2908 dsPibIfSchedulerCapsGroup OBJECT-GROUP
2910 dsIfSchedulerCapsServiceDisc, dsIfSchedulerCapsMaxInputs,
2911 dsIfSchedulerCapsMinMaxRate
2915 "The Scheduler Capability Group defines the PIB
2916 Objects that describe the scheduler capabilities."
2917 ::= { dsPolicyPibGroups 6 }
2919 dsPibIfMaxRateCapsGroup OBJECT-GROUP
2921 dsIfMaxRateCapsMaxLevels
2925 "The Max Rate Capability Group defines the PIB
2926 Objects that describe the max rate capabilities."
2927 ::= { dsPolicyPibGroups 7 }
2929 dsPibIfElmDepthCapsGroup OBJECT-GROUP
2931 dsIfElmDepthCapsPrc, dsIfElmDepthCapsCascadeMax
2935 "The DataPath Element Depth Capability Group defines the PIB
2936 Objects that describe the datapath element depth
2938 ::= { dsPolicyPibGroups 8 }
2940 dsPibIfElmLinkCapsGroup OBJECT-GROUP
2942 dsIfElmLinkCapsPrc, dsIfElmLinkCapsAttr,
2943 dsIfElmLinkCapsNextPrc
2947 "The DataPath Element Linkage Capability Group defines the
2948 PIB Objects that describe the datapath element linkage
2950 ::= { dsPolicyPibGroups 9 }
2952 dsPibDataPathGroup OBJECT-GROUP
2957 dsDataPathPrid, dsDataPathCapSetName,
2958 dsDataPathRoles, dsDataPathIfDirection,
2963 "The Data Path Group defines the PIB Objects that
2964 describe a data path."
2965 ::= { dsPolicyPibGroups 10 }
2967 dsPibClfrGroup OBJECT-GROUP
2969 dsClfrPrid, dsClfrId
2973 "The Classifier Group defines the PIB Objects that
2974 describe a generic classifier."
2975 ::= { dsPolicyPibGroups 11 }
2977 dsPibClfrElementGroup OBJECT-GROUP
2979 dsClfrElementPrid, dsClfrElementClfrId,
2980 dsClfrElementPrecedence, dsClfrElementNext,
2981 dsClfrElementSpecific
2985 "The Classifier Group defines the PIB Objects that
2986 describe a generic classifier."
2987 ::= { dsPolicyPibGroups 12 }
2989 dsPibMeterGroup OBJECT-GROUP
2991 dsMeterPrid, dsMeterSucceedNext,
2992 dsMeterFailNext, dsMeterSpecific
2996 "The Meter Group defines the objects used in describ-
2997 ing a generic meter element."
2998 ::= { dsPolicyPibGroups 13 }
3000 dsPibTBParamGroup OBJECT-GROUP
3002 dsTBParamPrid, dsTBParamType, dsTBParamRate,
3003 dsTBParamBurstSize, dsTBParamInterval
3010 "The Token-Bucket Parameter Group defines the objects
3011 used in describing a single-rate token bucket meter
3013 ::= { dsPolicyPibGroups 14 }
3015 dsPibActionGroup OBJECT-GROUP
3017 dsActionPrid, dsActionNext, dsActionSpecific
3021 "The Action Group defines the objects used in
3022 describing a generic action element."
3023 ::= { dsPolicyPibGroups 15 }
3025 dsPibDscpMarkActGroup OBJECT-GROUP
3027 dsDscpMarkActPrid, dsDscpMarkActDscp
3031 "The DSCP Mark Action Group defines the objects used
3032 in describing a DSCP Marking Action element."
3033 ::= { dsPolicyPibGroups 16 }
3035 dsPibAlgDropGroup OBJECT-GROUP
3037 dsAlgDropPrid, dsAlgDropType, dsAlgDropNext,
3038 dsAlgDropQMeasure, dsAlgDropQThreshold,
3043 "The Algorithmic Drop Group contains the objects that
3044 describe algorithmic dropper operation and configura-
3046 ::= { dsPolicyPibGroups 17 }
3048 dsPibMQAlgDropGroup OBJECT-GROUP
3050 dsMQAlgDropExceedNext
3054 "The Multiple Queue Measured Algorithmic Drop Group
3055 contains the objects that describe multiple queue
3059 measured algorithmic dropper operation and configuration."
3060 ::= { dsPolicyPibGroups 18 }
3062 dsPibRandomDropGroup OBJECT-GROUP
3065 dsRandomDropMinThreshBytes,
3066 dsRandomDropMinThreshPkts,
3067 dsRandomDropMaxThreshBytes,
3068 dsRandomDropMaxThreshPkts,
3069 dsRandomDropProbMax,
3071 dsRandomDropSamplingRate
3075 "The Random Drop Group augments the Algorithmic Drop Group
3076 for random dropper operation and configuration."
3077 ::= { dsPolicyPibGroups 19 }
3079 dsPibQGroup OBJECT-GROUP
3081 dsQPrid, dsQNext, dsQMinRate, dsQMaxRate
3085 "The Queue Group contains the objects that describe
3086 an interface type's queues."
3087 ::= { dsPolicyPibGroups 20 }
3089 dsPibSchedulerGroup OBJECT-GROUP
3091 dsSchedulerPrid, dsSchedulerNext, dsSchedulerMethod,
3092 dsSchedulerMinRate, dsSchedulerMaxRate
3096 "The Scheduler Group contains the objects that
3097 describe packet schedulers on interface types."
3098 ::= { dsPolicyPibGroups 21 }
3100 dsPibMinRateGroup OBJECT-GROUP
3102 dsMinRatePrid, dsMinRatePriority,
3103 dsMinRateAbsolute, dsMinRateRelative
3110 "The Minimum Rate Group contains the objects
3111 that describe packet schedulers' parameters on interface
3113 ::= { dsPolicyPibGroups 22 }
3115 dsPibMaxRateGroup OBJECT-GROUP
3117 dsMaxRatePrid, dsMaxRateId, dsMaxRateLevel,
3118 dsMaxRateAbsolute, dsMaxRateRelative,
3123 "The Maximum Rate Group contains the objects
3124 that describe packet schedulers' parameters on interface
3126 ::= { dsPolicyPibGroups 23 }