draft-ietf-diffserv-mib-02.txt   draft-ietf-diffserv-mib-03.txt 
Internet Engineering Task Force F. Baker Internet Engineering Task Force F. Baker
Diffserv Working Group Cisco Systems Diffserv Working Group Cisco Systems
INTERNET-DRAFT K. Chan INTERNET-DRAFT K. Chan
Expires:September 2000 Nortel Networks Expires November 2000 Nortel Networks
A. Smith draft-ietf-diffserv-mib-03.txt A. Smith
Extreme Networks Extreme Networks
Management Information Base for the Management Information Base for the
Differentiated Services Architecture Differentiated Services Architecture
draft-ietf-diffserv-mib-02.txt Status of this Memo
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 This document is an Internet-Draft and is in full conformance with all
reached, especially in the dropping and queueing mechanism provisions of Section 10 of RFC 2026. Internet-Drafts are working
attributes. Further discussion on these topics are required documents of the Internet Engineering Task Force (IETF), its areas, and
for finalizing this memo. its working groups. Note that other groups may also distribute working
documents as Internet-Drafts.
1. Status of this Memo 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."
This document is an Internet-Draft and is in full conformance The list of current Internet-Drafts can be accessed at
with all provisions of Section 10 of RFC 2026. Internet-Drafts http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft
are working documents of the Internet Engineering Task Force Shadow Directories can be accessed at http://www.ietf.org/shadow.html.
(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 This document is a product of the IETF's Differentiated Services Working
months and may be updated, replaced, or obsoleted by other Group. Comments should be addressed to WG's mailing list at
documents at any time. It is inappropriate to use Internet diffserv@ietf.org. The charter for Differentiated Services may be found
Drafts as reference material or to cite them other than as at http://www.ietf.org/html.charters/diffserv-charter.html
"work in progress."
The list of current Internet-Drafts can be accessed at Copyright (C) The Internet Society (2000). All Rights Reserved.
http://www.ietf.org/ietf/1id-abstracts.txt Distribution of this memo is unlimited.
The list of Internet-Draft Shadow Directories can be accessed Abstract
at http://www.ietf.org/shadow.html.
This particular draft is being developed in the Differentiated This memo describes a SMIv2 MIB for a device implementing the
Services Working Group. Discussion of it therefore belongs on Differentiated Services Architecture [DSARCH], described in detail by
that list. The charter for Differentiated Services may be the Differentiated Services Router Conceptual Model [MODEL].
found at http://www.ietf.org/html.charters/diffserv-
charter.html
2. The SNMP Management Framework 1. The SNMP Management Framework
The SNMP Management Framework presently consists of five major The SNMP Management Framework presently consists of five major
components: components:
o An overall architecture, described in RFC 2571 [1]. o An overall architecture, described in RFC 2571 [1].
o Mechanisms for describing and naming objects and o Mechanisms for describing and naming objects and events for the
events for the purpose of management. The first purpose of management. The first version of this Structure of
version of this Structure of Management Information Management Information (SMI) is called SMIv1 and described in
(SMI) is called SMIv1 and described in RFC 1155 [2], RFC 1155 [2], RFC 1212 [3] and RFC 1215 [4]. The second version,
RFC 1212 [3] and RFC 1215 [4]. The second version, called SMIv2, is described in RFC 2578 [5], RFC 2579 [6] and RFC
called SMIv2, is described in RFC 2578 [5], RFC 2579 2580 [7].
[6] and RFC 2580 [7].
o Message protocols for transferring management o Message protocols for transferring management information. The
information. The first version of the SNMP message first version of the SNMP message protocol is called SNMPv1 and
protocol is called SNMPv1 and described in RFC 1157 described in RFC 1157 [8]. A second version of the SNMP message
[8]. A second version of the SNMP message protocol, protocol, which is not an Internet standards track protocol, is
which is not an Internet standards track protocol, is called SNMPv2c and described in RFC 1901 [9] and RFC 1906 [10].
called SNMPv2c and described in RFC 1901 [9] and RFC The third version of the message protocol is called SNMPv3 and
1906 [10]. The third version of the message protocol described in RFC 1906 [10], RFC 2572 [11] and RFC 2574 [12].
is called SNMPv3 and described in RFC 1906 [10], RFC
2572 [11] and RFC 2574 [12].
o Protocol operations for accessing management o Protocol operations for accessing management information. The
information. The first set of protocol operations and first set of protocol operations and associated PDU formats is
associated PDU formats is described in RFC 1157 [8]. A described in RFC 1157 [8]. A second set of protocol operations
second set of protocol operations and associated PDU and associated PDU formats is described in RFC 1905 [13].
formats is described in RFC 1905 [13].
o A set of fundamental applications described in RFC o A set of fundamental applications described in RFC 2573 [14] and
2573 [14] and the view-based access control mechanism the view-based access control mechanism described in RFC 2575
described in RFC 2575 [15]. [15].
A more detailed introduction to the current SNMP Management A more detailed introduction to the current SNMP Management Framework
Framework can be found in RFC 2570 [16]. can be found in RFC 2570 [16].
Managed objects are accessed via a virtual information store, Managed objects are accessed via a virtual information store, termed the
termed the Management Information Base or MIB. Objects in the Management Information Base or MIB. Objects in the MIB are defined using
MIB are defined using the mechanisms defined in the SMI. the mechanisms defined in the SMI.
This memo specifies a MIB module that is compliant to the This memo specifies a MIB module that is compliant to the SMIv2. A MIB
SMIv2. A MIB conforming to the SMIv1 can be produced through conforming to the SMIv1 can be produced through the appropriate
the appropriate translations. The resulting translated MIB translations. The resulting translated MIB must be semantically
must be semantically equivalent, except where objects or equivalent, except where objects or events are omitted because no
events are omitted because no translation is possible (use of translation is possible (use of Counter64). Some machine-readable
Counter64). Some machine-readable information in SMIv2 will be information in SMIv2 will be converted into textual descriptions in
converted into textual descriptions in SMIv1 during the SMIv1 during the translation process. However, this loss of machine
translation process. However, this loss of machine readable readable information is not considered to change the semantics of the
information is not considered to change the semantics of the
MIB. MIB.
3. Structure of this MIB 2. Structure of this MIB
This MIB is designed according to the Differentiated Services This MIB is designed according to the Differentiated Services
implementation conceptual model documented in [Model]. implementation conceptual model documented in [MODEL].
3.1. Overview 2.1. Overview
In principle, if one were to construct a network entirely out The conceptual model [MODEL] discusses the way we model the ingress and
of two-port routers (in appropriate places connected by LANs egress interfaces of an 'n'-port router. In this MIB, we model these
or similar media), then it would be necessary for each router identically, making the distinction between them an index variable.
to perform exactly four QoS control functions on traffic in Each interface then performs some or all of the following high-level
each direction: functions:
- Classify each message according to some set of rules o Classify each packet according to some set of rules
- In edge devices, determine whether the data stream the o Determine whether the data stream the packet is part of is within
message is part of is within or outside its rate or outside its rate
- Perform some set of resulting actions, minimally o Perform a set of resulting actions, possibly including counting the
including applying a drop policy appropriate to the traffic, application of an appropriate drop policy and marking of
classification and queue in question, and in edge devices the traffic with a Differentiated Services Code Point (DSCP) as
perhaps additionally marking the traffic with a defined in [DSFIELD].
Differentiated Services Code Point (DSCP) as defined in
[DSCP].
- Enqueue the traffic for output in the appropriate queue, o Enqueue the traffic for output in the appropriate queue, whose
which may shape the traffic or simply forward it with scheduler may shape the traffic or simply forward it with some
some minimum rate or maximum latency. minimum rate or maximum latency.
If we build the network out of N-port routers, we expect the The MIB therefore contains the following elements:
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 Classifier and Filter Tables
distinction between ingress and egress interfaces an index A general extensible framework and one example (an IP Six-Tuple
variable. Multi-Field Classification Table).
The MIB therefore contains the following elements: Meter Tables
- IP Six Tuple Multi-Field Classification Table A general extensible framework and one example (an exponential
- Classifier Table weighted moving average meter).
- Meter Table
- Action and Action Type Tables
- Queue Set, Queue, and Queue Measurement Tables
3.2. Classifier Table Action Tables
Absolute Drop, Mark and Count actions. The "multiplexer",
"replicator" and "null" actions described in [MODEL] are
accomplished implicitly by means of the RowPointer structures of
the other elements.
The classifier table indicates how traffic is sorted out. It Queue, Scheduler and Algorithmic Dropper Tables
identifies separable classes of traffic, by reference to an Queue, Scheduler and Algorithmic Dropper Tables.
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 2.2. Classifiers
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 The classifier and filter tables determine how traffic is sorted out.
applications from using the network at all, or to classify They identify separable classes of traffic, by reference to an
some individual traffic streams that are not diff-serv marked. appropriate filter, which may select anything from an individual micro-
Traffic that fails those tests might then be inspected for a flow to aggregates identified by DSCP.
DSCP. "Then" implies sequence, and the sequence must be
somehow specified.
An important form of classifier is "everything else". The The classification is used to send these separate streams to appropriate
final stage of the classifier should be configured to be meters or action elements. For example, to indicate a multi-stage meter,
complete, as the result of an incomplete classifier is not sub-classes of traffic may be sent to different meter stages: e.g. in an
necessarily deterministic. implementation of the Assured Forwarding (AF) PHB [AF-PHB], 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 out-of-profile
action.
The actual classifier definition is referenced via a 2.2.1. Classifier Table
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, The structure of the classifier table, as described in [MODEL], is a
they may be derived from some higher level policies, but such sequence of unambiguous tests. Within each stage in the sequence, it
discussion is out- side the scope of this document. must not be important in which order the tests are made. This is to
facilitate optimized implementations such as index trees. Order is
present only to resolve ambiguity: for that reason the stage in the
sequence is referred to here and in [MODEL] as the "precedence" of the
classifier stage: stages with higher values of precedence are compared
first; the order of tests for entries of the same precedence is
unimportant.
3.2.1. IP Six Tuple Classifier Table An important form of classifier is "everything else": the final stage of
the classifier i.e. the one with the lowest precedence, must be
"complete" since the result of an incomplete classifier is not
necessarily deterministic - see [MODEL] section 4.1.2.
This MIB currently specifies the IP Six Tuple Classifier, used The definition of the actual filter to be used by the classifier is
for IP traffic classification. Entry of this Classifier Table referenced via a RowPointer: this enables the use of any sort of filter
is referenced from the entries of the diffServClassifierTable table that one might wish to design, standard or proprietary. The filter
via a RowPointer, namely diffServClassifierPattern attribute table may be, but does not need to be, defined in this MIB module.
of diffServClassifierEntry object.
The Behavior Aggregate (BA) Classifier is a simple form of the The classifiers specified here are at the interface level i.e. they are
IP Six Tuple Classifier. It is represented by having the indexed by ifIndex: they may be derived from some more general policies
diffServSixTupleClfrDscp attribute set to the desired DSCP, e.g. something based on interface roles, but such discussion is outside
and all other classification attributes set to match-all, the the scope of this document. See e.g. [POLTERM] section 4 for a
default setting. discussion of Roles.
Each entry in the IP Six Tuple Classifier Table defines a 2.2.2. IP Six-Tuple Classifier Table
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 This MIB includes a definition for an IP Six-Tuple Classifier, used for
IP traffic classification. Entries in this filter table are referenced
A meter, according to the conceptual model, measures the rate from the RowPointer diffServClassifierPattern attributes of classifier
at which a stream of traffic passes it, compares it to some table entries.
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 A Behavior Aggregate (BA) Classifier, acting only on DSCPs, is a simple
concept applied in several rate-control architectures, form of the IP Six-Tuple Classifier. It is represented by having the
including ATM, Frame Relay, Integrated Services, and diffServSixTupleClfrDscp attribute set to the desired DSCP and all other
Differentiated Services, is variously described as a "leaky classification attributes set to match-all, their default settings. The
bucket" or a "token bucket". alternative approach of providing a specific definition in this MIB for
a BA Classifier was discussed and rejected.
A leaky bucket algorithm is primarily used for traffic Each entry in the IP Six-Tuple Classifier Table defines a single filter.
shaping: traffic theoretically departs from the switch at a The textual convention of InetAddress [INETADDR] is used for both IPv4
flat rate of one bit every so many time units, and in fact and IPv6 addressing. The use of IP Six-Tuple Classifiers is discussed
departs in packets at a rate approximating that. It is also in [DSARCH] and abstract examples of how they might be configured are
possible to build multi-rate leaky buckets, in which traffic provided in [MODEL].
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 2.3. Meters
leaky bucket, for verification purposes. It is, by definition,
a relationship
interval = burst/rate, or A meter, according to [MODEL] section 5, measures the rate at which
rate = burst/interval packets making up a stream of traffic pass it, compares this rate to
some set of thresholds and produces some number (two or more) of
potential results. A given packet is said to "conform" to the meter if,
at the time that the packet is being looked at, the stream appears to be
within the meter's profile. MIB syntax makes it easiest to define this
as a sequence of one or more cascaded pass/fail tests, modeled here as
if-then-else constructs.
for some defined burst size, in bits, rate, in bits per It is important to understand that this way of modelling does not imply
second, and time interval. Multi-rate token buckets (token anything about the implementation being "sequential": multi-rate/multi-
buckets with both a peak and a mean rate, and sometimes more profile meters e.g. those designed to support [SRTCM] or [TRTCM], can
rates) are commonly used. In this case, the burst size for the still be modelled this way even if they, of necessity, share information
baseline traffic is conventionally referred to as the between the stages: the stages are introduced merely as a notational
"committed burst", and the time interval is as specified by convenience in order to simplify the MIB structure.
interval = committed burst/mean rate 2.3.1. Meter Table
but additional burst sizes (each an increment over its The generic meter table is used as a base for all more specific forms of
predecessor) are defined, which are conventionally referred to meter. The definition of the specific parameters of the meter to be
as "excess" burst sizes. The peak rate therefore equals the used is referenced via a RowPointer: this enables the use of any sort of
sum of the burst sizes per interval. specific meter table that one might wish to design, standard or
proprietary. The specific meter table may be, but does not need to be,
defined in this MIB module.
A data stream is said to "conform" to a simple token bucket if 2.3.2. Token-Bucket Meter Table
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 This is included as an example of a common type of meter. Entries in
introduces some uncertainty in this. For this reason, the this table are referenced from the RowPointer diffServMeterSpecific
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 attributes of meter table entries. The parameters are represented by a
table, may be presented to the same meter. Imagine, for rate diffServTBMeterRate and a burst size diffServTBMeterBurstSize.
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
only that meter.
Clearly, it is necessary to identify what is to be done with 2.4. Actions
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 Actions include "no action", "mark the traffic with a DSCP", "drop the
traffic" or "count it". Other tasks such as "shape the traffic" or "drop
based on some algorithm" are handled elsewhere as queueing mechanisms,
rather than actions, consistent with [MODEL]. The "multiplexer",
"replicator" and "null" actions described in [MODEL] are accomplished
implicitly by means of the RowPointer structures of the other elements.
Considerable discussion has taken place regarding the possible This MIB uses the Action Table diffServActionTable to organize one
actions. Suggested actions include "no action", "mark the Action's relationship with the element(s) before and after it. It allows
traffic", "drop the traffic, based on some algorithm", "shape Actions to be cascaded to enable multiple Actions be applied to a single
the traffic", "count it". This MIB attempts to make the traffic stream by using each entry's diffServActionNext attribute. The
specification of the action flexible by using the Action Table last entry's diffServActionNext attribute may point to the next TCB
to organize one Action's relationship with the Meter element element, normally a Queueing 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 The parameters needed for each Action element will depend on the type of
future revisions of this MIB, or in other MIBs. And possible Action to be taken. Hence there are specific Action Tables for all the
usage of propietary Action without impact to the Actions different Action types. This flexibility allows additional Actions be
provided here. specified in future revisions of this MIB, or in other MIBs and also
allows for the use of proprietary Actions without impact on those
defined here.
The Mark Action is relatively straight forward. 2.4.1. DSCP Mark Action Table
For Count Action, when it is specified, it will always be This Action is applied to traffic in order to mark it with a Diffserv
applied first, before any other type of Actions. For example, Codepoint (DSCP) value, specified in the diffServDscpMarkActTable.
when both Count and a Drop Action is specified, the Count Other marking actions might be specified elsewhere - these are outside
Action will always count the total counts of this traffic the scope of this MIB.
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, 2.4.2. Count Action Table
with detail as follows:
The Tail Drop Action requires the specification of a maximum Count Actions are used to count the traffic passing along a particular
queue depth, at which point any traffic exceeding the maximum path through the model. If specified, they are likely to be placed
queue depth gets discarded. first, before other types of Action. For example, when both a Count and
an Absolute Dropper Action are specified, the Count Action needs to
count the traffic stream before any traffic gets dropped. Note that
there are counters contained directly in Algorithmic Dropper elements to
indicate the amount of traffic dropped by those elements.
*Editor's Note Start* Counters are arranged in a single table but with separate conformance
There is still debates on what statements for low-speed and high-speed interfaces, consistent with
attributes are needed and how they may be related to queueing. [IFMIB].
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 2.4.3. Absolute Drop Action
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 This action just silently discards all traffic presented to it, without
Random Drop with drop probability restricted to zero and one. counting it. This action has no additional parameters and so is
Hence Deterministic Drop Action can be described as follows: represented only as a diffServActionType of dropAlways without any
1. Pmin = 0 and Pmax = 1. 2. Qmin = Qmax = Qclip indicating specific parameters (diffServActionSpecific value will be null).
the average queue length that drop occurs.
For the drop actions, each drop process specification is 2.5. Queueing Elements
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 include Algorithmic Droppers, Queues and Schedulers.
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 2.5.1. Algorithmic Dropper Table
attribute. The last Action's ActionNext attribute points to
the next TCB, normally a Queue Entry for the Queue element.
3.5. Queueing Element Algorithmic Droppers have a close relationship with queueing: they are
represented in this MIB by entries in an Algorithmic Dropper Table.
Entries contain a "next" attribute which indicates to which queue they
sink their traffic. They may also contain a pointer to specific detail
of the drop algorithm. This MIB only defines the detail for one drop
algorithm, Tail Drop; other algorithms are outside the scope of this MIB
but the general framework is intended to allow for their inclusion in
other modules.
The Queueing element consists of Queue Table and Queue Set One generally-applicable parameter of a dropper is the specification of
Table. With Queue Table containing relatively simple FIFO a queue-depth threshold at which some drop action is to start. This is
queues. Using the Queue Set Table to allow flexibility in represented in this MIB, as a base attribute of the Algorithmic Dropper
constructing both simple and complex queueing hierarchies. entry, by pointing to the queue for which depth is to be compared and
the threshold, in bytes, to compare against.
The queue entries in the Queue Table have simple attributes, <ed: is we need to represent a dropper as depending on multiple queues
it includes a reference to which queue set the queue belongs then this single-queue pointer and threshold is not adequate: should we
to, and a weight parameter. For Priority Queueing, the weight leave them here or not? they will be useful for many, but not all,
parameter indicates the priority of this queue with respect to dropper algorithms.>
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
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 o A Tail Dropper requires the specification of a maximum queue depth
common to all queues within the queue set. This includes the threshold: when the queue pointed at by diffServAlgDropQMeasure
dequeueing Method, or algorithm used amongst the queues in the reaches that depth threshold, diffServAlgDropQThresh, any new
queue set. Currently, priority queueing, Weighed Fair traffic arriving at the dropper is discarded.
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 o Random Droppers require more detailed specification of the
queue set instead of per queue. This allows characteristics of their drop functions. Representations of these
functions are outside the scope of this MIB although they should
use the available diffServAlgDropQMeasure and
diffServAlgDropQThresh parameters where possible.
A hierarchical tree of queue sets can be constructed using the <ed: should we keep this example (next 3 paragraphs) or not? It is not
parent/child queue set concept. The attributes QSetParentId supported by the current MIB.>
and QSetWeight is used for this purpose, with QSetParentId As an example of a random dropper, RED-like droppers often have the
indicating the parent's QSetId, and QSetWeight used as the function described as a plot of drop probability (P) against
child queue set's total weight amongst the queues in the averaged queue length (Q). (Qmin,Pmin) defines the start of the
parent queue set. There can be multiple children queue set characteristic plot. Normally Pmin=0, meaning with average queue
under one parent queue set, with each child queue set looks length below Qmin, there will be no drops. (Qmax,Pmax) defines a
like a queue from the parent queue set's perspective. Hence "knee" on the plot, after which point the drop probability become
queue sets can be recursively defined, inter mixing with more progressive (greater slope). (Qclip,1) defines the queue
queues at any level. length at which all packets will be dropped. Notice this is
different from Tail Drop because this uses an averaged queue
length. It is possible for Qclip = Qmax.
A mixed dequeue scheduling discipline can be built for an The calculation of the averaged queue length may also have an
interface. For example, with the following queues and queue important bearing on the behaviour of the dropper: parameters may
sets: include the sampling interval and the weight of each sample. The
performance may be very sensitive to the values of these parameters
and a wide range of possible values may be required due to a wide
range of link speeds. There is ongoing research on this topic, see
e.g. [ACTQMGMT].
Q Parameters Q Set Parameters Deterministic Droppers can be viewed as a special case of Random
Droppers with the drop probability restricted to 0 and 1. Hence
Deterministic Droppers might be described by a Random Dropper with
Pmin = 0, Pmax = 1, Qmin = Qmax = Qclip, the averaged queue length
at which dropping occurs.
QId QSetId QWeight Method MinRate ParentId QSetWeight Each dropper specification is associated with a queue. This allows
--- ------ ------- ------ ------- -------- ---------- multiple drop processes (of same or different types) be associated with
11 61 100 PQ 0 0 0 the same queue, as different PHB implementations may require. This also
12 61 99 PQ 0 0 0 allows for sequences of multiple droppers if necessary.
21 71 50,000 WFQ 10000 61 98 2.5.2. Queues and Schedulers
22 71 30,000 WFQ 10000 61 98
23 71 20,000 WFQ 10000 61 98
31 81 70,000 WRR 500 61 97 The Queue Table models simple FIFO queues, as described in [MODEL]
32 81 30,000 WRR 500 61 97 section 7.1.1. The Scheduler Table allows flexibility in constructing
both simple and somewhat more complex queueing hierarchies from those
queues. Of course, since TCBs can be cascaded multiple times on an
interface, even more complex hierarchies can be constructed that way
also.
Notice in this example there are three queue sets: Queue Set The entries in the Queue Table have attributes which include a
61 uses Priority Queueing, it have 2 child Queue Sets. Queue specification of the scheduler which services the queue. They are
Set 71 uses Weighed Fair Queueing with KBPS as RateUnit. pointed at by the "next" attributes of the upstream elements e.g.
diffServMeterSucceedNext. Note that multiple upstream elements may
direct their traffic to the same Queue Table entry. For example, the
Assured Forwarding PHB suggests that all traffic marked AF11, AF12 or
AF13 be placed in the same queue, after metering, without reordering.
This would be represented by having the diffServMeterSucceedNext of each
Queue Set 81 uses Weighed Round Robin with Packets/Sec as upstream meter point at the same entry in the Queue Table.
RateUnit.
Queues 11, 12, queue sets 71 and 81 belongs to Queue Set 61. The Scheduler Table represented in this MIB module contains entries,
Queues 21, 22, 23 belongs to Queue Set 71. Queues 31, 32 each of which represents the algorithm in use for servicing the one or
belongs to Queue Set 81. more queues that feed it. The [MODEL] section 7.1.2 describes a
scheduler with multiple inputs: this is represented in the MIB by
including the scheduling parameters associated with a scheduler input in
the Queue Table entry that feeds it and having that point at one
particular Scheduler Table entry. In this way, sets of Queues can be
grouped together as inputs to the same Scheduler. This table serves to
represent the example scheduler described in the [MODEL]: other more
complex representations might be created outside of this MIB.
All traffic in queue 11 will be serviced first, then all Each scheduler input, as represented by a Queue Table entry, is assigned
traffic in queue 12 will be serviced second. After traffic in a priority with respect to all the other inputs feeding the same
queues 11 and 12 are serviced, queues 21, 22, 23 are serviced scheduler. A higher-priority input will be serviced first over a lower-
among themselves in a fair queueing fashion, based on their priority input, assuming that all guarantees have already been met.
respective weight. After traffic in queues 21, 22, 23 are This priority parameter, used on its own with default values for the
serviced, queues 31, 32 are serviced among themselves in a other parameters, serves to allow representation of a Strict Priority
round robin fashion, based on their respective weight. Notice scheduler.
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 For Weighted Queueing algorithms e.g. WFQ, WRR, the "weight" of a given
minimum rate of 50% of 10000 KBPS, 5000 KBPS. Queue 31 have scheduler input is represented with a Minimum Service Rate leaky-bucket
minimum rate of 70% of 500 Pkt/Sec, 350 Pkt/Sec. profile which provides guaranteed bandwidth to that input, if required.
This is represented, as were token-bucket meters, by a rate
diffServQueueMinRateAbs and a burst size diffServQueueMinBurstSize. The
rate may, alternatively, be represented by a relative value, as a
fraction of the interface's current line rate, diffServQueueMinRateRel
to assist in cases where line rates are variable or where a higher-level
policy might be expressed in terms of fractions of network resources.
The two rate parameters are inter-related and changes in one may be
reflected in the other.
Other types of scheduling algorithms can be used in the parent An input may also be capable of acting as a non-work-conserving [MODEL]
or child queue sets, creating different queueing behaviors. traffic shaper: this is done by defining a Maximum Service Rate leaky-
bucket profile in order to limit the scheduler bandwidth available to
that input. This is represented, similarly to the minimum rate, by a
rate diffServQueueMaxRateAbs and a burst size diffServQueueMaxBurstSize.
The rate may, alternatively, be represented by a relative value, as a
fraction of the interface's current line rate, diffServQueueMaxRateRel.
The queue set can also operate as a traffic shaper by using 2.5.3. Example of Algorithmic Droppers, Queues and Schedulers
the maximum rate attribute.
Chains of Queues/Queue Sets can be built using the NextTCB As an example, the hypothetical queue/scheduler configuration shown in
attribute in Queue Set entry. [MODEL] section 8.1 is shown in Table 1.
Multiple meters may direct their traffic to the same queue. QId MinRate MaxRate Priority Scheduler
For example, the Assured Forwarding PHB suggests that all --- ---------------- ---------------- -------- ---------
traffic marked AF11, AF12, or AF13 be placed in the same queue 1 100kbps/20kbyte none/none 20 Scheduler.1
without reordering. 2 none/none 100kbps/100kbyte 40 Scheduler.1
3 200kbps/20kbyte none/none 20 Scheduler.1
4 none/none none/none 10 Scheduler.1
3.6. The use of RowPointer SchedId Type
------- ------------------
1 weightedRoundRobin
RowPointer is a textual convention used to identify a Table 1: Example Queue and Scheduler Parameters
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 Queues 1 and 3 are serviced for long enough to give them their promised
idea is to allow other MIBs, including proprietary ones, to bandwidths and burst sizes, if they need them. Queue 2 is then serviced
identify new and arcane classifiers - MAC headers, IP4 and IP6 up to its maximum limit profile. Only then does Queue 4 get an
headers, BGP Communities, and all sorts of things. opportunity to send its traffic. As an example of the use of the MIB
structures, Figure 1 shows how the example would be represented.
When used for succession, it answers the question "what 2.5.4. Example of extending this MIB
happens next?". Rather than presume that the next table must
be as specified in the conceptual model and providing its <ed: is it worth having this example here?>
index, the RowPointer takes you to the MIB row representing
that thing. In the Meter Table, for example, the "FailNext" One way to extend this MIB structure to accomodate a more complex
RowPointer might take you to another meter, while the dropping algorithm might be to define a specific dropper table in
"SucceedNext" RowPointer would take you to an action. another MIB module, pointed at by diffServAlgDropSpecific, containing
its own parameters, as shown in figure 2. This algorithm might depend
for its operation e.g. on feedback of a queue's depth but pre-processed
by some type of smoothing function with its own parameters. The extended
table could still use some of the fields of the standard Algorithmic
Dropper Table, if relevant, although any divergent uses would have to be
well-documented in the extended MIB.
2.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 diffServClassifierTable, the idea
is to allow other MIBs, including proprietary ones, to identify new and
arcane classifiers - MAC headers, IP4 and IP6 headers, BGP Communities
and all sorts of other 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
+-----------+
----------------------->| Next -----+
| Min=Profl4| |
| Max=none | |
| Pri=20 | |
| Type=fifo | |
+-----------+ |
Queue.ifIndex.1 |
|
+-----------+ +-----------+ |
--->| Next -----+--->| Next ------+
| Thresh=1k | | | Min=none | |
| Measure -----+ | Max=Profl5| |
| Type=Tail | | Pri=40 | |
| Spec=none | | Type=fifo | | +----------+
+-----------+ +-----------+ +--->| Next -----> 0.0
Dropper.1 Queue.ifIndex.2 | | Algrm=wrr| or next TCB
| +----------+
+-----------+ +-----------+ | Scheduler.ifIndex.1
--->| Next -----+--->| Next -----+
| Thresh=2k | | | Min=Profl3| |
| Measure -----+ | Max=none | |
| Type=Tail | | Pri=20 | |
| Spec=none | | Type=fifo | |
+-----------+ +-----------+ |
Dropper.2 Queue.ifIndex.3 |
|
+-----------+ +-----------+ |
--->| Next ------+--->| Next -----+
| Thresh=4k | | | Min=none |
| Measure -----+ | Max=none |
| Type=Tail | | Pri=10 |
| Spec=none | | Type=fifo |
+-----------+ +-----------+
Dropper.3 Queue.ifIndex.4
Figure 1: Example of the use of Queueing elements
+-----------+ +-----------+
--->| Next ------+--->| Next ---------> to Scheduler
| Thresh=X | | | Min=none |
| Measure -----+ | Max=none |
| Type=Ext | | Pri=10 |
| Spec -----+ | Type=fifo |
+-----------+ | +-----------+
Dropper.3 | Queue.ifIndex.4
|
| +-------------+
+--->|Smooth1=10 |
|Smooth2=2000 |
| <etc.> |
+-------------+
DropperExt.3
Figure 2: Example of extending the MIB for more complex droppers
conceptual model [MODEL] and providing its index, the RowPointer takes
you to the MIB row representing that thing. In the diffServMeterTable,
for example, the diffServMeterFailNext RowPointer might take you to
another meter, while the diffServMeterSucceedNext RowPointer would take
you to an action.
The RowPointer construct is used to build the TCBs described in [MODEL]:
this MIB does not model TCBs directly - it operates at a lower level of
abstraction using only individual elements, connected in succession by
RowPointers. Therefore, the concept of TCBs enclosed in other more
functional TCBs is not applicable to this MIB, although such a concept
may be employed by management tools that use this MIB.
3. Editorial information
<this section will be removed before publication>
3.1. Open Issues resolved in this draft
(0) Terminology is more in line with [MODEL], [POLTERM] and [DSTERM].
Discarder -> "Algorithmic Dropper", "Monitor" -> "Counter"
"Classifier element" -> "Filter"
(1) Cascaded token-buckets is not equivalent to multi-rate token-
bucket: do we need to fix this by allowing a multi-rate TB in the
MIB? Or, by defining cascaded buckets to mean "multi-rate". (assume
the latter - see text in 2.3)
(2) Markers: model only describes DSCP-markers: do we need to be able
to extend this to other sorts (e.g. 802.1p), even if we do not
represent them in this MIB today? (yes). No MIB changes, just
words.
(3) Counters: should specific blocks include their own or is a "counter
action", as described in the Model, sufficient to count all paths
through a device? (as appropriate). Per-queue counters are
derivable from "action" ones. Per-classifier counters: may feed
through from clasifiers to distinct counter actions.
(4) Queue Sets: are these generally applicable? (no). The example in
section 2.5.1 is hard to follow: we should describe this example in
[MODEL] and then show how it maps to MIB in the MIB draft. - DONE
(5) Do we need scheduling units of "packets"? (NO) Should we use "kbps"
or just "bps" for rates? DONE - all rates are in kbps.
(6) Are "absolute" rates sufficient or should we include "relative to
line speed" ones as well? (yes) - DONE - explained that these are
interrelated.
(7) Scheduler weights vs. rates vs. priorities: this is confusing -
suggest we stick to rates and priorities (see Model draft 7.1.2) -
DONE.
(8) Queue Measure table:
o This allows for RIO - multiple averaging functions for the same
queue: is this needed? OUT OF SCOPE.
o mixes config with status objects - split these? N/A.
o do we need floating-point representation for "weight"? N/A.
o do we need MIB visibility for average queue depth? N/A.
o do we need MIB-configurable averaging functions (sample
weight/interval)? (maybe just "sample weight") - NO: averaging
functions will be left out although framework allows for their
inclusion separately.
(9) Counter compliance: paste text from IF-MIB re line-speeds. Do you
still have to do the low-speed counters for fast interfaces? YES.
DONE.
(10) Meters: are these mandatory for compliance? NO
(11) Discussion material: move most of this to Model draft e.g. most of
3.1, 3.3, "Dropper/discarder" part of 3.4, nearly all of 3.5. Just
leave the "how does the MIB map from the Model" parts in the MIB
draft, no general discussion. DONE.
(12) Counters: merged in 32-bit and 64-bit counters - conformance
statements sort out which ones must be implemented. This is
consistent with [IFMIB]. DONE.
(13) Droppers: we used to have a common "dropper" table that represented
all of: dropAlways, randomDrop, tailDrop with just some parameters
valid for the simpler ones. A simpler representation is to define
specific dropper tables for each type (e.g. a single OID to point
at for dropAlways since it is always the last action in a chain)
but this would mean a larger number of (simpler) MIB objects.
CHANGES: dropAlways is still an Action but the others are moved to
a diffServAlgDropTable. This table can handle tail/head drop. Other
algorithms, specifically RED, are out of scope for now but can be
added using the framework defined here.
(14) Should TBMeterTable just AUGMENT the MeterTable, should it use same
indices or are separate structures linked by RowPointers
preferable? SAME INDICES - DONE.
(15) Do we need to model multiple queues feeding back into a single
dropper algorithm? (yes). If so, the current single-queue pointer
and threshold will not be adequate - should we leave them in? They
will be useful for many, but not all, dropper algorithms. (yes)
(17) We have concepts of "inbound" and "outbound" directions: but if we
have a series of multiple TCBs on a given interface for the same
direction (allowed by the model) then we do not have a way to
indicate "this is the 1st one". Moreover, it is a somewhat
convoluted process to then find the 2nd, 3rd etc. ones - you would
have to follow the RowPointers to get there: should we explicitly
have an index to enable/help these lookup operations? Note: this is
not the same issue as needing a "precedence" for each filter entry
of a classifier (yes) - added another index to classifiers to
represent what "level" they operate at for a given
interface/direction.
3.2. Still Open Issues
(16) How should the creation of counter actions be under the control of
manager or agent: should a diffServActionEntry and
diffServCountActEntry appear by magic (the device surely knows what
counters it can and cannot maintain on a given interface)? (assume
no) If not, should diffServCountActEntry appear magically when a
diffServAction element is created which points at the
diffServCountActTable (then would be no need for
diffServCountActStatus)? (assume no)
(18) Should manager be allowed to create Queue elements or should agent
be in control of this? (the former)
(19) Should manager be allowed to create Scheduler elements or should
agent be in control of this? (the former)
(20) Related to (17) above, do we also need a "level" index for elements
other than classifiers? (no)
(21) Do we need diffServAlgDropType of both "headDrop" and "tailDrop" or
should we just represent the tail dropper by placing a dropper
after the queue instead of before the queue, as linked by the
diffServQNext and diffServAlgDropNext RowPointers? (the former).
(22) Do we need to support RED algorithms for algorithm parameter
configuration and monitoring? If so, what variables are needed?
4. MIB Definition 4. MIB Definition
DIFF-SERV-MIB DEFINITIONS ::= BEGIN DIFF-SERV-MIB DEFINITIONS ::= BEGIN
IMPORTS IMPORTS
Unsigned32, Counter32, Counter64, OBJECT-TYPE, Unsigned32, Counter32, Counter64, OBJECT-TYPE,
MODULE-IDENTITY, zeroDotZero, mib-2 FROM SNMPv2-SMI MODULE-IDENTITY, OBJECT-IDENTITY, zeroDotZero, mib-2
FROM SNMPv2-SMI
TEXTUAL-CONVENTION, RowStatus, RowPointer, TestAndIncr TEXTUAL-CONVENTION, RowStatus, RowPointer, TestAndIncr
FROM SNMPv2-TC FROM SNMPv2-TC
MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF MODULE-COMPLIANCE, OBJECT-GROUP
ifIndex FROM IF-MIB FROM SNMPv2-CONF
DisplayString FROM RFC1213-MIB ifIndex
InetAddressType, InetAddress FROM INET-ADDRESS-MIB; FROM IF-MIB
InetAddressType, InetAddress
FROM INET-ADDRESS-MIB
BurstSize
FROM INTEGRATED-SERVICES-MIB;
diffServMib MODULE-IDENTITY diffServMib MODULE-IDENTITY
LAST-UPDATED "9907190100Z" -- Mon Jul 19 01:00:00 PDT 1999 LAST-UPDATED "200005110000Z"
ORGANIZATION "Cisco Systems" ORGANIZATION "IETF Diffserv WG"
CONTACT-INFO CONTACT-INFO
" Fred Baker " Brian Carpenter (co-chair of Diffserv WG)
Postal: 519 Lado Drive c/o iCAIR
Santa Barbara, California 93111 1890 Maple Ave, #150
Tel: +1 (408) 526-4257 Evanston, IL 60201, USA
FAX: +1 (805) 681-0115 Phone: +1 847 467 7811
E-mail: brian@icair.org
Kathie Nichols (co-chair of Diffserv WG)
Cisco Systems
170 W. Tasman Drive
San Jose, CA 95134-1706, USA
Phone: +1 408 525 4857
E-mail: kmn@cisco.com
Fred Baker (author)
Cisco Systems
519 Lado Drive
Santa Barbara, CA 93111, USA
E-mail: fred@cisco.com E-mail: fred@cisco.com
Kwok Ho Chan Kwok Ho Chan (author)
Postal: 600 Technology Park Drive Nortel Networks
Billerica, Massachusetts 01821, USA 600 Technology Park Drive
Tel: +1 (978) 288-8175 Billerica, MA 01821, USA
FAX: +1 (978) 288-4690
E-mail: khchan@nortelnetworks.com E-mail: khchan@nortelnetworks.com
Andrew Smith Andrew Smith (author)
Postal: 3585 Monroe St. Extreme Networks
Santa Clara, California 95051 3585 Monroe St.
Tel: +1 (408) 579 2821 Santa Clara, CA 95051, USA
FAX: +1 (408) 579 3000
E-mail: andrew@extremenetworks.com" E-mail: andrew@extremenetworks.com"
DESCRIPTION DESCRIPTION
"This MIB defines the objects necessary to manage a "This MIB defines the objects necessary to manage a device that
device that uses the Differentiated Services uses the Differentiated Services Architecture described in RFC
Architecture described in RFC 2475 and the Conceptual 2475 and the Conceptual Model for DiffServ Routers in draft-ietf-
Model for DiffServ Routers in draft-ietf-diffserv- diffserv-model-03.txt."
model-01.txt." REVISION "200005110000Z"
REVISION "9907190100Z" -- Mon Jul 19 01:00:00 PDT 1999
DESCRIPTION DESCRIPTION
"Initial version, published as RFC xxxx." "Initial version, published as RFC xxxx."
::= { mib-2 12345 } -- anybody who uses this unassigned ::= { mib-2 12345 } -- anybody who uses this unassigned
-- number deserves the wrath of IANA -- number deserves the wrath of IANA
diffServObjects OBJECT IDENTIFIER ::= { diffServMib 1 } diffServObjects OBJECT IDENTIFIER ::= { diffServMib 1 }
diffServTables OBJECT IDENTIFIER ::= { diffServMib 2 } diffServTables OBJECT IDENTIFIER ::= { diffServMib 2 }
diffServAugments OBJECT IDENTIFIER ::= { diffServMib 3 } diffServMIBConformance OBJECT IDENTIFIER ::= { diffServMib 3 }
diffServMIBConformance OBJECT IDENTIFIER ::= { diffServMib 4 }
-- -- These textual conventions have no effect on either the syntax
-- These textual conventions has no effect on either the syntax
-- nor the semantics of any managed object. Objects defined -- nor the semantics of any managed object. Objects defined
- These textual conventions <span class="insert">have</span> no effect on either the syntax
-- using this convention are always encoded by means of the -- using this convention are always encoded by means of the
-- rules that define their primitive type. -- rules that define their primitive type.
--
Dscp ::= TEXTUAL-CONVENTION Dscp ::= TEXTUAL-CONVENTION
DISPLAY-HINT "d" DISPLAY-HINT "d"
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The code point used for discriminating a traffic "The IP header Diffserv Code-Point that may be used for
stream." discriminating or marking a traffic stream. The value -1 is used
to indicate a wildcard i.e. any value."
SYNTAX INTEGER (-1 | 0..63) SYNTAX INTEGER (-1 | 0..63)
SixTupleClfrL4Port ::= TEXTUAL-CONVENTION SixTupleClfrL4Port ::= TEXTUAL-CONVENTION
DISPLAY-HINT "d" DISPLAY-HINT "d"
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"A value indicating a Layer-4 protocol port number." "A value indicating a Layer-4 protocol port number."
SYNTAX INTEGER (0..65535) SYNTAX INTEGER (0..65535)
IfDirection ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"Specifies a direction of data travel on an interface. 'inbound'
traffic is operated on during reception from the interface, while
'outbound' traffic is operated on prior to transmission on the
interface."
SYNTAX INTEGER {
inbound(1), -- ingress interface
outbound(2) -- egress interface
}
-- --
-- Classifiers -- Classifiers
-- --
-- The tools for IP Six Tuple Classification.
-- This object allows a configuring system to obtain a --
-- unique value for diffServSixTupleClfrId for purposes -- Classifier Table
-- of configuration. --
- -- The Classifier Table allows us to enumerate the relationship
diffServSixTupleClfrUnique OBJECT-TYPE -- between arbitrary classifiers and the subsequent downstream
-- Diffserv elements.
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 the entries of this table which identify entries
in filter tables of specific types, e.g. Multi-Field Classifiers
(MFCs) for IP are defined in the diffServSixTupleClfrTable. Other
classifier types may be defined elsewhere."
REFERENCE
"[MODEL] section 4.1"
::= { diffServTables 1 }
diffServClassifierEntry OBJECT-TYPE
SYNTAX DiffServClassifierEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry in the classifier table describes a single element of
the classifier."
INDEX { ifIndex, diffServClassifierIfDirection,
diffServClassifierLevel, diffServClassifierId }
::= { diffServClassifierTable 1 }
DiffServClassifierEntry ::= SEQUENCE {
diffServClassifierIfDirection IfDirection,
diffServClassifierLevel Unsigned32,
diffServClassifierId INTEGER,
diffServClassifierFilter RowPointer,
diffServClassifierNext RowPointer,
diffServClassifierPrecedence Unsigned32,
diffServClassifierStatus RowStatus
}
diffServClassifierIfDirection OBJECT-TYPE
SYNTAX IfDirection
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Specifies the direction for this classifier entry on the
interface."
::= { diffServClassifierEntry 1 }
diffServClassifierLevel OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Specifies the level of the TCB of which this classifier element
is a part. Lower numbers indicate an element that belongs to a
classifier that is part of a TCB that is applied to traffic
before those with higher numbers."
::= { diffServClassifierEntry 2 }
diffServClassifierId OBJECT-TYPE
SYNTAX INTEGER (0..2147483647)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A classifier ID that enumerates the classifier elements. The set
of such identifiers spans the whole agent - managers should
obtain new values for row creation in this table by using
diffServClassifierUnique."
::= { diffServClassifierEntry 3 }
diffServClassifierFilter 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 filter, 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 not
matched by another classifier - only one such entry may exist in
this table."
DEFVAL { zeroDotZero }
::= { diffServClassifierEntry 4 }
diffServClassifierNext OBJECT-TYPE
SYNTAX RowPointer
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"This selects the next datapath element to handle packets
matching the filter pattern. For example, this can point to an
entry in a meter or action table."
::= { diffServClassifierEntry 5 }
diffServClassifierPrecedence OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The relative precedence in which classifiers are applied: higher
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 filters: the classifier
with the highest precedence that matches is taken.
On a given interface, there must be a complete classifier in
place at all times. This means that there must be always be one
or more filters that match every possible pattern that could be
presented in an inclming packet."
DEFVAL { 0 }
::= { diffServClassifierEntry 6 }
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 7 }
diffServClassifierUnique OBJECT-TYPE
SYNTAX TestAndIncr SYNTAX TestAndIncr
MAX-ACCESS read-write MAX-ACCESS read-write
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The diffServSixTupleClfrUnique object yields a unique new "The diffServClassifierUnique object yields a unique new value
value for diffServSixTupleClfrId when read and subsequently for diffServClassifierId when read and subsequently set. This
set. This value must be tested for uniqueness." value must be tested for uniqueness and can be used by a
configuring system to obtain a unique value for
diffServClassifierId for purposes of row creation in the
diffServClassifierTable."
::= { diffServObjects 1 } ::= { diffServObjects 1 }
--
-- IP Six-Tuple Classification Table
--
-- Classification based on 6 different fields in the IP
-- header. This is intended to be IP-version-independent.
--
diffServSixTupleClfrTable OBJECT-TYPE diffServSixTupleClfrTable OBJECT-TYPE
SYNTAX SEQUENCE OF DiffServSixTupleClfrEntry SYNTAX SEQUENCE OF DiffServSixTupleClfrEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"A table of IP Six Tuple Classifier entries that a "A table of IP Six-Tuple Classifier filter entries that a system
system may use to identify traffic." may use to identify IP traffic."
::= { diffServTables 1 } REFERENCE
"[MODEL] section 4.2.2"
::= { diffServTables 2 }
diffServSixTupleClfrEntry OBJECT-TYPE diffServSixTupleClfrEntry OBJECT-TYPE
SYNTAX DiffServSixTupleClfrEntry SYNTAX DiffServSixTupleClfrEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An IP Six Tuple Classifier entry describes a single "An IP Six-Tuple Classifier entry describes a single filter."
classifier."
INDEX { diffServSixTupleClfrId } INDEX { diffServSixTupleClfrId }
::= { diffServSixTupleClfrTable 1 } ::= { diffServSixTupleClfrTable 1 }
DiffServSixTupleClfrEntry ::= SEQUENCE { DiffServSixTupleClfrEntry ::= SEQUENCE {
diffServSixTupleClfrId Unsigned32, diffServSixTupleClfrId INTEGER,
diffServSixTupleClfrAddrType InetAddressType, diffServSixTupleClfrDstAddrType InetAddressType,
diffServSixTupleClfrDstAddr InetAddress, diffServSixTupleClfrDstAddr InetAddress,
diffServSixTupleClfrDstAddrMask InetAddress, diffServSixTupleClfrDstAddrMask Unsigned32,
diffServSixTupleClfrSrcAddrType InetAddressType,
diffServSixTupleClfrSrcAddr InetAddress, diffServSixTupleClfrSrcAddr InetAddress,
diffServSixTupleClfrSrcAddrMask InetAddress, diffServSixTupleClfrSrcAddrMask Unsigned32,
diffServSixTupleClfrDscp Dscp, diffServSixTupleClfrDscp Dscp,
diffServSixTupleClfrProtocol INTEGER, diffServSixTupleClfrProtocol INTEGER,
diffServSixTupleClfrDstL4PortMin SixTupleClfrL4Port, diffServSixTupleClfrDstL4PortMin SixTupleClfrL4Port,
diffServSixTupleClfrDstL4PortMax SixTupleClfrL4Port, diffServSixTupleClfrDstL4PortMax SixTupleClfrL4Port,
diffServSixTupleClfrSrcL4PortMin SixTupleClfrL4Port, diffServSixTupleClfrSrcL4PortMin SixTupleClfrL4Port,
diffServSixTupleClfrSrcL4PortMax SixTupleClfrL4Port, diffServSixTupleClfrSrcL4PortMax SixTupleClfrL4Port,
diffServSixTupleClfrStatus RowStatus diffServSixTupleClfrStatus RowStatus
} }
diffServSixTupleClfrId OBJECT-TYPE diffServSixTupleClfrId OBJECT-TYPE
SYNTAX Unsigned32 (1..2147483647) SYNTAX INTEGER (0..2147483647)
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"A unique id for the classifier. This object is meant "A unique id for the filter. Filters may be shared by multiple
to be pointed to by a RowPointer from other tables, interfaces in the same system."
such as the diffServClassifierPattern."
::= { diffServSixTupleClfrEntry 1 } ::= { diffServSixTupleClfrEntry 1 }
diffServSixTupleClfrAddrType OBJECT-TYPE diffServSixTupleClfrDstAddrType OBJECT-TYPE
SYNTAX InetAddressType SYNTAX InetAddressType
MAX-ACCESS read-write MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The type of IP address used by this classifier entry." "The type of IP destination address used by this classifier
entry."
::= { diffServSixTupleClfrEntry 2 } ::= { diffServSixTupleClfrEntry 2 }
diffServSixTupleClfrDstAddr OBJECT-TYPE diffServSixTupleClfrDstAddr OBJECT-TYPE
SYNTAX InetAddress SYNTAX InetAddress
MAX-ACCESS read-write MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The IP address to match against the packet's "The IP address to match against the packet's destination IP
destination IP address." address."
::= { diffServSixTupleClfrEntry 3 } ::= { diffServSixTupleClfrEntry 3 }
diffServSixTupleClfrDstAddrMask OBJECT-TYPE diffServSixTupleClfrDstAddrMask OBJECT-TYPE
SYNTAX InetAddress SYNTAX Unsigned32
MAX-ACCESS read-write MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"A mask for the matching of the destination IP address. "The length of a mask for the matching of the destination IP
A zero bit in the mask means that the corresponding bit address. Masks are constructed by setting bits in sequence from
in the address always matches." the most-significant bit downwards for
diffServSixTupleClfrDstAddrMask bits length. All other bits in
the mask, up to the number needed to fill the length of the
address diffServSixTupleClfrDstAddr are cleared to zero. A zero
bit in the mask then means that the corresponding bit in the
address always matches."
DEFVAL {0} DEFVAL {0}
::= { diffServSixTupleClfrEntry 4 } ::= { diffServSixTupleClfrEntry 4 }
diffServSixTupleClfrSrcAddrType OBJECT-TYPE
SYNTAX InetAddressType
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The type of IP source address used by this classifier entry."
::= { diffServSixTupleClfrEntry 5 }
diffServSixTupleClfrSrcAddr OBJECT-TYPE diffServSixTupleClfrSrcAddr OBJECT-TYPE
SYNTAX InetAddress SYNTAX InetAddress
MAX-ACCESS read-write MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The IP address to match against the source IP address "The IP address to match against the source IP address of each
of each packet." packet."
::= { diffServSixTupleClfrEntry 5 } ::= { diffServSixTupleClfrEntry 6 }
diffServSixTupleClfrSrcAddrMask OBJECT-TYPE diffServSixTupleClfrSrcAddrMask OBJECT-TYPE
SYNTAX InetAddress SYNTAX Unsigned32
MAX-ACCESS read-write MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"A mask for the matching of the source IP address. A "The length of a mask for the matching of the source IP address.
zero bit in the mask means that the corresponding bit Masks are constructed by setting bits in sequence from the most-
in the address always matches." significant bit downwards for diffServSixTupleClfrSrcAddrMask
bits length. All other bits in the mask, up to the number needed
to fill the length of the address diffServSixTupleClfrSrcAddr are
cleared to zero. A zero bit in the mask then means that the
corresponding bit in the address always matches."
DEFVAL {0} DEFVAL {0}
::= { diffServSixTupleClfrEntry 6 } ::= { diffServSixTupleClfrEntry 7 }
diffServSixTupleClfrDscp OBJECT-TYPE diffServSixTupleClfrDscp OBJECT-TYPE
SYNTAX Dscp SYNTAX Dscp
MAX-ACCESS read-write MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The value that the DSCP in the packet must have to "The value that the DSCP in the packet must have to match this
match this entry. A value of -1 indicates that a entry. A value of -1 indicates that a specific DSCP value has not
specific DSCP value has not been defined and thus all been defined and thus all DSCP values are considered a match."
DSCP values are considered a match."
DEFVAL {-1} DEFVAL {-1}
::= { diffServSixTupleClfrEntry 7 } ::= { diffServSixTupleClfrEntry 8 }
diffServSixTupleClfrProtocol OBJECT-TYPE diffServSixTupleClfrProtocol OBJECT-TYPE
SYNTAX INTEGER (0..255) SYNTAX INTEGER (0..255)
MAX-ACCESS read-write MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The IP protocol to match against the IPv4 protocol "The IP protocol to match against the IPv4 protocol number in the
number in the packet. A value of zero means match all." packet. A value of zero means match all."
DEFVAL {0} DEFVAL {0}
::= { diffServSixTupleClfrEntry 8 } ::= { diffServSixTupleClfrEntry 9 }
diffServSixTupleClfrDstL4PortMin OBJECT-TYPE diffServSixTupleClfrDstL4PortMin OBJECT-TYPE
SYNTAX SixTupleClfrL4Port SYNTAX SixTupleClfrL4Port
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The minimum value that the layer-4 destination port "The minimum value that the layer-4 destination port number in
number in the packet must have in order to match this the packet must have in order to match this classifier entry."
classifier entry."
DEFVAL {0} DEFVAL {0}
::= { diffServSixTupleClfrEntry 9 } ::= { diffServSixTupleClfrEntry 10 }
diffServSixTupleClfrDstL4PortMax OBJECT-TYPE diffServSixTupleClfrDstL4PortMax OBJECT-TYPE
SYNTAX SixTupleClfrL4Port SYNTAX SixTupleClfrL4Port
MAX-ACCESS read-write MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The maximum value that the layer-4 destination port "The maximum value that the layer-4 destination port number in
number in the packet must have in order to match this the packet must have in order to match this classifier entry.
classifier entry. This value must be equal to or This value must be equal to or greater that the value specified
greater that the value specified for this entry in for this entry in diffServSixTupleClfrDstL4PortMin."
diffServSixTupleClfrDstL4PortMin."
DEFVAL {65535} DEFVAL {65535}
::= { diffServSixTupleClfrEntry 10 } ::= { diffServSixTupleClfrEntry 11 }
diffServSixTupleClfrSrcL4PortMin OBJECT-TYPE diffServSixTupleClfrSrcL4PortMin OBJECT-TYPE
SYNTAX SixTupleClfrL4Port SYNTAX SixTupleClfrL4Port
MAX-ACCESS read-write MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The minimum value that the layer-4 source port number "The minimum value that the layer-4 source port number in the
in the packet must have in order to match this packet must have in order to match this classifier entry."
classifier entry."
DEFVAL {0} DEFVAL {0}
::= { diffServSixTupleClfrEntry 11 } ::= { diffServSixTupleClfrEntry 12 }
diffServSixTupleClfrSrcL4PortMax OBJECT-TYPE diffServSixTupleClfrSrcL4PortMax OBJECT-TYPE
SYNTAX SixTupleClfrL4Port SYNTAX SixTupleClfrL4Port
MAX-ACCESS read-write MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The maximum value that the layer-4 source port number "The maximum value that the layer-4 source port number in the
in the packet must have in oder to match this packet must have in oder to match this classifier entry. This
classifier entry. This value must be equal to or value must be equal to or greater that the value specified for
greater that the value specified for this entry in this entry in dsSixTupleIpSrcL4PortMin."
dsSixTupleIpSrcL4PortMin."
DEFVAL {65535} DEFVAL {65535}
::= { diffServSixTupleClfrEntry 12 } ::= { diffServSixTupleClfrEntry 13 }
diffServSixTupleClfrStatus OBJECT-TYPE diffServSixTupleClfrStatus OBJECT-TYPE
SYNTAX RowStatus SYNTAX RowStatus
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The RowStatus variable controls the activation, "The RowStatus variable controls the activation, deactivation, or
deactivation, or deletion of a classifier. Any writable deletion of a classifier. Any writable variable may be modified
variable may be modified whether the row is active or whether the row is active or notInService."
notInService." ::= { diffServSixTupleClfrEntry 14 }
::= { diffServSixTupleClfrEntry 13 }
-- Classifier Table
-- This object allows a configuring system to obtain a
-- unique value for diffServClassifierNumber for purposes of
-- configuration
diffServClassifierUnique OBJECT-TYPE diffServSixTupleClfrUnique OBJECT-TYPE
SYNTAX TestAndIncr SYNTAX TestAndIncr
MAX-ACCESS read-write MAX-ACCESS read-write
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The diffServClassifierUnique object yields a unique "The diffServSixTupleClfrUnique object yields a unique new
new value for diffServClassifierId when read and value for diffServSixTupleClfrId when read and subsequently
subsequently set. This value must be tested for set. This value must be tested for uniqueness and can
uniqueness." be used by a configuring system to obtain a
unique value for diffServSixTupleClfrId for purposes of
row creation in the diffServSixTupleClfrTable."
::= { diffServObjects 2 } ::= { diffServObjects 2 }
-- The Classifier Table allows us to enumerate the relationship --
-- between arbitrary classifiers and the meters which apply -- Meters
-- to classified streams. --
-- This MIB includes definitions for a generic Meter
-- Table as well as specific definitions for Token-
-- Bucket Meters, as one example of possible meters.
--
diffServClassifierTable OBJECT-TYPE diffServMeterTable OBJECT-TYPE
SYNTAX SEQUENCE OF DiffServClassifierEntry SYNTAX SEQUENCE OF DiffServMeterEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The classifier table defines the classifiers that a "This table enumerates generic meters that a system may use to
system applies to incoming traffic. Specific police a stream of classified traffic. The traffic stream to be
classifiers are defined by RowPointers in this table metered is determined by the classifier upstream of the meter
which identify entries in classifier tables of specific i.e. by the object(s) that point to each entry in this table
type, e.g. Multi-field classifiers for IP are defined using a RowPointer. This may include all traffic on an interface.
in diffServSixTupleClfrTable. Other classifier types
may be defined elsewhere."
::= { diffServTables 2 }
diffServClassifierEntry OBJECT-TYPE Specific meter details are to be found in diffServMeterSpecific."
SYNTAX DiffServClassifierEntry REFERENCE
"[MODEL] section 5.1"
::= { diffServTables 3 }
diffServMeterEntry OBJECT-TYPE
SYNTAX DiffServMeterEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An entry in the classifier table describes a single "An entry in the meter table describing a single meter."
classifier." INDEX { ifIndex, diffServMeterIfDirection,
INDEX { ifIndex, diffServInterfaceDirection, diffServMeterId }
diffServClassifierId } ::= { diffServMeterTable 1 }
::= { diffServClassifierTable 1 }
DiffServClassifierEntry ::= SEQUENCE { DiffServMeterEntry ::= SEQUENCE {
diffServInterfaceDirection INTEGER, diffServMeterIfDirection IfDirection,
diffServClassifierId Unsigned32, diffServMeterId INTEGER,
diffServClassifierPattern RowPointer, diffServMeterSucceedNext RowPointer,
diffServClassifierNext RowPointer, diffServMeterFailNext RowPointer,
diffServClassifierPrecedence Unsigned32, diffServMeterSpecific OBJECT IDENTIFIER,
diffServClassifierStatus RowStatus diffServMeterStatus RowStatus
} }
diffServInterfaceDirection OBJECT-TYPE diffServMeterIfDirection OBJECT-TYPE
SYNTAX INTEGER { SYNTAX IfDirection
inbound(1), -- ingress interface
outbound(2) -- egress interface
}
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"Specifies the direction for this entry on the "Specifies the direction for this meter entry on the interface."
interface. 'inbound' traffic is operated on during ::= { diffServMeterEntry 1 }
receipt, while 'outbound' traffic is operated on prior
to transmission."
::= { diffServClassifierEntry 1 }
diffServClassifierId OBJECT-TYPE diffServMeterId OBJECT-TYPE
SYNTAX Unsigned32 (1..2147483647) SYNTAX INTEGER (0..2147483647)
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"Classifier Id enumerates the classifier entry." "This identifies a meter entry."
::= { diffServClassifierEntry 2 } ::= { diffServMeterEntry 2 }
diffServClassifierPattern OBJECT-TYPE diffServMeterSucceedNext OBJECT-TYPE
SYNTAX RowPointer SYNTAX RowPointer
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"A pointer to a valid entry in another table that "If the traffic does conform to the meter, this indicates the
describes the applicable classification pattern, e.g. next datapath element to handle the traffic e.g. an Action or
an entry in diffServSixTupleClfrTable. If the row another Meter datapath element. The value zeroDotZero in this
pointed to does not exist, the classifier is ignored. variable indicates no further Diffserv treatment is performed on
this traffic by the current interface for this interface
The value zeroDotZero is interpreted to match anything direction."
not matched by another classifier - only one such entry
may exist in this table."
DEFVAL { zeroDotZero } DEFVAL { zeroDotZero }
::= { diffServClassifierEntry 3 } ::= { diffServMeterEntry 3 }
diffServClassifierNext OBJECT-TYPE diffServMeterFailNext OBJECT-TYPE
SYNTAX RowPointer SYNTAX RowPointer
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The 'next' variable selects the next datapath element "If the traffic does not conform to the meter, this indicates the
to handle the classified flow. For example, this can next datapath element to handle the traffic e.g. an Action or
points to an entry in the meter or action table." Meter datapath element. The value zeroDotZero in this variable
::= { diffServClassifierEntry 4 } indicates no further Diffserv treatment is performed on this
traffic by the current interface for this interface direction."
DEFVAL { zeroDotZero }
::= { diffServMeterEntry 4 }
diffServClassifierPrecedence OBJECT-TYPE diffServMeterSpecific OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX OBJECT IDENTIFIER
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The relative precedence in which classifiers are "This indicates the behaviour of the meter by pointing to an
applied, higer numbers represent classifiers with object containing detailed parameters. One example of a valid
higher precedence. Classifiers with the same object would be diffServTBMeterTable, whose entries are indexed
precedence must be unambiguous, i.e. they must define by the same variables as this table, for describing an instance
non-overlapping patterns. Classifiers with different of a token-bucket meter."
precedence may overlap in their patterns: the ::= { diffServMeterEntry 5 }
classifier with the highest precedence that matches is
taken."
DEFVAL { 0 }
::= { diffServClassifierEntry 5 }
diffServClassifierStatus OBJECT-TYPE diffServMeterStatus OBJECT-TYPE
SYNTAX RowStatus SYNTAX RowStatus
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The RowStatus variable controls the activation, "The RowStatus variable controls the activation, deactivation, or
deactivation, or deletion of a classifier. Any writable deletion of a meter. Any writable variable may be modified
variable may be modified whether the row is active or whether the row is active or notInService."
notInService." ::= { diffServMeterEntry 6 }
::= { diffServClassifierEntry 6 }
--
-- 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 diffServMeterUnique OBJECT-TYPE
SYNTAX TestAndIncr SYNTAX TestAndIncr
MAX-ACCESS read-write MAX-ACCESS read-write
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The diffServTBMeterUnique object yields a unique new "The diffServMeterUnique object yields a unique new value for
value for diffServTBMeterId when read and subsequently diffServMeterId when read and subsequently set. This value must
set. This value must be tested for uniqueness." be tested for uniqueness and can be used by a configuring system
to obtain a unique value for diffServMeterId for purposes of row
creation in the diffServMeterTable."
::= { diffServObjects 3 } ::= { diffServObjects 3 }
--
-- Token-Bucket Meter Table
--
diffServTBMeterTable OBJECT-TYPE diffServTBMeterTable OBJECT-TYPE
SYNTAX SEQUENCE OF DiffServTBMeterEntry SYNTAX SEQUENCE OF DiffServTBMeterEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The Meter Table enumerates specific token bucket "This table enumerates specific token-bucket meters that a system
meters that a system may use to police a stream of may use to police a stream of traffic. Such meters are modelled
classified traffic. The traffic stream is defined by here as having a single rate and a burst size.
the classifier. It may include all traffic."
::= { diffServTables 3 } Multiple meter elements may be logically cascaded if a multi-rate
token bucket is needed for a given Per-Hop Behavior. One example
of such a PHB might be for an AF implementation. This is not
meant to imply that cascading of such elements is functionally
equivalent to a multi-rate meter, it is merely a convenience for
this MIB representation.
Entries in this table share indexing with those in the base
diffServTBMeterTable: they appear in and are deleted from this
table whenever they "
REFERENCE
"[MODEL] section 5.1.3"
::= { diffServTables 4 }
diffServTBMeterEntry OBJECT-TYPE diffServTBMeterEntry OBJECT-TYPE
SYNTAX DiffServTBMeterEntry SYNTAX DiffServTBMeterEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An entry in the meter table describes a single token "An entry that describes a single token-bucket meter, indexed by
bucket meter. Note that a meter has exactly one rate, the same variables as a diffServMeterEntry."
defined as the burst size each time interval. Multiple INDEX { ifIndex, diffServMeterIfDirection,
meters may be cascaded should a multi-rate token bucket diffServMeterId }
be needed in a given Per-Hop Behavior. An example of
such a PHB is AF."
INDEX { ifIndex, diffServInterfaceDirection,
diffServTBMeterId }
::= { diffServTBMeterTable 1 } ::= { diffServTBMeterTable 1 }
DiffServTBMeterEntry ::= SEQUENCE { DiffServTBMeterEntry ::= SEQUENCE {
diffServTBMeterId Unsigned32,
diffServTBMeterRate Unsigned32, diffServTBMeterRate Unsigned32,
diffServTBMeterBurstSize Unsigned32, diffServTBMeterBurstSize BurstSize,
diffServTBMeterFailNext RowPointer,
diffServTBMeterSucceedNext RowPointer,
diffServTBMeterStatus RowStatus diffServTBMeterStatus RowStatus
} }
diffServTBMeterId OBJECT-TYPE diffServTBMeterRate OBJECT-TYPE
SYNTAX Unsigned32 (1..2147483647) SYNTAX Unsigned32
MAX-ACCESS not-accessible UNITS "kilobits per second"
MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"MeterId enumerates the meter entry." "The token-bucket rate, in kilobits per second (kbps)."
::= { diffServTBMeterEntry 1 } ::= { diffServTBMeterEntry 1 }
diffServTBMeterRate OBJECT-TYPE diffServTBMeterBurstSize OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX BurstSize
UNITS "KBPS" UNITS "Bytes"
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The token bucket rate, in kilo-bits per second (KBPS). "The maximum number of bytes in a single transmission burst. The
Note that if multiple meters are cascaded onto one PHB, interval over which the burst is to be measured can be derived as
the peak rate of the data stream is the sum of their diffServTBMeterBurstSize*8*1000/diffServTBMeterRate."
rates."
::= { diffServTBMeterEntry 2 } ::= { diffServTBMeterEntry 2 }
diffServTBMeterBurstSize OBJECT-TYPE diffServTBMeterStatus OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX RowStatus
UNITS "bytes"
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The number of bytes in a single transmission burst. "The RowStatus variable controls the activation, deactivation, or
The interval can be derived with (BurstSizex8)/Rate." deletion of a meter. Any writable variable may be modified
whether the row is active or notInService."
::= { diffServTBMeterEntry 3 } ::= { diffServTBMeterEntry 3 }
diffServTBMeterFailNext OBJECT-TYPE --
-- Actions
--
--
-- The Action Table allows enumeration of the different
-- types of actions to be applied to a traffic 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, after marking a stream of traffic exiting from a meter,
a device can then perform a count action of the conforming or
non-conforming traffic.
Specific actions are indicated by diffServActionSpecific which
points to another object which describes the action in further
detail."
REFERENCE
"[MODEL] section 6."
::= { diffServTables 5 }
diffServActionEntry OBJECT-TYPE
SYNTAX DiffServActionEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry in the action table describing the actions applied to
traffic arriving at its input."
INDEX { ifIndex, diffServActionIfDirection,
diffServActionId }
::= { diffServActionTable 1 }
DiffServActionEntry ::= SEQUENCE {
diffServActionIfDirection IfDirection,
diffServActionId INTEGER,
diffServActionNext RowPointer,
diffServActionSpecific RowPointer,
diffServActionStatus RowStatus
}
diffServActionIfDirection OBJECT-TYPE
SYNTAX IfDirection
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Specifies the direction for this action entry on the interface."
::= { diffServActionEntry 1 }
diffServActionId OBJECT-TYPE
SYNTAX INTEGER (0..2147483647)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Action Id enumerates the Action entry."
::= { diffServActionEntry 2 }
diffServActionNext OBJECT-TYPE
SYNTAX RowPointer SYNTAX RowPointer
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"If the traffic does NOT conform to the meter, FailNext "The Next pointer indicates the next datapath element to handle
indicates the next datapath element to handle the the traffic. For example, a queue datapath element. The value
traffic. For example, an Action or Meter datapath zeroDotZero in this variable indicates no further DiffServ
element. The value zeroDotZero in this variable treatment is performed on this flow by the current interface for
indicates no further DiffServ treatment is performed on this interface direction."
this flow by the current interface for this interface
direction."
DEFVAL { zeroDotZero } DEFVAL { zeroDotZero }
::= { diffServTBMeterEntry 4 } ::= { diffServActionEntry 3 }
diffServTBMeterSucceedNext OBJECT-TYPE diffServActionSpecific OBJECT-TYPE
SYNTAX RowPointer SYNTAX RowPointer
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"If the traffic does conform to the meter, SucceedNext "Pointer to a MIB table providing additional information for the
indicates the next datapath element to handle the type of action indicated by this action table entry.
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 For the standard actions defined by this MIB module, this should
point to an entry in one of the diffServDscpMarkActTable,
diffServCountActTable tables or to the diffServAbsoluteDropAction
OID. For other actions, it may point to a table defined in some
other MIB."
::= { diffServActionEntry 4 }
diffServActionStatus OBJECT-TYPE
SYNTAX RowStatus SYNTAX RowStatus
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The RowStatus variable controls the activation, "The RowStatus variable controls the activation, deactivation, or
deactivation, or deletion of a meter. Any writable deletion of a meter. Any writable variable may be modified
variable may be modified whether the row is active or whether the row is active or notInService."
notInService." ::= { diffServActionEntry 5 }
::= { diffServTBMeterEntry 6 }
--
-- 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 diffServActionUnique OBJECT-TYPE
SYNTAX TestAndIncr SYNTAX TestAndIncr
MAX-ACCESS read-write MAX-ACCESS read-write
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The diffServMarkActUnique object yields a unique new "The diffServActionUnique object yields a unique new value for
value for diffServMarkActId when read and subsequently diffServActionId when read and subsequently set. This value must
set. This value must be tested for uniqueness." be tested for uniqueness. This object allows a configuring
system to obtain a unique value for diffServActionId for purposes
of row creation."
::= { diffServObjects 4 } ::= { diffServObjects 4 }
diffServMarkActTable OBJECT-TYPE -- DSCP Mark Action Table
SYNTAX SEQUENCE OF DiffServMarkActEntry --
-- Rows of this table are pointed to by diffServAction to
-- provide detailed parameters specific to the DSCP
-- Mark action.
diffServDscpMarkActTable OBJECT-TYPE
SYNTAX SEQUENCE OF DiffServDscpMarkActEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The mark action table enumerates specific DSCPs used "This table enumerates specific DSCPs used for marking or
for marking or remarking the DSCP field. The entries remarking the DSCP field of IP packets. The entries of this
of this table is meant to be referenced by the table may be referenced by a diffServActionSpecific attribute
diffServAction attribute of entries in that points to diffServDscpMarkActTable."
diffServActionTable for diffServActionType = mark." REFERENCE
::= { diffServTables 4 } "[MODEL] section 6.1"
::= { diffServTables 6 }
diffServMarkActEntry OBJECT-TYPE diffServDscpMarkActEntry OBJECT-TYPE
SYNTAX DiffServMarkActEntry SYNTAX DiffServDscpMarkActEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An entry in the mark action table describes a single "An entry in the DSCP mark action table describes a single DSCP
DSCP used for marking." used for marking."
INDEX { diffServMarkActId } INDEX { diffServDscpMarkActDscp }
::= { diffServMarkActTable 1 } ::= { diffServDscpMarkActTable 1 }
DiffServMarkActEntry ::= SEQUENCE { DiffServDscpMarkActEntry ::= SEQUENCE {
diffServMarkActId Unsigned32, diffServDscpMarkActDscp Dscp
diffServMarkActDscp Dscp,
diffServMarkActStatus RowStatus
} }
diffServMarkActId OBJECT-TYPE diffServDscpMarkActDscp 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 SYNTAX Dscp
MAX-ACCESS read-create MAX-ACCESS read-only
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The DSCP this Action TCB uses for marking/remarking "The DSCP that this Action uses for marking/remarking traffic.
traffic with." Note that if the classifier is working Note that it is quite possible that the only packets subject to
from the same DSCP value, no effective change in the this Action are already marked with this DSCP.
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 Diffserv may result in packet remarking both on ingress to a
SYNTAX RowStatus network and on egress and it is quite possible that ingress and
MAX-ACCESS read-create egress would occur in the same router."
STATUS current ::= { diffServDscpMarkActEntry 1 }
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 -- Count Action Table
-- Rows of this table is pointed to by diffServAction to --
-- 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 diffServCountActTable OBJECT-TYPE
SYNTAX SEQUENCE OF DiffServCountActEntry SYNTAX SEQUENCE OF DiffServCountActEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The count action table contains flow specific "This table contains counters for all the traffic passing through
counters. The entries of this table is meant to be an action element."
referenced by the diffServAction attribute of entries REFERENCE
in diffServActionTable for diffServActionType = count." "[MODEL] section 6.5"
::= { diffServTables 5 } ::= { diffServTables 7 }
diffServCountActEntry OBJECT-TYPE diffServCountActEntry OBJECT-TYPE
SYNTAX DiffServCountActEntry SYNTAX DiffServCountActEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An entry in the count action table describes a single "An entry in the count action table describes a single set of
set of flow specific counters. This counter entry is traffic counters. This entry is indexed in the same way as a
associated with a traffic flow via the diffServActionEntry. An entry should exist in this table for
diffServActionEntry pointing to it." every diffServActionEntry that has a diffServActionSpecific
INDEX { diffServActionId, diffServCountActId } pointing to this table."
INDEX { ifIndex, diffServActionIfDirection,
diffServActionId }
::= { diffServCountActTable 1 } ::= { diffServCountActTable 1 }
DiffServCountActEntry ::= SEQUENCE { DiffServCountActEntry ::= SEQUENCE {
diffServCountActId Unsigned32, diffServCountActOctets Counter32,
diffServCountActOctetsCnt Counter32, diffServCountActHCOctets Counter64,
diffServCountActPktsCnt Counter32, diffServCountActPkts Counter32,
diffServCountActHCPkts Counter64,
diffServCountActStatus RowStatus diffServCountActStatus RowStatus
} }
diffServCountActId OBJECT-TYPE diffServCountActOctets OBJECT-TYPE
SYNTAX Unsigned32 (1..2147483647) SYNTAX Counter32
MAX-ACCESS not-accessible MAX-ACCESS read-only
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"Count Action Id enumerates the Count Action entry." "The number of octets at the Action datapath element. On high
speed devices, this object implements the least significant 32
bits of diffServcountActHCOctets.
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 appropriate
to this interface."
::= { diffServCountActEntry 1 } ::= { diffServCountActEntry 1 }
diffServCountActOctetsCnt OBJECT-TYPE diffServCountActHCOctets OBJECT-TYPE
SYNTAX Counter32 SYNTAX Counter64
UNITS "octets"
MAX-ACCESS read-only MAX-ACCESS read-only
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The number of Octets at the Action datapath element. "The number of octets at the Action datapath element. This
Meaning the octets has been classified and possibly object should be used on high speed interfaces.
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 Discontinuities in the value of this counter can occur at re-
at re-initialization of the management system, and at initialization of the management system and at other times as
other times as indicated by the value of indicated by the value of ifCounterDiscontinuityTime appropriate
ifCounterDiscontinuityTime." to this interface."
::= { diffServCountActEntry 2 } ::= { diffServCountActEntry 2 }
diffServCountActPktsCnt OBJECT-TYPE diffServCountActPkts OBJECT-TYPE
SYNTAX Counter32 SYNTAX Counter32
UNITS "packets"
MAX-ACCESS read-only MAX-ACCESS read-only
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The number of Packets at the Action datapath element. "The number of packets at the Action datapath element. On high
Meaning the packets has been classified and possibly speed devices, this object implements the least significant 32
metered, and prior to any dropping process. This object bits of diffServcountActHCPkts.
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 Discontinuities in the value of this counter can occur at re-
at re-initialization of the management system, and at initialization of the management system and at other times as
other times as indicated by the value of indicated by the value of ifCounterDiscontinuityTime appropriate
ifCounterDiscontinuityTime." to this interface."
::= { diffServCountActEntry 3 } ::= { diffServCountActEntry 3 }
diffServCountActHCPkts OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of packets at the Action datapath element. 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 appropriate
to this interface."
::= { diffServCountActEntry 4 }
diffServCountActStatus OBJECT-TYPE diffServCountActStatus OBJECT-TYPE
SYNTAX RowStatus SYNTAX RowStatus
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The RowStatus variable controls the activation, "The RowStatus variable controls the activation, deactivation, or
deactivation, or deletion of this entry. Any writable deletion of this entry. Any writable variable may be modified
variable may be modified whether the row is active or whether the row is active or notInService."
notInService." ::= { diffServCountActEntry 5 }
::= { diffServCountActEntry 4 }
diffServAbsoluteDropAction OBJECT-IDENTITY
STATUS current
DESCRIPTION
"This object identifier may be used as the value of a
diffServActionSpecific pointer in order to indicate that all
packets following this path are to be dropped unconditionally at
this point. It is likely, but not required, that this action will
be preceded by a counter action."
::= { diffServObjects 6 }
-- --
-- High Capacity Counter Extension for Count Action Table -- Algorithmic Drop Table
-- --
diffServCountActXTable OBJECT-TYPE diffServAlgDropTable OBJECT-TYPE
SYNTAX SEQUENCE OF DiffServCountActXEntry SYNTAX SEQUENCE OF DiffServAlgDropEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This table contains the high capacity counters for the "The algorithmic drop table contains entries describing a process
counters in the Count Action Table. These objects are that drops packets according to some algorithm."
all 64-bit versions of the basic counters, having the REFERENCE
same basic semantics as their 32-bit counterparts, with "[MODEL] section 7.1.3"
syntax extended to 64 bits." ::= { diffServTables 8 }
AUGMENTS { diffServCountActEntry }
::= { diffServAugments 1 }
diffServCountActXEntry OBJECT-TYPE diffServAlgDropEntry OBJECT-TYPE
SYNTAX DiffServCountActXEntry SYNTAX DiffServAlgDropEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An entry containing the 64 bit counters applicable to "An entry describes a process that drops packets according to
a specific drop action entry." some algorithm. Algorithms described here include: tailDrop(2),
::= { diffServActionXTable 1 } headDrop(3) and other(1).
DiffServCountActXEntry ::= SEQUENCE {
diffServCountActOctetsHCnt Counter64,
diffServCountActPktsHCnt Counter64
}
diffServCountActOctetsHCnt OBJECT-TYPE Specifically, Random Drop algorithms are not directly represented
SYNTAX Counter64 in this MIB but can be indicated by an entry in this table with
MAX-ACCESS read-only diffServAlgDropType of other(1) and extensions, pointed to by
STATUS current diffServAlgDropSpecific, in some other MIB module that parallels
DESCRIPTION entries in this table e.g. by using the same index attribute(s)."
"The number of Octets at the Action datapath element. INDEX { ifIndex, diffServAlgDropIfDirection,
Meaning the packets has been classified and possibly diffServAlgDropId }
metered, and prior to any dropping process. This ::= { diffServAlgDropTable 1 }
object should be used on high speed interfaces.
Discontinuities in the value of this counter can occur DiffServAlgDropEntry ::= SEQUENCE {
at re-initialization of the management system, and at diffServAlgDropIfDirection IfDirection,
other times as indicated by the value of diffServAlgDropId INTEGER,
ifCounterDiscontinuityTime." diffServAlgDropType INTEGER,
::= { diffServCountActXEntry 1 } diffServAlgDropNext RowPointer,
diffServAlgDropQMeasure RowPointer,
diffServAlgDropQThreshold Unsigned32,
diffServAlgDropSpecific OBJECT IDENTIFIER,
diffServAlgDropOctets Counter32,
diffServAlgDropHCOctets Counter64,
diffServAlgDropPkts Counter32,
diffServAlgDropHCPkts Counter64,
diffServAlgDropStatus RowStatus
}
diffServCountActPktsHCnt OBJECT-TYPE diffServAlgDropIfDirection OBJECT-TYPE
SYNTAX Counter64 SYNTAX IfDirection
MAX-ACCESS read-only MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The number of Packets at the Action datapath element. "Specifies the direction for this algorithmic dropper entry on
Meaning the packets has been classified and possibly the interface."
metered, and prior to any dropping process. This ::= { diffServAlgDropEntry 1 }
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 diffServAlgDropId OBJECT-TYPE
SYNTAX TestAndIncr SYNTAX INTEGER (0..2147483647)
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 }
diffServDropActTable OBJECT-TYPE
SYNTAX SEQUENCE OF DiffServDropActEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The drop action table enumerates sets of attributes "Drop Action Id enumerates the Drop Action entry."
used to represent a drop process. Each set is normally ::= { diffServAlgDropEntry 2 }
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 diffServAlgDropType OBJECT-TYPE
SYNTAX DiffServDropActEntry SYNTAX INTEGER { other(1), tailDrop(2), headDrop(3) }
MAX-ACCESS not-accessible MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An entry in the drop action table describes a single "The type of algorithm used by this dropper. A value of
drop process's configuration. For Tail Drop Process: tailDrop(2) or headDrop(3) represents an algorithm that is
completely specified by this MIB. A value of other(1) requires
further specification in some other MIB module.
For Random Drop Process: (QMin,PMin) and (QMax,PMax) The tailDrop(2) algorithm is described as follows:
defines the drop probability used for the random drop diffServAlgDropQThreshold represents the depth of the queue
process. Normally PMin have a value of zero. QClip diffServAlgDropQMeasure at which all newly arriving packets will
defines the guaranteed average queue depth, after which be dropped.
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 { The headDrop(3) algorithm is described as follows: if a packet
diffServDropActId Unsigned32, arrives when the current depth of the queue
diffServDropActQMin Unsigned32, diffServAlgDropQMeasure is at diffServAlgDropQThreshold, the
diffServDropActQMax Unsigned32, packet currently at the head of the queue is dropped and the new
diffServDropActQClip Unsigned32, packet is enqueued at the tail of the queue."
diffServDropActPMin Unsigned32, ::= { diffServAlgDropEntry 3 }
diffServDropActPMax Unsigned32,
diffServDropActPCur Unsigned32,
diffServDropActQMeasure RowPointer,
diffServDropActOctetsCnt Counter32,
diffServDropActPktsCnt Counter32,
diffServDropActStatus RowStatus
}
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 diffServAlgDropNext OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX RowPointer
UNITS "Kilo Bits"
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"QMin, with PMin, defines the lowerest drop probability "The Next pointer indicates the next datapath element to handle
point for this random drop process. With PMin=0, the the traffic e.g. a queue datapath element. The value zeroDotZero
queue may drop if a packet is presented to it and the in this variable indicates no further DiffServ treatment is
average queue depth exceeds QMin." performed on this flow by the current interface for this
::= { diffServDropActEntry 2 } interface direction."
::= { diffServAlgDropEntry 4 }
diffServDropActQMax OBJECT-TYPE diffServAlgDropQMeasure OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX RowPointer
UNITS "Kilo Bits"
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
"QMax, with PMax, defines the higher point of drop DESCRIPTION
probability for random drop process. For Tail Drop "Points to an entry in the diffServQueueTable to indicate the
Process: This represents the measure by which the queue that a drop algorithm is to monitor when deciding whether
queue will drop if a packet is presented to it." to drop a packet."
::= { diffServDropActEntry 3 } ::= { diffServAlgDropEntry 5 }
diffServDropActQClip OBJECT-TYPE diffServAlgDropQThreshold OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX Unsigned32
UNITS "Kilo Bits"
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
"The average queue length at which point the drop DESCRIPTION
probability reaches 100%." "A threshold on the depth of the queue being measured at which a
::= { diffServDropActEntry 4 } trigger is generated to the dropping algorithm.
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
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 For the tailDrop(2) or headDrop(3) algorithms, this represents
SYNTAX Unsigned32 (0..1000000) the depth of the queue diffServAlgDropQMeasure at which the drop
UNITS "per-micro-age" action will take place. Other algorithms will need to define
MAX-ACCESS read-only their own semantics for this threshold."
STATUS current ::= { diffServAlgDropEntry 6 }
"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 diffServAlgDropSpecific OBJECT-TYPE
SYNTAX RowPointer SYNTAX OBJECT IDENTIFIER
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current 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 DESCRIPTION
"The number of octets that have been dropped by a drop "Points to a table (not an entry in the table) defined elsewhere
process. On high speed devices, this object implements that provides further detail regarding a drop algorithm described
the least significant 32 bits of as diffServAlgDropType other(1). entries in such a table are to
diffServDropActOctetsHCnt. be indexed by the same variables as this diffServAlgDropEntry.
Discontinuities in the value of this counter can occur For algorithms specified fully in this MIB module, this should
at re-initialization of the management system, and at take the value zeroDotzero."
other times as indicated by the value of ::= { diffServAlgDropEntry 7 }
ifCounterDiscontinuityTime."
::= { diffServDropActEntry 9 }
diffServDropActPktsCnt OBJECT-TYPE diffServAlgDropOctets OBJECT-TYPE
SYNTAX Counter32 SYNTAX Counter32
MAX-ACCESS read-only MAX-ACCESS read-only
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The number of packets that have been dropped by a drop "The number of octets that have been dropped by this drop
process. On high speed devices, this object implements process. On high speed devices, this object implements the least
the least significant 32 bits of significant 32 bits of diffServAlgDropHCOctets.
diffServDropActPktsHCnt.
Discontinuities in the value of this counter can occur Discontinuities in the value of this counter can occur at re-
at re-initialization of the management system, and at initialization of the management system and at other times as
other times as indicated by the value of indicated by the value of ifCounterDiscontinuityTime appropriate
ifCounterDiscontinuityTime." to this interface."
::= { diffServDropActEntry 10 } ::= { diffServAlgDropEntry 8 }
diffServDropActStatus OBJECT-TYPE diffServAlgDropHCOctets OBJECT-TYPE
SYNTAX RowStatus SYNTAX Counter64
MAX-ACCESS read-create MAX-ACCESS read-only
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The RowStatus variable controls the activation, "The number of octets that have been dropped by this drop
deactivation, or deletion of this entry. Any writable process. This object should be used on high speed interfaces.
variable may be modified whether the row is active or
notInService."
::= { diffServDropActEntry 11 }
--
-- High Capacity Counter Extension for Drop Action Table
--
diffServDropActXTable OBJECT-TYPE Discontinuities in the value of this counter can occur at re-
SYNTAX SEQUENCE OF DiffServDropActXEntry initialization of the management system and at other times as
MAX-ACCESS not-accessible indicated by the value of ifCounterDiscontinuityTime appropriate
STATUS current to this interface."
DESCRIPTION ::= { diffServAlgDropEntry 9 }
"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."
AUGMENTS { diffServDropActEntry }
::= { diffServAugments 2 }
diffServDropActXEntry OBJECT-TYPE diffServAlgDropPkts OBJECT-TYPE
SYNTAX DiffServDropActXEntry SYNTAX Counter32
MAX-ACCESS not-accessible MAX-ACCESS read-only
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An entry containing the 64 bit counters applicable to "The number of packets that have been dropped by this drop
a specific drop action entry." process. On high speed devices, this object implements the least
::= { diffServDropActXTable 1 } significant 32 bits of diffServAlgDropHCPkts.
DiffServDropActXEntry ::= SEQUENCE { Discontinuities in the value of this counter can occur at re-
diffServDropActOctetsHCnt Counter64, initialization of the management system and at other times as
diffServDropActPktsHCnt Counter64 indicated by the value of ifCounterDiscontinuityTime appropriate
} to this interface."
::= { diffServAlgDropEntry 10 }
diffServDropActOctetsHCnt OBJECT-TYPE diffServAlgDropHCPkts OBJECT-TYPE
SYNTAX Counter64 SYNTAX Counter64
MAX-ACCESS read-only MAX-ACCESS read-only
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The number of octets that have been dropped by a drop "The number of packets that have been dropped by this drop
process. This object should be used on high speed process. This object should be used on high speed interfaces.
interfaces.
Discontinuities in the value of this counter can occur Discontinuities in the value of this counter can occur at re-
at re-initialization of the management system, and at initialization of the management system and at other times as
other times as indicated by the value of indicated by the value of ifCounterDiscontinuityTime appropriate
ifCounterDiscontinuityTime." to this interface."
::= { diffServDropActXEntry 1 } ::= { diffServAlgDropEntry 11 }
diffServDropActPktsHCnt OBJECT-TYPE diffServAlgDropStatus OBJECT-TYPE
SYNTAX Counter64 SYNTAX RowStatus
MAX-ACCESS read-only MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The number of packets that have been dropped by a drop "The RowStatus variable controls the activation, deactivation, or
process. This object should be used on high speed deletion of this entry. Any writable variable may be modified
interfaces. whether the row is active or notInService."
::= { diffServAlgDropEntry 12 }
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 }
-- This object allows a configuring system to obtain a -- This object allows a configuring system to obtain a
-- unique value for diffServActionId for purposes of -- unique value for diffServAlgDropId for purposes of
-- configuration -- configuration.
- <span class="insert">configuration.</span> diffServAlgDropUnique OBJECT-TYPE
diffServActionUnique OBJECT-TYPE
SYNTAX TestAndIncr SYNTAX TestAndIncr
MAX-ACCESS read-write MAX-ACCESS read-write
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The diffServActionUnique object yields a unique new "This object yields a unique new
value for diffServActionId when read and subsequently value for diffServAlgDropId when read and subsequently
set. This value must be tested for uniqueness." set. This value must be tested for uniqueness and can
be used by a configuring system to obtain a
unique value for diffServAlgDropId for purposes of
row creation in the diffServAlgDropTable."
::= { diffServObjects 7 } ::= { diffServObjects 7 }
-- The Action Table allows us to enumerate the different --
-- types of actions to be applied to a flow. -- Queue Table
--
- diffServQTable OBJECT-TYPE
diffServActionTable OBJECT-TYPE SYNTAX SEQUENCE OF DiffServQEntry
SYNTAX SEQUENCE OF DiffServActionEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The Action Table enumerates actions that can be "The Queue Table enumerates the individual queues on an
performed to a stream of traffic. Multiple Actions can interface."
be concatenated. For example, marking of a stream of ::= { diffServTables 9 }
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 diffServQEntry OBJECT-TYPE
SYNTAX DiffServActionEntry SYNTAX DiffServQEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An entry in the action table describes the actions "An entry in the Queue Table describes a single queue in one
applied to traffic exiting a given meter." direction on an interface."
INDEX { ifIndex, diffServInterfaceDirection, INDEX { ifIndex, diffServQIfDirection, diffServQId }
diffServActionId } ::= { diffServQTable 1 }
::= { diffServActionTable 1 }
DiffServActionEntry ::= SEQUENCE { DiffServQEntry ::= SEQUENCE {
diffServActionId Unsigned32, diffServQIfDirection IfDirection,
diffServActionNext RowPointer, diffServQId INTEGER,
diffServActionType INTEGER, diffServQNext RowPointer,
diffServAction RowPointer, diffServQPriority Unsigned32,
diffServActionStatus RowStatus diffServQMinRateAbs Unsigned32,
diffServQMinRateRel Unsigned32,
diffServQMaxRateAbs Unsigned32,
diffServQMaxRateRel Unsigned32,
diffServQStatus RowStatus
} }
diffServActionId OBJECT-TYPE diffServQIfDirection OBJECT-TYPE
SYNTAX Unsigned32 (1..2147483647) SYNTAX IfDirection
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"Action Id enumerates the Action entry." "Specifies the direction for this queue entry on the interface."
::= { diffServActionEntry 1 } ::= { diffServQEntry 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 diffServQId OBJECT-TYPE
SYNTAX INTEGER { SYNTAX INTEGER (0..2147483647)
other(1), -- types not specified here. MAX-ACCESS not-accessible
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 STATUS current
DESCRIPTION DESCRIPTION
"Indicates the type of action diffServAction points "The Queue Id enumerates the Queue entry."
to." ::= { diffServQEntry 2 }
::= { diffServActionEntry 3 }
diffServAction OBJECT-TYPE diffServQNext OBJECT-TYPE
SYNTAX RowPointer SYNTAX RowPointer
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"Points to a row in a Action Type Table that provides "The Next pointer indicates the next datapath element to handle
all the parameters for the type of action indicated in the traffic e.g. a scheduler datapath element."
diffServActionType. Can also points to a row in some ::= { diffServQEntry 3 }
other MIB to provide some proprietary action type."
::= { diffServActionEntry 4 }
diffServActionStatus OBJECT-TYPE diffServQPriority OBJECT-TYPE
SYNTAX RowStatus SYNTAX Unsigned32
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The RowStatus variable controls the activation, "The priority of this queue, to be used as a parameter to the
deactivation, or deletion of a meter. Any writable next scheduler element downstream from this one."
variable may be modified whether the row is active or ::= { diffServQEntry 4 }
notInService."
::= { diffServActionEntry 5 }
--
-- 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 diffServQMinRateAbs OBJECT-TYPE
SYNTAX TestAndIncr SYNTAX Unsigned32
MAX-ACCESS read-write UNITS "kilobits per second"
MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The diffServQSetUnique object yields a unique new "The minimum absolute rate, in kilobits/sec, that a downstream
value for diffServQSetId when read and subsequently scheduler element should allocate to this queue. If the value is
set. This value must be tested for uniqueness." zero, then there is effectively no minimum rate guarantee. If
::= { diffServObjects 8 } the value is non-zero, the scheduler will assure the servicing of
this queue to at least this rate.
diffServQSetTable OBJECT-TYPE Note that this attribute's value is coupled to that of
SYNTAX SEQUENCE OF DiffServQSetEntry diffServQMinRateRel: changes to one will affect the value of the
MAX-ACCESS not-accessible other. They are linked by the following equation:
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 }
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 { diffServQMinRateRel = diffServQMinRateAbs * 10,000,000/ifSpeed
diffServQSetId Unsigned32,
diffServQSetParentId Unsigned32,
diffServQSetWeight Unsigned32,
diffServQSetMethod INTEGER,
diffServQSetRateUnit INTEGER,
diffServQSetMinRate Unsigned32,
diffServQSetMaxRate Unsigned32,
diffServQSetNext RowPointer,
diffServQSetStatus RowStatus
}
diffServQSetId OBJECT-TYPE or, if appropriate:
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 diffServQMinRateRel = diffServQMinRateAbs * 10 / ifHighSpeed"
SYNTAX Unsigned32 (1..2147483647) REFERENCE
MAX-ACCESS not-accessible "ifSpeed, ifHighSpeed from [IFMIB]"
STATUS current ::= { diffServQEntry 5 }
DESCRIPTION
"The Queue Set Parent Id allows the formation of
hierarchical relationships between scheduling
algorithms."
::= { diffServQSetEntry 2 }
diffServQSetWeight OBJECT-TYPE diffServQMinRateRel OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX Unsigned32
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"Used with QSetParentId in hierarchical scheduling "The minimum rate that a downstream scheduler element should
setup. QSetWeight represent the weight of all queues allocate to this queue, relative to the maximum rate of the
within this queue set, with respect to queues in other interface as reported by ifSpeed or ifHighSpeed, in units of
queue sets in hierarchical scheduling. For example, 1/10,000 of 1. If the value is zero, then there is effectively
this queue set represents the weighed fair queueing no minimum rate guarantee. If the value is non-zero, the
scheduling amongst all the queues in this queue set. scheduler will assure the servicing of this queue to at least
This set of weighted fair queueing queues as a whole this rate.
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 Note that this attribute's value is coupled to that of
SYNTAX INTEGER { diffServQMinRateAbs: changes to one will affect the value of the
kbps(1), -- kilo bits per second other. They are linked by the following equation:
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 diffServQMinRateAbs = ifSpeed * diffServQMinRateRel/10,000,000
SYNTAX Unsigned32
UNITS "KBPS"
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"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 or, if appropriate:
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 diffServQMinRateAbs = ifHighSpeed * diffServQMinRateRel / 10"
SYNTAX RowPointer REFERENCE
MAX-ACCESS read-create "ifSpeed, ifHighSpeed from [IFMIB]"
STATUS current ::= { diffServQEntry 6 }
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 diffServQMaxRateAbs OBJECT-TYPE
SYNTAX RowStatus SYNTAX Unsigned32
UNITS "kilobits per second"
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The RowStatus variable controls the activation, "The maximum rate in kilobits/sec that a downstream scheduler
deactivation, or deletion of a queue. Any writable element should allocate to this queue. If the value is zero, then
variable may be modified whether the row is active or there is effectively no maximum rate limit and that the scheduler
notInService." should attempt to be work-conserving for this queue. If the
::= { diffServQSetEntry 9 } value is non-zero, the scheduler will limit the servicing of this
-- queue to, at most, this rate in a non-work-conserving manner.
-- Queue Table
--
-- This object allows a configuring system to obtain a Note that this attribute's value is coupled to that of
-- unique value for diffServQId for purposes of diffServQMaxRateRel: changes to one will affect the value of the
-- configuration. other. They are linked by the following equation:
diffServQUnique OBJECT-TYPE diffServQMaxRateRel = diffServQMaxRateAbs * 10,000,000/ifSpeed
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 or, if appropriate:
diffServQTable OBJECT-TYPE diffServQMaxRateRel = diffServQMaxRateAbs * 10 / ifHighSpeed"
SYNTAX SEQUENCE OF DiffServQEntry REFERENCE
MAX-ACCESS not-accessible "ifSpeed, ifHighSpeed from [IFMIB]"
STATUS current ::= { diffServQEntry 7 }
DESCRIPTION
"The Queue Table enumerates the queues on an
interface."
::= { diffServTables 9 }
diffServQEntry OBJECT-TYPE diffServQMaxRateRel OBJECT-TYPE
SYNTAX DiffServQEntry SYNTAX Unsigned32
MAX-ACCESS not-accessible MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An entry in the Queue Table describes a single FIFO "The maximum rate that a downstream scheduler element should
queue." allocate to this queue, relative to the maximum rate of the
INDEX { diffServQQSetId, diffServQId } interface as reported by ifSpeed or ifHighSpeed, in units of
::= { diffServQTable 1 } 1/10,000 of 1. If the value is zero, then there is effectively
no maximum rate limit and the scheduler should attempt to be
work-conserving for this queue. If the value is non-zero, the
scheduler will limit the servicing of this queue to, at most,
this rate in a non-work-conserving manner.
DiffServQEntry ::= SEQUENCE { Note that this attribute's value is coupled to that of
diffServQId Unsigned32, diffServQMaxRateAbs: changes to one will affect the value of the
diffServQQSetId Unsigned32, other. They are linked by the following equation:
diffServQSchedulerWeight Unsigned32,
diffServQStatus RowStatus
}
diffServQId OBJECT-TYPE diffServQMaxRateAbs = ifSpeed * diffServQMaxRateRel/10,000,000
SYNTAX Unsigned32 (1..2147483647)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The Queue Id enumerates the Queue entry."
::= { diffServQEntry 1 }
diffServQQSetId OBJECT-TYPE or, if appropriate:
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 diffServQMaxRateAbs = ifHighSpeed * diffServQMaxRateRel / 10"
SYNTAX Unsigned32 REFERENCE
MAX-ACCESS read-create "ifSpeed, ifHighSpeed from [IFMIB]"
STATUS current ::= { diffServQEntry 8 }
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 diffServQStatus OBJECT-TYPE
SYNTAX RowStatus SYNTAX RowStatus
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The RowStatus variable controls the activation, "The RowStatus variable controls the activation, deactivation, or
deactivation, or deletion of a queue. Any writable deletion of a queue. Any writable variable may be modified
variable may be modified whether the row is active or whether the row is active or notInService."
notInService." ::= { diffServQEntry 9 }
::= { 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 diffServQUnique OBJECT-TYPE
SYNTAX TestAndIncr SYNTAX TestAndIncr
MAX-ACCESS read-write MAX-ACCESS read-write
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The diffServQMeasureUnique object yields a unique new "The diffServQUnique object yields a unique new value for
value for diffServQMeasureId when read and subsequently diffServQId when read and subsequently set. This value must be
set. This value must be tested for uniqueness." tested for uniqueness and can be used by a configuring system to
::= { diffServObjects 10 } obtain a unique value for diffServQId for purposes of row
creation in the diffServQTable."
::= { diffServObjects 8 }
diffServQMeasureTable OBJECT-TYPE --
SYNTAX SEQUENCE OF DiffServQMeasureEntry -- Scheduler Table
--
-- The Scheduler Table is used for representing packet schedulers:
-- it provides flexibility for multiple scheduling algorithms, each
-- servicing multiple queues, to be used on the same logical/physical
-- interface.
diffServSchedulerTable OBJECT-TYPE
SYNTAX SEQUENCE OF DiffServSchedulerEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The Queue Measurement Table contains entries "The Scheduler Table enumerates packet schedulers. Multiple
describing the state of queues, this include states for scheduling algorithms can be used on a given interface, with each
implementing traffic treatment algorithms. Notice algorithm described by one diffServSchedulerEntry."
multiple queue measurement entries for the same queue REFERENCE
is allowed." "[MODEL] section 7.1.2"
::= { diffServTables 10 } ::= { diffServTables 10 }
diffServQMeasureEntry OBJECT-TYPE diffServSchedulerEntry OBJECT-TYPE
SYNTAX DiffServQMeasureEntry SYNTAX DiffServSchedulerEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An entry in the Queue Measure Table describes a single "An entry in the Scheduler Table describing a single instance of
set of measurement for a specific queue." a scheduling algorithm."
INDEX { diffServQMeasureQId, diffServQMeasureId } INDEX { ifIndex, diffServSchedulerIfDirection,
::= { diffServQMeasureTable 1 } diffServSchedulerId }
::= { diffServSchedulerTable 1 }
DiffServQMeasureEntry ::= SEQUENCE { DiffServSchedulerEntry ::= SEQUENCE {
diffServQMeasureId Unsigned32, diffServSchedulerIfDirection IfDirection,
diffServQMeasureQId Unsigned32, diffServSchedulerId INTEGER,
diffServQMeasureAvgSampleInt Unsigned32, diffServSchedulerMethod INTEGER,
diffServQMeasureAvgWeightExp Unsigned32, diffServSchedulerNext RowPointer,
diffServQMeasureAvgWeightMan Unsigned32, diffServSchedulerStatus RowStatus
diffServQMeasureQAverage Unsigned32,
diffServQMeasureStatus RowStatus
} }
diffServQMeasureId OBJECT-TYPE diffServSchedulerIfDirection OBJECT-TYPE
SYNTAX Unsigned32 (1..2147483647) SYNTAX IfDirection
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The Queue Measure Id enumerates the Queue Measure "Specifies the direction for this scheduler entry on the
entry." interface."
::= { diffServQMeasureEntry 1 } ::= { diffServSchedulerEntry 1 }
diffServQMeasureQId OBJECT-TYPE diffServSchedulerId OBJECT-TYPE
SYNTAX Unsigned32 (1..2147483647) SYNTAX INTEGER (0..2147483647)
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"Indicates the queue this measurement is associated "The Scheduler Id enumerates the Scheduler entry."
with." ::= { diffServSchedulerEntry 2 }
::= { diffServQMeasureEntry 2 }
diffServQMeasureAvgSampleInt OBJECT-TYPE diffServSchedulerMethod OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX INTEGER {
UNIT millisecond other(1), -- not listed here
priorityq(2), -- Priority Queueing
wrr(3) -- Weighed Round Robin
}
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The sampling interval for queue average calculation, "The scheduling algorithm used by this Scheduler.
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 A value of priorityq(2) is used to indicate strict priority
SYNTAX Unsigned32 queueing: only the diffServQPriority attributes of the queues
MAX-ACCESS read-create feeding this scheduler are used when determining the next packet
STATUS current to schedule.
"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 A value of wrr(3) indicates weighted round-robin scheduling.
SYNTAX Unsigned32 Packets are scheduled from each of the queues feeding this
scheduler according to all of the parameters of the diffServQueue
entry."
REFERENCE
"[MODEL] section 7.1.2"
::= { diffServSchedulerEntry 3 }
diffServSchedulerNext OBJECT-TYPE
SYNTAX RowPointer
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
"The mantissa part of weight (in real number format) DESCRIPTION
for queue average calculation. Always a positive "Selects the next data path component, which can be another
number. Need 16 bits of accuracy." Scheduler or other TC elements. One usage of multiple serial
::= { diffServQMeasureEntry 5 } Schedulers is for Class Base Queueing (CBQ).
diffServQMeasureQAverage OBJECT-TYPE The value zeroDotZero in this variable indicates no further
SYNTAX Unsigned32 DiffServ treatment is performed on this flow by the current
UNITS kilo-bits interface for this interface direction. For example, for an
MAX-ACCESS read-only inbound interface the value zeroDotZero indicates that the packet
STATUS current flow has now completed inbound DiffServ treatment and should be
"The current queue average in kilo bits." forwarded on to the appropriate outbound interface."
::= { diffServQMeasureEntry 6 } DEFVAL { zeroDotZero }
::= { diffServSchedulerEntry 4 }
diffServQMeasureStatus OBJECT-TYPE diffServSchedulerStatus OBJECT-TYPE
SYNTAX RowStatus SYNTAX RowStatus
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The RowStatus variable controls the activation, "The RowStatus variable controls the activation, deactivation, or
deactivation, or deletion of a queue. Any writable deletion of a queue. Any writable variable may be modified
variable may be modified whether the row is active or whether the row is active or notInService."
notInService." ::= { diffServSchedulerEntry 5 }
::= { diffServQMeasureEntry 7 }
-- MIB Compliance statements. Three variations of diffServSchedulerUnique OBJECT-TYPE
-- compliance are described, for optical, LAN, and low speed SYNTAX TestAndIncr
-- interfaces. The difference is the implementation of MAX-ACCESS read-write
-- diffServActionOctetsHCnt, diffServActionPktsHCnt STATUS current
-- and diffServCountActOctetsHCnt, diffServCountActPktsHCnt. DESCRIPTION
"The diffServSchedulerUnique object yields a unique new value for
diffServSchedulerId when read and subsequently set. This value
must be tested for uniqueness and can be used by a configuring
system to obtain a unique value for diffServSchedulerId for
purposes of row creation in the diffServSchedulerTable."
::= { diffServObjects 9 }
--
-- MIB Compliance statements.
--
diffServMIBCompliances OBJECT IDENTIFIER ::= { diffServMIBConformance 1 } diffServMIBCompliances OBJECT IDENTIFIER ::= { diffServMIBConformance 1 }
diffServMIBGroups OBJECT IDENTIFIER ::= { diffServMIBConformance 2 } diffServMIBGroups OBJECT IDENTIFIER ::= { diffServMIBConformance 2 }
diffServMIBCompliance MODULE-COMPLIANCE diffServMIBCompliance MODULE-COMPLIANCE
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This MIB may be implemented as a read-only or as a "This MIB may be implemented as a read-only or as a read-create
read-create MIB. As a result, it may be used for MIB. As a result, it may be used for monitoring or for
monitoring or for configuration. 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 MODULE -- This Module
MANDATORY-GROUPS { MANDATORY-GROUPS {
diffServMIBClassifierGroup, diffServMIBMeterGroup, diffServMIBClassifierGroup, diffServMIBSixTupleClfrGroup,
diffServMIBQueueGroup, diffServMIBActionGroup diffServMIBActionGroup, diffServMIBAlgDropGroup,
diffServMIBQueueGroup, diffServMIBSchedulerGroup }
-- note that diffServMIBHCCounterGroup is
-- mandatory for medium and high speed interfaces
-- note that diffServMIBVHCCounterGroup is -- The groups:
-- mandatory for high speed interfaces -- diffServMIBCounterGroup
-- diffServMIBHCCounterGroup
-- diffServMIBVHCCounterGroup
--
-- are mutually exclusive; at most one of these groups is implemented
-- for a particular interface. When any of these groups is implemented
-- for a particular interface, then ifCounterDiscontinuityGroup from
-- [IFMIB] must also be implemented for that interface.
-- note that the diffServMIBStaticGroup is -- note that the diffServMIBStaticGroup is
-- mandatory for implementations that implement a -- mandatory for implementations that implement a
-- read-write or read-create mode. -- read-write or read-create mode.
}
GROUP diffServMIBCounterGroup
DESCRIPTION
"This group is mandatory for table objects indexed by ifIndex for
which the value of the corresponding instance of ifSpeed is less
than or equal to 20,000,000 bits/second."
GROUP diffServMIBHCCounterGroup GROUP diffServMIBHCCounterGroup
DESCRIPTION DESCRIPTION
"This group is mandatory for those network interfaces "This group is mandatory for table objects indexed by ifIndex for
for which the value of the corresponding instance of which the value of the corresponding instance of ifSpeed is
ifSpeed is greater than 20,000,000 bits/second." greater than 20,000,000 bits/second."
GROUP diffServMIBVHCCounterGroup GROUP diffServMIBVHCCounterGroup
DESCRIPTION DESCRIPTION
"This group is mandatory for those network interfaces "This group is mandatory for table objects indexed by ifIndex for
for which the value of the corresponding instance of which the value of the corresponding instance of ifSpeed is
ifSpeed is greater than 650,000,000 bits/second." greater than 650,000,000 bits/second."
OBJECT diffServClassifierMatchObject GROUP diffServMIBMeterGroup
MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "This group is mandatory for devices that implement metering
functions."
OBJECT diffServClassifierNext GROUP diffServMIBTokenBucketMeterGroup
MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "This group is mandatory for devices that implement token-bucket
metering functions."
OBJECT diffServClassifierSequence GROUP diffServMIBDscpMarkActionGroup
MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "This group is mandatory for devices that implement DSCP-Marking
functions."
OBJECT diffServClassifierStatus GROUP diffServMIBStaticGroup
MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "This group is mandatory for devices that allow creation of rows
in any of the writable tables of this MIB."
OBJECT diffServTBMeterInterval OBJECT diffServClassifierFilter
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServTBMeterBurstSize OBJECT diffServClassifierNext
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServTBMeterFailNext OBJECT diffServClassifierPrecedence
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServTBMeterSucceedNext OBJECT diffServClassifierStatus
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServTBMeterStatus OBJECT diffServSixTupleClfrDstAddrType
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServActionNext
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServActionDSCP OBJECT diffServSixTupleClfrDstAddr
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServActionMinThreshold OBJECT diffServSixTupleClfrDstAddrMask
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServActionMaxThreshold OBJECT diffServSixTupleClfrSrcAddrType
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServActionDropPolicy OBJECT diffServSixTupleClfrSrcAddr
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServActionStatus OBJECT diffServSixTupleClfrSrcAddrMask
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServQueueMinimumRate OBJECT diffServSixTupleClfrDscp
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServQueueMaximumRate OBJECT diffServSixTupleClfrProtocol
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServQueuePriority OBJECT diffServSixTupleClfrSrcL4PortMin
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServQueueNextTCB OBJECT diffServSixTupleClfrSrcL4PortMax
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServSixTupleClfrDstL4PortMin
OBJECT diffServQueueStatus
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
::= { diffServMIBCompliances 1 }
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 OBJECT diffServSixTupleClfrDstL4PortMax
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 MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServClassifierNext OBJECT diffServSixTupleClfrStatus
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServClassifierSequence OBJECT diffServMeterSucceedNext
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServClassifierStatus OBJECT diffServMeterFailNext
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServTBMeterInterval OBJECT diffServMeterSpecific
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServTBMeterBurstSize OBJECT diffServMeterStatus
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServTBMeterFailNext OBJECT diffServTBMeterRate
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServTBMeterSucceedNext OBJECT diffServTBMeterBurstSize
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServTBMeterStatus OBJECT diffServTBMeterStatus
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServActionNext OBJECT diffServActionNext
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServActionDSCP OBJECT diffServActionSpecific
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 MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServActionDropPolicy
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServActionStatus OBJECT diffServActionStatus
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServQueueMinimumRate OBJECT diffServCountActStatus
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServQueueMaximumRate
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServQueuePriority OBJECT diffServAlgDropType
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServQueueNextTCB OBJECT diffServAlgDropNext
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServQueueStatus OBJECT diffServAlgDropQMeasure
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
::= { diffServMIBCompliances 2 }
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 OBJECT diffServAlgDropQThreshold
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 MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServClassifierNext OBJECT diffServAlgDropSpecific
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServAlgDropStatus
OBJECT diffServClassifierSequence
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServClassifierStatus OBJECT diffServQNext
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServTBMeterInterval OBJECT diffServQPriority
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServTBMeterBurstSize OBJECT diffServQMinRateAbs
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServTBMeterFailNext OBJECT diffServQMinRateRel
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServTBMeterSucceedNext OBJECT diffServQMaxRateAbs
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServTBMeterStatus OBJECT diffServQMaxRateRel
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServActionNext OBJECT diffServQueueStatus
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServActionDSCP OBJECT diffServSchedulerMethod
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServActionMinThreshold OBJECT diffServSchedulerNext
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServActionMaxThreshold
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServActionDropPolicy OBJECT diffServSchedulerStatus
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServActionStatus ::= { diffServMIBCompliances 1 }
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServQueueMinimumRate diffServMIBClassifierGroup OBJECT-GROUP
MIN-ACCESS read-only OBJECTS {
diffServClassifierFilter, diffServClassifierNext,
diffServClassifierPrecedence, diffServClassifierStatus
}
STATUS current
DESCRIPTION DESCRIPTION
"Write access is not required." "The Classifier Group defines the MIB Objects that describe a
generic classifier element."
::= { diffServMIBGroups 1 }
OBJECT diffServQueueMaximumRate diffServMIBSixTupleClfrGroup OBJECT-GROUP
MIN-ACCESS read-only OBJECTS {
diffServSixTupleClfrDstAddrType, diffServSixTupleClfrDstAddr,
diffServSixTupleClfrDstAddrMask, diffServSixTupleClfrDstAddrType,
diffServSixTupleClfrSrcAddrType, diffServSixTupleClfrSrcAddrMask,
diffServSixTupleClfrDscp, diffServSixTupleClfrProtocol,
diffServSixTupleClfrDstL4PortMin,
diffServSixTupleClfrDstL4PortMax,
diffServSixTupleClfrSrcL4PortMin,
diffServSixTupleClfrSrcL4PortMax, diffServSixTupleClfrStatus
}
STATUS current
DESCRIPTION DESCRIPTION
"Write access is not required." "The Six-tuple Classifier Group defines the MIB Objects that
describe a classifier element for matching on 6 fields of an IP
and upper-layer protocol header."
::= { diffServMIBGroups 2 }
OBJECT diffServQueuePriority diffServMIBMeterGroup OBJECT-GROUP
MIN-ACCESS read-only OBJECTS {
diffServMeterSucceedNext, diffServMeterFailNext,
diffServMeterSpecific, diffServMeterStatus
}
STATUS current
DESCRIPTION DESCRIPTION
"Write access is not required." "The Meter Group defines the objects used in describing a generic
meter element."
::= { diffServMIBGroups 3 }
OBJECT diffServQueueNextTCB diffServMIBTokenBucketMeterGroup OBJECT-GROUP
MIN-ACCESS read-only OBJECTS {
diffServTBMeterRate, diffServTBMeterBurstSize,
diffServTBMeterStatus
}
STATUS current
DESCRIPTION DESCRIPTION
"Write access is not required." "The Token-Bucket Meter Group defines the objects used in
describing a single-rate token bucket meter element."
::= { diffServMIBGroups 4 }
OBJECT diffServQueueStatus diffServMIBActionGroup OBJECT-GROUP
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
::= { diffServMIBCompliances 3 }
diffServMIBClassifierGroup OBJECT-GROUP
OBJECTS { OBJECTS {
diffServAggregateDSCP, diffServActionNext, diffServActionSpecific,
diffServClassifierMatchObject, diffServActionStatus
diffServClassifierNext,
diffServClassifierSequence,
diffServClassifierStatus
} }
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The Classifier Group defines the MIB Objects that "The Action Group defines the objects used in describing a
describe a classifier." generic action element."
::= { diffServMIBGroups 1 } ::= { diffServMIBGroups 5 }
diffServMIBMeterGroup OBJECT-GROUP diffServMIBDscpMarkActionGroup OBJECT-GROUP
OBJECTS { OBJECTS {
diffServTBMeterInterval, diffServTBMeterBurstSize, diffServDscpMarkActDscp
diffServTBMeterSucceedNext, diffServTBMeterFailNext,
diffServTBMeterStatus
} }
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The Meter Group defines the objects used in describing "The DSCP Mark Action Group defines the objects used in
a meter." describing a DSCP Marking Action element."
::= { diffServMIBGroups 2 } ::= { diffServMIBGroups 6 }
diffServMIBActionGroup OBJECT-GROUP diffServMIBCounterGroup OBJECT-GROUP
OBJECTS { OBJECTS {
diffServActionDropPolicy, diffServCountActOctets, diffServCountActPkts,
diffServActionRandomDrops, diffServCountActStatus,
diffServActionTailDrops, diffServAlgDropOctets, diffServAlgDropPkts
diffServActionMinThreshold,
diffServActionMaxThreshold, diffServActionDSCP,
diffServActionNext,
diffServActionConformingPackets,
diffServActionConformingOctets,
diffServActionStatus
} }
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The Action Group defines the objects used in "A collection of objects providing information specific to non-
describing an action." high speed (non-high speed interfaces transmit and receive at
::= { diffServMIBGroups 3 } speeds less than or equal to 20,000,000 bits/second) packet-
oriented network interfaces."
::= { diffServMIBGroups 7 }
diffServMIBHCCounterGroup OBJECT-GROUP diffServMIBHCCounterGroup OBJECT-GROUP
OBJECTS { OBJECTS {
diffServActionHCConformingOctets diffServCountActOctets, diffServCountActHCOctets,
diffServCountActPkts, diffServCountActStatus,
diffServAlgDropOctets, diffServAlgDropHCOctets,
diffServAlgDropPkts
} }
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"At 20,000,000 bits per second or greater, the number "A collection of objects providing information specific to non-
of octets a given class may count can overflow a 32 bit high speed (non-high speed interfaces transmit and receive at
counter in under an hour. Therefore, by convention speeds less than or equal to 20,000,000 bits/second) packet-
established in the IFMIB, the 64 bit counter must be oriented network interfaces."
implemented as well." ::= { diffServMIBGroups 8 }
::= { diffServMIBGroups 4 }
diffServMIBVHCCounterGroup OBJECT-GROUP diffServMIBVHCCounterGroup OBJECT-GROUP
OBJECTS { OBJECTS {
diffServActionHCConformingPackets, diffServCountActOctets, diffServCountActHCOctets,
diffServActionHCRandomDrops, diffServCountActPkts, diffServCountActHCPkts,
diffServActionHCTailDrops diffServCountActStatus, diffServAlgDropOctets,
diffServAlgDropHCOctets, diffServAlgDropPkts,
diffServAlgDropHCPkts
} }
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"At 650,000,000 bits per second or greater, the number "A collection of objects providing information specific to non-
of packets a given class may count can overflow a 32 high speed (non-high speed interfaces transmit and receive at
bit counter in under an hour. Therefore, by convention speeds less than or equal to 20,000,000 bits/second) packet-
established in the IFMIB, the 64 bit counter must be oriented network interfaces."
implemented as well." ::= { diffServMIBGroups 9 }
::= { diffServMIBGroups 5 }
diffServMIBAlgDropGroup OBJECT-GROUP
OBJECTS {
diffServAlgDropType, diffServAlgDropNext,
diffServAlgDropQMeasure, diffServAlgDropQThreshold,
diffServAlgDropSpecific, diffServAlgDropStatus
}
STATUS current
DESCRIPTION
"The Algorithmic Drop Group contains the objects that describe
algorithmic dropper operation and configuration."
::= { diffServMIBGroups 10 }
diffServMIBQueueGroup OBJECT-GROUP diffServMIBQueueGroup OBJECT-GROUP
OBJECTS { OBJECTS {
diffServQueueMinimumRate, diffServQPriority, diffServQNext, diffServQMinRateAbs,
diffServQueueMaximumRate, diffServQMinRateRel, diffServQMaxRateAbs,
diffServQueuePriority, diffServQueueStatus, diffServQMaxRateRel, diffServQStatus
diffServQueueNextTCB
} }
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The Queue Group contains the objects that describe an "The Queue Group contains the objects that describe an
interface's queues." interface's queues."
::= { diffServMIBGroups 6 } ::= { diffServMIBGroups 11 }
diffServMIBSchedulerGroup OBJECT-GROUP
OBJECTS {
diffServSchedulerMethod, diffServSchedulerNext,
diffServSchedulerStatus
}
STATUS current
DESCRIPTION
"The Scheduler Group contains the objects that describe packet
schedulers on interfaces."
::= { diffServMIBGroups 12 }
diffServMIBStaticGroup OBJECT-GROUP diffServMIBStaticGroup OBJECT-GROUP
OBJECTS { OBJECTS {
diffServClassifierUnique, diffServTBMeterUnique, diffServClassifierUnique, diffServSixTupleClfrUnique,
diffServQueueUnique, diffServActionUnique diffServMeterUnique, diffServActionUnique,
diffServAlgDropUnique, diffServQUnique, diffServSchedulerUnique
} }
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The Static Group contains scalar objects used in "The Static Group contains scalar objects used in creating unique
creating unique enumerations for classifiers, meters, enumerations for classifiers, meters, actions and queues. These
and queues." are required whenever row creation operations on such tables are
::= { diffServMIBGroups 7 } supported."
::= { diffServMIBGroups 13 }
END END
5. Acknowledgments 5. Acknowledgments
This MIB has been developed with active involvement from a This MIB builds on all the work that has gone into the conceptual model
number of sources, but most notably Yoram Bernet, Steve Blake, for diffserv routers. It has been developed with the active involvement
Brian Carpenter, Kwok Chan, Dave Durham, Jeremy Greene, Roch of many people, but most notably Yoram Bernet, Steve Blake, Brian
Guerin, Scott Hahn, Keith McCloghrie, Kathleen Nichols, Ping Carpenter, Dave Durham, Jeremy Greene, Roch Guerin, Scott Hahn, Keith
Pan, Andrew Smith, and Bert Wijnen. McCloghrie, Kathleen Nichols, Ping Pan and Bert Wijnen.
6. Security Considerations 6. Security Considerations
It is clear that this MIB is potentially useful for It is clear that this MIB is potentially useful for configuration, and
configuration, and anything that can be configured can be anything that can be configured can be misconfigured, with potentially
misconfigured, with potentially disastrous effect. disastrous effect.
At this writing, no security holes have been identified beyond At this writing, no security holes have been identified beyond those
those that SNMP Security is itself intended to address. These that SNMP Security is itself intended to address. These relate primarily
relate to primarily controlled access to sensitive information to controlled access to sensitive information and the ability to
and the ability to configure a device - or which might result configure a device - or which might result from operator error, which is
from operator error, which is beyond the scope of any security beyond the scope of any security architecture.
architecture.
There are a number of management objects defined in this MIB There are a number of management objects defined in this MIB that have a
that have a MAX-ACCESS clause of read-write and/or read- MAX-ACCESS clause of read-write and/or read-create. Such objects may be
create. Such objects may be considered sensitive or vulnerable considered sensitive or vulnerable in some network environments. The
in some network environments. The support for SET operations support for SET operations in a non-secure environment without proper
in a non-secure environment without proper protection can have protection can have a negative effect on network operations. The use of
a negative effect on network operations. The use of SNMP SNMP Version 3 is recommended over prior versions for configuration
Version 3 is recommended over prior versions, for control as its security model is improved.
configuration control, as its security model is improved.
There are a number of managed objects in this MIB that may There are a number of managed objects in this MIB that may contain
contain information that may be sensitive from a business information that may be sensitive from a business perspective, in that
perspective, in that they may represent a customer's service they may represent a customer's service contract or the filters that the
contract or the filters that the service provider chooses to service provider chooses to apply to a customer's ingress or egress
apply to a customer's ingress or egress traffic. There are no traffic. There are no objects which are sensitive in their own right,
objects which are sensitive in their own right, such as such as passwords or monetary amounts.
passwords or monetary amounts.
It may be important to control even GET access to these It may be important to control even GET access to these objects and
objects and possibly to even encrypt the values of these possibly to even encrypt the values of these object when sending them
object when sending them over the network via SNMP. Not all over the network via SNMP. Not all versions of SNMP provide features for
versions of SNMP provide features for such a secure such a secure environment.
environment.
SNMPv1 by itself is not a secure environment. Even if the network itself
is secure (for example by using IPSec), even then, there is no control
as to who on the secure network is allowed to access and GET/SET
(read/change/create/delete) the objects in this MIB.
It is recommended that the implementers consider the security features
as provided by the SNMPv3 framework. Specifically, the use of the User-
based Security Model [12] and the View-based Access Control Model [15]
is recommended.
It is then a customer/user responsibility to ensure that the SNMP entity
giving access to an instance of this MIB, is properly configured to give
access to the objects only to those principals (users) that have
legitimate rights to indeed GET or SET (change/create/delete) them.
7. References 7. References
[1] Harrington, D., Presuhn, R., and B. Wijnen, "An [1] Harrington, D., Presuhn, R., and B. Wijnen, "An Architecture for
Architecture for Describing SNMP Management Frameworks", Describing SNMP Management Frameworks", RFC 2571, Cabletron
RFC 2571, Cabletron Systems, Inc., BMC Software, Inc., Systems, Inc., BMC Software, Inc., IBM T. J. Watson Research, April
[2] Rose, M., and K. McCloghrie, "Structure and
Identification of Management Information for TCP/IP-based
Internets", RFC 1155, STD 16, Performance Systems
[3] Rose, M., and K. McCloghrie, "Concise MIB Definitions",
RFC 1212, STD 16, Performance Systems International,
[4] M. Rose, "A Convention for Defining Traps for use with
the SNMP", RFC 1215, Performance Systems International,
[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 1999
[6] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., [2] Rose, M., and K. McCloghrie, "Structure and Identification of
Rose, M., and S. Waldbusser, "Textual Conventions for Management Information for TCP/IP-based Internets", RFC 1155, STD
SMIv2", RFC 2579, STD 58, Cisco Systems, SNMPinfo, TU
Braunschweig, SNMP Research, First Virtual Holdings,
[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,
[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, [3] Rose, M., and K. McCloghrie, "Concise MIB Definitions", RFC 1212,
"Introduction to Community-based SNMPv2", RFC 1901, SNMP STD 16, Performance Systems International, Hughes LAN Systems,
Research, Inc., Cisco Systems, Inc., Dover Beach
Consulting, Inc., International Network Services, January
1996.
[10] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, [4] M. Rose, "A Convention for Defining Traps for use with the SNMP",
"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, [5] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M.,
"Message Processing and Dispatching for the Simple and S. Waldbusser, "Structure of Management Information Version 2
Network Management Protocol (SNMP)", RFC 2572, SNMP (SMIv2)", RFC 2578, STD 58, Cisco Systems, SNMPinfo, TU
Research, Inc., Cabletron Systems, Inc., BMC Software, Braunschweig, SNMP Research, First Virtual Holdings, International
[12] Blumenthal, U., and B. Wijnen, "User-based Security Model
(USM) for version 3 of the Simple Network Management [6] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M.,
Protocol (SNMPv3)", RFC 2574, IBM T. J. Watson Research, and S. Waldbusser, "Textual Conventions for SMIv2", RFC 2579, STD
[13] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, 58, Cisco Systems, SNMPinfo, TU Braunschweig, SNMP Research, First
"Protocol Operations for Version 2 of the Simple Network
Management Protocol (SNMPv2)", RFC 1905, SNMP Research, [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,
[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 Research,
Inc., Cisco Systems, Inc., Dover Beach Consulting, Inc., Inc., Cisco Systems, Inc., Dover Beach Consulting, Inc.,
International Network Services, January 1996. International Network Services, January 1996.
[14] Levi, D., Meyer, P., and B. Stewart, "SNMPv3 [10] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Transport
Applications", RFC 2573, SNMP Research, Inc., Secure Mappings for Version 2 of the Simple Network Management Protocol
[15] Wijnen, B., Presuhn, R., and K. McCloghrie, "View-based (SNMPv2)", RFC 1906, SNMP Research, Inc., Cisco Systems, Inc.,
Access Control Model (VACM) for the Simple Network Dover Beach Consulting, Inc., International Network Services,
Management Protocol (SNMP)", RFC 2575, IBM T. J. Watson January 1996.
Research, BMC Software, Inc., Cisco Systems, Inc., April
1999
[16] Case, J., Mundy, R., Partain, D., and B. Stewart, [11] Case, J., Harrington D., Presuhn R., and B. Wijnen, "Message
"Introduction to Version 3 of the Internet-standard Processing and Dispatching for the Simple Network Management
Network Management Framework", RFC 2570, SNMP Research, Protocol (SNMP)", RFC 2572, SNMP Research, Inc., Cabletron Systems,
Inc., TIS Labs at Network Associates, Inc., Ericsson,
[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.
[Architecture] [12] Blumenthal, U., and B. Wijnen, "User-based Security Model (USM) for
S. Blake, D. Black, M. Carlson, E. Davies, Z. Wang, W. version 3 of the Simple Network Management Protocol (SNMPv3)", RFC
Weiss, "An Architecture for Differentiated Service." RFC
2475, December 1998.
[AF] J. Heinanen, F. Baker, W. Weiss, J. Wroclawski, "Assured [13] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Protocol
Forwarding PHB Group." RFC 2597, June 1999. 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.
[EF] V. Jacobson, K. Nichols, K. Poduri. "An Expedited [14] Levi, D., Meyer, P., and B. Stewart, "SNMPv3 Applications", RFC
Forwarding PHB." RFC 2598, June 1999. 2573, SNMP Research, Inc., Secure Computing Corporation, Cisco
[Model] [15] Wijnen, B., Presuhn, R., and K. McCloghrie, "View-based Access
Bernet et al, "A Conceptual Model for Diffserv Routers", Control Model (VACM) for the Simple Network Management Protocol
March 2000, draft-ietf-diffserv-model-02.txt (SNMP)", RFC 2575, IBM T. J. Watson Research, BMC Software, Inc.,
[IFMIB] [16] Case, J., Mundy, R., Partain, D., and B. Stewart, "Introduction to
K. McCloghrie, F. Kastenholz. "The Interfaces Group MIB Version 3 of the Internet-standard Network Management Framework",
using SMIv2", Request for Comments 2233, November 1997. RFC 2570, SNMP Research, Inc., TIS Labs at Network Associates,
[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
[AF-PHB]
J. Heinanen, F. Baker, W. Weiss, J. Wroclawski, "Assured Forwarding
PHB Group.", RFC 2597, June 1999.
[DSARCH]
S. Blake, D. Black, M. Carlson, E. Davies, Z. Wang, W. Weiss, "An
Architecture for Differentiated Service", RFC 2475, December 1998.
[DSFIELD]
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.
[DSPIB] [DSPIB]
M. Fine, K. McCloghrie, J. Seligson, K. Chan, S. Hahn, A. M. Fine, K. McCloghrie, J. Seligson, K. Chan, S. Hahn, A. Smith,
Smith "Differentiated Services Policy Information Base", "Differentiated Services Policy Information Base", March 2000,
March 2000, draft-ietf-diffserv-pib-00.txt draft-ietf-diffserv-pib-00.txt
[DSTERMS]
D. Grossman, "New Terminology for Diffserv", Internet Draft <draft-
ietf-diffserv-new-terms-02.txt>, November 1999.
[EF-PHB]
V. Jacobson, K. Nichols, K. Poduri, "An Expedited Forwarding PHB."
RFC 2598, June 1999.
[IFMIB]
K. McCloghrie, F. Kastenholz, "The Interfaces Group MIB using
SMIv2", RFC 2233, November 1997.
[INETADDRESS] [INETADDRESS]
Daniele, M., Haberman, B., Routhier, S., Schoenwaelder, Daniele, M., Haberman, B., Routhier, S., Schoenwaelder, J.,
J. "Textual Conventions for Internet Network "Textual Conventions for Internet Network Addresses.", Internet
Addresses.", February 17, 2000, draft-ops-endpoint-mib- Draft <draft-ops-endpoint-mib-08.txt>, April 2000.
07.txt
[ActQMgmt] [INTSERVMIB]
V. Firoiu, M. Borden "A Study of Active Queue Management F. Baker, J. Krawczyk, A. Sastry, "Integrated Services Management
for Congestion Control", March 2000, In IEEE Infocom Information Base using SMIv2", RFC 2213, September 1997.
2000, http://www.ieee-infocom.org/2000/papers/405.pdf
8. Authors' Addresses: [MODEL]
Y. Bernet, S. Blake, A. Smith, D. Grossman, "A Conceptual Model for
Diffserv Routers", Internet Draft <draft-ietf-diffserv-
model-03.txt>, May 2000.
[POLTERM]
F. Reichmeyer, D. Grossman, J. Strassner, M. Condell, "A Common
Terminology for Policy Management", Internet Draft <draft-
8. Authors' Addresses
Fred Baker Fred Baker
Cisco Systems
519 Lado Drive 519 Lado Drive
Santa Barbara, California 93111 Santa Barbara, California 93111
fred@cisco.com fred@cisco.com
Kwok Ho Chan Kwok Ho Chan
Nortel Networks Nortel Networks
600 Technology Park Drive 600 Technology Park Drive
Billerica, MA 01821 Billerica, MA 01821
khchan@nortelnetworks.com khchan@nortelnetworks.com
Andrew Smith Andrew Smith
Extreme Networks Extreme Networks
3585 Monroe Street 3585 Monroe Street
Santa Clara, CA 95051 Santa Clara, CA 95051
USA USA
andrew@extremenetworks.com andrew@extremenetworks.com
Table of Contents
1 The SNMP Management Framework ................................... 2
2 Structure of this MIB ........................................... 3
2.1 Overview ...................................................... 3
2.2 Classifiers ................................................... 4
2.2.1 Classifier Table ............................................ 4
2.2.2 IP Six-Tuple Classifier Table ............................... 4
2.3 Meters ........................................................ 5
2.3.1 Meter Table ................................................. 5
2.3.2 Token-Bucket Meter Table .................................... 5
2.4 Actions ....................................................... 6
2.4.1 DSCP Mark Action Table ...................................... 6
2.4.2 Count Action Table .......................................... 6
2.4.3 Absolute Drop Action ........................................ 7
2.5 Queueing Elements ............................................. 7
2.5.1 Algorithmic Dropper Table ................................... 7
2.5.2 Queues and Schedulers ....................................... 8
2.5.3 Example of Algorithmic Droppers, Queues and Schedulers ...... 9
2.5.4 Example of extending this MIB ............................... 10
2.6 The use of RowPointer ......................................... 10
3 Editorial information ........................................... 13
3.1 Open Issues resolved in this draft ............................ 13
3.2 Still Open Issues ............................................. 15
4 MIB Definition .................................................. 16
5 Acknowledgments ................................................. 61
6 Security Considerations ......................................... 61
7 References ...................................................... 62
8 Authors' Addresses .............................................. 65
9. Full Copyright
Copyright (C) The Internet Society (2000). All Rights Reserved.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implmentation may be prepared, copied, published and
distributed, in whole or in part, without restriction of any kind,
provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be
followed, or as required to translate it into languages other than
English.
The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
 End of changes. 431 change blocks. 
1855 lines changed or deleted 1884 lines changed or added

This html diff was produced by rfcdiff 1.34. The latest version is available from http://tools.ietf.org/tools/rfcdiff/