draft-ietf-diffserv-mib-09.txt   draft-ietf-diffserv-mib-10.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 2001 Nortel Networks Expires December 2001 Nortel Networks
draft-ietf-diffserv-mib-09.txt A. Smith draft-ietf-diffserv-mib-10.txt A. Smith
Allegro Networks Allegro Networks
Management Information Base for the Management Information Base for the
Differentiated Services Architecture Differentiated Services Architecture
Status of this Memo Status of this Memo
This document is an Internet-Draft and is in full conformance with all This document is an Internet-Draft and is in full conformance with all
provisions of Section 10 of RFC 2026. Internet-Drafts are working provisions of Section 10 of RFC 2026. Internet-Drafts are working
documents of the Internet Engineering Task Force (IETF), its areas, and documents of the Internet Engineering Task Force (IETF), its areas, and
its working groups. Note that other groups may also distribute working its working groups. Note that other groups may also distribute working
skipping to change at page 1, line 31 skipping to change at page 1, line 31
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet Drafts as reference material time. It is inappropriate to use Internet Drafts as reference material
or to cite them other than as "work in progress." or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft
Shadow Directories can be accessed at http://www.ietf.org/shadow.html. Shadow Directories can be accessed at http://www.ietf.org/shadow.html.
This document is a product of the IETF's Differentiated Services Working This document is a product of the IETF's Differentiated Services Working
Group. Comments should be addressed to WG's mailing list at Group. Comments should be addressed to WG's mailing list at
diffserv@ietf.org. The charter for Differentiated Services may be found Differentiated Services@ietf.org. The charter for Differentiated
at http://www.ietf.org/html.charters/diffserv-charter.html Services may be found at
http://www.ietf.org/html.charters/Differentiated Services-charter.html
Copyright (C) The Internet Society (2000). All Rights Reserved. Copyright (C) The Internet Society (2000). All Rights Reserved.
Distribution of this memo is unlimited. Distribution of this memo is unlimited.
Abstract Abstract
This memo describes a SMIv2 MIB for a device implementing the This memo describes an SMIv2 MIB for a device implementing the
Differentiated Services Architecture [DSARCH], described in detail by Differentiated Services Architecture [DSARCH], described in detail by
the Informal Management Model for Diffserv Routers [MODEL]. the Informal Management Model for Differentiated Services Routers
[MODEL].
1. 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 events for the o Mechanisms for describing and naming objects and events for the
purpose of management. The first version of this Structure of purpose of management. The first version of this Structure of
Management Information (SMI) is called SMIv1 and described in Management Information (SMI) is called SMIv1 and described in
RFC 1155 [2], RFC 1212 [3] and RFC 1215 [4]. The second version, RFC 1155 [2], RFC 1212 [3] and RFC 1215 [4]. The second
called SMIv2, is described in RFC 2578 [5], RFC 2579 [6] and RFC version, called SMIv2, is described in RFC 2578 [5], RFC 2579
2580 [7]. [6] and RFC 2580 [7].
o Message protocols for transferring management information. The o Message protocols for transferring management information. The
first version of the SNMP message protocol is called SNMPv1 and first version of the SNMP message protocol is called SNMPv1 and
described in RFC 1157 [8]. A second version of the SNMP message described in RFC 1157 [8]. A second version of the SNMP message
protocol, which is not an Internet standards track protocol, is protocol, 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 1906 [10].
The third version of the message protocol is called SNMPv3 and The third version of the message protocol is called SNMPv3 and
described in RFC 1906 [10], RFC 2572 [11] and RFC 2574 [12]. described in RFC 1906 [10], RFC 2572 [11] and RFC 2574 [12].
o Protocol operations for accessing management information. The o Protocol operations for accessing management information. The
skipping to change at page 3, line 5 skipping to change at page 3, line 5
This memo specifies a MIB module that is compliant to the SMIv2. A MIB This memo specifies a MIB module that is compliant to the SMIv2. A MIB
conforming to the SMIv1 can be produced through the appropriate conforming to the SMIv1 can be produced through the appropriate
translations. The resulting translated MIB must be semantically translations. The resulting translated MIB must be semantically
equivalent, except where objects or events are omitted because no equivalent, except where objects or events are omitted because no
translation is possible (use of Counter64). Some machine-readable translation is possible (use of Counter64). Some machine-readable
information in SMIv2 will be converted into textual descriptions in information in SMIv2 will be converted into textual descriptions in
SMIv1 during the translation process. However, this loss of machine SMIv1 during the translation process. However, this loss of machine
readable information is not considered to change the semantics of the readable information is not considered to change the semantics of the
MIB. MIB.
2. Introduction 2. Relationship to other working group documents
2.1. Relationship to the Informal Management Model for Diffserv The working group and related working groups developed other documents,
Router notably the Informal Management Model and the policy configuration
paradigm of SNMPCONF. The relationship between the MIB and those
documents is clarified here.
This MIB is designed according to [MODEL]. The model describes the way 2.1. Relationship to the Informal Management Model for Differentiated
that ingress and egress interfaces of an 'n'-port router are modeled. It Services Router
describes the configuration and management of a Diffserv interface in
terms of one or more Traffic Conditioning Block (TCB), each containing, This MIB is similar in design to [MODEL], although it can be used to
arranged in the specified order, by definition, zero or more build functional data paths that the model would not well describe. The
classifiers, meters, actions, algorithmic droppers, queues and model conceptually describes ingress and egress interfaces of an n-port
schedulers. Traffic may be classified; classified traffic may be router, which may find some interfaces at a network edge and others
metered; each stream of traffic identified by a combination of facing into the network core. It describes the configuration and
classifiers and meters may have some set of actions performed on it; it management of a Differentiated Services interface in terms of one or
may have dropping algorithms applied and it may ultimately be stored more Traffic Conditioning Block (TCB), each containing, arranged in the
into a queue before being scheduled out to its next destination, either specified order, by definition, zero or more classifiers, meters,
onto a link or to another TCB. When the treatment for a given packet actions, algorithmic droppers, queues and schedulers. Traffic may be
must have any of those elements repeated in a way that breaks the classified, and classified traffic may be metered. Each stream of
permitted sequence {classifier, meter, action, algorithmic dropper, traffic identified by a combination of classifiers and meters may have
queue, scheduler}, this must be modeled by cascading multiple TCBs. some set of actions performed on it; it may have dropping algorithms
applied and it may ultimately be stored into a queue before being
scheduled out to its next destination, either onto a link or to another
TCB. At times, the treatment for a given packet must have any of those
elements repeated. [MODEL] models this by cascading multiple TCBs,
while this MIB describes the policy by directly linking the functional
data path elements.
The MIB represents this cascade by following the "Next" attributes of The MIB represents this cascade by following the "Next" attributes of
the various elements. They indicate what the next step in Diffserv the various elements. They indicate what the next step in
processing will be, whether it be a classifier, meter, action, Differentiated Services processing will be, whether it be a classifier,
algorithmic dropper, queue, scheduler or a decision to now forward a meter, action, algorithmic dropper, queue, scheduler or a decision to
packet. now forward a packet.
The MIB models the individual elements that make up the TCBs. The The higher level concept of a TCB is not required in the
higher level concept of a TCB is not required in the parameterization or parameterization or in the linking together of the individual elements,
in the linking together of the individual elements, hence it is not used hence it is not used in the MIB itself and is only mentioned in the text
in the MIB itself and is only mentioned in the text for relating the MIB for relating the MIB with the [MODEL]. Rather, the MIB models the
with the [MODEL]. The actual distinguishing of which TCB a specific individual elements that make up the TCBs.
element is a part of is not needed for the instrumentation of a device
to support the functionality of Diffserv, but it is useful for
conceptual reasons. By not using the TCB concept, this MIB allows any
grouping of elements to construct TCBs using the rules defined by
[MODEL]: that document should be consulted for the allowed combinations
of elements that make up a TCB. This will minimize changes to this MIB
if rules in [MODEL] changes.
The notion of a Data Path is used in this MIB to indicate the Diffserv This MIB uses the notion of a Data Path to indicate the Differentiated
processing a packet may experience. This Data Path is distinguished Services processing a packet may experience. The Data Path a packet
based on the Interface and the Direction of the flow the packet is part will initially follow is an attribute of the interface in question. The
of. A Data Path Table Entry indicates the first of possibly multiple Data Path Start Table provides a starting point for each direction
elements that will apply Diffserv treatment to the packet. (ingress or egress) on each interface. A Data Path Table Entry
indicates the first of possibly multiple elements that will apply
Differentiated Services treatment to the packet.
2.2. Relationship to other MIBs and Policy Management 2.2. Relationship to other MIBs and Policy Management
This MIB provides for direct reporting and manipulation of the most This MIB provides for direct reporting and manipulation of detailed
detailed functional elements described by [MODEL]. These elements are functional elements. These elements consist of a structural element and
designed with their parameterization tables separated from their data one or more parameter-bearing elements. While this can be cumbersome,
path linkage tables, allowing reuse of each table as much as possible. it allows the reuse of parameters. For example, a service provider may
The data path linkage in this MIB is coupled with an interface through offer three varieties of contracts, and configure three parameter
the use of the diffServDataPathTable. The concept of "interface" is as elements. Each such data path on the system may then refer to these
defined by InterfaceIndex/ifIndex of the IETF Interfaces MIB [IFMIB]. sets of parameters. The diffServDataPathTable couples each direction on
each interface with the specified data path linkage. The concept of
"interface" is as defined by InterfaceIndex/ifIndex of the IETF
Interfaces MIB [IFMIB].
Other MIBs and data structure definitions for policy management Other MIBs and data structure definitions for policy management
mechanisms other than SNMP/SMIv2 are likely to exist in the future for mechanisms other than SNMP/SMIv2 are likely to exist in the future for
the purposes of abstracting the model in other ways. the purposes of abstracting the model in other ways.
In particular, abstractions in the direction of less detailed In particular, abstractions in the direction of less detailed
definitions of Diffserv functionality are likely e.g. some form of definitions of Differentiated Services functionality are likely e.g.
"Per-Hop Behavior"-based definition involving a template of detailed some form of "Per-Hop Behavior"-based definition involving a template of
object values which is applied to specific instances of objects in this detailed object values which is applied to specific instances of objects
MIB semi-automatically. in this MIB semi-automatically.
Another possible direction of abstraction is one using a concept of Another possible direction of abstraction is one using a concept of
"roles" (often, but not always, applied to interfaces). In this case, it "roles" (often, but not always, applied to interfaces). In this case,
may be possible to re-use the object definitions in this MIB, especially it may be possible to re-use the object definitions in this MIB,
the parameterization tables. The Data Path table will help in the reuse especially the parameterization tables. The Data Path table will help
of the data path linkage tables by having the interface specific in the reuse of the data path linkage tables by having the interface
information centralized, allowing easier mechanical replacement of specific information centralized, allowing easier mechanical replacement
ifIndex by some sort of "roleIndex". Work is ongoing in this area. of ifIndex by some sort of "roleIndex". This work is ongoing.
2.3. MIB Overview 3. MIB Overview
This MIB is structured based on the need to describe the sequential The Differentiated Services Architecture does not specify how an
Diffserv treatments being applied to a packet, and the parameterization implementation should be assembled. The [MODEL] describes a general
of these treatments. These two requirements are kept separate approach to implementation design, or to user interface design. Its
throughout the design of this MIB, and are fulfilled using separate components could, however, be assembled in a different way. Traffic
tables and data definitions. conforming to a meter might be run through a second meter, for example,
or reclassified.
In this MIB, we model the ingress and egress portions of a Diffserv This MIB models the same functional data path elements, allowing the
network device identically, making the distinction between them an index network manager to assemble them in any fashion that meets the relevant
variable. Each interface then performs some or all of the following policy. These data path elements include Classifiers, Meters, Actions
high-level functions:
o Classify each packet according to some set of rules of various sorts, Queues, and Schedulers.
o Determine whether the packet's data stream is conforming or not In many of these tables, a distinction is drawn between the structure of
conforming to its permitted rates the policy (do this, then do that) and the parameters applied to
specific policy elements. This is to facilitate configuration, if the
MIB is used for that. The concept is that a set of parameters, such as
the values that describe a specific token bucket, might be configured
once and applied to many interfaces.
o Perform a set of resulting actions, possibly including counting the The RowPointer Textual Convention is therefore used in two ways in this
traffic, application of an appropriate drop policy and marking of MIB. It is defined for the purpose of connecting an object to an entry
the traffic with a Differentiated Services Code Point (DSCP) as dynamically; the RowPointer object identifies the first object in the
defined in [DSFIELD]. target Entry, and in so doing points to the entire entry. In this MIB,
it is used as a connector between successive functional data path
elements, and as the link between the policy structure and the
parameters that are used. When used as a connector, it says what
happens "next"; what happens to classified traffic, to traffic
conforming or not conforming to a meter, and so on. When used to
indicate the parameters applied in a policy, it says "specifically" what
is meant; the structure points to the parameters of its policy.
o Enqueue the traffic for output in the appropriate queue, whose The use of RowPointers as connectors allows for the simple extension of
scheduler may shape the traffic or simply forward it with some the MIB. The RowPointers, whether "next" or "specific", may point to
minimum rate or maximum latency. Entries defined in other MIB modules. For example, the only type of
meter defined in this MIB is a token bucket meter; if another type of
meter is required, a proprietary MIB or another standard MIB could be
defined describing that type of meter, and diffServMeterSpecific could
point to it. Similarly, if a new action is required, the "next" pointer
of the previous functional datapath element could point to an Entry
defined in a proprietary MIB or one defined in another standard.
The MIB therefore contains the following elements: 3.1. Processing Path
Data Path Table An interface has an ingress and an egress direction, and will generally
This is the starting point of Diffserv data paths within a single have a different policy in each direction. As traffic enters an edge
Diffserv device. Data paths defined by this table are interface interface, it may be classified, metered, counted, and marked. Traffic
and interface direction specific. leaving the same interface might be remarked according to the contract
with the next network, queued to manage the bandwidth, and so on. As
[MODEL] points out, the functional datapath elements used on ingress and
egress are of the same type, but may be structured in very different
ways to implement the relevant policies.
Classifier and Filter Tables 3.1.1. diffServDataPathTable - The Data Path Table
A general extensible framework and one example of a filter table
(an IP Six-Tuple Multi-Field Classification Table).
Meter Tables Therefore, when traffic arrives at an ingress or egress interface, the
A general extensible framework and one example of a first step in applying the policy is determining what policy applies.
parameterization table - TBMeter table, applicable for Simple Token This MIB does that by providing a table of pointers to the first
Bucket Meter, Average Rate Meter, Single Rate Three Color Meter, functional data path element, indexed by interface and direction on that
Two Rate Three Color Meter, and Sliding Window Three Color Meter. interface. The content of the diffServDataPathEntry is a single
RowPointer, which points to that functional data path element.
Action Tables When diffServDataPathStart in a direction on an interface is undefined
A general extensible framework and examples of parameterization or is set to zeroDotZero, the implication is that there is no specific
tables for Absolute Drop, Mark and Count actions. The policy to apply; the manufacturer's default is used.
"multiplexer" and "null" actions described in [MODEL] are
accomplished implicitly by means of the RowPointer structures of
the other elements.
Queue, Scheduler and Algorithmic Dropper Tables 3.2. Classifier
A general extensible framework for parameterizing queuing and
scheduler systems. The queue measurement dependent algorithmic
droppers are also described here.
3. Structure of this MIB Classifiers are used to differentiate among types of traffic. In the
Differentiated Services architecture, one usually discusses a behavior
aggregate identified by the application of one or more Differentiated
Services Code Points (DSCPs). However, especially at network edges
(which include hosts and first hop routers serving hosts), traffic may
arrive unmarked or the marks may not be trusted. In these cases, one
applies a Multi-Field Classifier, which may select an aggregate as
coarse as "all traffic", as fine as a specific microflow identified by
IP Addresses, IP Protocol, and TCP/UDP ports, or variety of slice in
between.
This MIB is structured with separate tables for purpose of Diffserv data Classifiers can be simple or complex. In a core interface, one would
path description and Diffserv treatment parameterization of the Diffserv expect to find simple behavior aggregate classification to be used.
device. The data path description and/or the treatment parameterization However, in an edge interface, one might first ask what application is
tables can each be reused independently, allowing the flexibility to being used, meter the arriving traffic, and then apply various policies
maintain a common data construct for Diffserv device configuration and to the non-conforming traffic depending on the Autonomous System number
provisioning, independent of the configuration method used. The advertising the destination address. To accomplish such a thing,
definitions in this MIB are intended to be reusable by other future traffic must be classified, metered, and then reclassified. To this
end, the MIB defines separate classifiers, which may be applied at any
point in processing, and may have different content as needed.
standards. The treatment parameters can also be reused by other IP The MIB also allows for ambiguous classification in a structured
based technologies. For example, IP packet filtering parameters most fashion. In the end, traffic classification must be unambiguous; we
likely can be reused by other IP based technologies that rely on packet must know for certain what policy to apply to any given packet.
classification. However, writing an unambiguous specification is often tedious, while
writing a specification in steps that permits and excludes various kinds
of traffic may be simpler and more intuitive. In such a case, the
classification "steps" are enumerated; all classification elements of
one precedence are applied as if in parallel, and then all
classification elements of the next precedence.
3.1. Diffserv Data Paths This MIB defines a single classifier parameter entry, the Six-Tuple
Classifier. A degenerate case of this multi-field classifier is a
Behavior Aggregate classifier. Other classifiers may be defined in
other MIB modules, to select traffic from a given layer two neighbor or
a given interface, traffic whose addresses belong to a given BGP
Community or Autonomous System, and so on.
This part of the MIB provides instrumentation for connecting the 3.2.1. diffServClfrElementTable - The Classifier Element Table
Diffserv Functional Data path Elements within a single Diffserv device.
Please refer to the [MODEL] for discussions on the valid sequencing and
grouping of Diffserv Functional Data path Elements. Given some basic
information, e.g. ifIndex and interface direction, the first Diffserv
Functional Data path Element applied to a given packet on a given
interface is determined. Subsequent Diffserv Functional Elements are
provided by the "Next" pointer attribute of each entry of data path
tables. Description of how this "Next" pointer is used in each table is
provided in their respective DESCRIPTION clause.
3.1.1. Data Path Table A classifier consists of classifier elements. A classifier element
identifies a specific set of traffic that forms part of a behavior
aggregate; other classifier elements within the same classifier may
identify other traffic that also falls into the behavior aggregate. For
example, in identifying AF traffic for the aggregate AF1, one might
implement separate classifier elements for AF11, AF12, and AF13 within
the same classifier and pointing to the same subsequent meter.
Entries in the Data Path Table provide the Diffserv treatment starting Generally, one would expect Data Path Entry to point to a classifier
points for all packets of Diffserv interfaces on this device. Not all (which is to say, the first of a set of one or more classifier
interfaces on this device need to be Diffserv interfaces, hence not all elements), although it may point to something else when appropriate.
entries in the ifTable need to have corresponding entries in the Data Reclassification in a functional data path is achieved by pointing to
Path Table. Each entry in this table is indexed by ifIndex and the another Classifier Entry when appropriate.
direction of the packet flow. There should be at most two entries for
each interface, one for ingress and one for egress. Each entry provides
the first Diffserv Functional Data path Element each packet at a
specific interface traveling a specific relative direction should
experience. NOTE: this table is interface specific, with the use of
ifIndex. Entries may be created with zeroDotZero in the
diffServDataPathStart attribute to indicate that there are no further
diffserv elements in that data path. For example, a classifier that
should never match anything but is present to debug or detect traffic
might use this, although one could argue that it should transit to a
dropper. The non-existence of any Diffserv treatment on an
interface/direction is indicated implicitly by having no corresponding
entry in this table. This means allowing normal IP device processing
when zeroDotZero is used in the diffServDataPathStart attribute, or when
the entry does not exist. Normal IP device processing will depend on
the device, for example, this can be forwarding the packet.
3.2. Classifiers A classifier element is a structural element, indexed by classifier ID
and element ID. It has a precedence value, allowing for structured
ambiguity as described above, a "specific" pointer that identifies what
rule is to be applied, and a "next" pointer directing traffic matching
the classifier to the next functional data path element. If the "next"
pointer is zeroDotZero, the indication is that there is no further
differentiated services processing for this behavior aggregate. If the
"specific" pointer is zeroDotZero, however, the device is misconfigured.
In such a case, the classifier element should be operationally treated
as if it were not present.
The classifier, classifier element, and filter tables determine how When the MIB is used for configuration, diffServClfrNextFree always
traffic is sorted out. They identify separable classes of traffic, by contains a legal value for diffServClfrId that is not currently used in
reference to an appropriate filter, which may select anything from an the system's configuration. The Network Management Application reads
the variable and uses the value read in a create-and-go or a create-
and-wait SET. When the SET is performed, the agent must determine
whether the value is indeed still unused; two network managers may
attempt to create a configuration entry simultaneously and use the same
value. If it is currently unused, the SET succeeds and the agent
changes the value of diffServClfrNextFree according to an agent-specific
algorithm. If the value is in use, however, the SET fails. The network
manager must re-read diffServClfrNextFree to obtain a useful value.
individual micro-flow to aggregates identified by DSCP. Likewise, when the MIB is used for configuration,
diffServClfrElementNextFree always contains a legal value for
diffServClfrElementClfrId that is not currently used in the system's
configuration. The Network Management Application reads the variable
and uses the value read in a create-and-go or a create-and-wait SET.
When the SET is performed, the agent must determine whether the value is
indeed still unused; two network managers may attempt to create a
configuration entry simultaneously and use the same value. If it is
currently unused, the SET succeeds and the agent changes the value of
diffServClfrElementNextFree according to an agent-specific algorithm.
If the value is in use, however, the SET fails. The network manager
must re-read diffServClfrElementNextFree to obtain a useful value.
The classification is used to send these separate streams to appropriate 3.2.2. diffServSixTupleClfrTable - The Six-Tuple Classifier Table
Meter, Action, Algorithmic Dropper, Queue, and Scheduler elements. For
example, sub-classes of traffic may be sent to different meter stages:
e.g. in an 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 concept of a classifier is the same as described in [MODEL]. The This MIB defines a single parameter type for classification, the Six-
structure of the classifier and classifier element tables, is the same Tuple Classifier. As a parameter, a filter may be specified once and
as the classifier described in [MODEL]. Within each classifier, it must applied to many interfaces, using diffServClfrElementSpecific. This
not be important in which order the filters are applied. This is to classifier matches:
facilitate optimized implementations such as index trees. Precedence is
used only to resolve ambiguity, as described in [MODEL]. Filter with
higher values of precedence are compared first; the order of tests for
entries of the same precedence is unimportant.
A data path may consist of more than one classifier. There may be o IP source address prefix, including host, CIDR Prefix, and "any
overlap of filter specification between filters of different source address"
classifiers. The first classifier functional data path element
encountered, as determined by the sequencing of diffserv functional data
path elements, will be used first.
An important form of classification is "everything else": the final o IP destination address prefix, including host, CIDR Prefix, and
stage of the classifier i.e. the one with the lowest order, must be "any destination address"
"complete" since the result of an incomplete classifier is not
necessarily deterministic - see [MODEL] section 4.1.2.
The definition of the actual filter to be used by the classifier is o IP protocol or "any"
referenced via a RowPointer: this enables the use of any sort of filter
table that one might wish to design, standard or proprietary. The filter
table may be, but does not need to be, defined in this MIB module.
Classifiers, used in various ingress and egress interfaces, are o TCP/UDP/SCTP source port range, including "any"
organized by the classifier table. Each classifier will isolate a number
of classes of traffic, identified by various kinds of filters. To
enumerate this, we define the classifier table, the classifier element
table, and the filter table. A data path entry points to a classifier
entry. A classifier entry identifies a list of classifier elements. A
classifier element effectively includes the filter entry, and points to
a "next" classifier entry or other data path functional element. There
are potentially many types of filters, only one of which is specified in
this MIB Module.
3.2.1. Classifier Table o TCP/UDP/SCTP destination port range, including "any"
The classifier table, therefore, identifies the classifiers that are o Differentiated Services Code Point
used in various interfaces. It organizes the list of classifier elements
that identify the various classes.
3.2.2. Classifier Element Table In that ranges or "any" are defined in each case, clearly a wide variety
of filters can be constructed. The Differentiated Services Behavior
Aggregate filter is a special case of this filter.
Classifier elements point to the filters which identify various classes Other MIB modules may define similar filters in the same way. For
of traffic. The separation between the "classifier element" and the example, a filter for Ethernet information might define source and
"filter" allows us to use many different kinds of filters with the same destination MAC addresses of "any", Ethernet Packet Type, IEEE 802.2
essential semantics of "an identified set of traffic". The traffic SAPs, and IEEE 802.1 priorities. A filter related to policy routing
matching the filter corresponding to a classifier element is given to might be structured like the diffServSixTupleClfrTable, but containing
the "next" data path functional element identified in the classifier the BGP Communities of the source and destination prefix rather than the
element. prefix itself, meaning "any prefix in this community". For such a
filter, a table similar to diffServSixTupleClfrTable is constructed, and
3.2.3. Filter Table - IP Six-Tuple Classifier Table diffServClfrElementSpecific configured to point to it.
This MIB includes one Filter Table, a definition for an IP Six-Tuple When the MIB is used for configuration, diffServSixTupleClfrNextFree
Classifier, used for IP traffic classification. Entries in this filter always contains a legal value for diffServSixTupleClfrId that is not
table are referenced from the RowPointer diffServClfrElementSpecific currently used in the system's configuration. The Network Management
attributes of classifier element table entries. Application reads the variable and uses the value read in a create-
and-go or a create-and-wait SET. When the SET is performed, the agent
must determine whether the value is indeed still unused; two network
managers may attempt to create a configuration entry simultaneously and
use the same value. If it is currently unused, the SET succeeds and the
agent changes the value of diffServSixTupleClfrNextFree according to an
agent-specific algorithm. If the value is in use, however, the SET
fails. The network manager must re-read diffServSixTupleClfrNextFree to
obtain a useful value.
For example, a Behavior Aggregate (BA) Classifier, acting only on DSCPs, 3.3. Metering Traffic
is a simple form of the IP Six-Tuple Classifier. It is represented by
having the diffServSixTupleClfrDscp attribute set to the desired DSCP
and all other classification attributes set to match-all, their default
settings.
Each entry in the IP Six-Tuple Classifier Table defines a single filter. As discussed in [MODEL], a "meter" and a "shaper" are functions that
The textual convention of InetAddress [INETADDR] is used for both IPv4 operate on opposing ends of a link. A shaper schedules traffic for
and IPv6 addressing. The use of IP Six-Tuple Classifiers is discussed transmission at specific times in order to approximate a particular line
in [DSARCH] and abstract examples of how they might be configured are speed or combination of line speeds. In its simplest form, if the
provided in [MODEL]. traffic stream contains constant sized packet, it might transmit one
packet per unit time to build the equivalent of a CBR circuit. However,
various factors intervene to make the approximation inexact; multiple
classes of traffic may occasionally schedule their traffic and the same
time, the variable length nature of IP traffic may introduce variation,
and factors in the link or physical layer may change traffic timing. A
"meter" integrates the arrival rate of traffic and determines whether
the shaper at the far end was correctly applied, or whether the behavior
of the application in question is naturally close enough to such
behavior to be acceptable under a given contract.
3.3. Meters A common type of meter is a Token Bucket meter, such as [SRTCM] or
[TRTCM]. This type of meter assumes the use of a shaper at a previous
node; applications which send at a constant rate when sending may
conform if the token bucket is properly specified. It specifies the
acceptable arrival rate and quantifies the acceptable variability, often
by specifying a burst size or an interval; since rate = quantity/time,
specifying any two of those parameters implies the third, and a large
interval provides for a forgiving system. Multiple rates may be
specified, as in AF, such that a subset of the traffic (up to one rate)
is accepted with one set of guarantees, and traffic in excess of that
but below another rate has a different set of guarantees. Other types
of meters exist as well.
A meter, according to [MODEL] section 5, measures the rate at which One use of a meter is when a service provider sells at most a certain
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. It is important to understand that this way of
modeling does not imply anything about the implementation being
"sequential": multi-rate/multi-profile meters e.g. those designed to bit rate to one of its customers, and wants to drop the excess. In such
support [SRTCM], [TRTCM], or [TSWTCM] can still be modeled this way even a case, the fractal nature of normal Internet traffic must be reflected
if they, of necessity, share information between the stages: the stages in large burst intervals, as TCP frequently sends packet pairs or larger
are introduced merely as a notational convenience in order to simplify bursts, and responds poorly when more than one packet in a round trip
the MIB structure. interval is dropped. Applications like FTP contain the effect by simply
staying below the target bit rate; this type of configuration very
adversely affects transaction applications like HTTP, however. Another
use of a meter is in the AF specification, in which excess traffic is
marked with a related DSCP and subjected to slightly more active queue
depth management. The application is not sharply limited to a
contracted rate in such a case, but can be readily contained should its
traffic create a burden.
3.3.1. Meter Table 3.3.1. diffServMeterTable - The Meter Table
The generic meter table is used as a base for all more specific forms of The Meter Table is a structural table, specifying a specific functional
meter. The definition of parameters specific to the type of meter used data path element. Its entry consists essentially of three RowPointers
is referenced via a pointer to a table containing those specifics. This - a "succeed" pointer, for traffic conforming to the meter, a "fail"
enables the use of any sort of specific meter table that one might wish pointer, for traffic not conforming, and a "specific" pointer, to
to design, standard or proprietary. The specific meter table may be, but identify the parameters in question. This structure is a bow to SNMP's
does not need to be, defined in this MIB module. limitations; it would be better to have a structure with N rates and N+1
"next" pointers, with a single algorithm specified. In this case,
multiple meter entries connected by the "fail" link are understood to
contain the parameters for a specified algorithm, and traffic conforming
to a given rate follows their "succeed" paths. Within this MIB, only
Token Bucket parameters are specified; other varieties of meters may be
designed in other MIB modules.
3.3.2. Token-Bucket Meter Table When the MIB is used for configuration, diffServMeterNextFree always
contains a legal value for diffServMeterId that is not currently used in
the system's configuration. The Network Management Application reads
the variable and uses the value read in a create-and-go or a create-
and-wait SET. When the SET is performed, the agent must determine
whether the value is indeed still unused; two network managers may
attempt to create a configuration entry simultaneously and use the same
value. If it is currently unused, the SET succeeds and the agent
changes the value of diffServMeterNextFree according to an agent-
specific algorithm. If the value is in use, however, the SET fails.
The network manager must re-read diffServMeterNextFree to obtain a
useful value.
This is included as an example of a common type of meter. Entries in 3.3.2. diffServTBParamTable - The Token Bucket Parameters Table
this table are referenced from the RowPointer diffServMeterSpecific
attributes of meter table entries. The parameters are represented by a
rate diffServTBMeterRate, a burst size diffServTBMeterBurstSize, and an
interval diffServTBMeterInterval. How these parameters are used depends
on the type of meter being parameterized, this is provided by the
diffServTBMeterType attribute. Additional meter parameterization tables
can be defined in other MIBs when necessary.
3.4. Actions The Token Bucket Parameters Table is a set of parameters that define a
Token Bucket Meter. As a parameter, a token bucket may be specified
Actions include "no action", "mark the traffic with a DSCP", "drop the once and applied to many interfaces, using diffServMeterSpecific.
traffic" or "count it". Other tasks such as "shape the traffic" or "drop Specifically, several modes of [SRTCM] and [TRTCM] are addressed. Other
based on some algorithm" are handled elsewhere as queuing mechanisms, varieties of meters may be specified in other MIB modules.
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.
This MIB uses the Action Table diffServActionTable to organize one In general, if a Token Bucket has N rates, it has N+1 potential outcomes
Action's relationship with the element(s) before and after it. It allows - the traffic stream is slower than and therefore conforms to all of the
Actions to be cascaded to enable multiple Actions be applied to a single rates, it fails the first few but is slower than and therefore conforms
traffic stream by using each entry's diffServActionNext attribute. The to the higher rates, or it fails all of them. As such, multi-rate
diffServActionNext attribute of the last action entry in the chain meters should specify those rates in montonically increasing order,
points to the next element in the TCB, if any, e.g. a Queuing element. passing through the diffServMeterFailNext from more committed to more
It may also point at a next TCB. excess rates, and finally falling through diffServMeterFailNext to the
set of actions that apply to traffic which conforms to none of the
specified rates. DiffServTBParamType in the first entry indicates the
algorithm being used. At each rate, diffServTBParamRate is derivable
from diffServTBParamBurstSize and diffServTBParamInterval; a superior
implementation will allow the configuration of any two of
diffServTBParamRate, diffServTBParamBurstSize, and
diffServTBParamInterval, and respond "badValue" if all three are
specified but are not mathematically related.
The parameters needed for each Action element will depend on the type of When the MIB is used for configuration, diffServTBParamNextFree always
Action to be taken. Hence there are specific Action Tables for all the contains a legal value for diffServTBParamId that is not currently used
different Action types. This flexibility allows additional Actions be in the system's configuration. The Network Management Application reads
specified in future revisions of this MIB, or in other MIBs and also the variable and uses the value read in a create- and-go or a create-
and-wait SET. When the SET is performed, the agent must determine
whether the value is indeed still unused; two network managers may
attempt to create a configuration entry simultaneously and use the same
value. If it is currently unused, the SET succeeds and the agent
changes the value of diffServTBParamNextFree according to an agent-
specific algorithm. If the value is in use, however, the SET fails.
The network manager must re-read diffServTBParamNextFree to obtain a
useful value.
allows for the use of proprietary Actions without impact on those 3.4. Actions applied to packets
defined here.
3.4.1. DSCP Mark Action Table "Actions" are the things a differentiated services interface PHB may do
to a packet in transit. At minimum, such a policy might calculate
statistics on traffic in various configured classes, mark it with a
DSCP, drop it, or enqueue it before passing it on for other processing.
This Action is applied to traffic in order to mark it with a Diffserv Actions are composed of a structural element, the diffServActionTable,
Codepoint (DSCP) value, specified in the diffServDscpMarkActTable. Other and various component action entries that may be applied. In the case
marking actions might be specified elsewhere - these are outside the of the Algorithmic Dropper, an additional parameter table may be
scope of this MIB. specified to control Active Queue Management, as defined in [RED93] and
other AQM specifications.
3.4.2. Count Action Table 3.4.1. diffServActionTable - The Action Table
Count Actions are used to count the traffic passing along a particular The action table identifies sequences of actions to be applied to a
path through the model. If specified, they are likely to be placed packet. Successive actions are chained through diffServActionNext,
first, before other types of Action. For example, when both a Count and ultimately terminating in zeroDotZero (indicating that the policy is
an Absolute Dropper Action are specified, the Count Action needs to complete), a pointer to a queue, or a pointer to some other functional
count the traffic stream before any traffic gets dropped. Note that data path element.
there are counters contained directly in Algorithmic Dropper elements to
indicate the amount of traffic dropped by those elements.
Since count actions are defined in this way, they are inherently When the MIB is used for configuration, diffServActionNextFree always
optional. However, the management information necessary to demonstrate contains a legal value for diffServActionId that is not currently used
SLA compliance or non-compliance is not available from any other source. in the system's configuration. The Network Management Application reads
Therefore, practically, count actions may be expected to be included in the variable and uses the value read in a create- and-go or a create-
each set of actions that a network manager configures. and-wait SET. When the SET is performed, the agent must determine
whether the value is indeed still unused; two network managers may
attempt to create a configuration entry simultaneously and use the same
value. If it is currently unused, the SET succeeds and the agent
changes the value of diffServActionNextFree according to an agent-
specific algorithm. If the value is in use, however, the SET fails.
The network manager must re-read diffServActionNextFree to obtain a
useful value.
Counters are arranged in a single table but with separate conformance 3.4.2. diffServCountActTable - The Count Action Table
statements for low-speed and high-speed interfaces, consistent with
[IFMIB].
3.4.3. Absolute Drop Action The count action accumulates statistics pertaining to traffic passing
through a given path through the policy. It is intended to be useful
for usage-based billing, for statistical studies, or for analysis of the
behavior of a policy in a given network. The objects in the Count
Action are various counters and a discontinuity time. The counters
display the number of packets and bytes encountered on the path since
the discontinuity time. They share the same discontinuity time.
This action just silently discards all traffic presented to it, without The designers of this MIB expect that every path through a policy should
counting it. This action has no additional parameters and so is have a corresponding counter. In early versions, it was impossible to
represented only within diffServActionType without its specific table. configure an action without implementing a counter, although the current
design makes them in effect the network manager's option, as a result of
making actions consistent in structure and extensible. The assurance of
proper debug and accounting is therefore left with the policy designer.
3.5. Queuing Elements When the MIB is used for configuration, diffServCountActNextFree always
contains a legal value for diffServCountActId that is not currently used
in the system's configuration. The Network Management Application reads
the variable and uses the value read in a create- and-go or a create-
and-wait SET. When the SET is performed, the agent must determine
whether the value is indeed still unused; two network managers may
attempt to create a configuration entry simultaneously and use the same
value. If it is currently unused, the SET succeeds and the agent
These include Algorithmic Droppers, Queues and Schedulers which are all changes the value of diffServCountActNextFree according to an agent-
inter-related in their use of queuing techniques. specific algorithm. If the value is in use, however, the SET fails.
The network manager must re-read diffServCountActNextFree to obtain a
useful value.
3.5.1. Algorithmic Dropper Table 3.4.3. diffServDscpMarkActTable - The Mark Action Table
Algorithmic Droppers are represented in this MIB by entries in an The Mark Action table is an unusual table, both in SNMP and in this MIB.
Algorithmic Dropper Table. An Algorithmic Dropper is assumed to operate I might be viewed not so much as an array of single-object entries as an
indiscriminately on all packets that are presented at its input, all array of OBJECT-IDENTIFIER conventions, as the OID for a
traffic separation should be done by classifiers and meters preceding diffServDscpMarkActDscp instance conveys all of the necessary
information: packets are to be marked with the requisite DSCP.
it. As such, contrary to common practice, the index for the table is read-
only, and is both the Entry's index and its only value.
Algorithmic Droppers have a close relationship with queuing, each 3.4.4. diffServAlgDropTable - The Algorithmic Drop Table
Algorithmic Dropper Table entry contains a diffServAlgDropQMeasure
attribute, indicating which queue's state affects the calculation of the
Algorithmic Dropper. Each entry also contains a diffServAlgDropNext
attribute which indicates to which queue the Algorithmic Dropper sinks
its traffic.
Algorithmic Droppers may also contain a pointer to specific detail of The Algorithmic Drop Table identifies a dropping algorithm, drops
the drop algorithm, diffServAlgDropSpecific. This MIB defines the detail packets, and counts the drops. Classified as an action, it is in effect
for three drop algorithms: Tail Drop, Head Drop and Random Drop; other a method which applies a packet to a queue, and may modify either. When
algorithms are outside the scope of this MIB module but the general the algorithm is "always drop", this is simple; when the algorithm calls
framework is intended to allow for their inclusion via other MIB for head-drop, tail-drop, or a variety of Active Queue Management, the
modules. queue is inspected, and in the case of Active Queue Management,
additional parameters are required.
One generally-applicable parameter of a dropper is the specification of What may not be clear from the name is that an Algorithmic Drop action
a queue-depth threshold at which some drop action is to start. This is often does not drop traffic. Algorithms other than "always drop"
represented in this MIB, as a base attribute, diffServAlgDropQThreshold, normally drop a few percent of packets at most. The action inspects the
of the Algorithmic Dropper entry. The attribute, diffServQEntry that diffSeervAlgQMeasure points to in to determine
diffServAlgDropQMeasure, specifies which queue's depth whether the packet should be dropped.
diffServAlgDropQThreshold is to compare against.
o A Tail Dropper requires the specification of a maximum queue depth When the MIB is used for configuration, diffServAlgDropNextFree always
threshold: when the queue pointed at by diffServAlgDropQMeasure contains a legal value for diffServAlgDropId that is not currently used
reaches that depth threshold, diffServAlgDropQThresh, any new in the system's configuration. The Network Management Application reads
traffic arriving at the dropper is discarded. This algorithm uses the variable and uses the value read in a create- and-go or a create-
only parameters that are part of the diffServAlgDropEntry. and-wait SET. When the SET is performed, the agent must determine
whether the value is indeed still unused; two network managers may
attempt to create a configuration entry simultaneously and use the same
value. If it is currently unused, the SET succeeds and the agent
changes the value of diffServAlgDropNextFree according to an agent-
specific algorithm. If the value is in use, however, the SET fails.
The network manager must re-read diffServAlgDropNextFree to obtain a
useful value.
o A Head Dropper requires the specification of a maximum queue depth 3.4.5. diffServRandomDropTable - The Random Drop Parameters Table
threshold: when the queue pointed at by diffServAlgDropQMeasure
reaches that depth threshold, diffServAlgDropQThresh, traffic
currently at the head of the queue is discarded. This algorithm
uses only parameters that are part of the diffServAlgDropEntry.
o Random Droppers are recommended as a way to control congestion, in The Random Drop Table is an extension of the Algorithmic Drop Table
[QUEUEMGMT] and called for in the [AF-PHB]. Various implementations intended for use on queues whose depth is actively managed. Active
exist, which agree on marking or dropping just enough traffic to Queue Management algorithms are typified by [RED93], but the parameters
communicate with TCP-like protocols about congestion avoidance, but they use vary. It was deemed for the purposes of this MIB that the
differ markedly on their specific parameters. This MIB attempts to proper values to represent include:
offer a minimal set of controls for any random dropper, but expects
that vendors will augment the table with additional controls and
status in accordance with their implementation. This algorithm
requires additional parameters on top of those in
diffServAlgDropEntry: these are discussed below.
3.5.2. Random Dropper Table o Target case mean queue depth, expressed in bytes or packets
One example of a random dropper is a RED-like dropper. An example of the o Worst case mean queue depth, expressed in bytes or packets
representation chosen in this MIB for this element is shown in Figure 1.
o Maximum drop rate expressed as drops per thousand
o Coefficient of an exponentially weighted moving average,
expressed as the numerator of a fraction whose denominator is
65536.
o Sampling rate
An example of the representation chosen in this MIB for this element is
shown in Figure 1.
Random droppers often have their drop probability function described as Random droppers often have their drop probability function described as
a plot of drop probability (P) against averaged queue length (Q). a plot of drop probability (P) against averaged queue length (Q).
(Qmin,Pmin) then defines the start of the characteristic plot. Normally (Qmin,Pmin) then defines the start of the characteristic plot. Normally
Pmin=0, meaning with average queue length below Qmin, there will be no Pmin=0, meaning with average queue length below Qmin, there will be no
drops. (Qmax,Pmax) defines a "knee" on the plot, after which point the drops. (Qmax,Pmax) defines a "knee" on the plot, after which point the
drop probability become more progressive (greater slope). (Qclip,1) drop probability become more progressive (greater slope). (Qclip,1)
defines the queue length at which all packets will be dropped. Notice defines the queue length at which all packets will be dropped. Notice
this is different from Tail Drop because this uses an averaged queue this is different from Tail Drop because this uses an averaged queue
length. Although it is possible for Qclip = Qmax.
In the MIB module, diffServRandomDropMinThreshBytes and
diffServRandomDropMinThreshPkts represent Qmin.
diffServRandomDropMaxThreshBytes and diffServRandomDropMaxThreshPkts
represent Qmax. diffServAlgDropQThreshold represents Qclip.
diffServRandomDropInvProbMax represents Pmax (inverse). This MIB does
not represent Pmin (assumed to be zero unless otherwise represented).
In addition, since message memory is finite, queues generally have some
upper bound above which they are incapable of storing additional
traffic. Normally this number is equal to Qclip, specified by
diffServeAlgDropQThreshold.
Each random dropper specification is associated with a queue. This
allows multiple drop processes (of same or different types) to be
associated with the same queue, as different PHB implementations may
require. This also allows for sequences of multiple droppers if
AlgDrop Queue AlgDrop Queue
+-----------------+ +-------+ +-----------------+ +-------+
--->| Next ---------+--+------------------->| Next -+--> ... --->| Next ---------+--+------------------->| Next -+--> ...
| QMeasure -------+--+ | ... | | QMeasure -------+--+ | ... |
| QThreshold | RandomDrop +-------+ | QThreshold | RandomDrop +-------+
| Type=randomDrop | +----------------+ | Type=randomDrop | +----------------+
| Specific -------+---->| MinThreshBytes | | Specific -------+---->| MinThreshBytes |
+-----------------+ | MaxThreshBytes | +-----------------+ | MaxThreshBytes |
| InvProbMax | | ProbMax |
| InvWeight | | Weight |
| SamplingRate | | SamplingRate |
+----------------+ +----------------+
Figure 1: Example Use of the RandomDropTable for Random Droppers length, although it is possible for Qclip to equal Qmax.
In the MIB module, DiffServRandomDropMinThreshBytes and
DiffServRandomDropMinThreshPkts represent Qmin.
DiffServRandomDropMaxThreshBytes and DiffServRandomDropMaxThreshPkts
represent Qmax. DiffServAlgDropQThreshold represents Qclip.
DiffServRandomDropInvProbMax represents Pmax (inverse). This MIB does
not represent Pmin (assumed to be zero unless otherwise represented).
In addition, since message memory is finite, queues generally have some
upper bound above which they are incapable of storing additional
traffic. Normally this number is equal to Qclip, specified by
diffServAlgDropQThreshold.
Each random dropper specification is associated with a queue. This
allows multiple drop processes (of same or different types) to be
associated with the same queue, as different PHB implementations may
require. This also allows for sequences of multiple droppers if
necessary. necessary.
The calculation of a smoothed queue length may also have an important The calculation of a smoothed queue length may also have an important
bearing on the behavior of the dropper: parameters may include the bearing on the behavior of the dropper: parameters may include the
sampling interval or rate, and the weight of each sample. The sampling interval or rate, and the weight of each sample. The
performance may be very sensitive to the values of these parameters and 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 a wide range of possible values may be required due to a wide range of
link speeds. Most algorithms include a sample weight, represented here link speeds. Most algorithms include a sample weight, represented here
by diffServRandomDropInvWeight. The availability of by DiffServRandomDropInvWeight. The availability of
diffServRandomDropSamplingRate as readable is important, the information DiffServRandomDropSamplingRate as readable is important, the information
provided by Sampling Rate is essential to the configuration of provided by Sampling Rate is essential to the configuration of
diffServRandomDropInvWeight. Having Sampling Rate be configurable is DiffServRandomDropInvWeight. Having Sampling Rate be configurable is
also helpful, as line speed increases, the ability to have queue also helpful, as line speed increases, the ability to have queue
sampling be less frequent than packet arrival is needed. Note however sampling be less frequent than packet arrival is needed. Note, however,
that there is ongoing research on this topic, see e.g. [ACTQMGMT] and that there is ongoing research on this topic, see e.g. [ACTQMGMT] and
[AQMROUTER]. [AQMROUTER].
Additional parameters may be added in an enterprise MIB module, e.g. by Additional parameters may be added in an enterprise MIB module, e.g. by
using AUGMENTS on this table, to handle aspects of random drop using AUGMENTS on this table, to handle aspects of random drop
algorithms that are not standardized here. algorithms that are not standardized here.
NOTE: Deterministic Droppers can be viewed as a special case of Random When the MIB is used for configuration, diffServRandomDropNextFree
Droppers with the drop probability restricted to 0 and 1. Hence always contains a legal value for diffServRandomDropId that is not
Deterministic Droppers might be described by a Random Dropper with Pmin currently used in the system's configuration. The Network Management
= 0, Pmax = 1, Qmin = Qmax = Qclip, the averaged queue length at which Application reads the variable and uses the value read in a create-
dropping occurs. and-go or a create-and-wait SET. When the SET is performed, the agent
must determine whether the value is indeed still unused; two network
managers may attempt to create a configuration entry simultaneously and
use the same value. If it is currently unused, the SET succeeds and the
agent changes the value of diffServRandomDropNextFree according to an
3.5.3. Queues and Schedulers agent-specific algorithm. If the value is in use, however, the SET
fails. The network manager must re-read diffServRandomDropNextFree to
obtain a useful value.
The Queue Table models simple FIFO queues, as described in [MODEL] 3.5. Queuing and Scheduling of Packets
section 7.1.1. The Scheduler Table allows flexibility in constructing
both simple and somewhat more complex queuing hierarchies from those These include Queues and Schedulers, which are inter-related in their
queues. Of course, since TCBs can be cascaded multiple times on an use of queuing techniques. By doing so, it is possible to build multi-
interface, even more complex hierarchies can be constructed that way level schedulers, such as those which treat a set of queues as having
also. priority among them, and at a specific priority find a secondary WFQ
scheduler with some number of queues.
3.5.1. diffServQTable - The Class or Queue Table
The Queue Table models simple FIFO queues. The Scheduler Table allows
flexibility in constructing both simple and somewhat more complex
queuing hierarchies from those queues.
Queue Table entries are pointed at by the "next" attributes of the Queue Table entries are pointed at by the "next" attributes of the
upstream elements e.g. diffServMeterSucceedNext. Note that multiple upstream elements, such as DiffServMeterSucceedNext or
upstream elements may direct their traffic to the same Queue Table diffServActionNext. Note that multiple upstream elements may direct
entry. For example, the Assured Forwarding PHB suggests that all traffic their traffic to the same Queue Table entry. For example, the Assured
marked AF11, AF12 or AF13 be placed in the same queue, after metering, Forwarding PHB suggests that all traffic marked AF11, AF12 or AF13 be
without reordering. This would be represented by having the placed in the same queue, after metering, without reordering. To
diffServMeterSucceedNext of each upstream meter point at the same entry accomplish that, the upstream diffServAlgDropNext pointers each point to
in the Queue Table. the same diffServQEntry.
NOTE: Queue Table and Scheduler Table entries are for data path A common requirement of a queue is that its traffic enjoy a certain
description, they both uses Scheduler Parameterization Table entries for minimum or maximum rate, or that it be given a certain priority.
Functionally, the selection of such is a function of a scheduler, as in
Section .sh 4 "The parameter is associated with the queue, however,
using the Assured or Shaping Rate Parameters Table.
diffserv treatment parameterization. When the MIB is used for configuration, diffServQNextFree always
contains a legal value for diffServQId that is not currently used in the
system's configuration. The Network Management Application reads the
variable and uses the value read in a create-and-go or a create- and-
wait SET. When the SET is performed, the agent must determine whether
the value is indeed still unused; two network managers may attempt to
create a configuration entry simultaneously and use the same value. If
it is currently unused, the SET succeeds and the agent changes the value
of diffServQNextFree according to an agent- specific algorithm. If the
value is in use, however, the SET fails. The network manager must re-
read diffServQNextFree to obtain a useful value.
Queue Table entries specify the scheduler it wants service from by use 3.5.2. diffServSchedulerTable - The Scheduler Table
of its Next pointer.
Each Scheduler Table entry represents the algorithm in use for servicing The scheduler, and therefore the Scheduler Table, accepts inputs from
the one or more queues that feed it. The [MODEL] section 7.1.2 describes either queues or a preceding scheduler. The Scheduler Table allows
a scheduler with multiple inputs: this is represented in the MIB by flexibility in constructing both simple and somewhat more complex
having the scheduling parameters be associated with each input. In this queuing hierarchies from those queues.
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]. More complex queuing and scheduling
structures are possible using the tables defined in this MIB. When
necessary, more complex constructs may be created outside of this MIB.
Scheduler Parameter Table entries are used to parameterize each input When the MIB is used for configuration, diffServSchedulerNextFree always
that feeds into a scheduler. The inputs can be a mixture of Queue Table contains a legal value for diffServSchedulerId that is not currently
and Scheduler Table entries. Scheduler Parameter Table entries can be used in the system's configuration. The Network Management Application
used/reused by one or more Queue and/or Scheduler Table entries. reads the variable and uses the value read in a create- and-go or a
create-and-wait SET. When the SET is performed, the agent must
determine whether the value is indeed still unused; two network managers
may attempt to create a configuration entry simultaneously and use the
same value. If it is currently unused, the SET succeeds and the agent
changes the value of diffServSchedulerNextFree according to an agent-
specific algorithm. If the value is in use, however, the SET fails.
The network manager must re-read diffServSchedulerNextFree to obtain a
useful value.
3.5.3. diffServAssuredRateTable - The Assured Rate Table
When the output rate of a queue or scheduler must be given a minimum
rate or a priority, this is done using the diffServAssuredRateTable.
Rates may be expressed as absolute rates, or as a fraction of ifSpeed,
and imply the use of a rate-based scheduler such as WFQ or WRR. The use
of a priority implies the use of a Priority Scheduler. Only one of the
Absolute or Relative rate need be set; the other takes the relevant
value as a result. Excess capacity is distributed proportionally among
the inputs to a scheduler.
The effect of combining priority and rate is to make the rates be in
fact fractions of ifSpeed less the actual amount of traffic passing,
although the fraction is calculated against the ifSpeed value.
When the MIB is used for configuration, diffServAssuredRateNextFree
always contains a legal value for diffServAssuredRateId that is not
currently used in the system's configuration. The Network Management
Application reads the variable and uses the value read in a create-
and-go or a create-and-wait SET. When the SET is performed, the agent
must determine whether the value is indeed still unused; two network
managers may attempt to create a configuration entry simultaneously and
use the same value. If it is currently unused, the SET succeeds and the
agent changes the value of diffServAssuredRateNextFree according to an
agent-specific algorithm. If the value is in use, however, the SET
fails. The network manager must re-read diffServAssuredRateNextFree to
obtain a useful value.
3.5.4. diffServShapingRateTable - The Shaping Rate Table
When the output rate of a queue or scheduler must be limited to at most
a specified maximum rate, this is done using the
diffServShapingRateTable. Rates may be expressed as absolute rates, or
as a fraction of ifSpeed. Only one of the Absolute or Relative rate
need be set; the other takes the relevant value as a result.
The definition of a multirate shaper requires multiple
diffServShapingRateEntries. In this case, an algorithm such as SHAPING
is used. In that algorithm, more than one rate is specified, and at any
given time traffic is shaped to the lowest specified rate which exceeds
the arrival rate of traffic.
When the MIB is used for configuration, diffServShapingRateNextFree
always contains a legal value for diffServShapingRateId that is not
currently used in the system's configuration. The Network Management
Application reads the variable and uses the value read in a create-
and-go or a create-and-wait SET. When the SET is performed, the agent
must determine whether the value is indeed still unused; two network
managers may attempt to create a configuration entry simultaneously and
use the same value. If it is currently unused, the SET succeeds and the
agent changes the value of diffServShapingRateNextFree according to an
agent-specific algorithm. If the value is in use, however, the SET
fails. The network manager must re-read diffServShapingRateNextFree to
obtain a useful value.
3.5.5. Using queues and schedulers together
For representing a Strict Priority scheduler, each scheduler input is For representing a Strict Priority scheduler, each scheduler input is
assigned a priority with respect to all the other inputs feeding the assigned a priority with respect to all the other inputs feeding the
same scheduler, with default values for the other parameters. Higher- same scheduler, with default values for the other parameters. Higher-
priority traffic that is not being delayed for shaping will be serviced priority traffic that is not being delayed for shaping will be serviced
before a lower-priority input. before a lower-priority input. An example is found in Figure 2.
For Weighted Queuing methods e.g. WFQ, WRR, the "weight" of a given For Weighted Queuing methods, such as WFQ or WRR, the "weight" of a
scheduler input is represented with a Minimum Service Rate leaky-bucket given scheduler input is represented with a Minimum Service Rate leaky-
profile which provides guaranteed minimum bandwidth to that input, if bucket profile which provides guaranteed minimum bandwidth to that
required. This is represented by a rate diffServAssuredRateAbs; the input, if required. This is represented by a rate
classical weight is the ratio between that rate and the interface speed, DiffServAssuredRateAbs; the classical weight is the ratio between that
or perhaps the ratio between that rate and the sum of the configured rate and the interface speed, or perhaps the ratio between that rate and
rates for classes. The rate may, alternatively, be represented by a the sum of the configured rates for classes. The rate may be
relative value, as a fraction of the interface's current line rate, represented by a relative value, as a fraction of the interface's
diffServAssuredRateRel to assist in cases where line rates are variable +-----+
or where a higher-level policy might be expressed in terms of fractions +-------+ | P S |
of network resources. The two rate parameters are inter-related and | Queue +------------>+ r c |
changes in one may be reflected in the other. +-------+-+--------+ | i h |
|Priority| | o e |
+--------+ | r d +----------->
+-------+ | i u |
| Queue +------------>+ t l |
+-------+-+--------+ | y e |
|Priority| | r |
+--------+ +-----+
current line rate. DiffServAssuredRateRel 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. An
example is found in figure 4.
For weighted scheduling methods, one can say loosely, that WRR focuses For weighted scheduling methods, one can say loosely, that WRR focuses
on meeting bandwidth sharing, without concern for relative delay amongst on meeting bandwidth sharing, without concern for relative delay amongst
the queues; where WFQ control both queue service order and amount of the queues; where WFQ control both queue service order and amount of
traffic serviced, providing meeting bandwidth sharing and relative delay traffic serviced, providing meeting bandwidth sharing and relative delay
ordering amongst the queues. ordering amongst the queues.
A queue or scheduled set of queues (which is an input to a scheduler) A queue or scheduled set of queues (which is an input to a scheduler)
may also be capable of acting as a non-work-conserving [MODEL] traffic may also be capable of acting as a non-work-conserving [MODEL] traffic
shaper: this is done by defining a Maximum Service Rate leaky-bucket shaper: this is done by defining a Maximum Service Rate leaky-bucket
+-----+
+-------+ | W S |
| Queue +------------>+ R c |
+-------+-+--------+ | R h |
| Rate | | e |
+--------+ | o d +----------->
+-------+ | r u |
| Queue +------------>+ l |
+-------+-+--------+ | W e |
| Rate | | F r |
+--------+ | Q |
+-----+
profile in order to limit the scheduler bandwidth available to that profile in order to limit the scheduler bandwidth available to that
input. This is represented by a rate diffServShapingRateAbs; the input. This is represented by a rate, in DiffServShapingRateAbs; the
classical weight is the ratio between that rate and the interface speed, classical weight is the ratio between that rate and the interface speed,
or perhaps the ratio between that rate and the sum of the configured or perhaps the ratio between that rate and the sum of the configured
rates for classes. The rate may, alternatively, be represented by a rates for classes. The rate may be represented by a relative value, as
relative value, as a fraction of the interface's current line rate, a fraction of the interface's current line rate, DiffServShapingRateRel.
diffServShapingRateRel. There was discussion in the working group about There was discussion in the working group about alternative modeling
alternative modeling approaches, such as defining a shaping action or a approaches, such as defining a shaping action or a shaping element.
shaping element. We did not take this approach because shaping is in This MIB does not take this approach because shaping is in fact
fact something a scheduler does to its inputs, (which we model as a something a scheduler does to its inputs, (which we model as a queue
queue with a maximum rate or a scheduler whose output has a maximum with a maximum rate or a scheduler whose output has a maximum rate) and
rate) and we felt it was simpler and more elegant to simply describe it the authors felt it was simpler and more elegant to simply describe it
in that context. in that context.
The same may be done on a queue, if a given class is to be shaped to a
maximum rate without shaping other classes, as in Figure 5.
Other types of priority and weighted scheduling methods can be defined Other types of priority and weighted scheduling methods can be defined
using existing parameters in diffServAssuredRateEntry. NOTE: using existing parameters in DiffServAssuredRateEntry. NOTE:
diffServSchedulerMethod uses OBJECT IDENTIFIER syntax, with the DiffServSchedulerMethod uses OBJECT IDENTIFIER syntax, with the
different types of scheduling methods defined as OBJECT-IDENTITY. different types of scheduling methods defined as OBJECT-IDENTITY.
Future scheduling methods may be defined in other MIBs. This requires Future scheduling methods may be defined in other MIBs. This requires
an OBJECT-IDENTITY definition, a description of how the existing objects an OBJECT-IDENTITY definition, a description of how the existing objects
are reused, if they are, and any new objects they require. are reused, if they are, and any new objects they require.
NOTE: hierarchical schedulers can be parameterized using this MIB by Queue Table entries are pointed at by the "next" attributes of the
having Scheduler Table entries feeds into Scheduler Table entry. upstream elements, such as DiffServMeterSucceedNext or
diffServActionNext. 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
4. MIB Usage Example +---+
+-------+ | S |
| Queue +------------>+ c |
+-------+-+--------+ | h |
| | | e +----------->
+--------+ | d +-+-------+
| u | |Maximum|
+-------+ | l | | Rate |
| Queue +------------>+ e | +-------+
+-------+-+--------+ | r |
| | |---+
+--------+
+---+
+-------+ | S |
| Queue +------------>+ c |
+-------+-+--------+ | h |
|Min Rate| | e +----------->
+--------+ | d |
| u |
+-------+ | l |
| Queue +------------>+ e |
+-------+-+--------+ | r |
|Min Rate| | |
+--------+ | |
|Max Rate| | |
+--------+ +---+
This section provides some examples on how the different table entries placed in the same queue, after metering, without reordering. To
of this MIB may be used together for a Diffserv Device, with the usage accomplish that, the upstream diffServAlgDropNext pointers each point to
of each individual attribute be defined within the MIB module itself. the same diffServQEntry.
For the figures, all the MIB table entry and attribute names assumes to
have "diffServ" as their first common initial part of name, with the
table entry name assumed to be their second common initial part of name.
"0.0" is being used to mean zeroDotZero. And for Scheduler Method "= X"
means "using the OID of diffServSchedulerX".
4.1. Model's Example A common requirement of a queue is that its traffic enjoy a certain
minimum or maximum rate, or that it be given a certain priority.
Functionally, the selection of such is a function of a scheduler, as in
Section .sh 4 "The parameter is associated with the queue, however,
using the Assured or Shaping Rate Parameters Table.
As an example, when this MIB's structures are used for the hypothetical To implement an EF and two AF classes, one must use a combination of
configuration in [MODEL] section 8.1, the result is shown in Figure 2, priority and WRR/WFQ scheduling. This requires us to cascade two
3, and 4. The parameterization table entries' values are not specified schedulers. If we were to additionally shape the output of the system
in detail here, they can be obtained from [MODEL] section 8.1. to a rate lower than the interface rate, we must place an upper bound
rate on the output of the priority scheduler. See figure 4.
+---------------------+ +------------------------> Q_EF 3.6. Example configuration for AF and EF
|DataPath | |
| ifIndex=1 | | +--------------+
| IfDirection=Ingress | +------+ | +--->|Action |
| Start --------------+--->|Clfr | | | | Id=EF2 |
+---------------------+ | Id=1 | | | | Next=0.0 |
+------+ | | | Specific=0.0 |
| | | Type=AbsDrop |
| | +--------------+
| |
| +-------------------+
| |
+------------+ +--------------+ | +-----------+ |
|ClfrElement | +-->|Meter | | +->|Action | |
| Id=EF | | | Id=EF | | | | Id=EF1 | |
| ClfrId=1 | | | SucceedNext -+-+ | | Next -----+----+
| Order=NA | | | FailNext ----+----+ | Specific -+--+
| Next ------+--+ | Specific -+ | | Type=Spcf | |
| Specific --+-+ +-----------+--+ +-----------+ |
+------------+ | | |
| | +-------+
| | |
| +--------+ | +---------+ | +--------------+
+-->|FilterEF| +-->|TBMeterEF| +->|CountActEFDrop|
+--------+ +---------+ +--------------+
+------------+ +----------+ +--------------+ For the sake of argument, let us build an example with one EF class and
|ClfrElement | +-->|Action | +-->|AlgDrop | four AF classes using the constructs in this MIB.
| Id=AF11 | | | Id=AF11 | | | Id=AF11 |
| ClfrId=1 | | | Next ----+--+ | Type=tailDrop|
| Order=NA | | | Specific +-+ | Next --------+--+-> Q_AF1
| Next ------+--+ | Type=Spcf| | | QMeasure ----+--+
| Specific --+-+ +----------+ | | QThreshold |
+------------+ | | | Specific=0.0 |
| | +--------------+
| |
| +----------+ | +------------+
+->|FilterAF11| +->|CountActAF11|
+----------+ +------------+
Figure 2: Example from Model Section 8.1 part 1 3.6.1. AF and EF Ingress Interface Configuration
+------------+ +--------------+ +-------------+
|ClfrElement | +-->|Meter | +-->|Action |
| Id=AF21 | | | Id=AF21 | | | Id=AF21S |
| ClfrId=1 | | | SucceedNext -+--+ | Next -------+----> Q_AF2
| Order=NA | | | FailNext + | | Specific -+ |
| Next ------+--+ | Specific --+ | | Type=Spcf | |
| Specific --+-+ +----------+-+-+ +-----------+-+
+------------+ | | | |
| | | +---+
| | | |
| +----------+ | | +-----------+ | +-------------+
+->|FilterAF21| | +->|TBMeterAF21| +->|CountActAF21S|
+----------+ | +-----------+ +-------------+
|
+--------------------+
|
| +-----------+ +-----------+
+-->|Action | +-->|Action |
| Id=AF21F1 | | | Id=AF21F2 |
| Next -----+--+ | Next -----+------> Q_AF2
| Specific -+-+ | Specific -+-+
| Type=Spcf | | | Type=Spcf | |
+-----------+ | +-----------+ |
| |
| +-------------+ | +---------------+
+->|CountActAF21F| +->|DscpMarkActAF22|
+-------------+ +---------------+
+------------+ The ingress edge interface identifies traffic into classes, meters it,
|ClfrElement | +-----------------------------------------> Q_BE and ensures that any excess is appropriately dealth with according to
| Id=WildCard| | the PHB. For AF, this means marking excess; for EF, it means dropping
| ClfrId=1 | | excess or shaping it to a maximum rate.
| Order=NA | |
| Next ------+--+ +--------------+
| Specific --+------>|FilterMatchAll|
+------------+ +--------------+
Figure 3: Example from Model Section 8.1 part 2 +-----+
+-------------+ +-------+ | P S |
Q_EF--->|Q | | Queue +---------------------------------->+ r c |
| Id=EF +--+--------------------------+ +-------+----------------------+--------+ | i h |
| Next ----+ | +-----------+ | |Priority| | o e +----------->
| SchdParam --+-->|SchdParamEF| | +--------+ | r d +-+-------+
+-------------+ +-----------+ | +------+ | i u | |Maximum|
+-------+ | W S +------------->+ t l | | Rate |
| Queue +------------>+ R c +-+--------+ | y e | +-------+
+-------+-+--------+ | R h | |Priority| | r |
|Min Rate| | e | +--------+ +-----+
+--------+ | o d |
+-------+ | r u |
| Queue +------------>+ l |
+-------+-+--------+ | W e |
|Min Rate| | F r |
+--------+ | Q |
+------+
+-----------------------+
| diffServDataPathStart |
+-----------+-----------+
| |
+-------------+ | +----------------+ +----------+
Q_AF1-->|Q | +->|Scheduler |
| Id=AF1 +--+--------------------------+ | Id=Diffserv |
| Next ----+ | +------------+ | | Next=0.0 |
| SchdParam --+-->|SchdParamAF1| | | Method=Priority|
+-------------+ +------------+ | | SchdParam=0.0 |
| +----------------+
+-------------+ |
Q_AF2-->|Q | |
| Id=AF2 +--+--------------------------+
| Next ----+ | +------------+ |
| SchdParam --+-->|SchdParamAF2| |
+-------------+ +------------+ |
| |
+-------------+ | +--+--+ +-----+ +-----+ +-----+ +-----+
Q_BE--->|Q | | | AF1 +-----+ AF2 +-----+ AF3 +-----+ AF4 +-----+ EF |
| Id=BE +--+--------------------------+ +--+--+ +--+--+ +--+--+ +--+--+ +--+--+
| Next ----+ | +-----------+ | | | | |
| SchdParam --+-->|SchdParamBE| +--+--+ +--+--+ +--+--+ +--+--+ +--+--+
+-------------+ +-----------+ |TRTCM| |TRTCM| |TRTCM| |TRTCM| |srTCM|
|Meter| |Meter| |Meter| |Meter| |Meter|
|-+++-| |-+++-| |-+++-| |-+++-| +-+-+-+
||| ||| ||| ||| | |
+-+||---+ +-+||---+ +-+||---+ +-+||---+ +-+-|---+
|+-+|----+ |+-+|----+ |+-+|----+ |+-+|----+ |+--+----+
||+-+-----+ ||+-+-----+ ||+-+-----+ ||+-+-----+ ||Actions|
+||Actions| +||Actions| +||Actions| +||Actions| +|Below |
+|Below | +|Below | +|Below | +|Below | +-+-----+
+-+-----+ +-+-----+ +-+-----+ +-+-----+ |
||| ||| ||| ||| |
VVV VVV VVV VVV V
Figure 4: Example from Model Section 8.1 part 3 Accepted traffic is sent to IP forwarding
4.2. Additional Data Path Example 3.6.1.1. Classification In The Example
4.2.1. Data Path and Classifier Example Discussion A packet arriving at an ingress interface picks up its "program" from
the diffServDataPathTable. This points to a classifier, which will
select traffic according to some specification for each traffic class.
The example in Figure 5 shows a single diffServDataPathTable entry An example of a classifier for an AFm class would be a succession of
feeding into a single Classifier entry, with three Classifier Element three classifier elements, each pointing to a Six-tuple classification
and Filter Table entry pairs belonging to this Classifier 1. Notice the parameter block identifying one of the AFmn DSCPs. Alternatively, the
three Filters used here must completely classify all the traffic six-tuples might contain selectors for HTTP traffic or some other
presented to this data path. application.
Another level of classification can be defined that follows the Action An example of a classifier for EF traffic might be either a classifier
functional DataPath elements in Figure 5. This multi-level element pointing to a six-tuple parameter specifying the EF code point,
classification allow the construction of traffic separations and or a collection of classifiers with parameter blocks specifying
specific actions at each level, like: individual telephone calls, or a variety of other approaches.
if (dept1) then take dept1-action
{
if (appl1) then take dept1-appl1-action.
+---------------------+ Each classifier hands its traffic off to appropriate functional data
|DataPath | path elements.
| ifIndex=1 |
| IfDirection=Ingress | +------+
| Start --------------+--->|Clfr |
+---------------------+ | Id=1 |
+------+
+------------+ +--------------+ +-----------+ 3.6.1.2. AF Implementation On an Ingress Edge Interface
|ClfrElement | +-->|Meter | +-->|Action |
| Id=101 | | | Id=101 | | | Id=101 |
| ClfrId=1 | | | SucceedNext -+--+ | Next -----+---->...
| Order=NA | | | FailNext ----+->... | Specific -+-+
| Next ------+--+ | Specific -+ | | Type=Spcf | |
| Specific --+-+ +-----------+--+ +-----------+ |
+------------+ | | +-------+
| +-------+ | +--------+ | +---------+
+-->|Filter1| +-->|TBMeter1| +-->|CountAct1|
+-------+ +--------+ +---------+
+------------+ +--------------+ +-----------+ Each Afm class applies a Two Rate Three Color Meter, dividing traffic
|ClfrElement | +-->|Meter | +-->|Action | into three groups. These groups of traffic conform to both specified
| Id=102 | | | Id=102 | | | Id=102 | rates, only the higher one, or none. The intent, on the ingress
| ClfrId=1 | | | SucceedNext -+--+ | Next -----+---->... interface at the edge of the network, is to measure and appropriately
| Order=NA | | | FailNext ----+->... | Specific -+-+ mark traffic.
| Next ------+--+ | Specific -+ | | Type=Spcf | |
| Specific --+-+ +-----------+--+ +-----------+ |
+------------+ | | +-------+
| +-------+ | +--------+ | +---------+
+-->|Filter2| +-->|TBMeter2| +-->|CountAct2|
+-------+ +--------+ +---------+
+------------+ +--------------+ +-----------+ 3.6.1.2.1. AF Metering On an Ingress Edge Interface
|ClfrElement | +-->|Meter | +-->|Action |
| Id=103 | | | Id=103 | | | Id=103 |
| ClfrId=1 | | | SucceedNext -+--+ | Next -----+---->...
| Order=NA | | | FailNext ----+->... | Specific -+-+
| Next ------+--+ | Specific -+ | | Type=Spcf | |
| Specific --+-+ +-----------+--+ +-----------+ |
+------------+ | | +-------+
| +-------+ | +--------+ | +---------+
+-->|Filter3| +-->|TBMeter3| +-->|CountAct3|
+-------+ +--------+ +---------+
Figure 5: Additional Data Path Example Part 1 Each Afm class applies a Two Rate Three Color Meter, dividing traffic
+-------------+ +-----------------+ into three groups. If two rates R and S, with R < S, are specified and
| Id=EF | | | Id=Diffserv | traffic arrives at rate T, traffic comprising up to R bits per second is
| Next -------+-----------------------+ | Next=0.0 | considered to conform to the "confirmed" rate, R. If R < T, traffic
| SchdParam -+| | | Method=Priority | comprising up to S-R bits per second is considered to conform to the
+------------++ | | SchdParam=0.0 | "excess" rate, S. Any further excess is non- conformant.
| | +-----------------+
+------------+ | To configure this, we apply two Meter Entries, one for the conforming
| | rate and one for the excess rate. The rate parameters are stored in
| +-----------+ | associated Token Bucket Parameter Entries. The "FailNext" pointer of
+->|SchdParamEF| | the lower rate Meter Entry points to the other Meter Entry; both
+-----------+ +---------------------+ "SucceedNext" pointers and the "FailNext" pointer of the higher Meter
Entry point to lists of actions. In the color-blind mode, all three
classifier "next" entries point to the lower rate meter entry. In the
color-aware mode, the AFm1 classifier points to the lower rate entry,
the AFm2 classifier points to the higher rate entry (as it is only
compared against that rate), and the AFm3 classifier points directly to
the actions taken when both rates fail.
3.6.1.2.2. AF Actions On an Ingress Edge Interface
For network planning and perhaps for billing purposes, arriving traffic
is normally counted. Therefore, a "count" action, consisting of an
action table entry pointing to a count table entry, is configured.
Also, traffic is marked with the appropriate DSCP. The first R bits per
second are marked AFm1, the next S-R bits per second are marked AFm2,
and the rest is marked AFm3. It may be that traffic is arriving marked
with the same DSCP, but in general, the additional complexity of
deciding that it is being remarked to the same value is not useful.
Therefore, a "mark" action, consisting of an action table entry pointing
to a mark table entry, is configured.
At this point, the usual case is that traffic is now forwarded in the
usual manner. To indicate this, we set the "SucceedNext" pointer of the
Mark Action is left at zeroDotZero.
3.6.1.3. EF Implementation On an Ingress Edge Interface
The EF class applies a Single Rate Two Color Meter, dividing traffic
into "conforming" and "excess" groups. The intent, on the ingress
interface at the edge of the network, is to measure and appropriately
mark conforming traffic and drop the excess.
3.6.1.3.1. EF Metering On an Ingress Edge Interface
A single rate two color (SRTCM) meter requires one token bucket. It is
therefore configured using a single meter entry with a corresponding
Token Bucket Parameter Entry. Arriving traffic either "succeeds" or
"fails".
3.6.1.3.2. EF Actions On an Ingress Edge Interface
For network planning and perhaps for billing purposes, arriving traffic
that conforms to the meter is normally counted. Therefore, a "count"
action, consisting of an action table entry pointing to a count table
entry, is configured.
Also, traffic is (re)marked with the EF DSCP. Therefore, a "mark"
action, consisting of an action table entry pointing to a mark table
entry, is configured.
At this point, the successful traffic is now forwarded in the usual
manner. To indicate this, we set the "SucceedNext" pointer of the Mark
Action is left at zeroDotZero.
Traffic that exceeded the arrival policy, however, is to be dropped. We
can use a count action on this traffic if the several counters are
interesting. However, since the drop counter in the Algorithmic Drop
Entry will count packets dropped, this is not clearly necessary. We
configure an Alorithmic Drop Entry of the type "alwaysDrop," with no
successor.
3.7. AF and EF Egress Edge Interface Configuration
3.7.1. Classification On an Egress Edge Interface
A packet arriving at an egress interface may have been classified on an
ingress interface, and the egress interface may have access to that
+-----------------------+
| diffServDataPathStart |
+-----------+-----------+
| |
+----------------+ +-------------+ | +----------+
| Id=AF11 | | | Id=AF1 | +-------------+ |
| Type=randomDrop| | | Next -------+--->|Scheduler | |
| Next ----------+-+--+ | SchdParam -+| | Id=AF | |
| QMeasure ------+-+ | +------------++ | Next -------+--+
| QThreshold | | | | Method=WFQ |
| Specific -+ | | +------------+ | SchdParam --+--+
+-----------+----+ | | +-------------+ |
| | | +------------+ |
+-----------+ | +->|SchdParamAF1| +----------------+
| +--------------+ | +------------+ |
+->|RandomDropAF11| | | +-----------+
+--------------+ | +->|SchdParamAF|
| +-----------+
+----------------+ |
| Id=AF12 | |
| Type=randomDrop| |
| Next ----------+-+--+
| QMeasure ------+-+
| QThreshold |
| Specific -+ |
+-----------+----+
| |
+-----------+ +--+--+ +-----+ +-----+ +-----+ +-----+
| +--------------+ | AF1 +-----+ AF2 +-----+ AF3 +-----+ AF4 +-----+ EF |
+->|RandomDropAF12| |-+++-| |-+++-| |-+++-| |-+++-| +-+-+-+
+--------------+ ||| ||| ||| ||| | |
|-+++-| |-+++-| |-+++-| |-+++-| +-+-+-+
|TRTCM| |TRTCM| |TRTCM| |TRTCM| |srTCM|
|Meter| |Meter| |Meter| |Meter| |Meter|
|-+++-| |-+++-| |-+++-| |-+++-| +-+-+-+
||| ||| ||| ||| | |
+-+||---+ +-+||---+ +-+||---+ +-+||---+ +-+-|---+
|+-+|----+ |+-+|----+ |+-+|----+ |+-+|----+ |+--+----+
||+-+-----+ ||+-+-----+ ||+-+-----+ ||+-+-----+ ||Actions|
+||Actions| +||Actions| +||Actions| +||Actions| +|Below |
+|Below | +|Below | +|Below | +|Below | +-+-----+
+-+-----+ +-+-----+ +-+-----+ +-+-----+ |
||| ||| ||| ||| |
+-+++--+ +-+++--+ +-+++--+ +-+++--+ +--+---+
| Queue| | Queue| | Queue| | Queue| | Queue|
+--+---+ +--+---+ +--+---+ +--+---+ +--+---+
| | | | |
+--+-----------+-----------+-----------+---+ |
| WFQ/WRR Scheduler | |
+--------------------------------------+---+ |
| |
+-----+-----------+----+
| Priority Scheduler |
+----------+-----------+
|
V
Figure 6: Additional Data Path Example Part 2 information. If it is relevant, there is no reason not to use that
information. If it is not available, however, there may be a need to
(re)classify on the egress interface. In any event, it picks up its
"program" from the diffServDataPathTable. This points to a classifier,
which will select traffic according to some specification for each
traffic class.
if (appl2) then take dept1-appl2-action. An example of a classifier for an AFm class would be a succession of
if (appl3) then take dept1-appl3-action.
} three classifier elements, each pointing to a Six-tuple classification
if (dept2) then take dept2-action parameter block identifying one of the AFmn DSCPs. Alternatively, the
{ six-tuples might contain selectors for HTTP traffic or some other
if (appl1) then take dept2-appl1-action. application.
if (appl2) then take dept2-appl2-action.
if (appl3) then take dept2-appl3-action.
}
if (dept3) then take dept3-action
{
if (appl1) then take dept3-appl1-action.
if (appl2) then take dept3-appl2-action.
if (appl3) then take dept3-appl3-action.
}
Minimally, the filters for appl1, appl2, appl3 may be reused for the An example of a classifier for EF traffic might be either a classifier
above setup. element pointing to a six-tuple parameter specifying the EF code point,
or a collection of classifiers with parameter blocks specifying
individual telephone calls, or a variety of other approaches.
4.2.2. Meter and Action Example Discussion Each classifier hands its traffic off to appropriate functional data
path elements.
A simple Meter that can be parameterized by a single TBMeter entry is 3.7.2. AF Implementation On an Egress Edge Interface
shown here. For Metering types that require multiple TBMeter entries
for parameterization, a second level Meter and TBMeter table entries may
be used. For example, for [TRTCM], with the first level TBMeter entry
used for Peak Information Token Bucket, the first level SucceedNext
points to the second level Meter entry, with second level TBMeter entry
used for Committed Information Token Bucket.
Notice the CountAct Action is shown in Figure 5. This is purposely done Each Afm class applies a Two Rate Three Color Meter, dividing traffic
to indicate that every DataPath should have at least one CountAct into three groups. These groups of traffic conform to both specified
Action. Other actions can be pointed to by the Next pointer of the rates, only the higher one, or none. The intent, on the ingress
CountAct action, like DscpMarkAct action. interface at the edge of the network, is to measure and appropriately
mark traffic.
4.2.3. Queue and Scheduler Example Discussion 3.7.2.1. AF Metering On an Egress Edge Interface
Example in Figure 6 shows three classified input traffic streams, EF, Each Afm class applies a Two Rate Three Color Meter, dividing traffic
AF11, and AF12, feeding into their respective queue and algorithmic into three groups. If two rates R and S, with R < S, are specified and
droppers. After their respective dropping process, the AF traffic traffic arrives at rate T, traffic comprising up to R bits per second is
streams feed into the same queue, QAF1X. considered to conform to the "confirmed" rate, R. If R < T, traffic
comprising up to S-R bits per second is considered to conform to the
"excess" rate, S. Any further excess is non- conformant.
A Scheduler, AF, is shown in Figure 6, as the sink for AF1X queue To configure this, we apply two Meter Entries, one for the conforming
traffic, servicing AF1X queue with scheduling parameters indicated by rate and one for the excess rate. The rate parameters are stored in
SchdParamAF1X. This scheduler is used to service traffic from AF1X, associated Token Bucket Parameter Entries. The "FailNext" pointer of
AF2X, AF3X queues using weighted fair queuing method. The AF2X and AF3X the lower rate Meter Entry points to the other Meter Entry; both
queues are not shown in Figure 6, they can be very much like AF1X queue "SucceedNext" pointers and the "FailNext" pointer of the higher Meter
setup. Entry point to lists of actions. In the color-blind mode, all three
classifier "next" entries point to the lower rate meter entry. In the
color-aware mode, the AFm1 classifier points to the lower rate entry,
the AFm2 classifier points to the higher rate entry (as it is only
compared against that rate), and the AFm3 classifier points directly to
the actions taken when both rates fail.
Another traffic stream, EF, is handled by the EF queue. Scheduler 3.7.2.2. AF Actions On an Egress Edge Interface
Diffserv services output of EF queue using SchdParamEF, and output of AF
scheduler using SchdParamAF, with Priority Queue scheduling method.
Notice all the diffserv traffic may go out on a link with traffic For network planning and perhaps for billing purposes, departing traffic
shaping. The traffic shaping can be parameterize using the Shaping is normally counted. Therefore, a "count" action, consisting of an
Scheduler in Figure 6. For shaping, the diffServShapingRate attributes action table entry pointing to a count table entry, is configured.
should be used. The Shaping Scheduler is indicated as the last diffserv
functional element of this data path by using its Next pointer with
value of zeroDotZero.
5. Conventions used in this MIB Also, traffic may be marked with an appropriate DSCP. The first R bits
per second are marked AFm1, the next S-R bits per second are marked
AFm2, and the rest is marked AFm3. It may be that traffic is arriving
marked with the same DSCP, but in general, the additional complexity of
deciding that it is being remarked to the same value is not useful.
Therefore, a "mark" action, consisting of an action table entry pointing
to a mark table entry, is configured.
5.1. The use of RowPointer to indicate data path linkage At this point, the usual case is that traffic is now queued for
transmission. The queue uses Active Queue Management, using an
algorithm such as RED. Therefore, an Algorithmic Dropper is configured
for each AFmn traffic stream, with a slightly lower min- threshold (and
possibly lower max-threshold) for the excess traffic than for the
committed traffic.
3.7.2.3. AF Rate-based Queuing On an Egress Edge Interface
The queue expected by AF is normally a work-conserving queue. It
usually has a specified minimum rate, and may have a maximum rate below
the bandwidth of the interface. In concept, it will use as much
bandwidth as is available to it, but assure the lower bound.
Common ways to implement this include various forms of Weighted Fair
Queuing (WFQ) or Weighted Round Robin (WRR). Integrated over a longer
interval, these give each class a predictable throughput rate. They
differ in that over short intervals they will order traffic differently.
In general, traffic classes that keep traffic in queue will tend to
absorb latency from queues with lower mean occupancy, in exchange for
which they make use of any available capacity.
3.7.3. EF Implementation On an Egress Edge Interface
The EF class applies a Single Rate Two Color Meter, dividing traffic
into "conforming" and "excess" groups. The intent, on the egress
interface at the edge of the network, is to measure and appropriately
mark conforming traffic and drop the excess.
3.7.3.1. EF Metering On an Egress Edge Interface
A single rate two color (SRTCM) meter requires one token bucket. It is
therefore configured using a single meter entry with a corresponding
Token Bucket Parameter Entry. Arriving traffic either "succeeds" or
"fails".
3.7.3.2. EF Actions On an Egress Edge Interface
For network planning and perhaps for billing purposes, departing traffic
that conforms to the meter is normally counted. Therefore, a "count"
action, consisting of an action table entry pointing to a count table
entry, is configured.
Also, traffic is (re)marked with the EF DSCP. Therefore, a "mark"
action, consisting of an action table entry pointing to a mark table
entry, is configured.
At this point, the successful traffic is now queued for transmission,
using a priority queue or perhaps a rate-based queue with significant
over-provision. Since the amount of traffic present is known, one might
not drop from this queue at all.
Traffic that exceeded the policy, however, is dropped. We can use a
count action on this traffic if the several counters are interesting.
However, since the drop counter in the Algorithmic Drop Entry will count
packets dropped, this is not clearly necessary. We configure an
Alorithmic Drop Entry of the type "alwaysDrop," with no successor.
3.7.3.3. EF Priority Queuing On an Egress Edge Interface
The normal implementation is a priority queue, to minimize induced
jitter. By this, we mean that a separate queue is used for each EF
class, with a strict ordering.
4. Conventions used in this MIB
4.1. The use of RowPointer to indicate data path linkage
RowPointer is a textual convention used to identify a conceptual row in RowPointer is a textual convention used to identify a conceptual row in
an SNMP Table by pointing to one of its objects. One of the ways it is an SNMP Table by pointing to one of its objects. One of the ways it this
used in this MIB is to indicate succession, pointing to data path MIB uses it is to indicate succession, pointing to data path linkage
linkage table entries. table entries.
For succession, it answers the question "what happens next?". Rather For succession, it answers the question "what happens next?". Rather
than presume that the next table must be as specified in the conceptual than presume that the next table must be as specified in the conceptual
model [MODEL] and providing its index, the RowPointer takes you to the model [MODEL] and providing its index, the RowPointer takes you to the
MIB row representing that thing. In the diffServMeterTable, for example, MIB row representing that thing. In the DiffServMeterTable, for example,
the diffServMeterFailNext RowPointer might take you to another meter, the DiffServMeterFailNext RowPointer might take you to another meter,
while the diffServMeterSucceedNext RowPointer would take you to an while the DiffServMeterSucceedNext RowPointer would take you to an
action. action.
NOTE -- the RowPointer construct is used to build the TCBs Since a RowPointer is not tied to any specific object except by the
described in [MODEL]: this MIB does not model TCBs directly - it value it contains, it is possible and acceptable to use RowPointers to
merge data paths. An obvious example of such a use is in the
classifier: traffic matching the DSCPs AF11, AF12, and AF13 might be
presented to the same meter in order to perform the processing described
in the Assured Forwarding PHB. Another use would be to merge data paths
from several interfaces; if they represent a single service contract,
having them share a common set of counters and common policy may be a
desireable configuration. Note well, however, that suchconfigurations
may have related implementation issues - if Differentiated Services
processing for the interfaces is implemented in multiple forwarding
engines, the engines will need to communicate if they are to implement
such a feature. An implementation that fails to provide this capability
is not considered to have failed the intention of this MIB or of the
[MODEL]; an implementation that does provide it is not considered
superior from a standards perspective.
NOTE -- the RowPointer construct is used to connect the functional
data paths. The [MODEL] describes these as TCBs, as an aid to
understanding. This MIB, however, does not model TCBs directly. It
operates at a lower level of abstraction using only individual operates at a lower level of abstraction using only individual
elements, connected in succession by RowPointers. Therefore, the elements, connected in succession by RowPointers. Therefore, the
concept of TCBs enclosing individual functional DataPath elements concept of TCBs enclosing individual Functional Data Path elements
is not applicable to this MIB, although such a concept may be is not directly applicable to this MIB, although management tools
employed by management tools that use this MIB. that use this MIB may employ such a concept.
It is possible that a path through a device following a set of It is possible that a path through a device following a set of
RowPointers is indeterminate i.e. it ends in a dangling RowPointer. RowPointers is indeterminate i.e. it ends in a dangling RowPointer.
Guidance is provided in the MIB module's DESCRIPTION-clause for each of Guidance is provided in the MIB module's DESCRIPTION-clause for each of
the linkage attribute. In general, for both zeroDotZero and dangling the linkage attribute. In general, for both zeroDotZero and dangling
RowPointer, it is assumed the data path ends and the traffic should be RowPointer, it is assumed the data path ends and the traffic should be
given to the next logical part of the device, usually a forwarding given to the next logical part of the device, usually a forwarding
process or a transmission engine, or the proverbial bit-bucket. Any process or a transmission engine, or the proverbial bit-bucket. Any
variation from this usage is indicated by the attribute affected. variation from this usage is indicated by the attribute affected.
5.2. The use of RowPointer to indicate parameters 4.2. The use of RowPointer to indicate parameters
RowPointer is also used in this MIB to indicate parameterization, for RowPointer is also used in this MIB to indicate parameterization, for
pointing to parameterization table entries. pointing to parameterization table entries.
For indirection (as in the diffServClfrElementTable), the idea is to For indirection (as in the DiffServClfrElementTable), the idea is to
allow other MIBs, including proprietary ones, to define new and arcane allow other MIBs, including proprietary ones, to define new and arcane
filters - MAC headers, IPv4 and IPv6 headers, BGP Communities and all filters - MAC headers, IPv4 and IPv6 headers, BGP Communities and all
sorts of other things - whilst still utilizing the structures of this sorts of other things - whilst still utilizing the structures of this
MIB. This is a form of class inheritance (in "object oriented" MIB. This is a form of class inheritance (in "object oriented"
language): it allows base object definitions ("classes") to be extended language): it allows base object definitions ("classes") to be extended
in proprietary or standard ways, in the future, by other documents. in proprietary or standard ways, in the future, by other documents.
RowPointer also clearly indicates the identified conceptual row's RowPointer also clearly indicates the identified conceptual row's
content does not change, hence they can be simultaneously used, pointed content does not change, hence they can be simultaneously used, pointed
to, by more than one data path linkage table entries. The to, by more than one data path linkage table entries. The
identification of RowPointer allows higher level policy mechanisms to identification of RowPointer allows higher level policy mechanisms to
take advantage of this characteristic. take advantage of this characteristic.
5.3. Conceptual row creation and deletion 4.3. Conceptual row creation and deletion
A number of conceptual tables defined in this MIB use as an index an A number of conceptual tables defined in this MIB use as an index an
arbitrary integer value, unique across the scope of the agent. In order arbitrary integer value, unique across the scope of the agent. In order
to help with multi-manager row-creation problems, a mechanism must be to help with multi-manager row-creation problems, a mechanism must be
provided to allow a manager to obtain unique values for such an index provided to allow a manager to obtain unique values for such an index
and to ensure that, when used, the manager knows whether it got what it and to ensure that, when used, the manager knows whether it got what it
wanted or not. wanted or not.
Typically, such a table has an associated NextFree variable e.g. Typically, such a table has an associated NextFree variable e.g.
diffServClfrNextFree which provides a suitable value for the index of DiffServClfrNextFree which provides a suitable value for the index of
the next row to be created e.g. diffServClfrId. A special value, 0, is the next row to be created e.g. DiffServClfrElementClfrId. The value
used to indicate that no more entries can be configured by the agent. zero is used to indicate that the agent can configure no more entries.
The table also has a columnar Status attribute with RowStatus syntax The table also has a columnar Status attribute with RowStatus syntax
[6]. [6].
If a manager attempts to create a conceptual row in the table (by a SET Generally, if a manager attempts to create a row, using either
operation that contains a varbind setting the Status to a value of createAndGo or createAndWait, the agent will create the row and return
either createAndGo or createAndWait) and if the agent has sufficient success. If the agent has insufficient resources or such a row already
resources and has no other conceptual row with the same indices, the exists, then it returns an error. A manager must be prepared to try
agent will create the row and return success. If the agent has again in such circumstances, probably by re-reading the NextFree to
insufficient resources or such a row is already existent then it returns obtain a new index value in case a second manager had got in between the
an error. A manager must be prepared to try again in such circumstances, first manager's read of the NextFree value and the first manager's row-
probably by re-reading the NextFree to obtain a new index value in case creation attempt. The use of RowStatus is covered in more detail in [6].
a second manager had got in between the first manager's read of the
NextFree value and the first manager's row-creation attempt. The use of
RowStatus is covered in more detail in [6].
6. Extending this MIB 5. Extending this MIB
With the structures of this MIB divided into data path linkage tables With the structures of this MIB divided into data path linkage tables
and parameterization tables, and with the use of RowPointer, new data and parameterization tables, and with the use of RowPointer, new data
path linkage and parameterization tables can be defined in other MIB path linkage and parameterization tables can be defined in other MIB
modules, and used with tables defined in this MIB. This MIB does not modules, and used with tables defined in this MIB. This MIB does not
limit on the type of entries its RowPointer attributes can point to, limit on the type of entries its RowPointer attributes can point to,
hence new functional data path elements can be defined in other MIBs and hence new functional data path elements can be defined in other MIBs and
integrated with functional data path elements of this MIB. For example, integrated with functional data path elements of this MIB. For example,
new Action functional data path element can be defined for Traffic new Action functional data path element can be defined for Traffic
Engineering and be integrated with Diffserv functional data path Engineering and be integrated with Differentiated Services functional
elements, possibly used within the same data path sharing the same data path elements, possibly used within the same data path sharing the
classifiers and meters. same classifiers and meters.
It is more likely that new parameterization tables will be created in It is more likely that new parameterization tables will be created in
other MIBs as new methods or proprietary methods get deployed for other MIBs as new methods or proprietary methods get deployed for
existing diffserv functional data path elements. For example, different existing Differentiated Services functional data path elements. For
kinds of filters can be defined by using new filter parameterization example, different kinds of filters can be defined by using new filter
tables. New scheduling methods can be deployed by defining new parameterization tables. New scheduling methods can be deployed by
scheduling method OIDs and new scheduling parameter tables. defining new scheduling method OIDs and new scheduling parameter tables.
Notice both new data path linkage tables and parameterization tables can Notice both new data path linkage tables and parameterization tables can
be added without needing to change this MIB document or affect existing be added without needing to change this MIB document or affect existing
tables and their usage. tables and their usage.
7. MIB Definition 6. MIB Definition
DIFFSERV-DSCP-TC DEFINITIONS ::= BEGIN DIFFSERV-DSCP-TC DEFINITIONS ::= BEGIN
IMPORTS IMPORTS
Integer32, MODULE-IDENTITY, mib-2 Integer32, MODULE-IDENTITY, mib-2
FROM SNMPv2-SMI FROM SNMPv2-SMI
TEXTUAL-CONVENTION TEXTUAL-CONVENTION
FROM SNMPv2-TC; FROM SNMPv2-TC;
diffServDSCPTC MODULE-IDENTITY diffServDSCPTC MODULE-IDENTITY
LAST-UPDATED "200101080000Z" LAST-UPDATED "0101080000Z"
ORGANIZATION "IETF Diffserv WG" ORGANIZATION "IETF Differentiated Services WG"
CONTACT-INFO CONTACT-INFO
" Fred Baker " Fred Baker
Cisco Systems Cisco Systems
519 Lado Drive 519 Lado Drive
Santa Barbara, CA 93111, USA Santa Barbara, CA 93111, USA
E-mail: fred@cisco.com E-mail: fred@cisco.com
Kwok Ho Chan Kwok Ho Chan
Nortel Networks Nortel Networks
600 Technology Park Drive 600 Technology Park Drive
Billerica, MA 01821, USA Billerica, MA 01821, USA
E-mail: khchan@nortelnetworks.com E-mail: khchan@nortelnetworks.com
Andrew Smith Andrew Smith
Allegro Networks Allegro Networks
6399 San Ignacio Ave 6399 San Ignacio Ave
San Jose, CA 95119, USA San Jose, CA 95119, USA
E-mail: andrew@allegronetworks.com" E-mail: andrew@allegronetworks.com
Differentiated Services Working Group:
diffserv@ietf.org"
DESCRIPTION DESCRIPTION
"The Textual Conventions defined in this module should be used "The Textual Conventions defined in this module should be used
whenever the Diffserv Code Point is used in a MIB." whenever a Differentiated Services Code Point is used in a MIB."
REVISION "200101080000Z" REVISION "0106030000Z"
DESCRIPTION DESCRIPTION
"Initial version, published as RFC xxxx." "Initial version, published as RFC xxxx."
::= { mib-2 12344 } -- to be assigned by IANA ::= { mib-2 12344 } -- to be assigned by IANA
Dscp ::= TEXTUAL-CONVENTION Dscp ::= TEXTUAL-CONVENTION
DISPLAY-HINT "d" DISPLAY-HINT "d"
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The IP header Diffserv Code-Point that may be used for "A Differentiated Services Code-Point that may be used for
discriminating or marking a traffic stream." marking a traffic stream."
REFERENCE REFERENCE
"RFC 2474, RFC 2780" "RFC 2474, RFC 2780"
SYNTAX Integer32 (0..63) SYNTAX Integer32 (0..63)
DscpOrAny ::= TEXTUAL-CONVENTION DscpOrAny ::= TEXTUAL-CONVENTION
DISPLAY-HINT "d" DISPLAY-HINT "d"
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The IP header Diffserv Code-Point that may be used for "The IP header Differentiated Services Code-Point that may be
discriminating or marking a traffic stream. The value -1 is used used for discriminating among traffic streams. The value -1 is
to indicate a wild card i.e. any value." used to indicate a wild card i.e. any value."
REFERENCE REFERENCE
"RFC 2474, RFC 2780" "RFC 2474, RFC 2780"
SYNTAX Integer32 (-1 | 0..63) SYNTAX Integer32 (-1 | 0..63)
END END
DIFFSERV-MIB DEFINITIONS ::= BEGIN DIFFSERV-MIB DEFINITIONS ::= BEGIN
IMPORTS IMPORTS
Unsigned32, Counter32, Counter64, Unsigned32, Counter32, Counter64,
MODULE-IDENTITY, OBJECT-TYPE, OBJECT-IDENTITY, MODULE-IDENTITY, OBJECT-TYPE, OBJECT-IDENTITY,
skipping to change at page 27, line 27 skipping to change at page 35, line 27
FROM IF-MIB FROM IF-MIB
InetAddressType, InetAddress, InetAddressPrefixLength, InetAddressType, InetAddress, InetAddressPrefixLength,
InetPortNumber InetPortNumber
FROM INET-ADDRESS-MIB FROM INET-ADDRESS-MIB
BurstSize BurstSize
FROM INTEGRATED-SERVICES-MIB FROM INTEGRATED-SERVICES-MIB
Dscp, DscpOrAny Dscp, DscpOrAny
FROM DIFFSERV-DSCP-TC; FROM DIFFSERV-DSCP-TC;
diffServMib MODULE-IDENTITY diffServMib MODULE-IDENTITY
LAST-UPDATED "200102210000Z" LAST-UPDATED "0102210000Z"
ORGANIZATION "IETF Diffserv WG" ORGANIZATION "IETF Differentiated Services WG"
CONTACT-INFO CONTACT-INFO
" Fred Baker " Fred Baker
Cisco Systems Cisco Systems
519 Lado Drive 519 Lado Drive
Santa Barbara, CA 93111, USA Santa Barbara, CA 93111, USA
E-mail: fred@cisco.com E-mail: fred@cisco.com
Kwok Ho Chan Kwok Ho Chan
Nortel Networks Nortel Networks
600 Technology Park Drive 600 Technology Park Drive
Billerica, MA 01821, USA Billerica, MA 01821, USA
E-mail: khchan@nortelnetworks.com E-mail: khchan@nortelnetworks.com
Andrew Smith Andrew Smith
Allegro Networks Allegro Networks
6399 San Ignacio Ave 6399 San Ignacio Ave
San Jose, CA 95119, USA San Jose, CA 95119, USA
E-mail: andrew@allegronetworks.com" E-mail: andrew@allegronetworks.com
Differentiated Services Working Group:
diffserv@ietf.org"
DESCRIPTION DESCRIPTION
"This MIB defines the objects necessary to manage a device that "This MIB defines the objects necessary to manage a device that
uses the Differentiated Services Architecture described in RFC uses the Differentiated Services Architecture described in RFC
2475 and the Informal Management Model for Diffserv Routers in 2475. The Conceptual Model of a Differentiated Services Router
draft-ietf-diffserv-model-06.txt." provides supporting information on how such a router is modeled."
REVISION "200103020000Z" REVISION "0106030000Z"
DESCRIPTION DESCRIPTION
"Initial version, published as RFC xxxx." "Initial version, published as RFC xxxx."
::= { mib-2 12345 } -- anybody who uses this unassigned ::= { mib-2 1 }
-- number deserves the wrath of IANA
diffServMIBObjects OBJECT IDENTIFIER ::= { diffServMib 1 } diffServMIBObjects OBJECT IDENTIFIER ::= { diffServMib 1 }
diffServMIBConformance OBJECT IDENTIFIER ::= { diffServMib 2 } diffServMIBConformance OBJECT IDENTIFIER ::= { diffServMib 2 }
-- These textual conventions have no effect on either the syntax -- These textual conventions have no effect on either the syntax
-- or the semantics of any managed object. Objects defined using
-- this convention are always encoded by means of the rules that
-- define their primitive type.
IfDirection ::= TEXTUAL-CONVENTION IfDirection ::= TEXTUAL-CONVENTION
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"Specifies a direction of data travel on an interface. 'inbound' "IfDirection specifies a direction of data travel on an
traffic is operated on during reception from the interface, while interface. 'inbound' traffic is operated on during reception from
'outbound' traffic is operated on prior to transmission on the the interface, while 'outbound' traffic is operated on prior to
interface." transmission on the interface."
SYNTAX INTEGER { SYNTAX INTEGER {
inbound(1), -- ingress interface inbound(1), -- ingress interface
outbound(2) -- egress interface outbound(2) -- egress interface
} }
-- --
-- Data Path -- Data Path
-- --
diffServDataPath OBJECT IDENTIFIER ::= { diffServMIBObjects 1 } diffServDataPath OBJECT IDENTIFIER ::= { diffServMIBObjects 1 }
-- --
-- Data Path Table -- Data Path Table
-- --
-- The Data Path Table enumerates the Differentiated Services -- The Data Path Table enumerates the Differentiated Services
-- Functional Data Paths within this device. Each entry in this
-- table is indexed by ifIndex and ifDirection. Each entry provides
-- the first Differentiated Services Functional Data Path Element to
-- process data flowing along specific data path. This table should
-- have at most two entries for each interface capable of Differentiated
-- Services processing on this device: ingress and egress.
-- Note that Differentiated Services Functional Data Path Elements
-- linked together using their individual next pointers and anchored
-- by an entry of the diffServDataPathTable constitute a functional data
-- path.
-- --
diffServDataPathTable OBJECT-TYPE diffServDataPathTable OBJECT-TYPE
SYNTAX SEQUENCE OF DiffServDataPathEntry SYNTAX SEQUENCE OF DiffServDataPathEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The data path table defines the data paths in this device. Each "The data path table contains RowPointers indicating the start of
data path is defined by the interface and traffic direction. The the functional data path for each interface and traffic direction
first diffserv functional data path element to handle traffic for in this device. These may merge, or be separated into parallel
this data path is defined by a RowPointer, diffServDataPathStart, data paths by meters or classifiers."
in the entries of this table."
::= { diffServDataPath 1 } ::= { diffServDataPath 1 }
diffServDataPathEntry OBJECT-TYPE diffServDataPathEntry OBJECT-TYPE
SYNTAX DiffServDataPathEntry SYNTAX DiffServDataPathEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An entry in the data path table describes a single diffserv data "An entry in the data path table indicates the start of a single
path in this device." Differentiated Services Functional Data Path in this device."
INDEX { ifIndex, diffServDataPathIfDirection } INDEX { ifIndex, diffServDataPathIfDirection }
::= { diffServDataPathTable 1 } ::= { diffServDataPathTable 1 }
DiffServDataPathEntry ::= SEQUENCE { DiffServDataPathEntry ::= SEQUENCE {
diffServDataPathIfDirection IfDirection, diffServDataPathIfDirection IfDirection,
diffServDataPathStart RowPointer, diffServDataPathStart RowPointer,
diffServDataPathStatus RowStatus diffServDataPathStatus RowStatus
} }
diffServDataPathIfDirection OBJECT-TYPE diffServDataPathIfDirection OBJECT-TYPE
SYNTAX IfDirection SYNTAX IfDirection
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"Specifies the direction for which this data path entry applies "IfDirection specifies whether the reception or transmission path
on this interface." for this interface is in view."
::= { diffServDataPathEntry 1 } ::= { diffServDataPathEntry 1 }
diffServDataPathStart OBJECT-TYPE diffServDataPathStart OBJECT-TYPE
SYNTAX RowPointer SYNTAX RowPointer
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This selects the first diffserv functional data path element to "This selects the first Differentiated Services Functional Data
handle traffic for this data path. This RowPointer should point Path element to handle traffic for this data path. This
to an instance of one of: RowPointer should point to an instance of one of:
diffServClfrEntry diffServClfrElementEntry
diffServMeterEntry diffServMeterEntry
diffServActionEntry diffServActionEntry
diffServAlgDropEntry diffServAlgDropEntry
diffServQEntry diffServQEntry
A value of zeroDotZero in this attribute indicates no further A value of zeroDotZero in this attribute indicates that no
Diffserv treatment is performed on traffic of this data path. The Differentiated Services treatment is performed on traffic of this
use of zeroDotZero is the normal usage for the last functional data path. A pointer with the value zeroDotZero normally
data path element of the current data path. terminates a functional data path.
If the row pointed to does not exist, the treatment is as if this If the row pointed to does not exist, the treatment is as if this
attribute contains a value of zeroDotZero." attribute contains a value of zeroDotZero."
::= { diffServDataPathEntry 2 } ::= { diffServDataPathEntry 2 }
diffServDataPathStatus OBJECT-TYPE diffServDataPathStatus OBJECT-TYPE
SYNTAX RowStatus SYNTAX RowStatus
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
skipping to change at page 31, line 14 skipping to change at page 39, line 14
-- --
-- Classifiers -- Classifiers
-- --
diffServClassifier OBJECT IDENTIFIER ::= { diffServMIBObjects 2 } diffServClassifier OBJECT IDENTIFIER ::= { diffServMIBObjects 2 }
-- --
-- Classifier Table -- Classifier Table
-- --
--The Classifier Table allows multiple classifier elements, of same
--or different types, to be used together. A classifier must completely
--classify all packets presented to it. This means that all traffic
--presented to a classifier must match at least one classifier element
--within the classifier, with the classifier element parameters
--specified by a filter.
-- --
-- If there is ambiguity between classifier elements of different -- If there is ambiguity between classifier elements of different
--classifier, classifier linkage order indicates their precedence;
--the first classifier in the link is applied to the traffic first.
-- --
--Entries in the classifier element table serves as the anchor for
--each classification pattern, defined in filter table entries.
--Each classifier element table entry also specifies the subsequent
--downstream Differentiated Services Functional Data Path element
--when the classification pattern is satisfied. Each entry in the
--classifier element table describes one branch of the fan-out
--characteristic of a classifier indicated in [MODEL] section 4.1.
--A classifier is composed of one or more classifier elements.
diffServClfrNextFree OBJECT-TYPE diffServClfrNextFree OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX INTEGER (1..2147483647)
MAX-ACCESS read-only MAX-ACCESS read-only
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This object yields a value when read that is currently unused "This object yields a value when read that is currently unused
for a diffServClfrId instance. If a configuring system attempts for a diffServClfrId instance. If a configuring system attempts
to create a new row in the diffServClfrTable using this value, to create a new row in the diffServClfrTable using this value,
that operation will fail if the value has, in the meantime, been but an instance has been created or is in the process of being
used to create another row that is currently valid." created, that operation will fail."
::= { diffServClassifier 1 } ::= { diffServClassifier 1 }
diffServClfrTable OBJECT-TYPE diffServClfrTable OBJECT-TYPE
SYNTAX SEQUENCE OF DiffServClfrEntry SYNTAX SEQUENCE OF DiffServClfrEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This table enumerates all the diffserv classifier functional "This table enumerates all the diffserv classifier functional
data path elements of this device. The actual classification data path elements of this device. The actual classification
definitions are defined in diffServClfrElementTable entries definitions are defined in diffServClfrElementTable entries
skipping to change at page 32, line 19 skipping to change at page 40, line 25
DESCRIPTION DESCRIPTION
"An entry in the classifier table describes a single classifier. "An entry in the classifier table describes a single classifier.
All classifier elements belonging to the same classifier uses the All classifier elements belonging to the same classifier uses the
classifier's diffServClfrId in their diffServClfrElementClfrId classifier's diffServClfrId in their diffServClfrElementClfrId
attribute." attribute."
INDEX { diffServClfrId } INDEX { diffServClfrId }
::= { diffServClfrTable 1 } ::= { diffServClfrTable 1 }
DiffServClfrEntry ::= SEQUENCE { DiffServClfrEntry ::= SEQUENCE {
diffServClfrId Unsigned32, diffServClfrId Unsigned32,
diffServClfrDataPathStart RowPointer,
diffServClfrStatus RowStatus diffServClfrStatus RowStatus
} }
diffServClfrId OBJECT-TYPE diffServClfrId OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX Unsigned32
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An index that enumerates the classifier entries. The set of such "An index that enumerates the classifier entries. The set of such
identifiers spans the whole agent. Managers should obtain new identifiers spans the whole agent. Managers should obtain new
values for row creation in this table by reading values for row creation in this table by reading
diffServClfrNextFree." diffServClfrNextFree."
::= { diffServClfrEntry 1 } ::= { diffServClfrEntry 1 }
diffServClfrDataPathStart OBJECT-TYPE
SYNTAX RowPointer
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"This selects the first Differentiated Services Functional Data
Path element to handle traffic for this classifier. This
RowPointer should point to an instance of a
diffServClfrElementEntry. It is primarily useful in indicating
the first classifier element in a classifier other than the one
pointed to by diffServClfrDataPathStart, although it may be used
for those classifiers as well.
A value of zeroDotZero in this attribute indicates that no
Differentiated Services treatment is performed on traffic of this
data path. A pointer with the value zeroDotZero normally
terminates a functional data path.
If the row pointed to does not exist, the treatment is as if this
attribute contains a value of zeroDotZero."
::= { diffServClfrEntry 2 }
diffServClfrStatus OBJECT-TYPE diffServClfrStatus 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, deactivation, or "The RowStatus variable controls the activation, deactivation, or
deletion of a classifier. Any writable variable may be modified deletion of a classifier. Any writable variable may be modified
whether the row is active or notInService." whether the row is active or notInService."
::= { diffServClfrEntry 2 } ::= { diffServClfrEntry 3 }
-- Classifier Element Table -- Classifier Element Table
-- --
diffServClfrElementNextFree OBJECT-TYPE diffServClfrElementNextFree OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX INTEGER (1..2147483647)
MAX-ACCESS read-only MAX-ACCESS read-only
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This object yields a value when read that is currently "This object yields a value when read that is currently unused
unused for a diffServClfrElementId instance. If a configuring for a diffServClfrElementId instance. If a configuring system
system attempts to create a new row in the attempts to create a new row in the diffServClfrElementTable
diffServClfrElementTable using this value, that opera- tion will using this value, but an instance has been created or is in the
fail if the value has, in the meantime, been used to process of being created, that operation will fail."
create another row that is currently valid."
::= { diffServClassifier 3 } ::= { diffServClassifier 3 }
diffServClfrElementTable OBJECT-TYPE diffServClfrElementTable OBJECT-TYPE
SYNTAX SEQUENCE OF DiffServClfrElementEntry SYNTAX SEQUENCE OF DiffServClfrElementEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The classifier element table enumerates the relationship between "The classifier element table enumerates the relationship between
classification patterns and subsequent downstream diffserv classification patterns and subsequent downstream Differentiated
functional data path elements. Classification parameters are Services Functional Data Path elements.
defined by entries of filter tables pointed to by diffServClfrElementSpecific points to a filter that specifies the
diffServClfrElementSpecific. There can be filter tables of classification parameters. A classifier may use filter tables of
different types, and they can be inter-mixed and used within a different types together.
classifier. An example of a filter table defined in this MIB is
One example of a filter table defined in this MIB is
diffServSixTupleClfrTable, for IP Multi-Field Classifiers (MFCs). diffServSixTupleClfrTable, for IP Multi-Field Classifiers (MFCs).
Such an entry might identify anything from a single micro-flow
(an identifiable sub-session packet stream directed from one
sending transport to the receiving transport or transports), or
aggregates of those such as the traffic from a host, traffic for
an application, or traffic between two hosts using an application
and a given DSCP. The standard Behavior Aggregate used in the
Differentiated Services Architecture is encoded as a degenerate
case of such an aggregate - the traffic using a particular DSCP
value.
Filter tables for other filter types may be defined elsewhere." Filter tables for other filter types may be defined elsewhere."
REFERENCE REFERENCE
"[MODEL] section 4.1" "[MODEL] section 4.1"
::= { diffServClassifier 4 } ::= { diffServClassifier 4 }
diffServClfrElementEntry OBJECT-TYPE diffServClfrElementEntry OBJECT-TYPE
SYNTAX DiffServClfrElementEntry SYNTAX DiffServClfrElementEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An entry in the classifier element table describes a single "An entry in the classifier element table describes a single
element of the classifier." element of the classifier."
INDEX { diffServClfrElementClfrId, diffServClfrElementId } INDEX { diffServClfrElementClfrId, diffServClfrElementId }
::= { diffServClfrElementTable 1 } ::= { diffServClfrElementTable 1 }
DiffServClfrElementEntry ::= SEQUENCE { DiffServClfrElementEntry ::= SEQUENCE {
diffServClfrElementId Unsigned32, diffServClfrElementClfrId INTEGER,
diffServClfrElementClfrId Unsigned32, diffServClfrElementId INTEGER,
diffServClfrElementPrecedence Unsigned32, diffServClfrElementPrecedence Unsigned32,
diffServClfrElementNext RowPointer, diffServClfrElementNext RowPointer,
diffServClfrElementSpecific RowPointer, diffServClfrElementSpecific RowPointer,
diffServClfrElementStatus RowStatus diffServClfrElementStatus RowStatus
} }
diffServClfrElementId OBJECT-TYPE diffServClfrElementClfrId OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX INTEGER (1..2147483647)
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An index that enumerates the Classifier Element entries. The set "An index that enumerates the classifier entries. The set of such
of such identifiers spans the whole agent. Managers should obtain identifiers spans the whole agent. Managers obtain new values for
new values for row creation in this table by reading row creation in this table by reading diffServClfrNextFree.
diffServClfrElementNextFree."
A classifier Id identifies which classifier this classifier
element is a part of."
::= { diffServClfrElementEntry 1 } ::= { diffServClfrElementEntry 1 }
diffServClfrElementClfrId OBJECT-TYPE diffServClfrElementId OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX INTEGER (1..2147483647)
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"A classifier Id identifies which classifier this classifier "An index that enumerates the Classifier Element entries. The set
element is a part of. This needs to be the value of of such identifiers spans the whole agent. Managers obtain new
diffServClfrId attribute for an existing row in values for row creation in this table by reading
diffServClfrTable." diffServClfrElementNextFree."
::= { diffServClfrElementEntry 2 } ::= { diffServClfrElementEntry 2 }
diffServClfrElementPrecedence OBJECT-TYPE diffServClfrElementPrecedence OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX Unsigned32
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The relative order in which classifier elements are applied: "The relative order in which classifier elements are applied:
higher numbers represent classifier element with higher higher numbers represent classifier element with higher
precedence. Classifier elements with the same order must be precedence. Classifier elements with the same order must be
unambiguous i.e. they must define non-overlapping patterns, and unambiguous i.e. they must define non-overlapping patterns, and
are considered to be applied simultaneously to the traffic are considered to be applied simultaneously to the traffic
stream. Clas- sifier elements with different order may overlap stream. Classifier elements with different order may overlap in
in their filters: the classifier element with the highest order their filters: the classifier element with the highest order
that matches is taken. that matches is taken.
On a given interface, there must be a complete clas- sifier in On a given interface, there must be a complete classifier in
place at all times in the ingress direction. This means place at all times in the ingress direction. This means one or
that there will always be one or more filters that match every more filters must match any possible pattern. There is no such
possible pat- tern that could be presented in an incoming requirement in the egress direction."
packet. There is no such requirement in the egress direction."
DEFVAL { 0 } DEFVAL { 0 }
::= { diffServClfrElementEntry 3 } ::= { diffServClfrElementEntry 3 }
diffServClfrElementNext OBJECT-TYPE diffServClfrElementNext OBJECT-TYPE
SYNTAX RowPointer SYNTAX RowPointer
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This attribute provides one branch of the fan-out functionality "This attribute provides one branch of the fan-out functionality
of a classifier described in [MODEL] section 4.1. of a classifier described in [MODEL] section 4.1.
This selects the next diffserv functional data path element to This selects the next Differentiated Services Functional Data
handle traffic for this data path. This RowPointer should point Path element to handle traffic for this data path. This
to an instance of one of: RowPointer should point to an instance of one of:
diffServClfrEntry diffServClfrElementEntry
diffServMeterEntry diffServMeterEntry
diffServActionEntry diffServActionEntry
diffServAlgDropEntry diffServAlgDropEntry
diffServQEntry diffServQEntry
A value of zeroDotZero in this attribute indicates no further A value of zeroDotZero in this attribute indicates no further
Diffserv treatment is performed on traffic of this data path. The Differentiated Services treatment is performed on traffic of this
use of zeroDotZero is the normal usage for the last functional data path. The use of zeroDotZero is the normal usage for the
data path element of the current data path. last functional data path element of the current data path.
If the row pointed to does not exist, the treatment is as if this If the row pointed to does not exist, the treatment is as if this
attribute contains a value of zeroDotZero." attribute contains a value of zeroDotZero."
::= { diffServClfrElementEntry 4 } ::= { diffServClfrElementEntry 4 }
diffServClfrElementSpecific OBJECT-TYPE diffServClfrElementSpecific 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, filter table, "A pointer to a valid entry in another table, filter table, that
that describes the applicable classification parameters, e.g. an describes the applicable classification parameters, e.g. an entry
entry in diffServSixTupleClfrTable. in diffServSixTupleClfrTable.
If the row pointed to does not exist, the classifier element is If the row pointed to does not exist, the classifier element is
ignored. ignored.
The value zeroDotZero is interpreted to match anything not The value zeroDotZero is interpreted to match anything not
matched by another classifier element - only one such entry may matched by another classifier element - only one such entry may
exist for each classifier." exist for each classifier."
DEFVAL { zeroDotZero } DEFVAL { zeroDotZero }
::= { diffServClfrElementEntry 5 } ::= { diffServClfrElementEntry 5 }
diffServClfrElementStatus OBJECT-TYPE diffServClfrElementStatus 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 element. Any writ- deletion of a classifier element. Any writ- able variable may be
able variable may be modified whether the row is active or modified whether the row is active or notInService."
notInService."
::= { diffServClfrElementEntry 6 } ::= { diffServClfrElementEntry 6 }
-- --
-- IP Six-Tuple Classification Table -- IP Six-Tuple Classification Table
-- --
--Classification based on six different fields in the IP header.
--Functional Data Paths may share definitions by using the same entry.
-- --
diffServSixTupleClfrNextFree OBJECT-TYPE diffServSixTupleClfrNextFree OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX INTEGER (1..2147483647)
MAX-ACCESS read-only MAX-ACCESS read-only
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This object yields a value when read that is currently unused "This object yields a value when read that is currently unused for a
for a diffServSixTupleClfrId instance. diffServSixTupleClfrId instance. If a configuring system attempts to create a
If a configuring system attempts to create a new row new row in the diffServSixTupleClfrTable using this value, but an instance has
in the diffServSixTupleClfrTable using this value, that operation been created or is in the process of being created, that operation will fail."
will fail if the value has, in the meantime, been used
to create another row that is currently valid."
::= { diffServClassifier 5 } ::= { diffServClassifier 5 }
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 filter entries that a system "A table of IP Six-Tuple Classifier filter entries that a system
may use to identify IP traffic." may use to identify IP traffic."
REFERENCE REFERENCE
skipping to change at page 37, line 15 skipping to change at page 46, line 17
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 filter." "An IP Six-Tuple Classifier entry describes a single filter."
INDEX { diffServSixTupleClfrId } INDEX { diffServSixTupleClfrId }
::= { diffServSixTupleClfrTable 1 } ::= { diffServSixTupleClfrTable 1 }
DiffServSixTupleClfrEntry ::= SEQUENCE { DiffServSixTupleClfrEntry ::= SEQUENCE {
diffServSixTupleClfrId Unsigned32, diffServSixTupleClfrId INTEGER,
diffServSixTupleClfrDstAddrType InetAddressType, diffServSixTupleClfrDstAddrType InetAddressType,
diffServSixTupleClfrDstPrefixLength InetAddressPrefixLength,
diffServSixTupleClfrDstAddr InetAddress, diffServSixTupleClfrDstAddr InetAddress,
diffServSixTupleClfrDstPrefixLength InetAddressPrefixLength,
diffServSixTupleClfrSrcAddrType InetAddressType, diffServSixTupleClfrSrcAddrType InetAddressType,
diffServSixTupleClfrSrcPrefixLength InetAddressPrefixLength,
diffServSixTupleClfrSrcAddr InetAddress, diffServSixTupleClfrSrcAddr InetAddress,
diffServSixTupleClfrSrcPrefixLength InetAddressPrefixLength,
diffServSixTupleClfrDscp DscpOrAny, diffServSixTupleClfrDscp DscpOrAny,
diffServSixTupleClfrProtocol Unsigned32, diffServSixTupleClfrProtocol Unsigned32,
diffServSixTupleClfrDstL4PortMin InetPortNumber, diffServSixTupleClfrDstL4PortMin InetPortNumber,
diffServSixTupleClfrDstL4PortMax InetPortNumber, diffServSixTupleClfrDstL4PortMax InetPortNumber,
diffServSixTupleClfrSrcL4PortMin InetPortNumber, diffServSixTupleClfrSrcL4PortMin InetPortNumber,
diffServSixTupleClfrSrcL4PortMax InetPortNumber, diffServSixTupleClfrSrcL4PortMax InetPortNumber,
diffServSixTupleClfrStatus RowStatus diffServSixTupleClfrStatus RowStatus
} }
diffServSixTupleClfrId OBJECT-TYPE diffServSixTupleClfrId OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX INTEGER (1..2147483647)
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An index that enumerates the Six Tuple Classifier filter "An index that enumerates the Six Tuple Classifier filter
entries. The set of such identifiers spans the whole agent. entries. The set of such identifiers spans the whole agent.
Managers should obtain new values for row creation in this table Managers obtain new values for row creation in this table by
by reading diffServSixTupleClfrNextFree." reading diffServSixTupleClfrNextFree."
::= { diffServSixTupleClfrEntry 1 } ::= { diffServSixTupleClfrEntry 1 }
diffServSixTupleClfrDstAddrType OBJECT-TYPE diffServSixTupleClfrDstAddrType OBJECT-TYPE
SYNTAX InetAddressType SYNTAX InetAddressType
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The type of IP destination address used by this classifier "The type of IP destination address used by this classifier
entry." entry."
::= { diffServSixTupleClfrEntry 2 } ::= { diffServSixTupleClfrEntry 2 }
diffServSixTupleClfrDstAddr OBJECT-TYPE
SYNTAX InetAddress
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The IP address to match against the packet's destination IP
address. diffServSixTupleClfrDstPrefixLength indicates the number
of bits that are relevant."
::= { diffServSixTupleClfrEntry 3 }
diffServSixTupleClfrDstPrefixLength OBJECT-TYPE diffServSixTupleClfrDstPrefixLength OBJECT-TYPE
SYNTAX InetAddressPrefixLength SYNTAX InetAddressPrefixLength
UNITS "bits" UNITS "bits"
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The length of the CIDR Prefix carried in "The length of the CIDR Prefix carried in
diffServSixTupleClfrDstAddr. In IPv4 addresses, a length of 0 diffServSixTupleClfrDstAddr. In IPv4 addresses, a length of 0
indicates a match of any address; a length of 32 indicates a indicates a match of any address; a length of 32 indicates a
match of a single host address, and a length between 0 and 32 match of a single host address, and a length between 0 and 32
indicates the use of a CIDR Prefix. IPv6 is similar, except that indicates the use of a CIDR Prefix. IPv6 is similar, except that
prefix lengths range from 0..128." prefix lengths range from 0..128."
DEFVAL { 0 } DEFVAL { 0 }
::= { diffServSixTupleClfrEntry 3 } ::= { diffServSixTupleClfrEntry 4 }
diffServSixTupleClfrSrcAddrType OBJECT-TYPE diffServSixTupleClfrSrcAddrType OBJECT-TYPE
SYNTAX InetAddressType SYNTAX InetAddressType
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The type of IP source address used by this classifier entry." "The type of IP source address used by this classifier entry."
::= { diffServSixTupleClfrEntry 4 } ::= { diffServSixTupleClfrEntry 5 }
diffServSixTupleClfrDstAddr OBJECT-TYPE diffServSixTupleClfrSrcAddr OBJECT-TYPE
SYNTAX InetAddress SYNTAX InetAddress
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The IP address to match against the packet's destination IP "The IP address to match against the packet's source IP address.
address. diffServSixTupleClfrDstPrefixLength indicates the diffServSixTupleClfrSrcPrefixLength indicates the number of bits
number of bits that are relevant." that are relevant."
::= { diffServSixTupleClfrEntry 5 } ::= { diffServSixTupleClfrEntry 6 }
diffServSixTupleClfrSrcPrefixLength OBJECT-TYPE diffServSixTupleClfrSrcPrefixLength OBJECT-TYPE
SYNTAX InetAddressPrefixLength SYNTAX InetAddressPrefixLength
UNITS "bits" UNITS "bits"
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The length of the CIDR Prefix carried in "The length of the CIDR Prefix carried in
diffServSixTupleClfrSrcAddr. In IPv4 addresses, a length of 0 diffServSixTupleClfrSrcAddr. In IPv4 addresses, a length of 0
indicates a match of any address; a length of 32 indicates a indicates a match of any address; a length of 32 indicates a
match of a single host address, and a length between 0 and 32 match of a single host address, and a length between 0 and 32
indicates the use of a CIDR Prefix. IPv6 is similar, except that indicates the use of a CIDR Prefix. IPv6 is similar, except that
prefix lengths range from 0..128." prefix lengths range from 0..128."
DEFVAL { 0 } DEFVAL { 0 }
::= { diffServSixTupleClfrEntry 6 }
diffServSixTupleClfrSrcAddr OBJECT-TYPE
SYNTAX InetAddress
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The IP address to match against the packet's source IP address.
diffServSixTupleClfrSrcPrefixLength indicates the number of bits
that are relevant."
::= { diffServSixTupleClfrEntry 7 } ::= { diffServSixTupleClfrEntry 7 }
diffServSixTupleClfrDscp OBJECT-TYPE diffServSixTupleClfrDscp OBJECT-TYPE
SYNTAX DscpOrAny SYNTAX DscpOrAny
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The value that the DSCP in the packet must have to match this "The value that the DSCP in the packet must have to match this
entry. A value of -1 indicates that a specific DSCP value has not entry. A value of -1 indicates that a specific DSCP value has not
been defined and thus all DSCP values are considered a match." been defined and thus all DSCP values are considered a match."
skipping to change at page 41, line 12 skipping to change at page 50, line 12
whether the row is active or notInService." whether the row is active or notInService."
::= { diffServSixTupleClfrEntry 14 } ::= { diffServSixTupleClfrEntry 14 }
-- --
-- Meters -- Meters
-- --
diffServMeter OBJECT IDENTIFIER ::= { diffServMIBObjects 3 } diffServMeter OBJECT IDENTIFIER ::= { diffServMIBObjects 3 }
-- --
-- This MIB supports a variety of Meters. It includes a specific
-- definition for Token Bucket Meter, which are but one type of
-- specification. Other metering parameter sets can be defined in other MIBs.
-- --
-- Multiple meter elements may be logically cascaded using their
-- diffServMeterSucceedNext and diffServMeterFailNext pointers if
-- required. One example of this might be for an AF PHB implementation
-- that uses multiple level conformance meters. -- that uses multiple level conformance meters.
-- --
-- Cascading of individual meter elements in the MIB is intended to be
-- functionally equivalent to multiple level conformance determination
-- of a packet. The sequential nature of the representation is merely
-- a notational convenience for this MIB.
-- --
-- srTCM meters (RFC 2697) can be specified using a single diffServMeterEntry
-- and diffServTBParamEntry. It specifies the Committed Burst Size
-- token-bucket. diffServTBParamRate reflects the Committed Information Rate.
-- --
-- trTCM meters (RFC 2698) can be specified using a two diffServMeterEntries
-- and diffServTBParamEntries. It specifies the Committed Burst Size in the
-- first token-bucket, and the Excess Burst Size in the second.
-- diffServTBParamRate in the first token bucket reflects the Committed
-- Information Rate.
-- --
-- tswTCM meters (RFC 2859) can be specified using a two diffServMeterEntries
-- and diffServTBParamEntries. It specifies the Committed Target Rate in the
-- first token-bucket, and the Excess Target Rate in the second.
-- diffServTBParamInterval in each token bucket reflects the Average Interval.
diffServMeterNextFree OBJECT-TYPE diffServMeterNextFree OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX INTEGER (1..2147483647)
MAX-ACCESS read-only MAX-ACCESS read-only
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This object yields a value when read that is currently unused "This object yields a value when read that is currently unused
for a diffServMeterId instance. If a configuring system attempts for a diffServMeterId instance. If a configuring system attempts
to create a new row in the diffServMeterTable using this value, to create a new row in the diffServMeterTable using this value,
that operation will fail if the value has, in the meantime, been but an instance has been created or is in the process of being
used to create another row that is currently valid." created, that operation will fail."
::= { diffServMeter 1 } ::= { diffServMeter 1 }
diffServMeterTable OBJECT-TYPE diffServMeterTable OBJECT-TYPE
SYNTAX SEQUENCE OF DiffServMeterEntry SYNTAX SEQUENCE OF DiffServMeterEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This table enumerates specific meters that a system may use to "This table enumerates specific meters that a system may use to
police, or shape, a stream of traffic. The traffic stream to be police, or shape, a stream of traffic. The traffic stream to be
metered is determined by the diffserv functional data path metered is determined by the Differentiated Services Functional
element(s) upstream of the meter i.e. by the object(s) that point Data Path element(s) upstream of the meter i.e. by the object(s)
to each entry in this table. This may include all traffic on an that point to each entry in this table. This may include all
interface. traffic on an interface.
Specific meter details are to be found in table entry referenced Specific meter details are to be found in table entry referenced
by diffServMeterSpecific." by diffServMeterSpecific."
REFERENCE REFERENCE
"[MODEL] section 5.1" "[MODEL] section 5.1"
::= { diffServMeter 2 } ::= { diffServMeter 2 }
diffServMeterEntry OBJECT-TYPE diffServMeterEntry OBJECT-TYPE
SYNTAX DiffServMeterEntry SYNTAX DiffServMeterEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An entry in the meter table describes a single conformance level "An entry in the meter table describes a single conformance level
of a meter." of a meter."
INDEX { diffServMeterId } INDEX { diffServMeterId }
::= { diffServMeterTable 1 } ::= { diffServMeterTable 1 }
DiffServMeterEntry ::= SEQUENCE { DiffServMeterEntry ::= SEQUENCE {
diffServMeterId Unsigned32, diffServMeterId INTEGER,
diffServMeterSucceedNext RowPointer, diffServMeterSucceedNext RowPointer,
diffServMeterFailNext RowPointer, diffServMeterFailNext RowPointer,
diffServMeterSpecific RowPointer, diffServMeterSpecific RowPointer,
diffServMeterStatus RowStatus diffServMeterStatus RowStatus
} }
diffServMeterId OBJECT-TYPE diffServMeterId OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX INTEGER (1..2147483647)
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An index that enumerates the Meter entries. The set of such "An index that enumerates the Meter entries. The set of such
identifiers spans the whole agent. Managers should obtain new identifiers spans the whole agent. Managers obtain new values for
values for row creation in this table by reading row creation in this table by reading diffServMeterNextFree."
diffServMeterNextFree."
::= { diffServMeterEntry 1 } ::= { diffServMeterEntry 1 }
diffServMeterSucceedNext OBJECT-TYPE diffServMeterSucceedNext 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, this selects the next diffserv "If the traffic does conform, this selects the next
functional data path element to handle traffic for this data Differentiated Services Functional Data Path element to handle
path. This RowPointer should point to an instance of one of: traffic for this data path. This RowPointer should point to an
diffServClfrEntry instance of one of:
diffServClfrElementEntry
diffServMeterEntry diffServMeterEntry
diffServActionEntry diffServActionEntry
diffServAlgDropEntry diffServAlgDropEntry
diffServQEntry diffServQEntry
A value of zeroDotZero in this attribute indicates no further A value of zeroDotZero in this attribute indicates that no
Diffserv treatment is performed on traffic of this data path. further Differentiated Services treatment is performed on traffic
The use of zeroDotZero is the normal usage for the last of this data path. The use of zeroDotZero is the normal usage for
functional data path element of the current data path. the last functional data path element of the current data path.
If the row pointed to does not exist, the treatment is as if this If the row pointed to does not exist, the treatment is as if this
attribute contains a value of zeroDotZero." attribute contains a value of zeroDotZero."
DEFVAL { zeroDotZero } DEFVAL { zeroDotZero }
::= { diffServMeterEntry 2 } ::= { diffServMeterEntry 2 }
diffServMeterFailNext OBJECT-TYPE diffServMeterFailNext 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, this selects the next diffserv "If the traffic does not conform, this selects the next
functional data path element to handle traffic for this data Differentiated Services Functional Data Path element to handle
path. This RowPointer should point to an instance of one of: traffic for this data path. This RowPointer should point to an
diffServClfrEntry instance of one of:
diffServClfrElementEntry
diffServMeterEntry diffServMeterEntry
diffServActionEntry diffServActionEntry
diffServAlgDropEntry diffServAlgDropEntry
diffServQEntry diffServQEntry
A value of zeroDotZero in this attribute indicates no further A value of zeroDotZero in this attribute indicates no further
Diffserv treatment is performed on traffic of this data path. Differentiated Services treatment is performed on traffic of this
The use of zeroDotZero is the normal usage for the last data path. The use of zeroDotZero is the normal usage for the
functional data path element of the current data path. last functional data path element of the current data path.
If the row pointed to does not exist, the treatment is as if this If the row pointed to does not exist, the treatment is as if this
attribute contains a value of zeroDotZero." attribute contains a value of zeroDotZero."
DEFVAL { zeroDotZero } DEFVAL { zeroDotZero }
::= { diffServMeterEntry 3 } ::= { diffServMeterEntry 3 }
diffServMeterSpecific OBJECT-TYPE diffServMeterSpecific OBJECT-TYPE
SYNTAX RowPointer SYNTAX RowPointer
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
skipping to change at page 44, line 46 skipping to change at page 53, line 36
deletion of a meter. Any writable variable may be modified deletion of a meter. Any writable variable may be modified
whether the row is active or notInService." whether the row is active or notInService."
::= { diffServMeterEntry 5 } ::= { diffServMeterEntry 5 }
-- --
-- Token Bucket Parameter Table -- Token Bucket Parameter Table
-- --
diffServTBParam OBJECT IDENTIFIER ::= { diffServMIBObjects 4 } diffServTBParam OBJECT IDENTIFIER ::= { diffServMIBObjects 4 }
-- Each entry in the Token Bucket Parameter Table parameterize a single
-- token bucket. Multiple token buckets can be used together to
-- parameterize multiple levels of conformance.
-- --
-- Note that an entry in the Token Bucket Parameter Table can be shared
-- by multiple diffServMeterTable and diffServSchedulerTable entries.
-- --
diffServTBParamNextFree OBJECT-TYPE diffServTBParamNextFree OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX INTEGER (1..2147483647)
MAX-ACCESS read-only MAX-ACCESS read-only
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This object yields a value when read that is currently unused "This object yields a value when read that is currently unused
for a diffServTBParamId instance. If a configuring system for a diffServTBParamId instance. If a configuring system
attempts to create a new row in the diffServTBParamTable using attempts to create a new row in the diffServTBParamTable using
this value, that operation will fail if the value has, in the this value, but an instance has been created or is in the process
meantime, been used to create another row that is currently of being created, that operation will fail."
valid."
::= { diffServTBParam 1 } ::= { diffServTBParam 1 }
diffServTBParamTable OBJECT-TYPE diffServTBParamTable OBJECT-TYPE
SYNTAX SEQUENCE OF DiffServTBParamEntry SYNTAX SEQUENCE OF DiffServTBParamEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This table enumerates a single set of token bucket meter "This table enumerates a single set of token bucket meter
parameters that a system may use to police or shape a stream of parameters that a system may use to police or shape a stream of
traffic. Such meters are modeled here as having a single rate traffic. Such meters are modeled here as having a single rate and
and a single burst size. Multiple entries are used when multiple a single burst size. Multiple entries are used when multiple
rates/burst sizes are needed." rates/burst sizes are needed."
REFERENCE REFERENCE
"[MODEL] section 5.1" "[MODEL] section 5.1"
::= { diffServTBParam 2 } ::= { diffServTBParam 2 }
diffServTBParamEntry OBJECT-TYPE diffServTBParamEntry OBJECT-TYPE
SYNTAX DiffServTBParamEntry SYNTAX DiffServTBParamEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An entry that describes a single set of token bucket "An entry that describes a single set of token bucket
parameters." parameters."
INDEX { diffServTBParamId } INDEX { diffServTBParamId }
::= { diffServTBParamTable 1 } ::= { diffServTBParamTable 1 }
DiffServTBParamEntry ::= SEQUENCE { DiffServTBParamEntry ::= SEQUENCE {
diffServTBParamId Unsigned32, diffServTBParamId INTEGER,
diffServTBParamType OBJECT IDENTIFIER, diffServTBParamType OBJECT IDENTIFIER,
diffServTBParamRate Unsigned32, diffServTBParamRate Unsigned32,
diffServTBParamBurstSize BurstSize, diffServTBParamBurstSize BurstSize,
diffServTBParamInterval Unsigned32, diffServTBParamInterval Unsigned32,
diffServTBParamStatus RowStatus diffServTBParamStatus RowStatus
} }
diffServTBParamId OBJECT-TYPE diffServTBParamId OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX INTEGER (1..2147483647)
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An index that enumerates the TBParam entries. The set of such "An index that enumerates the Token Bucket Parameter entries. The
identifiers spans the whole agent. Managers should obtain new set of such identifiers spans the whole agent. Managers obtain
values for row creation in this table by reading new values for row creation in this table by reading
diffServTBParamNextFree." diffServTBParamNextFree."
::= { diffServTBParamEntry 1 } ::= { diffServTBParamEntry 1 }
diffServTBParamType OBJECT-TYPE diffServTBParamType OBJECT-TYPE
SYNTAX OBJECT IDENTIFIER SYNTAX OBJECT IDENTIFIER
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The Metering/Shaping algorithm associated with the Token/Leaky "The Metering/Shaping algorithm associated with the Token Bucket
Bucket parameters. parameters.
{ 0 0 } indicates this is unknown. zeroDotZero indicates this is unknown.
Standard values for generic algorithms: Standard values for generic algorithms:
diffServTBParamSimpleTokenBucket, diffServTBParamAvgRate, diffServTBParamSimpleTokenBucket, diffServTBParamAvgRate,
diffServTBParamSrTCMBlind, diffServTBParamSrTCMAware, diffServTBParamSrTCMBlind, diffServTBParamSrTCMAware,
diffServTBParamTrTCMBlind, diffServTBParamTrTCMAware, diffServTBParamTrTCMBlind, diffServTBParamTrTCMAware, and
diffServTBParamTswTCM diffServTBParamTswTCM are specified in this MIB as OBJECT-
IDENTITYS; additional values may be further specified in other
are specified in this MIB as OBJECT-IDENTITYS; additional values MIBs."
may be further specified in other MIBs."
REFERENCE REFERENCE
"[MODEL] section 5" "[MODEL] section 5"
::= { diffServTBParamEntry 2 } ::= { diffServTBParamEntry 2 }
diffServTBParamRate OBJECT-TYPE diffServTBParamRate OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX Unsigned32
UNITS "kilobits per second" UNITS "kilobits per second"
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The token-bucket rate, in kilobits per second (kbps). This "The token-bucket rate, in kilobits per second (kbps). This
attribute is used for: 1. CIR in RFC 2697 for srTCM 2. PIR and attribute is used for:
CIR in RFC 2698 for trTCM 3. CTR and PTR in RFC 2859 for TSWTCM 1. CIR in RFC 2697 for srTCM
2. PIR and CIR in RFC 2698 for trTCM
3. CTR and PTR in RFC 2859 for TSWTCM
4. AverageRate used in [MODEL] section 5." 4. AverageRate used in [MODEL] section 5."
::= { diffServTBParamEntry 3 } ::= { diffServTBParamEntry 3 }
diffServTBParamBurstSize OBJECT-TYPE diffServTBParamBurstSize OBJECT-TYPE
SYNTAX BurstSize SYNTAX BurstSize
UNITS "Bytes" UNITS "Bytes"
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The maximum number of bytes in a single transmission burst. "The maximum number of bytes in a single transmission burst. This
This attribute is used for: 1. CBS and EBS in RFC 2697 for srTCM attribute is used for:
2. CBS and PBS in RFC 2698 for trTCM 3. Burst Size used in 1. CBS and EBS in RFC 2697 for srTCM
[MODEL] section 5." 2. CBS and PBS in RFC 2698 for trTCM
3. Burst Size used in [MODEL] section 5."
::= { diffServTBParamEntry 4 } ::= { diffServTBParamEntry 4 }
diffServTBParamInterval OBJECT-TYPE diffServTBParamInterval OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX Unsigned32
UNITS "microseconds" UNITS "microseconds"
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The time interval used with the token bucket. For: 1. Average "The time interval used with the token bucket. For:
Rate Meter, [MODEL] section 5.2.1, - Delta. 2. Simple Token 1. Average Rate Meter, [MODEL] section 5.2.1, - Delta.
Bucket Meter, [MODEL] section 5.1, 2. Simple Token Bucket Meter, [MODEL] section 5.1,
- time interval t. 3. RFC 2859 TSWTCM, - AVG_INTERVAL. 4. - time interval t.
RFC 2697 srTCM, RFC 2698 trTCM, - token bucket 3. RFC 2859 TSWTCM, - AVG_INTERVAL.
4. RFC 2697 srTCM, RFC 2698 trTCM, - token bucket
update time interval." update time interval."
::= { diffServTBParamEntry 5 } ::= { diffServTBParamEntry 5 }
diffServTBParamStatus OBJECT-TYPE diffServTBParamStatus 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, deactivation, or "The RowStatus variable controls the activation, deactivation, or
deletion of a meter. Any writable variable may be modified deletion of a meter. Any writable variable may be modified
whether the row is active or notInService." whether the row is active or notInService."
::= { diffServTBParamEntry 6 } ::= { diffServTBParamEntry 6 }
diffServTBParamSimpleTokenBucket OBJECT-IDENTITY diffServTBParamSimpleTokenBucket OBJECT-IDENTITY
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"Value of tokenBucket(2) indicates the use of Two Parameter Token "The value tokenBucket(2) indicates the use of Two Parameter
Bucket Meter as described in [MODEL] section 5.2.3." Token Bucket Meter as described in [MODEL] section 5.2.3."
REFERENCE REFERENCE
"[MODEL] sections 5 and 7.1.2" "[MODEL] sections 5 and 7.1.2"
::= { diffServTBParam 3 } ::= { diffServTBParam 3 }
diffServTBParamAvgRate OBJECT-IDENTITY diffServTBParamAvgRate OBJECT-IDENTITY
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"Value of avgRate(3) indicates the use of Average Rate Meter as "The value avgRate(3) indicates the use of Average Rate Meter as
described in [MODEL] section 5.2.1." described in [MODEL] section 5.2.1."
REFERENCE REFERENCE
"[MODEL] sections 5 and 7.1.2" "[MODEL] sections 5 and 7.1.2"
::= { diffServTBParam 4 } ::= { diffServTBParam 4 }
diffServTBParamSrTCMBlind OBJECT-IDENTITY diffServTBParamSrTCMBlind OBJECT-IDENTITY
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"Value of srTCMBlind(4) and srTCMAware(5) indicates the use of "The values srTCMBlind(4) and srTCMAware(5) indicate the use of
Single Rate Three Color Marker Metering as defined by RFC 2697, Single Rate Three Color Marker Metering as defined by RFC 2697,
with `Color Blind' and `Color Aware' mode as described by the in either the `Color Blind' and `Color Aware' mode as described
RFC." by the RFC."
REFERENCE REFERENCE
"[MODEL] sections 5 and 7.1.2" "[MODEL] sections 5 and 7.1.2"
::= { diffServTBParam 5 } ::= { diffServTBParam 5 }
diffServTBParamSrTCMAware OBJECT-IDENTITY diffServTBParamSrTCMAware OBJECT-IDENTITY
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"Value of srTCMBlind(4) and srTCMAware(5) indicates the use of "The values srTCMBlind(4) and srTCMAware(5) indicate the use of
Single Rate Three Color Marker Metering as defined by RFC 2697, Single Rate Three Color Marker Metering as defined by RFC 2697,
with `Color Blind' and `Color Aware' mode as described by the in either the `Color Blind' and `Color Aware' mode as described
RFC." by the RFC."
REFERENCE REFERENCE
"[MODEL] sections 5 and 7.1.2" "[MODEL] sections 5 and 7.1.2"
::= { diffServTBParam 6 } ::= { diffServTBParam 6 }
diffServTBParamTrTCMBlind OBJECT-IDENTITY diffServTBParamTrTCMBlind OBJECT-IDENTITY
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"Value of trTCMBlind(6) and trTCMAware(7) indicates the use of "The values trTCMBlind(6) and trTCMAware(7) indicate the use of
Two Rate Three Color Marker Metering as defined by RFC 2698, with Two Rate Three Color Marker Metering as defined by RFC 2698, in
`Color Blind' and `Color Aware' mode as described by the RFC." either the `Color Blind' and `Color Aware' mode as described by
the RFC."
REFERENCE REFERENCE
"[MODEL] sections 5 and 7.1.2" "[MODEL] sections 5 and 7.1.2"
::= { diffServTBParam 7 } ::= { diffServTBParam 7 }
diffServTBParamTrTCMAware OBJECT-IDENTITY diffServTBParamTrTCMAware OBJECT-IDENTITY
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"Value of trTCMBlind(6) and trTCMAware(7) indicates the use of "Value of trTCMBlind(6) and trTCMAware(7) indicates the use of
Two Rate Three Color Marker Metering as defined by RFC 2698, with Two Rate Three Color Marker Metering as defined by RFC 2698, with
`Color Blind' and `Color Aware' mode as described by the RFC." `Color Blind' and `Color Aware' mode as described by the RFC."
REFERENCE REFERENCE
"[MODEL] sections 5 and 7.1.2" "[MODEL] sections 5 and 7.1.2"
::= { diffServTBParam 8 } ::= { diffServTBParam 8 }
diffServTBParamTswTCM OBJECT-IDENTITY diffServTBParamTswTCM OBJECT-IDENTITY
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"Value of tswTCM(8) indicates the use of Time Sliding Window "The value tswTCM(8) indicates the use of Time Sliding Window
Three Color Marker Metering as defined by RFC 2859." Three Color Marker Metering as defined by RFC 2859."
REFERENCE REFERENCE
"[MODEL] sections 5 and 7.1.2" "[MODEL] sections 5 and 7.1.2"
::= { diffServTBParam 9 } ::= { diffServTBParam 9 }
-- --
-- Actions -- Actions
-- --
diffServAction OBJECT IDENTIFIER ::= { diffServMIBObjects 5 } diffServAction OBJECT IDENTIFIER ::= { diffServMIBObjects 5 }
-- --
-- The Action Table allows enumeration of the different -- The Action Table allows enumeration of the different
-- types of actions to be applied to a traffic flow. -- types of actions to be applied to a traffic flow.
-- --
diffServActionNextFree OBJECT-TYPE diffServActionNextFree OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX INTEGER (1..2147483647)
MAX-ACCESS read-only MAX-ACCESS read-only
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This object yields a value when read that is currently unused "This object yields a value when read that is currently unused
for a diffServActionId instance. If a configuring system for a diffServActionId instance. If a configuring system attempts
attempts to create a new row in the diffServActionTable using to create a new row in the diffServActionTable using this value,
this value, that operation will fail if the value has, in the but an instance has been created or is in the process of being
meantime, been used to create another row that is currently created, that operation will fail."
valid."
::= { diffServAction 1 } ::= { diffServAction 1 }
diffServActionTable OBJECT-TYPE diffServActionTable OBJECT-TYPE
SYNTAX SEQUENCE OF DiffServActionEntry 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 performed to a "The Action Table enumerates actions that can be performed to a
stream of traffic. Multiple actions can be concatenated. For stream of traffic. Multiple actions can be concatenated. For
example, after marking a stream of traffic exiting from a meter, example, traffic exiting from a meter may be counted, marked, and
a device can then perform a count action of the conforming or potentially dropped before entering a queue.
non-conforming traffic.
Specific actions are indicated by diffServActionSpecific which Specific actions are indicated by diffServActionSpecific which
points to an entry of a specific action type parameterizing the points to an entry of a specific action type parameterizing the
action in detail." action in detail."
REFERENCE REFERENCE
"[MODEL] section 6." "[MODEL] section 6."
::= { diffServAction 2 } ::= { diffServAction 2 }
diffServActionEntry OBJECT-TYPE diffServActionEntry OBJECT-TYPE
SYNTAX DiffServActionEntry SYNTAX DiffServActionEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"Each entry in the action table allows description of one "Each entry in the action table allows description of one
specific action to be applied to traffic." specific action to be applied to traffic."
INDEX { diffServActionId } INDEX { diffServActionId }
::= { diffServActionTable 1 } ::= { diffServActionTable 1 }
DiffServActionEntry ::= SEQUENCE { DiffServActionEntry ::= SEQUENCE {
diffServActionId Unsigned32, diffServActionId INTEGER,
diffServActionNext RowPointer, diffServActionNext RowPointer,
diffServActionSpecific RowPointer, diffServActionSpecific RowPointer,
diffServActionType INTEGER,
diffServActionStatus RowStatus diffServActionStatus RowStatus
} }
diffServActionId OBJECT-TYPE diffServActionId OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX INTEGER (1..2147483647)
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An index that enumerates the Action entries. The set of such "An index that enumerates the Action entries. The set of such
identifiers spans the whole agent. Managers should obtain new identifiers spans the whole agent. Managers obtain new values for
values for row creation in this table by reading row creation in this table by reading diffServActionNextFree."
diffServActionNextFree."
::= { diffServActionEntry 1 } ::= { diffServActionEntry 1 }
diffServActionNext OBJECT-TYPE diffServActionNext OBJECT-TYPE
SYNTAX RowPointer SYNTAX RowPointer
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This selects the next diffserv functional data path element to "This selects the next Differentiated Services Functional Data
handle traffic for this data path. This RowPointer should point Path element to handle traffic for this data path. This
to an instance of one of: RowPointer should point to an instance of one of:
diffServClfrEntry diffServClfrElementEntry
diffServMeterEntry diffServMeterEntry
diffServActionEntry diffServActionEntry
diffServAlgDropEntry
diffServQEntry diffServQEntry
A value of zeroDotZero in this attribute indicates no further A value of zeroDotZero in this attribute indicates no further
Diffserv treatment is performed on traffic of this data path. Differentiated Services treatment is performed on traffic of this
The use of zeroDotZero is the normal usage for the last data path. The use of zeroDotZero is the normal usage for the
functional data path element of the current data path. last functional data path element of the current data path.
If the row pointed to does not exist, the treatment is as if this If the row pointed to does not exist, the treatment is as if this
attribute contains a value of zeroDotZero." attribute contains a value of zeroDotZero."
DEFVAL { zeroDotZero } DEFVAL { zeroDotZero }
::= { diffServActionEntry 2 } ::= { diffServActionEntry 2 }
diffServActionSpecific OBJECT-TYPE diffServActionSpecific OBJECT-TYPE
SYNTAX RowPointer SYNTAX RowPointer
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"A pointer to an object instance providing additional information "A pointer to an object instance providing additional information
for the type of action indicated by this action table entry. for the type of action indicated by this action table entry.
For the standard actions defined by this MIB module, this should For the standard actions defined by this MIB module, this should
point to one of the following: a diffServDscpMarkActEntry, a point to one of the following: a diffServDscpMarkActEntry, a
diffServCountActEntry. For other actions, it may point to an diffServCountActEntry. For other actions, it may point to an
object instance defined in some other MIB." object instance defined in some other MIB."
::= { diffServActionEntry 3 } ::= { diffServActionEntry 3 }
diffServActionType OBJECT-TYPE
SYNTAX INTEGER {
other(1), -- types not specified here
specific(2), -- follow the Specific pointer
absoluteDrop(3) -- disallow traffic
}
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"Indicates the type of action. The values specific(2) must be
associated with additional information, pointed to by
diffServActionSpecific, with the actual action type indicated by
the object being pointed to. The value absoluteDrop(3) has no
associated information and will have a diffServActionSpecific
value of zeroDotZero. The use of other(1) is outside the scope
of this definition, although the diffServActionSpecific pointer
may be used in this case, to indicate other information."
::= { diffServActionEntry 4 }
diffServActionStatus OBJECT-TYPE 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, deactivation or "The RowStatus variable controls the activation, deactivation or
deletion of an action element. Any writable variable may be deletion of an action element. Any writable variable may be
modified whether the row is active or notInService." modified whether the row is active or notInService."
::= { diffServActionEntry 5 } ::= { diffServActionEntry 4 }
-- DSCP Mark Action Table -- DSCP Mark Action Table
-- --
-- Rows of this table are pointed to by diffServActionSpecific to
-- provide detailed parameters specific to the DSCP Mark action.
-- --
-- A single entry in this table can be shared by multiple
-- diffServActionTable entries.
-- --
diffServDscpMarkActTable OBJECT-TYPE diffServDscpMarkActTable OBJECT-TYPE
SYNTAX SEQUENCE OF DiffServDscpMarkActEntry SYNTAX SEQUENCE OF DiffServDscpMarkActEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This table enumerates specific DSCPs used for marking or "This table enumerates specific DSCPs used for marking or
remarking the DSCP field of IP packets. The entries of this table remarking the DSCP field of IP packets. The entries of this table
may be referenced by a diffServActionSpecific attribute." may be referenced by a diffServActionSpecific attribute."
skipping to change at page 53, line 44 skipping to change at page 62, line 17
DiffServDscpMarkActEntry ::= SEQUENCE { DiffServDscpMarkActEntry ::= SEQUENCE {
diffServDscpMarkActDscp Dscp diffServDscpMarkActDscp Dscp
} }
diffServDscpMarkActDscp OBJECT-TYPE diffServDscpMarkActDscp OBJECT-TYPE
SYNTAX Dscp SYNTAX Dscp
MAX-ACCESS read-only MAX-ACCESS read-only
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The DSCP that this Action uses for marking/remarking traffic. "The DSCP that this Action will store into the DSCP field of the
Note that a DSCP value of -1 is not permitted in this table. It subject. It is quite possible that the only packets subject to
is quite possible that the only packets subject to this Action this Action are already marked with this DSCP. Note also that
are already marked with this DSCP. Note also that Diffserv may Differentiated Services processing may result in packet being
result in packet remarking both on ingress to a network and on marked on both ingress to a network and on egress from it, and
egress from it and it is quite possible that ingress and egress that ingress and egress can occur in the same router.
would occur in the same router."
Normally, index variables are not-accessible. However, in this
case the OID of the entry serves as a OBJECT-IDENTITY indicating
that traffic should be marked in a certain way, and specifying a
second object seems redundant."
::= { diffServDscpMarkActEntry 1 } ::= { diffServDscpMarkActEntry 1 }
-- --
-- Count Action Table -- Count Action Table
-- --
-- Because the MIB structure allows multiple cascading
-- diffServActionEntry be used to describe multiple actions for a
-- data path, the counter became an optional action type. In normal
-- implementation, either a data path has counters or it does not,
-- as opposed to being configurable. The management entity may choose
-- to read the counter or not. Hence it is recommended for implementation
-- that have counters to always configure the count action as the first
-- of multiple actions, for example before a drop action.
-- --
diffServCountActNextFree OBJECT-TYPE diffServCountActNextFree OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX INTEGER (1..2147483647)
MAX-ACCESS read-only MAX-ACCESS read-only
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This object yields a value when read that is currently unused "This object yields a value when read that is currently unused for a
for a diffServCountActId instance. diffServCountActId instance. If a configuring system attempts to create a new
If a configuring system attempts to create a new row row in the diffServCountActTable using this value, but an instance has been
in the diffServCountActTable using this value, that operation created or is in the process of being created, that operation will fail."
will fail if the value has, in the meantime, been used
to create another row that is currently valid."
::= { diffServAction 4 } ::= { diffServAction 4 }
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
"This table contains counters for all the traffic passing through "This table contains counters for all the traffic passing through
an action element." an action element."
REFERENCE REFERENCE
skipping to change at page 55, line 8 skipping to change at page 63, line 29
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 set of "An entry in the count action table describes a single set of
traffic counters." traffic counters."
INDEX { diffServCountActId } INDEX { diffServCountActId }
::= { diffServCountActTable 1 } ::= { diffServCountActTable 1 }
DiffServCountActEntry ::= SEQUENCE { DiffServCountActEntry ::= SEQUENCE {
diffServCountActId Unsigned32, diffServCountActId INTEGER,
diffServCountActOctets Counter32, diffServCountActOctets Counter32,
diffServCountActHCOctets Counter64, diffServCountActHCOctets Counter64,
diffServCountActPkts Counter32, diffServCountActPkts Counter32,
diffServCountActHCPkts Counter64, diffServCountActHCPkts Counter64,
diffServCountActDiscontTime TimeStamp, diffServCountActDiscontTime TimeStamp,
diffServCountActStatus RowStatus diffServCountActStatus RowStatus
} }
diffServCountActId OBJECT-TYPE diffServCountActId OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX INTEGER (1..2147483647)
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An index that enumerates the Count Action entries. The set of "An index that enumerates the Count Action entries. The set of
such identifiers spans the whole agent. Managers should obtain such identifiers spans the whole agent. Managers obtain new
new values for row creation in this table by reading values for row creation in this table by reading
diffServCountActNextFree." diffServCountActNextFree."
::= { diffServCountActEntry 1 } ::= { diffServCountActEntry 1 }
diffServCountActOctets OBJECT-TYPE diffServCountActOctets OBJECT-TYPE
SYNTAX Counter32 SYNTAX Counter32
MAX-ACCESS read-only MAX-ACCESS read-only
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The number of octets at the Action data path element. On high "The number of octets at the Action data path element. On high-
speed devices, this object implements the least significant 32 speed devices, this object implements the least significant 32
bits of diffServCountActHCOctets. bits of diffServCountActHCOctets.
Discontinuities in the value of this counter can occur at re- Discontinuities in the value of this counter can occur at re-
initialization of the management system and at other times as initialization of the management system and at other times as
indicated by the value of diffServCountActDiscontTime for this indicated by the value of diffServCountActDiscontTime for this
entry." entry."
::= { diffServCountActEntry 2 } ::= { diffServCountActEntry 2 }
diffServCountActHCOctets OBJECT-TYPE diffServCountActHCOctets OBJECT-TYPE
SYNTAX Counter64 SYNTAX Counter64
MAX-ACCESS read-only MAX-ACCESS read-only
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The number of octets at the Action data path element. This "The number of octets at the Action data path element. This
object should be used on high speed interfaces. object should be used on high-speed interfaces.
Discontinuities in the value of this counter can occur at re- Discontinuities in the value of this counter can occur at re-
initialization of the management system and at other times as initialization of the management system and at other times as
indicated by the value of diffServCountActDiscontTime for this indicated by the value of diffServCountActDiscontTime for this
entry." entry."
::= { diffServCountActEntry 3 } ::= { diffServCountActEntry 3 }
diffServCountActPkts OBJECT-TYPE diffServCountActPkts OBJECT-TYPE
SYNTAX Counter32 SYNTAX Counter32
MAX-ACCESS read-only MAX-ACCESS read-only
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The number of packets at the Action data path element. On high "The number of packets at the Action data path element. On high-
speed devices, this object implements the least significant 32 speed devices, this object implements the least significant 32
bits of diffServCountActHCPkts. bits of diffServCountActHCPkts.
Discontinuities in the value of this counter can occur at re- Discontinuities in the value of this counter can occur at re-
initialization of the management system and at other times as initialization of the management system and at other times as
indicated by the value of diffServCountActDiscontTime for this indicated by the value of diffServCountActDiscontTime for this
entry." entry."
::= { diffServCountActEntry 4 } ::= { diffServCountActEntry 4 }
diffServCountActHCPkts OBJECT-TYPE diffServCountActHCPkts OBJECT-TYPE
SYNTAX Counter64 SYNTAX Counter64
MAX-ACCESS read-only MAX-ACCESS read-only
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The number of packets at the Action data path element. This "The number of packets at the Action data path element. This
object should be used on high speed interfaces. object should be used on high-speed interfaces.
Discontinuities in the value of this counter can occur at re- Discontinuities in the value of this counter can occur at re-
initialization of the management system and at other times as initialization of the management system and at other times as
indicated by the value of diffServCountActDiscontTime for this indicated by the value of diffServCountActDiscontTime for this
entry." entry."
::= { diffServCountActEntry 5 } ::= { diffServCountActEntry 5 }
diffServCountActDiscontTime OBJECT-TYPE diffServCountActDiscontTime OBJECT-TYPE
SYNTAX TimeStamp SYNTAX TimeStamp
MAX-ACCESS read-only MAX-ACCESS read-only
skipping to change at page 58, line 12 skipping to change at page 66, line 12
whether the row is active or notInService." whether the row is active or notInService."
::= { diffServCountActEntry 7 } ::= { diffServCountActEntry 7 }
-- --
-- Algorithmic Drop Table -- Algorithmic Drop Table
-- --
diffServAlgDrop OBJECT IDENTIFIER ::= { diffServMIBObjects 6 } diffServAlgDrop OBJECT IDENTIFIER ::= { diffServMIBObjects 6 }
diffServAlgDropNextFree OBJECT-TYPE diffServAlgDropNextFree OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX INTEGER (1..2147483647)
MAX-ACCESS read-only MAX-ACCESS read-only
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This object yields a value when read that is currently unused "This object yields a value when read that is currently unused
for a diffServAlgDropId instance. If a configuring system for a diffServAlgDropId instance. If a configuring system
attempts to create a new row in the diffServAlgDropTable using attempts to create a new row in the diffServAlgDropTable using
this value, that operation will fail if the value has, in the this value, but an instance has been created or is in the process
meantime, been used to create another row that is currently of being created, that operation will fail."
valid."
::= { diffServAlgDrop 1 } ::= { diffServAlgDrop 1 }
diffServAlgDropTable OBJECT-TYPE diffServAlgDropTable OBJECT-TYPE
SYNTAX SEQUENCE OF DiffServAlgDropEntry SYNTAX SEQUENCE OF DiffServAlgDropEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The algorithmic drop table contains entries describing an "The algorithmic drop table contains entries describing an
element that drops packets according to some algorithm." element that drops packets according to some algorithm."
REFERENCE REFERENCE
skipping to change at page 58, line 48 skipping to change at page 66, line 47
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An entry describes a process that drops packets according to "An entry describes a process that drops packets according to
some algorithm. Further details of the algorithm type are to be some algorithm. Further details of the algorithm type are to be
found in diffServAlgDropType and with more detail parameter entry found in diffServAlgDropType and with more detail parameter entry
pointed to by diffServAlgDropSpecific when necessary." pointed to by diffServAlgDropSpecific when necessary."
INDEX { diffServAlgDropId } INDEX { diffServAlgDropId }
::= { diffServAlgDropTable 1 } ::= { diffServAlgDropTable 1 }
DiffServAlgDropEntry ::= SEQUENCE { DiffServAlgDropEntry ::= SEQUENCE {
diffServAlgDropId Unsigned32, diffServAlgDropId INTEGER,
diffServAlgDropType INTEGER, diffServAlgDropType INTEGER,
diffServAlgDropNext RowPointer, diffServAlgDropNext RowPointer,
diffServAlgDropQMeasure RowPointer, diffServAlgDropQMeasure RowPointer,
diffServAlgDropQThreshold Unsigned32, diffServAlgDropQThreshold Unsigned32,
diffServAlgDropSpecific RowPointer, diffServAlgDropSpecific RowPointer,
diffServAlgDropOctets Counter32, diffServAlgDropOctets Counter32,
diffServAlgDropHCOctets Counter64, diffServAlgDropHCOctets Counter64,
diffServAlgDropPkts Counter32, diffServAlgDropPkts Counter32,
diffServAlgDropHCPkts Counter64, diffServAlgDropHCPkts Counter64,
diffServAlgDropDiscontinuityTime TimeStamp,
diffServAlgDropStatus RowStatus diffServAlgDropStatus RowStatus
} }
diffServAlgDropId OBJECT-TYPE diffServAlgDropId OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX INTEGER (1..2147483647)
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An index that enumerates the Algorithmic Dropper entries. The "An index that enumerates the Algorithmic Dropper entries. The
set of such identifiers spans the whole agent. Managers should set of such identifiers spans the whole agent. Managers obtain
obtain new values for row creation in this table by reading new values for row creation in this table by reading
diffServAlgDropNextFree." diffServAlgDropNextFree."
::= { diffServAlgDropEntry 1 } ::= { diffServAlgDropEntry 1 }
diffServAlgDropType OBJECT-TYPE diffServAlgDropType OBJECT-TYPE
SYNTAX INTEGER { SYNTAX INTEGER {
other(1), other(1),
tailDrop(2), tailDrop(2),
headDrop(3), headDrop(3),
randomDrop(4) randomDrop(4),
alwaysDrop(5)
} }
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The type of algorithm used by this dropper. A value of "The type of algorithm used by this dropper. The value other(1)
tailDrop(2) or headDrop(3) represents an algorithm that is requires further specification in some other MIB module.
completely specified by this MIB. A value of other(1) requires
further specification in some other MIB module.
The tailDrop(2) algorithm is described as follows: In the tailDrop(2) algorithm, diffServAlgDropQThreshold
diffServAlgDropQThreshold represents the depth of the queue, represents the maximum depth of the queue, pointed to by
pointed to by diffServAlgDropQMeasure, at which all newly diffServAlgDropQMeasure, beyond which all newly arriving packets
arriving packets will be dropped. will be dropped.
The headDrop(3) algorithm is described as follows: if a packet In the headDrop(3) algorithm, if a packet arrives when the
arrives when the current depth of the queue, pointed to by current depth of the queue, pointed to by
diffServAlgDropQMeasure, is at diffServAlgDropQThreshold, packets diffServAlgDropQMeasure, is at diffServAlgDropQThreshold, packets
currently at the head of the queue are dropped to make room for currently at the head of the queue are dropped to make room for
the new packet to be enqueued at the tail of the queue. the new packet to be enqueued at the tail of the queue.
The randomDrop(4) algorithm is described as follows: on packet In the randomDrop(4) algorithm, on packet arrival, an Active
arrival, an algorithm is executed which may randomly drop the Queue Management algorithm is executed which may randomly drop a
packet, or drop other packet(s) from the queue in its place. The packet. This algorithm may be proprietary, and it may drop either
specifics of the algorithm may be proprietary. For this the arriving packet or another packet in the queue.
algorithm, diffServAlgDropSpecific points to a diffServAlgDropSpecific points to a diffServRandomDropEntry that
diffServRandomDropEntry that describes the algorithm. For this describes the algorithm. For this algorithm,
algorithm, diffServAlgQThreshold is understood to be the absolute diffServAlgQThreshold is understood to be the absolute maximum
maximum size of the queue and additional parameters are described size of the queue and additional parameters are described in
in diffServRandomDropTable." diffServRandomDropTable.
The alwaysDrop(5) algorithm is as its name specifies; always
drop. In this case, the other configuration values in this Entry
are not meaningful; There is no useful the queue are not useful.
Therefore, diffServAlgQNext, diffServAlgQMeasure, and
diffServAlgQSpecific are all zeroDotZero."
::= { diffServAlgDropEntry 2 } ::= { diffServAlgDropEntry 2 }
diffServAlgDropNext OBJECT-TYPE diffServAlgDropNext OBJECT-TYPE
SYNTAX RowPointer SYNTAX RowPointer
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This selects the next diffserv functional data path element to "This selects the next Differentiated Services Functional Data
handle traffic for this data path. This RowPointer should point Path element to handle traffic for this data path. This
to an instance of one of: RowPointer should point to an instance of one of:
diffServClfrEntry diffServClfrElementEntry
diffServMeterEntry diffServMeterEntry
diffServActionEntry diffServActionEntry
diffServAlgDropEntry
diffServQEntry diffServQEntry
A value of zeroDotZero in this attribute indicates no further A value of zeroDotZero in this attribute indicates no further
Diffserv treatment is performed on traffic of this data path. Differentiated Services treatment is performed on traffic of this
The use of zeroDotZero is the normal usage for the last data path. The use of zeroDotZero is the normal usage for the
functional data path element of the current data path. last functional data path element of the current data path.
If the row pointed to does not exist, the treatment is as if this If the row pointed to does not exist, the treatment is as if this
attribute contains a value of zeroDotZero." attribute contains a value of zeroDotZero."
::= { diffServAlgDropEntry 3 } ::= { diffServAlgDropEntry 3 }
diffServAlgDropQMeasure OBJECT-TYPE diffServAlgDropQMeasure OBJECT-TYPE
SYNTAX RowPointer SYNTAX RowPointer
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
skipping to change at page 61, line 30 skipping to change at page 69, line 34
DESCRIPTION DESCRIPTION
"Points to a table entry that provides further detail regarding a "Points to a table entry that provides further detail regarding a
drop algorithm. drop algorithm.
Entries with diffServAlgDropType equal to other(1) may have this Entries with diffServAlgDropType equal to other(1) may have this
point to a table defined in another MIB module. point to a table defined in another MIB module.
Entries with diffServAlgDropType equal to randomDrop(4) must have Entries with diffServAlgDropType equal to randomDrop(4) must have
this point to an entry in diffServRandomDropTable. this point to an entry in diffServRandomDropTable.
For all other algorithms, this should take the value For all other algorithms specified in this MIB, this should take
zeroDotzero." the value zeroDotzero."
::= { diffServAlgDropEntry 6 } ::= { diffServAlgDropEntry 6 }
diffServAlgDropOctets 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 octets that have been dropped by this drop "The number of octets that have been dropped by this drop
process. On high speed devices, this object implements the least process. On high-speed devices, this object implements the least
significant 32 bits of diffServAlgDropHCOctets. significant 32 bits of diffServAlgDropHCOctets.
Discontinuities in the value of this counter can occur at re- Discontinuities in the value of this counter can occur at re-
initialization of the management system and at other times as initialization of the management system and at other times as
indicated by the value of ifCounterDiscontinuityTime appropriate indicated by the value of diffServAlgDropDiscontinuityTime for
to this interface." this Entry."
::= { diffServAlgDropEntry 7 } ::= { diffServAlgDropEntry 7 }
diffServAlgDropHCOctets OBJECT-TYPE diffServAlgDropHCOctets 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 this drop "The number of octets that have been dropped by this drop
process. This object should be used on high speed interfaces. process. This object should be used on high-speed interfaces.
Discontinuities in the value of this counter can occur at re- Discontinuities in the value of this counter can occur at re-
initialization of the management system and at other times as initialization of the management system and at other times as
indicated by the value of ifCounterDiscontinuityTime appropriate indicated by the value of diffServAlgDropDiscontinuityTime for
to this interface." this Entry."
::= { diffServAlgDropEntry 8 } ::= { diffServAlgDropEntry 8 }
diffServAlgDropPkts OBJECT-TYPE diffServAlgDropPkts 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 this drop "The number of packets that have been dropped by this drop
process. On high speed devices, this object implements the least process. On high- speed devices, this object implements the least
significant 32 bits of diffServAlgDropHCPkts. significant 32 bits of diffServAlgDropHCPkts.
Discontinuities in the value of this counter can occur at re- Discontinuities in the value of this counter can occur at re-
initialization of the management system and at other times as initialization of the management system and at other times as
indicated by the value of ifCounterDiscontinuityTime appropriate indicated by the value of diffServAlgDropDiscontinuityTime for
to this interface." this Entry."
::= { diffServAlgDropEntry 9 } ::= { diffServAlgDropEntry 9 }
diffServAlgDropHCPkts 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 packets that have been dropped by this drop "The number of packets that have been dropped by this drop
process. This object should be used on high speed interfaces. process. This object should be used on high-speed interfaces.
Discontinuities in the value of this counter can occur at re- Discontinuities in the value of this counter can occur at re-
initialization of the management system and at other times as initialization of the management system and at other times as
indicated by the value of ifCounterDiscontinuityTime appropriate indicated by the value of diffServAlgDropDiscontinuityTime for
to this interface." this Entry."
::= { diffServAlgDropEntry 10 } ::= { diffServAlgDropEntry 10 }
diffServAlgDropDiscontinuityTime OBJECT-TYPE
SYNTAX TimeStamp
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The value of sysUpTime on the most recent occasion at which any
one or more of this entry's counters suffered a discontinuity. If
no such discontinuities have occurred since the last re-
initialization of the local management subsystem, then this
object contains a zero value."
::= { diffServAlgDropEntry 11 }
diffServAlgDropStatus OBJECT-TYPE diffServAlgDropStatus 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, deactivation, or "The RowStatus variable controls the activation, deactivation, or
deletion of this entry. Any writable variable may be modified deletion of this entry. Any writable variable may be modified
whether the row is active or notInService." whether the row is active or notInService."
::= { diffServAlgDropEntry 11 } ::= { diffServAlgDropEntry 12 }
-- --
-- Random Drop Table -- Random Drop Table
-- --
diffServRandomDropNextFree OBJECT-TYPE diffServRandomDropNextFree OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX INTEGER (1..2147483647)
MAX-ACCESS read-only MAX-ACCESS read-only
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This object yields a value when read that is currently unused "This object yields a value when read that is currently unused
for a diffServRandomDropId instance. If a configuring system for a diffServRandomDropId instance. If a configuring system
attempts to create a new row in the diffServRandomDropTable using attempts to create a new row in the diffServRandomDropTable using
this value, that operation will fail if the value has, in the this value, but an instance has been created or is in the process
meantime, been used to create another row that is currently of being created, that operation will fail."
valid."
::= { diffServAlgDrop 3 } ::= { diffServAlgDrop 3 }
diffServRandomDropTable OBJECT-TYPE diffServRandomDropTable OBJECT-TYPE
SYNTAX SEQUENCE OF DiffServRandomDropEntry SYNTAX SEQUENCE OF DiffServRandomDropEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The random drop table contains entries describing a process that "The random drop table contains entries describing a process that
drops packets randomly. Entries in this table is intended to be drops packets randomly. Entries in this table are pointed to by
pointed to by diffServAlgDropSpecific." diffServAlgDropSpecific."
REFERENCE REFERENCE
"[MODEL] section 7.1.3" "[MODEL] section 7.1.3"
::= { diffServAlgDrop 4 } ::= { diffServAlgDrop 4 }
diffServRandomDropEntry OBJECT-TYPE diffServRandomDropEntry OBJECT-TYPE
SYNTAX DiffServRandomDropEntry SYNTAX DiffServRandomDropEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An entry describes a process that drops packets according to a "An entry describes a process that drops packets according to a
random algorithm." random algorithm."
INDEX { diffServRandomDropId } INDEX { diffServRandomDropId }
::= { diffServRandomDropTable 1 } ::= { diffServRandomDropTable 1 }
DiffServRandomDropEntry ::= SEQUENCE { DiffServRandomDropEntry ::= SEQUENCE {
diffServRandomDropId Unsigned32, diffServRandomDropId INTEGER,
diffServRandomDropMinThreshBytes Unsigned32, diffServRandomDropMinThreshBytes Unsigned32,
diffServRandomDropMinThreshPkts Unsigned32, diffServRandomDropMinThreshPkts Unsigned32,
diffServRandomDropMaxThreshBytes Unsigned32, diffServRandomDropMaxThreshBytes Unsigned32,
diffServRandomDropMaxThreshPkts Unsigned32, diffServRandomDropMaxThreshPkts Unsigned32,
diffServRandomDropProbMax Unsigned32, diffServRandomDropProbMax INTEGER,
diffServRandomDropInvWeight Unsigned32, diffServRandomDropWeight INTEGER,
diffServRandomDropSamplingRate Unsigned32, diffServRandomDropSamplingRate INTEGER,
diffServRandomDropStatus RowStatus diffServRandomDropStatus RowStatus
} }
diffServRandomDropId OBJECT-TYPE diffServRandomDropId OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX INTEGER (1..2147483647)
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An index that enumerates the Random Drop entries. The set of "An index that enumerates the Random Drop entries. The set of
such identifiers spans the whole agent. Managers should obtain such identifiers spans the whole agent. Managers obtain new
new values for row creation in this table by reading values for row creation in this table by reading
diffServRandomDropNextFree." diffServRandomDropNextFree."
::= { diffServRandomDropEntry 1 } ::= { diffServRandomDropEntry 1 }
diffServRandomDropMinThreshBytes OBJECT-TYPE diffServRandomDropMinThreshBytes OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX Unsigned32
UNITS "bytes" UNITS "bytes"
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The average queue depth in bytes, beyond which traffic has a "The average queue depth in bytes, beyond which traffic has a
skipping to change at page 65, line 29 skipping to change at page 73, line 42
DESCRIPTION DESCRIPTION
"The average queue depth beyond which traffic has a probability "The average queue depth beyond which traffic has a probability
indicated by diffServRandomDropProbMax of being dropped or indicated by diffServRandomDropProbMax of being dropped or
marked. Note that this differs from the physical queue limit, marked. Note that this differs from the physical queue limit,
which is stored in diffServAlgDropQThreshold. Changes in this which is stored in diffServAlgDropQThreshold. Changes in this
variable may or may not be reflected in the reported value of variable may or may not be reflected in the reported value of
diffServRandomDropMaxThreshBytes." diffServRandomDropMaxThreshBytes."
::= { diffServRandomDropEntry 5 } ::= { diffServRandomDropEntry 5 }
diffServRandomDropProbMax OBJECT-TYPE diffServRandomDropProbMax OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX INTEGER (0..1000)
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The worst case random drop probability, expressed in drops per "The worst case random drop probability, expressed in drops per
thousand packets. thousand packets.
For example, if every packet may be dropped in the worst case For example, if in the worst case every arriving packet may be
(100%), this has the value 1000. Alternatively, if in the worst dropped (100%) for a period, this has the value 1000.
case one percent (1%) of traffic may be dropped, it has the value Alternatively, if in the worst case only one percent (1%) of
10." traffic may be dropped, it has the value 10."
::= { diffServRandomDropEntry 6 } ::= { diffServRandomDropEntry 6 }
diffServRandomDropInvWeight OBJECT-TYPE diffServRandomDropWeight OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX INTEGER (0..65536)
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The weighting of past history in affecting the calculation of "The weighting of past history in affecting the Exponentially
the current queue average. The moving average of the queue depth Weighted Moving Average function which calculates the current
uses the inverse of this value as the factor for the new queue average queue depth. The equation uses
depth, and one minus that inverse as the factor for the diffServRandomDropWeight/65536 as the coefficient for the new
historical average. sample in the equation, and (65536 -
diffServRandomDropWeight)/65536 as the coefficient of the old
value.
Implementations may choose to limit the acceptable set of values Implementations may limit the values of diffServRandomDropWeight
to a specified set, such as powers of 2." to a subset of the possible range of values, such as powers of
two. Doing this would facilitate implementation of the
Exponentially Weighted Moving Average using shift instructions or
registers."
::= { diffServRandomDropEntry 7 } ::= { diffServRandomDropEntry 7 }
diffServRandomDropSamplingRate OBJECT-TYPE diffServRandomDropSamplingRate OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX INTEGER (0..1000000)
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The number of times per second the queue is sampled for queue "The number of times per second the queue is sampled for queue
average calculation. A value of zero means the queue is sampled average calculation. A value of zero is used to mean that the
approximately each time a packet is enqueued (or dequeued)." queue is sampled approximately each time a packet is enqueued (or
dequeued)."
::= { diffServRandomDropEntry 8 } ::= { diffServRandomDropEntry 8 }
diffServRandomDropStatus OBJECT-TYPE diffServRandomDropStatus 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, deactivation, or "The RowStatus variable controls the activation, deactivation, or
deletion of this entry. Any writable variable may be modified deletion of this entry. Any writable variable may be modified
whether the row is active or notInService." whether the row is active or notInService."
::= { diffServRandomDropEntry 9 } ::= { diffServRandomDropEntry 9 }
-- --
-- Queue Table -- Queue Table
-- --
diffServQueue OBJECT IDENTIFIER ::= { diffServMIBObjects 7 } diffServQueue OBJECT IDENTIFIER ::= { diffServMIBObjects 7 }
-- --
-- An entry of diffServQTable represents a FIFO queue Differentiated
-- Services Functional Data Path element as described in [MODEL] section
-- 7.1.1. Note that the specification of scheduling parameters for a
-- queue as part of the input to a scheduler functional data path element
-- as described in [MODEL] section 7.1.2. This allows building of
-- hierarchical queuing/scheduling. A queue therefore has these attributes:
-- 1. Which scheduler will service this queue, diffServQNext. -- 1. Which scheduler will service this queue, diffServQNext.
-- 2. How the scheduler will service this queue, with respect -- 2. How the scheduler will service this queue, with respect
-- to all the other queues the same scheduler needs to service, -- to all the other queues the same scheduler needs to service,
-- diffServQRate. -- diffServQRate.
-- --
-- Note that upstream Differentiated Services Functional Data Path
-- elements may point to a shared diffServQTable entry as described
-- in [MODEL] section 7.1.1.
-- --
diffServQNextFree OBJECT-TYPE diffServQNextFree OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX INTEGER (1..2147483647)
MAX-ACCESS read-only MAX-ACCESS read-only
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This object yields a value when read that is currently unused "This object yields a value when read that is currently unused
for a diffServQId instance. If a configuring system attempts to for a diffServQId instance. If a configuring system attempts to
create a new row in the diffServQTable using this value, that create a new row in the diffServQTable using this value, but an
operation will fail if the value has, in the meantime, been used instance has been created or is in the process of being created,
to create another row that is currently valid." that operation will fail."
::= { diffServQueue 1 } ::= { diffServQueue 1 }
diffServQTable OBJECT-TYPE diffServQTable OBJECT-TYPE
SYNTAX SEQUENCE OF DiffServQEntry SYNTAX SEQUENCE OF DiffServQEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The Queue Table enumerates the individual queues." "The Queue Table enumerates the individual queues."
REFERENCE REFERENCE
"[MODEL] section 7.1.1" "[MODEL] section 7.1.1"
skipping to change at page 68, line 18 skipping to change at page 76, line 13
SYNTAX DiffServQEntry SYNTAX DiffServQEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An entry in the Queue Table describes a single queue. With each "An entry in the Queue Table describes a single queue. With each
entry belonging to one and only one data path." entry belonging to one and only one data path."
INDEX { diffServQId } INDEX { diffServQId }
::= { diffServQTable 1 } ::= { diffServQTable 1 }
DiffServQEntry ::= SEQUENCE { DiffServQEntry ::= SEQUENCE {
diffServQId Unsigned32, diffServQId INTEGER,
diffServQNext RowPointer, diffServQNext RowPointer,
diffServQRate RowPointer, diffServQRate RowPointer,
diffServQShaper RowPointer, diffServQShaper RowPointer,
diffServQStatus RowStatus diffServQStatus RowStatus
} }
diffServQId OBJECT-TYPE diffServQId OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX INTEGER (1..2147483647)
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An index that enumerates the Queue entries. The set of such "An index that enumerates the Queue entries. The set of such
identifiers spans the whole agent. Managers should obtain new identifiers spans the whole agent. Managers obtain new values for
values for row creation in this table by reading row creation in this table by reading diffServQNextFree."
diffServQNextFree."
::= { diffServQEntry 1 } ::= { diffServQEntry 1 }
diffServQNext OBJECT-TYPE diffServQNext OBJECT-TYPE
SYNTAX RowPointer SYNTAX RowPointer
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This selects the next diffserv functional data path element to "This selects the next Differentiated Services Functional Data
handle traffic for this data path. This RowPointer must point to Path element to handle traffic for this data path. This
a diffServSchedulerEntry. RowPointer must point to a diffServSchedulerEntry.
A value of zeroDotZero in this attribute indicates an incomplete A value of zeroDotZero in this attribute indicates an incomplete
diffServQEntry instance. In such a case, the entry has no diffServQEntry instance. In such a case, the entry has no
operational effect, since it has no parameters to give it operational effect, since it has no parameters to give it
meaning. meaning.
If the row pointed to does not exist, the treatment is as if this If the row pointed to does not exist, the treatment is as if this
attribute contains a value of zeroDotZero." attribute contains a value of zeroDotZero."
::= { diffServQEntry 2 } ::= { diffServQEntry 2 }
diffServQRate OBJECT-TYPE diffServQRate OBJECT-TYPE
SYNTAX RowPointer SYNTAX RowPointer
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This RowPointer indicates the entry in diffServAssuredRateTable "This RowPointer indicates the diffServAssuredRateEntry that the
the scheduler, pointed to by diffServQNext, should use to service scheduler, pointed to by diffServQNext, should use to service
this queue. this queue.
A value of zeroDotZero in this attribute indicates an incomplete If the row pointed to is zeroDotZero or does not exist, the
diffServQEntry instance. An illegal configuration. minimum rate is unspecified."
If the row pointed to does not exist, the treatment is as if this
attribute contains a value of zeroDotZero."
::= { diffServQEntry 3 } ::= { diffServQEntry 3 }
diffServQShaper OBJECT-TYPE diffServQShaper OBJECT-TYPE
SYNTAX RowPointer SYNTAX RowPointer
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This RowPointer indicates the entry in diffServShapingRateTable "This RowPointer indicates the diffServShapingRateEntry that the
the scheduler, pointed to by diffServQNext, should use to service scheduler, pointed to by diffServQNext, should use to service
this queue. this queue.
A value of zeroDotZero in this attribute indicates an incomplete If the row pointed to does not exist or is zeroDotZero, the
diffServQEntry instance. An illegal configuration. maximum rate is the line speed of the interface."
If the row pointed to does not exist, the treatment is as if this
attribute contains a value of zeroDotZero."
::= { diffServQEntry 4 } ::= { diffServQEntry 4 }
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, deactivation, or "The RowStatus variable controls the activation, deactivation, or
deletion of a queue. Any writable variable may be modified deletion of a queue. Any writable variable may be modified
whether the row is active or notInService." whether the row is active or notInService."
skipping to change at page 70, line 4 skipping to change at page 77, line 39
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The RowStatus variable controls the activation, deactivation, or "The RowStatus variable controls the activation, deactivation, or
deletion of a queue. Any writable variable may be modified deletion of a queue. Any writable variable may be modified
whether the row is active or notInService." whether the row is active or notInService."
::= { diffServQEntry 5 } ::= { diffServQEntry 5 }
-- --
-- Scheduler Table -- Scheduler Table
-- --
diffServScheduler OBJECT IDENTIFIER ::= { diffServMIBObjects 8 } diffServScheduler OBJECT IDENTIFIER ::= { diffServMIBObjects 8 }
-- --
-- A Scheduler Entry represents a packet scheduler, such as a priority
-- scheduler or a WFQ scheduler. It provides flexibility for multiple
-- scheduling algorithms, each servicing multiple queues, to be used on
-- the same logical/physical interface.
-- --
-- Note that upstream queues or schedulers specify several of the
-- scheduler's parameters. These must be properly specified if the
-- scheduler is to behave as expected.
-- --
-- The diffServSchedulerShaper attribute specifies the parameters
-- when a scheduler's output is sent to another scheduler. This is
-- used in building hierarchical queues or schedulers.
--
-- More discussion of the scheduler functional data path element is
-- in [MODEL] section 7.1.2.
-- --
diffServSchedulerNextFree OBJECT-TYPE diffServSchedulerNextFree OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX INTEGER (1..2147483647)
MAX-ACCESS read-only MAX-ACCESS read-only
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This object yields a value when read that is currently unused "This object yields a value when read that is currently unused
for a diffServSchedulerId instance. If a configuring system for a diffServSchedulerId instance. If a configuring system
attempts to create a new row in the diffServSchedulerTable using attempts to create a new row in the diffServSchedulerTable using
this value, that operation will fail if the value has, in the this value, but an instance has been created or is in the process
meantime, been used to create another row that is currently of being created, that operation will fail."
valid."
::= { diffServScheduler 1 } ::= { diffServScheduler 1 }
diffServSchedulerTable OBJECT-TYPE diffServSchedulerTable OBJECT-TYPE
SYNTAX SEQUENCE OF DiffServSchedulerEntry SYNTAX SEQUENCE OF DiffServSchedulerEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The Scheduler Table enumerates packet schedulers. Multiple "The Scheduler Table enumerates packet schedulers. Multiple
scheduling algorithms can be used on a given data path, with each scheduling algorithms can be used on a given data path, with each
algorithm described by one diffServSchedulerEntry." algorithm described by one diffServSchedulerEntry."
skipping to change at page 71, line 18 skipping to change at page 78, line 50
SYNTAX DiffServSchedulerEntry SYNTAX DiffServSchedulerEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An entry in the Scheduler Table describing a single instance of "An entry in the Scheduler Table describing a single instance of
a scheduling algorithm." a scheduling algorithm."
INDEX { diffServSchedulerId } INDEX { diffServSchedulerId }
::= { diffServSchedulerTable 1 } ::= { diffServSchedulerTable 1 }
DiffServSchedulerEntry ::= SEQUENCE { DiffServSchedulerEntry ::= SEQUENCE {
diffServSchedulerId Unsigned32, diffServSchedulerId INTEGER,
diffServSchedulerNext RowPointer, diffServSchedulerNext RowPointer,
diffServSchedulerMethod OBJECT IDENTIFIER, diffServSchedulerMethod OBJECT IDENTIFIER,
diffServSchedulerRate RowPointer, diffServSchedulerRate RowPointer,
diffServSchedulerShaper RowPointer, diffServSchedulerShaper RowPointer,
diffServSchedulerStatus RowStatus diffServSchedulerStatus RowStatus
} }
diffServSchedulerId OBJECT-TYPE diffServSchedulerId OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX INTEGER (1..2147483647)
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An index that enumerates the Scheduler entries. The set of such "An index that enumerates the Scheduler entries. The set of such
identifiers spans the whole agent. Managers should obtain new identifiers spans the whole agent. Managers obtain new values for
values for row creation in this table by reading row creation in this table by reading diffServSchedulerNextFree."
diffServSchedulerNextFree."
::= { diffServSchedulerEntry 1 } ::= { diffServSchedulerEntry 1 }
diffServSchedulerNext OBJECT-TYPE diffServSchedulerNext OBJECT-TYPE
SYNTAX RowPointer SYNTAX RowPointer
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This selects the next diffserv functional data path element to "This selects the next Differentiated Services Functional Data
handle traffic for this data path. This RowPointer should point Path element to handle traffic for this data path. This
to an instance of one of: RowPointer should point to an instance of one of:
diffServSchedulerEntry diffServSchedulerEntry
diffServQEntry As indicated by [MODEL] section 7.1.4. diffServQEntry as indicated by [MODEL] section 7.1.4.
But this RowPointer can also point to an instance of: However, this RowPointer may also point to an instance of:.
diffServClfrEntry diffServClfrElementEntry
diffServMeterEntry diffServMeterEntry
diffServActionEntry diffServActionEntry
diffServAlgDropEntry For building of multiple TCBs for the same diffServAlgDropEntry to extend the same data path.
data path.
This should point to another diffServSchedulerEntry for This should point to another diffServSchedulerEntry for
implementation of multiple scheduler methods for the same data implementation of multiple scheduler methods for the same data
path, and for implementation of hierarchical schedulers. path, and for implementation of hierarchical schedulers.
A value of zeroDotZero in this attribute indicates no further If the row pointed to does not exist or is zeroDotZero, no
Diffserv treatment is performed on traffic of this data path. further Differentiated Services treatment is performed on traffic
The use of zeroDotZero is the normal usage for the last of this data path."
functional data path element of the current data path.
If the row pointed to does not exist, the treatment is as if this
attribute contains a value of zeroDotZero."
DEFVAL { zeroDotZero } DEFVAL { zeroDotZero }
::= { diffServSchedulerEntry 2 } ::= { diffServSchedulerEntry 2 }
diffServSchedulerMethod OBJECT-TYPE diffServSchedulerMethod OBJECT-TYPE
SYNTAX OBJECT IDENTIFIER SYNTAX OBJECT IDENTIFIER
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The scheduling algorithm used by this Scheduler. { 0 0 } "The scheduling algorithm used by this Scheduler. zeroDotZero
indicates this is unknown. Standard values for generic indicates that this is unknown. Standard values for generic
algorithms: diffServSchedulerPriority, diffServSchedulerWRR, and algorithms: diffServSchedulerPriority, diffServSchedulerWRR, and
diffServSchedulerWFQ are specified in this MIB; additional values diffServSchedulerWFQ are specified in this MIB; additional values
may be further specified in other MIBs." may be further specified in other MIBs."
REFERENCE REFERENCE
"[MODEL] section 7.1.2" "[MODEL] section 7.1.2"
::= { diffServSchedulerEntry 3 } ::= { diffServSchedulerEntry 3 }
diffServSchedulerRate OBJECT-TYPE diffServSchedulerRate OBJECT-TYPE
SYNTAX RowPointer SYNTAX RowPointer
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This RowPointer indicates the entry in diffServAssuredRateTable "This RowPointer indicates the entry in diffServAssuredRateTable
which indicates the priority or minimum output rate from this which indicates the priority or minimum output rate from this
scheduler. This attribute is only used when there is more than scheduler. This attribute is used only when there is more than
one level of scheduler. It should have the value of zeroDotZero one level of scheduler. It should have the value of zeroDotZero
when not used." when not used."
DEFVAL { zeroDotZero } DEFVAL { zeroDotZero }
::= { diffServSchedulerEntry 4 } ::= { diffServSchedulerEntry 4 }
diffServSchedulerShaper OBJECT-TYPE diffServSchedulerShaper OBJECT-TYPE
SYNTAX RowPointer SYNTAX RowPointer
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This RowPointer indicates the entry in diffServShapingRateTable "This RowPointer indicates the entry in diffServShapingRateTable
which indicates the maximum output rate from this scheduler. which indicates the maximum output rate from this scheduler. This
This attribute is only used when there is more than one level of attribute is used only when there is more than one level of
scheduler. It should have the value of zeroDotZero when not scheduler. It should have the value of zeroDotZero when not
used." used."
DEFVAL { zeroDotZero } DEFVAL { zeroDotZero }
::= { diffServSchedulerEntry 5 } ::= { diffServSchedulerEntry 5 }
diffServSchedulerStatus 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, deactivation, or "The RowStatus variable controls the activation, deactivation, or
deletion of a scheduler. Any writable variable may be modified deletion of a scheduler. Any writable variable may be modified
whether the row is active or notInService." whether the row is active or notInService."
::= { diffServSchedulerEntry 6 } ::= { diffServSchedulerEntry 6 }
diffServSchedulerPriority OBJECT-IDENTITY diffServSchedulerPriority OBJECT-IDENTITY
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"For use with diffServSchedulerMethod to indicate Priority "When the next scheduler uses Priority scheduling, defined as an
scheduling method, defined as an algorithm in which the presence algorithm in which the presence of data in a queue or set of
of data in a queue or set of queues absolutely precludes dequeue queues absolutely precludes dequeue from another queue or set of
from another queue or set of queues. Notice attributes from queues, this indicates the relative priority of the traffic
diffServAssuredRateEntry of the queues/schedulers feeding this stream. Note that attributes from diffServAssuredRateEntry of the
scheduler are used when determining the next packet to schedule." queues/schedulers feeding this scheduler are used when
determining the next packet to schedule."
REFERENCE REFERENCE
"[MODEL] section 7.1.2" "[MODEL] section 7.1.2"
::= { diffServScheduler 3 } ::= { diffServScheduler 3 }
diffServSchedulerWRR OBJECT-IDENTITY diffServSchedulerWRR OBJECT-IDENTITY
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"For use with diffServSchedulerMethod to indicate Weighted Round "For use with diffServSchedulerMethod to indicate Weighted Round
Robin scheduling method, defined as any algorithm in which a set Robin scheduling method, defined as any algorithm in which a set
of queues are visited in a fixed order, and varying amounts of of queues are visited in a fixed order, and varying amounts of
skipping to change at page 74, line 11 skipping to change at page 81, line 39
REFERENCE REFERENCE
"[MODEL] section 7.1.2" "[MODEL] section 7.1.2"
::= { diffServScheduler 4 } ::= { diffServScheduler 4 }
diffServSchedulerWFQ OBJECT-IDENTITY diffServSchedulerWFQ OBJECT-IDENTITY
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"For use with diffServSchedulerMethod to indicate Weighted Fair "For use with diffServSchedulerMethod to indicate Weighted Fair
Queuing scheduling method, defined as any algorithm in which a Queuing scheduling method, defined as any algorithm in which a
set of queues are conceptually visited in some order, to set of queues are conceptually visited in some order, to
implement an average output rate by class. Notice attributes implement an average output rate by class. Notice attributes from
from diffServAssuredRateEntry of the queues/schedulers feeding diffServAssuredRateEntry of the queues/schedulers feeding this
this scheduler are used when determining the next packet to scheduler are used when determining the next packet to schedule."
schedule."
REFERENCE REFERENCE
"[MODEL] section 7.1.2" "[MODEL] section 7.1.2"
::= { diffServScheduler 5 } ::= { diffServScheduler 5 }
-- --
-- Assured Rate Parameters Table -- Assured Rate Parameters Table
-- --
-- The parameters used by a scheduler for its inputs or outputs are -- The parameters used by a scheduler for its inputs or outputs are
-- maintained separately from the Queue or Scheduler table entries
-- for reusability reasons and so that they may be used by both queues
-- and schedulers. This follows the approach for separation of data
-- path elements from parameterization that is used throughout this MIB.
-- Use of these Assured Rate Parameter Table entries by Queues and
-- Schedulers allows the modeling of hierarchical scheduling systems.
-- --
-- Specifically, a Scheduler has one or more inputs and one output.
-- Any queue feeding a scheduler, or any scheduler which feeds a second
-- scheduler, might specify a minimum transfer rate by pointing to an
-- Assured Rate Parameter Table entry.
-- --
-- The diffServAssuredRatePriority/Abs/Rel attributes are used as -- The diffServAssuredRatePriority/Abs/Rel attributes are used as
-- parameters to the work-conserving portion of a scheduler: -- parameters to the work-conserving portion of a scheduler:
-- "work-conserving" implies that the scheduler can continue to emit
-- data as long as there is data available at its input(s). This has
-- the effect of guaranteeing a certain priority relative to other
-- scheduler inputs and/or a certain minimum proportion of the available
-- output bandwidth. Properly configured, this means a certain minimum
-- rate, which may be exceeded should traffic be available should there
-- be spare bandwidth after all other classes have had opportunities to
-- consume their own minimum rates.
-- --
diffServAssuredRateNextFree OBJECT-TYPE diffServAssuredRateNextFree OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX INTEGER (1..2147483647)
MAX-ACCESS read-only MAX-ACCESS read-only
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This object yields a value when read that is currently unused "This object yields a value when read that is currently unused
for a diffServAssuredRateId instance. If a configuring system for a diffServAssuredRateId instance. If a configuring system
attempts to create a new row in the diffServAssuredRateTable attempts to create a new row in the diffServAssuredRateTable
using this value, that operation will fail if the value has, in using this value, but an instance has been created or is in the
the meantime, been used to create another row that is currently process of being created, that operation will fail."
valid."
::= { diffServScheduler 6 } ::= { diffServScheduler 6 }
diffServAssuredRateTable OBJECT-TYPE diffServAssuredRateTable OBJECT-TYPE
SYNTAX SEQUENCE OF DiffServAssuredRateEntry SYNTAX SEQUENCE OF DiffServAssuredRateEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The Assured Rate Parameters Table enumerates individual sets of "The Assured Rate Parameters Table enumerates individual sets of
scheduling parameter that can be used/reused by Queues and scheduling parameter that can be used/reused by Queues and
Schedulers." Schedulers."
skipping to change at page 76, line 23 skipping to change at page 83, line 19
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An entry in the Assured Rate Parameters Table describes a single "An entry in the Assured Rate Parameters Table describes a single
set of scheduling parameters for use by one or more queues or set of scheduling parameters for use by one or more queues or
schedulers." schedulers."
INDEX { diffServAssuredRateId } INDEX { diffServAssuredRateId }
::= { diffServAssuredRateTable 1 } ::= { diffServAssuredRateTable 1 }
DiffServAssuredRateEntry ::= SEQUENCE { DiffServAssuredRateEntry ::= SEQUENCE {
diffServAssuredRateId Unsigned32, diffServAssuredRateId INTEGER,
diffServAssuredRatePriority Unsigned32, diffServAssuredRatePriority Unsigned32,
diffServAssuredRateAbs Unsigned32, diffServAssuredRateAbs Unsigned32,
diffServAssuredRateRel Unsigned32, diffServAssuredRateRel Unsigned32,
diffServAssuredRateStatus RowStatus diffServAssuredRateStatus RowStatus
} }
diffServAssuredRateId OBJECT-TYPE diffServAssuredRateId OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX INTEGER (1..2147483647)
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An index that enumerates the Scheduler Parameter entries. The "An index that enumerates the Scheduler Parameter entries. The
set of such identifiers spans the whole agent. Managers should set of such identifiers spans the whole agent. Managers obtain
obtain new values for row creation in this table by reading new values for row creation in this table by reading
diffServAssuredRateNextFree." diffServAssuredRateNextFree."
::= { diffServAssuredRateEntry 1 } ::= { diffServAssuredRateEntry 1 }
diffServAssuredRatePriority OBJECT-TYPE diffServAssuredRatePriority OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX Unsigned32
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The priority of this input to the associated scheduler, relative "The priority of this input to the associated scheduler, relative
to the scheduler's other inputs." to the scheduler's other inputs."
::= { diffServAssuredRateEntry 2 } ::= { diffServAssuredRateEntry 2 }
diffServAssuredRateAbs OBJECT-TYPE diffServAssuredRateAbs OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX Unsigned32
UNITS "kilobits per second" UNITS "kilobits per second"
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The minimum absolute rate, in kilobits/sec, that a downstream "The minimum absolute rate, in kilobits/sec, that a downstream
scheduler element should allocate to this queue. If the value is scheduler element should allocate to this queue. If the value is
zero, then there is effectively no minimum rate guarantee. If zero, then there is effectively no minimum rate guarantee. If the
the value is non-zero, the scheduler will assure the servicing of value is non-zero, the scheduler will assure the servicing of
this queue to at least this rate. this queue to at least this rate.
Note that this attribute's value is coupled to that of Note that this attribute value and that of diffServAssuredRateRel
diffServAssuredRateRel: changes to one will affect the value of are coupled: changes to one will affect the value of the other.
the other. They are linked by the following equation: They are linked by the following equation:
diffServAssuredRateRel = diffServAssuredRateAbs * 10000/ifSpeed diffServAssuredRateRel = diffServAssuredRateAbs * 1000/ifSpeed
or, if appropriate: or, if appropriate:
diffServAssuredRateRel = diffServAssuredRateAbs * 10000/ifHighSpeed" diffServAssuredRateRel = diffServAssuredRateAbs * 1000/ifHighSpeed"
REFERENCE REFERENCE
"ifSpeed, ifHighSpeed from [IFMIB]" "ifSpeed, ifHighSpeed from [IFMIB]"
::= { diffServAssuredRateEntry 3 } ::= { diffServAssuredRateEntry 3 }
diffServAssuredRateRel OBJECT-TYPE diffServAssuredRateRel OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX Unsigned32
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The minimum rate that a downstream scheduler element should "The minimum rate that a downstream scheduler element should
allocate to this queue, relative to the maximum rate of the allocate to this queue, relative to the maximum rate of the
interface as reported by ifSpeed or ifHighSpeed, in units of interface as reported by ifSpeed or ifHighSpeed, in units of
1/10,000 of 1. If the value is zero, then there is effectively 1/1000 of 1. If the value is zero, then there is effectively no
no minimum rate guarantee. If the value is non-zero, the minimum rate guarantee. If the value is non-zero, the scheduler
scheduler will assure the servicing of this queue to at least will assure the servicing of this queue to at least this rate.
this rate.
Note that this attribute's value is coupled to that of Note that this attribute value and that of diffServAssuredRateAbs
diffServAssuredRateAbs: changes to one will affect the value of are coupled: changes to one will affect the value of the other.
the other. They are linked by the following equation: They are linked by the following equation:
diffServAssuredRateRel = diffServAssuredRateAbs * 10000/ifSpeed diffServAssuredRateRel = diffServAssuredRateAbs * 1000/ifSpeed
or, if appropriate: or, if appropriate:
diffServAssuredRateRel = diffServAssuredRateAbs * 10000/ifHighSpeed" diffServAssuredRateRel = diffServAssuredRateAbs * 1000/ifHighSpeed"
REFERENCE REFERENCE
"ifSpeed, ifHighSpeed from [IFMIB]" "ifSpeed, ifHighSpeed from [IFMIB]"
::= { diffServAssuredRateEntry 4 } ::= { diffServAssuredRateEntry 4 }
diffServAssuredRateStatus OBJECT-TYPE diffServAssuredRateStatus 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, deactivation, or "The RowStatus variable controls the activation, deactivation, or
deletion of a queue. Any writable variable may be modified deletion of a queue. Any writable variable may be modified
whether the row is active or notInService." whether the row is active or notInService."
::= { diffServAssuredRateEntry 5 } ::= { diffServAssuredRateEntry 5 }
-- --
-- Shaping Parameter Table -- Shaping Parameter Table
-- --
-- The parameters used by a scheduler for its inputs or outputs are -- The parameters used by a scheduler for its inputs or outputs are
-- maintained separately from the Queue or Scheduler table entries
-- for reusability reasons and so that they may be used by both queues
-- and schedulers. This follows the approach for separation of data
-- path elements from parameterization that is used throughout this MIB.
-- Use of these Shaping Parameter Table entries by Queues and Schedulers
-- allows the modeling of hierarchical scheduling systems.
-- --
-- Specifically, a Scheduler has one or more inputs and one output.
-- Any queue feeding a scheduler, or any scheduler which feeds a second
-- scheduler, might specify a maximum transfer rate by pointing to a
-- Shaping Parameter Table entry. Multi-rate shapers, such as a Dual
-- Leaky Bucket algorithm, specify their rates by positing multiple
-- Shaping Parameter Entries with the same diffServShapingRateId but
-- different diffServShapingRateLevels.
-- --
-- The diffServShapingRateLevel/Abs/Rel attributes are used as parameters -- The diffServShapingRateLevel/Abs/Rel attributes are used as parameters
-- to the non-work-conserving portion of a scheduler: non-work-conserving -- to the non-work-conserving portion of a scheduler: non-work-conserving
-- implies that the scheduler may sometimes not emit a packet, even if -- implies that the scheduler may sometimes not emit a packet, even if
-- there is data available at its input(s). This has the effect of limiting
-- the servicing of the queue/scheduler input or output, in effect performing
-- shaping of the packet stream passing through the queue/scheduler, as
-- described in [MODEL] section 7.2.
-- --
diffServShapingRateNextFree OBJECT-TYPE diffServShapingRateNextFree OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX INTEGER (1..2147483647)
MAX-ACCESS read-only MAX-ACCESS read-only
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This object yields a value when read that is currently unused "This object yields a value when read that is currently unused
for a diffServShapingRateId instance. If a configuring system for a diffServShapingRateId instance. If a configuring system
attempts to create a new row in the diffServShapingRateTable attempts to create a new row in the diffServShapingRateTable
using this value, that operation will fail if the value has, in using this value, but an instance has been created or is in the
the meantime, been used to create another row that is currently process of being created, that operation will fail."
valid."
::= { diffServScheduler 8 } ::= { diffServScheduler 8 }
diffServShapingRateTable OBJECT-TYPE diffServShapingRateTable OBJECT-TYPE
SYNTAX SEQUENCE OF DiffServShapingRateEntry SYNTAX SEQUENCE OF DiffServShapingRateEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The Shaping Parameter Table enumerates individual sets of "The Shaping Parameter Table enumerates individual sets of
scheduling parameter that can be used/reused by Queues and scheduling parameter that can be used/reused by Queues and
Schedulers." Schedulers."
skipping to change at page 80, line 20 skipping to change at page 87, line 19
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An entry in the Shaping Parameter Table describes a single set "An entry in the Shaping Parameter Table describes a single set
of scheduling parameters for use by one or more queues or of scheduling parameters for use by one or more queues or
schedulers." schedulers."
INDEX { diffServShapingRateId, diffServShapingRateLevel } INDEX { diffServShapingRateId, diffServShapingRateLevel }
::= { diffServShapingRateTable 1 } ::= { diffServShapingRateTable 1 }
DiffServShapingRateEntry ::= SEQUENCE { DiffServShapingRateEntry ::= SEQUENCE {
diffServShapingRateId Unsigned32, diffServShapingRateId INTEGER,
diffServShapingRateLevel Unsigned32, diffServShapingRateLevel INTEGER,
diffServShapingRateAbs Unsigned32, diffServShapingRateAbs Unsigned32,
diffServShapingRateRel Unsigned32, diffServShapingRateRel Unsigned32,
diffServShapingRateThreshold BurstSize, diffServShapingRateThreshold BurstSize,
diffServShapingRateStatus RowStatus diffServShapingRateStatus RowStatus
} }
diffServShapingRateId OBJECT-TYPE diffServShapingRateId OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX INTEGER (1..2147483647)
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An index that enumerates the Shaping Parameter entries. The set "An index that enumerates the Shaping Parameter entries. The set
of such identifiers spans the whole agent. Managers should obtain of such identifiers spans the whole agent. Managers obtain new
new values for row creation in this table by reading values for row creation in this table by reading
diffServShapingRateNextFree." diffServShapingRateNextFree."
::= { diffServShapingRateEntry 1 } ::= { diffServShapingRateEntry 1 }
diffServShapingRateLevel OBJECT-TYPE diffServShapingRateLevel OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX INTEGER (1..2147483647)
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An index that indicates which level of a multi-rate shaper is "An index that indicates which level of a multi-rate shaper is
being given its parameters. In a shaper with a mean and a peak being given its parameters. A multi-rate shaper has some number
rate, for example, the mean rate might be applied first, and the of rate levels. Frame Relay's dual rate specification refers to a
peak rate second under a defined circumstance. By convention, 'committed' and an 'excess' rate; ATM's dual rate specification
increasing levels have increasing rates." refers to a 'mean' and a 'peak' rate. This table is generalized
to support an arbitrary number of rates. The committed or mean
rate is level 1, the peak rate (if any) is the highest level rate
configured, and if there are other rates they are distributed in
monotonically increasing order between them."
::= { diffServShapingRateEntry 2 } ::= { diffServShapingRateEntry 2 }
diffServShapingRateAbs OBJECT-TYPE diffServShapingRateAbs OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX Unsigned32
UNITS "kilobits per second" UNITS "kilobits per second"
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The maximum rate in kilobits/sec that a downstream scheduler "The maximum rate in kilobits/sec that a downstream scheduler
element should allocate to this queue. If the value is zero, then element should allocate to this queue. If the value is zero, then
there is effectively no maximum rate limit and that the scheduler there is effectively no maximum rate limit and that the scheduler
should attempt to be work-conserving for this queue. If the should attempt to be work conserving for this queue. If the value
value is non-zero, the scheduler will limit the servicing of this is non-zero, the scheduler will limit the servicing of this queue
queue to, at most, this rate in a non-work-conserving manner. to, at most, this rate in a non-work-conserving manner.
Note that this attribute's value is coupled to that of Note that this attribute value and that of diffServShapingRateRel
diffServShapingRateRel: changes to one will affect the value of are coupled: changes to one will affect the value of the other.
the other. They are linked by the following equation: They are linked by the following equation:
diffServAssuredRateRel = diffServAssuredRateAbs * 10000/ifSpeed diffServAssuredRateRel = diffServAssuredRateAbs * 1000/ifSpeed
or, if appropriate: or, if appropriate:
diffServAssuredRateRel = diffServAssuredRateAbs * 10000/ifHighSpeed" diffServAssuredRateRel = diffServAssuredRateAbs * 1000/ifHighSpeed"
REFERENCE REFERENCE
"ifSpeed, ifHighSpeed from [IFMIB], RFC 2963" "ifSpeed, ifHighSpeed from [IFMIB], RFC 2963"
::= { diffServShapingRateEntry 3 } ::= { diffServShapingRateEntry 3 }
diffServShapingRateRel OBJECT-TYPE diffServShapingRateRel OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX Unsigned32
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The maximum rate that a downstream scheduler element should "The maximum rate that a downstream scheduler element should
allocate to this queue, relative to the maximum rate of the allocate to this queue, relative to the maximum rate of the
interface as reported by ifSpeed or ifHighSpeed, in units of interface as reported by ifSpeed or ifHighSpeed, in units of
1/10,000 of 1. If the value is zero, then there is effectively 1/1000 of 1. If the value is zero, then there is effectively no
no maximum rate limit and the scheduler should attempt to be maximum rate limit and the scheduler should attempt to be work
work-conserving for this queue. If the value is non-zero, the conserving for this queue. If the value is non-zero, the
scheduler will limit the servicing of this queue to, at most, scheduler will limit the servicing of this queue to, at most,
this rate in a non-work-conserving manner. this rate in a non-work-conserving manner.
Note that this attribute's value is coupled to that of Note that this attribute value and that of diffServShapingRateAbs
diffServShapingRateAbs: changes to one will affect the value of are coupled: changes to one will affect the value of the other.
the other. They are linked by the following equation: They are linked by the following equation:
diffServShapingRateAbs = ifSpeed * diffServShapingRateRel/10000 diffServShapingRateAbs = ifSpeed * diffServShapingRateRel/1000
or, if appropriate: or, if appropriate:
diffServShapingRateAbs = ifHighSpeed * diffServShapingRateRel/10000" diffServShapingRateAbs = ifHighSpeed * diffServShapingRateRel/1000"
REFERENCE REFERENCE
"ifSpeed, ifHighSpeed from [IFMIB], RFC 2963" "ifSpeed, ifHighSpeed from [IFMIB], RFC 2963"
::= { diffServShapingRateEntry 4 } ::= { diffServShapingRateEntry 4 }
diffServShapingRateThreshold OBJECT-TYPE diffServShapingRateThreshold OBJECT-TYPE
SYNTAX BurstSize SYNTAX BurstSize
UNITS "Bytes" UNITS "Bytes"
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
skipping to change at page 83, line 20 skipping to change at page 90, line 20
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 read-create "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 MIB. As a result, it may be used for monitoring or for
configuration." configuration."
MODULE -- This Module MODULE -- This Module
MANDATORY-GROUPS { MANDATORY-GROUPS {
diffServMIBDataPathGroup, diffServMIBDataPathGroup, diffServMIBClfrGroup,
diffServMIBClfrGroup, diffServMIBClfrElementGroup, diffServMIBSixTupleClfrGroup,
diffServMIBClfrElementGroup, diffServMIBActionGroup, diffServMIBAlgDropGroup,
diffServMIBSixTupleClfrGroup,
diffServMIBActionGroup,
diffServMIBAlgDropGroup,
diffServMIBQGroup, diffServMIBSchedulerGroup, diffServMIBQGroup, diffServMIBSchedulerGroup,
diffServMIBAssuredRateGroup } diffServMIBShapingRateGroup, diffServMIBAssuredRateGroup }
-- The groups: -- The groups:
-- diffServMIBCounterGroup -- diffServMIBCounterGroup
-- diffServMIBHCCounterGroup -- diffServMIBHCCounterGroup
-- diffServMIBVHCCounterGroup -- diffServMIBVHCCounterGroup
-- --
-- are mutually exclusive; at most one of these groups is implemented -- 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. When any of these groups is implemented
-- for a particular interface, then ifCounterDiscontinuityGroup from -- for a particular interface, then ifCounterDiscontinuityGroup from
-- [IFMIB] must also be implemented for that interface. -- [IFMIB] must also be implemented for that interface.
--
-- Note that the diffServMIBStaticGroup is mandatory for implementations
-- that implement a read-write or read-create mode.
GROUP diffServMIBCounterGroup GROUP diffServMIBCounterGroup
DESCRIPTION DESCRIPTION
"This group is mandatory for table objects indexed by ifIndex for "This group is mandatory for table objects indexed by ifIndex for
which the value of the corresponding instance of ifSpeed is less which the value of the corresponding instance of ifSpeed is less
than or equal to 20,000,000 bits/second." than or equal to 20,000,000 bits/second."
GROUP diffServMIBHCCounterGroup GROUP diffServMIBHCCounterGroup
DESCRIPTION DESCRIPTION
"This group is mandatory for table objects indexed by ifIndex for "This group is mandatory for table objects indexed by ifIndex for
skipping to change at page 84, line 38 skipping to change at page 91, line 34
GROUP diffServMIBRandomDropGroup GROUP diffServMIBRandomDropGroup
DESCRIPTION DESCRIPTION
"This group is mandatory for devices that implement Random Drop "This group is mandatory for devices that implement Random Drop
functions." functions."
GROUP diffServMIBStaticGroup GROUP diffServMIBStaticGroup
DESCRIPTION DESCRIPTION
"This group is mandatory for devices that allow creation of rows "This group is mandatory for devices that allow creation of rows
in any of the writable tables of this MIB." in any of the writable tables of this MIB."
OBJECT diffServDataPathStart
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServDataPathStatus
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServClfrDataPathStart
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServClfrStatus OBJECT diffServClfrStatus
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServClfrElementPrecedence OBJECT diffServClfrElementPrecedence
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
skipping to change at page 85, line 41 skipping to change at page 93, line 4
OBJECT diffServSixTupleClfrSrcAddrType OBJECT diffServSixTupleClfrSrcAddrType
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServSixTupleClfrSrcAddr OBJECT diffServSixTupleClfrSrcAddr
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServSixTupleClfrSrcPrefixLength OBJECT diffServSixTupleClfrSrcPrefixLength
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServSixTupleClfrDscp OBJECT diffServSixTupleClfrDscp
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServSixTupleClfrProtocol OBJECT diffServSixTupleClfrProtocol
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServSixTupleClfrSrcL4PortMin OBJECT diffServSixTupleClfrDstL4PortMin
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServSixTupleClfrSrcL4PortMax OBJECT diffServSixTupleClfrDstL4PortMax
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServSixTupleClfrDstL4PortMin OBJECT diffServSixTupleClfrSrcL4PortMin
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServSixTupleClfrDstL4PortMax OBJECT diffServSixTupleClfrSrcL4PortMax
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServSixTupleClfrStatus OBJECT diffServSixTupleClfrStatus
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServMeterSucceedNext OBJECT diffServMeterSucceedNext
skipping to change at page 87, line 41 skipping to change at page 95, line 4
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 diffServActionSpecific OBJECT diffServActionSpecific
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServActionType
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 diffServCountActStatus OBJECT diffServCountActStatus
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServAlgDropType OBJECT diffServAlgDropType
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
skipping to change at page 89, line 17 skipping to change at page 96, line 22
OBJECT diffServRandomDropMaxThreshPkts OBJECT diffServRandomDropMaxThreshPkts
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServRandomDropProbMax OBJECT diffServRandomDropProbMax
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServRandomDropInvWeight OBJECT diffServRandomDropWeight
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServRandomDropSamplingRate OBJECT diffServRandomDropSamplingRate
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServRandomDropStatus OBJECT diffServRandomDropStatus
skipping to change at page 90, line 44 skipping to change at page 97, line 49
OBJECT diffServAssuredRateAbs OBJECT diffServAssuredRateAbs
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServAssuredRateRel OBJECT diffServAssuredRateRel
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServAssuredRateStatus
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServShapingRateAbs
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServShapingRateRel
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServShapingRateThreshold OBJECT diffServShapingRateThreshold
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServAssuredRateStatus OBJECT diffServShapingRateStatus
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
::= { diffServMIBCompliances 1 } ::= { diffServMIBCompliances 1 }
diffServMIBDataPathGroup OBJECT-GROUP diffServMIBDataPathGroup OBJECT-GROUP
OBJECTS { OBJECTS {
diffServDataPathStart, diffServDataPathStatus diffServDataPathStart, diffServDataPathStatus
} }
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The Data Path Group defines the MIB Objects that describe a data "The Data Path Group defines the MIB Objects that describe a
path." functional data path."
::= { diffServMIBGroups 1 } ::= { diffServMIBGroups 1 }
diffServMIBClfrGroup OBJECT-GROUP diffServMIBClfrGroup OBJECT-GROUP
OBJECTS { OBJECTS {
diffServClfrStatus diffServClfrDataPathStart, diffServClfrStatus
} }
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The Classifier Group defines the MIB Objects that describe a "The Classifier Group defines the MIB Objects that describe the
generic classifier." list the starts of individual classifiers."
::= { diffServMIBGroups 2 } ::= { diffServMIBGroups 2 }
diffServMIBClfrElementGroup OBJECT-GROUP diffServMIBClfrElementGroup OBJECT-GROUP
OBJECTS { OBJECTS {
diffServClfrElementPrecedence, diffServClfrElementNext, diffServClfrElementPrecedence, diffServClfrElementNext,
diffServClfrElementSpecific, diffServClfrElementStatus diffServClfrElementSpecific, diffServClfrElementStatus
} }
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The Classifier Element Group defines the MIB Objects that "The Classifier Element Group defines the MIB Objects that
skipping to change at page 92, line 49 skipping to change at page 99, line 49
diffServSixTupleClfrDstAddrType, diffServSixTupleClfrDstAddr, diffServSixTupleClfrDstAddrType, diffServSixTupleClfrDstAddr,
diffServSixTupleClfrDstPrefixLength, diffServSixTupleClfrDstPrefixLength,
diffServSixTupleClfrSrcAddrType, diffServSixTupleClfrSrcAddr, diffServSixTupleClfrSrcAddrType, diffServSixTupleClfrSrcAddr,
diffServSixTupleClfrSrcPrefixLength, diffServSixTupleClfrDscp, diffServSixTupleClfrSrcPrefixLength, diffServSixTupleClfrDscp,
diffServSixTupleClfrProtocol, diffServSixTupleClfrDstL4PortMin, diffServSixTupleClfrProtocol, diffServSixTupleClfrDstL4PortMin,
diffServSixTupleClfrDstL4PortMax, diffServSixTupleClfrSrcL4PortMin, diffServSixTupleClfrDstL4PortMax, diffServSixTupleClfrSrcL4PortMin,
diffServSixTupleClfrSrcL4PortMax, diffServSixTupleClfrStatus diffServSixTupleClfrSrcL4PortMax, diffServSixTupleClfrStatus
} }
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The Six-tuple Classifier Group defines the MIB Objects that "The Six-Tuple Classifier Group defines the MIB Objects that
describe a classifier element for matching on 6 fields of an IP describe a classifier element for matching on 6 fields of an IP
and upper-layer protocol header." and upper-layer protocol header."
::= { diffServMIBGroups 4 } ::= { diffServMIBGroups 4 }
diffServMIBMeterGroup OBJECT-GROUP diffServMIBMeterGroup OBJECT-GROUP
OBJECTS { OBJECTS {
diffServMeterSucceedNext, diffServMeterFailNext, diffServMeterSucceedNext, diffServMeterFailNext,
diffServMeterSpecific, diffServMeterStatus diffServMeterSpecific, diffServMeterStatus
} }
STATUS current STATUS current
skipping to change at page 93, line 31 skipping to change at page 100, line 31
diffServTBParamStatus diffServTBParamStatus
} }
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The Token-Bucket Meter Group defines the objects used in "The Token-Bucket Meter Group defines the objects used in
describing a token bucket meter element." describing a token bucket meter element."
::= { diffServMIBGroups 6 } ::= { diffServMIBGroups 6 }
diffServMIBActionGroup OBJECT-GROUP diffServMIBActionGroup OBJECT-GROUP
OBJECTS { OBJECTS {
diffServActionNext, diffServActionSpecific, diffServActionNext, diffServActionSpecific, diffServActionStatus
diffServActionType, diffServActionStatus
} }
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The Action Group defines the objects used in describing a "The Action Group defines the objects used in describing a
generic action element." generic action element."
::= { diffServMIBGroups 7 } ::= { diffServMIBGroups 7 }
diffServMIBDscpMarkActGroup OBJECT-GROUP diffServMIBDscpMarkActGroup OBJECT-GROUP
OBJECTS { OBJECTS {
diffServDscpMarkActDscp diffServDscpMarkActDscp
skipping to change at page 95, line 4 skipping to change at page 101, line 50
DESCRIPTION DESCRIPTION
"A collection of objects providing information specific to very- "A collection of objects providing information specific to very-
high speed (very-high speed interfaces transmit and receive at high speed (very-high speed interfaces transmit and receive at
speeds greater than 650,000,000 bits/second) packet-oriented speeds greater than 650,000,000 bits/second) packet-oriented
network interfaces." network interfaces."
::= { diffServMIBGroups 11 } ::= { diffServMIBGroups 11 }
diffServMIBAlgDropGroup OBJECT-GROUP diffServMIBAlgDropGroup OBJECT-GROUP
OBJECTS { OBJECTS {
diffServAlgDropType, diffServAlgDropNext, diffServAlgDropType, diffServAlgDropNext,
diffServAlgDropDiscontinuityTime,
diffServAlgDropQMeasure, diffServAlgDropQThreshold, diffServAlgDropQMeasure, diffServAlgDropQThreshold,
diffServAlgDropSpecific, diffServAlgDropStatus diffServAlgDropSpecific, diffServAlgDropStatus
} }
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The Algorithmic Drop Group contains the objects that describe "The Algorithmic Dr