Internet Engineering Task Force F. Baker
Diffserv Working Group Cisco Systems
INTERNET-DRAFT K. Chan
Expires:September 2000 Nortel Networks
A. Smith
Extreme Networks
Management Information Base for the
Differentiated Services Architecture
draft-ietf-diffserv-mib-02.txt
Abstract
This memo describes a proposed MIB for the Differentiated
Services Architecture [Architecture] and described by the
Differentiated Services Router Conceptual Model [Model].
Currently total agreement on content of this MIB has not been
reached, especially in the dropping and queueing mechanism
attributes. Further discussion on these topics are required
for finalizing this memo.
1. Status of this Memo
This document is an Internet-Draft and is in full conformance
with all provisions of Section 10 of RFC 2026. Internet-Drafts
are working documents of the Internet Engineering Task Force
(IETF), its areas, and its working groups. Note that other
groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six
months and may be updated, replaced, or obsoleted by other
documents at any time. It is inappropriate to use Internet
Drafts as reference material or to cite them other than as
"work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed
at http://www.ietf.org/shadow.html.
This particular draft is being developed in the Differentiated
Services Working Group. Discussion of it therefore belongs on
that list. The charter for Differentiated Services may be
Baker, Chan, SmithExpiration: September 2000 [Page 1]
Draft Differentiated Services MIB March 2000
found at http://www.ietf.org/html.charters/diffserv-
charter.html
2. The SNMP Management Framework
The SNMP Management Framework presently consists of five major
components:
o An overall architecture, described in RFC 2571 [1].
o Mechanisms for describing and naming objects and
events for the purpose of management. The first
version of this Structure of Management Information
(SMI) is called SMIv1 and described in RFC 1155 [2],
RFC 1212 [3] and RFC 1215 [4]. The second version,
called SMIv2, is described in RFC 2578 [5], RFC 2579
[6] and RFC 2580 [7].
o Message protocols for transferring management
information. The first version of the SNMP message
protocol is called SNMPv1 and described in RFC 1157
[8]. A second version of the SNMP message protocol,
which is not an Internet standards track protocol, is
called SNMPv2c and described in RFC 1901 [9] and RFC
1906 [10]. The third version of the message protocol
is called SNMPv3 and described in RFC 1906 [10], RFC
2572 [11] and RFC 2574 [12].
o Protocol operations for accessing management
information. The first set of protocol operations and
associated PDU formats is described in RFC 1157 [8]. A
second set of protocol operations and associated PDU
formats is described in RFC 1905 [13].
o A set of fundamental applications described in RFC
2573 [14] and the view-based access control mechanism
described in RFC 2575 [15].
A more detailed introduction to the current SNMP Management
Framework can be found in RFC 2570 [16].
Managed objects are accessed via a virtual information store,
termed the Management Information Base or MIB. Objects in the
MIB are defined using the mechanisms defined in the SMI.
This memo specifies a MIB module that is compliant to the
SMIv2. A MIB conforming to the SMIv1 can be produced through
Baker, Chan, SmithExpiration: September 2000 [Page 2]
Draft Differentiated Services MIB March 2000
the appropriate translations. The resulting translated MIB
must be semantically equivalent, except where objects or
events are omitted because no translation is possible (use of
Counter64). Some machine-readable information in SMIv2 will be
converted into textual descriptions in SMIv1 during the
translation process. However, this loss of machine readable
information is not considered to change the semantics of the
MIB.
Baker, Chan, SmithExpiration: September 2000 [Page 3]
Draft Differentiated Services MIB March 2000
3. Structure of this MIB
This MIB is designed according to the Differentiated Services
implementation conceptual model documented in [Model].
3.1. Overview
In principle, if one were to construct a network entirely out
of two-port routers (in appropriate places connected by LANs
or similar media), then it would be necessary for each router
to perform exactly four QoS control functions on traffic in
each direction:
- Classify each message according to some set of rules
- In edge devices, determine whether the data stream the
message is part of is within or outside its rate
- Perform some set of resulting actions, minimally
including applying a drop policy appropriate to the
classification and queue in question, and in edge devices
perhaps additionally marking the traffic with a
Differentiated Services Code Point (DSCP) as defined in
[DSCP].
- Enqueue the traffic for output in the appropriate queue,
which may shape the traffic or simply forward it with
some minimum rate or maximum latency.
If we build the network out of N-port routers, we expect the
behavior of the network to be identical. We are forced,
therefore, to provide essentially the same set of functions on
the ingress port of a router as on the egress port of a
router. Some interfaces will be "edge" interfaces and some
will be "interior" to the Differentiated Services domain. The
one point of difference between an ingress and an egress
interface is that all traffic on an egress interface is
queued, while traffic on an ingress interface will typically
be queued only for shaping purposes.
Hence, in this MIB, we model them identically, making the
distinction between ingress and egress interfaces an index
variable.
The MIB therefore contains the following elements:
- IP Six Tuple Multi-Field Classification Table
- Classifier Table
Baker, Chan, SmithExpiration: September 2000 [Page 4]
Draft Differentiated Services MIB March 2000
- Meter Table
- Action and Action Type Tables
- Queue Set, Queue, and Queue Measurement Tables
3.2. Classifier Table
The classifier table indicates how traffic is sorted out. It
identifies separable classes of traffic, by reference to an
appropriate classifier, which may be anything from an
individual micro-flow to aggregates identified by DSCP. It
then sends these classified streams to an appropriate meter or
action. In a multi-stage meter, sub-classes of traffic may be
sent to different stages. For example, in AF1, AF11 traffic
might be sent to the first meter, AF12 traffic might be sent
to the second, and AF13 traffic sent to the second meter
stage's failure action.
The structure of the classifier table is a sequence of
unambiguous tests. Within each step in the sequence, it should
not be important in which order - if order is present at all -
the tests are made. This is to facilitate optimized
implementations such as index trees. Sequence is present in
order to resolve ambiguity.
For example, one might want first to disallow certain
applications from using the network at all, or to classify
some individual traffic streams that are not diff-serv marked.
Traffic that fails those tests might then be inspected for a
DSCP. "Then" implies sequence, and the sequence must be
somehow specified.
An important form of classifier is "everything else". The
final stage of the classifier should be configured to be
complete, as the result of an incomplete classifier is not
necessarily deterministic.
The actual classifier definition is referenced via a
RowPointer, this enable the use of any sort of classification
table that one might wish to design, public or proprietary.
That classifier table need not be found in this MIB. When
ambiguity is present, we disambiguate by explicitly ordering
the application of classification rules.
The classifiers specified here are at the per interface level,
they may be derived from some higher level policies, but such
discussion is out- side the scope of this document.
Baker, Chan, SmithExpiration: September 2000 [Page 5]
Draft Differentiated Services MIB March 2000
3.2.1. IP Six Tuple Classifier Table
This MIB currently specifies the IP Six Tuple Classifier, used
for IP traffic classification. Entry of this Classifier Table
is referenced from the entries of the diffServClassifierTable
via a RowPointer, namely diffServClassifierPattern attribute
of diffServClassifierEntry object.
The Behavior Aggregate (BA) Classifier is a simple form of the
IP Six Tuple Classifier. It is represented by having the
diffServSixTupleClfrDscp attribute set to the desired DSCP,
and all other classification attributes set to match-all, the
default setting.
Each entry in the IP Six Tuple Classifier Table defines a
single Classifier, with the use of InetAddress [INETADDR] for
both IPv4 and IPv6 addressing. The use of IP Six Tuple
Classifiers is discussed in [Architecture] and abstract
examples of how they might be configured are provided in
[Model].
3.3. Meter Table
A meter, according to the conceptual model, measures the rate
at which a stream of traffic passes it, compares it to some
set of thresholds, and produces some number (two or more)
potential results. A given message is said to "conform" to the
meter if at the time that the message is being looked at the
stream appears to be within the meter's limit rate. In the
MIB, the structure of SNMP makes it easiest to implement this
as a set of one or more simple pass/fail tests, which are
cascaded. It is to be understood that the meter in a Traffic
Control Block is therefore implemented as a set of if-then-
else constructs.
The concept of conformance to a meter bears a comment. The
concept applied in several rate-control architectures,
including ATM, Frame Relay, Integrated Services, and
Differentiated Services, is variously described as a "leaky
bucket" or a "token bucket".
A leaky bucket algorithm is primarily used for traffic
shaping: traffic theoretically departs from the switch at a
flat rate of one bit every so many time units, and in fact
departs in packets at a rate approximating that. It is also
possible to build multi-rate leaky buckets, in which traffic
Baker, Chan, SmithExpiration: September 2000 [Page 6]
Draft Differentiated Services MIB March 2000
departs from the switch at varying rates depending on recent
activity or inactivity.
A token bucket is used to measure the behavior of a peer's
leaky bucket, for verification purposes. It is, by definition,
a relationship
interval = burst/rate, or
rate = burst/interval
for some defined burst size, in bits, rate, in bits per
second, and time interval. Multi-rate token buckets (token
buckets with both a peak and a mean rate, and sometimes more
rates) are commonly used. In this case, the burst size for the
baseline traffic is conventionally referred to as the
"committed burst", and the time interval is as specified by
interval = committed burst/mean rate
but additional burst sizes (each an increment over its
predecessor) are defined, which are conventionally referred to
as "excess" burst sizes. The peak rate therefore equals the
sum of the burst sizes per interval.
A data stream is said to "conform" to a simple token bucket if
the switch receives at most the burst size in a given time
interval. In the multi-rate case, the traffic is said to
conform to the token bucket at a given level if its rate does
not exceed the sum of the relevant burst sizes in a given
interval. Received traffic pre-classified at one of the
"excess" rates (e.g., AF12 or AF13 traffic) is only compared
to the relevant excess buckets.
The fact that data is organized into variable length packets
introduces some uncertainty in this. For this reason, the
token bucket accepts a packet if any of its bits would have
been accepted, and "borrows" any excess capacity required from
that allotted to equivalently classified traffic in a previous
or subsequent interval. More information about this is
available in [Model].
Multiple classes of traffic, as identified by the classifier
table, may be presented to the same meter. Imagine, for
example, that we desire to drop all traffic that uses any DSCP
that has not been publicly defined. A classifier entry might
exist for each such DSCP, shunting it to an "accepts
everything" meter, and dropping all traffic that conforms to
Baker, Chan, SmithExpiration: September 2000 [Page 7]
Draft Differentiated Services MIB March 2000
only that meter.
Clearly, it is necessary to identify what is to be done with
messages that conform to the meter, and with messages that do
not. It is also necessary for the meter to be arbitrarily
extensible, as some PHBs require the successive application of
an arbitrary number of meters. The approach taken in this
design is to have each meter indicate what action is to be
taken for conforming traffic, and what meter is to be used for
traffic which fails to conform. With the definition of a
special type of meter to which all traffic conforms, we now
have the necessary flexibility.
3.4. Action Table
Considerable discussion has taken place regarding the possible
actions. Suggested actions include "no action", "mark the
traffic", "drop the traffic, based on some algorithm", "shape
the traffic", "count it". This MIB attempts to make the
specification of the action flexible by using the Action Table
to organize one Action's relationship with the Meter element
before it, with the Queueing element following it, and with
other Action elements to allow multiple Actions be applied to
a single traffic stream. The parameters needed will depend on
the type of Action to be taken. Hence there are Action Tables
for the different Action Types. This MIB currently defines
parameters for: 1. Mark Action, 2. Count Action, 3. Drop
Action,
This flexibility allows additional Actions be specified in
future revisions of this MIB, or in other MIBs. And possible
usage of propietary Action without impact to the Actions
provided here.
The Mark Action is relatively straight forward.
For Count Action, when it is specified, it will always be
applied first, before any other type of Actions. For example,
when both Count and a Drop Action is specified, the Count
Action will always count the total counts of this traffic
stream, before any traffic gets dropped, even if the Action
entries are chained with the Drop Action first, before the
Count Action. There are counters in the Drop Actions to
indicate the ammount of traffic dropped, within the drop
context.
The Drop Actions require close relationship with queueing,
Baker, Chan, SmithExpiration: September 2000 [Page 8]
Draft Differentiated Services MIB March 2000
with detail as follows:
The Tail Drop Action requires the specification of a maximum
queue depth, at which point any traffic exceeding the maximum
queue depth gets discarded.
*Editor's Note Start*
There is still debates on what
attributes are needed and how they may be related to queueing.
The following is viewed as the complex description of how it
may be done. The following set of attributes and its
description may be simplified before this memo is finalized.
There is a more detail discussion of why these attributes are
required in [ActQMgmt].
*Editor's Note End*
The Random Drop Action requires the specification of its drop
characteristic with the following parameters (drop
characteristic described using a plot with drop probability,
P, as Y axis, and average queue length, Q, as X axis):
1. Pmin and Qmin defines the start of the characteristic plot.
Normally Pmin=0, meaning with average queue length below
Qmin, there will be no drops.
2. Pmax and Qmax defines a "knee" on the plot, after which
point the drop probability become more progressive (greater
slope).
Qclip defines the average queue length at which all packets
will be dropped, probability = 1. Notice this is different
from Tail Drop because this uses average queue length.
It is possible for Qclip = Qmax, meaning when the average
queue length exceeds Qmax, all packets will be dropped.
3. The sampling interval and average weight parameters are used
for calculation of average queue. These parameters are
important because they can affect the behavior and outcome
of the drop process. They can also be very sensitive and
may have a wide range of possible values due to wide range
of link speeds, hence the use of real number format for
average weight.
Deterministic Drop Action can be viewed as a special case of
Random Drop with drop probability restricted to zero and one.
Hence Deterministic Drop Action can be described as follows:
1. Pmin = 0 and Pmax = 1. 2. Qmin = Qmax = Qclip indicating
the average queue length that drop occurs.
Baker, Chan, SmithExpiration: September 2000 [Page 9]
Draft Differentiated Services MIB March 2000
For the drop actions, each drop process specification is
associated with a queue. This allows multiple drop processes
(of same or different types) be associated with the same
queue, as different PHB implementation may require. This
setup allows the flexibility for Action specification,
including multiple sequential drop processes if necessary.
When counters are specified, two sizes of objects are defined.
These are defined in accordance with the method found in
[IFMIB]; both 32 and 64 bit counters are defined, with the
expectation that the 32 bit counter is simply the least
significant bits of the 64 bit counter. For interfaces that
operate at 20,000,000 (20 million) bits per second or less,
32-bit byte and packet counters MUST be used. For interfaces
that operate faster than 20,000,000 bits/second, and slower
than 650,000,000 bits/second, 32-bit packet counters MUST be
used and 64-bit octet counters MUST be used. For interfaces
that operate at 650,000,000 bits/second or faster, 64-bit
packet counters AND 64-bit octet counters MUST be used.
Multiple Actions can be chained using the ActionNext
attribute. The last Action's ActionNext attribute points to
the next TCB, normally a Queue Entry for the Queue element.
3.5. Queueing Element
The Queueing element consists of Queue Table and Queue Set
Table. With Queue Table containing relatively simple FIFO
queues. Using the Queue Set Table to allow flexibility in
constructing both simple and complex queueing hierarchies.
The queue entries in the Queue Table have simple attributes,
it includes a reference to which queue set the queue belongs
to, and a weight parameter. For Priority Queueing, the weight
parameter indicates the priority of this queue with respect to
all the other queues within the same queue set. A higher
weight value queue will be service first over a lower weight
value queue in the same queue set. For weighed queueing
algorithms, the weight parameter is a percentage number. With
the value of 1,000 meaning 1 percent, allowing fine control of
bandwidth allocation when needed. A higher weight value queue
will have higher probability of being service when compared to
a lower weight value queue in the same queue set. The weight
values for all the queues within a queue set must add up to
less than or equal to 100,000 (100%). Each queue is capable
of acting as a work-conserving queue, one which transmits as
Baker, Chan, SmithExpiration: September 2000 [Page 10]
Draft Differentiated Services MIB March 2000
rapidly as its weight allows, but guarantees to its class of
traffic, as a side effect of its weight, a minimum rate. Or
acting as a non-work-conserving "shaping" queue.
The entries in the Queue Set Table describes the attributes
common to all queues within the queue set. This includes the
dequeueing Method, or algorithm used amongst the queues in the
queue set. Currently, priority queueing, Weighed Fair
Queueing, Weighed Round Robin are listed as the possible
chooses, other methods/algorithms, e.g. Class Base Queueing,
can be added.
The rates, both minimum and maximum, are specified for the
queue set instead of per queue. This allows
A hierarchical tree of queue sets can be constructed using the
parent/child queue set concept. The attributes QSetParentId
and QSetWeight is used for this purpose, with QSetParentId
indicating the parent's QSetId, and QSetWeight used as the
child queue set's total weight amongst the queues in the
parent queue set. There can be multiple children queue set
under one parent queue set, with each child queue set looks
like a queue from the parent queue set's perspective. Hence
queue sets can be recursively defined, inter mixing with
queues at any level.
A mixed dequeue scheduling discipline can be built for an
interface. For example, with the following queues and queue
sets:
Q Parameters Q Set Parameters
QId QSetId QWeight Method MinRate ParentId QSetWeight
--- ------ ------- ------ ------- -------- ----------
11 61 100 PQ 0 0 0
12 61 99 PQ 0 0 0
21 71 50,000 WFQ 10000 61 98
22 71 30,000 WFQ 10000 61 98
23 71 20,000 WFQ 10000 61 98
31 81 70,000 WRR 500 61 97
32 81 30,000 WRR 500 61 97
Notice in this example there are three queue sets: Queue Set
61 uses Priority Queueing, it have 2 child Queue Sets. Queue
Set 71 uses Weighed Fair Queueing with KBPS as RateUnit.
Baker, Chan, SmithExpiration: September 2000 [Page 11]
Draft Differentiated Services MIB March 2000
Queue Set 81 uses Weighed Round Robin with Packets/Sec as
RateUnit.
Queues 11, 12, queue sets 71 and 81 belongs to Queue Set 61.
Queues 21, 22, 23 belongs to Queue Set 71. Queues 31, 32
belongs to Queue Set 81.
All traffic in queue 11 will be serviced first, then all
traffic in queue 12 will be serviced second. After traffic in
queues 11 and 12 are serviced, queues 21, 22, 23 are serviced
among themselves in a fair queueing fashion, based on their
respective weight. After traffic in queues 21, 22, 23 are
serviced, queues 31, 32 are serviced among themselves in a
round robin fashion, based on their respective weight. Notice
Queue Set 71 uses KBPS RateUnit, resulting in bit/byte fair
queueing. Queue Set 81 uses Packet RateUnit, resulting in
packet fair queueing.
The rates for each queue can be derived: Queue 21 have
minimum rate of 50% of 10000 KBPS, 5000 KBPS. Queue 31 have
minimum rate of 70% of 500 Pkt/Sec, 350 Pkt/Sec.
Other types of scheduling algorithms can be used in the parent
or child queue sets, creating different queueing behaviors.
The queue set can also operate as a traffic shaper by using
the maximum rate attribute.
Chains of Queues/Queue Sets can be built using the NextTCB
attribute in Queue Set entry.
Multiple meters may direct their traffic to the same queue.
For example, the Assured Forwarding PHB suggests that all
traffic marked AF11, AF12, or AF13 be placed in the same queue
without reordering.
3.6. The use of RowPointer
RowPointer is a textual convention used to identify a
conceptual row in an SNMP Table by pointing to one of its
objects. In this MIB, it is used in two ways: to indicate
indirection, and to indicate succession.
When used for indirection, as in the Classifier table, the
idea is to allow other MIBs, including proprietary ones, to
identify new and arcane classifiers - MAC headers, IP4 and IP6
Baker, Chan, SmithExpiration: September 2000 [Page 12]
Draft Differentiated Services MIB March 2000
headers, BGP Communities, and all sorts of things.
When used for succession, it answers the question "what
happens next?". Rather than presume that the next table must
be as specified in the conceptual model and providing its
index, the RowPointer takes you to the MIB row representing
that thing. In the Meter Table, for example, the "FailNext"
RowPointer might take you to another meter, while the
"SucceedNext" RowPointer would take you to an action.
Baker, Chan, SmithExpiration: September 2000 [Page 13]
Draft Differentiated Services MIB March 2000
4. MIB Definition
DIFF-SERV-MIB DEFINITIONS ::= BEGIN
IMPORTS
Unsigned32, Counter32, Counter64, OBJECT-TYPE,
MODULE-IDENTITY, zeroDotZero, mib-2 FROM SNMPv2-SMI
TEXTUAL-CONVENTION, RowStatus, RowPointer, TestAndIncr
FROM SNMPv2-TC
MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
ifIndex FROM IF-MIB
DisplayString FROM RFC1213-MIB
InetAddressType, InetAddress FROM INET-ADDRESS-MIB;
diffServMib MODULE-IDENTITY
LAST-UPDATED "9907190100Z" -- Mon Jul 19 01:00:00 PDT 1999
ORGANIZATION "Cisco Systems"
CONTACT-INFO
" Fred Baker
Postal: 519 Lado Drive
Santa Barbara, California 93111
Tel: +1 (408) 526-4257
FAX: +1 (805) 681-0115
E-mail: fred@cisco.com
Kwok Ho Chan
Postal: 600 Technology Park Drive
Billerica, Massachusetts 01821, USA
Tel: +1 (978) 288-8175
FAX: +1 (978) 288-4690
E-mail: khchan@nortelnetworks.com
Andrew Smith
Postal: 3585 Monroe St.
Santa Clara, California 95051
Tel: +1 (408) 579 2821
FAX: +1 (408) 579 3000
E-mail: andrew@extremenetworks.com"
DESCRIPTION
"This MIB defines the objects necessary to manage a
device that uses the Differentiated Services
Architecture described in RFC 2475 and the Conceptual
Model for DiffServ Routers in draft-ietf-diffserv-
model-01.txt."
REVISION "9907190100Z" -- Mon Jul 19 01:00:00 PDT 1999
DESCRIPTION
"Initial version, published as RFC xxxx."
Baker, Chan, SmithExpiration: September 2000 [Page 14]
Draft Differentiated Services MIB March 2000
::= { mib-2 12345 } -- anybody who uses this unassigned
-- number deserves the wrath of IANA
diffServObjects OBJECT IDENTIFIER ::= { diffServMib 1 }
diffServTables OBJECT IDENTIFIER ::= { diffServMib 2 }
diffServAugments OBJECT IDENTIFIER ::= { diffServMib 3 }
diffServMIBConformance OBJECT IDENTIFIER ::= { diffServMib 4 }
--
-- These textual conventions has no effect on either the syntax
-- nor the semantics of any managed object. Objects defined
-- using this convention are always encoded by means of the
-- rules that define their primitive type.
--
Dscp ::= TEXTUAL-CONVENTION
DISPLAY-HINT "d"
STATUS current
DESCRIPTION
"The code point used for discriminating a traffic
stream."
SYNTAX INTEGER (-1 | 0..63)
SixTupleClfrL4Port ::= TEXTUAL-CONVENTION
DISPLAY-HINT "d"
STATUS current
DESCRIPTION
"A value indicating a Layer-4 protocol port number."
SYNTAX INTEGER (0..65535)
Baker, Chan, SmithExpiration: September 2000 [Page 15]
Draft Differentiated Services MIB March 2000
--
-- Classifiers
--
-- The tools for IP Six Tuple Classification.
-- This object allows a configuring system to obtain a
-- unique value for diffServSixTupleClfrId for purposes
-- of configuration.
diffServSixTupleClfrUnique OBJECT-TYPE
SYNTAX TestAndIncr
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The diffServSixTupleClfrUnique object yields a unique new
value for diffServSixTupleClfrId when read and subsequently
set. This value must be tested for uniqueness."
::= { diffServObjects 1 }
diffServSixTupleClfrTable OBJECT-TYPE
SYNTAX SEQUENCE OF DiffServSixTupleClfrEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table of IP Six Tuple Classifier entries that a
system may use to identify traffic."
::= { diffServTables 1 }
diffServSixTupleClfrEntry OBJECT-TYPE
SYNTAX DiffServSixTupleClfrEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An IP Six Tuple Classifier entry describes a single
classifier."
INDEX { diffServSixTupleClfrId }
::= { diffServSixTupleClfrTable 1 }
DiffServSixTupleClfrEntry ::= SEQUENCE {
diffServSixTupleClfrId Unsigned32,
diffServSixTupleClfrAddrType InetAddressType,
diffServSixTupleClfrDstAddr InetAddress,
diffServSixTupleClfrDstAddrMask InetAddress,
diffServSixTupleClfrSrcAddr InetAddress,
diffServSixTupleClfrSrcAddrMask InetAddress,
diffServSixTupleClfrDscp Dscp,
diffServSixTupleClfrProtocol INTEGER,
Baker, Chan, SmithExpiration: September 2000 [Page 16]
Draft Differentiated Services MIB March 2000
diffServSixTupleClfrDstL4PortMin SixTupleClfrL4Port,
diffServSixTupleClfrDstL4PortMax SixTupleClfrL4Port,
diffServSixTupleClfrSrcL4PortMin SixTupleClfrL4Port,
diffServSixTupleClfrSrcL4PortMax SixTupleClfrL4Port,
diffServSixTupleClfrStatus RowStatus
}
diffServSixTupleClfrId OBJECT-TYPE
SYNTAX Unsigned32 (1..2147483647)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A unique id for the classifier. This object is meant
to be pointed to by a RowPointer from other tables,
such as the diffServClassifierPattern."
::= { diffServSixTupleClfrEntry 1 }
diffServSixTupleClfrAddrType OBJECT-TYPE
SYNTAX InetAddressType
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The type of IP address used by this classifier entry."
::= { diffServSixTupleClfrEntry 2 }
diffServSixTupleClfrDstAddr OBJECT-TYPE
SYNTAX InetAddress
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The IP address to match against the packet's
destination IP address."
::= { diffServSixTupleClfrEntry 3 }
diffServSixTupleClfrDstAddrMask OBJECT-TYPE
SYNTAX InetAddress
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"A mask for the matching of the destination IP address.
A zero bit in the mask means that the corresponding bit
in the address always matches."
DEFVAL {0}
::= { diffServSixTupleClfrEntry 4 }
diffServSixTupleClfrSrcAddr OBJECT-TYPE
SYNTAX InetAddress
Baker, Chan, SmithExpiration: September 2000 [Page 17]
Draft Differentiated Services MIB March 2000
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The IP address to match against the source IP address
of each packet."
::= { diffServSixTupleClfrEntry 5 }
diffServSixTupleClfrSrcAddrMask OBJECT-TYPE
SYNTAX InetAddress
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"A mask for the matching of the source IP address. A
zero bit in the mask means that the corresponding bit
in the address always matches."
DEFVAL {0}
::= { diffServSixTupleClfrEntry 6 }
diffServSixTupleClfrDscp OBJECT-TYPE
SYNTAX Dscp
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The value that the DSCP in the packet must have to
match this entry. A value of -1 indicates that a
specific DSCP value has not been defined and thus all
DSCP values are considered a match."
DEFVAL {-1}
::= { diffServSixTupleClfrEntry 7 }
diffServSixTupleClfrProtocol OBJECT-TYPE
SYNTAX INTEGER (0..255)
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The IP protocol to match against the IPv4 protocol
number in the packet. A value of zero means match all."
DEFVAL {0}
::= { diffServSixTupleClfrEntry 8 }
diffServSixTupleClfrDstL4PortMin OBJECT-TYPE
SYNTAX SixTupleClfrL4Port
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The minimum value that the layer-4 destination port
number in the packet must have in order to match this
Baker, Chan, SmithExpiration: September 2000 [Page 18]
Draft Differentiated Services MIB March 2000
classifier entry."
DEFVAL {0}
::= { diffServSixTupleClfrEntry 9 }
diffServSixTupleClfrDstL4PortMax OBJECT-TYPE
SYNTAX SixTupleClfrL4Port
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The maximum value that the layer-4 destination port
number in the packet must have in order to match this
classifier entry. This value must be equal to or
greater that the value specified for this entry in
diffServSixTupleClfrDstL4PortMin."
DEFVAL {65535}
::= { diffServSixTupleClfrEntry 10 }
diffServSixTupleClfrSrcL4PortMin OBJECT-TYPE
SYNTAX SixTupleClfrL4Port
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The minimum value that the layer-4 source port number
in the packet must have in order to match this
classifier entry."
DEFVAL {0}
::= { diffServSixTupleClfrEntry 11 }
diffServSixTupleClfrSrcL4PortMax OBJECT-TYPE
SYNTAX SixTupleClfrL4Port
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The maximum value that the layer-4 source port number
in the packet must have in oder to match this
classifier entry. This value must be equal to or
greater that the value specified for this entry in
dsSixTupleIpSrcL4PortMin."
DEFVAL {65535}
::= { diffServSixTupleClfrEntry 12 }
diffServSixTupleClfrStatus OBJECT-TYPE
SYNTAX RowStatus
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The RowStatus variable controls the activation,
Baker, Chan, SmithExpiration: September 2000 [Page 19]
Draft Differentiated Services MIB March 2000
deactivation, or deletion of a classifier. Any writable
variable may be modified whether the row is active or
notInService."
::= { diffServSixTupleClfrEntry 13 }
-- Classifier Table
-- This object allows a configuring system to obtain a
-- unique value for diffServClassifierNumber for purposes of
-- configuration
diffServClassifierUnique OBJECT-TYPE
SYNTAX TestAndIncr
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The diffServClassifierUnique object yields a unique
new value for diffServClassifierId when read and
subsequently set. This value must be tested for
uniqueness."
::= { diffServObjects 2 }
-- The Classifier Table allows us to enumerate the relationship
-- between arbitrary classifiers and the meters which apply
-- to classified streams.
diffServClassifierTable OBJECT-TYPE
SYNTAX SEQUENCE OF DiffServClassifierEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The classifier table defines the classifiers that a
system applies to incoming traffic. Specific
classifiers are defined by RowPointers in this table
which identify entries in classifier tables of specific
type, e.g. Multi-field classifiers for IP are defined
in diffServSixTupleClfrTable. Other classifier types
may be defined elsewhere."
::= { diffServTables 2 }
diffServClassifierEntry OBJECT-TYPE
SYNTAX DiffServClassifierEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry in the classifier table describes a single
Baker, Chan, SmithExpiration: September 2000 [Page 20]
Draft Differentiated Services MIB March 2000
classifier."
INDEX { ifIndex, diffServInterfaceDirection,
diffServClassifierId }
::= { diffServClassifierTable 1 }
DiffServClassifierEntry ::= SEQUENCE {
diffServInterfaceDirection INTEGER,
diffServClassifierId Unsigned32,
diffServClassifierPattern RowPointer,
diffServClassifierNext RowPointer,
diffServClassifierPrecedence Unsigned32,
diffServClassifierStatus RowStatus
}
diffServInterfaceDirection OBJECT-TYPE
SYNTAX INTEGER {
inbound(1), -- ingress interface
outbound(2) -- egress interface
}
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Specifies the direction for this entry on the
interface. 'inbound' traffic is operated on during
receipt, while 'outbound' traffic is operated on prior
to transmission."
::= { diffServClassifierEntry 1 }
diffServClassifierId OBJECT-TYPE
SYNTAX Unsigned32 (1..2147483647)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Classifier Id enumerates the classifier entry."
::= { diffServClassifierEntry 2 }
diffServClassifierPattern OBJECT-TYPE
SYNTAX RowPointer
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"A pointer to a valid entry in another table that
describes the applicable classification pattern, e.g.
an entry in diffServSixTupleClfrTable. If the row
pointed to does not exist, the classifier is ignored.
The value zeroDotZero is interpreted to match anything
Baker, Chan, SmithExpiration: September 2000 [Page 21]
Draft Differentiated Services MIB March 2000
not matched by another classifier - only one such entry
may exist in this table."
DEFVAL { zeroDotZero }
::= { diffServClassifierEntry 3 }
diffServClassifierNext OBJECT-TYPE
SYNTAX RowPointer
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The 'next' variable selects the next datapath element
to handle the classified flow. For example, this can
points to an entry in the meter or action table."
::= { diffServClassifierEntry 4 }
diffServClassifierPrecedence OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The relative precedence in which classifiers are
applied, higer numbers represent classifiers with
higher precedence. Classifiers with the same
precedence must be unambiguous, i.e. they must define
non-overlapping patterns. Classifiers with different
precedence may overlap in their patterns: the
classifier with the highest precedence that matches is
taken."
DEFVAL { 0 }
::= { diffServClassifierEntry 5 }
diffServClassifierStatus OBJECT-TYPE
SYNTAX RowStatus
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The RowStatus variable controls the activation,
deactivation, or deletion of a classifier. Any writable
variable may be modified whether the row is active or
notInService."
::= { diffServClassifierEntry 6 }
Baker, Chan, SmithExpiration: September 2000 [Page 22]
Draft Differentiated Services MIB March 2000
--
-- Meters
--
-- This MIB includes definitions for Token-Bucket
-- Meters as one example of possible meters.
-- This object allows a configuring system to obtain a
-- unique value for diffServTBMeterId for purposes of
-- configuration
diffServTBMeterUnique OBJECT-TYPE
SYNTAX TestAndIncr
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The diffServTBMeterUnique object yields a unique new
value for diffServTBMeterId when read and subsequently
set. This value must be tested for uniqueness."
::= { diffServObjects 3 }
diffServTBMeterTable OBJECT-TYPE
SYNTAX SEQUENCE OF DiffServTBMeterEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The Meter Table enumerates specific token bucket
meters that a system may use to police a stream of
classified traffic. The traffic stream is defined by
the classifier. It may include all traffic."
::= { diffServTables 3 }
diffServTBMeterEntry OBJECT-TYPE
SYNTAX DiffServTBMeterEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry in the meter table describes a single token
bucket meter. Note that a meter has exactly one rate,
defined as the burst size each time interval. Multiple
meters may be cascaded should a multi-rate token bucket
be needed in a given Per-Hop Behavior. An example of
such a PHB is AF."
INDEX { ifIndex, diffServInterfaceDirection,
diffServTBMeterId }
::= { diffServTBMeterTable 1 }
Baker, Chan, SmithExpiration: September 2000 [Page 23]
Draft Differentiated Services MIB March 2000
DiffServTBMeterEntry ::= SEQUENCE {
diffServTBMeterId Unsigned32,
diffServTBMeterRate Unsigned32,
diffServTBMeterBurstSize Unsigned32,
diffServTBMeterFailNext RowPointer,
diffServTBMeterSucceedNext RowPointer,
diffServTBMeterStatus RowStatus
}
diffServTBMeterId OBJECT-TYPE
SYNTAX Unsigned32 (1..2147483647)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"MeterId enumerates the meter entry."
::= { diffServTBMeterEntry 1 }
diffServTBMeterRate OBJECT-TYPE
SYNTAX Unsigned32
UNITS "KBPS"
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The token bucket rate, in kilo-bits per second (KBPS).
Note that if multiple meters are cascaded onto one PHB,
the peak rate of the data stream is the sum of their
rates."
::= { diffServTBMeterEntry 2 }
diffServTBMeterBurstSize OBJECT-TYPE
SYNTAX Unsigned32
UNITS "bytes"
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The number of bytes in a single transmission burst.
The interval can be derived with (BurstSizex8)/Rate."
::= { diffServTBMeterEntry 3 }
diffServTBMeterFailNext OBJECT-TYPE
SYNTAX RowPointer
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"If the traffic does NOT conform to the meter, FailNext
indicates the next datapath element to handle the
traffic. For example, an Action or Meter datapath
Baker, Chan, SmithExpiration: September 2000 [Page 24]
Draft Differentiated Services MIB March 2000
element. The value zeroDotZero in this variable
indicates no further DiffServ treatment is performed on
this flow by the current interface for this interface
direction."
DEFVAL { zeroDotZero }
::= { diffServTBMeterEntry 4 }
diffServTBMeterSucceedNext OBJECT-TYPE
SYNTAX RowPointer
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"If the traffic does conform to the meter, SucceedNext
indicates the next datapath element to handle the
traffic. For example, an Action or Meter datapath
element. The value zeroDotZero in this variable
indicates no further DiffServ treatment is performed on
this flow by the current interface for this interface
direction."
DEFVAL { zeroDotZero }
::= { diffServTBMeterEntry 5 }
diffServTBMeterStatus OBJECT-TYPE
SYNTAX RowStatus
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The RowStatus variable controls the activation,
deactivation, or deletion of a meter. Any writable
variable may be modified whether the row is active or
notInService."
::= { diffServTBMeterEntry 6 }
Baker, Chan, SmithExpiration: September 2000 [Page 25]
Draft Differentiated Services MIB March 2000
--
-- Actions
--
-- Notice the Drop Action attributes are referenced by the
-- action table rather than by the queue table because
-- Differentiated Services PHBs, such as the Assured Service,
-- permit differently classified traffic to have different
-- drop parameters even though they occupy the same queue."
--
-- Mark Action Table
-- Rows of this table is pointed to by diffServAction to
-- provide detail parameters specific to an Action Type.
-- This object allows a configuring system to obtain a
-- unique value for diffServMarkActId for purposes of
-- configuration.
diffServMarkActUnique OBJECT-TYPE
SYNTAX TestAndIncr
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The diffServMarkActUnique object yields a unique new
value for diffServMarkActId when read and subsequently
set. This value must be tested for uniqueness."
::= { diffServObjects 4 }
diffServMarkActTable OBJECT-TYPE
SYNTAX SEQUENCE OF DiffServMarkActEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The mark action table enumerates specific DSCPs used
for marking or remarking the DSCP field. The entries
of this table is meant to be referenced by the
diffServAction attribute of entries in
diffServActionTable for diffServActionType = mark."
::= { diffServTables 4 }
diffServMarkActEntry OBJECT-TYPE
SYNTAX DiffServMarkActEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry in the mark action table describes a single
DSCP used for marking."
Baker, Chan, SmithExpiration: September 2000 [Page 26]
Draft Differentiated Services MIB March 2000
INDEX { diffServMarkActId }
::= { diffServMarkActTable 1 }
DiffServMarkActEntry ::= SEQUENCE {
diffServMarkActId Unsigned32,
diffServMarkActDscp Dscp,
diffServMarkActStatus RowStatus
}
diffServMarkActId OBJECT-TYPE
SYNTAX Unsigned32 (1..2147483647)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Mark Action Id enumerates the Mark Action entry."
::= { diffServMarkActEntry 1 }
diffServMarkActDSCP OBJECT-TYPE
SYNTAX Dscp
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The DSCP this Action TCB uses for marking/remarking
traffic with." Note that if the classifier is working
from the same DSCP value, no effective change in the
DSCP results.
Differentiated Services may result in packet remarking
both on ingress to a network and on egress, and it is
quite possible that ingress and egress would occur in
the same router."
::= { diffServMarkActEntry 2 }
diffServMarkActStatus OBJECT-TYPE
SYNTAX RowStatus
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The RowStatus variable controls the activation,
deactivation, or deletion of this entry. Any writable
variable may be modified whether the row is active or
notInService."
::= { diffServMarkActEntry 3 }
-- Count Action Table
-- Rows of this table is pointed to by diffServAction to
Baker, Chan, SmithExpiration: September 2000 [Page 27]
Draft Differentiated Services MIB March 2000
-- provide detail parameters specific to Count Action.
-- This object allows a configuring system to obtain a
-- unique value for diffServCountActId for purposes of
-- configuration.
diffServCountActUnique OBJECT-TYPE
SYNTAX TestAndIncr
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The diffServCountActUnique object yields a unique new
value for diffServCountActId when read and subsequently
set. This value must be tested for uniqueness."
::= { diffServObjects 5 }
diffServCountActTable OBJECT-TYPE
SYNTAX SEQUENCE OF DiffServCountActEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The count action table contains flow specific
counters. The entries of this table is meant to be
referenced by the diffServAction attribute of entries
in diffServActionTable for diffServActionType = count."
::= { diffServTables 5 }
diffServCountActEntry OBJECT-TYPE
SYNTAX DiffServCountActEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry in the count action table describes a single
set of flow specific counters. This counter entry is
associated with a traffic flow via the
diffServActionEntry pointing to it."
INDEX { diffServActionId, diffServCountActId }
::= { diffServCountActTable 1 }
DiffServCountActEntry ::= SEQUENCE {
diffServCountActId Unsigned32,
diffServCountActOctetsCnt Counter32,
diffServCountActPktsCnt Counter32,
diffServCountActStatus RowStatus
}
diffServCountActId OBJECT-TYPE
Baker, Chan, SmithExpiration: September 2000 [Page 28]
Draft Differentiated Services MIB March 2000
SYNTAX Unsigned32 (1..2147483647)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Count Action Id enumerates the Count Action entry."
::= { diffServCountActEntry 1 }
diffServCountActOctetsCnt OBJECT-TYPE
SYNTAX Counter32
UNITS "octets"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Octets at the Action datapath element.
Meaning the octets has been classified and possibly
metered, and prior to any dropping process. This object
may be used on low speed interfaces, and represents the
least significant 32 bits of diffServCountActOctetsHCnt
in the augmented extension.
Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
ifCounterDiscontinuityTime."
::= { diffServCountActEntry 2 }
diffServCountActPktsCnt OBJECT-TYPE
SYNTAX Counter32
UNITS "packets"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Packets at the Action datapath element.
Meaning the packets has been classified and possibly
metered, and prior to any dropping process. This object
may be used on low speed interfaces, and represents the
least significant 32 bits of diffServCountActPktsHCount
in the augmented extension.
Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
ifCounterDiscontinuityTime."
::= { diffServCountActEntry 3 }
diffServCountActStatus OBJECT-TYPE
SYNTAX RowStatus
Baker, Chan, SmithExpiration: September 2000 [Page 29]
Draft Differentiated Services MIB March 2000
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The RowStatus variable controls the activation,
deactivation, or deletion of this entry. Any writable
variable may be modified whether the row is active or
notInService."
::= { diffServCountActEntry 4 }
--
-- High Capacity Counter Extension for Count Action Table
--
diffServCountActXTable OBJECT-TYPE
SYNTAX SEQUENCE OF DiffServCountActXEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table contains the high capacity counters for the
counters in the Count Action Table. These objects are
all 64-bit versions of the basic counters, having the
same basic semantics as their 32-bit counterparts, with
syntax extended to 64 bits."
AUGMENTS { diffServCountActEntry }
::= { diffServAugments 1 }
diffServCountActXEntry OBJECT-TYPE
SYNTAX DiffServCountActXEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry containing the 64 bit counters applicable to
a specific drop action entry."
::= { diffServActionXTable 1 }
DiffServCountActXEntry ::= SEQUENCE {
diffServCountActOctetsHCnt Counter64,
diffServCountActPktsHCnt Counter64
}
diffServCountActOctetsHCnt OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Octets at the Action datapath element.
Meaning the packets has been classified and possibly
Baker, Chan, SmithExpiration: September 2000 [Page 30]
Draft Differentiated Services MIB March 2000
metered, and prior to any dropping process. This
object should be used on high speed interfaces.
Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
ifCounterDiscontinuityTime."
::= { diffServCountActXEntry 1 }
diffServCountActPktsHCnt OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Packets at the Action datapath element.
Meaning the packets has been classified and possibly
metered, and prior to any dropping process. This
object should be used on high speed interfaces.
Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
ifCounterDiscontinuityTime."
::= { diffServCountActXEntry 2 }
-- Drop Action Table
-- Rows of this table is pointed to by diffServAction to
-- provide detail parameters specific to an Action Type.
-- Notice the use of diffServQueueId as part of this
-- table's index. Hence each entry is queue specific.
-- This object allows a configuring system to obtain a
-- unique value for diffServDropActId for purposes of
-- configuration.
diffServDropActUnique OBJECT-TYPE
SYNTAX TestAndIncr
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The diffServDropActUnique object yields a unique new
value for diffServDropActId when read and subsequently
set. This value must be tested for uniqueness."
::= { diffServObjects 6 }
Baker, Chan, SmithExpiration: September 2000 [Page 31]
Draft Differentiated Services MIB March 2000
diffServDropActTable OBJECT-TYPE
SYNTAX SEQUENCE OF DiffServDropActEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The drop action table enumerates sets of attributes
used to represent a drop process. Each set is normally
associated with a queue. The entries of this table is
meant to be referenced by the diffServAction attribute
of entries in diffServActionTable. The entries of this
table is used for: Tail Drop Action when
diffServActionType = tailDrop Random Drop Action when
diffServActionType = randomDrop Deterministic Drop
Action when diffServActionType = deterDrop"
::= { diffServTables 6 }
diffServDropActEntry OBJECT-TYPE
SYNTAX DiffServDropActEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry in the drop action table describes a single
drop process's configuration. For Tail Drop Process:
For Random Drop Process: (QMin,PMin) and (QMax,PMax)
defines the drop probability used for the random drop
process. Normally PMin have a value of zero. QClip
defines the guaranteed average queue depth, after which
the drop probability reaches 100%. For Deterministic
Drop Process: QMeasure points to an entry providing
Queue Measurement needed for the drop process."
INDEX { diffServQueueId, diffServDropActId }
::= { diffServTable 1 }
DiffServDropActEntry ::= SEQUENCE {
diffServDropActId Unsigned32,
diffServDropActQMin Unsigned32,
diffServDropActQMax Unsigned32,
diffServDropActQClip Unsigned32,
diffServDropActPMin Unsigned32,
diffServDropActPMax Unsigned32,
diffServDropActPCur Unsigned32,
diffServDropActQMeasure RowPointer,
diffServDropActOctetsCnt Counter32,
diffServDropActPktsCnt Counter32,
diffServDropActStatus RowStatus
}
Baker, Chan, SmithExpiration: September 2000 [Page 32]
Draft Differentiated Services MIB March 2000
diffServDropActId OBJECT-TYPE
SYNTAX Unsigned32 (1..2147483647)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Drop Action Id enumerates the Drop Action entry."
::= { diffServDropActEntry 1 }
diffServDropActQMin OBJECT-TYPE
SYNTAX Unsigned32
UNITS "Kilo Bits"
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"QMin, with PMin, defines the lowerest drop probability
point for this random drop process. With PMin=0, the
queue may drop if a packet is presented to it and the
average queue depth exceeds QMin."
::= { diffServDropActEntry 2 }
diffServDropActQMax OBJECT-TYPE
SYNTAX Unsigned32
UNITS "Kilo Bits"
MAX-ACCESS read-create
STATUS current
"QMax, with PMax, defines the higher point of drop
probability for random drop process. For Tail Drop
Process: This represents the measure by which the
queue will drop if a packet is presented to it."
::= { diffServDropActEntry 3 }
diffServDropActQClip OBJECT-TYPE
SYNTAX Unsigned32
UNITS "Kilo Bits"
MAX-ACCESS read-create
STATUS current
"The average queue length at which point the drop
probability reaches 100%."
::= { diffServDropActEntry 4 }
diffServDropActPMin OBJECT-TYPE
SYNTAX Unsigned32 (0..1000000)
UNITS "per-micro-age"
MAX-ACCESS read-write
STATUS current
"QMin, with PMin, defines the lowerest drop probability
point for this random drop process. With PMin=0, the
Baker, Chan, SmithExpiration: September 2000 [Page 33]
Draft Differentiated Services MIB March 2000
queue may drop if a packet is presented to it and the
average queue depth exceeds QMin. This drop
probability is expressed in per-micro-age, the value in
this attribute needs to be divided by 1,000,000 to
obtain the drop probability between 0 and 1."
::= { diffServDropActEntry 5 }
diffServDropActPMax OBJECT-TYPE
SYNTAX Unsigned32 (0..1000000)
UNITS "per-micro-age"
MAX-ACCESS read-write
STATUS current
"QMax and PMax are part of the drop probability
configuration. This drop probability is expressed in
per-micro-age, the value in this attribute needs to be
divided by 1,000,000 to obtain the drop probability
between 0 and 1."
::= { diffServDropActEntry 6 }
diffServDropActPCur OBJECT-TYPE
SYNTAX Unsigned32 (0..1000000)
UNITS "per-micro-age"
MAX-ACCESS read-only
STATUS current
"The current drop probability. This drop probability
is expressed in per-micro-age, the value in this
attribute needs to be divided by 1,000,000 to obtain
the drop probability between 0 and 1."
::= { diffServDropActEntry 7 }
diffServDropActQMeasure OBJECT-TYPE
SYNTAX RowPointer
MAX-ACCESS read-create
STATUS current
"Points to an entry in the diffServQMeasureTable for
queue information required by the drop process."
::= { diffServDropActEntry 8 }
diffServDropActOctetsCnt OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of octets that have been dropped by a drop
process. On high speed devices, this object implements
the least significant 32 bits of
diffServDropActOctetsHCnt.
Baker, Chan, SmithExpiration: September 2000 [Page 34]
Draft Differentiated Services MIB March 2000
Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
ifCounterDiscontinuityTime."
::= { diffServDropActEntry 9 }
diffServDropActPktsCnt OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of packets that have been dropped by a drop
process. On high speed devices, this object implements
the least significant 32 bits of
diffServDropActPktsHCnt.
Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
ifCounterDiscontinuityTime."
::= { diffServDropActEntry 10 }
diffServDropActStatus OBJECT-TYPE
SYNTAX RowStatus
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The RowStatus variable controls the activation,
deactivation, or deletion of this entry. Any writable
variable may be modified whether the row is active or
notInService."
::= { diffServDropActEntry 11 }
--
-- High Capacity Counter Extension for Drop Action Table
--
diffServDropActXTable OBJECT-TYPE
SYNTAX SEQUENCE OF DiffServDropActXEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table contains the high capacity counters for the
counters in the Drop Action Table. These objects are
all 64 bit versions of the basic counters, having the
same basic semantics as their 32-bit counterparts, with
syntax extended to 64 bits."
Baker, Chan, SmithExpiration: September 2000 [Page 35]
Draft Differentiated Services MIB March 2000
AUGMENTS { diffServDropActEntry }
::= { diffServAugments 2 }
diffServDropActXEntry OBJECT-TYPE
SYNTAX DiffServDropActXEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry containing the 64 bit counters applicable to
a specific drop action entry."
::= { diffServDropActXTable 1 }
DiffServDropActXEntry ::= SEQUENCE {
diffServDropActOctetsHCnt Counter64,
diffServDropActPktsHCnt Counter64
}
diffServDropActOctetsHCnt OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of octets that have been dropped by a drop
process. This object should be used on high speed
interfaces.
Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
ifCounterDiscontinuityTime."
::= { diffServDropActXEntry 1 }
diffServDropActPktsHCnt OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of packets that have been dropped by a drop
process. This object should be used on high speed
interfaces.
Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by the value of
ifCounterDiscontinuityTime."
::= { diffServDropActXEntry 2 }
Baker, Chan, SmithExpiration: September 2000 [Page 36]
Draft Differentiated Services MIB March 2000
-- This object allows a configuring system to obtain a
-- unique value for diffServActionId for purposes of
-- configuration
diffServActionUnique OBJECT-TYPE
SYNTAX TestAndIncr
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The diffServActionUnique object yields a unique new
value for diffServActionId when read and subsequently
set. This value must be tested for uniqueness."
::= { diffServObjects 7 }
-- The Action Table allows us to enumerate the different
-- types of actions to be applied to a flow.
diffServActionTable OBJECT-TYPE
SYNTAX SEQUENCE OF DiffServActionEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The Action Table enumerates actions that can be
performed to a stream of traffic. Multiple Actions can
be concatenated. For example, marking of a stream of
traffic exiting a meter (conforming or non-conforming),
then perform a drop process with dropped traffic counts
maintained. Notice counting is considered as a type of
action. The set of flow specific counters in the Count
Action Table maintains statistics for a flow that
arrives to this Action datapath element. This count is
always taken before any drop processing is performed."
::= { diffServTables 7 }
diffServActionEntry OBJECT-TYPE
SYNTAX DiffServActionEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry in the action table describes the actions
applied to traffic exiting a given meter."
INDEX { ifIndex, diffServInterfaceDirection,
diffServActionId }
::= { diffServActionTable 1 }
DiffServActionEntry ::= SEQUENCE {
diffServActionId Unsigned32,
Baker, Chan, SmithExpiration: September 2000 [Page 37]
Draft Differentiated Services MIB March 2000
diffServActionNext RowPointer,
diffServActionType INTEGER,
diffServAction RowPointer,
diffServActionStatus RowStatus
}
diffServActionId OBJECT-TYPE
SYNTAX Unsigned32 (1..2147483647)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Action Id enumerates the Action entry."
::= { diffServActionEntry 1 }
diffServActionNext OBJECT-TYPE
SYNTAX RowPointer
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The Next pointer indicates the next datapath element
to handle the traffic. For example, a queue datapath
element. The value zeroDotZero in this variable
indicates no further DiffServ treatment is performed on
this flow by the current interface for this interface
direction."
DEFVAL { zeroDotZero }
::= { diffServActionEntry 2 }
diffServActionType OBJECT-TYPE
SYNTAX INTEGER {
other(1), -- types not specified here.
mark(2), -- mark or remark
count(3), -- count
alwaysDrop(4), -- disallow traffic
tailDrop(5), -- fix queue size Drop
randomDrop(6), -- Random Drop
deterDrop(7) -- Deterministic Drop
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Indicates the type of action diffServAction points
to."
::= { diffServActionEntry 3 }
diffServAction OBJECT-TYPE
SYNTAX RowPointer
Baker, Chan, SmithExpiration: September 2000 [Page 38]
Draft Differentiated Services MIB March 2000
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"Points to a row in a Action Type Table that provides
all the parameters for the type of action indicated in
diffServActionType. Can also points to a row in some
other MIB to provide some proprietary action type."
::= { diffServActionEntry 4 }
diffServActionStatus OBJECT-TYPE
SYNTAX RowStatus
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The RowStatus variable controls the activation,
deactivation, or deletion of a meter. Any writable
variable may be modified whether the row is active or
notInService."
::= { diffServActionEntry 5 }
Baker, Chan, SmithExpiration: September 2000 [Page 39]
Draft Differentiated Services MIB March 2000
--
-- Queue Set Table
-- The Queue Set Table is used for organizing queues
-- defined in the Queue Table into Queue Sets, with
-- queue scheduling defined in the queue set entry.
-- Queue Set Table provides flexibility in queue
-- organization and allows more complex hierarchical
-- scheduling algorithms be defined. For example,
-- multiple scheduling algorithms, each with multiple
-- queues, used on the same logical/physical interface.
--
-- This object allows a configuring system to obtain a
-- unique value for diffServQSetId for purposes of
-- configuration
diffServQSetUnique OBJECT-TYPE
SYNTAX TestAndIncr
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The diffServQSetUnique object yields a unique new
value for diffServQSetId when read and subsequently
set. This value must be tested for uniqueness."
::= { diffServObjects 8 }
diffServQSetTable OBJECT-TYPE
SYNTAX SEQUENCE OF DiffServQSetEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The Queue Set Table enumerates the queue sets. Queue
Sets are used to organize queues based on their
scheduling algorithms. Multiple sheduling algorithms
can be used, with each algorithm described by one Queue
Set Entry. Multiple instances of a single sheduling
algorithm, each with different scheduling parameters
can also be expressed, each described by its own Queue
Set Entry. Relationships between Queue Sets are used
to build scheduling algorithm hierarchies. For
example, a weighed fair queueing queue set can be a
part of a priority queueing queue set, having the
weighed fair queueing queue set be a branch of the
priority queueing queue set. More complex hierarchies
can also be expressed using this mechanism."
::= { diffServTables 8 }
Baker, Chan, SmithExpiration: September 2000 [Page 40]
Draft Differentiated Services MIB March 2000
diffServQSetEntry OBJECT-TYPE
SYNTAX DiffServQSetEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry in the Queue Set Table describes a single
queue set."
INDEX { ifIndex, diffServInterfaceDirection,
diffServQSetId }
::= { diffServQSetTable 1 }
DiffServQSetEntry ::= SEQUENCE {
diffServQSetId Unsigned32,
diffServQSetParentId Unsigned32,
diffServQSetWeight Unsigned32,
diffServQSetMethod INTEGER,
diffServQSetRateUnit INTEGER,
diffServQSetMinRate Unsigned32,
diffServQSetMaxRate Unsigned32,
diffServQSetNext RowPointer,
diffServQSetStatus RowStatus
}
diffServQSetId OBJECT-TYPE
SYNTAX Unsigned32 (1..2147483647)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The Queue Set Id enumerates the Queue Set entry."
::= { diffServQSetEntry 1 }
diffServQSetParentId OBJECT-TYPE
SYNTAX Unsigned32 (1..2147483647)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The Queue Set Parent Id allows the formation of
hierarchical relationships between scheduling
algorithms."
::= { diffServQSetEntry 2 }
diffServQSetWeight OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"Used with QSetParentId in hierarchical scheduling
Baker, Chan, SmithExpiration: September 2000 [Page 41]
Draft Differentiated Services MIB March 2000
setup. QSetWeight represent the weight of all queues
within this queue set, with respect to queues in other
queue sets in hierarchical scheduling. For example,
this queue set represents the weighed fair queueing
scheduling amongst all the queues in this queue set.
This set of weighted fair queueing queues as a whole
belongs to a priority queueing queue set. QSetWeight
determines this queue set's priority/weight in the
parent queue set's priority queueing scheduling
algorithm. There can be more than one weighed fair
queueing queue sets belonging to the same priority
queueing parent queue set."
::= { diffServQSetEntry 3 }
diffServQSetMethod OBJECT-TYPE
SYNTAX INTEGER {
other(1), -- not listed here
pq(2), -- Priority Queueing
wfq(3), -- Weighed Fair Queueing
wrr(4) -- Weighed Round Robin
}
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The scheduling algorithm used by queues in this queue
set."
::= { diffServQSetEntry 4 }
diffServQSetRateUnit OBJECT-TYPE
SYNTAX INTEGER {
kbps(1), -- kilo bits per second
packets(2) -- packets per second
}
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The unit of measure for the MinRate and MaxRate
attributes. The packet unit allows packet fair
algorithms in addition to bit fair algorithms."
::= { diffServQSetEntry 5 }
diffServQSetMinRate OBJECT-TYPE
SYNTAX Unsigned32
UNITS "KBPS"
MAX-ACCESS read-create
STATUS current
DESCRIPTION
Baker, Chan, SmithExpiration: September 2000 [Page 42]
Draft Differentiated Services MIB March 2000
"The minimum rate for the whole queue set. If the
value is zero, then there is effectively no minimum
rate. If the value is non-zero, the queue set will
seek to assure this class of traffic at least this
rate."
::= { diffServQSetEntry 6 }
diffServQSetMaxRate OBJECT-TYPE
SYNTAX Unsigned32
UNITS "KBPS"
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The maximum rate for the whole queue set. If the
value is zero, then there is effectively no maximum
rate. If the value is non-zero, the queue set will
seek to assure this class of traffic at most this
rate."
::= { diffServQSetEntry 7 }
diffServQSetNext OBJECT-TYPE
SYNTAX RowPointer
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"Selects the next data path component, which can be
another Queue Set. One usage of multiple serial Queue
Sets is for Class Base Queueing (CBQ). The value
zeroDotZero in this variable indicates no further
DiffServ treatment is performed on this flow by the
current interface for this interface direction. For
example, for an inbound interface the value zeroDotZero
indicates that the packet flow has now completed
inbound DiffServ treatment and should be forwarded on
to the appropriate outbound interface."
DEFVAL { zeroDotZero }
::= { diffServQSetEntry 8 }
diffServQSetStatus OBJECT-TYPE
SYNTAX RowStatus
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The RowStatus variable controls the activation,
deactivation, or deletion of a queue. Any writable
variable may be modified whether the row is active or
notInService."
Baker, Chan, SmithExpiration: September 2000 [Page 43]
Draft Differentiated Services MIB March 2000
::= { diffServQSetEntry 9 }
Baker, Chan, SmithExpiration: September 2000 [Page 44]
Draft Differentiated Services MIB March 2000
--
-- Queue Table
--
-- This object allows a configuring system to obtain a
-- unique value for diffServQId for purposes of
-- configuration.
diffServQUnique OBJECT-TYPE
SYNTAX TestAndIncr
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The diffServQUnique object yields a unique new value
for diffServQId when read and subsequently set. This
value must be tested for uniqueness."
::= { diffServObjects 9 }
-- The Queue Table allows us to describe individual queues
diffServQTable OBJECT-TYPE
SYNTAX SEQUENCE OF DiffServQEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The Queue Table enumerates the queues on an
interface."
::= { diffServTables 9 }
diffServQEntry OBJECT-TYPE
SYNTAX DiffServQEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry in the Queue Table describes a single FIFO
queue."
INDEX { diffServQQSetId, diffServQId }
::= { diffServQTable 1 }
DiffServQEntry ::= SEQUENCE {
diffServQId Unsigned32,
diffServQQSetId Unsigned32,
diffServQSchedulerWeight Unsigned32,
diffServQStatus RowStatus
}
diffServQId OBJECT-TYPE
Baker, Chan, SmithExpiration: September 2000 [Page 45]
Draft Differentiated Services MIB March 2000
SYNTAX Unsigned32 (1..2147483647)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The Queue Id enumerates the Queue entry."
::= { diffServQEntry 1 }
diffServQQSetId OBJECT-TYPE
SYNTAX Unsigned32 (1..2147483647)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Indicates the Queue Set this queue is part of."
::= { diffServQEntry 2 }
diffServQSchedulerWeight OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The weight or priority of the queue, depending on the
scheduling method used. Notice only the weight of the
queue is used, instead of the rate. The rate can be
derived based on the rate of the queue set. This is to
facilitate changing link speed and/or changing
scheduling method without reconfiguring the queues."
::= { diffServQEntry 3 }
diffServQStatus OBJECT-TYPE
SYNTAX RowStatus
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The RowStatus variable controls the activation,
deactivation, or deletion of a queue. Any writable
variable may be modified whether the row is active or
notInService."
::= { diffServQEntry 4 }
-- Queue Measurement Table
-- This object allows a configuring system to obtain a
-- unique value for diffServQMeasureId for purposes of
-- configuration.
diffServQMeasureUnique OBJECT-TYPE
SYNTAX TestAndIncr
Baker, Chan, SmithExpiration: September 2000 [Page 46]
Draft Differentiated Services MIB March 2000
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The diffServQMeasureUnique object yields a unique new
value for diffServQMeasureId when read and subsequently
set. This value must be tested for uniqueness."
::= { diffServObjects 10 }
diffServQMeasureTable OBJECT-TYPE
SYNTAX SEQUENCE OF DiffServQMeasureEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The Queue Measurement Table contains entries
describing the state of queues, this include states for
implementing traffic treatment algorithms. Notice
multiple queue measurement entries for the same queue
is allowed."
::= { diffServTables 10 }
diffServQMeasureEntry OBJECT-TYPE
SYNTAX DiffServQMeasureEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry in the Queue Measure Table describes a single
set of measurement for a specific queue."
INDEX { diffServQMeasureQId, diffServQMeasureId }
::= { diffServQMeasureTable 1 }
DiffServQMeasureEntry ::= SEQUENCE {
diffServQMeasureId Unsigned32,
diffServQMeasureQId Unsigned32,
diffServQMeasureAvgSampleInt Unsigned32,
diffServQMeasureAvgWeightExp Unsigned32,
diffServQMeasureAvgWeightMan Unsigned32,
diffServQMeasureQAverage Unsigned32,
diffServQMeasureStatus RowStatus
}
diffServQMeasureId OBJECT-TYPE
SYNTAX Unsigned32 (1..2147483647)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The Queue Measure Id enumerates the Queue Measure
entry."
Baker, Chan, SmithExpiration: September 2000 [Page 47]
Draft Differentiated Services MIB March 2000
::= { diffServQMeasureEntry 1 }
diffServQMeasureQId OBJECT-TYPE
SYNTAX Unsigned32 (1..2147483647)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Indicates the queue this measurement is associated
with."
::= { diffServQMeasureEntry 2 }
diffServQMeasureAvgSampleInt OBJECT-TYPE
SYNTAX Unsigned32
UNIT millisecond
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The sampling interval for queue average calculation,
in milliseconds. For queue sampling based on packet
enqueueing or dequeueing intervals, this attribute
should contain the value of zero."
::= { diffServQMeasureEntry 3 }
diffServQMeasureAvgWeightExp OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-create
STATUS current
"The exponent part of weight (in real number format)
for queue average calculation. This is a base 10
exponent, with the attribute representing a negative
value. For example, with 8 in this attribute meaning
10 to the power of -8. An 8 bit value here will be
sufficient."
::= { diffServQMeasureEntry 4 }
diffServQMeasureAvgWeightMan OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-create
STATUS current
"The mantissa part of weight (in real number format)
for queue average calculation. Always a positive
number. Need 16 bits of accuracy."
::= { diffServQMeasureEntry 5 }
diffServQMeasureQAverage OBJECT-TYPE
SYNTAX Unsigned32
UNITS kilo-bits
Baker, Chan, SmithExpiration: September 2000 [Page 48]
Draft Differentiated Services MIB March 2000
MAX-ACCESS read-only
STATUS current
"The current queue average in kilo bits."
::= { diffServQMeasureEntry 6 }
diffServQMeasureStatus OBJECT-TYPE
SYNTAX RowStatus
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The RowStatus variable controls the activation,
deactivation, or deletion of a queue. Any writable
variable may be modified whether the row is active or
notInService."
::= { diffServQMeasureEntry 7 }
Baker, Chan, SmithExpiration: September 2000 [Page 49]
Draft Differentiated Services MIB March 2000
-- MIB Compliance statements. Three variations of
-- compliance are described, for optical, LAN, and low speed
-- interfaces. The difference is the implementation of
-- diffServActionOctetsHCnt, diffServActionPktsHCnt
-- and diffServCountActOctetsHCnt, diffServCountActPktsHCnt.
diffServMIBCompliances OBJECT IDENTIFIER ::= { diffServMIBConformance 1 }
diffServMIBGroups OBJECT IDENTIFIER ::= { diffServMIBConformance 2 }
diffServMIBCompliance MODULE-COMPLIANCE
STATUS current
DESCRIPTION
"This MIB may be implemented as a read-only or as a
read-create MIB. As a result, it may be used for
monitoring or for configuration.
Standard compliance implies that the implementation
complies for interfaces for which an interface's octet
counter might wrap at most once an hour, which by the
IFMIB's convention applies to interfaces under 20 MBPS.
It thus applies to any device which might implement a
low speed serial line, Ethernet, Token Ring."
MODULE -- This Module
MANDATORY-GROUPS {
diffServMIBClassifierGroup, diffServMIBMeterGroup,
diffServMIBQueueGroup, diffServMIBActionGroup
-- note that diffServMIBHCCounterGroup is
-- mandatory for medium and high speed interfaces
-- note that diffServMIBVHCCounterGroup is
-- mandatory for high speed interfaces
-- note that the diffServMIBStaticGroup is
-- mandatory for implementations that implement a
-- read-write or read-create mode.
}
GROUP diffServMIBHCCounterGroup
DESCRIPTION
"This group is mandatory for those network interfaces
for which the value of the corresponding instance of
ifSpeed is greater than 20,000,000 bits/second."
GROUP diffServMIBVHCCounterGroup
DESCRIPTION
"This group is mandatory for those network interfaces
Baker, Chan, SmithExpiration: September 2000 [Page 50]
Draft Differentiated Services MIB March 2000
for which the value of the corresponding instance of
ifSpeed is greater than 650,000,000 bits/second."
OBJECT diffServClassifierMatchObject
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServClassifierNext
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServClassifierSequence
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServClassifierStatus
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServTBMeterInterval
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServTBMeterBurstSize
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServTBMeterFailNext
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServTBMeterSucceedNext
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServTBMeterStatus
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
Baker, Chan, SmithExpiration: September 2000 [Page 51]
Draft Differentiated Services MIB March 2000
OBJECT diffServActionNext
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServActionDSCP
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServActionMinThreshold
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServActionMaxThreshold
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServActionDropPolicy
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServActionStatus
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServQueueMinimumRate
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServQueueMaximumRate
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServQueuePriority
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServQueueNextTCB
MIN-ACCESS read-only
Baker, Chan, SmithExpiration: September 2000 [Page 52]
Draft Differentiated Services MIB March 2000
DESCRIPTION
"Write access is not required."
OBJECT diffServQueueStatus
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
::= { diffServMIBCompliances 1 }
Baker, Chan, SmithExpiration: September 2000 [Page 53]
Draft Differentiated Services MIB March 2000
diffServMIBVHCCompliance MODULE-COMPLIANCE
STATUS current
DESCRIPTION
"This MIB may be implemented as a read-only or as a
read-create MIB. As a result, it may be used for
monitoring or for configuration.
Very High Speed compliance implies that the
implementation complies for interfaces for which an
interface's packet or octet counters might wrap more
than once an hour, which by the IFMIB's convention
applies to interfaces over 650 MBPS, or OC-12."
MODULE -- This Module
MANDATORY-GROUPS {
diffServMIBClassifierGroup, diffServMIBMeterGroup,
diffServMIBQueueGroup, diffServMIBHCCounterGroup,
diffServMIBVHCCounterGroup, diffServMIBActionGroup
-- note that the diffServMIBStaticGroup is
-- mandatory for implementations that implement a
-- read-write or read-create mode.
}
OBJECT diffServClassifierMatchObject
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServClassifierNext
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServClassifierSequence
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServClassifierStatus
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServTBMeterInterval
MIN-ACCESS read-only
DESCRIPTION
Baker, Chan, SmithExpiration: September 2000 [Page 54]
Draft Differentiated Services MIB March 2000
"Write access is not required."
OBJECT diffServTBMeterBurstSize
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServTBMeterFailNext
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServTBMeterSucceedNext
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServTBMeterStatus
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServActionNext
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServActionDSCP
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServActionMinThreshold
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServActionMaxThreshold
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServActionDropPolicy
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
Baker, Chan, SmithExpiration: September 2000 [Page 55]
Draft Differentiated Services MIB March 2000
OBJECT diffServActionStatus
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServQueueMinimumRate
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServQueueMaximumRate
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServQueuePriority
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServQueueNextTCB
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServQueueStatus
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
::= { diffServMIBCompliances 2 }
Baker, Chan, SmithExpiration: September 2000 [Page 56]
Draft Differentiated Services MIB March 2000
diffServMIBHCCompliance MODULE-COMPLIANCE
STATUS current
DESCRIPTION
"This MIB may be implemented as a read-only or as a
read-create MIB. As a result, it may be used for
monitoring or for configuration.
High Speed compliance implies that the implementation
complies for interfaces for which an interface's octet
counters might wrap more than once an hour, which by
the IFMIB's convention applies to interfaces over 20
MBPS, but under 650 MBPS. It thus applies to devices
which implement a 100 MBPS Ethernet, FDDI, E3, DS3, or
SONET/SDH interface up to OC-12."
MODULE -- This Module
MANDATORY-GROUPS {
diffServMIBClassifierGroup, diffServMIBMeterGroup,
diffServMIBQueueGroup, diffServMIBHCCounterGroup,
diffServMIBActionGroup
-- note that diffServMIBVHCCounterGroup is
-- mandatory for high speed interfaces
-- note that the diffServMIBStaticGroup is
-- mandatory for implementations that implement a
-- read-write or read-create mode.
}
GROUP diffServMIBVHCCounterGroup
DESCRIPTION
"This group is mandatory for those network interfaces
for which the value of the corresponding instance of
ifSpeed is greater than 650,000,000 bits/second."
OBJECT diffServClassifierMatchObject
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServClassifierNext
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServClassifierSequence
MIN-ACCESS read-only
DESCRIPTION
Baker, Chan, SmithExpiration: September 2000 [Page 57]
Draft Differentiated Services MIB March 2000
"Write access is not required."
OBJECT diffServClassifierStatus
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServTBMeterInterval
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServTBMeterBurstSize
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServTBMeterFailNext
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServTBMeterSucceedNext
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServTBMeterStatus
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServActionNext
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServActionDSCP
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServActionMinThreshold
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
Baker, Chan, SmithExpiration: September 2000 [Page 58]
Draft Differentiated Services MIB March 2000
OBJECT diffServActionMaxThreshold
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServActionDropPolicy
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServActionStatus
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServQueueMinimumRate
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServQueueMaximumRate
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServQueuePriority
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServQueueNextTCB
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServQueueStatus
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
::= { diffServMIBCompliances 3 }
Baker, Chan, SmithExpiration: September 2000 [Page 59]
Draft Differentiated Services MIB March 2000
diffServMIBClassifierGroup OBJECT-GROUP
OBJECTS {
diffServAggregateDSCP,
diffServClassifierMatchObject,
diffServClassifierNext,
diffServClassifierSequence,
diffServClassifierStatus
}
STATUS current
DESCRIPTION
"The Classifier Group defines the MIB Objects that
describe a classifier."
::= { diffServMIBGroups 1 }
diffServMIBMeterGroup OBJECT-GROUP
OBJECTS {
diffServTBMeterInterval, diffServTBMeterBurstSize,
diffServTBMeterSucceedNext, diffServTBMeterFailNext,
diffServTBMeterStatus
}
STATUS current
DESCRIPTION
"The Meter Group defines the objects used in describing
a meter."
::= { diffServMIBGroups 2 }
diffServMIBActionGroup OBJECT-GROUP
OBJECTS {
diffServActionDropPolicy,
diffServActionRandomDrops,
diffServActionTailDrops,
diffServActionMinThreshold,
diffServActionMaxThreshold, diffServActionDSCP,
diffServActionNext,
diffServActionConformingPackets,
diffServActionConformingOctets,
diffServActionStatus
}
STATUS current
DESCRIPTION
"The Action Group defines the objects used in
describing an action."
::= { diffServMIBGroups 3 }
diffServMIBHCCounterGroup OBJECT-GROUP
OBJECTS {
diffServActionHCConformingOctets
Baker, Chan, SmithExpiration: September 2000 [Page 60]
Draft Differentiated Services MIB March 2000
}
STATUS current
DESCRIPTION
"At 20,000,000 bits per second or greater, the number
of octets a given class may count can overflow a 32 bit
counter in under an hour. Therefore, by convention
established in the IFMIB, the 64 bit counter must be
implemented as well."
::= { diffServMIBGroups 4 }
diffServMIBVHCCounterGroup OBJECT-GROUP
OBJECTS {
diffServActionHCConformingPackets,
diffServActionHCRandomDrops,
diffServActionHCTailDrops
}
STATUS current
DESCRIPTION
"At 650,000,000 bits per second or greater, the number
of packets a given class may count can overflow a 32
bit counter in under an hour. Therefore, by convention
established in the IFMIB, the 64 bit counter must be
implemented as well."
::= { diffServMIBGroups 5 }
diffServMIBQueueGroup OBJECT-GROUP
OBJECTS {
diffServQueueMinimumRate,
diffServQueueMaximumRate,
diffServQueuePriority, diffServQueueStatus,
diffServQueueNextTCB
}
STATUS current
DESCRIPTION
"The Queue Group contains the objects that describe an
interface's queues."
::= { diffServMIBGroups 6 }
diffServMIBStaticGroup OBJECT-GROUP
OBJECTS {
diffServClassifierUnique, diffServTBMeterUnique,
diffServQueueUnique, diffServActionUnique
}
STATUS current
DESCRIPTION
"The Static Group contains scalar objects used in
creating unique enumerations for classifiers, meters,
Baker, Chan, SmithExpiration: September 2000 [Page 61]
Draft Differentiated Services MIB March 2000
and queues."
::= { diffServMIBGroups 7 }
END
Baker, Chan, SmithExpiration: September 2000 [Page 62]
Draft Differentiated Services MIB March 2000
5. Acknowledgments
This MIB has been developed with active involvement from a
number of sources, but most notably Yoram Bernet, Steve Blake,
Brian Carpenter, Kwok Chan, Dave Durham, Jeremy Greene, Roch
Guerin, Scott Hahn, Keith McCloghrie, Kathleen Nichols, Ping
Pan, Andrew Smith, and Bert Wijnen.
6. Security Considerations
It is clear that this MIB is potentially useful for
configuration, and anything that can be configured can be
misconfigured, with potentially disastrous effect.
At this writing, no security holes have been identified beyond
those that SNMP Security is itself intended to address. These
relate to primarily controlled access to sensitive information
and the ability to configure a device - or which might result
from operator error, which is beyond the scope of any security
architecture.
There are a number of management objects defined in this MIB
that have a MAX-ACCESS clause of read-write and/or read-
create. Such objects may be considered sensitive or vulnerable
in some network environments. The support for SET operations
in a non-secure environment without proper protection can have
a negative effect on network operations. The use of SNMP
Version 3 is recommended over prior versions, for
configuration control, as its security model is improved.
There are a number of managed objects in this MIB that may
contain information that may be sensitive from a business
perspective, in that they may represent a customer's service
contract or the filters that the service provider chooses to
apply to a customer's ingress or egress traffic. There are no
objects which are sensitive in their own right, such as
passwords or monetary amounts.
It may be important to control even GET access to these
objects and possibly to even encrypt the values of these
object when sending them over the network via SNMP. Not all
versions of SNMP provide features for such a secure
environment.
Baker, Chan, SmithExpiration: September 2000 [Page 63]
Draft Differentiated Services MIB March 2000
7. References
[1] Harrington, D., Presuhn, R., and B. Wijnen, "An
Architecture for Describing SNMP Management Frameworks",
RFC 2571, Cabletron Systems, Inc., BMC Software, Inc.,
IBM T. J. Watson Research, April 1999
[2] Rose, M., and K. McCloghrie, "Structure and
Identification of Management Information for TCP/IP-based
Internets", RFC 1155, STD 16, Performance Systems
International, Hughes LAN Systems, May 1990
[3] Rose, M., and K. McCloghrie, "Concise MIB Definitions",
RFC 1212, STD 16, Performance Systems International,
Hughes LAN Systems, March 1991
[4] M. Rose, "A Convention for Defining Traps for use with
the SNMP", RFC 1215, Performance Systems International,
March 1991
[5] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
Rose, M., and S. Waldbusser, "Structure of Management
Information Version 2 (SMIv2)", RFC 2578, STD 58, Cisco
Systems, SNMPinfo, TU Braunschweig, SNMP Research, First
Virtual Holdings, International Network Services, April
1999
[6] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
Rose, M., and S. Waldbusser, "Textual Conventions for
SMIv2", RFC 2579, STD 58, Cisco Systems, SNMPinfo, TU
Braunschweig, SNMP Research, First Virtual Holdings,
International Network Services, April 1999
[7] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
Rose, M., and S. Waldbusser, "Conformance Statements for
SMIv2", RFC 2580, STD 58, Cisco Systems, SNMPinfo, TU
Braunschweig, SNMP Research, First Virtual Holdings,
International Network Services, April 1999
[8] Case, J., Fedor, M., Schoffstall, M., and J. Davin,
"Simple Network Management Protocol", RFC 1157, STD 15,
SNMP Research, Performance Systems International,
Performance Systems International, MIT Laboratory for
Computer Science, May 1990.
[9] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser,
"Introduction to Community-based SNMPv2", RFC 1901, SNMP
Baker, Chan, SmithExpiration: September 2000 [Page 64]
Draft Differentiated Services MIB March 2000
Research, Inc., Cisco Systems, Inc., Dover Beach
Consulting, Inc., International Network Services, January
1996.
[10] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser,
"Transport Mappings for Version 2 of the Simple Network
Management Protocol (SNMPv2)", RFC 1906, SNMP Research,
Inc., Cisco Systems, Inc., Dover Beach Consulting, Inc.,
International Network Services, January 1996.
[11] Case, J., Harrington D., Presuhn R., and B. Wijnen,
"Message Processing and Dispatching for the Simple
Network Management Protocol (SNMP)", RFC 2572, SNMP
Research, Inc., Cabletron Systems, Inc., BMC Software,
Inc., IBM T. J. Watson Research, April 1999
[12] Blumenthal, U., and B. Wijnen, "User-based Security Model
(USM) for version 3 of the Simple Network Management
Protocol (SNMPv3)", RFC 2574, IBM T. J. Watson Research,
April 1999
[13] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser,
"Protocol Operations for Version 2 of the Simple Network
Management Protocol (SNMPv2)", RFC 1905, SNMP Research,
Inc., Cisco Systems, Inc., Dover Beach Consulting, Inc.,
International Network Services, January 1996.
[14] Levi, D., Meyer, P., and B. Stewart, "SNMPv3
Applications", RFC 2573, SNMP Research, Inc., Secure
Computing Corporation, Cisco Systems, April 1999
[15] Wijnen, B., Presuhn, R., and K. McCloghrie, "View-based
Access Control Model (VACM) for the Simple Network
Management Protocol (SNMP)", RFC 2575, IBM T. J. Watson
Research, BMC Software, Inc., Cisco Systems, Inc., April
1999
[16] Case, J., Mundy, R., Partain, D., and B. Stewart,
"Introduction to Version 3 of the Internet-standard
Network Management Framework", RFC 2570, SNMP Research,
Inc., TIS Labs at Network Associates, Inc., Ericsson,
Cisco Systems, April 1999
[DSCP]
K. Nichols, S. Blake, F. Baker, D. Black, "Definition of
the Differentiated Services Field (DS Field) in the IPv4
and IPv6 Headers." RFC 2474, December 1998.
Baker, Chan, SmithExpiration: September 2000 [Page 65]
Draft Differentiated Services MIB March 2000
[Architecture]
S. Blake, D. Black, M. Carlson, E. Davies, Z. Wang, W.
Weiss, "An Architecture for Differentiated Service." RFC
2475, December 1998.
[AF] J. Heinanen, F. Baker, W. Weiss, J. Wroclawski, "Assured
Forwarding PHB Group." RFC 2597, June 1999.
[EF] V. Jacobson, K. Nichols, K. Poduri. "An Expedited
Forwarding PHB." RFC 2598, June 1999.
[Model]
Bernet et al, "A Conceptual Model for Diffserv Routers",
March 2000, draft-ietf-diffserv-model-02.txt
[IFMIB]
K. McCloghrie, F. Kastenholz. "The Interfaces Group MIB
using SMIv2", Request for Comments 2233, November 1997.
[DSPIB]
M. Fine, K. McCloghrie, J. Seligson, K. Chan, S. Hahn, A.
Smith "Differentiated Services Policy Information Base",
March 2000, draft-ietf-diffserv-pib-00.txt
[INETADDRESS]
Daniele, M., Haberman, B., Routhier, S., Schoenwaelder,
J. "Textual Conventions for Internet Network
Addresses.", February 17, 2000, draft-ops-endpoint-mib-
07.txt
[ActQMgmt]
V. Firoiu, M. Borden "A Study of Active Queue Management
for Congestion Control", March 2000, In IEEE Infocom
2000, http://www.ieee-infocom.org/2000/papers/405.pdf
8. Authors' Addresses:
Fred Baker
519 Lado Drive
Santa Barbara, California 93111
fred@cisco.com
Kwok Ho Chan
Nortel Networks
600 Technology Park Drive
Billerica, MA 01821
khchan@nortelnetworks.com
Baker, Chan, SmithExpiration: September 2000 [Page 66]
Draft Differentiated Services MIB March 2000
Andrew Smith
Extreme Networks
3585 Monroe Street
Santa Clara, CA 95051
USA
andrew@extremenetworks.com
Baker, Chan, SmithExpiration: September 2000 [Page 67]