1DIFFSERV-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
22diffServMib 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
59diffServMIBObjects     OBJECT IDENTIFIER ::= { diffServMib 1 }
60diffServMIBConformance OBJECT IDENTIFIER ::= { diffServMib 2 }
61diffServMIBAdmin       OBJECT IDENTIFIER ::= { diffServMib 3 }
62
63IndexInteger ::= 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
70IndexIntegerNextFree ::= 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
102IfDirection ::= 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
118diffServDataPath       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
138diffServDataPathTable 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
152diffServDataPathEntry 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
173DiffServDataPathEntry ::= SEQUENCE  {
174    diffServDataPathIfDirection    IfDirection,
175    diffServDataPathStart          RowPointer,
176    diffServDataPathStorage        StorageType,
177    diffServDataPathStatus         RowStatus
178}
179
180diffServDataPathIfDirection 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
189diffServDataPathStart 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
217diffServDataPathStorage 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
228diffServDataPathStatus 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
241diffServClassifier     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
270diffServClfrNextFree 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
279diffServClfrTable 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
307diffServClfrEntry 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
318DiffServClfrEntry ::= SEQUENCE  {
319    diffServClfrId              IndexInteger,
320    diffServClfrStorage         StorageType,
321    diffServClfrStatus          RowStatus
322}
323
324diffServClfrId 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
334diffServClfrStorage 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
345diffServClfrStatus 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--
363diffServClfrElementNextFree 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
372diffServClfrElementTable 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
402diffServClfrElementEntry 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
412DiffServClfrElementEntry ::= SEQUENCE  {
413    diffServClfrElementId          IndexInteger,
414    diffServClfrElementPrecedence  Unsigned32,
415    diffServClfrElementNext        RowPointer,
416    diffServClfrElementSpecific    RowPointer,
417    diffServClfrElementStorage     StorageType,
418    diffServClfrElementStatus      RowStatus
419}
420
421diffServClfrElementId 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
431diffServClfrElementPrecedence 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
454diffServClfrElementNext 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
484diffServClfrElementSpecific 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
505diffServClfrElementStorage 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
516diffServClfrElementStatus 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
535diffServMultiFieldClfrNextFree 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
544diffServMultiFieldClfrTable 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
556diffServMultiFieldClfrEntry 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
565DiffServMultiFieldClfrEntry ::= 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
583diffServMultiFieldClfrId 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
594diffServMultiFieldClfrAddrType 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
609diffServMultiFieldClfrDstAddr 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
620diffServMultiFieldClfrDstPrefixLength 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
635diffServMultiFieldClfrSrcAddr 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
646diffServMultiFieldClfrSrcPrefixLength 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
664diffServMultiFieldClfrDscp 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
675diffServMultiFieldClfrFlowId 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
683diffServMultiFieldClfrProtocol 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
695diffServMultiFieldClfrDstL4PortMin 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
708diffServMultiFieldClfrDstL4PortMax 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
720diffServMultiFieldClfrSrcL4PortMin 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
730diffServMultiFieldClfrSrcL4PortMax 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
742diffServMultiFieldClfrStorage 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
753diffServMultiFieldClfrStatus 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
772diffServMeter          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
812diffServMeterNextFree 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
821diffServMeterTable 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
837diffServMeterEntry 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
847DiffServMeterEntry ::= SEQUENCE  {
848    diffServMeterId                IndexInteger,
849    diffServMeterSucceedNext       RowPointer,
850    diffServMeterFailNext          RowPointer,
851    diffServMeterSpecific          RowPointer,
852    diffServMeterStorage           StorageType,
853    diffServMeterStatus            RowStatus
854}
855
856
857
858
859diffServMeterId 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
869diffServMeterSucceedNext 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
896diffServMeterFailNext 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
926diffServMeterSpecific 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
944diffServMeterStorage 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
955diffServMeterStatus 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
974diffServTBParam        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
984diffServTBParamNextFree 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
993diffServTBParamTable 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
1005diffServTBParamEntry 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
1018DiffServTBParamEntry ::= SEQUENCE  {
1019    diffServTBParamId              IndexInteger,
1020    diffServTBParamType            AutonomousType,
1021    diffServTBParamRate            Unsigned32,
1022    diffServTBParamBurstSize       BurstSize,
1023    diffServTBParamInterval        Unsigned32,
1024    diffServTBParamStorage         StorageType,
1025    diffServTBParamStatus          RowStatus
1026}
1027
1028diffServTBParamId 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
1038diffServTBParamType 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
1055diffServTBParamRate 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
1072diffServTBParamBurstSize 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
1085diffServTBParamInterval 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
1101diffServTBParamStorage 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
1114diffServTBParamStatus 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
1130diffServTBMeters  OBJECT IDENTIFIER ::= { diffServMIBAdmin 1 }
1131
1132diffServTBParamSimpleTokenBucket 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
1139diffServTBParamAvgRate 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
1146diffServTBParamSrTCMBlind 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
1155diffServTBParamSrTCMAware 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
1167diffServTBParamTrTCMBlind 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
1176diffServTBParamTrTCMAware 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
1185diffServTBParamTswTCM 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
1198diffServAction         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
1205diffServActionNextFree 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
1216diffServActionTable 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
1231diffServActionEntry 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
1241DiffServActionEntry ::= SEQUENCE  {
1242    diffServActionId                IndexInteger,
1243    diffServActionInterface         InterfaceIndexOrZero,
1244    diffServActionNext              RowPointer,
1245    diffServActionSpecific          RowPointer,
1246    diffServActionStorage           StorageType,
1247    diffServActionStatus            RowStatus
1248}
1249
1250diffServActionId 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
1260diffServActionInterface  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
1288diffServActionNext 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
1314diffServActionSpecific 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
1337diffServActionStorage 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
1348diffServActionStatus 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
1372diffServDscpMarkActTable 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
1382diffServDscpMarkActEntry 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
1392DiffServDscpMarkActEntry ::= SEQUENCE  {
1393    diffServDscpMarkActDscp          Dscp
1394}
1395
1396diffServDscpMarkActDscp 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
1425diffServCountActNextFree 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
1434diffServCountActTable 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
1443diffServCountActEntry 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
1453DiffServCountActEntry ::= SEQUENCE  {
1454    diffServCountActId           IndexInteger,
1455    diffServCountActOctets       Counter64,
1456    diffServCountActPkts         Counter64,
1457    diffServCountActStorage      StorageType,
1458    diffServCountActStatus       RowStatus
1459}
1460
1461diffServCountActId 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
1474diffServCountActOctets 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
1487diffServCountActPkts 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
1500diffServCountActStorage 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
1511diffServCountActStatus 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
1530diffServAlgDrop        OBJECT IDENTIFIER ::= { diffServMIBObjects 6 }
1531
1532diffServAlgDropNextFree 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
1541diffServAlgDropTable 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
1550diffServAlgDropEntry 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
1562DiffServAlgDropEntry ::= 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
1580diffServAlgDropId 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
1590diffServAlgDropType 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
1636diffServAlgDropNext 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
1663diffServAlgDropQMeasure 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
1681diffServAlgDropQThreshold 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
1698diffServAlgDropSpecific 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
1728diffServAlgDropOctets 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
1742diffServAlgDropPkts 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
1756diffServAlgRandomDropOctets 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
1771diffServAlgRandomDropPkts 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
1789diffServAlgDropStorage 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
1800diffServAlgDropStatus 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
1816diffServRandomDropNextFree 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
1828diffServRandomDropTable 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
1838diffServRandomDropEntry 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
1848DiffServRandomDropEntry ::= 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
1861diffServRandomDropId 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
1871diffServRandomDropMinThreshBytes 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
1886diffServRandomDropMinThreshPkts 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
1898diffServRandomDropMaxThreshBytes 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
1912diffServRandomDropMaxThreshPkts 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
1926diffServRandomDropProbMax 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
1943diffServRandomDropWeight 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
1963diffServRandomDropSamplingRate 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
1974diffServRandomDropStorage 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
1988diffServRandomDropStatus 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
2004diffServQueue          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
2026diffServQNextFree 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
2038diffServQTable 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
2050diffServQEntry 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
2060DiffServQEntry ::= SEQUENCE  {
2061    diffServQId                      IndexInteger,
2062    diffServQNext                    RowPointer,
2063    diffServQMinRate                 RowPointer,
2064    diffServQMaxRate                 RowPointer,
2065    diffServQStorage                 StorageType,
2066    diffServQStatus                  RowStatus
2067}
2068
2069diffServQId 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
2079diffServQNext 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
2101diffServQMinRate 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
2119diffServQMaxRate 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
2140diffServQStorage 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
2151diffServQStatus 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
2167diffServScheduler      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
2190diffServSchedulerNextFree 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
2199diffServSchedulerTable 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
2209diffServSchedulerEntry 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
2219DiffServSchedulerEntry ::= SEQUENCE  {
2220    diffServSchedulerId                   IndexInteger,
2221    diffServSchedulerNext                 RowPointer,
2222    diffServSchedulerMethod               AutonomousType,
2223    diffServSchedulerMinRate              RowPointer,
2224    diffServSchedulerMaxRate              RowPointer,
2225    diffServSchedulerStorage              StorageType,
2226    diffServSchedulerStatus               RowStatus
2227}
2228
2229diffServSchedulerId 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
2242diffServSchedulerNext 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
2275diffServSchedulerMethod 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
2290diffServSchedulerMinRate 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
2310diffServSchedulerMaxRate 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
2332diffServSchedulerStorage 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
2346diffServSchedulerStatus 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
2362diffServSchedulers  OBJECT IDENTIFIER ::= { diffServMIBAdmin 2 }
2363
2364diffServSchedulerPriority 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
2376diffServSchedulerWRR 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
2391diffServSchedulerWFQ 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
2430diffServMinRateNextFree 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
2442diffServMinRateTable 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
2452diffServMinRateEntry 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
2463DiffServMinRateEntry ::= SEQUENCE  {
2464    diffServMinRateId              IndexInteger,
2465    diffServMinRatePriority        Unsigned32,
2466    diffServMinRateAbsolute        Unsigned32,
2467    diffServMinRateRelative        Unsigned32,
2468    diffServMinRateStorage         StorageType,
2469    diffServMinRateStatus          RowStatus
2470}
2471
2472diffServMinRateId 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
2482diffServMinRatePriority 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
2496diffServMinRateAbsolute 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
2523diffServMinRateRelative 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
2552diffServMinRateStorage 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
2563diffServMinRateStatus 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
2607diffServMaxRateNextFree 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
2616diffServMaxRateTable 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
2626diffServMaxRateEntry 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
2637DiffServMaxRateEntry ::= 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
2650diffServMaxRateId 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
2660diffServMaxRateLevel 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
2676diffServMaxRateAbsolute 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
2707diffServMaxRateRelative 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
2736diffServMaxRateThreshold 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
2753diffServMaxRateStorage 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
2764diffServMaxRateStatus 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
2780diffServMIBCompliances OBJECT IDENTIFIER ::=
2781                                     { diffServMIBConformance 1 }
2782diffServMIBGroups      OBJECT IDENTIFIER ::=
2783                                     { diffServMIBConformance 2 }
2784
2785diffServMIBFullCompliance 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
2908diffServMIBReadOnlyCompliance 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
3489diffServMIBDataPathGroup 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
3500diffServMIBClfrGroup 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
3514diffServMIBClfrElementGroup 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
3528diffServMIBMultiFieldClfrGroup 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
3553diffServMIBMeterGroup 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
3568diffServMIBTBParamGroup 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
3581diffServMIBActionGroup 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
3593diffServMIBDscpMarkActGroup 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
3603diffServMIBCounterGroup 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
3620diffServMIBAlgDropGroup 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
3633diffServMIBRandomDropGroup 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
3652diffServMIBQGroup 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
3667diffServMIBSchedulerGroup 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
3680diffServMIBMinRateGroup 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
3692diffServMIBMaxRateGroup 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
3704END
3705