Imported Upstream version 0.4.8
[platform/upstream/libsmi.git] / mibs / ietf / DIFFSERV-MIB
1 DIFFSERV-MIB DEFINITIONS ::= BEGIN
2
3     IMPORTS
4     Unsigned32, Counter64, MODULE-IDENTITY, OBJECT-TYPE,
5     OBJECT-IDENTITY, zeroDotZero, mib-2
6          FROM SNMPv2-SMI
7     TEXTUAL-CONVENTION, RowStatus, RowPointer,
8     StorageType, AutonomousType
9          FROM SNMPv2-TC
10     MODULE-COMPLIANCE, OBJECT-GROUP
11          FROM SNMPv2-CONF
12     ifIndex, InterfaceIndexOrZero
13         FROM IF-MIB
14     InetAddressType, InetAddress, InetAddressPrefixLength,
15     InetPortNumber
16         FROM INET-ADDRESS-MIB
17     BurstSize
18         FROM INTEGRATED-SERVICES-MIB
19     Dscp, DscpOrAny
20         FROM DIFFSERV-DSCP-TC;
21
22 diffServMib MODULE-IDENTITY
23     LAST-UPDATED "200202070000Z"
24     ORGANIZATION "IETF Differentiated Services WG"
25     CONTACT-INFO
26        "       Fred Baker
27                Cisco Systems
28                1121 Via Del Rey
29                Santa Barbara, CA 93117, USA
30                E-mail: fred@cisco.com
31
32                Kwok Ho Chan
33                Nortel Networks
34                600 Technology Park Drive
35                Billerica, MA 01821, USA
36                E-mail: khchan@nortelnetworks.com
37
38                Andrew Smith
39                Harbour Networks
40                Jiuling Building
41
42
43                21 North Xisanhuan Ave.
44                Beijing, 100089, PRC
45                E-mail: ah_smith@acm.org
46
47                Differentiated Services Working Group:
48                diffserv@ietf.org"
49     DESCRIPTION
50        "This MIB defines the objects necessary to manage a device that
51        uses the Differentiated Services Architecture described in RFC
52        2475. The Conceptual Model of a Differentiated Services Router
53        provides supporting information on how such a router is modeled."
54     REVISION "200202070000Z"
55     DESCRIPTION
56        "Initial version, published as RFC 3289."
57     ::= { mib-2 97 }
58
59 diffServMIBObjects     OBJECT IDENTIFIER ::= { diffServMib 1 }
60 diffServMIBConformance OBJECT IDENTIFIER ::= { diffServMib 2 }
61 diffServMIBAdmin       OBJECT IDENTIFIER ::= { diffServMib 3 }
62
63 IndexInteger ::= TEXTUAL-CONVENTION
64     DISPLAY-HINT "d"
65     STATUS   current
66     DESCRIPTION
67        "An integer which may be used as a table index."
68     SYNTAX   Unsigned32 (1..4294967295)
69
70 IndexIntegerNextFree ::= TEXTUAL-CONVENTION
71     DISPLAY-HINT "d"
72     STATUS   current
73     DESCRIPTION
74        "An integer which may be used as a new Index in a table.
75
76        The special value of 0 indicates that no more new entries can be
77        created in the relevant table.
78
79        When a MIB is used for configuration, an object with this SYNTAX
80        always contains a legal value (if non-zero) for an index that is
81        not currently used in the relevant table. The Command Generator
82        (Network Management Application) reads this variable and uses the
83        (non-zero) value read when creating a new row with an SNMP SET.
84        When the SET is performed, the Command Responder (agent) must
85        determine whether the value is indeed still unused; Two Network
86        Management Applications may attempt to create a row
87        (configuration entry) simultaneously and use the same value. If
88        it is currently unused, the SET succeeds and the Command
89        Responder (agent) changes the value of this object, according to
90        an implementation-specific algorithm.  If the value is in use,
91
92
93
94        however, the SET fails.  The Network Management Application must
95        then re-read this variable to obtain a new usable value.
96
97        An OBJECT-TYPE definition using this SYNTAX MUST specify the
98        relevant table for which the object is providing this
99        functionality."
100     SYNTAX   Unsigned32 (0..4294967295)
101
102 IfDirection ::= TEXTUAL-CONVENTION
103     STATUS current
104     DESCRIPTION
105        "IfDirection specifies a direction of data travel on an
106        interface. 'inbound' traffic is operated on during reception from
107        the interface, while 'outbound' traffic is operated on prior to
108        transmission on the interface."
109     SYNTAX  INTEGER {
110                 inbound(1),     -- ingress interface
111                 outbound(2)     -- egress interface
112 }
113
114 --
115 -- Data Path
116 --
117
118 diffServDataPath       OBJECT IDENTIFIER ::= { diffServMIBObjects 1 }
119
120 --
121 -- Data Path Table
122 --
123 -- The Data Path Table enumerates the Differentiated Services
124 -- Functional Data Paths within this device.  Each entry in this table
125 -- is indexed by ifIndex and ifDirection.  Each entry provides the
126 -- first Differentiated Services Functional Data Path Element to
127 -- process data flowing along specific data path.  This table should
128 -- have at most two entries for each interface capable of
129 -- Differentiated Services processing on this device: ingress and
130 -- egress.
131
132 -- Note that Differentiated Services Functional Data Path Elements
133 -- linked together using their individual next pointers and anchored by
134 -- an entry of the diffServDataPathTable constitute a functional data
135 -- path.
136 --
137
138 diffServDataPathTable OBJECT-TYPE
139     SYNTAX       SEQUENCE OF DiffServDataPathEntry
140     MAX-ACCESS   not-accessible
141     STATUS       current
142
143
144
145     DESCRIPTION
146        "The data path table contains RowPointers indicating the start of
147        the functional data path for each interface and traffic direction
148        in this device. These may merge, or be separated into parallel
149        data paths."
150     ::= { diffServDataPath 1 }
151
152 diffServDataPathEntry OBJECT-TYPE
153     SYNTAX       DiffServDataPathEntry
154     MAX-ACCESS   not-accessible
155     STATUS       current
156     DESCRIPTION
157        "An entry in the data path table indicates the start of a single
158        Differentiated Services Functional Data Path in this device.
159
160        These are associated with individual interfaces, logical or
161        physical, and therefore are instantiated by ifIndex. Therefore,
162        the interface index must have been assigned, according to the
163        procedures applicable to that, before it can be meaningfully
164        used. Generally, this means that the interface must exist.
165
166        When diffServDataPathStorage is of type nonVolatile, however,
167        this may reflect the configuration for an interface whose ifIndex
168        has been assigned but for which the supporting implementation is
169        not currently present."
170     INDEX { ifIndex, diffServDataPathIfDirection }
171     ::= { diffServDataPathTable 1 }
172
173 DiffServDataPathEntry ::= SEQUENCE  {
174     diffServDataPathIfDirection    IfDirection,
175     diffServDataPathStart          RowPointer,
176     diffServDataPathStorage        StorageType,
177     diffServDataPathStatus         RowStatus
178 }
179
180 diffServDataPathIfDirection OBJECT-TYPE
181     SYNTAX       IfDirection
182     MAX-ACCESS   not-accessible
183     STATUS       current
184     DESCRIPTION
185        "IfDirection specifies whether the reception or transmission path
186        for this interface is in view."
187     ::= { diffServDataPathEntry 1 }
188
189 diffServDataPathStart OBJECT-TYPE
190     SYNTAX       RowPointer
191     MAX-ACCESS   read-create
192     STATUS       current
193
194
195
196     DESCRIPTION
197        "This selects the first Differentiated Services Functional Data
198        Path Element to handle traffic for this data path. This
199        RowPointer should point to an instance of one of:
200          diffServClfrEntry
201          diffServMeterEntry
202          diffServActionEntry
203          diffServAlgDropEntry
204          diffServQEntry
205
206        A value of zeroDotZero in this attribute indicates that no
207        Differentiated Services treatment is performed on traffic of this
208        data path. A pointer with the value zeroDotZero normally
209        terminates a functional data path.
210
211        Setting this to point to a target that does not exist results in
212        an inconsistentValue error.  If the row pointed to is removed or
213        becomes inactive by other means, the treatment is as if this
214        attribute contains a value of zeroDotZero."
215     ::= { diffServDataPathEntry 2 }
216
217 diffServDataPathStorage OBJECT-TYPE
218     SYNTAX       StorageType
219     MAX-ACCESS   read-create
220     STATUS       current
221     DESCRIPTION
222        "The storage type for this conceptual row.  Conceptual rows
223        having the value 'permanent' need not allow write-access to any
224        columnar objects in the row."
225     DEFVAL { nonVolatile }
226     ::= { diffServDataPathEntry 3 }
227
228 diffServDataPathStatus OBJECT-TYPE
229     SYNTAX       RowStatus
230     MAX-ACCESS   read-create
231     STATUS       current
232     DESCRIPTION
233        "The status of this conceptual row. All writable objects in this
234        row may be modified at any time."
235     ::= { diffServDataPathEntry 4 }
236
237 --
238 -- Classifiers
239 --
240
241 diffServClassifier     OBJECT IDENTIFIER ::= { diffServMIBObjects 2 }
242
243 --
244
245
246
247 -- Classifier Table
248 --
249 -- The Classifier Table allows multiple classifier elements, of same or
250 -- different types, to be used together. A classifier must completely
251 -- classify all packets presented to it. This means that all traffic
252 -- presented to a classifier must match at least one classifier element
253 -- within the classifier, with the classifier element parameters
254 -- specified by a filter.
255
256 -- If there is ambiguity between classifier elements of different
257 -- classifier, classifier linkage order indicates their precedence; the
258 -- first classifier in the link is applied to the traffic first.
259
260 -- Entries in the classifier element table serves as the anchor for
261 -- each classification pattern, defined in filter table entries.  Each
262 -- classifier element table entry also specifies the subsequent
263 -- downstream Differentiated Services Functional Data Path Element when
264 -- the classification pattern is satisfied. Each entry in the
265 -- classifier element table describes one branch of the fan-out
266 -- characteristic of a classifier indicated in the Informal
267 -- Differentiated Services Model section 4.1.  A classifier is composed
268 -- of one or more classifier elements.
269
270 diffServClfrNextFree OBJECT-TYPE
271     SYNTAX       IndexIntegerNextFree
272     MAX-ACCESS   read-only
273     STATUS       current
274     DESCRIPTION
275        "This object contains an unused value for diffServClfrId, or a
276        zero to indicate that none exist."
277     ::= { diffServClassifier 1 }
278
279 diffServClfrTable OBJECT-TYPE
280     SYNTAX       SEQUENCE OF DiffServClfrEntry
281     MAX-ACCESS   not-accessible
282     STATUS       current
283     DESCRIPTION
284        "This table enumerates all the diffserv classifier functional
285        data path elements of this device.  The actual classification
286        definitions are defined in diffServClfrElementTable entries
287        belonging to each classifier.
288
289        An entry in this table, pointed to by a RowPointer specifying an
290        instance of diffServClfrStatus, is frequently used as the name
291        for a set of classifier elements, which all use the index
292        diffServClfrId. Per the semantics of the classifier element
293        table, these entries constitute one or more unordered sets of
294        tests which may be simultaneously applied to a message to
295
296
297
298        classify it.
299
300        The primary function of this table is to ensure that the value of
301        diffServClfrId is unique before attempting to use it in creating
302        a diffServClfrElementEntry. Therefore, the diffServClfrEntry must
303        be created on the same SET as the diffServClfrElementEntry, or
304        before the diffServClfrElementEntry is created."
305     ::= { diffServClassifier 2 }
306
307 diffServClfrEntry OBJECT-TYPE
308     SYNTAX       DiffServClfrEntry
309     MAX-ACCESS   not-accessible
310     STATUS       current
311     DESCRIPTION
312        "An entry in the classifier table describes a single classifier.
313        All classifier elements belonging to the same classifier use the
314        classifier's diffServClfrId as part of their index."
315     INDEX { diffServClfrId }
316     ::= { diffServClfrTable 1 }
317
318 DiffServClfrEntry ::= SEQUENCE  {
319     diffServClfrId              IndexInteger,
320     diffServClfrStorage         StorageType,
321     diffServClfrStatus          RowStatus
322 }
323
324 diffServClfrId OBJECT-TYPE
325     SYNTAX       IndexInteger
326     MAX-ACCESS   not-accessible
327     STATUS       current
328     DESCRIPTION
329        "An index that enumerates the classifier entries.  Managers
330        should obtain new values for row creation in this table by
331        reading diffServClfrNextFree."
332     ::= { diffServClfrEntry 1 }
333
334 diffServClfrStorage OBJECT-TYPE
335     SYNTAX       StorageType
336     MAX-ACCESS   read-create
337     STATUS       current
338     DESCRIPTION
339        "The storage type for this conceptual row.  Conceptual rows
340        having the value 'permanent' need not allow write-access to any
341        columnar objects in the row."
342     DEFVAL { nonVolatile }
343     ::= { diffServClfrEntry 2 }
344
345 diffServClfrStatus OBJECT-TYPE
346
347
348
349     SYNTAX       RowStatus
350     MAX-ACCESS   read-create
351     STATUS       current
352     DESCRIPTION
353        "The status of this conceptual row. All writable objects in this
354        row may be modified at any time. Setting this variable to
355        'destroy' when the MIB contains one or more RowPointers pointing
356        to it results in destruction being delayed until the row is no
357        longer used."
358     ::= { diffServClfrEntry 3 }
359
360 --
361 -- Classifier Element Table
362 --
363 diffServClfrElementNextFree OBJECT-TYPE
364     SYNTAX       IndexIntegerNextFree
365     MAX-ACCESS   read-only
366     STATUS       current
367     DESCRIPTION
368        "This object contains an unused value for diffServClfrElementId,
369        or a zero to indicate that none exist."
370     ::= { diffServClassifier 3 }
371
372 diffServClfrElementTable OBJECT-TYPE
373     SYNTAX       SEQUENCE OF DiffServClfrElementEntry
374     MAX-ACCESS   not-accessible
375     STATUS       current
376     DESCRIPTION
377        "The classifier element table enumerates the relationship between
378        classification patterns and subsequent downstream Differentiated
379        Services Functional Data Path elements.
380        diffServClfrElementSpecific points to a filter that specifies the
381        classification parameters. A classifier may use filter tables of
382        different types together.
383
384        One example of a filter table defined in this MIB is
385        diffServMultiFieldClfrTable, for IP Multi-Field Classifiers
386        (MFCs). Such an entry might identify anything from a single
387        micro-flow (an identifiable sub-session packet stream directed
388        from one sending transport to the receiving transport or
389        transports), or aggregates of those such as the traffic from a
390        host, traffic for an application, or traffic between two hosts
391        using an application and a given DSCP. The standard Behavior
392        Aggregate used in the Differentiated Services Architecture is
393        encoded as a degenerate case of such an aggregate - the traffic
394        using a particular DSCP value.
395
396        Filter tables for other filter types may be defined elsewhere."
397
398
399
400     ::= { diffServClassifier 4 }
401
402 diffServClfrElementEntry OBJECT-TYPE
403     SYNTAX       DiffServClfrElementEntry
404     MAX-ACCESS   not-accessible
405     STATUS       current
406     DESCRIPTION
407        "An entry in the classifier element table describes a single
408        element of the classifier."
409     INDEX { diffServClfrId, diffServClfrElementId }
410     ::= { diffServClfrElementTable 1 }
411
412 DiffServClfrElementEntry ::= SEQUENCE  {
413     diffServClfrElementId          IndexInteger,
414     diffServClfrElementPrecedence  Unsigned32,
415     diffServClfrElementNext        RowPointer,
416     diffServClfrElementSpecific    RowPointer,
417     diffServClfrElementStorage     StorageType,
418     diffServClfrElementStatus      RowStatus
419 }
420
421 diffServClfrElementId OBJECT-TYPE
422     SYNTAX       IndexInteger
423     MAX-ACCESS   not-accessible
424     STATUS       current
425     DESCRIPTION
426        "An index that enumerates the Classifier Element entries.
427        Managers obtain new values for row creation in this table by
428        reading diffServClfrElementNextFree."
429     ::= { diffServClfrElementEntry 1 }
430
431 diffServClfrElementPrecedence OBJECT-TYPE
432     SYNTAX       Unsigned32  (1..4294967295)
433     MAX-ACCESS   read-create
434     STATUS       current
435     DESCRIPTION
436        "The relative order in which classifier elements are applied:
437        higher numbers represent classifier element with higher
438        precedence.  Classifier elements with the same order must be
439        unambiguous i.e. they must define non-overlapping patterns, and
440        are considered to be applied simultaneously to the traffic
441        stream. Classifier elements with different order may overlap in
442        their filters:  the classifier element with the highest order
443        that matches is taken.
444
445        On a given interface, there must be a complete classifier in
446        place at all times in the ingress direction.  This means one or
447        more filters must match any possible pattern. There is no such
448
449
450
451        requirement in the egress direction."
452     ::= { diffServClfrElementEntry 2 }
453
454 diffServClfrElementNext OBJECT-TYPE
455     SYNTAX       RowPointer
456     MAX-ACCESS   read-create
457     STATUS       current
458     DESCRIPTION
459        "This attribute provides one branch of the fan-out functionality
460        of a classifier described in the Informal Differentiated Services
461        Model section 4.1.
462
463        This selects the next Differentiated Services Functional Data
464        Path Element to handle traffic for this data path. This
465        RowPointer should point to an instance of one of:
466          diffServClfrEntry
467          diffServMeterEntry
468          diffServActionEntry
469          diffServAlgDropEntry
470          diffServQEntry
471
472        A value of zeroDotZero in this attribute indicates no further
473        Differentiated Services treatment is performed on traffic of this
474        data path. The use of zeroDotZero is the normal usage for the
475        last functional data path element of the current data path.
476
477        Setting this to point to a target that does not exist results in
478        an inconsistentValue error.  If the row pointed to is removed or
479        becomes inactive by other means, the treatment is as if this
480        attribute contains a value of zeroDotZero."
481
482     ::= { diffServClfrElementEntry 3 }
483
484 diffServClfrElementSpecific OBJECT-TYPE
485     SYNTAX       RowPointer
486     MAX-ACCESS   read-create
487     STATUS       current
488     DESCRIPTION
489        "A pointer to a valid entry in another table, filter table, that
490        describes the applicable classification parameters, e.g. an entry
491        in diffServMultiFieldClfrTable.
492
493        The value zeroDotZero is interpreted to match anything not
494        matched by another classifier element - only one such entry may
495        exist for each classifier.
496
497        Setting this to point to a target that does not exist results in
498        an inconsistentValue error.  If the row pointed to is removed or
499
500
501
502        becomes inactive by other means, the element is ignored."
503     ::= { diffServClfrElementEntry 4 }
504
505 diffServClfrElementStorage OBJECT-TYPE
506     SYNTAX       StorageType
507     MAX-ACCESS   read-create
508     STATUS       current
509     DESCRIPTION
510        "The storage type for this conceptual row.  Conceptual rows
511        having the value 'permanent' need not allow write-access to any
512        columnar objects in the row."
513     DEFVAL { nonVolatile }
514     ::= { diffServClfrElementEntry 5 }
515
516 diffServClfrElementStatus OBJECT-TYPE
517     SYNTAX       RowStatus
518     MAX-ACCESS   read-create
519     STATUS       current
520     DESCRIPTION
521        "The status of this conceptual row. All writable objects in this
522        row may be modified at any time. Setting this variable to
523        'destroy' when the MIB contains one or more RowPointers pointing
524        to it results in destruction being delayed until the row is no
525        longer used."
526     ::= { diffServClfrElementEntry 6 }
527
528 --
529 -- IP Multi-field Classification Table
530 --
531 -- Classification based on six different fields in the IP header.
532 -- Functional Data Paths may share definitions by using the same entry.
533 --
534
535 diffServMultiFieldClfrNextFree OBJECT-TYPE
536     SYNTAX       IndexIntegerNextFree
537     MAX-ACCESS   read-only
538     STATUS       current
539     DESCRIPTION
540        "This object contains an unused value for
541        diffServMultiFieldClfrId, or a zero to indicate that none exist."
542     ::= { diffServClassifier 5 }
543
544 diffServMultiFieldClfrTable OBJECT-TYPE
545     SYNTAX   SEQUENCE OF DiffServMultiFieldClfrEntry
546     MAX-ACCESS   not-accessible
547     STATUS   current
548     DESCRIPTION
549        "A table of IP Multi-field Classifier filter entries that a
550
551
552
553        system may use to identify IP traffic."
554     ::= { diffServClassifier 6 }
555
556 diffServMultiFieldClfrEntry OBJECT-TYPE
557     SYNTAX       DiffServMultiFieldClfrEntry
558     MAX-ACCESS   not-accessible
559     STATUS   current
560     DESCRIPTION
561        "An IP Multi-field Classifier entry describes a single filter."
562     INDEX { diffServMultiFieldClfrId }
563     ::= { diffServMultiFieldClfrTable 1 }
564
565 DiffServMultiFieldClfrEntry ::= SEQUENCE {
566     diffServMultiFieldClfrId           IndexInteger,
567     diffServMultiFieldClfrAddrType     InetAddressType,
568     diffServMultiFieldClfrDstAddr      InetAddress,
569     diffServMultiFieldClfrDstPrefixLength InetAddressPrefixLength,
570     diffServMultiFieldClfrSrcAddr      InetAddress,
571     diffServMultiFieldClfrSrcPrefixLength InetAddressPrefixLength,
572     diffServMultiFieldClfrDscp         DscpOrAny,
573     diffServMultiFieldClfrFlowId       Unsigned32,
574     diffServMultiFieldClfrProtocol     Unsigned32,
575     diffServMultiFieldClfrDstL4PortMin InetPortNumber,
576     diffServMultiFieldClfrDstL4PortMax InetPortNumber,
577     diffServMultiFieldClfrSrcL4PortMin InetPortNumber,
578     diffServMultiFieldClfrSrcL4PortMax InetPortNumber,
579     diffServMultiFieldClfrStorage      StorageType,
580     diffServMultiFieldClfrStatus       RowStatus
581 }
582
583 diffServMultiFieldClfrId OBJECT-TYPE
584     SYNTAX         IndexInteger
585     MAX-ACCESS     not-accessible
586     STATUS     current
587     DESCRIPTION
588        "An index that enumerates the MultiField Classifier filter
589        entries.  Managers obtain new values for row creation in this
590        table by reading diffServMultiFieldClfrNextFree."
591
592     ::= { diffServMultiFieldClfrEntry 1 }
593
594 diffServMultiFieldClfrAddrType OBJECT-TYPE
595     SYNTAX         InetAddressType
596     MAX-ACCESS     read-create
597     STATUS         current
598     DESCRIPTION
599        "The type of IP address used by this classifier entry.  While
600        other types of addresses are defined in the InetAddressType
601
602
603
604        textual convention, and DNS names, a classifier can only look at
605        packets on the wire. Therefore, this object is limited to IPv4
606        and IPv6 addresses."
607     ::= { diffServMultiFieldClfrEntry 2 }
608
609 diffServMultiFieldClfrDstAddr OBJECT-TYPE
610     SYNTAX         InetAddress
611     MAX-ACCESS     read-create
612     STATUS         current
613     DESCRIPTION
614        "The IP address to match against the packet's destination IP
615        address. This may not be a DNS name, but may be an IPv4 or IPv6
616        prefix.  diffServMultiFieldClfrDstPrefixLength indicates the
617        number of bits that are relevant."
618     ::= { diffServMultiFieldClfrEntry 3 }
619
620 diffServMultiFieldClfrDstPrefixLength OBJECT-TYPE
621     SYNTAX         InetAddressPrefixLength
622     UNITS          "bits"
623     MAX-ACCESS     read-create
624     STATUS         current
625     DESCRIPTION
626        "The length of the CIDR Prefix carried in
627        diffServMultiFieldClfrDstAddr. In IPv4 addresses, a length of 0
628        indicates a match of any address; a length of 32 indicates a
629        match of a single host address, and a length between 0 and 32
630        indicates the use of a CIDR Prefix. IPv6 is similar, except that
631        prefix lengths range from 0..128."
632     DEFVAL         { 0 }
633     ::= { diffServMultiFieldClfrEntry 4 }
634
635 diffServMultiFieldClfrSrcAddr OBJECT-TYPE
636     SYNTAX         InetAddress
637     MAX-ACCESS     read-create
638     STATUS         current
639     DESCRIPTION
640        "The IP address to match against the packet's source IP address.
641        This may not be a DNS name, but may be an IPv4 or IPv6 prefix.
642        diffServMultiFieldClfrSrcPrefixLength indicates the number of
643        bits that are relevant."
644     ::= { diffServMultiFieldClfrEntry 5 }
645
646 diffServMultiFieldClfrSrcPrefixLength OBJECT-TYPE
647     SYNTAX         InetAddressPrefixLength
648     UNITS          "bits"
649     MAX-ACCESS     read-create
650     STATUS         current
651     DESCRIPTION
652
653
654
655        "The length of the CIDR Prefix carried in
656        diffServMultiFieldClfrSrcAddr. In IPv4 addresses, a length of 0
657        indicates a match of any address; a length of 32 indicates a
658        match of a single host address, and a length between 0 and 32
659        indicates the use of a CIDR Prefix. IPv6 is similar, except that
660        prefix lengths range from 0..128."
661     DEFVAL         { 0 }
662     ::= { diffServMultiFieldClfrEntry 6 }
663
664 diffServMultiFieldClfrDscp OBJECT-TYPE
665     SYNTAX         DscpOrAny
666     MAX-ACCESS     read-create
667     STATUS         current
668     DESCRIPTION
669        "The value that the DSCP in the packet must have to match this
670        entry. A value of -1 indicates that a specific DSCP value has not
671        been defined and thus all DSCP values are considered a match."
672     DEFVAL         { -1 }
673     ::= { diffServMultiFieldClfrEntry 7 }
674
675 diffServMultiFieldClfrFlowId OBJECT-TYPE
676     SYNTAX         Unsigned32 (0..1048575)
677     MAX-ACCESS     read-create
678     STATUS         current
679     DESCRIPTION
680        "The flow identifier in an IPv6 header."
681     ::= { diffServMultiFieldClfrEntry 8 }
682
683 diffServMultiFieldClfrProtocol OBJECT-TYPE
684     SYNTAX         Unsigned32 (0..255)
685     MAX-ACCESS     read-create
686     STATUS         current
687     DESCRIPTION
688        "The IP protocol to match against the IPv4 protocol number or the
689        IPv6 Next- Header number in the packet. A value of 255 means
690        match all.  Note the protocol number of 255 is reserved by IANA,
691        and Next-Header number of 0 is used in IPv6."
692     DEFVAL         { 255 }
693     ::= { diffServMultiFieldClfrEntry 9 }
694
695 diffServMultiFieldClfrDstL4PortMin OBJECT-TYPE
696     SYNTAX         InetPortNumber
697     MAX-ACCESS     read-create
698     STATUS         current
699     DESCRIPTION
700        "The minimum value that the layer-4 destination port number in
701        the packet must have in order to match this classifier entry."
702     DEFVAL         { 0 }
703
704
705
706     ::= { diffServMultiFieldClfrEntry 10 }
707
708 diffServMultiFieldClfrDstL4PortMax OBJECT-TYPE
709     SYNTAX         InetPortNumber
710     MAX-ACCESS     read-create
711     STATUS         current
712     DESCRIPTION
713        "The maximum value that the layer-4 destination port number in
714        the packet must have in order to match this classifier entry.
715        This value must be equal to or greater than the value specified
716        for this entry in diffServMultiFieldClfrDstL4PortMin."
717     DEFVAL         { 65535 }
718     ::= { diffServMultiFieldClfrEntry 11 }
719
720 diffServMultiFieldClfrSrcL4PortMin OBJECT-TYPE
721     SYNTAX         InetPortNumber
722     MAX-ACCESS     read-create
723     STATUS         current
724     DESCRIPTION
725        "The minimum value that the layer-4 source port number in the
726        packet must have in order to match this classifier entry."
727     DEFVAL         { 0 }
728     ::= { diffServMultiFieldClfrEntry 12 }
729
730 diffServMultiFieldClfrSrcL4PortMax OBJECT-TYPE
731     SYNTAX         InetPortNumber
732     MAX-ACCESS     read-create
733     STATUS         current
734     DESCRIPTION
735        "The maximum value that the layer-4 source port number in the
736        packet must have in order to match this classifier entry. This
737        value must be equal to or greater than the value specified for
738        this entry in diffServMultiFieldClfrSrcL4PortMin."
739     DEFVAL         { 65535 }
740     ::= { diffServMultiFieldClfrEntry 13 }
741
742 diffServMultiFieldClfrStorage OBJECT-TYPE
743     SYNTAX       StorageType
744     MAX-ACCESS   read-create
745     STATUS       current
746     DESCRIPTION
747        "The storage type for this conceptual row.  Conceptual rows
748        having the value 'permanent' need not allow write-access to any
749        columnar objects in the row."
750     DEFVAL { nonVolatile }
751     ::= { diffServMultiFieldClfrEntry 14 }
752
753 diffServMultiFieldClfrStatus OBJECT-TYPE
754
755
756
757     SYNTAX      RowStatus
758     MAX-ACCESS  read-create
759     STATUS      current
760     DESCRIPTION
761        "The status of this conceptual row. All writable objects in this
762        row may be modified at any time. Setting this variable to
763        'destroy' when the MIB contains one or more RowPointers pointing
764        to it results in destruction being delayed until the row is no
765        longer used."
766     ::= { diffServMultiFieldClfrEntry 15 }
767
768 --
769 -- Meters
770 --
771
772 diffServMeter          OBJECT IDENTIFIER ::= { diffServMIBObjects 3 }
773
774 --
775 -- This MIB supports a variety of Meters.  It includes a specific
776 -- definition for Token Bucket Meter, which are but one type of
777 -- specification. Other metering parameter sets can be defined in other
778 -- MIBs.
779
780 -- Multiple meter elements may be logically cascaded using their
781 -- diffServMeterSucceedNext and diffServMeterFailNext pointers if
782 -- required. One example of this might be for an AF PHB implementation
783 -- that uses multiple level conformance meters.
784
785 -- Cascading of individual meter elements in the MIB is intended to be
786 -- functionally equivalent to multiple level conformance determination
787 -- of a packet.  The sequential nature of the representation is merely
788 -- a notational convenience for this MIB.
789
790 -- srTCM meters (RFC 2697) can be specified using two sets of
791 -- diffServMeterEntry and diffServTBParamEntry. The first set specifies
792 -- the Committed Information Rate and Committed Burst Size
793 -- token-bucket.  The second set specifies the Excess Burst Size
794 -- token-bucket.
795
796 -- trTCM meters (RFC 2698) can be specified using two sets of
797 -- diffServMeterEntry and diffServTBParamEntry. The first set specifies
798 -- the Committed Information Rate and Committed Burst Size
799 -- token-bucket.  The second set specifies the Peak Information Rate
800 -- and Peak Burst Size token-bucket.
801
802 -- tswTCM meters (RFC 2859) can be specified using two sets of
803 -- diffServMeterEntry and diffServTBParamEntry. The first set specifies
804 -- the Committed Target Rate token-bucket.  The second set specifies
805
806
807
808 -- the Peak Target Rate token-bucket. diffServTBParamInterval in each
809 -- token bucket reflects the Average Interval.
810 --
811
812 diffServMeterNextFree OBJECT-TYPE
813     SYNTAX       IndexIntegerNextFree
814     MAX-ACCESS   read-only
815     STATUS       current
816     DESCRIPTION
817        "This object contains an unused value for diffServMeterId, or a
818        zero to indicate that none exist."
819     ::= { diffServMeter 1 }
820
821 diffServMeterTable OBJECT-TYPE
822     SYNTAX       SEQUENCE OF DiffServMeterEntry
823     MAX-ACCESS   not-accessible
824     STATUS       current
825     DESCRIPTION
826        "This table enumerates specific meters that a system may use to
827        police a stream of traffic. The traffic stream to be metered is
828        determined by the Differentiated Services Functional Data Path
829        Element(s) upstream of the meter i.e. by the object(s) that point
830        to each entry in this table.  This may include all traffic on an
831        interface.
832
833        Specific meter details are to be found in table entry referenced
834        by diffServMeterSpecific."
835     ::= { diffServMeter 2 }
836
837 diffServMeterEntry OBJECT-TYPE
838     SYNTAX       DiffServMeterEntry
839     MAX-ACCESS   not-accessible
840     STATUS       current
841     DESCRIPTION
842        "An entry in the meter table describes a single conformance level
843        of a meter."
844     INDEX { diffServMeterId }
845     ::= { diffServMeterTable 1 }
846
847 DiffServMeterEntry ::= SEQUENCE  {
848     diffServMeterId                IndexInteger,
849     diffServMeterSucceedNext       RowPointer,
850     diffServMeterFailNext          RowPointer,
851     diffServMeterSpecific          RowPointer,
852     diffServMeterStorage           StorageType,
853     diffServMeterStatus            RowStatus
854 }
855
856
857
858
859 diffServMeterId OBJECT-TYPE
860     SYNTAX       IndexInteger
861     MAX-ACCESS   not-accessible
862     STATUS       current
863     DESCRIPTION
864        "An index that enumerates the Meter entries.  Managers obtain new
865        values for row creation in this table by reading
866        diffServMeterNextFree."
867     ::= { diffServMeterEntry 1 }
868
869 diffServMeterSucceedNext OBJECT-TYPE
870     SYNTAX       RowPointer
871     MAX-ACCESS   read-create
872     STATUS       current
873     DESCRIPTION
874        "If the traffic does conform, this selects the next
875        Differentiated Services Functional Data Path element to handle
876        traffic for this data path. This RowPointer should point to an
877        instance of one of:
878          diffServClfrEntry
879          diffServMeterEntry
880          diffServActionEntry
881          diffServAlgDropEntry
882          diffServQEntry
883
884        A value of zeroDotZero in this attribute indicates that no
885        further Differentiated Services treatment is performed on traffic
886        of this data path. The use of zeroDotZero is the normal usage for
887        the last functional data path element of the current data path.
888
889        Setting this to point to a target that does not exist results in
890        an inconsistentValue error.  If the row pointed to is removed or
891        becomes inactive by other means, the treatment is as if this
892        attribute contains a value of zeroDotZero."
893     DEFVAL      { zeroDotZero }
894     ::= { diffServMeterEntry 2 }
895
896 diffServMeterFailNext OBJECT-TYPE
897     SYNTAX       RowPointer
898     MAX-ACCESS   read-create
899     STATUS       current
900     DESCRIPTION
901        "If the traffic does not conform, this selects the next
902        Differentiated Services Functional Data Path element to handle
903        traffic for this data path. This RowPointer should point to an
904        instance of one of:
905          diffServClfrEntry
906          diffServMeterEntry
907
908
909
910          diffServActionEntry
911          diffServAlgDropEntry
912          diffServQEntry
913
914        A value of zeroDotZero in this attribute indicates no further
915        Differentiated Services treatment is performed on traffic of this
916        data path. The use of zeroDotZero is the normal usage for the
917        last functional data path element of the current data path.
918
919        Setting this to point to a target that does not exist results in
920        an inconsistentValue error.  If the row pointed to is removed or
921        becomes inactive by other means, the treatment is as if this
922        attribute contains a value of zeroDotZero."
923     DEFVAL      { zeroDotZero }
924     ::= { diffServMeterEntry 3 }
925
926 diffServMeterSpecific OBJECT-TYPE
927     SYNTAX       RowPointer
928     MAX-ACCESS   read-create
929     STATUS       current
930     DESCRIPTION
931        "This indicates the behavior of the meter by pointing to an entry
932        containing detailed parameters. Note that entries in that
933        specific table must be managed explicitly.
934
935        For example, diffServMeterSpecific may point to an entry in
936        diffServTBParamTable, which contains an instance of a single set
937        of Token Bucket parameters.
938
939        Setting this to point to a target that does not exist results in
940        an inconsistentValue error.  If the row pointed to is removed or
941        becomes inactive by other means, the meter always succeeds."
942     ::= { diffServMeterEntry 4 }
943
944 diffServMeterStorage OBJECT-TYPE
945     SYNTAX       StorageType
946     MAX-ACCESS   read-create
947     STATUS       current
948     DESCRIPTION
949        "The storage type for this conceptual row.  Conceptual rows
950        having the value 'permanent' need not allow write-access to any
951        columnar objects in the row."
952     DEFVAL { nonVolatile }
953     ::= { diffServMeterEntry 5 }
954
955 diffServMeterStatus OBJECT-TYPE
956     SYNTAX       RowStatus
957     MAX-ACCESS   read-create
958
959
960
961     STATUS       current
962     DESCRIPTION
963        "The status of this conceptual row. All writable objects in this
964        row may be modified at any time. Setting this variable to
965        'destroy' when the MIB contains one or more RowPointers pointing
966        to it results in destruction being delayed until the row is no
967        longer used."
968     ::= { diffServMeterEntry 6 }
969
970 --
971 -- Token Bucket Parameter Table
972 --
973
974 diffServTBParam        OBJECT IDENTIFIER ::= { diffServMIBObjects 4 }
975
976 -- Each entry in the Token Bucket Parameter Table parameterize a single
977 -- token bucket.  Multiple token buckets can be used together to
978 -- parameterize multiple levels of conformance.
979
980 -- Note that an entry in the Token Bucket Parameter Table can be shared
981 -- by multiple diffServMeterTable entries.
982 --
983
984 diffServTBParamNextFree OBJECT-TYPE
985     SYNTAX       IndexIntegerNextFree
986     MAX-ACCESS   read-only
987     STATUS       current
988     DESCRIPTION
989        "This object contains an unused value for diffServTBParamId, or a
990        zero to indicate that none exist."
991     ::= { diffServTBParam 1 }
992
993 diffServTBParamTable OBJECT-TYPE
994     SYNTAX       SEQUENCE OF DiffServTBParamEntry
995     MAX-ACCESS   not-accessible
996     STATUS       current
997     DESCRIPTION
998        "This table enumerates a single set of token bucket meter
999        parameters that a system may use to police a stream of traffic.
1000        Such meters are modeled here as having a single rate and a single
1001        burst size. Multiple entries are used when multiple rates/burst
1002        sizes are needed."
1003     ::= { diffServTBParam 2 }
1004
1005 diffServTBParamEntry OBJECT-TYPE
1006     SYNTAX       DiffServTBParamEntry
1007     MAX-ACCESS   not-accessible
1008     STATUS       current
1009
1010
1011
1012     DESCRIPTION
1013        "An entry that describes a single set of token bucket
1014        parameters."
1015     INDEX { diffServTBParamId }
1016     ::= { diffServTBParamTable 1 }
1017
1018 DiffServTBParamEntry ::= SEQUENCE  {
1019     diffServTBParamId              IndexInteger,
1020     diffServTBParamType            AutonomousType,
1021     diffServTBParamRate            Unsigned32,
1022     diffServTBParamBurstSize       BurstSize,
1023     diffServTBParamInterval        Unsigned32,
1024     diffServTBParamStorage         StorageType,
1025     diffServTBParamStatus          RowStatus
1026 }
1027
1028 diffServTBParamId OBJECT-TYPE
1029     SYNTAX       IndexInteger
1030     MAX-ACCESS   not-accessible
1031     STATUS       current
1032     DESCRIPTION
1033        "An index that enumerates the Token Bucket Parameter entries.
1034        Managers obtain new values for row creation in this table by
1035        reading diffServTBParamNextFree."
1036     ::= { diffServTBParamEntry 1 }
1037
1038 diffServTBParamType OBJECT-TYPE
1039     SYNTAX       AutonomousType
1040     MAX-ACCESS   read-create
1041     STATUS       current
1042     DESCRIPTION
1043        "The Metering algorithm associated with the Token Bucket
1044        parameters.  zeroDotZero indicates this is unknown.
1045
1046        Standard values for generic algorithms:
1047        diffServTBParamSimpleTokenBucket, diffServTBParamAvgRate,
1048        diffServTBParamSrTCMBlind, diffServTBParamSrTCMAware,
1049        diffServTBParamTrTCMBlind, diffServTBParamTrTCMAware, and
1050        diffServTBParamTswTCM are specified in this MIB as OBJECT-
1051        IDENTITYs; additional values may be further specified in other
1052        MIBs."
1053     ::= { diffServTBParamEntry 2 }
1054
1055 diffServTBParamRate OBJECT-TYPE
1056     SYNTAX       Unsigned32  (1..4294967295)
1057     UNITS        "kilobits per second"
1058     MAX-ACCESS   read-create
1059     STATUS       current
1060
1061
1062
1063     DESCRIPTION
1064        "The token-bucket rate, in kilobits per second (kbps). This
1065        attribute is used for:
1066        1. CIR in RFC 2697 for srTCM
1067        2. CIR and PIR in RFC 2698 for trTCM
1068        3. CTR and PTR in RFC 2859 for TSWTCM
1069        4. AverageRate in RFC 3290."
1070     ::= { diffServTBParamEntry 3 }
1071
1072 diffServTBParamBurstSize OBJECT-TYPE
1073     SYNTAX       BurstSize
1074     UNITS        "Bytes"
1075     MAX-ACCESS   read-create
1076     STATUS       current
1077     DESCRIPTION
1078        "The maximum number of bytes in a single transmission burst. This
1079        attribute is used for:
1080        1. CBS and EBS in RFC 2697 for srTCM
1081        2. CBS and PBS in RFC 2698 for trTCM
1082        3. Burst Size in RFC 3290."
1083     ::= { diffServTBParamEntry 4 }
1084
1085 diffServTBParamInterval OBJECT-TYPE
1086     SYNTAX       Unsigned32 (1..4294967295)
1087     UNITS        "microseconds"
1088     MAX-ACCESS   read-create
1089     STATUS       current
1090     DESCRIPTION
1091        "The time interval used with the token bucket.  For:
1092        1. Average Rate Meter, the Informal Differentiated Services Model
1093           section 5.2.1, - Delta.
1094        2. Simple Token Bucket Meter, the Informal Differentiated
1095           Services Model section 5.1, - time interval t.
1096        3. RFC 2859 TSWTCM, - AVG_INTERVAL.
1097        4. RFC 2697 srTCM, RFC 2698 trTCM, - token bucket update time
1098           interval."
1099     ::= { diffServTBParamEntry 5 }
1100
1101 diffServTBParamStorage OBJECT-TYPE
1102     SYNTAX       StorageType
1103     MAX-ACCESS   read-create
1104     STATUS       current
1105     DESCRIPTION
1106        "The storage type for this conceptual row.  Conceptual rows
1107        having the value 'permanent' need not allow write-access to any
1108        columnar objects in the row."
1109     DEFVAL { nonVolatile }
1110     ::= { diffServTBParamEntry 6 }
1111
1112
1113
1114 diffServTBParamStatus OBJECT-TYPE
1115     SYNTAX       RowStatus
1116     MAX-ACCESS   read-create
1117     STATUS       current
1118     DESCRIPTION
1119        "The status of this conceptual row. All writable objects in this
1120        row may be modified at any time. Setting this variable to
1121        'destroy' when the MIB contains one or more RowPointers pointing
1122        to it results in destruction being delayed until the row is no
1123        longer used."
1124     ::= { diffServTBParamEntry 7 }
1125
1126 --
1127 -- OIDs for diffServTBParamType definitions.
1128 --
1129
1130 diffServTBMeters  OBJECT IDENTIFIER ::= { diffServMIBAdmin 1 }
1131
1132 diffServTBParamSimpleTokenBucket OBJECT-IDENTITY
1133     STATUS       current
1134     DESCRIPTION
1135        "Two Parameter Token Bucket Meter as described in the Informal
1136        Differentiated Services Model section 5.2.3."
1137     ::= { diffServTBMeters 1 }
1138
1139 diffServTBParamAvgRate OBJECT-IDENTITY
1140     STATUS       current
1141     DESCRIPTION
1142        "Average Rate Meter as described in the Informal Differentiated
1143        Services Model section 5.2.1."
1144     ::= { diffServTBMeters 2 }
1145
1146 diffServTBParamSrTCMBlind OBJECT-IDENTITY
1147     STATUS       current
1148     DESCRIPTION
1149        "Single Rate Three Color Marker Metering as defined by RFC 2697,
1150        in the `Color Blind' mode as described by the RFC."
1151     REFERENCE
1152         "RFC 2697"
1153     ::= { diffServTBMeters 3 }
1154
1155 diffServTBParamSrTCMAware OBJECT-IDENTITY
1156     STATUS       current
1157     DESCRIPTION
1158        "Single Rate Three Color Marker Metering as defined by RFC 2697,
1159        in the `Color Aware' mode as described by the RFC."
1160     REFERENCE
1161         "RFC 2697"
1162
1163
1164
1165     ::= { diffServTBMeters 4 }
1166
1167 diffServTBParamTrTCMBlind OBJECT-IDENTITY
1168     STATUS       current
1169     DESCRIPTION
1170        "Two Rate Three Color Marker Metering as defined by RFC 2698, in
1171        the `Color Blind' mode as described by the RFC."
1172     REFERENCE
1173         "RFC 2698"
1174     ::= { diffServTBMeters 5 }
1175
1176 diffServTBParamTrTCMAware OBJECT-IDENTITY
1177     STATUS       current
1178     DESCRIPTION
1179        "Two Rate Three Color Marker Metering as defined by RFC 2698, in
1180        the `Color Aware' mode as described by the RFC."
1181     REFERENCE
1182         "RFC 2698"
1183     ::= { diffServTBMeters 6 }
1184
1185 diffServTBParamTswTCM OBJECT-IDENTITY
1186     STATUS       current
1187     DESCRIPTION
1188        "Time Sliding Window Three Color Marker Metering as defined by
1189        RFC 2859."
1190     REFERENCE
1191         "RFC 2859"
1192     ::= { diffServTBMeters 7 }
1193
1194 --
1195 -- Actions
1196 --
1197
1198 diffServAction         OBJECT IDENTIFIER ::= { diffServMIBObjects 5 }
1199
1200 --
1201 -- The Action Table allows enumeration of the different types of
1202 -- actions to be applied to a traffic flow.
1203 --
1204
1205 diffServActionNextFree OBJECT-TYPE
1206     SYNTAX       IndexIntegerNextFree
1207     MAX-ACCESS   read-only
1208     STATUS       current
1209     DESCRIPTION
1210        "This object contains an unused value for diffServActionId, or a
1211        zero to indicate that none exist."
1212     ::= { diffServAction 1 }
1213
1214
1215
1216 diffServActionTable OBJECT-TYPE
1217     SYNTAX       SEQUENCE OF DiffServActionEntry
1218     MAX-ACCESS   not-accessible
1219     STATUS       current
1220     DESCRIPTION
1221        "The Action Table enumerates actions that can be performed to a
1222        stream of traffic. Multiple actions can be concatenated. For
1223        example, traffic exiting from a meter may be counted, marked, and
1224        potentially dropped before entering a queue.
1225
1226        Specific actions are indicated by diffServActionSpecific which
1227        points to an entry of a specific action type parameterizing the
1228        action in detail."
1229     ::= { diffServAction 2 }
1230
1231 diffServActionEntry OBJECT-TYPE
1232     SYNTAX       DiffServActionEntry
1233     MAX-ACCESS   not-accessible
1234     STATUS       current
1235     DESCRIPTION
1236        "Each entry in the action table allows description of one
1237        specific action to be applied to traffic."
1238     INDEX { diffServActionId }
1239     ::= { diffServActionTable 1 }
1240
1241 DiffServActionEntry ::= SEQUENCE  {
1242     diffServActionId                IndexInteger,
1243     diffServActionInterface         InterfaceIndexOrZero,
1244     diffServActionNext              RowPointer,
1245     diffServActionSpecific          RowPointer,
1246     diffServActionStorage           StorageType,
1247     diffServActionStatus            RowStatus
1248 }
1249
1250 diffServActionId OBJECT-TYPE
1251     SYNTAX       IndexInteger
1252     MAX-ACCESS   not-accessible
1253     STATUS       current
1254     DESCRIPTION
1255        "An index that enumerates the Action entries.  Managers obtain
1256        new values for row creation in this table by reading
1257        diffServActionNextFree."
1258     ::= { diffServActionEntry 1 }
1259
1260 diffServActionInterface  OBJECT-TYPE
1261      SYNTAX        InterfaceIndexOrZero
1262      MAX-ACCESS    read-create
1263      STATUS        current
1264
1265
1266
1267      DESCRIPTION
1268        "The interface index (value of ifIndex) that this action occurs
1269        on. This may be derived from the diffServDataPathStartEntry's
1270        index by extension through the various RowPointers. However, as
1271        this may be difficult for a network management station, it is
1272        placed here as well.  If this is indeterminate, the value is
1273        zero.
1274
1275        This is of especial relevance when reporting the counters which
1276        may apply to traffic crossing an interface:
1277           diffServCountActOctets,
1278           diffServCountActPkts,
1279           diffServAlgDropOctets,
1280           diffServAlgDropPkts,
1281           diffServAlgRandomDropOctets, and
1282           diffServAlgRandomDropPkts.
1283
1284        It is also especially relevant to the queue and scheduler which
1285        may be subsequently applied."
1286      ::= { diffServActionEntry 2 }
1287
1288 diffServActionNext OBJECT-TYPE
1289     SYNTAX       RowPointer
1290     MAX-ACCESS   read-create
1291     STATUS       current
1292     DESCRIPTION
1293        "This selects the next Differentiated Services Functional Data
1294        Path Element to handle traffic for this data path. This
1295        RowPointer should point to an instance of one of:
1296          diffServClfrEntry
1297          diffServMeterEntry
1298          diffServActionEntry
1299          diffServAlgDropEntry
1300          diffServQEntry
1301
1302        A value of zeroDotZero in this attribute indicates no further
1303        Differentiated Services treatment is performed on traffic of this
1304        data path. The use of zeroDotZero is the normal usage for the
1305        last functional data path element of the current data path.
1306
1307        Setting this to point to a target that does not exist results in
1308        an inconsistentValue error.  If the row pointed to is removed or
1309        becomes inactive by other means, the treatment is as if this
1310        attribute contains a value of zeroDotZero."
1311     DEFVAL      { zeroDotZero }
1312     ::= { diffServActionEntry 3 }
1313
1314 diffServActionSpecific OBJECT-TYPE
1315
1316
1317
1318     SYNTAX       RowPointer
1319     MAX-ACCESS   read-create
1320     STATUS       current
1321     DESCRIPTION
1322        "A pointer to an object instance providing additional information
1323        for the type of action indicated by this action table entry.
1324
1325        For the standard actions defined by this MIB module, this should
1326        point to either a diffServDscpMarkActEntry or a
1327        diffServCountActEntry. For other actions, it may point to an
1328        object instance defined in some other MIB.
1329
1330        Setting this to point to a target that does not exist results in
1331        an inconsistentValue error.  If the row pointed to is removed or
1332        becomes inactive by other means, the Meter should be treated as
1333        if it were not present.  This may lead to incorrect policy
1334        behavior."
1335     ::= { diffServActionEntry 4 }
1336
1337 diffServActionStorage OBJECT-TYPE
1338     SYNTAX       StorageType
1339     MAX-ACCESS   read-create
1340     STATUS       current
1341     DESCRIPTION
1342        "The storage type for this conceptual row.  Conceptual rows
1343        having the value 'permanent' need not allow write-access to any
1344        columnar objects in the row."
1345     DEFVAL { nonVolatile }
1346     ::= { diffServActionEntry 5 }
1347
1348 diffServActionStatus OBJECT-TYPE
1349     SYNTAX       RowStatus
1350     MAX-ACCESS   read-create
1351     STATUS       current
1352     DESCRIPTION
1353        "The status of this conceptual row. All writable objects in this
1354        row may be modified at any time. Setting this variable to
1355        'destroy' when the MIB contains one or more RowPointers pointing
1356        to it results in destruction being delayed until the row is no
1357        longer used."
1358     ::= { diffServActionEntry 6 }
1359
1360 -- DSCP Mark Action Table
1361 --
1362 -- Rows of this table are pointed to by diffServActionSpecific to
1363 -- provide detailed parameters specific to the DSCP Mark action.
1364 --
1365 -- A single entry in this table can be shared by multiple
1366
1367
1368
1369 -- diffServActionTable entries.
1370 --
1371
1372 diffServDscpMarkActTable OBJECT-TYPE
1373     SYNTAX       SEQUENCE OF DiffServDscpMarkActEntry
1374     MAX-ACCESS   not-accessible
1375     STATUS       current
1376     DESCRIPTION
1377        "This table enumerates specific DSCPs used for marking or
1378        remarking the DSCP field of IP packets. The entries of this table
1379        may be referenced by a diffServActionSpecific attribute."
1380     ::= { diffServAction 3 }
1381
1382 diffServDscpMarkActEntry OBJECT-TYPE
1383     SYNTAX       DiffServDscpMarkActEntry
1384     MAX-ACCESS   not-accessible
1385     STATUS       current
1386     DESCRIPTION
1387        "An entry in the DSCP mark action table that describes a single
1388        DSCP used for marking."
1389     INDEX { diffServDscpMarkActDscp }
1390     ::= { diffServDscpMarkActTable 1 }
1391
1392 DiffServDscpMarkActEntry ::= SEQUENCE  {
1393     diffServDscpMarkActDscp          Dscp
1394 }
1395
1396 diffServDscpMarkActDscp OBJECT-TYPE
1397     SYNTAX       Dscp
1398     MAX-ACCESS   read-only
1399     STATUS       current
1400     DESCRIPTION
1401        "The DSCP that this Action will store into the DSCP field of the
1402        subject. It is quite possible that the only packets subject to
1403        this Action are already marked with this DSCP. Note also that
1404        Differentiated Services processing may result in packet being
1405        marked on both ingress to a network and on egress from it, and
1406        that ingress and egress can occur in the same router."
1407     ::= { diffServDscpMarkActEntry 1 }
1408
1409 --
1410 -- Count Action Table
1411 --
1412 -- Because the MIB structure allows multiple cascading
1413 -- diffServActionEntry be used to describe multiple actions for a data
1414 -- path, the counter became an optional action type.  In normal
1415 -- implementation, either a data path has counters or it does not, as
1416 -- opposed to being configurable. The management entity may choose to
1417
1418
1419
1420 -- read the counter or not.  Hence it is recommended for implementation
1421 -- that have counters to always configure the count action as the first
1422 -- of multiple actions.
1423 --
1424
1425 diffServCountActNextFree OBJECT-TYPE
1426     SYNTAX       IndexIntegerNextFree
1427     MAX-ACCESS   read-only
1428     STATUS       current
1429     DESCRIPTION
1430        "This object contains an unused value for
1431        diffServCountActId, or a zero to indicate that none exist."
1432     ::= { diffServAction 4 }
1433
1434 diffServCountActTable OBJECT-TYPE
1435     SYNTAX       SEQUENCE OF DiffServCountActEntry
1436     MAX-ACCESS   not-accessible
1437     STATUS       current
1438     DESCRIPTION
1439        "This table contains counters for all the traffic passing through
1440        an action element."
1441     ::= { diffServAction 5 }
1442
1443 diffServCountActEntry OBJECT-TYPE
1444     SYNTAX       DiffServCountActEntry
1445     MAX-ACCESS   not-accessible
1446     STATUS       current
1447     DESCRIPTION
1448        "An entry in the count action table describes a single set of
1449        traffic counters."
1450     INDEX { diffServCountActId }
1451     ::= { diffServCountActTable 1 }
1452
1453 DiffServCountActEntry ::= SEQUENCE  {
1454     diffServCountActId           IndexInteger,
1455     diffServCountActOctets       Counter64,
1456     diffServCountActPkts         Counter64,
1457     diffServCountActStorage      StorageType,
1458     diffServCountActStatus       RowStatus
1459 }
1460
1461 diffServCountActId OBJECT-TYPE
1462     SYNTAX       IndexInteger
1463     MAX-ACCESS   not-accessible
1464     STATUS       current
1465     DESCRIPTION
1466        "An index that enumerates the Count Action entries.  Managers
1467        obtain new values for row creation in this table by reading
1468
1469
1470
1471        diffServCountActNextFree."
1472     ::= { diffServCountActEntry 1 }
1473
1474 diffServCountActOctets OBJECT-TYPE
1475     SYNTAX       Counter64
1476     MAX-ACCESS   read-only
1477     STATUS       current
1478     DESCRIPTION
1479        "The number of octets at the Action data path element.
1480
1481        Discontinuities in the value of this counter can occur at re-
1482        initialization of the management system and at other times as
1483        indicated by the value of ifCounterDiscontinuityTime on the
1484        relevant interface."
1485     ::= { diffServCountActEntry 2 }
1486
1487 diffServCountActPkts OBJECT-TYPE
1488     SYNTAX       Counter64
1489     MAX-ACCESS   read-only
1490     STATUS       current
1491     DESCRIPTION
1492        "The number of packets at the Action data path element.
1493
1494        Discontinuities in the value of this counter can occur at re-
1495        initialization of the management system and at other times as
1496        indicated by the value of ifCounterDiscontinuityTime on the
1497        relevant interface."
1498     ::= { diffServCountActEntry 3 }
1499
1500 diffServCountActStorage OBJECT-TYPE
1501     SYNTAX       StorageType
1502     MAX-ACCESS   read-create
1503     STATUS       current
1504     DESCRIPTION
1505        "The storage type for this conceptual row.  Conceptual rows
1506        having the value 'permanent' need not allow write-access to any
1507        columnar objects in the row."
1508     DEFVAL { nonVolatile }
1509     ::= { diffServCountActEntry 4 }
1510
1511 diffServCountActStatus OBJECT-TYPE
1512     SYNTAX       RowStatus
1513     MAX-ACCESS   read-create
1514     STATUS       current
1515     DESCRIPTION
1516        "The status of this conceptual row. All writable objects in this
1517        row may be modified at any time. Setting this variable to
1518        'destroy' when the MIB contains one or more RowPointers pointing
1519
1520
1521
1522        to it results in destruction being delayed until the row is no
1523        longer used."
1524     ::= { diffServCountActEntry 5 }
1525
1526 --
1527 -- Algorithmic Drop Table
1528 --
1529
1530 diffServAlgDrop        OBJECT IDENTIFIER ::= { diffServMIBObjects 6 }
1531
1532 diffServAlgDropNextFree OBJECT-TYPE
1533     SYNTAX       IndexIntegerNextFree
1534     MAX-ACCESS   read-only
1535     STATUS       current
1536     DESCRIPTION
1537        "This object contains an unused value for diffServAlgDropId, or a
1538        zero to indicate that none exist."
1539     ::= { diffServAlgDrop 1 }
1540
1541 diffServAlgDropTable OBJECT-TYPE
1542     SYNTAX       SEQUENCE OF DiffServAlgDropEntry
1543     MAX-ACCESS   not-accessible
1544     STATUS       current
1545     DESCRIPTION
1546        "The algorithmic drop table contains entries describing an
1547        element that drops packets according to some algorithm."
1548     ::= { diffServAlgDrop 2 }
1549
1550 diffServAlgDropEntry OBJECT-TYPE
1551     SYNTAX       DiffServAlgDropEntry
1552     MAX-ACCESS   not-accessible
1553     STATUS       current
1554     DESCRIPTION
1555        "An entry describes a process that drops packets according to
1556        some algorithm. Further details of the algorithm type are to be
1557        found in diffServAlgDropType and with more detail parameter entry
1558        pointed to by diffServAlgDropSpecific when necessary."
1559     INDEX { diffServAlgDropId }
1560     ::= { diffServAlgDropTable 1 }
1561
1562 DiffServAlgDropEntry ::= SEQUENCE  {
1563     diffServAlgDropId               IndexInteger,
1564     diffServAlgDropType             INTEGER,
1565     diffServAlgDropNext             RowPointer,
1566     diffServAlgDropQMeasure         RowPointer,
1567     diffServAlgDropQThreshold       Unsigned32,
1568     diffServAlgDropSpecific         RowPointer,
1569     diffServAlgDropOctets           Counter64,
1570
1571
1572
1573     diffServAlgDropPkts             Counter64,
1574     diffServAlgRandomDropOctets     Counter64,
1575     diffServAlgRandomDropPkts       Counter64,
1576     diffServAlgDropStorage          StorageType,
1577     diffServAlgDropStatus           RowStatus
1578 }
1579
1580 diffServAlgDropId OBJECT-TYPE
1581     SYNTAX       IndexInteger
1582     MAX-ACCESS   not-accessible
1583     STATUS       current
1584     DESCRIPTION
1585        "An index that enumerates the Algorithmic Dropper entries.
1586        Managers obtain new values for row creation in this table by
1587        reading diffServAlgDropNextFree."
1588     ::= { diffServAlgDropEntry 1 }
1589
1590 diffServAlgDropType OBJECT-TYPE
1591     SYNTAX       INTEGER {
1592                      other(1),
1593                      tailDrop(2),
1594                      headDrop(3),
1595                      randomDrop(4),
1596                      alwaysDrop(5)
1597 }
1598     MAX-ACCESS   read-create
1599     STATUS       current
1600     DESCRIPTION
1601        "The type of algorithm used by this dropper. The value other(1)
1602        requires further specification in some other MIB module.
1603
1604        In the tailDrop(2) algorithm, diffServAlgDropQThreshold
1605        represents the maximum depth of the queue, pointed to by
1606        diffServAlgDropQMeasure, beyond which all newly arriving packets
1607        will be dropped.
1608
1609        In the headDrop(3) algorithm, if a packet arrives when the
1610        current depth of the queue, pointed to by
1611        diffServAlgDropQMeasure, is at diffServAlgDropQThreshold, packets
1612        currently at the head of the queue are dropped to make room for
1613        the new packet to be enqueued at the tail of the queue.
1614
1615        In the randomDrop(4) algorithm, on packet arrival, an Active
1616        Queue Management algorithm is executed which may randomly drop a
1617        packet. This algorithm may be proprietary, and it may drop either
1618        the arriving packet or another packet in the queue.
1619        diffServAlgDropSpecific points to a diffServRandomDropEntry that
1620        describes the algorithm. For this algorithm,
1621
1622
1623
1624        diffServAlgDropQThreshold is understood to be the absolute
1625        maximum size of the queue and additional parameters are described
1626        in diffServRandomDropTable.
1627
1628        The alwaysDrop(5) algorithm is as its name specifies; always
1629        drop. In this case, the other configuration values in this Entry
1630        are not meaningful; There is no useful 'next' processing step,
1631        there is no queue, and parameters describing the queue are not
1632        useful. Therefore, diffServAlgDropNext, diffServAlgDropMeasure,
1633        and diffServAlgDropSpecific are all zeroDotZero."
1634     ::= { diffServAlgDropEntry 2 }
1635
1636 diffServAlgDropNext OBJECT-TYPE
1637     SYNTAX       RowPointer
1638     MAX-ACCESS   read-create
1639     STATUS       current
1640     DESCRIPTION
1641        "This selects the next Differentiated Services Functional Data
1642        Path Element to handle traffic for this data path. This
1643        RowPointer should point to an instance of one of:
1644          diffServClfrEntry
1645          diffServMeterEntry
1646          diffServActionEntry
1647          diffServQEntry
1648
1649        A value of zeroDotZero in this attribute indicates no further
1650        Differentiated Services treatment is performed on traffic of this
1651        data path. The use of zeroDotZero is the normal usage for the
1652        last functional data path element of the current data path.
1653
1654        When diffServAlgDropType is alwaysDrop(5), this object is
1655        ignored.
1656
1657        Setting this to point to a target that does not exist results in
1658        an inconsistentValue error.  If the row pointed to is removed or
1659        becomes inactive by other means, the treatment is as if this
1660        attribute contains a value of zeroDotZero."
1661     ::= { diffServAlgDropEntry 3 }
1662
1663 diffServAlgDropQMeasure OBJECT-TYPE
1664     SYNTAX       RowPointer
1665     MAX-ACCESS   read-create
1666     STATUS       current
1667     DESCRIPTION
1668        "Points to an entry in the diffServQTable to indicate the queue
1669        that a drop algorithm is to monitor when deciding whether to drop
1670        a packet. If the row pointed to does not exist, the algorithmic
1671        dropper element is considered inactive.
1672
1673
1674
1675        Setting this to point to a target that does not exist results in
1676        an inconsistentValue error.  If the row pointed to is removed or
1677        becomes inactive by other means, the treatment is as if this
1678        attribute contains a value of zeroDotZero."
1679     ::= { diffServAlgDropEntry 4 }
1680
1681 diffServAlgDropQThreshold OBJECT-TYPE
1682     SYNTAX       Unsigned32  (1..4294967295)
1683     UNITS        "Bytes"
1684     MAX-ACCESS   read-create
1685     STATUS       current
1686     DESCRIPTION
1687        "A threshold on the depth in bytes of the queue being measured at
1688        which a trigger is generated to the dropping algorithm, unless
1689        diffServAlgDropType is alwaysDrop(5) where this object is
1690        ignored.
1691
1692        For the tailDrop(2) or headDrop(3) algorithms, this represents
1693        the depth of the queue, pointed to by diffServAlgDropQMeasure, at
1694        which the drop action will take place. Other algorithms will need
1695        to define their own semantics for this threshold."
1696     ::= { diffServAlgDropEntry 5 }
1697
1698 diffServAlgDropSpecific OBJECT-TYPE
1699     SYNTAX       RowPointer
1700     MAX-ACCESS   read-create
1701     STATUS       current
1702     DESCRIPTION
1703        "Points to a table entry that provides further detail regarding a
1704        drop algorithm.
1705
1706        Entries with diffServAlgDropType equal to other(1) may have this
1707        point to a table defined in another MIB module.
1708
1709        Entries with diffServAlgDropType equal to randomDrop(4) must have
1710        this point to an entry in diffServRandomDropTable.
1711
1712        For all other algorithms specified in this MIB, this should take
1713        the value zeroDotZero.
1714
1715        The diffServAlgDropType is authoritative for the type of the drop
1716        algorithm and the specific parameters for the drop algorithm
1717        needs to be evaluated based on the diffServAlgDropType.
1718
1719        Setting this to point to a target that does not exist results in
1720        an inconsistentValue error.  If the row pointed to is removed or
1721        becomes inactive by other means, the treatment is as if this
1722        attribute contains a value of zeroDotZero."
1723
1724
1725
1726     ::= { diffServAlgDropEntry 6 }
1727
1728 diffServAlgDropOctets OBJECT-TYPE
1729     SYNTAX       Counter64
1730     MAX-ACCESS   read-only
1731     STATUS       current
1732     DESCRIPTION
1733        "The number of octets that have been deterministically dropped by
1734        this drop process.
1735
1736        Discontinuities in the value of this counter can occur at re-
1737        initialization of the management system and at other times as
1738        indicated by the value of ifCounterDiscontinuityTime on the
1739        relevant interface."
1740     ::= { diffServAlgDropEntry 7 }
1741
1742 diffServAlgDropPkts OBJECT-TYPE
1743     SYNTAX       Counter64
1744     MAX-ACCESS   read-only
1745     STATUS       current
1746     DESCRIPTION
1747        "The number of packets that have been deterministically dropped
1748        by this drop process.
1749
1750        Discontinuities in the value of this counter can occur at re-
1751        initialization of the management system and at other times as
1752        indicated by the value of ifCounterDiscontinuityTime on the
1753        relevant interface."
1754     ::= { diffServAlgDropEntry 8 }
1755
1756 diffServAlgRandomDropOctets OBJECT-TYPE
1757     SYNTAX       Counter64
1758     MAX-ACCESS   read-only
1759     STATUS       current
1760     DESCRIPTION
1761        "The number of octets that have been randomly dropped by this
1762        drop process.  This counter applies, therefore, only to random
1763        droppers.
1764
1765        Discontinuities in the value of this counter can occur at re-
1766        initialization of the management system and at other times as
1767        indicated by the value of ifCounterDiscontinuityTime on the
1768        relevant interface."
1769     ::= { diffServAlgDropEntry 9 }
1770
1771 diffServAlgRandomDropPkts OBJECT-TYPE
1772     SYNTAX       Counter64
1773     MAX-ACCESS   read-only
1774
1775
1776
1777     STATUS       current
1778     DESCRIPTION
1779        "The number of packets that have been randomly dropped by this
1780        drop process. This counter applies, therefore, only to random
1781        droppers.
1782
1783        Discontinuities in the value of this counter can occur at re-
1784        initialization of the management system and at other times as
1785        indicated by the value of ifCounterDiscontinuityTime on the
1786        relevant interface."
1787     ::= { diffServAlgDropEntry 10 }
1788
1789 diffServAlgDropStorage OBJECT-TYPE
1790     SYNTAX       StorageType
1791     MAX-ACCESS   read-create
1792     STATUS       current
1793     DESCRIPTION
1794        "The storage type for this conceptual row.  Conceptual rows
1795        having the value 'permanent' need not allow write-access to any
1796        columnar objects in the row."
1797     DEFVAL { nonVolatile }
1798     ::= { diffServAlgDropEntry 11 }
1799
1800 diffServAlgDropStatus OBJECT-TYPE
1801     SYNTAX       RowStatus
1802     MAX-ACCESS   read-create
1803     STATUS       current
1804     DESCRIPTION
1805        "The status of this conceptual row. All writable objects in this
1806        row may be modified at any time. Setting this variable to
1807        'destroy' when the MIB contains one or more RowPointers pointing
1808        to it results in destruction being delayed until the row is no
1809        longer used."
1810     ::= { diffServAlgDropEntry 12 }
1811
1812 --
1813 -- Random Drop Table
1814 --
1815
1816 diffServRandomDropNextFree OBJECT-TYPE
1817     SYNTAX       IndexIntegerNextFree
1818     MAX-ACCESS   read-only
1819     STATUS       current
1820     DESCRIPTION
1821        "This object contains an unused value for diffServRandomDropId,
1822        or a zero to indicate that none exist."
1823     ::= { diffServAlgDrop 3 }
1824
1825
1826
1827
1828 diffServRandomDropTable OBJECT-TYPE
1829     SYNTAX       SEQUENCE OF DiffServRandomDropEntry
1830     MAX-ACCESS   not-accessible
1831     STATUS       current
1832     DESCRIPTION
1833        "The random drop table contains entries describing a process that
1834        drops packets randomly. Entries in this table are pointed to by
1835        diffServAlgDropSpecific."
1836     ::= { diffServAlgDrop 4 }
1837
1838 diffServRandomDropEntry OBJECT-TYPE
1839     SYNTAX       DiffServRandomDropEntry
1840     MAX-ACCESS   not-accessible
1841     STATUS       current
1842     DESCRIPTION
1843        "An entry describes a process that drops packets according to a
1844        random algorithm."
1845     INDEX { diffServRandomDropId }
1846     ::= { diffServRandomDropTable 1 }
1847
1848 DiffServRandomDropEntry ::= SEQUENCE  {
1849     diffServRandomDropId               IndexInteger,
1850     diffServRandomDropMinThreshBytes   Unsigned32,
1851     diffServRandomDropMinThreshPkts    Unsigned32,
1852     diffServRandomDropMaxThreshBytes   Unsigned32,
1853     diffServRandomDropMaxThreshPkts    Unsigned32,
1854     diffServRandomDropProbMax          Unsigned32,
1855     diffServRandomDropWeight           Unsigned32,
1856     diffServRandomDropSamplingRate     Unsigned32,
1857     diffServRandomDropStorage          StorageType,
1858     diffServRandomDropStatus           RowStatus
1859 }
1860
1861 diffServRandomDropId OBJECT-TYPE
1862     SYNTAX       IndexInteger
1863     MAX-ACCESS   not-accessible
1864     STATUS       current
1865     DESCRIPTION
1866        "An index that enumerates the Random Drop entries.  Managers
1867        obtain new values for row creation in this table by reading
1868        diffServRandomDropNextFree."
1869     ::= { diffServRandomDropEntry 1 }
1870
1871 diffServRandomDropMinThreshBytes OBJECT-TYPE
1872     SYNTAX       Unsigned32  (1..4294967295)
1873     UNITS        "bytes"
1874     MAX-ACCESS   read-create
1875     STATUS       current
1876
1877
1878
1879     DESCRIPTION
1880        "The average queue depth in bytes, beyond which traffic has a
1881        non-zero probability of being dropped. Changes in this variable
1882        may or may not be reflected in the reported value of
1883        diffServRandomDropMinThreshPkts."
1884     ::= { diffServRandomDropEntry 2 }
1885
1886 diffServRandomDropMinThreshPkts OBJECT-TYPE
1887     SYNTAX       Unsigned32  (1..4294967295)
1888     UNITS        "packets"
1889     MAX-ACCESS   read-create
1890     STATUS       current
1891     DESCRIPTION
1892        "The average queue depth in packets, beyond which traffic has a
1893        non-zero probability of being dropped. Changes in this variable
1894        may or may not be reflected in the reported value of
1895        diffServRandomDropMinThreshBytes."
1896     ::= { diffServRandomDropEntry 3 }
1897
1898 diffServRandomDropMaxThreshBytes OBJECT-TYPE
1899     SYNTAX       Unsigned32  (1..4294967295)
1900     UNITS        "bytes"
1901     MAX-ACCESS   read-create
1902     STATUS       current
1903     DESCRIPTION
1904        "The average queue depth beyond which traffic has a probability
1905        indicated by diffServRandomDropProbMax of being dropped or
1906        marked. Note that this differs from the physical queue limit,
1907        which is stored in diffServAlgDropQThreshold. Changes in this
1908        variable may or may not be reflected in the reported value of
1909        diffServRandomDropMaxThreshPkts."
1910     ::= { diffServRandomDropEntry 4 }
1911
1912 diffServRandomDropMaxThreshPkts OBJECT-TYPE
1913     SYNTAX       Unsigned32  (1..4294967295)
1914     UNITS        "packets"
1915     MAX-ACCESS   read-create
1916     STATUS       current
1917     DESCRIPTION
1918        "The average queue depth beyond which traffic has a probability
1919        indicated by diffServRandomDropProbMax of being dropped or
1920        marked. Note that this differs from the physical queue limit,
1921        which is stored in diffServAlgDropQThreshold. Changes in this
1922        variable may or may not be reflected in the reported value of
1923        diffServRandomDropMaxThreshBytes."
1924     ::= { diffServRandomDropEntry 5 }
1925
1926 diffServRandomDropProbMax OBJECT-TYPE
1927
1928
1929
1930     SYNTAX       Unsigned32 (0..1000)
1931     MAX-ACCESS   read-create
1932     STATUS       current
1933     DESCRIPTION
1934        "The worst case random drop probability, expressed in drops per
1935        thousand packets.
1936
1937        For example, if in the worst case every arriving packet may be
1938        dropped (100%) for a period, this has the value 1000.
1939        Alternatively, if in the worst case only one percent (1%) of
1940        traffic may be dropped, it has the value 10."
1941    ::= { diffServRandomDropEntry 6 }
1942
1943 diffServRandomDropWeight OBJECT-TYPE
1944     SYNTAX       Unsigned32 (0..65536)
1945     MAX-ACCESS   read-create
1946     STATUS       current
1947     DESCRIPTION
1948        "The weighting of past history in affecting the Exponentially
1949        Weighted Moving Average function that calculates the current
1950        average queue depth.  The equation uses
1951        diffServRandomDropWeight/65536 as the coefficient for the new
1952        sample in the equation, and (65536 -
1953        diffServRandomDropWeight)/65536 as the coefficient of the old
1954        value.
1955
1956        Implementations may limit the values of diffServRandomDropWeight
1957        to a subset of the possible range of values, such as powers of
1958        two. Doing this would facilitate implementation of the
1959        Exponentially Weighted Moving Average using shift instructions or
1960        registers."
1961     ::= { diffServRandomDropEntry 7 }
1962
1963 diffServRandomDropSamplingRate OBJECT-TYPE
1964     SYNTAX       Unsigned32 (0..1000000)
1965     MAX-ACCESS   read-create
1966     STATUS       current
1967     DESCRIPTION
1968        "The number of times per second the queue is sampled for queue
1969        average calculation.  A value of zero is used to mean that the
1970        queue is sampled approximately each time a packet is enqueued (or
1971        dequeued)."
1972     ::= { diffServRandomDropEntry 8 }
1973
1974 diffServRandomDropStorage OBJECT-TYPE
1975     SYNTAX       StorageType
1976     MAX-ACCESS   read-create
1977     STATUS       current
1978
1979
1980
1981     DESCRIPTION
1982        "The storage type for this conceptual row.  Conceptual rows
1983        having the value 'permanent' need not allow write-access to any
1984        columnar objects in the row."
1985     DEFVAL { nonVolatile }
1986     ::= { diffServRandomDropEntry 9 }
1987
1988 diffServRandomDropStatus OBJECT-TYPE
1989     SYNTAX       RowStatus
1990     MAX-ACCESS   read-create
1991     STATUS       current
1992     DESCRIPTION
1993        "The status of this conceptual row. All writable objects in this
1994        row may be modified at any time. Setting this variable to
1995        'destroy' when the MIB contains one or more RowPointers pointing
1996        to it results in destruction being delayed until the row is no
1997        longer used."
1998     ::= { diffServRandomDropEntry 10 }
1999
2000 --
2001 -- Queue Table
2002 --
2003
2004 diffServQueue          OBJECT IDENTIFIER ::= { diffServMIBObjects 7 }
2005
2006 --
2007 -- An entry of diffServQTable represents a FIFO queue Differentiated
2008 -- Services Functional Data Path element as described in the Informal
2009 -- Differentiated Services Model section 7.1.1. Note that the
2010 -- specification of scheduling parameters for a queue as part of the
2011 -- input to a scheduler functional data path element as described in
2012 -- the Informal Differentiated Services Model section 7.1.2. This
2013 -- allows building of hierarchical queuing/scheduling. A queue
2014 -- therefore has these attributes:
2015 --
2016 -- 1. Which scheduler will service this queue, diffServQNext.
2017 -- 2. How the scheduler will service this queue, with respect
2018 --    to all the other queues the same scheduler needs to service,
2019 --    diffServQMinRate.
2020 --
2021 -- Note that upstream Differentiated Services Functional Data Path
2022 -- elements may point to a shared diffServQTable entry as described
2023 -- in the Informal Differentiated Services Model section 7.1.1.
2024 --
2025
2026 diffServQNextFree OBJECT-TYPE
2027     SYNTAX       IndexIntegerNextFree
2028     MAX-ACCESS   read-only
2029
2030
2031
2032     STATUS       current
2033     DESCRIPTION
2034        "This object contains an unused value for diffServQId, or a zero
2035        to indicate that none exist."
2036     ::= { diffServQueue 1 }
2037
2038 diffServQTable OBJECT-TYPE
2039     SYNTAX       SEQUENCE OF DiffServQEntry
2040     MAX-ACCESS   not-accessible
2041     STATUS       current
2042     DESCRIPTION
2043        "The Queue Table enumerates the individual queues.  Note that the
2044        MIB models queuing systems as composed of individual queues, one
2045        per class of traffic, even though they may in fact be structured
2046        as classes of traffic scheduled using a common calendar queue, or
2047        in other ways."
2048     ::= { diffServQueue 2 }
2049
2050 diffServQEntry OBJECT-TYPE
2051     SYNTAX       DiffServQEntry
2052     MAX-ACCESS   not-accessible
2053     STATUS       current
2054     DESCRIPTION
2055        "An entry in the Queue Table describes a single queue or class of
2056        traffic."
2057     INDEX { diffServQId }
2058     ::= { diffServQTable 1 }
2059
2060 DiffServQEntry ::= SEQUENCE  {
2061     diffServQId                      IndexInteger,
2062     diffServQNext                    RowPointer,
2063     diffServQMinRate                 RowPointer,
2064     diffServQMaxRate                 RowPointer,
2065     diffServQStorage                 StorageType,
2066     diffServQStatus                  RowStatus
2067 }
2068
2069 diffServQId OBJECT-TYPE
2070     SYNTAX       IndexInteger
2071     MAX-ACCESS   not-accessible
2072     STATUS       current
2073     DESCRIPTION
2074        "An index that enumerates the Queue entries.  Managers obtain new
2075        values for row creation in this table by reading
2076        diffServQNextFree."
2077     ::= { diffServQEntry 1 }
2078
2079 diffServQNext OBJECT-TYPE
2080
2081
2082
2083     SYNTAX       RowPointer
2084     MAX-ACCESS   read-create
2085     STATUS       current
2086     DESCRIPTION
2087        "This selects the next Differentiated Services Scheduler.  The
2088        RowPointer must point to a diffServSchedulerEntry.
2089
2090        A value of zeroDotZero in this attribute indicates an incomplete
2091        diffServQEntry instance. In such a case, the entry has no
2092        operational effect, since it has no parameters to give it
2093        meaning.
2094
2095        Setting this to point to a target that does not exist results in
2096        an inconsistentValue error.  If the row pointed to is removed or
2097        becomes inactive by other means, the treatment is as if this
2098        attribute contains a value of zeroDotZero."
2099     ::= { diffServQEntry 2 }
2100
2101 diffServQMinRate OBJECT-TYPE
2102     SYNTAX       RowPointer
2103     MAX-ACCESS   read-create
2104     STATUS       current
2105     DESCRIPTION
2106        "This RowPointer indicates the diffServMinRateEntry that the
2107        scheduler, pointed to by diffServQNext, should use to service
2108        this queue.
2109
2110        If the row pointed to is zeroDotZero, the minimum rate and
2111        priority is unspecified.
2112
2113        Setting this to point to a target that does not exist results in
2114        an inconsistentValue error.  If the row pointed to is removed or
2115        becomes inactive by other means, the treatment is as if this
2116        attribute contains a value of zeroDotZero."
2117     ::= { diffServQEntry 3 }
2118
2119 diffServQMaxRate OBJECT-TYPE
2120     SYNTAX       RowPointer
2121     MAX-ACCESS   read-create
2122     STATUS       current
2123     DESCRIPTION
2124        "This RowPointer indicates the diffServMaxRateEntry that the
2125        scheduler, pointed to by diffServQNext, should use to service
2126        this queue.
2127
2128        If the row pointed to is zeroDotZero, the maximum rate is the
2129        line speed of the interface.
2130
2131
2132
2133
2134        Setting this to point to a target that does not exist results in
2135        an inconsistentValue error.  If the row pointed to is removed or
2136        becomes inactive by other means, the treatment is as if this
2137        attribute contains a value of zeroDotZero."
2138     ::= { diffServQEntry 4 }
2139
2140 diffServQStorage OBJECT-TYPE
2141     SYNTAX       StorageType
2142     MAX-ACCESS   read-create
2143     STATUS       current
2144     DESCRIPTION
2145        "The storage type for this conceptual row.  Conceptual rows
2146        having the value 'permanent' need not allow write-access to any
2147        columnar objects in the row."
2148     DEFVAL { nonVolatile }
2149     ::= { diffServQEntry 5 }
2150
2151 diffServQStatus OBJECT-TYPE
2152     SYNTAX       RowStatus
2153     MAX-ACCESS   read-create
2154     STATUS       current
2155     DESCRIPTION
2156        "The status of this conceptual row. All writable objects in this
2157        row may be modified at any time. Setting this variable to
2158        'destroy' when the MIB contains one or more RowPointers pointing
2159        to it results in destruction being delayed until the row is no
2160        longer used."
2161     ::= { diffServQEntry 6 }
2162
2163 --
2164 -- Scheduler Table
2165 --
2166
2167 diffServScheduler      OBJECT IDENTIFIER ::= { diffServMIBObjects 8 }
2168
2169 --
2170 -- A Scheduler Entry represents a packet scheduler, such as a priority
2171 -- scheduler or a WFQ scheduler. It provides flexibility for multiple
2172 -- scheduling algorithms, each servicing multiple queues, to be used on
2173 -- the same logical/physical interface.
2174 --
2175 -- Note that upstream queues or schedulers specify several of the
2176 -- scheduler's parameters. These must be properly specified if the
2177 -- scheduler is to behave as expected.
2178 --
2179 -- The diffServSchedulerMaxRate attribute specifies the parameters when
2180 -- a scheduler's output is sent to another scheduler. This is used in
2181 -- building hierarchical queues or schedulers.
2182
2183
2184
2185 --
2186 -- More discussion of the scheduler functional data path element is in
2187 -- the Informal Differentiated Services Model section 7.1.2.
2188 --
2189
2190 diffServSchedulerNextFree OBJECT-TYPE
2191     SYNTAX       IndexIntegerNextFree
2192     MAX-ACCESS   read-only
2193     STATUS       current
2194     DESCRIPTION
2195        "This object contains an unused value for diffServSchedulerId, or
2196        a zero to indicate that none exist."
2197     ::= { diffServScheduler 1 }
2198
2199 diffServSchedulerTable OBJECT-TYPE
2200     SYNTAX       SEQUENCE OF DiffServSchedulerEntry
2201     MAX-ACCESS   not-accessible
2202     STATUS       current
2203     DESCRIPTION
2204        "The Scheduler Table enumerates packet schedulers. Multiple
2205        scheduling algorithms can be used on a given data path, with each
2206        algorithm described by one diffServSchedulerEntry."
2207     ::= { diffServScheduler 2 }
2208
2209 diffServSchedulerEntry OBJECT-TYPE
2210     SYNTAX       DiffServSchedulerEntry
2211     MAX-ACCESS   not-accessible
2212     STATUS       current
2213     DESCRIPTION
2214        "An entry in the Scheduler Table describing a single instance of
2215        a scheduling algorithm."
2216     INDEX { diffServSchedulerId }
2217     ::= { diffServSchedulerTable 1 }
2218
2219 DiffServSchedulerEntry ::= SEQUENCE  {
2220     diffServSchedulerId                   IndexInteger,
2221     diffServSchedulerNext                 RowPointer,
2222     diffServSchedulerMethod               AutonomousType,
2223     diffServSchedulerMinRate              RowPointer,
2224     diffServSchedulerMaxRate              RowPointer,
2225     diffServSchedulerStorage              StorageType,
2226     diffServSchedulerStatus               RowStatus
2227 }
2228
2229 diffServSchedulerId OBJECT-TYPE
2230     SYNTAX       IndexInteger
2231     MAX-ACCESS   not-accessible
2232     STATUS       current
2233
2234
2235
2236     DESCRIPTION
2237        "An index that enumerates the Scheduler entries.  Managers obtain
2238        new values for row creation in this table by reading
2239        diffServSchedulerNextFree."
2240     ::= { diffServSchedulerEntry 1 }
2241
2242 diffServSchedulerNext OBJECT-TYPE
2243     SYNTAX       RowPointer
2244     MAX-ACCESS   read-create
2245     STATUS       current
2246     DESCRIPTION
2247        "This selects the next Differentiated Services Functional Data
2248        Path Element to handle traffic for this data path. This normally
2249        is null (zeroDotZero), or points to a diffServSchedulerEntry or a
2250        diffServQEntry.
2251
2252        However, this RowPointer may also point to an instance of:
2253          diffServClfrEntry,
2254          diffServMeterEntry,
2255          diffServActionEntry,
2256          diffServAlgDropEntry.
2257
2258        It would point another diffServSchedulerEntry when implementing
2259        multiple scheduler methods for the same data path, such as having
2260        one set of queues scheduled by WRR and that group participating
2261        in a priority scheduling system in which other queues compete
2262        with it in that way.  It might also point to a second scheduler
2263        in a hierarchical scheduling system.
2264
2265        If the row pointed to is zeroDotZero, no further Differentiated
2266        Services treatment is performed on traffic of this data path.
2267
2268        Setting this to point to a target that does not exist results in
2269        an inconsistentValue error.  If the row pointed to is removed or
2270        becomes inactive by other means, the treatment is as if this
2271        attribute contains a value of zeroDotZero."
2272     DEFVAL       { zeroDotZero }
2273     ::= { diffServSchedulerEntry 2 }
2274
2275 diffServSchedulerMethod OBJECT-TYPE
2276     SYNTAX       AutonomousType
2277     MAX-ACCESS   read-create
2278     STATUS       current
2279     DESCRIPTION
2280        "The scheduling algorithm used by this Scheduler. zeroDotZero
2281        indicates that this is unknown.  Standard values for generic
2282        algorithms: diffServSchedulerPriority, diffServSchedulerWRR, and
2283        diffServSchedulerWFQ are specified in this MIB; additional values
2284
2285
2286
2287        may be further specified in other MIBs."
2288     ::= { diffServSchedulerEntry 3 }
2289
2290 diffServSchedulerMinRate OBJECT-TYPE
2291     SYNTAX       RowPointer
2292     MAX-ACCESS   read-create
2293     STATUS       current
2294     DESCRIPTION
2295        "This RowPointer indicates the entry in diffServMinRateTable
2296        which indicates the priority or minimum output rate from this
2297        scheduler. This attribute is used only when there is more than
2298        one level of scheduler.
2299
2300        When it has the value zeroDotZero, it indicates that no minimum
2301        rate or priority is imposed.
2302
2303        Setting this to point to a target that does not exist results in
2304        an inconsistentValue error.  If the row pointed to is removed or
2305        becomes inactive by other means, the treatment is as if this
2306        attribute contains a value of zeroDotZero."
2307     DEFVAL      { zeroDotZero }
2308     ::= { diffServSchedulerEntry 4 }
2309
2310 diffServSchedulerMaxRate OBJECT-TYPE
2311     SYNTAX       RowPointer
2312     MAX-ACCESS   read-create
2313     STATUS       current
2314     DESCRIPTION
2315        "This RowPointer indicates the entry in diffServMaxRateTable
2316        which indicates the maximum output rate from this scheduler.
2317        When more than one maximum rate applies (eg, when a multi-rate
2318        shaper is in view), it points to the first of those rate entries.
2319        This attribute is used only when there is more than one level of
2320        scheduler.
2321
2322        When it has the value zeroDotZero, it indicates that no maximum
2323        rate is imposed.
2324
2325        Setting this to point to a target that does not exist results in
2326        an inconsistentValue error.  If the row pointed to is removed or
2327        becomes inactive by other means, the treatment is as if this
2328        attribute contains a value of zeroDotZero."
2329     DEFVAL      { zeroDotZero }
2330     ::= { diffServSchedulerEntry 5 }
2331
2332 diffServSchedulerStorage OBJECT-TYPE
2333     SYNTAX       StorageType
2334     MAX-ACCESS   read-create
2335
2336
2337
2338     STATUS       current
2339     DESCRIPTION
2340        "The storage type for this conceptual row.  Conceptual rows
2341        having the value 'permanent' need not allow write-access to any
2342        columnar objects in the row."
2343     DEFVAL { nonVolatile }
2344     ::= { diffServSchedulerEntry 6 }
2345
2346 diffServSchedulerStatus OBJECT-TYPE
2347     SYNTAX       RowStatus
2348     MAX-ACCESS   read-create
2349     STATUS       current
2350     DESCRIPTION
2351        "The status of this conceptual row. All writable objects in this
2352        row may be modified at any time. Setting this variable to
2353        'destroy' when the MIB contains one or more RowPointers pointing
2354        to it results in destruction being delayed until the row is no
2355        longer used."
2356     ::= { diffServSchedulerEntry 7 }
2357
2358 --
2359 -- OIDs for diffServTBParamType definitions.
2360 --
2361
2362 diffServSchedulers  OBJECT IDENTIFIER ::= { diffServMIBAdmin 2 }
2363
2364 diffServSchedulerPriority OBJECT-IDENTITY
2365     STATUS       current
2366     DESCRIPTION
2367        "For use with diffServSchedulerMethod to indicate the Priority
2368        scheduling method.  This is defined as an algorithm in which the
2369        presence of data in a queue or set of queues absolutely precludes
2370        dequeue from another queue or set of queues of lower priority.
2371        Note that attributes from diffServMinRateEntry of the
2372        queues/schedulers feeding this scheduler are used when
2373        determining the next packet to schedule."
2374     ::= { diffServSchedulers 1 }
2375
2376 diffServSchedulerWRR OBJECT-IDENTITY
2377     STATUS       current
2378     DESCRIPTION
2379        "For use with diffServSchedulerMethod to indicate the Weighted
2380        Round Robin scheduling method, defined as any algorithm in which
2381        a set of queues are visited in a fixed order, and varying amounts
2382        of traffic are removed from each queue in turn to implement an
2383        average output rate by class. Notice attributes from
2384        diffServMinRateEntry of the queues/schedulers feeding this
2385        scheduler are used when determining the next packet to schedule."
2386
2387
2388
2389     ::= { diffServSchedulers 2 }
2390
2391 diffServSchedulerWFQ OBJECT-IDENTITY
2392     STATUS       current
2393     DESCRIPTION
2394        "For use with diffServSchedulerMethod to indicate the Weighted
2395        Fair Queuing scheduling method, defined as any algorithm in which
2396        a set of queues are conceptually visited in some order, to
2397        implement an average output rate by class. Notice attributes from
2398        diffServMinRateEntry of the queues/schedulers feeding this
2399        scheduler are used when determining the next packet to schedule."
2400     ::= { diffServSchedulers 3 }
2401
2402 --
2403 -- Minimum Rate Parameters Table
2404 --
2405 -- The parameters used by a scheduler for its inputs or outputs are
2406 -- maintained separately from the Queue or Scheduler table entries for
2407 -- reusability reasons and so that they may be used by both queues and
2408 -- schedulers.  This follows the approach for separation of data path
2409 -- elements from parameterization that is used throughout this MIB.
2410 -- Use of these Minimum Rate Parameter Table entries by Queues and
2411 -- Schedulers allows the modeling of hierarchical scheduling systems.
2412 --
2413 -- Specifically, a Scheduler has one or more inputs and one output.
2414 -- Any queue feeding a scheduler, or any scheduler which feeds a second
2415 -- scheduler, might specify a minimum transfer rate by pointing to an
2416 -- Minimum Rate Parameter Table entry.
2417 --
2418 -- The diffServMinRatePriority/Abs/Rel attributes are used as
2419 -- parameters to the work-conserving portion of a scheduler:
2420 -- "work-conserving" implies that the scheduler can continue to emit
2421 -- data as long as there is data available at its input(s).  This has
2422 -- the effect of guaranteeing a certain priority relative to other
2423 -- scheduler inputs and/or a certain minimum proportion of the
2424 -- available output bandwidth. Properly configured, this means a
2425 -- certain minimum rate, which may be exceeded should traffic be
2426 -- available should there be spare bandwidth after all other classes
2427 -- have had opportunities to consume their own minimum rates.
2428 --
2429
2430 diffServMinRateNextFree OBJECT-TYPE
2431     SYNTAX       IndexIntegerNextFree
2432     MAX-ACCESS   read-only
2433     STATUS       current
2434     DESCRIPTION
2435        "This object contains an unused value for diffServMinRateId, or a
2436        zero to indicate that none exist."
2437
2438
2439
2440     ::= { diffServScheduler 3 }
2441
2442 diffServMinRateTable OBJECT-TYPE
2443     SYNTAX       SEQUENCE OF DiffServMinRateEntry
2444     MAX-ACCESS   not-accessible
2445     STATUS       current
2446     DESCRIPTION
2447        "The Minimum Rate Parameters Table enumerates individual sets of
2448        scheduling parameter that can be used/reused by Queues and
2449        Schedulers."
2450     ::= { diffServScheduler 4 }
2451
2452 diffServMinRateEntry OBJECT-TYPE
2453     SYNTAX       DiffServMinRateEntry
2454     MAX-ACCESS   not-accessible
2455     STATUS       current
2456     DESCRIPTION
2457        "An entry in the Minimum Rate Parameters Table describes a single
2458        set of scheduling parameters for use by one or more queues or
2459        schedulers."
2460     INDEX { diffServMinRateId }
2461     ::= { diffServMinRateTable 1 }
2462
2463 DiffServMinRateEntry ::= SEQUENCE  {
2464     diffServMinRateId              IndexInteger,
2465     diffServMinRatePriority        Unsigned32,
2466     diffServMinRateAbsolute        Unsigned32,
2467     diffServMinRateRelative        Unsigned32,
2468     diffServMinRateStorage         StorageType,
2469     diffServMinRateStatus          RowStatus
2470 }
2471
2472 diffServMinRateId OBJECT-TYPE
2473     SYNTAX       IndexInteger
2474     MAX-ACCESS   not-accessible
2475     STATUS       current
2476     DESCRIPTION
2477        "An index that enumerates the Scheduler Parameter entries.
2478        Managers obtain new values for row creation in this table by
2479        reading diffServMinRateNextFree."
2480     ::= { diffServMinRateEntry 1 }
2481
2482 diffServMinRatePriority OBJECT-TYPE
2483     SYNTAX       Unsigned32  (1..4294967295)
2484     MAX-ACCESS   read-create
2485     STATUS       current
2486     DESCRIPTION
2487        "The priority of this input to the associated scheduler, relative
2488
2489
2490
2491        to the scheduler's other inputs. A queue or scheduler with a
2492        larger numeric value will be served before another with a smaller
2493        numeric value."
2494     ::= { diffServMinRateEntry 2 }
2495
2496 diffServMinRateAbsolute OBJECT-TYPE
2497     SYNTAX       Unsigned32  (1..4294967295)
2498     UNITS        "kilobits per second"
2499     MAX-ACCESS   read-create
2500     STATUS       current
2501     DESCRIPTION
2502        "The minimum absolute rate, in kilobits/sec, that a downstream
2503        scheduler element should allocate to this queue. If the value is
2504        zero, then there is effectively no minimum rate guarantee. If the
2505        value is non-zero, the scheduler will assure the servicing of
2506        this queue to at least this rate.
2507
2508        Note that this attribute value and that of
2509        diffServMinRateRelative are coupled: changes to one will affect
2510        the value of the other. They are linked by the following
2511        equation, in that setting one will change the other:
2512
2513          diffServMinRateRelative =
2514                  (diffServMinRateAbsolute*1000000)/ifSpeed
2515
2516        or, if appropriate:
2517
2518          diffServMinRateRelative = diffServMinRateAbsolute/ifHighSpeed"
2519     REFERENCE
2520         "ifSpeed, ifHighSpeed, Interface MIB, RFC 2863"
2521     ::= { diffServMinRateEntry 3 }
2522
2523 diffServMinRateRelative OBJECT-TYPE
2524     SYNTAX       Unsigned32  (1..4294967295)
2525     MAX-ACCESS   read-create
2526     STATUS       current
2527     DESCRIPTION
2528        "The minimum rate that a downstream scheduler element should
2529        allocate to this queue, relative to the maximum rate of the
2530        interface as reported by ifSpeed or ifHighSpeed, in units of
2531        1/1000 of 1. If the value is zero, then there is effectively no
2532        minimum rate guarantee. If the value is non-zero, the scheduler
2533        will assure the servicing of this queue to at least this rate.
2534
2535        Note that this attribute value and that of
2536        diffServMinRateAbsolute are coupled: changes to one will affect
2537        the value of the other. They are linked by the following
2538        equation, in that setting one will change the other:
2539
2540
2541
2542          diffServMinRateRelative =
2543                  (diffServMinRateAbsolute*1000000)/ifSpeed
2544
2545        or, if appropriate:
2546
2547          diffServMinRateRelative = diffServMinRateAbsolute/ifHighSpeed"
2548     REFERENCE
2549         "ifSpeed, ifHighSpeed, Interface MIB, RFC 2863"
2550     ::= { diffServMinRateEntry 4 }
2551
2552 diffServMinRateStorage OBJECT-TYPE
2553     SYNTAX       StorageType
2554     MAX-ACCESS   read-create
2555     STATUS       current
2556     DESCRIPTION
2557        "The storage type for this conceptual row.  Conceptual rows
2558        having the value 'permanent' need not allow write-access to any
2559        columnar objects in the row."
2560     DEFVAL { nonVolatile }
2561     ::= { diffServMinRateEntry 5 }
2562
2563 diffServMinRateStatus OBJECT-TYPE
2564     SYNTAX       RowStatus
2565     MAX-ACCESS   read-create
2566     STATUS       current
2567     DESCRIPTION
2568        "The status of this conceptual row. All writable objects in this
2569        row may be modified at any time. Setting this variable to
2570        'destroy' when the MIB contains one or more RowPointers pointing
2571        to it results in destruction being delayed until the row is no
2572        longer used."
2573     ::= { diffServMinRateEntry 6 }
2574
2575 --
2576 -- Maximum Rate Parameter Table
2577 --
2578 -- The parameters used by a scheduler for its inputs or outputs are
2579 -- maintained separately from the Queue or Scheduler table entries for
2580 -- reusability reasons and so that they may be used by both queues and
2581 -- schedulers.  This follows the approach for separation of data path
2582 -- elements from parameterization that is used throughout this MIB.
2583 -- Use of these Maximum Rate Parameter Table entries by Queues and
2584 -- Schedulers allows the modeling of hierarchical scheduling systems.
2585 --
2586 -- Specifically, a Scheduler has one or more inputs and one output.
2587 -- Any queue feeding a scheduler, or any scheduler which feeds a second
2588 -- scheduler, might specify a maximum transfer rate by pointing to a
2589 -- Maximum Rate Parameter Table entry. Multi-rate shapers, such as a
2590
2591
2592
2593 -- Dual Leaky Bucket algorithm, specify their rates using multiple
2594 -- Maximum Rate Parameter Entries with the same diffServMaxRateId but
2595 -- different diffServMaxRateLevels.
2596 --
2597 -- The diffServMaxRateLevel/Abs/Rel attributes are used as
2598 -- parameters to the non-work-conserving portion of a scheduler:
2599 -- non-work-conserving implies that the scheduler may sometimes not
2600 -- emit a packet, even if there is data available at its input(s).
2601 -- This has the effect of limiting the servicing of the queue/scheduler
2602 -- input or output, in effect performing shaping of the packet stream
2603 -- passing through the queue/scheduler, as described in the Informal
2604 -- Differentiated Services Model section 7.2.
2605 --
2606
2607 diffServMaxRateNextFree OBJECT-TYPE
2608     SYNTAX       IndexIntegerNextFree
2609     MAX-ACCESS   read-only
2610     STATUS       current
2611     DESCRIPTION
2612        "This object contains an unused value for diffServMaxRateId, or a
2613        zero to indicate that none exist."
2614     ::= { diffServScheduler 5 }
2615
2616 diffServMaxRateTable OBJECT-TYPE
2617     SYNTAX       SEQUENCE OF DiffServMaxRateEntry
2618     MAX-ACCESS   not-accessible
2619     STATUS       current
2620     DESCRIPTION
2621        "The Maximum Rate Parameter Table enumerates individual sets of
2622        scheduling parameter that can be used/reused by Queues and
2623        Schedulers."
2624     ::= { diffServScheduler 6 }
2625
2626 diffServMaxRateEntry OBJECT-TYPE
2627     SYNTAX       DiffServMaxRateEntry
2628     MAX-ACCESS   not-accessible
2629     STATUS       current
2630     DESCRIPTION
2631        "An entry in the Maximum Rate Parameter Table describes a single
2632        set of scheduling parameters for use by one or more queues or
2633        schedulers."
2634     INDEX { diffServMaxRateId, diffServMaxRateLevel }
2635     ::= { diffServMaxRateTable 1 }
2636
2637 DiffServMaxRateEntry ::= SEQUENCE  {
2638     diffServMaxRateId              IndexInteger,
2639     diffServMaxRateLevel           Unsigned32,
2640     diffServMaxRateAbsolute        Unsigned32,
2641
2642
2643
2644     diffServMaxRateRelative        Unsigned32,
2645     diffServMaxRateThreshold       BurstSize,
2646     diffServMaxRateStorage         StorageType,
2647     diffServMaxRateStatus          RowStatus
2648 }
2649
2650 diffServMaxRateId OBJECT-TYPE
2651     SYNTAX       IndexInteger
2652     MAX-ACCESS   not-accessible
2653     STATUS       current
2654     DESCRIPTION
2655        "An index that enumerates the Maximum Rate Parameter entries.
2656        Managers obtain new values for row creation in this table by
2657        reading diffServMaxRateNextFree."
2658     ::= { diffServMaxRateEntry 1 }
2659
2660 diffServMaxRateLevel OBJECT-TYPE
2661     SYNTAX       Unsigned32 (1..32)
2662     MAX-ACCESS   not-accessible
2663     STATUS       current
2664     DESCRIPTION
2665        "An index that indicates which level of a multi-rate shaper is
2666        being given its parameters. A multi-rate shaper has some number
2667        of rate levels. Frame Relay's dual rate specification refers to a
2668        'committed' and an 'excess' rate; ATM's dual rate specification
2669        refers to a 'mean' and a 'peak' rate. This table is generalized
2670        to support an arbitrary number of rates. The committed or mean
2671        rate is level 1, the peak rate (if any) is the highest level rate
2672        configured, and if there are other rates they are distributed in
2673        monotonically increasing order between them."
2674     ::= { diffServMaxRateEntry 2 }
2675
2676 diffServMaxRateAbsolute OBJECT-TYPE
2677     SYNTAX       Unsigned32  (1..4294967295)
2678     UNITS        "kilobits per second"
2679     MAX-ACCESS   read-create
2680     STATUS       current
2681     DESCRIPTION
2682        "The maximum rate in kilobits/sec that a downstream scheduler
2683        element should allocate to this queue. If the value is zero, then
2684        there is effectively no maximum rate limit and that the scheduler
2685        should attempt to be work conserving for this queue. If the value
2686        is non-zero, the scheduler will limit the servicing of this queue
2687        to, at most, this rate in a non-work-conserving manner.
2688
2689        Note that this attribute value and that of
2690        diffServMaxRateRelative are coupled: changes to one will affect
2691        the value of the other. They are linked by the following
2692
2693
2694
2695        equation, in that setting one will change the other:
2696
2697          diffServMaxRateRelative =
2698                  (diffServMaxRateAbsolute*1000000)/ifSpeed
2699
2700        or, if appropriate:
2701
2702          diffServMaxRateRelative = diffServMaxRateAbsolute/ifHighSpeed"
2703     REFERENCE
2704         "ifSpeed, ifHighSpeed, Interface MIB, RFC 2863"
2705     ::= { diffServMaxRateEntry 3 }
2706
2707 diffServMaxRateRelative OBJECT-TYPE
2708     SYNTAX       Unsigned32  (1..4294967295)
2709     MAX-ACCESS   read-create
2710     STATUS       current
2711     DESCRIPTION
2712        "The maximum rate that a downstream scheduler element should
2713        allocate to this queue, relative to the maximum rate of the
2714        interface as reported by ifSpeed or ifHighSpeed, in units of
2715        1/1000 of 1. If the value is zero, then there is effectively no
2716        maximum rate limit and the scheduler should attempt to be work
2717        conserving for this queue. If the value is non-zero, the
2718        scheduler will limit the servicing of this queue to, at most,
2719        this rate in a non-work-conserving manner.
2720
2721        Note that this attribute value and that of
2722        diffServMaxRateAbsolute are coupled: changes to one will affect
2723        the value of the other. They are linked by the following
2724        equation, in that setting one will change the other:
2725
2726          diffServMaxRateRelative =
2727                  (diffServMaxRateAbsolute*1000000)/ifSpeed
2728
2729        or, if appropriate:
2730
2731          diffServMaxRateRelative = diffServMaxRateAbsolute/ifHighSpeed"
2732     REFERENCE
2733         "ifSpeed, ifHighSpeed, Interface MIB, RFC 2863"
2734     ::= { diffServMaxRateEntry 4 }
2735
2736 diffServMaxRateThreshold OBJECT-TYPE
2737     SYNTAX       BurstSize
2738     UNITS        "Bytes"
2739     MAX-ACCESS   read-create
2740     STATUS       current
2741     DESCRIPTION
2742        "The number of bytes of queue depth at which the rate of a
2743
2744
2745
2746        multi-rate scheduler will increase to the next output rate. In
2747        the last conceptual row for such a shaper, this threshold is
2748        ignored and by convention is zero."
2749     REFERENCE
2750         "Adaptive rate Shaper, RFC 2963"
2751     ::= { diffServMaxRateEntry 5 }
2752
2753 diffServMaxRateStorage OBJECT-TYPE
2754     SYNTAX       StorageType
2755     MAX-ACCESS   read-create
2756     STATUS       current
2757     DESCRIPTION
2758        "The storage type for this conceptual row.  Conceptual rows
2759        having the value 'permanent' need not allow write-access to any
2760        columnar objects in the row."
2761     DEFVAL { nonVolatile }
2762     ::= { diffServMaxRateEntry 6 }
2763
2764 diffServMaxRateStatus OBJECT-TYPE
2765     SYNTAX       RowStatus
2766     MAX-ACCESS   read-create
2767     STATUS       current
2768     DESCRIPTION
2769        "The status of this conceptual row. All writable objects in this
2770        row may be modified at any time. Setting this variable to
2771        'destroy' when the MIB contains one or more RowPointers pointing
2772        to it results in destruction being delayed until the row is no
2773        longer used."
2774     ::= { diffServMaxRateEntry 7 }
2775
2776 --
2777 -- MIB Compliance statements.
2778 --
2779
2780 diffServMIBCompliances OBJECT IDENTIFIER ::=
2781                                      { diffServMIBConformance 1 }
2782 diffServMIBGroups      OBJECT IDENTIFIER ::=
2783                                      { diffServMIBConformance 2 }
2784
2785 diffServMIBFullCompliance MODULE-COMPLIANCE
2786     STATUS current
2787     DESCRIPTION
2788        "When this MIB is implemented with support for read-create, then
2789        such an implementation can claim full compliance. Such devices
2790        can then be both monitored and configured with this MIB."
2791
2792     MODULE IF-MIB -- The interfaces MIB, RFC2863
2793     MANDATORY-GROUPS {
2794
2795
2796
2797        ifCounterDiscontinuityGroup
2798     }
2799
2800     MODULE -- This Module
2801     MANDATORY-GROUPS {
2802         diffServMIBDataPathGroup, diffServMIBClfrGroup,
2803         diffServMIBClfrElementGroup, diffServMIBMultiFieldClfrGroup,
2804         diffServMIBActionGroup, diffServMIBAlgDropGroup,
2805         diffServMIBQGroup, diffServMIBSchedulerGroup,
2806         diffServMIBMaxRateGroup, diffServMIBMinRateGroup,
2807         diffServMIBCounterGroup
2808     }
2809
2810     GROUP diffServMIBMeterGroup
2811     DESCRIPTION
2812        "This group is mandatory for devices that implement metering
2813        functions."
2814
2815     GROUP diffServMIBTBParamGroup
2816     DESCRIPTION
2817        "This group is mandatory for devices that implement token-bucket
2818        metering functions."
2819
2820     GROUP diffServMIBDscpMarkActGroup
2821     DESCRIPTION
2822        "This group is mandatory for devices that implement DSCP-Marking
2823        functions."
2824
2825     GROUP diffServMIBRandomDropGroup
2826     DESCRIPTION
2827        "This group is mandatory for devices that implement Random Drop
2828        functions."
2829
2830     OBJECT diffServDataPathStatus
2831     SYNTAX RowStatus { active(1) }
2832     WRITE-SYNTAX RowStatus { createAndGo(4), destroy(6) }
2833     DESCRIPTION
2834        "Support for createAndWait and notInService is not required."
2835
2836     OBJECT diffServClfrStatus
2837     SYNTAX RowStatus { active(1) }
2838     WRITE-SYNTAX RowStatus { createAndGo(4), destroy(6) }
2839     DESCRIPTION
2840        "Support for createAndWait and notInService is not required."
2841
2842     OBJECT diffServClfrElementStatus
2843     SYNTAX RowStatus { active(1) }
2844     WRITE-SYNTAX RowStatus { createAndGo(4), destroy(6) }
2845
2846
2847
2848     DESCRIPTION
2849        "Support for createAndWait and notInService is not required."
2850
2851     OBJECT diffServMultiFieldClfrAddrType
2852     SYNTAX  InetAddressType { unknown(0), ipv4(1), ipv6(2) }
2853     DESCRIPTION
2854        "An implementation is only required to support IPv4 and IPv6
2855        addresses."
2856
2857     OBJECT diffServMultiFieldClfrDstAddr
2858     SYNTAX  InetAddress (SIZE(0|4|16))
2859     DESCRIPTION
2860        "An implementation is only required to support IPv4 and globally
2861        unique IPv6 addresses."
2862
2863     OBJECT diffServAlgDropStatus
2864     SYNTAX RowStatus { active(1) }
2865     WRITE-SYNTAX RowStatus { createAndGo(4), destroy(6) }
2866     DESCRIPTION
2867        "Support for createAndWait and notInService is not required."
2868
2869     OBJECT diffServRandomDropStatus
2870     SYNTAX RowStatus { active(1) }
2871     WRITE-SYNTAX RowStatus { createAndGo(4), destroy(6) }
2872     DESCRIPTION
2873        "Support for createAndWait and notInService is not required."
2874
2875     OBJECT diffServQStatus
2876     SYNTAX RowStatus { active(1) }
2877     WRITE-SYNTAX RowStatus { createAndGo(4), destroy(6) }
2878     DESCRIPTION
2879        "Support for createAndWait and notInService is not required."
2880
2881     OBJECT diffServSchedulerStatus
2882     SYNTAX RowStatus { active(1) }
2883     WRITE-SYNTAX RowStatus { createAndGo(4), destroy(6) }
2884     DESCRIPTION
2885        "Support for createAndWait and notInService is not required."
2886
2887     OBJECT diffServMinRateStatus
2888     SYNTAX RowStatus { active(1) }
2889     WRITE-SYNTAX RowStatus { createAndGo(4), destroy(6) }
2890     DESCRIPTION
2891        "Support for createAndWait and notInService is not required."
2892
2893     OBJECT diffServMaxRateStatus
2894     SYNTAX RowStatus { active(1) }
2895     WRITE-SYNTAX RowStatus { createAndGo(4), destroy(6) }
2896
2897
2898
2899     DESCRIPTION
2900        "Support for createAndWait and notInService is not required."
2901
2902     ::= { diffServMIBCompliances 1 }
2903
2904 --
2905 -- Read-Only Compliance
2906 --
2907
2908 diffServMIBReadOnlyCompliance MODULE-COMPLIANCE
2909     STATUS current
2910     DESCRIPTION
2911        "When this MIB is implemented without support for read-create
2912        (i.e. in read-only mode), then such an implementation can claim
2913        read-only compliance. Such a device can then be monitored but can
2914        not be configured with this MIB."
2915
2916     MODULE IF-MIB -- The interfaces MIB, RFC2863
2917     MANDATORY-GROUPS {
2918        ifCounterDiscontinuityGroup
2919     }
2920
2921     MODULE -- This Module
2922     MANDATORY-GROUPS {
2923         diffServMIBDataPathGroup, diffServMIBClfrGroup,
2924         diffServMIBClfrElementGroup, diffServMIBMultiFieldClfrGroup,
2925         diffServMIBActionGroup, diffServMIBAlgDropGroup,
2926         diffServMIBQGroup, diffServMIBSchedulerGroup,
2927         diffServMIBMaxRateGroup, diffServMIBMinRateGroup,
2928         diffServMIBCounterGroup
2929     }
2930
2931     GROUP diffServMIBMeterGroup
2932     DESCRIPTION
2933        "This group is mandatory for devices that implement metering
2934        functions."
2935
2936     GROUP diffServMIBTBParamGroup
2937     DESCRIPTION
2938        "This group is mandatory for devices that implement token-bucket
2939        metering functions."
2940
2941     GROUP        diffServMIBDscpMarkActGroup
2942     DESCRIPTION
2943        "This group is mandatory for devices that implement DSCP-Marking
2944        functions."
2945
2946     GROUP        diffServMIBRandomDropGroup
2947
2948
2949
2950     DESCRIPTION
2951        "This group is mandatory for devices that implement Random Drop
2952        functions."
2953
2954     OBJECT       diffServDataPathStart
2955     MIN-ACCESS   read-only
2956     DESCRIPTION
2957        "Write access is not required."
2958
2959     OBJECT       diffServDataPathStorage
2960     MIN-ACCESS   read-only
2961     DESCRIPTION
2962        "Write access is not required."
2963
2964     OBJECT       diffServDataPathStatus
2965     SYNTAX       RowStatus { active(1) }
2966     MIN-ACCESS   read-only
2967     DESCRIPTION
2968        "Write access is not required, and active is the only status that
2969        needs to be supported."
2970
2971     OBJECT       diffServClfrNextFree
2972     MIN-ACCESS   not-accessible
2973     DESCRIPTION
2974        "Object not needed when diffServClfrTable is implemented read-
2975        only"
2976
2977     OBJECT       diffServClfrStorage
2978     MIN-ACCESS   read-only
2979     DESCRIPTION
2980        "Write access is not required."
2981
2982     OBJECT       diffServClfrStatus
2983     SYNTAX       RowStatus { active(1) }
2984     MIN-ACCESS   read-only
2985     DESCRIPTION
2986        "Write access is not required, and active is the only status that
2987        needs to be supported."
2988
2989     OBJECT       diffServClfrElementNextFree
2990     MIN-ACCESS   not-accessible
2991     DESCRIPTION
2992        "Object not needed when diffServClfrelementTable is implemented
2993        read-only"
2994
2995     OBJECT       diffServClfrElementPrecedence
2996     MIN-ACCESS   read-only
2997     DESCRIPTION
2998
2999
3000
3001        "Write access is not required."
3002
3003     OBJECT       diffServClfrElementNext
3004     MIN-ACCESS   read-only
3005     DESCRIPTION
3006        "Write access is not required."
3007
3008     OBJECT       diffServClfrElementSpecific
3009     MIN-ACCESS   read-only
3010     DESCRIPTION
3011        "Write access is not required."
3012
3013     OBJECT       diffServClfrElementStorage
3014     MIN-ACCESS   read-only
3015     DESCRIPTION
3016        "Write access is not required."
3017
3018     OBJECT       diffServClfrElementStatus
3019     SYNTAX       RowStatus { active(1) }
3020     MIN-ACCESS   read-only
3021     DESCRIPTION
3022        "Write access is not required, and active is the only status that
3023        needs to be supported."
3024
3025     OBJECT       diffServMultiFieldClfrNextFree
3026     MIN-ACCESS   not-accessible
3027     DESCRIPTION
3028        "Object is not needed when diffServMultiFieldClfrTable is
3029        implemented in read-only mode."
3030
3031     OBJECT       diffServMultiFieldClfrAddrType
3032     SYNTAX       InetAddressType { unknown(0), ipv4(1), ipv6(2) }
3033     MIN-ACCESS   read-only
3034     DESCRIPTION
3035        "Write access is not required. An implementation is only required
3036        to support IPv4 and IPv6 addresses."
3037
3038     OBJECT       diffServMultiFieldClfrDstAddr
3039     SYNTAX       InetAddress (SIZE(0|4|16))
3040     MIN-ACCESS   read-only
3041     DESCRIPTION
3042        "Write access is not required. An implementation is only required
3043        to support IPv4 and globally unique IPv6 addresses."
3044
3045     OBJECT       diffServMultiFieldClfrDstPrefixLength
3046     MIN-ACCESS   read-only
3047     DESCRIPTION
3048        "Write access is not required."
3049
3050
3051
3052     OBJECT       diffServMultiFieldClfrSrcAddr
3053     MIN-ACCESS   read-only
3054     DESCRIPTION
3055        "Write access is not required. An implementation is only required
3056        to support IPv4 and globally unique IPv6 addresses."
3057
3058     OBJECT       diffServMultiFieldClfrSrcPrefixLength
3059     MIN-ACCESS   read-only
3060     DESCRIPTION
3061        "Write access is not required."
3062
3063     OBJECT       diffServMultiFieldClfrDscp
3064     MIN-ACCESS   read-only
3065     DESCRIPTION
3066        "Write access is not required."
3067
3068     OBJECT       diffServMultiFieldClfrFlowId
3069     MIN-ACCESS   read-only
3070     DESCRIPTION
3071        "Write access is not required."
3072
3073     OBJECT       diffServMultiFieldClfrProtocol
3074     MIN-ACCESS   read-only
3075     DESCRIPTION
3076        "Write access is not required."
3077
3078     OBJECT       diffServMultiFieldClfrDstL4PortMin
3079     MIN-ACCESS   read-only
3080     DESCRIPTION
3081        "Write access is not required."
3082
3083     OBJECT       diffServMultiFieldClfrDstL4PortMax
3084     MIN-ACCESS   read-only
3085     DESCRIPTION
3086        "Write access is not required."
3087
3088     OBJECT       diffServMultiFieldClfrSrcL4PortMin
3089     MIN-ACCESS   read-only
3090     DESCRIPTION
3091        "Write access is not required."
3092
3093     OBJECT       diffServMultiFieldClfrSrcL4PortMax
3094     MIN-ACCESS   read-only
3095     DESCRIPTION
3096        "Write access is not required."
3097
3098     OBJECT       diffServMultiFieldClfrStorage
3099     MIN-ACCESS   read-only
3100
3101
3102
3103     DESCRIPTION
3104        "Write access is not required."
3105
3106     OBJECT       diffServMultiFieldClfrStatus
3107     MIN-ACCESS   read-only
3108     DESCRIPTION
3109        "Write access is not required, createAndWait and notInService
3110        support is not required."
3111
3112     OBJECT       diffServMeterNextFree
3113     MIN-ACCESS   not-accessible
3114     DESCRIPTION
3115        "Object is not needed when diffServMultiFieldClfrTable is
3116        implemented in read-only mode."
3117
3118     OBJECT       diffServMeterSucceedNext
3119     MIN-ACCESS   read-only
3120     DESCRIPTION
3121        "Write access is not required."
3122
3123     OBJECT       diffServMeterFailNext
3124     MIN-ACCESS   read-only
3125     DESCRIPTION
3126        "Write access is not required."
3127
3128     OBJECT       diffServMeterSpecific
3129     MIN-ACCESS   read-only
3130     DESCRIPTION
3131        "Write access is not required."
3132
3133     OBJECT       diffServMeterStorage
3134     MIN-ACCESS   read-only
3135     DESCRIPTION
3136        "Write access is not required."
3137
3138     OBJECT       diffServMeterStatus
3139     SYNTAX       RowStatus { active(1) }
3140     MIN-ACCESS   read-only
3141     DESCRIPTION
3142        "Write access is not required, and active is the only status that
3143        needs to be supported."
3144
3145     OBJECT       diffServTBParamNextFree
3146     MIN-ACCESS   not-accessible
3147     DESCRIPTION
3148        "Object is not needed when diffServTBParamTable is implemented in
3149        read-only mode."
3150
3151
3152
3153
3154     OBJECT       diffServTBParamType
3155     MIN-ACCESS   read-only
3156     DESCRIPTION
3157        "Write access is not required."
3158
3159     OBJECT       diffServTBParamRate
3160     MIN-ACCESS   read-only
3161     DESCRIPTION
3162        "Write access is not required."
3163
3164     OBJECT       diffServTBParamBurstSize
3165     MIN-ACCESS   read-only
3166     DESCRIPTION
3167        "Write access is not required."
3168
3169     OBJECT       diffServTBParamInterval
3170     MIN-ACCESS   read-only
3171     DESCRIPTION
3172        "Write access is not required."
3173
3174     OBJECT       diffServTBParamStorage
3175     MIN-ACCESS   read-only
3176     DESCRIPTION
3177        "Write access is not required."
3178
3179     OBJECT       diffServTBParamStatus
3180     SYNTAX       RowStatus { active(1) }
3181     MIN-ACCESS   read-only
3182     DESCRIPTION
3183        "Write access is not required, and active is the only status that
3184        needs to be supported."
3185
3186     OBJECT       diffServActionNextFree
3187     MIN-ACCESS   not-accessible
3188     DESCRIPTION
3189        "Object is not needed when diffServActionTable is implemented in
3190        read-only mode."
3191
3192     OBJECT       diffServActionInterface
3193     MIN-ACCESS   read-only
3194     DESCRIPTION
3195        "Write access is not required."
3196
3197     OBJECT       diffServActionNext
3198     MIN-ACCESS   read-only
3199     DESCRIPTION
3200        "Write access is not required."
3201
3202
3203
3204
3205     OBJECT       diffServActionSpecific
3206     MIN-ACCESS   read-only
3207     DESCRIPTION
3208        "Write access is not required."
3209
3210     OBJECT       diffServActionStorage
3211     MIN-ACCESS   read-only
3212     DESCRIPTION
3213        "Write access is not required."
3214
3215     OBJECT       diffServActionStatus
3216     SYNTAX       RowStatus { active(1) }
3217     MIN-ACCESS   read-only
3218     DESCRIPTION
3219        "Write access is not required, and active is the only status that
3220        needs to be supported."
3221
3222     OBJECT       diffServCountActNextFree
3223     MIN-ACCESS   not-accessible
3224     DESCRIPTION
3225        "Object is not needed when diffServCountActTable is implemented
3226        in read-only mode."
3227
3228     OBJECT       diffServCountActStorage
3229     MIN-ACCESS   read-only
3230     DESCRIPTION
3231        "Write access is not required."
3232
3233     OBJECT       diffServCountActStatus
3234     SYNTAX       RowStatus { active(1) }
3235     MIN-ACCESS   read-only
3236     DESCRIPTION
3237        "Write access is not required, and active is the only status that
3238        needs to be supported."
3239
3240     OBJECT       diffServAlgDropNextFree
3241     MIN-ACCESS   not-accessible
3242     DESCRIPTION
3243        "Object is not needed when diffServAlgDropTable is implemented in
3244        read-only mode."
3245
3246     OBJECT       diffServAlgDropType
3247     MIN-ACCESS   read-only
3248     DESCRIPTION
3249        "Write access is not required."
3250
3251     OBJECT       diffServAlgDropNext
3252     MIN-ACCESS   read-only
3253
3254
3255
3256     DESCRIPTION
3257        "Write access is not required."
3258
3259     OBJECT       diffServAlgDropQMeasure
3260     MIN-ACCESS   read-only
3261     DESCRIPTION
3262        "Write access is not required."
3263
3264     OBJECT       diffServAlgDropQThreshold
3265     MIN-ACCESS   read-only
3266     DESCRIPTION
3267        "Write access is not required."
3268
3269     OBJECT       diffServAlgDropSpecific
3270     MIN-ACCESS   read-only
3271     DESCRIPTION
3272        "Write access is not required."
3273
3274     OBJECT       diffServAlgDropStorage
3275     MIN-ACCESS   read-only
3276     DESCRIPTION
3277        "Write access is not required."
3278
3279     OBJECT       diffServAlgDropStatus
3280     SYNTAX       RowStatus { active(1) }
3281     MIN-ACCESS   read-only
3282     DESCRIPTION
3283        "Write access is not required, and active is the only status that
3284        needs to be supported."
3285
3286     OBJECT       diffServRandomDropNextFree
3287     MIN-ACCESS   not-accessible
3288     DESCRIPTION
3289        "Object is not needed when diffServRandomDropTable is implemented
3290        in read-only mode."
3291
3292     OBJECT       diffServRandomDropMinThreshBytes
3293     MIN-ACCESS   read-only
3294     DESCRIPTION
3295        "Write access is not required."
3296
3297     OBJECT       diffServRandomDropMinThreshPkts
3298     MIN-ACCESS   read-only
3299     DESCRIPTION
3300        "Write access is not required."
3301
3302     OBJECT       diffServRandomDropMaxThreshBytes
3303     MIN-ACCESS   read-only
3304
3305
3306
3307     DESCRIPTION
3308        "Write access is not required."
3309
3310     OBJECT       diffServRandomDropMaxThreshPkts
3311     MIN-ACCESS   read-only
3312     DESCRIPTION
3313        "Write access is not required."
3314
3315     OBJECT       diffServRandomDropProbMax
3316     MIN-ACCESS   read-only
3317     DESCRIPTION
3318        "Write access is not required."
3319
3320     OBJECT       diffServRandomDropWeight
3321     MIN-ACCESS   read-only
3322     DESCRIPTION
3323        "Write access is not required."
3324
3325     OBJECT       diffServRandomDropSamplingRate
3326     MIN-ACCESS   read-only
3327     DESCRIPTION
3328        "Write access is not required."
3329
3330     OBJECT       diffServRandomDropStorage
3331     MIN-ACCESS   read-only
3332     DESCRIPTION
3333        "Write access is not required."
3334
3335     OBJECT       diffServRandomDropStatus
3336     SYNTAX       RowStatus { active(1) }
3337     MIN-ACCESS   read-only
3338     DESCRIPTION
3339        "Write access is not required, and active is the only status that
3340        needs to be supported."
3341
3342     OBJECT       diffServQNextFree
3343     MIN-ACCESS   not-accessible
3344     DESCRIPTION
3345        "Object is not needed when diffServQTable is implemented in
3346        read-only mode."
3347
3348     OBJECT       diffServQNext
3349     MIN-ACCESS   read-only
3350     DESCRIPTION
3351        "Write access is not required."
3352
3353     OBJECT       diffServQMinRate
3354     MIN-ACCESS   read-only
3355
3356
3357
3358     DESCRIPTION
3359        "Write access is not required."
3360
3361     OBJECT       diffServQMaxRate
3362     MIN-ACCESS   read-only
3363     DESCRIPTION
3364        "Write access is not required."
3365
3366     OBJECT       diffServQStorage
3367     MIN-ACCESS   read-only
3368     DESCRIPTION
3369        "Write access is not required."
3370
3371     OBJECT       diffServQStatus
3372     SYNTAX       RowStatus { active(1) }
3373     MIN-ACCESS   read-only
3374     DESCRIPTION
3375        "Write access is not required, and active is the only status that
3376        needs to be supported."
3377
3378     OBJECT       diffServSchedulerNextFree
3379     MIN-ACCESS   not-accessible
3380     DESCRIPTION
3381        "Object is not needed when diffServSchedulerTable is implemented
3382        in read-only mode."
3383
3384     OBJECT       diffServSchedulerNext
3385     MIN-ACCESS   read-only
3386     DESCRIPTION
3387        "Write access is not required."
3388
3389     OBJECT       diffServSchedulerMethod
3390     MIN-ACCESS   read-only
3391     DESCRIPTION
3392        "Write access is not required."
3393
3394     OBJECT       diffServSchedulerMinRate
3395     MIN-ACCESS   read-only
3396     DESCRIPTION
3397        "Write access is not required."
3398
3399     OBJECT       diffServSchedulerMaxRate
3400     MIN-ACCESS   read-only
3401     DESCRIPTION
3402        "Write access is not required."
3403
3404     OBJECT       diffServSchedulerStorage
3405     MIN-ACCESS   read-only
3406
3407
3408
3409     DESCRIPTION
3410        "Write access is not required."
3411
3412     OBJECT       diffServSchedulerStatus
3413     SYNTAX       RowStatus { active(1) }
3414     MIN-ACCESS   read-only
3415     DESCRIPTION
3416        "Write access is not required, and active is the only status that
3417        needs to be supported."
3418
3419     OBJECT       diffServMinRateNextFree
3420     MIN-ACCESS   not-accessible
3421     DESCRIPTION
3422        "Object is not needed when diffServMinRateTable is implemented in
3423        read-only mode."
3424
3425     OBJECT       diffServMinRatePriority
3426     MIN-ACCESS   read-only
3427     DESCRIPTION
3428        "Write access is not required."
3429
3430     OBJECT       diffServMinRateAbsolute
3431     MIN-ACCESS   read-only
3432     DESCRIPTION
3433        "Write access is not required."
3434
3435     OBJECT       diffServMinRateRelative
3436     MIN-ACCESS   read-only
3437     DESCRIPTION
3438        "Write access is not required."
3439
3440     OBJECT       diffServMinRateStorage
3441     MIN-ACCESS   read-only
3442     DESCRIPTION
3443        "Write access is not required."
3444
3445     OBJECT       diffServMinRateStatus
3446     SYNTAX       RowStatus { active(1) }
3447     MIN-ACCESS   read-only
3448     DESCRIPTION
3449        "Write access is not required, and active is the only status that
3450        needs to be supported."
3451
3452     OBJECT       diffServMaxRateNextFree
3453     MIN-ACCESS   not-accessible
3454     DESCRIPTION
3455        "Object is not needed when diffServMaxrateTable is implemented in
3456        read-only mode."
3457
3458
3459
3460     OBJECT       diffServMaxRateAbsolute
3461     MIN-ACCESS   read-only
3462     DESCRIPTION
3463        "Write access is not required."
3464
3465     OBJECT       diffServMaxRateRelative
3466     MIN-ACCESS   read-only
3467     DESCRIPTION
3468        "Write access is not required."
3469
3470     OBJECT       diffServMaxRateThreshold
3471     MIN-ACCESS   read-only
3472     DESCRIPTION
3473        "Write access is not required."
3474
3475     OBJECT       diffServMaxRateStorage
3476     MIN-ACCESS   read-only
3477     DESCRIPTION
3478        "Write access is not required."
3479
3480     OBJECT       diffServMaxRateStatus
3481     SYNTAX       RowStatus { active(1) }
3482     MIN-ACCESS   read-only
3483     DESCRIPTION
3484        "Write access is not required, and active is the only status that
3485        needs to be supported."
3486
3487     ::= { diffServMIBCompliances 2 }
3488
3489 diffServMIBDataPathGroup OBJECT-GROUP
3490     OBJECTS {
3491               diffServDataPathStart, diffServDataPathStorage,
3492               diffServDataPathStatus
3493     }
3494     STATUS       current
3495     DESCRIPTION
3496        "The Data Path Group defines the MIB Objects that describe a
3497        functional data path."
3498     ::= { diffServMIBGroups 1 }
3499
3500 diffServMIBClfrGroup OBJECT-GROUP
3501     OBJECTS {
3502               diffServClfrNextFree, diffServClfrStorage,
3503               diffServClfrStatus
3504     }
3505     STATUS       current
3506     DESCRIPTION
3507        "The Classifier Group defines the MIB Objects that describe the
3508
3509
3510
3511        list the starts of individual classifiers."
3512     ::= { diffServMIBGroups 2 }
3513
3514 diffServMIBClfrElementGroup OBJECT-GROUP
3515     OBJECTS {
3516               diffServClfrElementNextFree,
3517               diffServClfrElementPrecedence, diffServClfrElementNext,
3518               diffServClfrElementSpecific, diffServClfrElementStorage,
3519               diffServClfrElementStatus
3520     }
3521     STATUS       current
3522     DESCRIPTION
3523        "The Classifier Element Group defines the MIB Objects that
3524        describe the classifier elements that make up a generic
3525        classifier."
3526     ::= { diffServMIBGroups 3 }
3527
3528 diffServMIBMultiFieldClfrGroup OBJECT-GROUP
3529     OBJECTS {
3530               diffServMultiFieldClfrNextFree,
3531               diffServMultiFieldClfrAddrType,
3532               diffServMultiFieldClfrDstAddr,
3533               diffServMultiFieldClfrDstPrefixLength,
3534               diffServMultiFieldClfrFlowId,
3535               diffServMultiFieldClfrSrcAddr,
3536               diffServMultiFieldClfrSrcPrefixLength,
3537               diffServMultiFieldClfrDscp,
3538               diffServMultiFieldClfrProtocol,
3539               diffServMultiFieldClfrDstL4PortMin,
3540               diffServMultiFieldClfrDstL4PortMax,
3541               diffServMultiFieldClfrSrcL4PortMin,
3542               diffServMultiFieldClfrSrcL4PortMax,
3543               diffServMultiFieldClfrStorage,
3544               diffServMultiFieldClfrStatus
3545     }
3546     STATUS       current
3547     DESCRIPTION
3548        "The Multi-field Classifier Group defines the MIB Objects that
3549        describe a classifier element for matching on various fields of
3550        an IP and upper-layer protocol header."
3551     ::= { diffServMIBGroups 4 }
3552
3553 diffServMIBMeterGroup OBJECT-GROUP
3554     OBJECTS {
3555               diffServMeterNextFree, diffServMeterSucceedNext,
3556               diffServMeterFailNext, diffServMeterSpecific,
3557               diffServMeterStorage, diffServMeterStatus
3558     }
3559
3560
3561
3562     STATUS       current
3563     DESCRIPTION
3564        "The Meter Group defines the objects used in describing a generic
3565        meter element."
3566     ::= { diffServMIBGroups 5 }
3567
3568 diffServMIBTBParamGroup OBJECT-GROUP
3569     OBJECTS {
3570               diffServTBParamNextFree, diffServTBParamType,
3571               diffServTBParamRate, diffServTBParamBurstSize,
3572               diffServTBParamInterval, diffServTBParamStorage,
3573               diffServTBParamStatus
3574     }
3575     STATUS       current
3576     DESCRIPTION
3577        "The Token-Bucket Meter Group defines the objects used in
3578        describing a token bucket meter element."
3579     ::= { diffServMIBGroups 6 }
3580
3581 diffServMIBActionGroup OBJECT-GROUP
3582     OBJECTS {
3583               diffServActionNextFree, diffServActionNext,
3584               diffServActionSpecific, diffServActionStorage,
3585               diffServActionInterface, diffServActionStatus
3586     }
3587     STATUS       current
3588     DESCRIPTION
3589        "The Action Group defines the objects used in describing a
3590        generic action element."
3591     ::= { diffServMIBGroups 7 }
3592
3593 diffServMIBDscpMarkActGroup OBJECT-GROUP
3594     OBJECTS {
3595               diffServDscpMarkActDscp
3596     }
3597     STATUS       current
3598     DESCRIPTION
3599        "The DSCP Mark Action Group defines the objects used in
3600        describing a DSCP Marking Action element."
3601     ::= { diffServMIBGroups 8 }
3602
3603 diffServMIBCounterGroup OBJECT-GROUP
3604     OBJECTS {
3605               diffServCountActOctets, diffServCountActPkts,
3606               diffServAlgDropOctets, diffServAlgDropPkts,
3607               diffServAlgRandomDropOctets, diffServAlgRandomDropPkts,
3608               diffServCountActStorage, diffServCountActStatus,
3609               diffServCountActNextFree
3610
3611
3612
3613     }
3614     STATUS       current
3615     DESCRIPTION
3616        "A collection of objects providing information specific to
3617        packet-oriented network interfaces."
3618     ::= { diffServMIBGroups 9 }
3619
3620 diffServMIBAlgDropGroup OBJECT-GROUP
3621     OBJECTS {
3622               diffServAlgDropNextFree, diffServAlgDropType,
3623               diffServAlgDropNext, diffServAlgDropQMeasure,
3624               diffServAlgDropQThreshold, diffServAlgDropSpecific,
3625               diffServAlgDropStorage, diffServAlgDropStatus
3626     }
3627     STATUS       current
3628     DESCRIPTION
3629        "The Algorithmic Drop Group contains the objects that describe
3630        algorithmic dropper operation and configuration."
3631     ::= { diffServMIBGroups 10 }
3632
3633 diffServMIBRandomDropGroup OBJECT-GROUP
3634     OBJECTS {
3635               diffServRandomDropNextFree,
3636               diffServRandomDropMinThreshBytes,
3637               diffServRandomDropMinThreshPkts,
3638               diffServRandomDropMaxThreshBytes,
3639               diffServRandomDropMaxThreshPkts,
3640               diffServRandomDropProbMax,
3641               diffServRandomDropWeight,
3642               diffServRandomDropSamplingRate,
3643               diffServRandomDropStorage,
3644               diffServRandomDropStatus
3645     }
3646     STATUS       current
3647     DESCRIPTION
3648        "The Random Drop Group augments the Algorithmic Drop Group for
3649        random dropper operation and configuration."
3650     ::= { diffServMIBGroups 11 }
3651
3652 diffServMIBQGroup OBJECT-GROUP
3653
3654     OBJECTS {
3655               diffServQNextFree, diffServQNext, diffServQMinRate,
3656               diffServQMaxRate, diffServQStorage, diffServQStatus
3657     }
3658     STATUS       current
3659     DESCRIPTION
3660        "The Queue Group contains the objects that describe an
3661
3662
3663
3664        interface's queues."
3665     ::= { diffServMIBGroups 12 }
3666
3667 diffServMIBSchedulerGroup OBJECT-GROUP
3668     OBJECTS {
3669               diffServSchedulerNextFree, diffServSchedulerNext,
3670               diffServSchedulerMethod, diffServSchedulerMinRate,
3671               diffServSchedulerMaxRate, diffServSchedulerStorage,
3672               diffServSchedulerStatus
3673     }
3674     STATUS       current
3675     DESCRIPTION
3676        "The Scheduler Group contains the objects that describe packet
3677        schedulers on interfaces."
3678     ::= { diffServMIBGroups 13 }
3679
3680 diffServMIBMinRateGroup OBJECT-GROUP
3681     OBJECTS {
3682               diffServMinRateNextFree, diffServMinRatePriority,
3683               diffServMinRateAbsolute, diffServMinRateRelative,
3684               diffServMinRateStorage, diffServMinRateStatus
3685     }
3686     STATUS       current
3687     DESCRIPTION
3688        "The Minimum Rate Parameter Group contains the objects that
3689        describe packet schedulers' minimum rate or priority guarantees."
3690     ::= { diffServMIBGroups 14 }
3691
3692 diffServMIBMaxRateGroup OBJECT-GROUP
3693     OBJECTS {
3694               diffServMaxRateNextFree, diffServMaxRateAbsolute,
3695               diffServMaxRateRelative, diffServMaxRateThreshold,
3696               diffServMaxRateStorage, diffServMaxRateStatus
3697     }
3698     STATUS       current
3699     DESCRIPTION
3700        "The Maximum Rate Parameter Group contains the objects that
3701        describe packet schedulers' maximum rate guarantees."
3702     ::= { diffServMIBGroups 15 }
3703
3704 END