draft-ietf-diffserv-mib-12.txt   draft-ietf-diffserv-mib-13.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 March 2002 Nortel Networks Expires March 2002 Nortel Networks
draft-ietf-diffserv-mib-12.txt A. Smith draft-ietf-diffserv-mib-13.txt A. Smith
Allegro Networks Allegro Networks
September 2001 September 2001
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
skipping to change at page 1, line 37 skipping to change at page 1, line 37
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
Differentiated Services@ietf.org. The charter for Differentiated Differentiated Services@ietf.org. The charter for Differentiated
Services may be found at Services may be found at
http://www.ietf.org/html.charters/Differentiated Services-charter.html http://www.ietf.org/html.charters/Differentiated Services-charter.html
Copyright (C) The Internet Society (2000). All Rights Reserved. Copyright (C) The Internet Society (2001). All Rights Reserved.
Distribution of this memo is unlimited. Distribution of this memo is unlimited.
Abstract Abstract
This memo describes an 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. It may be used both for
the Informal Management Model for Differentiated Services Routers monitoring and configuration of a router or switch capable of
[MODEL]. Differentiated Services functionality.
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
skipping to change at page 3, line 7 skipping to change at page 3, line 7
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. Relationship to other working group documents 2. Relationship to other working group documents
The working group and related working groups developed other documents, The Differentiated Services Working Group and related working groups
notably the Informal Management Model and the policy configuration developed other documents, notably the Informal Management Model and the
paradigm of SNMPCONF. The relationship between the MIB and those policy configuration paradigm of SNMPCONF. The relationship between the
documents is clarified here. MIB and those documents is clarified here.
2.1. Relationship to the Informal Management Model for Differentiated 2.1. Relationship to the Informal Management Model for Differentiated
Services Router Services Router
This MIB is similar in design to [MODEL], although it can be used to This MIB is similar in design to [MODEL], although it can be used to
build functional data paths that the model would not well describe. The build functional data paths that the model would not well describe. The
model conceptually describes ingress and egress interfaces of an n-port model conceptually describes ingress and egress interfaces of an n-port
router, which may find some interfaces at a network edge and others router, which may find some interfaces at a network edge and others
facing into the network core. It describes the configuration and facing into the network core. It describes the configuration and
management of a Differentiated Services interface in terms of one or management of a Differentiated Services interface in terms of one or
skipping to change at page 4, line 18 skipping to change at page 4, line 18
This MIB provides for direct reporting and manipulation of detailed This MIB provides for direct reporting and manipulation of detailed
functional elements. These elements consist of a structural element and functional elements. These elements consist of a structural element and
one or more parameter-bearing elements. While this can be cumbersome, one or more parameter-bearing elements. While this can be cumbersome,
it allows the reuse of parameters. For example, a service provider may it allows the reuse of parameters. For example, a service provider may
offer three varieties of contracts, and configure three parameter offer three varieties of contracts, and configure three parameter
elements. Each such data path on the system may then refer to these elements. Each such data path on the system may then refer to these
sets of parameters. The diffServDataPathTable couples each direction on sets of parameters. The diffServDataPathTable couples each direction on
each interface with the specified data path linkage. The concept of each interface with the specified data path linkage. The concept of
"interface" is as defined by InterfaceIndex/ifIndex of the IETF "interface" is as defined by InterfaceIndex/ifIndex of the IETF
Interfaces MIB [IFMIB]. Interfaces MIB [IF-MIB].
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. An example is the the purposes of abstracting the model in other ways. An example is the
Differentiated Services Policy Information Base, [DSPIB]. Differentiated Services Policy Information Base, [DSPIB].
In particular, abstractions in the direction of less detailed In particular, abstractions in the direction of less detailed
definitions of Differentiated Services functionality are likely e.g. definitions of Differentiated Services functionality are likely e.g.
some form of "Per-Hop Behavior"-based definition involving a template of some form of "Per-Hop Behavior"-based definition involving a template of
detailed object values which is applied to specific instances of objects detailed object values which is applied to specific instances of objects
skipping to change at page 6, line 20 skipping to change at page 6, line 20
Therefore, when traffic arrives at an ingress or egress interface, the Therefore, when traffic arrives at an ingress or egress interface, the
first step in applying the policy is determining what policy applies. first step in applying the policy is determining what policy applies.
This MIB does that by providing a table of pointers to the first This MIB does that by providing a table of pointers to the first
functional data path element, indexed by interface and direction on that functional data path element, indexed by interface and direction on that
interface. The content of the diffServDataPathEntry is a single interface. The content of the diffServDataPathEntry is a single
RowPointer, which points to that functional data path element. RowPointer, which points to that functional data path element.
When diffServDataPathStart in a direction on an interface is undefined When diffServDataPathStart in a direction on an interface is undefined
or is set to zeroDotZero, the implication is that there is no specific or is set to zeroDotZero, the implication is that there is no specific
policy to apply; the manufacturer's default is used. policy to apply.
3.2. Classifier 3.2. Classifier
Classifiers are used to differentiate among types of traffic. In the Classifiers are used to differentiate among types of traffic. In the
Differentiated Services architecture, one usually discusses a behavior Differentiated Services architecture, one usually discusses a behavior
aggregate identified by the application of one or more Differentiated aggregate identified by the application of one or more Differentiated
Services Code Points (DSCPs). However, especially at network edges Services Code Points (DSCPs). However, especially at network edges
(which include hosts and first hop routers serving hosts), traffic may (which include hosts and first hop routers serving hosts), traffic may
arrive unmarked or the marks may not be trusted. In these cases, one arrive unmarked or the marks may not be trusted. In these cases, one
applies a Multi-Field Classifier, which may select an aggregate as applies a Multi-Field Classifier, which may select an aggregate as
coarse as "all traffic", as fine as a specific microflow identified by 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 IP Addresses, IP Protocol, and TCP or UDP ports, or variety of slices in
between. between.
Classifiers can be simple or complex. In a core interface, one would Classifiers can be simple or complex. In a core interface, one would
expect to find simple behavior aggregate classification to be used. expect to find simple behavior aggregate classification to be used.
However, in an edge interface, one might first ask what application is However, in an edge interface, one might first ask what application is
being used, meter the arriving traffic, and then apply various policies being used, meter the arriving traffic, and then apply various policies
to the non-conforming traffic depending on the Autonomous System number to the non-conforming traffic depending on the Autonomous System number
advertising the destination address. To accomplish such a thing, advertising the destination address. To accomplish such a thing,
traffic must be classified, metered, and then reclassified. To this traffic must be classified, metered, and then reclassified. To this
end, the MIB defines separate classifiers, which may be applied at any end, the MIB defines separate classifiers, which may be applied at any
point in processing, and may have different content as needed. point in processing, and may have different content as needed.
The MIB also allows for ambiguous classification in a structured The MIB also allows for ambiguous classification in a structured
fashion. In the end, traffic classification must be unambiguous; we fashion. In the end, traffic classification must be unambiguous; one
must know for certain what policy to apply to any given packet. must know for certain what policy to apply to any given packet.
However, writing an unambiguous specification is often tedious, while However, writing an unambiguous specification is often tedious, while
writing a specification in steps that permits and excludes various kinds writing a specification in steps that permits and excludes various kinds
of traffic may be simpler and more intuitive. In such a case, the of traffic may be simpler and more intuitive. In such a case, the
classification "steps" are enumerated; all classification elements of classification "steps" are enumerated; all classification elements of
one precedence are applied as if in parallel, and then all one precedence are applied as if in parallel, and then all
classification elements of the next precedence. classification elements of the next precedence.
This MIB defines a single classifier parameter entry, the Multi-field This MIB defines a single classifier parameter entry, the Multi-field
skipping to change at page 7, line 44 skipping to change at page 7, line 44
and element ID. It has a precedence value, allowing for structured and element ID. It has a precedence value, allowing for structured
ambiguity as described above, a "specific" pointer that identifies what ambiguity as described above, a "specific" pointer that identifies what
rule is to be applied, and a "next" pointer directing traffic matching rule is to be applied, and a "next" pointer directing traffic matching
the classifier to the next functional data path element. If the "next" the classifier to the next functional data path element. If the "next"
pointer is zeroDotZero, the indication is that there is no further pointer is zeroDotZero, the indication is that there is no further
differentiated services processing for this behavior aggregate. If the differentiated services processing for this behavior aggregate. If the
"specific" pointer is zeroDotZero, however, the device is misconfigured. "specific" pointer is zeroDotZero, however, the device is misconfigured.
In such a case, the classifier element should be operationally treated In such a case, the classifier element should be operationally treated
as if it were not present. as if it were not present.
When the MIB is used for configuration, diffServClfrNextFree always When the MIB is used for configuration, diffServClfrNextFree and
contains a legal value for diffServClfrId that is not currently used in diffServClfrElementNextFree always contain legal values for
the system's configuration. The Network Management Application reads diffServClfrId and diffServClfrElementClfrId that are not currently used
the variable and uses the value read in a create-and-go or a create- in the system's configuration. The values are validated when creating
and-wait SET. When the SET is performed, the agent must determine diffServClfrId and diffServClfrElementClfrId, and in the event of a
whether the value is indeed still unused; two network managers may failure (which would happen if two managers simultaneously attempted to
attempt to create a configuration entry simultaneously and use the same create an entry) must be re-read. diffServClfrElementClfrId must not be
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.
Likewise, when the MIB is used for configuration, read before diffServClfrId, but the two may be read in the same GET, in
diffServClfrElementNextFree always contains a legal value for order to avoid such collisions..
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.
3.2.2. diffServMultiFieldClfrTable - The Multi-field Classifier Table 3.2.2. diffServMultiFieldClfrTable - The Multi-field Classifier Table
This MIB defines a single parameter type for classification, the Six- This MIB defines a single parameter type for classification, the Multi-
Tuple Classifier. As a parameter, a filter may be specified once and field Classifier. As a parameter, a filter may be specified once and
applied to many interfaces, using diffServClfrElementSpecific. This applied to many interfaces, using diffServClfrElementSpecific. This
filter matches: filter matches:
o IP source address prefix, including host, CIDR Prefix, and "any o IP source address prefix, including host, CIDR Prefix, and "any
source address" source address"
o IP destination address prefix, including host, CIDR Prefix, and o IP destination address prefix, including host, CIDR Prefix, and
"any destination address" "any destination address"
o IPv6 Flow ID o IPv6 Flow ID
o IP protocol or "any" o IP protocol or "any"
o TCP/UDP/SCTP source port range, including "any" o TCP/UDP/SCTP source port range, including "any"
o TCP/UDP/SCTP destination port range, including "any" o TCP/UDP/SCTP destination port range, including "any"
o Differentiated Services Code Point o Differentiated Services Code Point
In that ranges or "any" are defined in each case, clearly a wide variety Since port ranges, IP prefixes, or "any" are defined in each case, it is
of filters can be constructed. The Differentiated Services Behavior clear that a wide variety of filters can be constructed. The
Aggregate filter is a special case of this filter. Differentiated Services Behavior Aggregate filter is a special case of
this filter, in which only the DSCP is specified.
Other MIB modules may define similar filters in the same way. For Other MIB modules may define similar filters in the same way. For
example, a filter for Ethernet information might define source and example, a filter for Ethernet information might define source and
destination MAC addresses of "any", Ethernet Packet Type, IEEE 802.2 destination MAC addresses of "any", Ethernet Packet Type, IEEE 802.2
SAPs, and IEEE 802.1 priorities. A filter related to policy routing SAPs, and IEEE 802.1 priorities. A filter related to policy routing
might be structured like the diffServMultiFieldClfrTable, but containing might be structured like the diffServMultiFieldClfrTable, but containing
the BGP Communities of the source and destination prefix rather than the the BGP Communities of the source and destination prefix rather than the
prefix itself, meaning "any prefix in this community". For such a prefix itself, meaning "any prefix in this community". For such a
filter, a table similar to diffServMultiFieldClfrTable is constructed, filter, a table similar to diffServMultiFieldClfrTable is constructed,
and diffServClfrElementSpecific configured to point to it. and diffServClfrElementSpecific configured to point to it.
When the MIB is used for configuration, diffServMultiFieldClfrNextFree When the MIB is used for configuration, diffServMultiFieldClfrNextFree
skipping to change at page 9, line 16 skipping to change at page 8, line 48
destination MAC addresses of "any", Ethernet Packet Type, IEEE 802.2 destination MAC addresses of "any", Ethernet Packet Type, IEEE 802.2
SAPs, and IEEE 802.1 priorities. A filter related to policy routing SAPs, and IEEE 802.1 priorities. A filter related to policy routing
might be structured like the diffServMultiFieldClfrTable, but containing might be structured like the diffServMultiFieldClfrTable, but containing
the BGP Communities of the source and destination prefix rather than the the BGP Communities of the source and destination prefix rather than the
prefix itself, meaning "any prefix in this community". For such a prefix itself, meaning "any prefix in this community". For such a
filter, a table similar to diffServMultiFieldClfrTable is constructed, filter, a table similar to diffServMultiFieldClfrTable is constructed,
and diffServClfrElementSpecific configured to point to it. and diffServClfrElementSpecific configured to point to it.
When the MIB is used for configuration, diffServMultiFieldClfrNextFree When the MIB is used for configuration, diffServMultiFieldClfrNextFree
always contains a legal value for diffServMultiFieldClfrId that is not always contains a legal value for diffServMultiFieldClfrId that is not
currently used in the system's configuration. The Network Management currently used in the system's configuration.
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 diffServMultiFieldClfrNextFree according to
an agent-specific algorithm. If the value is in use, however, the SET
fails. The network manager must re-read diffServMultiFieldClfrNextFree
to obtain a useful value.
3.3. Metering Traffic 3.3. Metering Traffic
As discussed in [MODEL], a meter and a shaper are functions that operate As discussed in [MODEL], a meter and a shaper are functions that operate
on opposing ends of a link. A shaper schedules traffic for transmission on opposing ends of a link. A shaper schedules traffic for transmission
at specific times in order to approximate a particular line speed or at specific times in order to approximate a particular line speed or
combination of line speeds. In its simplest form, if the traffic stream combination of line speeds. In its simplest form, if the traffic stream
contains constant sized packet, it might transmit one packet per unit contains constant sized packet, it might transmit one packet per unit
time to build the equivalent of a CBR circuit. However, various factors time to build the equivalent of a CBR circuit. However, various factors
intervene to make the approximation inexact; multiple classes of traffic intervene to make the approximation inexact; multiple classes of traffic
may occasionally schedule their traffic and the same time, the variable may occasionally schedule their traffic and the same time, the variable
length nature of IP traffic may introduce variation, and factors in the length nature of IP traffic may introduce variation, and factors in the
link or physical layer may change traffic timing. A meter integrates link or physical layer may change traffic timing. A meter integrates
the arrival rate of traffic and determines whether the shaper at the far 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 end was correctly applied, or whether the behavior of the application in
question is naturally close enough to such behavior to be acceptable question is naturally close enough to such behavior to be acceptable
under a given contract. under a given policy.
A common type of meter is a Token Bucket meter, such as [SRTCM] or 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 [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 node; applications which send at a constant rate when sending may
conform if the token bucket is properly specified. It specifies the conform if the token bucket is properly specified. It specifies the
acceptable arrival rate and quantifies the acceptable variability, often acceptable arrival rate and quantifies the acceptable variability, often
by specifying a burst size or an interval; since rate = quantity/time, by specifying a burst size or an interval; since rate = quantity/time,
specifying any two of those parameters implies the third, and a large specifying any two of those parameters implies the third, and a large
interval provides for a forgiving system. Multiple rates may be 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) 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 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 but below another rate has a different set of guarantees. Other types
of meters exist as well. of meters exist as well.
One use of a meter is when a service provider sells at most a certain One use of a meter is when a service provider sells at most a certain
bit rate to one of its customers, and wants to drop the excess. In such bit rate to one of its customers, and wants to drop the excess. In such
a case, the fractal nature of normal Internet traffic must be reflected a case, the fractal nature of normal Internet traffic must be reflected
in large burst intervals, as TCP frequently sends packet pairs or larger in large burst intervals, as TCP frequently sends packet pairs or larger
skipping to change at page 10, line 42 skipping to change at page 10, line 22
limitations; it would be better to have a structure with N rates and N+1 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, "next" pointers, with a single algorithm specified. In this case,
multiple meter entries connected by the "fail" link are understood to multiple meter entries connected by the "fail" link are understood to
contain the parameters for a specified algorithm, and traffic conforming contain the parameters for a specified algorithm, and traffic conforming
to a given rate follows their "succeed" paths. Within this MIB, only to a given rate follows their "succeed" paths. Within this MIB, only
Token Bucket parameters are specified; other varieties of meters may be Token Bucket parameters are specified; other varieties of meters may be
designed in other MIB modules. designed in other MIB modules.
When the MIB is used for configuration, diffServMeterNextFree always When the MIB is used for configuration, diffServMeterNextFree always
contains a legal value for diffServMeterId that is not currently used in contains a legal value for diffServMeterId that is not currently used in
the system's configuration. The Network Management Application reads the system's configuration.
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.
3.3.2. diffServTBParamTable - The Token Bucket Parameters Table 3.3.2. diffServTBParamTable - The Token Bucket Parameters Table
The Token Bucket Parameters Table is a set of parameters that define a 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 Token Bucket Meter. As a parameter, a token bucket may be specified
once and applied to many interfaces, using diffServMeterSpecific. once and applied to many interfaces, using diffServMeterSpecific.
Specifically, several modes of [SRTCM] and [TRTCM] are addressed. Other Specifically, several modes of [SRTCM] and [TRTCM] are addressed. Other
varieties of meters may be specified in other MIB modules. varieties of meters may be specified in other MIB modules.
In general, if a Token Bucket has N rates, it has N+1 potential outcomes In general, if a Token Bucket has N rates, it has N+1 potential outcomes
skipping to change at page 11, line 28 skipping to change at page 10, line 45
to the higher rates, or it fails all of them. As such, multi-rate to the higher rates, or it fails all of them. As such, multi-rate
meters should specify those rates in monotonically increasing order, meters should specify those rates in monotonically increasing order,
passing through the diffServMeterFailNext from more committed to more passing through the diffServMeterFailNext from more committed to more
excess rates, and finally falling through diffServMeterFailNext to the excess rates, and finally falling through diffServMeterFailNext to the
set of actions that apply to traffic which conforms to none of the set of actions that apply to traffic which conforms to none of the
specified rates. diffServTBParamType in the first entry indicates the specified rates. diffServTBParamType in the first entry indicates the
algorithm being used. At each rate, diffServTBParamRate is derivable algorithm being used. At each rate, diffServTBParamRate is derivable
from diffServTBParamBurstSize and diffServTBParamInterval; a superior from diffServTBParamBurstSize and diffServTBParamInterval; a superior
implementation will allow the configuration of any two of implementation will allow the configuration of any two of
diffServTBParamRate, diffServTBParamBurstSize, and diffServTBParamRate, diffServTBParamBurstSize, and
diffServTBParamInterval, and respond "badValue" if all three are diffServTBParamInterval, and respond with the appropriate error code if
specified but are not mathematically related. all three are specified but are not mathematically related.
When the MIB is used for configuration, diffServTBParamNextFree always When the MIB is used for configuration, diffServTBParamNextFree always
contains a legal value for diffServTBParamId that is not currently used contains a legal value for diffServTBParamId that is not currently used
in the system's configuration. The Network Management Application reads in the system's configuration.
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.
3.4. Actions applied to packets 3.4. Actions applied to packets
"Actions" are the things a differentiated services interface PHB may do "Actions" are the things a differentiated services interface PHB may do
to a packet in transit. At minimum, such a policy might calculate to a packet in transit. At minimum, such a policy might calculate
statistics on traffic in various configured classes, mark it with a statistics on traffic in various configured classes, mark it with a
DSCP, drop it, or enqueue it before passing it on for other processing. DSCP, drop it, or enqueue it before passing it on for other processing.
Actions are composed of a structural element, the diffServActionTable, Actions are composed of a structural element, the diffServActionTable,
and various component action entries that may be applied. In the case and various component action entries that may be applied. In the case
skipping to change at page 12, line 21 skipping to change at page 11, line 28
3.4.1. diffServActionTable - The Action Table 3.4.1. diffServActionTable - The Action Table
The action table identifies sequences of actions to be applied to a The action table identifies sequences of actions to be applied to a
packet. Successive actions are chained through diffServActionNext, packet. Successive actions are chained through diffServActionNext,
ultimately terminating in zeroDotZero (indicating that the policy is ultimately terminating in zeroDotZero (indicating that the policy is
complete), a pointer to a queue, or a pointer to some other functional complete), a pointer to a queue, or a pointer to some other functional
data path element. data path element.
When the MIB is used for configuration, diffServActionNextFree always When the MIB is used for configuration, diffServActionNextFree always
contains a legal value for diffServActionId that is not currently used contains a legal value for diffServActionId that is not currently used
in the system's configuration. The Network Management Application reads in the system's configuration.
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 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.
3.4.2. diffServCountActTable - The Count Action Table 3.4.2. diffServCountActTable - The Count Action Table
The count action accumulates statistics pertaining to traffic passing The count action accumulates statistics pertaining to traffic passing
through a given path through the policy. It is intended to be useful 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 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 behavior of a policy in a given network. The objects in the Count
Action are various counters and a discontinuity time. The counters Action are various counters and a discontinuity time. The counters
display the number of packets and bytes encountered on the path since display the number of packets and bytes encountered on the path since
the discontinuity time. They share the same discontinuity time. the discontinuity time. They share the same discontinuity time, which
is the discontinuity time of the interface or agent.
The designers of this MIB expect that every path through a policy should The designers of this MIB expect that every path through a policy should
have a corresponding counter. In early versions, it was impossible to have a corresponding counter. In early versions, it was impossible to
configure an action without implementing a counter, although the current configure an action without implementing a counter, although the current
design makes them in effect the network manager's option, as a result of design makes them in effect the network manager's option, as a result of
making actions consistent in structure and extensible. The assurance of making actions consistent in structure and extensible. The assurance of
proper debug and accounting is therefore left with the policy designer. proper debug and accounting is therefore left with the policy designer.
When the MIB is used for configuration, diffServCountActNextFree always When the MIB is used for configuration, diffServCountActNextFree always
contains a legal value for diffServCountActId that is not currently used 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- in the system's configuration.
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 diffServCountActNextFree according to an agent-
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.4.3. diffServDscpMarkActTable - The Mark Action Table 3.4.3. diffServDscpMarkActTable - The Mark Action Table
The Mark Action table is an unusual table, both in SNMP and in this MIB. The Mark Action table is an unusual table, both in SNMP and in this MIB.
It might be viewed not so much as an array of single-object entries as It might be viewed not so much as an array of single-object entries as
an array of OBJECT-IDENTIFIER conventions, as the OID for a an array of OBJECT-IDENTIFIER conventions, as the OID for a
diffServDscpMarkActDscp instance conveys all of the necessary diffServDscpMarkActDscp instance conveys all of the necessary
information: packets are to be marked with the requisite DSCP. information: packets are to be marked with the requisite DSCP.
As such, contrary to common practice, the index for the table is read- As such, contrary to common practice, the index for the table is read-
skipping to change at page 13, line 46 skipping to change at page 12, line 36
additional parameters are required. additional parameters are required.
What may not be clear from the name is that an Algorithmic Drop action What may not be clear from the name is that an Algorithmic Drop action
often does not drop traffic. Algorithms other than "always drop" often does not drop traffic. Algorithms other than "always drop"
normally drop a few percent of packets at most. The action inspects the normally drop a few percent of packets at most. The action inspects the
diffServQEntry that diffSeervAlgQMeasure points to in to determine diffServQEntry that diffSeervAlgQMeasure points to in to determine
whether the packet should be dropped. whether the packet should be dropped.
When the MIB is used for configuration, diffServAlgDropNextFree always When the MIB is used for configuration, diffServAlgDropNextFree always
contains a legal value for diffServAlgDropId that is not currently used contains a legal value for diffServAlgDropId that is not currently used
in the system's configuration. The Network Management Application reads in the system's configuration.
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 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.
3.4.5. diffServRandomDropTable - The Random Drop Parameters Table 3.4.5. diffServRandomDropTable - The Random Drop Parameters Table
The Random Drop Table is an extension of the Algorithmic Drop Table The Random Drop Table is an extension of the Algorithmic Drop Table
intended for use on queues whose depth is actively managed. Active intended for use on queues whose depth is actively managed. Active
Queue Management algorithms are typified by [RED93], but the parameters Queue Management algorithms are typified by [RED93], but the parameters
they use vary. It was deemed for the purposes of this MIB that the they use vary. It was deemed for the purposes of this MIB that the
proper values to represent include: proper values to represent include:
o Target case mean queue depth, expressed in bytes or packets o Target case mean queue depth, expressed in bytes or packets
skipping to change at page 14, line 35 skipping to change at page 13, line 17
o Coefficient of an exponentially weighted moving average, o Coefficient of an exponentially weighted moving average,
expressed as the numerator of a fraction whose denominator is expressed as the numerator of a fraction whose denominator is
65536. 65536.
o Sampling rate o Sampling rate
An example of the representation chosen in this MIB for this element is An example of the representation chosen in this MIB for this element is
shown in Figure 1. shown in Figure 1.
AlgDrop Queue
+-----------------+ +-------+
--->| Next ---------+--+------------------->| Next -+--> ...
| QMeasure -------+--+ | ... |
| QThreshold | RandomDrop +-------+
| Type=randomDrop | +----------------+
| Specific -------+---->| MinThreshBytes |
+-----------------+ | MaxThreshBytes |
| ProbMax |
| Weight |
| SamplingRate |
+----------------+
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 to equal Qmax. length, although it is possible for Qclip to equal Qmax.
In the MIB module, diffServRandomDropMinThreshBytes and In the MIB module, diffServRandomDropMinThreshBytes and
diffServRandomDropMinThreshPkts represent Qmin. diffServRandomDropMinThreshPkts represent Qmin.
diffServRandomDropMaxThreshBytes and diffServRandomDropMaxThreshPkts diffServRandomDropMaxThreshBytes and diffServRandomDropMaxThreshPkts
represent Qmax. diffServAlgDropQThreshold represents Qclip. represent Qmax. diffServAlgDropQThreshold represents Qclip.
diffServRandomDropInvProbMax represents Pmax (inverse). This MIB does diffServRandomDropInvProbMax represents Pmax (inverse). This MIB does
not represent Pmin (assumed to be zero unless otherwise represented). not represent Pmin (assumed to be zero unless otherwise represented).
In addition, since message memory is finite, queues generally have some In addition, since message memory is finite, queues generally have some
AlgDrop Queue
+-----------------+ +-------+
--->| Next ---------+--+------------------->| Next -+--> ...
| QMeasure -------+--+ | ... |
| QThreshold | RandomDrop +-------+
| Type=randomDrop | +----------------+
| Specific -------+---->| MinThreshBytes |
+-----------------+ | MaxThreshBytes |
| ProbMax |
| Weight |
| SamplingRate |
+----------------+
Figure 1: Example Use of the RandomDropTable for Random Droppers
upper bound above which they are incapable of storing additional upper bound above which they are incapable of storing additional
traffic. Normally this number is equal to Qclip, specified by traffic. Normally this number is equal to Qclip, specified by
diffServAlgDropQThreshold. diffServAlgDropQThreshold.
Each random dropper specification is associated with a queue. This Each random dropper specification is associated with a queue. This
allows multiple drop processes (of same or different types) to be allows multiple drop processes (of same or different types) to be
associated with the same queue, as different PHB implementations may associated with the same queue, as different PHB implementations may
require. This also allows for sequences of multiple droppers if require. This also allows for sequences of multiple droppers if
necessary. necessary.
skipping to change at page 16, line 4 skipping to change at page 14, line 35
helpful, as line speed increases, the ability to have queue sampling be helpful, as line speed increases, the ability to have queue sampling be
less frequent than packet arrival is needed. Note, however, that there less frequent than packet arrival is needed. Note, however, that there
is ongoing research on this topic, see e.g. [ACTQMGMT] and [AQMROUTER]. is ongoing research on this topic, see e.g. [ACTQMGMT] and [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.
When the MIB is used for configuration, diffServRandomDropNextFree When the MIB is used for configuration, diffServRandomDropNextFree
always contains a legal value for diffServRandomDropId that is not always contains a legal value for diffServRandomDropId that is not
currently used in the system's configuration.
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 diffServRandomDropNextFree according to an
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.
3.5. Queuing and Scheduling of Packets 3.5. Queuing and Scheduling of Packets
These include Queues and Schedulers, which are inter-related in their These include Queues and Schedulers, which are inter-related in their
use of queuing techniques. By doing so, it is possible to build multi- use of queuing techniques. By doing so, it is possible to build multi-
level schedulers, such as those which treat a set of queues as having level schedulers, such as those which treat a set of queues as having
priority among them, and at a specific priority find a secondary WFQ priority among them, and at a specific priority find a secondary WFQ
scheduler with some number of queues. scheduler with some number of queues.
3.5.1. diffServQTable - The Class or Queue Table 3.5.1. diffServQTable - The Class or Queue Table
skipping to change at page 16, line 42 skipping to change at page 15, line 17
diffServActionNext. Note that multiple upstream elements may direct diffServActionNext. Note that multiple upstream elements may direct
their traffic to the same Queue Table entry. For example, the Assured their traffic to the same Queue Table entry. For example, the Assured
Forwarding PHB suggests that all traffic marked AF11, AF12 or AF13 be Forwarding PHB suggests that all traffic marked AF11, AF12 or AF13 be
placed in the same queue, after metering, without reordering. To placed in the same queue, after metering, without reordering. To
accomplish that, the upstream diffServAlgDropNext pointers each point to accomplish that, the upstream diffServAlgDropNext pointers each point to
the same diffServQEntry. the same diffServQEntry.
A common requirement of a queue is that its traffic enjoy a certain 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. minimum or maximum rate, or that it be given a certain priority.
Functionally, the selection of such is a function of a scheduler. The Functionally, the selection of such is a function of a scheduler. The
parameter is associated with the queue, however, using the Assured or parameter is associated with the queue, however, using the Minimum or
Shaping Rate Parameters Table. Maximum Rate Parameters Table.
When the MIB is used for configuration, diffServQNextFree always When the MIB is used for configuration, diffServQNextFree always
contains a legal value for diffServQId that is not currently used in the contains a legal value for diffServQId that is not currently used in the
system's configuration. The Network Management Application reads the system's configuration.
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.
3.5.2. diffServSchedulerTable - The Scheduler Table 3.5.2. diffServSchedulerTable - The Scheduler Table
The scheduler, and therefore the Scheduler Table, accepts inputs from The scheduler, and therefore the Scheduler Table, accepts inputs from
either queues or a preceding scheduler. The Scheduler Table allows either queues or a preceding scheduler. The Scheduler Table allows
flexibility in constructing both simple and somewhat more complex flexibility in constructing both simple and somewhat more complex
queuing hierarchies from those queues. queuing hierarchies from those queues.
When the MIB is used for configuration, diffServSchedulerNextFree always When the MIB is used for configuration, diffServSchedulerNextFree always
contains a legal value for diffServSchedulerId that is not currently contains a legal value for diffServSchedulerId that is not currently
used in the system's configuration. The Network Management Application used in the system's configuration.
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 algorithm
specific to the agent. 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 3.5.3. diffServMinRateTable - The Minimum Rate Table
When the output rate of a queue or scheduler must be given a minimum When the output rate of a queue or scheduler must be given a minimum
rate or a priority, this is done using the diffServAssuredRateTable. rate or a priority, this is done using the diffServMinRateTable. Rates
Rates may be expressed as absolute rates, or as a fraction of ifSpeed, may be expressed as absolute rates, or as a fraction of ifSpeed, and
and imply the use of a rate-based scheduler such as WFQ or WRR. The use imply the use of a rate-based scheduler such as WFQ or WRR. The use of
of a priority implies the use of a Priority Scheduler. Only one of the 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 Absolute or Relative rate need be set; the other takes the relevant
value as a result. Excess capacity is distributed proportionally among value as a result. Excess capacity is distributed proportionally among
the inputs to a scheduler using the assured rate. More complex the inputs to a scheduler using the assured rate. More complex
functionality may be described by augmenting this MIB. functionality may be described by augmenting this MIB.
When a priority scheduler is used, its effect is to give the queue the When a priority scheduler is used, its effect is to give the queue the
entire capacity of the subject interface less the capacity used by entire capacity of the subject interface less the capacity used by
higher priorities, if there is traffic present to use it. This is true higher priorities, if there is traffic present to use it. This is true
regardless of the rate specifications applied to that queue or other regardless of the rate specifications applied to that queue or other
queues on the interface. Policing excess traffic will mitigate this queues on the interface. Policing excess traffic will mitigate this
behavior. behavior.
When the MIB is used for configuration, diffServAssuredRateNextFree When the MIB is used for configuration, diffServMinRateNextFree always
always contains a legal value for diffServAssuredRateId that is not contains a legal value for diffServMinRateId that is not currently used
currently used in the system's configuration. The Network Management in the system's configuration.
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 3.5.4. diffServMaxRateTable - The Maximum Rate Table
When the output rate of a queue or scheduler must be limited to at most When the output rate of a queue or scheduler must be limited to at most
a specified maximum rate, this is done using the a specified maximum rate, this is done using the diffServMaxRateTable.
diffServShapingRateTable. Rates may be expressed as absolute rates, or Rates may be expressed as absolute rates, or as a fraction of ifSpeed.
as a fraction of ifSpeed. Only one of the Absolute or Relative rate Only one of the Absolute or Relative rate need be set; the other takes
need be set; the other takes the relevant value as a result. the relevant value as a result.
The definition of a multirate shaper requires multiple The definition of a multirate shaper requires multiple
diffServShapingRateEntries. In this case, an algorithm such as [SHAPER] diffServMaxRateEntries. In this case, an algorithm such as [SHAPER] is
is used. In that algorithm, more than one rate is specified, and at any 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 given time traffic is shaped to the lowest specified rate which exceeds
the arrival rate of traffic. the arrival rate of traffic.
When the MIB is used for configuration, diffServShapingRateNextFree When the MIB is used for configuration, diffServMaxRateNextFree always
always contains a legal value for diffServShapingRateId that is not contains a legal value for diffServMaxRateId that is not currently used
currently used in the system's configuration. The Network Management in the system's configuration.
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 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. An example is found in Figure 2. before a lower-priority input. An example is found in Figure 2.
For weighted scheduling methods, such as WFQ or WRR, the "weight" of a
given scheduler input is represented with a Minimum Service Rate leaky-
bucket profile which provides guaranteed minimum bandwidth to that
input, if required. This is represented by a rate diffServMinRateAbs;
the 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 rates for classes. The rate may be represented by a relative
value, as a fraction of the interface's current line rate,
diffServMinRateRel, 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
+-----+ +-----+
+-------+ | P S | +-------+ | P S |
| Queue +------------>+ r c | | Queue +------------>+ r c |
+-------+-+--------+ | i h | +-------+-+--------+ | i h |
|Priority| | o e | |Priority| | o e |
+--------+ | r d +-----------> +--------+ | r d +----------->
+-------+ | i u | +-------+ | i u |
| Queue +------------>+ t l | | Queue +------------>+ t l |
+-------+-+--------+ | y e | +-------+-+--------+ | y e |
|Priority| | r | |Priority| | r |
+--------+ +-----+ +--------+ +-----+
For weighted scheduling methods, such as WFQ or WRR, the "weight" of a Figure 2: Priority Scheduler with two queues
given scheduler input is represented with a Minimum Service Rate leaky-
bucket profile which provides guaranteed minimum bandwidth to that changes in one may be reflected in the other. An example is found in
input, if required. This is represented by a rate figure 3.
diffServAssuredRateAbs; the classical weight is the ratio between that
rate and the interface speed, or perhaps the ratio between that rate and For weighted scheduling methods, one can say loosely, that WRR focuses
the sum of the configured rates for classes. The rate may be on meeting bandwidth sharing, without concern for relative delay amongst
represented by a relative value, as a fraction of the interface's the queues; where WFQ control both queue service order and amount of
current line rate, diffServAssuredRateRel, to assist in cases where line traffic serviced, providing bandwidth sharing and relative delay
rates are variable or where a higher-level policy might be expressed in ordering amongst the queues.
terms of fractions of network resources. The two rate parameters are
inter-related and changes in one may be reflected in the other. An A queue or scheduled set of queues (which is an input to a scheduler)
example is found in figure 3. 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
profile in order to limit the scheduler bandwidth available to that
input. This is represented by a rate, in diffServMaxRateAbs; the
+-----+ +-----+
+-------+ | W S | +-------+ | W S |
| Queue +------------>+ R c | | Queue +------------>+ R c |
+-------+-+--------+ | R h | +-------+-+--------+ | R h |
| Rate | | e | | Rate | | e |
+--------+ | o d +-----------> +--------+ | o d +----------->
+-------+ | r u | +-------+ | r u |
| Queue +------------>+ l | | Queue +------------>+ l |
+-------+-+--------+ | W e | +-------+-+--------+ | W e |
| Rate | | F r | | Rate | | F r |
+--------+ | Q | +--------+ | Q |
+-----+ +-----+
For weighted scheduling methods, one can say loosely, that WRR focuses Figure 3: WRR or WFQ rate-based scheduler with two inputs
on meeting bandwidth sharing, without concern for relative delay amongst
the queues; where WFQ control both queue service order and amount of
traffic serviced, providing meeting bandwidth sharing and relative delay
ordering amongst the queues.
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
shaper: this is done by defining a Maximum Service Rate leaky-bucket
profile in order to limit the scheduler bandwidth available to that
input. This is represented 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 be represented by a relative value, as rates for classes. The rate may be represented by a relative value, as
a fraction of the interface's current line rate, diffServShapingRateRel. a fraction of the interface's current line rate, diffServMaxRateRel.
There was discussion in the working group about alternative modeling This MIB presumes that shaping is something a scheduler does to its
approaches, such as defining a shaping action or a shaping element. inputs, which it models as a queue with a maximum rate or a scheduler
This MIB does not take this approach because shaping is in fact whose output has a maximum rate.
something a scheduler does to its inputs, (which we model as a queue
with a maximum rate or a scheduler whose output has a maximum rate) and The same may be done on a queue, if a given class is to be shaped to a
the authors felt it was simpler and more elegant to simply describe it maximum rate without shaping other classes, as in Figure 5.
in that context.
Other types of priority and weighted scheduling methods can be defined
using existing parameters in diffServMinRateEntry. NOTE:
diffServSchedulerMethod uses OBJECT IDENTIFIER syntax, with the
+---+ +---+
+-------+ | S | +-------+ | S |
| Queue +------------>+ c | | Queue +------------>+ c |
+-------+-+--------+ | h | +-------+-+--------+ | h |
| | | e +-----------> | | | e +----------->
+--------+ | d +-+-------+ +--------+ | d +-+-------+
| u | |Shaping| | u | |Shaping|
+-------+ | l | | Rate | +-------+ | l | | Rate |
| Queue +------------>+ e | +-------+ | Queue +------------>+ e | +-------+
+-------+-+--------+ | r | +-------+-+--------+ | r |
| | |---+ | | |---+
+--------+ +--------+
The same may be done on a queue, if a given class is to be shaped to a Figure 4: Shaping scheduled traffic to a known rate
maximum rate without shaping other classes, as in Figure 5.
+---+ +---+
+-------+ | S | +-------+ | S |
| Queue +------------>+ c | | Queue +------------>+ c |
+-------+-+--------+ | h | +-------+-+--------+ | h |
|Min Rate| | e +-----------> |Min Rate| | e +----------->
+--------+ | d | +--------+ | d |
| u | | u |
+-------+ | l | +-------+ | l |
| Queue +------------>+ e | | Queue +------------>+ e |
+-------+-+--------+ | r | +-------+-+--------+ | r |
|Min Rate| | | |Min Rate| | |
+--------+ | | +--------+ | |
|Max Rate| | | |Max Rate| | |
+--------+ +---+ +--------+ +---+
Figure 5: Shaping one input to a work-conserving scheduler
Other types of priority and weighted scheduling methods can be defined
using existing parameters in diffServAssuredRateEntry. NOTE:
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.
To implement an EF and two AF classes, one must use a combination of To implement an EF and two AF classes, one must use a combination of
priority and WRR/WFQ scheduling. This requires us to cascade two priority and WRR/WFQ scheduling. This requires us to cascade two
schedulers. If we were to additionally shape the output of the system schedulers. If one were to additionally shape the output of the system
to a rate lower than the interface rate, we must place an upper bound to a rate lower than the interface rate, one must place an upper bound
rate on the output of the priority scheduler. See figure 6. rate on the output of the priority scheduler. See figure 6.
3.6. Example configuration for AF and EF
For the sake of argument, let us build an example with one EF class and
four AF classes using the constructs in this MIB.
3.6.1. AF and EF Ingress Interface Configuration
The ingress edge interface identifies traffic into classes, meters it,
and ensures that any excess is appropriately dealt with according to the
PHB. For AF, this means marking excess; for EF, it means dropping
excess or shaping it to a maximum rate.
+-----+ +-----+
+-------+ | P S | +-------+ | P S |
| Queue +---------------------------------->+ r c | | Queue +---------------------------------->+ r c |
+-------+----------------------+--------+ | i h | +-------+----------------------+--------+ | i h |
|Priority| | o e +-----------> |Priority| | o e +----------->
+--------+ | r d +-+-------+ +--------+ | r d +-+-------+
+------+ | i u | |Shaping| +------+ | i u | |Shaping|
+-------+ | W S +------------->+ t l | | Rate | +-------+ | W S +------------->+ t l | | Rate |
| Queue +------------>+ R c +-+--------+ | y e | +-------+ | Queue +------------>+ R c +-+--------+ | y e | +-------+
+-------+-+--------+ | R h | |Priority| | r | +-------+-+--------+ | R h | |Priority| | r |
|Min Rate| | e | +--------+ +-----+ |Min Rate| | e | +--------+ +-----+
+--------+ | o d | +--------+ | o d |
+-------+ | r u | +-------+ | r u |
| Queue +------------>+ l | | Queue +------------>+ l |
+-------+-+--------+ | W e | +-------+-+--------+ | W e |
|Min Rate| | F r | |Min Rate| | F r |
+--------+ | Q | +--------+ | Q |
+------+ +------+
3.6. Example configuration for AF and EF Figure 6: Combined EF and AF services using cascaded schedulers.
For the sake of argument, let us build an example with one EF class and
four AF classes using the constructs in this MIB.
3.6.1. AF and EF Ingress Interface Configuration
The ingress edge interface identifies traffic into classes, meters it,
and ensures that any excess is appropriately dealt with according to the
PHB. For AF, this means marking excess; for EF, it means dropping
excess or shaping it to a maximum rate.
+-----------------------+ +-----------------------+
| diffServDataPathStart | | diffServDataPathStart |
+-----------+-----------+ +-----------+-----------+
| |
+----------+ +----------+
| |
+--+--+ +-----+ +-----+ +-----+ +-----+ +--+--+ +-----+ +-----+ +-----+ +-----+
| AF1 +-----+ AF2 +-----+ AF3 +-----+ AF4 +-----+ EF | | AF1 +-----+ AF2 +-----+ AF3 +-----+ AF4 +-----+ EF |
+--+--+ +--+--+ +--+--+ +--+--+ +--+--+ +--+--+ +--+--+ +--+--+ +--+--+ +--+--+
| | | | | | | | | |
+--+--+ +--+--+ +--+--+ +--+--+ +--+--+ +--+--+ +--+--+ +--+--+ +--+--+ +--+--+
|TRTCM| |TRTCM| |TRTCM| |TRTCM| |srTCM| |TRTCM| |TRTCM| |TRTCM| |TRTCM| |srTCM|
|Meter| |Meter| |Meter| |Meter| |Meter| |Meter| |Meter| |Meter| |Meter| |Meter|
|-+++-| |-+++-| |-+++-| |-+++-| +-+-+-+ |-+++-| |-+++-| |-+++-| |-+++-| +-+-+-+
||| ||| ||| ||| | | ||| ||| ||| ||| | |
+-+||---+ +-+||---+ +-+||---+ +-+||---+ +-+-|---+ +-+||---+ +-+||---+ +-+||---+ +-+||---+ +-+-|---+
|+-+|----+ |+-+|----+ |+-+|----+ |+-+|----+ |+--+----+ |+-+|----+ |+-+|----+ |+-+|----+ |+-+|----+ |+--+----+
||+-+-----+ ||+-+-----+ ||+-+-----+ ||+-+-----+ ||Actions| ||+-+-----+ ||+-+-----+ ||+-+-----+ ||+-+-----+ ||Actions|
+||Actions| +||Actions| +||Actions| +||Actions| +|Below | +||Actions| +||Actions| +||Actions| +||Actions| +| |
+|Below | +|Below | +|Below | +|Below | +-+-----+ +| | +| | +| | +| | +-+-----+
+-+-----+ +-+-----+ +-+-----+ +-+-----+ | +-+-----+ +-+-----+ +-+-----+ +-+-----+ |
||| ||| ||| ||| | ||| ||| ||| ||| |
VVV VVV VVV VVV V VVV VVV VVV VVV V
Accepted traffic is sent to IP forwarding Accepted traffic is sent to IP forwarding
Figure 7: combined EF and AF implementation, ingress side
3.6.1.1. Classification In The Example 3.6.1.1. Classification In The Example
A packet arriving at an ingress interface picks up its "program" from A packet arriving at an ingress interface picks up its policy from the
the diffServDataPathTable. This points to a classifier, which will diffServDataPathTable. This points to a classifier, which will select
select traffic according to some specification for each traffic class. traffic according to some specification for each traffic class.
An example of a classifier for an AFm class would be a set of three An example of a classifier for an AFm class would be a set of three
classifier elements, each pointing to a Multi-field classification classifier elements, each pointing to a Multi-field classification
parameter block identifying one of the AFmn DSCPs. Alternatively, the parameter block identifying one of the AFmn DSCPs. Alternatively, the
filters might contain selectors for HTTP traffic or some other filters might contain selectors for HTTP traffic or some other
application. application.
An example of a classifier for EF traffic might be either a classifier An example of a classifier for EF traffic might be either a classifier
element pointing to a filter specifying the EF code point, or a element pointing to a filter specifying the EF code point, or a
collection of classifiers with parameter blocks specifying individual collection of classifiers with parameter blocks specifying individual
skipping to change at page 23, line 40 skipping to change at page 21, line 28
3.6.1.2.1. AF Metering On an Ingress Edge Interface 3.6.1.2.1. AF Metering On an Ingress Edge Interface
Each AFm class applies a Two Rate Three Color Meter, dividing traffic 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 into three groups. If two rates R and S, with R < S, are specified and
traffic arrives at rate T, traffic comprising up to R bits per second is traffic arrives at rate T, traffic comprising up to R bits per second is
considered to conform to the "confirmed" rate, R. If R < T, traffic 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 comprising up to S-R bits per second is considered to conform to the
"excess" rate, S. Any further excess is non- conformant. "excess" rate, S. Any further excess is non- conformant.
To configure this, we apply two Meter Entries, one for the conforming Two meter entries are used to configure this, one for the conforming
rate and one for the excess rate. The rate parameters are stored in rate and one for the excess rate. The rate parameters are stored in
associated Token Bucket Parameter Entries. The "FailNext" pointer of associated Token Bucket Parameter Entries. The "FailNext" pointer of
the lower rate Meter Entry points to the other Meter Entry; both the lower rate Meter Entry points to the other Meter Entry; both
"SucceedNext" pointers and the "FailNext" pointer of the higher Meter "SucceedNext" pointers and the "FailNext" pointer of the higher Meter
Entry point to lists of actions. In the color-blind mode, all three 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 classifier "next" entries point to the lower rate meter entry. In the
color-aware mode, the AFm1 classifier points to the lower rate entry, 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 the AFm2 classifier points to the higher rate entry (as it is only
compared against that rate), and the AFm3 classifier points directly to compared against that rate), and the AFm3 classifier points directly to
the actions taken when both rates fail. the actions taken when both rates fail.
3.6.1.2.2. AF Actions On an Ingress Edge Interface 3.6.1.2.2. AF Actions On an Ingress Edge Interface
For network planning and perhaps for billing purposes, arriving traffic For network planning and perhaps for billing purposes, arriving traffic
is normally counted. Therefore, a "count" action, consisting of an is normally counted. Therefore, a "count" action, consisting of an
action table entry pointing to a count table entry, is configured. action table entry pointing to a count table entry, is configured.
Also, traffic is marked with the appropriate DSCP. The first R bits per 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, second are marked AFm1, the next S-R bits per second are marked AFm2,
skipping to change at page 24, line 16 skipping to change at page 22, line 4
3.6.1.2.2. AF Actions On an Ingress Edge Interface 3.6.1.2.2. AF Actions On an Ingress Edge Interface
For network planning and perhaps for billing purposes, arriving traffic For network planning and perhaps for billing purposes, arriving traffic
is normally counted. Therefore, a "count" action, consisting of an is normally counted. Therefore, a "count" action, consisting of an
action table entry pointing to a count table entry, is configured. action table entry pointing to a count table entry, is configured.
Also, traffic is marked with the appropriate DSCP. The first R bits per 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, 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 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 with the same DSCP, but in general, the additional complexity of
deciding that it is being remarked to the same value is not useful. deciding that it is being remarked to the same value is not useful.
Therefore, a "mark" action, consisting of an action table entry pointing Therefore, a "mark" action, consisting of an action table entry pointing
to a mark table entry, is configured. to a mark table entry, is configured.
At this point, the usual case is that traffic is now forwarded in the 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 usual manner. To indicate this, the "SucceedNext" pointer of the Mark
Mark Action to zeroDotZero. Action is set to zeroDotZero.
3.6.1.3. EF Implementation On an Ingress Edge Interface 3.6.1.3. EF Implementation On an Ingress Edge Interface
The EF class applies a Single Rate Two Color Meter, dividing traffic The EF class applies a Single Rate Two Color Meter, dividing traffic
into "conforming" and "excess" groups. The intent, on the ingress into "conforming" and "excess" groups. The intent, on the ingress
interface at the edge of the network, is to measure and appropriately interface at the edge of the network, is to measure and appropriately
mark conforming traffic and drop the excess. mark conforming traffic and drop the excess.
3.6.1.3.1. EF Metering On an Ingress Edge Interface 3.6.1.3.1. EF Metering On an Ingress Edge Interface
skipping to change at page 25, line 4 skipping to change at page 22, line 37
3.6.1.3.2. EF Actions On an Ingress Edge Interface 3.6.1.3.2. EF Actions On an Ingress Edge Interface
For network planning and perhaps for billing purposes, arriving traffic For network planning and perhaps for billing purposes, arriving traffic
that conforms to the meter is normally counted. Therefore, a "count" that conforms to the meter is normally counted. Therefore, a "count"
action, consisting of an action table entry pointing to a count table action, consisting of an action table entry pointing to a count table
entry, is configured. entry, is configured.
Also, traffic is (re)marked with the EF DSCP. Therefore, a "mark" Also, traffic is (re)marked with the EF DSCP. Therefore, a "mark"
action, consisting of an action table entry pointing to a mark table action, consisting of an action table entry pointing to a mark table
entry, is configured. entry, is configured.
At this point, the successful traffic is now forwarded in the usual At this point, the successful traffic is now forwarded in the usual
manner. To indicate this, we set the "SucceedNext" pointer of the Mark manner. To indicate this, the "SucceedNext" pointer of the Mark Action
Action to zeroDotZero. is set to zeroDotZero.
Traffic that exceeded the arrival policy, however, is to be dropped. We Traffic that exceeded the arrival policy, however, is to be dropped.
can use a count action on this traffic if the several counters are One can use a count action on this traffic if the several counters are
interesting. However, since the drop counter in the Algorithmic Drop interesting. However, since the drop counter in the Algorithmic Drop
Entry will count packets dropped, this is not clearly necessary. We Entry will count packets dropped, this is not clearly necessary. An
configure an Alorithmic Drop Entry of the type "alwaysDrop," with no Alorithmic Drop Entry of the type "alwaysDrop" with no successor is
successor. sufficient.
3.7. AF and EF Egress Edge Interface Configuration 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
information. If it is relevant, there is no reason not to use that
+-----------------------+ +-----------------------+
| diffServDataPathStart | | diffServDataPathStart |
+-----------+-----------+ +-----------+-----------+
| |
+----------+ +----------+
| |
+--+--+ +-----+ +-----+ +-----+ +-----+ +--+--+ +-----+ +-----+ +-----+ +-----+
| AF1 +-----+ AF2 +-----+ AF3 +-----+ AF4 +-----+ EF | | AF1 +-----+ AF2 +-----+ AF3 +-----+ AF4 +-----+ EF |
|-+++-| |-+++-| |-+++-| |-+++-| +-+-+-+ |-+++-| |-+++-| |-+++-| |-+++-| +-+-+-+
||| ||| ||| ||| | | ||| ||| ||| ||| | |
|-+++-| |-+++-| |-+++-| |-+++-| +-+-+-+ |-+++-| |-+++-| |-+++-| |-+++-| +-+-+-+
|TRTCM| |TRTCM| |TRTCM| |TRTCM| |srTCM| |TRTCM| |TRTCM| |TRTCM| |TRTCM| |srTCM|
|Meter| |Meter| |Meter| |Meter| |Meter| |Meter| |Meter| |Meter| |Meter| |Meter|
|-+++-| |-+++-| |-+++-| |-+++-| +-+-+-+ |-+++-| |-+++-| |-+++-| |-+++-| +-+-+-+
||| ||| ||| ||| | | ||| ||| ||| ||| | |
+-+||---+ +-+||---+ +-+||---+ +-+||---+ +-+-|---+ +-+||---+ +-+||---+ +-+||---+ +-+||---+ +-+-|---+
|+-+|----+ |+-+|----+ |+-+|----+ |+-+|----+ |+--+----+ |+-+|----+ |+-+|----+ |+-+|----+ |+-+|----+ |+--+----+
||+-+-----+ ||+-+-----+ ||+-+-----+ ||+-+-----+ ||Actions| ||+-+-----+ ||+-+-----+ ||+-+-----+ ||+-+-----+ ||Actions|
+||Actions| +||Actions| +||Actions| +||Actions| +|Below | +||Actions| +||Actions| +||Actions| +||Actions| +| |
+|Below | +|Below | +|Below | +|Below | +-+-----+ +| | +| | +| | +| | +-+-----+
+-+-----+ +-+-----+ +-+-----+ +-+-----+ | +-+-----+ +-+-----+ +-+-----+ +-+-----+ |
||| ||| ||| ||| | ||| ||| ||| ||| |
+-+++--+ +-+++--+ +-+++--+ +-+++--+ +--+---+ +-+++--+ +-+++--+ +-+++--+ +-+++--+ +--+---+
| Queue| | Queue| | Queue| | Queue| | Queue| | Queue| | Queue| | Queue| | Queue| | Queue|
+--+---+ +--+---+ +--+---+ +--+---+ +--+---+ +--+---+ +--+---+ +--+---+ +--+---+ +--+---+
| | | | | | | | | |
+--+-----------+-----------+-----------+---+ | +--+-----------+-----------+-----------+---+ |
| WFQ/WRR Scheduler | | | WFQ/WRR Scheduler | |
+--------------------------------------+---+ | +--------------------------------------+---+ |
| | | |
+-----+-----------+----+ +-----+-----------+----+
| Priority Scheduler | | Priority Scheduler |
+----------+-----------+ +----------+-----------+
| |
V V
3.7.1. Classification On an Egress Edge Interface Figure 8: combined EF and AF implementation
A packet arriving at an egress interface may have been classified on an
ingress interface, and the egress interface may have access to that
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 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 (re)classify on the egress interface. In any event, it picks up its
"program" from the diffServDataPathTable. This points to a classifier, "program" from the diffServDataPathTable. This points to a classifier,
which will select traffic according to some specification for each which will select traffic according to some specification for each
traffic class. traffic class.
An example of a classifier for an AFm class would be a succession of An example of a classifier for an AFm class would be a succession of
three classifier elements, each pointing to a Multi-field classification three classifier elements, each pointing to a Multi-field classification
parameter block identifying one of the AFmn DSCPs. Alternatively, the parameter block identifying one of the AFmn DSCPs. Alternatively, the
filter might contain selectors for HTTP traffic or some other filter might contain selectors for HTTP traffic or some other
skipping to change at page 27, line 4 skipping to change at page 24, line 39
rates, only the higher one, or none. The intent, on the ingress rates, only the higher one, or none. The intent, on the ingress
interface at the edge of the network, is to measure and appropriately interface at the edge of the network, is to measure and appropriately
mark traffic. mark traffic.
3.7.2.1. AF Metering On an Egress Edge Interface 3.7.2.1. AF Metering On an Egress Edge Interface
Each AFm class applies a Two Rate Three Color Meter, dividing traffic 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 into three groups. If two rates R and S, with R < S, are specified and
traffic arrives at rate T, traffic comprising up to R bits per second is traffic arrives at rate T, traffic comprising up to R bits per second is
considered to conform to the "confirmed" rate, R. If R < T, traffic 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 comprising up to S-R bits per second is considered to conform to the
"excess" rate, S. Any further excess is non- conformant. "excess" rate, S. Any further excess is non- conformant.
To configure this, we apply two Meter Entries, one for the conforming Two meter entries are used to configure this, one for the conforming
rate and one for the excess rate. The rate parameters are stored in rate and one for the excess rate. The rate parameters are stored in
associated Token Bucket Parameter Entries. The "FailNext" pointer of associated Token Bucket Parameter Entries. The "FailNext" pointer of
the lower rate Meter Entry points to the other Meter Entry; both the lower rate Meter Entry points to the other Meter Entry; both
"SucceedNext" pointers and the "FailNext" pointer of the higher Meter "SucceedNext" pointers and the "FailNext" pointer of the higher Meter
Entry point to lists of actions. In the color-blind mode, all three 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 classifier "next" entries point to the lower rate meter entry. In the
color-aware mode, the AFm1 classifier points to the lower rate entry, 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 the AFm2 classifier points to the higher rate entry (as it is only
compared against that rate), and the AFm3 classifier points directly to compared against that rate), and the AFm3 classifier points directly to
the actions taken when both rates fail. the actions taken when both rates fail.
3.7.2.2. AF Actions On an Egress Edge Interface 3.7.2.2. AF Actions On an Egress Edge Interface
For network planning and perhaps for billing purposes, departing traffic For network planning and perhaps for billing purposes, departing traffic
is normally counted. Therefore, a "count" action, consisting of an is normally counted. Therefore, a "count" action, consisting of an
action table entry pointing to a count table entry, is configured. action table entry pointing to a count table entry, is configured.
skipping to change at page 28, line 40 skipping to change at page 26, line 30
Also, traffic is (re)marked with the EF DSCP. Therefore, a "mark" Also, traffic is (re)marked with the EF DSCP. Therefore, a "mark"
action, consisting of an action table entry pointing to a mark table action, consisting of an action table entry pointing to a mark table
entry, is configured. entry, is configured.
At this point, the successful traffic is now queued for transmission, At this point, the successful traffic is now queued for transmission,
using a priority queue or perhaps a rate-based queue with significant using a priority queue or perhaps a rate-based queue with significant
over-provision. Since the amount of traffic present is known, one might over-provision. Since the amount of traffic present is known, one might
not drop from this queue at all. not drop from this queue at all.
Traffic that exceeded the policy, however, is dropped. We can use a Traffic that exceeded the policy, however, is dropped. A count action
count action on this traffic if the several counters are interesting. can be used on this traffic if the several counters are interesting.
However, since the drop counter in the Algorithmic Drop Entry will count However, since the drop counter in the Algorithmic Drop Entry will count
packets dropped, this is not clearly necessary. We configure an packets dropped, this is not clearly necessary. An Alorithmic Drop
Alorithmic Drop Entry of the type "alwaysDrop," with no successor. Entry of the type "alwaysDrop" with no successor is sufficient.
3.7.3.3. EF Priority Queuing On an Egress Edge Interface 3.7.3.3. EF Priority Queuing On an Egress Edge Interface
The normal implementation is a priority queue, to minimize induced The normal implementation is a priority queue, to minimize induced
jitter. By this, we mean that a separate queue is used for each EF jitter. A separate queue is used for each EF class, with a strict
class, with a strict ordering. ordering.
4. Conventions used in this MIB 4. Conventions used in this MIB
4.1. The use of RowPointer to indicate data path linkage 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 this a MIB Table by pointing to one of its objects. One of the ways this MIB
MIB uses it is to indicate succession, pointing to data path linkage uses it is to indicate succession, pointing to data path linkage table
table entries.
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.
Since a RowPointer is not tied to any specific object except by the Since a RowPointer is not tied to any specific object except by the
skipping to change at page 32, line 16 skipping to change at page 30, line 16
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 "200108270000Z" LAST-UPDATED "200109130000Z"
ORGANIZATION "IETF Differentiated Services 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
skipping to change at page 32, line 42 skipping to change at page 30, line 42
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: Differentiated Services Working Group:
diffserv@ietf.org" 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 a Differentiated Services Code Point is used in a MIB." whenever a Differentiated Services Code Point is used in a MIB."
REVISION "200108270000Z" REVISION "200109130000Z"
DESCRIPTION DESCRIPTION
"Initial version, published as RFC xxxx." "Initial version, published as RFC xxxx."
::= { mib-2 xxx } -- to be assigned by IANA ::= { mib-2 xxx } -- to be assigned by IANA
Dscp ::= TEXTUAL-CONVENTION Dscp ::= TEXTUAL-CONVENTION
DISPLAY-HINT "d" DISPLAY-HINT "d"
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"A Differentiated Services Code-Point that may be used for "A Differentiated Services Code-Point that may be used for
marking a traffic stream." marking a traffic stream."
skipping to change at page 34, line 12 skipping to change at page 32, line 12
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,
zeroDotZero, mib-2 zeroDotZero, mib-2
FROM SNMPv2-SMI FROM SNMPv2-SMI
TEXTUAL-CONVENTION, RowStatus, RowPointer, TimeStamp TEXTUAL-CONVENTION, RowStatus, RowPointer, TimeStamp,
StorageType, AutonomousType
FROM SNMPv2-TC FROM SNMPv2-TC
MODULE-COMPLIANCE, OBJECT-GROUP MODULE-COMPLIANCE, OBJECT-GROUP
FROM SNMPv2-CONF FROM SNMPv2-CONF
ifIndex ifIndex, InterfaceIndexOrZero
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 "200108270000Z" LAST-UPDATED "200109130000Z"
ORGANIZATION "IETF Differentiated Services 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
skipping to change at page 35, line 7 skipping to change at page 33, line 8
San Jose, CA 95119, USA San Jose, CA 95119, USA
E-mail: andrew@allegronetworks.com E-mail: andrew@allegronetworks.com
Differentiated Services Working Group: Differentiated Services Working Group:
diffserv@ietf.org" 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. The Conceptual Model of a Differentiated Services Router 2475. The Conceptual Model of a Differentiated Services Router
provides supporting information on how such a router is modeled." provides supporting information on how such a router is modeled."
REVISION "200108270000Z" REVISION "200109130000Z"
DESCRIPTION DESCRIPTION
"Initial version, published as RFC xxxx." "Initial version, published as RFC xxxx."
::= { mib-2 xxx } -- to be assigned by IANA ::= { mib-2 xxx } -- to be assigned by IANA
diffServMIBObjects OBJECT IDENTIFIER ::= { diffServMib 1 } diffServMIBObjects OBJECT IDENTIFIER ::= { diffServMib 1 }
diffServMIBConformance OBJECT IDENTIFIER ::= { diffServMib 2 } diffServMIBConformance OBJECT IDENTIFIER ::= { diffServMib 2 }
diffServMIBAdmin OBJECT IDENTIFIER ::= { diffServMib 3 }
IndexInteger ::= TEXTUAL-CONVENTION IndexInteger ::= TEXTUAL-CONVENTION
DISPLAY-HINT "d" DISPLAY-HINT "d"
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An integer which may be used as an SNMP Index." "An integer which may be used as a table index."
SYNTAX INTEGER (1..2147483647) SYNTAX Unsigned32 (1..2147483647)
IndexIntegerNextFree ::= TEXTUAL-CONVENTION
DISPLAY-HINT "d"
STATUS current
DESCRIPTION
"An integer which may be used as a new Index in a table.
The special value of 0 indicates that no more new entries can be
created in the relevant table.
When a MIB is used for configuration, an object with this SYNTAX
always contains a legal value (if non-zero) for an index that is
not currently used in the relevant table. The Command Generator
(Network Management Application) reads this variable and uses the
(non-zero) value read when creating a new row with an SNMP SET.
When the SET is performed, the Command Responder (agent) must
determine whether the value is indeed still unused; Two Network
Management Applications may attempt to create a row
(configuration entry) simultaneously and use the same value. If
it is currently unused, the SET succeeds and the Command
Responder (agent) changes the value of this object, according to
an implementation-specific algorithm. If the value is in use,
however, the SET fails. The Network Management Application must
then re-read this variable to obtain a new usable value.
An OBJECT-TYPE definition using this SYNTAX MUST specify the
relevant table for which the object is providing this
functionality."
SYNTAX Unsigned32 (0..2147483647)
IfDirection ::= TEXTUAL-CONVENTION IfDirection ::= TEXTUAL-CONVENTION
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"IfDirection specifies a direction of data travel on an "IfDirection specifies a direction of data travel on an
interface. 'inbound' traffic is operated on during reception from interface. 'inbound' traffic is operated on during reception from
the interface, while 'outbound' traffic is operated on prior to the interface, while 'outbound' traffic is operated on prior to
transmission on the interface." transmission on the interface."
SYNTAX INTEGER { SYNTAX INTEGER {
inbound(1), -- ingress interface inbound(1), -- ingress interface
skipping to change at page 36, line 15 skipping to change at page 35, line 15
-- --
-- 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 -- 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 -- 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. -- 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 contains RowPointers indicating the start of "The data path table contains RowPointers indicating the start of
the functional data path for each interface and traffic direction the functional data path for each interface and traffic direction
in this device. These may merge, or be separated into parallel in this device. These may merge, or be separated into parallel
data paths by meters or classifiers." data paths."
::= { 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 indicates the start of a single "An entry in the data path table indicates the start of a single
Differentiated Services Functional Data 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,
diffServDataPathStorage StorageType,
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
"IfDirection specifies whether the reception or transmission path "IfDirection specifies whether the reception or transmission path
for this interface is in view." for this interface is in view."
skipping to change at page 37, line 39 skipping to change at page 36, line 41
A value of zeroDotZero in this attribute indicates that no A value of zeroDotZero in this attribute indicates that no
Differentiated Services treatment is performed on traffic of this Differentiated Services treatment is performed on traffic of this
data path. A pointer with the value zeroDotZero normally data path. A pointer with the value zeroDotZero normally
terminates a functional 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 }
diffServDataPathStorage OBJECT-TYPE
SYNTAX StorageType
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The StorageType variable controls the type of memory in which
this row is stored; potentially, these include volatile, non-
volatile, and ROM memory, and in the last case may only partially
be in ROM. If the row is stored in ROM, then every column in it
may be stored in ROM."
DEFVAL { nonVolatile }
::= { diffServDataPathEntry 3 }
diffServDataPathStatus OBJECT-TYPE diffServDataPathStatus 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 row/entry. Any writable variable may be modified deletion of a row/entry. Any writable variable may be modified
whether the row is active or notInService." whether the row is active or notInService."
::= { diffServDataPathEntry 3 } ::= { diffServDataPathEntry 4 }
-- --
-- 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 --classify all packets presented to it. This means that all traffic
--presented to a classifier must match at least one classifier element --presented to a classifier must match at least one classifier element
--within the classifier, with the classifier element parameters --within the classifier, with the classifier element parameters
--specified by a filter. --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 --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 --classifier element table describes one branch of the fan-out
-- characteristic of a classifier indicated in the Informal
-- Differentiated Services Model section 4.1. A classifier is composed
-- of one or more classifier elements.
diffServClfrNextFree OBJECT-TYPE diffServClfrNextFree OBJECT-TYPE
SYNTAX IndexInteger SYNTAX IndexIntegerNextFree
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 contains an unused value for diffServClfrId, or a
for a diffServClfrId instance. If a configuring system attempts zero to indicate that none exist."
to create a new row in the diffServClfrTable using this value,
but an instance has been created or is in the process of being
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
belonging to each classifier. belonging to each classifier.
An entry in this table, pointed to by a RowPointer specifying an An entry in this table, pointed to by a RowPointer specifying an
instance of diffServClfrStatus, is frequently used as the name instance of diffServClfrStatus, is frequently used as the name
for a set of classifier elements, which all use the index for a set of classifier elements, which all use the index
diffServClfrId. Per the semantics of the classifier element diffServClfrId. Per the semantics of the classifier element
table, these entries constitute one or more unordered sets of table, these entries constitute one or more unordered sets of
tests which may be simultaneously applied to a message to tests which may be simultaneously applied to a message to
classify it." classify it.
REFERENCE
"the Informal Differentiated Services Model section 4.1" The primary function of this table is to ensure that the value of
diffServClfrId is unique before attempting to use it in creating
a diffServClfrElementEntry. Therefore, the diffServClfrEntry must
be created on the same SET as the diffServClfrElementEntry, or
before the diffServClfrElementEntry is created."
::= { diffServClassifier 2 } ::= { diffServClassifier 2 }
diffServClfrEntry OBJECT-TYPE diffServClfrEntry OBJECT-TYPE
SYNTAX DiffServClfrEntry SYNTAX DiffServClfrEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
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 IndexInteger, diffServClfrId IndexInteger,
diffServClfrStorage StorageType,
diffServClfrStatus RowStatus diffServClfrStatus RowStatus
} }
diffServClfrId OBJECT-TYPE diffServClfrId OBJECT-TYPE
SYNTAX IndexInteger SYNTAX IndexInteger
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. Managers
identifiers spans the whole agent. Managers should obtain new should obtain new values for row creation in this table by
values for row creation in this table by reading reading diffServClfrNextFree."
diffServClfrNextFree."
::= { diffServClfrEntry 1 } ::= { diffServClfrEntry 1 }
diffServClfrStorage OBJECT-TYPE
SYNTAX StorageType
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The StorageType variable controls the type of memory in which
this row is stored; potentially, these include volatile, non-
volatile, and ROM memory, and in the last case may only partially
be in ROM. If the row is stored in ROM, then every column in it
may be stored in ROM."
DEFVAL { nonVolatile }
::= { 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 IndexInteger SYNTAX IndexIntegerNextFree
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 contains an unused value for diffServClfrElementId,
for a diffServClfrElementId instance. If a configuring system or a zero to indicate that none exist."
attempts to create a new row in the diffServClfrElementTable
using this value, but an instance has been created or is in the
process of being created, that operation will fail."
::= { 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 Differentiated classification patterns and subsequent downstream Differentiated
Services Functional Data Path elements. Services Functional Data Path elements.
skipping to change at page 41, line 44 skipping to change at page 41, line 42
micro-flow (an identifiable sub-session packet stream directed micro-flow (an identifiable sub-session packet stream directed
from one sending transport to the receiving transport or from one sending transport to the receiving transport or
transports), or aggregates of those such as the traffic from a transports), or aggregates of those such as the traffic from a
host, traffic for an application, or traffic between two hosts host, traffic for an application, or traffic between two hosts
using an application and a given DSCP. The standard Behavior using an application and a given DSCP. The standard Behavior
Aggregate used in the Differentiated Services Architecture is Aggregate used in the Differentiated Services Architecture is
encoded as a degenerate case of such an aggregate - the traffic encoded as a degenerate case of such an aggregate - the traffic
using a particular DSCP value. 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
"the Informal Differentiated Services 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 { diffServClfrId, diffServClfrElementId }
::= { diffServClfrElementTable 1 } ::= { diffServClfrElementTable 1 }
DiffServClfrElementEntry ::= SEQUENCE { DiffServClfrElementEntry ::= SEQUENCE {
diffServClfrElementClfrId IndexInteger,
diffServClfrElementId IndexInteger, diffServClfrElementId IndexInteger,
diffServClfrElementPrecedence Unsigned32, diffServClfrElementPrecedence Unsigned32,
diffServClfrElementNext RowPointer, diffServClfrElementNext RowPointer,
diffServClfrElementSpecific RowPointer, diffServClfrElementSpecific RowPointer,
diffServClfrElementStorage StorageType,
diffServClfrElementStatus RowStatus diffServClfrElementStatus RowStatus
} }
diffServClfrElementClfrId OBJECT-TYPE
SYNTAX IndexInteger
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An index that enumerates the classifier entries. The set of such
identifiers spans the whole agent. Managers obtain new values for
row creation in this table by reading diffServClfrNextFree.
A classifier Id identifies which classifier this classifier
element is a part of."
::= { diffServClfrElementEntry 1 }
diffServClfrElementId OBJECT-TYPE diffServClfrElementId OBJECT-TYPE
SYNTAX IndexInteger SYNTAX IndexInteger
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 Element entries.
of such identifiers spans the whole agent. Managers obtain new Managers obtain new values for row creation in this table by
values for row creation in this table by reading reading diffServClfrElementNextFree."
diffServClfrElementNextFree." ::= { diffServClfrElementEntry 1 }
::= { 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. Classifier elements with different order may overlap in stream. Classifier elements with different order may overlap 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 classifier in On a given interface, there must be a complete classifier in
place at all times in the ingress direction. This means one or place at all times in the ingress direction. This means one or
more filters must match any possible pattern. There is no such more filters must match any possible pattern. There is no such
requirement in the egress direction." requirement in the egress direction."
DEFVAL { 0 } DEFVAL { 0 }
::= { diffServClfrElementEntry 3 } ::= { diffServClfrElementEntry 2 }
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 the Informal Differentiated Services of a classifier described in the Informal Differentiated Services
Model section 4.1. Model section 4.1.
skipping to change at page 43, line 43 skipping to change at page 43, line 25
diffServQEntry diffServQEntry
A value of zeroDotZero in this attribute indicates no further A value of zeroDotZero in this attribute indicates no further
Differentiated Services treatment is performed on traffic of this Differentiated Services treatment is performed on traffic of this
data path. The use of zeroDotZero is the normal usage for the data path. The use of zeroDotZero is the normal usage for the
last 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."
::= { diffServClfrElementEntry 4 } ::= { diffServClfrElementEntry 3 }
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, that "A pointer to a valid entry in another table, filter table, that
describes the applicable classification parameters, e.g. an entry describes the applicable classification parameters, e.g. an entry
in diffServMultiFieldClfrTable. in diffServMultiFieldClfrTable.
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 } ::= { diffServClfrElementEntry 4 }
diffServClfrElementStorage OBJECT-TYPE
SYNTAX StorageType
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The StorageType variable controls the type of memory in which
this row is stored; potentially, these include volatile, non-
volatile, and ROM memory, and in the last case may only partially
be in ROM. If the row is stored in ROM, then every column in it
may be stored in ROM."
DEFVAL { nonVolatile }
::= { 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, deactivation, or "The RowStatus variable controls the activation, deactivation, or
deletion of a classifier element. Any writeable variable may be deletion of a classifier element. Any writable variable may be
modified whether the row is active or notInService." modified whether the row is active or notInService."
::= { diffServClfrElementEntry 6 } ::= { diffServClfrElementEntry 6 }
-- --
-- IP Multi-field Classification Table
-- --
--Classification based on six different fields in the IP header. --Classification based on six different fields in the IP header.
--Functional Data Paths may share definitions by using the same entry. --Functional Data Paths may share definitions by using the same entry.
-- --
diffServMultiFieldClfrNextFree OBJECT-TYPE diffServMultiFieldClfrNextFree OBJECT-TYPE
SYNTAX IndexInteger SYNTAX IndexIntegerNextFree
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 for a "This object contains an unused value for
diffServMultiFieldClfrId instance. If a configuring system attempts to create a diffServMultiFieldClfrId, or a zero to indicate that none exist."
new row in the diffServMultiFieldClfrTable using this value, but an instance has
been created or is in the process of being created, that operation will fail."
::= { diffServClassifier 5 } ::= { diffServClassifier 5 }
diffServMultiFieldClfrTable OBJECT-TYPE diffServMultiFieldClfrTable OBJECT-TYPE
SYNTAX SEQUENCE OF DiffServMultiFieldClfrEntry SYNTAX SEQUENCE OF DiffServMultiFieldClfrEntry
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 Multi-field Classifier filter entries that a
may use to identify IP traffic." system may use to identify IP traffic."
REFERENCE
"the Informal Differentiated Services Model section 4.2.2"
::= { diffServClassifier 6 } ::= { diffServClassifier 6 }
diffServMultiFieldClfrEntry OBJECT-TYPE diffServMultiFieldClfrEntry OBJECT-TYPE
SYNTAX DiffServMultiFieldClfrEntry SYNTAX DiffServMultiFieldClfrEntry
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 Multi-field Classifier entry describes a single filter."
INDEX { diffServMultiFieldClfrId } INDEX { diffServMultiFieldClfrId }
::= { diffServMultiFieldClfrTable 1 } ::= { diffServMultiFieldClfrTable 1 }
DiffServMultiFieldClfrEntry ::= SEQUENCE { DiffServMultiFieldClfrEntry ::= SEQUENCE {
diffServMultiFieldClfrId IndexInteger, diffServMultiFieldClfrId IndexInteger,
diffServMultiFieldClfrAddrType InetAddressType, diffServMultiFieldClfrAddrType InetAddressType,
diffServMultiFieldClfrDstAddr InetAddress, diffServMultiFieldClfrDstAddr InetAddress,
diffServMultiFieldClfrDstPrefixLength InetAddressPrefixLength, diffServMultiFieldClfrDstPrefixLength InetAddressPrefixLength,
diffServMultiFieldClfrSrcAddr InetAddress, diffServMultiFieldClfrSrcAddr InetAddress,
diffServMultiFieldClfrSrcPrefixLength InetAddressPrefixLength, diffServMultiFieldClfrSrcPrefixLength InetAddressPrefixLength,
diffServMultiFieldClfrDscp DscpOrAny, diffServMultiFieldClfrDscp DscpOrAny,
diffServMultiFieldClfrFlowId INTEGER, diffServMultiFieldClfrFlowId Unsigned32,
diffServMultiFieldClfrProtocol Unsigned32, diffServMultiFieldClfrProtocol Unsigned32,
diffServMultiFieldClfrDstL4PortMin InetPortNumber, diffServMultiFieldClfrDstL4PortMin InetPortNumber,
diffServMultiFieldClfrDstL4PortMax InetPortNumber, diffServMultiFieldClfrDstL4PortMax InetPortNumber,
diffServMultiFieldClfrSrcL4PortMin InetPortNumber, diffServMultiFieldClfrSrcL4PortMin InetPortNumber,
diffServMultiFieldClfrSrcL4PortMax InetPortNumber, diffServMultiFieldClfrSrcL4PortMax InetPortNumber,
diffServMultiFieldClfrStorage StorageType,
diffServMultiFieldClfrStatus RowStatus diffServMultiFieldClfrStatus RowStatus
} }
diffServMultiFieldClfrId OBJECT-TYPE diffServMultiFieldClfrId OBJECT-TYPE
SYNTAX IndexInteger SYNTAX IndexInteger
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An index that enumerates the MultiField Classifier filter "An index that enumerates the MultiField Classifier filter
entries. The set of such identifiers spans the whole agent. entries. Managers obtain new values for row creation in this
Managers obtain new values for row creation in this table by table by reading diffServMultiFieldClfrNextFree."
reading diffServMultiFieldClfrNextFree."
::= { diffServMultiFieldClfrEntry 1 } ::= { diffServMultiFieldClfrEntry 1 }
diffServMultiFieldClfrAddrType OBJECT-TYPE diffServMultiFieldClfrAddrType OBJECT-TYPE
SYNTAX InetAddressType SYNTAX InetAddressType
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The type of IP address used by this classifier entry." "The type of IP address used by this classifier entry."
::= { diffServMultiFieldClfrEntry 2 } ::= { diffServMultiFieldClfrEntry 2 }
diffServMultiFieldClfrDstAddr OBJECT-TYPE diffServMultiFieldClfrDstAddr 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 destination IP
address. diffServMultiFieldClfrDstPrefixLength indicates the address. This may not be a DNS name, but may be an IPv4 or IPv6
prefix. diffServMultiFieldClfrDstPrefixLength indicates the
number of bits that are relevant." number of bits that are relevant."
::= { diffServMultiFieldClfrEntry 3 } ::= { diffServMultiFieldClfrEntry 3 }
diffServMultiFieldClfrDstPrefixLength OBJECT-TYPE diffServMultiFieldClfrDstPrefixLength 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
skipping to change at page 46, line 38 skipping to change at page 47, line 13
prefix lengths range from 0..128." prefix lengths range from 0..128."
DEFVAL { 0 } DEFVAL { 0 }
::= { diffServMultiFieldClfrEntry 4 } ::= { diffServMultiFieldClfrEntry 4 }
diffServMultiFieldClfrSrcAddr OBJECT-TYPE diffServMultiFieldClfrSrcAddr 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 source IP address. "The IP address to match against the packet's source IP address.
This may not be a DNS name, but may be an IPv4 or IPv6 prefix.
diffServMultiFieldClfrSrcPrefixLength indicates the number of diffServMultiFieldClfrSrcPrefixLength indicates the number of
bits that are relevant." bits that are relevant."
::= { diffServMultiFieldClfrEntry 5 } ::= { diffServMultiFieldClfrEntry 5 }
diffServMultiFieldClfrSrcPrefixLength OBJECT-TYPE diffServMultiFieldClfrSrcPrefixLength OBJECT-TYPE
SYNTAX InetAddressPrefixLength SYNTAX InetAddressPrefixLength
UNITS "bits" UNITS "bits"
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
skipping to change at page 47, line 22 skipping to change at page 47, line 45
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."
DEFVAL { -1 } DEFVAL { -1 }
::= { diffServMultiFieldClfrEntry 7 } ::= { diffServMultiFieldClfrEntry 7 }
diffServMultiFieldClfrFlowId OBJECT-TYPE diffServMultiFieldClfrFlowId OBJECT-TYPE
SYNTAX INTEGER (0..1048575) SYNTAX Unsigned32 (0..1048575)
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The flow identifier in an IPv6 header." "The flow identifier in an IPv6 header."
::= { diffServMultiFieldClfrEntry 8 } ::= { diffServMultiFieldClfrEntry 8 }
diffServMultiFieldClfrProtocol OBJECT-TYPE diffServMultiFieldClfrProtocol OBJECT-TYPE
SYNTAX Unsigned32 (0..255) SYNTAX Unsigned32 (0..255)
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
skipping to change at page 48, line 33 skipping to change at page 49, line 7
packet must have in order to match this classifier entry." packet must have in order to match this classifier entry."
DEFVAL { 0 } DEFVAL { 0 }
::= { diffServMultiFieldClfrEntry 12 } ::= { diffServMultiFieldClfrEntry 12 }
diffServMultiFieldClfrSrcL4PortMax OBJECT-TYPE diffServMultiFieldClfrSrcL4PortMax OBJECT-TYPE
SYNTAX InetPortNumber SYNTAX InetPortNumber
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The maximum value that the layer-4 source port number in the "The maximum value that the layer-4 source port number in the
packet must have in oder to match this classifier entry. This packet must have in order to match this classifier entry. This
value must be equal to or greater than the value specified for value must be equal to or greater than the value specified for
this entry in diffServMultiFieldClfrSrcL4PortMin." this entry in diffServMultiFieldClfrSrcL4PortMin."
DEFVAL { 65535 } DEFVAL { 65535 }
::= { diffServMultiFieldClfrEntry 13 } ::= { diffServMultiFieldClfrEntry 13 }
diffServMultiFieldClfrStorage OBJECT-TYPE
SYNTAX StorageType
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The StorageType variable controls the type of memory in which
this row is stored; potentially, these include volatile, non-
volatile, and ROM memory, and in the last case may only partially
be in ROM. If the row is stored in ROM, then every column in it
may be stored in ROM."
DEFVAL { nonVolatile }
::= { diffServMultiFieldClfrEntry 14 }
diffServMultiFieldClfrStatus OBJECT-TYPE diffServMultiFieldClfrStatus 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."
::= { diffServMultiFieldClfrEntry 14 } ::= { diffServMultiFieldClfrEntry 15 }
-- --
-- Meters -- Meters
-- --
diffServMeter OBJECT IDENTIFIER ::= { diffServMIBObjects 3 } diffServMeter OBJECT IDENTIFIER ::= { diffServMIBObjects 3 }
-- --
-- This MIB supports a variety of Meters. It includes a specific -- This MIB supports a variety of Meters. It includes a specific
-- definition for Token Bucket Meter, which are but one type of -- 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 -- Multiple meter elements may be logically cascaded using their
-- diffServMeterSucceedNext and diffServMeterFailNext pointers if -- diffServMeterSucceedNext and diffServMeterFailNext pointers if
-- required. One example of this might be for an AF PHB implementation -- 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 -- Cascading of individual meter elements in the MIB is intended to be
-- functionally equivalent to multiple level conformance determination -- functionally equivalent to multiple level conformance determination
-- of a packet. The sequential nature of the representation is merely -- of a packet. The sequential nature of the representation is merely
-- a notational convenience for this MIB. -- a notational convenience for this MIB.
-- srTCM meters (RFC 2697) can be specified using two sets of
-- diffServMeterEntry and diffServTBParamEntry. The first set specifies
-- the Committed Information Rate and Committed Burst Size
-- token-bucket. The second set specifies the Excess Burst Size
-- token-bucket.
-- trTCM meters (RFC 2698) can be specified using two sets of
-- diffServMeterEntry and diffServTBParamEntry. The first set specifies
-- the Committed Information Rate and Committed Burst Size
-- token-bucket. The second set specifies the Peak Information Rate
-- and Peak Burst Size token-bucket.
-- tswTCM meters (RFC 2859) can be specified using two sets of -- tswTCM meters (RFC 2859) can be specified using two sets of
-- diffServMeterEntry and diffServTBParamEntry. The first set specifies
-- the Committed Target Rate token-bucket. The second set specifies
-- the Peak Target Rate token-bucket. diffServTBParamInterval in each
-- token bucket reflects the Average Interval.
--
diffServMeterNextFree OBJECT-TYPE diffServMeterNextFree OBJECT-TYPE
SYNTAX IndexInteger SYNTAX IndexIntegerNextFree
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 contains an unused value for diffServMeterId, or a
for a diffServMeterId instance. If a configuring system attempts zero to indicate that none exist."
to create a new row in the diffServMeterTable using this value,
but an instance has been created or is in the process of being
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 a stream of traffic. The traffic stream to be metered is police a stream of traffic. The traffic stream to be metered is
determined by the Differentiated Services Functional Data Path determined by the Differentiated Services Functional Data Path
Element(s) upstream of the meter i.e. by the object(s) that point Element(s) upstream of the meter i.e. by the object(s) that point
to each entry in this table. This may include all traffic on an to each entry in this table. This may include all traffic on an
interface. 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
"the Informal Differentiated Services 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 IndexInteger, diffServMeterId IndexInteger,
diffServMeterSucceedNext RowPointer, diffServMeterSucceedNext RowPointer,
diffServMeterFailNext RowPointer, diffServMeterFailNext RowPointer,
diffServMeterSpecific RowPointer, diffServMeterSpecific RowPointer,
diffServMeterStorage StorageType,
diffServMeterStatus RowStatus diffServMeterStatus RowStatus
} }
diffServMeterId OBJECT-TYPE diffServMeterId OBJECT-TYPE
SYNTAX IndexInteger SYNTAX IndexInteger
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. Managers 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 "If the traffic does conform, this selects the next
Differentiated Services Functional Data Path element to handle Differentiated Services Functional Data Path element to handle
traffic for this data path. This RowPointer should point to an traffic for this data path. This RowPointer should point to an
skipping to change at page 52, line 21 skipping to change at page 53, line 18
SYNTAX RowPointer SYNTAX RowPointer
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This indicates the behavior of the meter by pointing to an entry "This indicates the behavior of the meter by pointing to an entry
containing detailed parameters. Note that entries in that containing detailed parameters. Note that entries in that
specific table must be managed explicitly. specific table must be managed explicitly.
For example, diffServMeterSpecific may point to an entry in For example, diffServMeterSpecific may point to an entry in
diffServTBParamTable, which contains an instance of a single set diffServTBParamTable, which contains an instance of a single set
of Token Bucket parameters." of Token Bucket parameters.
If diffServMeterSpecific points to a row which is invalid, non-
existent, or notInService, the Meter always succeeds."
::= { diffServMeterEntry 4 } ::= { diffServMeterEntry 4 }
diffServMeterStorage OBJECT-TYPE
SYNTAX StorageType
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The StorageType variable controls the type of memory in which
this row is stored; potentially, these include volatile, non-
volatile, and ROM memory, and in the last case may only partially
be in ROM. If the row is stored in ROM, then every column in it
may be stored in ROM."
DEFVAL { nonVolatile }
::= { diffServMeterEntry 5 }
diffServMeterStatus OBJECT-TYPE diffServMeterStatus OBJECT-TYPE
SYNTAX RowStatus SYNTAX RowStatus
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The RowStatus variable controls the activation, 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."
::= { diffServMeterEntry 5 } ::= { diffServMeterEntry 6 }
-- --
-- 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 -- Each entry in the Token Bucket Parameter Table parameterize a single
-- token bucket. Multiple token buckets can be used together to -- token bucket. Multiple token buckets can be used together to
-- parameterize multiple levels of conformance. -- parameterize multiple levels of conformance.
-- Note that an entry in the Token Bucket Parameter Table can be shared -- Note that an entry in the Token Bucket Parameter Table can be shared
-- by multiple diffServMeterTable entries. -- by multiple diffServMeterTable entries.
-- --
diffServTBParamNextFree OBJECT-TYPE diffServTBParamNextFree OBJECT-TYPE
SYNTAX IndexInteger SYNTAX IndexIntegerNextFree
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 contains an unused value for diffServTBParamId, or a
for a diffServTBParamId instance. If a configuring system zero to indicate that none exist."
attempts to create a new row in the diffServTBParamTable using
this value, but an instance has been created or is in the process
of being created, that operation will fail."
::= { 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 a stream of traffic. parameters that a system may use to police a stream of traffic.
Such meters are modeled here as having a single rate and a single Such meters are modeled here as having a single rate and a single
burst size. Multiple entries are used when multiple rates/burst burst size. Multiple entries are used when multiple rates/burst
sizes are needed." sizes are needed."
REFERENCE
"the Informal Differentiated Services 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 IndexInteger, diffServTBParamId IndexInteger,
diffServTBParamType OBJECT IDENTIFIER, diffServTBParamType AutonomousType,
diffServTBParamRate Unsigned32, diffServTBParamRate Unsigned32,
diffServTBParamBurstSize BurstSize, diffServTBParamBurstSize BurstSize,
diffServTBParamInterval Unsigned32, diffServTBParamInterval Unsigned32,
diffServTBParamStorage StorageType,
diffServTBParamStatus RowStatus diffServTBParamStatus RowStatus
} }
diffServTBParamId OBJECT-TYPE diffServTBParamId OBJECT-TYPE
SYNTAX IndexInteger SYNTAX IndexInteger
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An index that enumerates the Token Bucket Parameter entries. The "An index that enumerates the Token Bucket Parameter entries.
set of such identifiers spans the whole agent. Managers obtain Managers obtain new values for row creation in this table by
new values for row creation in this table by reading reading diffServTBParamNextFree."
diffServTBParamNextFree."
::= { diffServTBParamEntry 1 } ::= { diffServTBParamEntry 1 }
diffServTBParamType OBJECT-TYPE diffServTBParamType OBJECT-TYPE
SYNTAX OBJECT IDENTIFIER SYNTAX AutonomousType
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The Metering algorithm associated with the Token Bucket "The Metering algorithm associated with the Token Bucket
parameters. zeroDotZero indicates this is unknown. parameters. 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, and diffServTBParamTrTCMBlind, diffServTBParamTrTCMAware, and
diffServTBParamTswTCM are specified in this MIB as OBJECT- diffServTBParamTswTCM are specified in this MIB as OBJECT-
IDENTITYs; additional values may be further specified in other IDENTITYs; additional values may be further specified in other
MIBs." MIBs."
REFERENCE
"the Informal Differentiated Services 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: attribute is used for:
1. CIR in RFC 2697 for srTCM 1. CIR in RFC 2697 for srTCM
2. CIR and PIR in RFC 2698 for trTCM 2. CIR and PIR in RFC 2698 for trTCM
3. CTR and PTR in RFC 2859 for TSWTCM 3. CTR and PTR in RFC 2859 for TSWTCM
4. AverageRate used in the Informal Differentiated Services Model section 5." 4. AverageRate in RFC XXXX."
::= { 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. This "The maximum number of bytes in a single transmission burst. This
attribute is used for: attribute is used for:
1. CBS and EBS in RFC 2697 for srTCM 1. CBS and EBS in RFC 2697 for srTCM
2. CBS and PBS in RFC 2698 for trTCM 2. CBS and PBS in RFC 2698 for trTCM
3. Burst Size used in the Informal Differentiated Services Model section 5." 3. Burst Size in RFC XXXX."
::= { diffServTBParamEntry 4 } ::= { diffServTBParamEntry 4 }
diffServTBParamInterval OBJECT-TYPE diffServTBParamInterval OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX Unsigned32 (1..2147483647)
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: "The time interval used with the token bucket. For:
1. Average Rate Meter, the Informal Differentiated Services Model section 5.2.1, - Delta. 1. Average Rate Meter, the Informal Differentiated Services Model
2. Simple Token Bucket Meter, the Informal Differentiated Services Model section 5.1, section 5.2.1, - Delta.
- time interval t. 2. Simple Token Bucket Meter, the Informal Differentiated
Services Model section 5.1, - time interval t.
3. RFC 2859 TSWTCM, - AVG_INTERVAL. 3. RFC 2859 TSWTCM, - AVG_INTERVAL.
4. RFC 2697 srTCM, RFC 2698 trTCM, - token bucket 4. RFC 2697 srTCM, RFC 2698 trTCM, - token bucket update time
update time interval." interval."
::= { diffServTBParamEntry 5 } ::= { diffServTBParamEntry 5 }
diffServTBParamStorage OBJECT-TYPE
SYNTAX StorageType
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The StorageType variable controls the type of memory in which
this row is stored; potentially, these include volatile, non-
volatile, and ROM memory, and in the last case may only partially
be in ROM. If the row is stored in ROM, then every column in it
may be stored in ROM."
DEFVAL { nonVolatile }
::= { diffServTBParamEntry 6 }
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 7 }
--
-- OIDs for diffServTBParamType definitions.
--
diffServTBMeters OBJECT IDENTIFIER ::= { diffServMIBAdmin 1 }
diffServTBParamSimpleTokenBucket OBJECT-IDENTITY diffServTBParamSimpleTokenBucket OBJECT-IDENTITY
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"Two Parameter Token Bucket Meter as described in the Informal "Two Parameter Token Bucket Meter as described in the Informal
Differentiated Services Model section 5.2.3." Differentiated Services Model section 5.2.3."
REFERENCE ::= { diffServTBMeters 1 }
"the Informal Differentiated Services Model sections 5 and 7.1.2"
::= { diffServTBParam 3 }
diffServTBParamAvgRate OBJECT-IDENTITY diffServTBParamAvgRate OBJECT-IDENTITY
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"Average Rate Meter as described in the Informal Differentiated "Average Rate Meter as described in the Informal Differentiated
Services Model section 5.2.1." Services Model section 5.2.1."
REFERENCE ::= { diffServTBMeters 2 }
"the Informal Differentiated Services Model sections 5 and 7.1.2"
::= { diffServTBParam 4 }
diffServTBParamSrTCMBlind OBJECT-IDENTITY diffServTBParamSrTCMBlind OBJECT-IDENTITY
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"Single Rate Three Color Marker Metering as defined by RFC 2697, "Single Rate Three Color Marker Metering as defined by RFC 2697,
in the `Color Blind' mode as described by the RFC." in the `Color Blind' mode as described by the RFC."
REFERENCE REFERENCE
"RFC 2697" "RFC 2697"
::= { diffServTBParam 5 } ::= { diffServTBMeters 3 }
diffServTBParamSrTCMAware OBJECT-IDENTITY diffServTBParamSrTCMAware OBJECT-IDENTITY
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"Single Rate Three Color Marker Metering as defined by RFC 2697, "Single Rate Three Color Marker Metering as defined by RFC 2697,
in the `Color Aware' mode as described by the RFC." in the `Color Aware' mode as described by the RFC."
REFERENCE REFERENCE
"RFC 2697" "RFC 2697"
::= { diffServTBParam 6 } ::= { diffServTBMeters 4 }
diffServTBParamTrTCMBlind OBJECT-IDENTITY diffServTBParamTrTCMBlind OBJECT-IDENTITY
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"Two Rate Three Color Marker Metering as defined by RFC 2698, in "Two Rate Three Color Marker Metering as defined by RFC 2698, in
the `Color Blind' mode as described by the RFC." the `Color Blind' mode as described by the RFC."
REFERENCE REFERENCE
"RFC 2698" "RFC 2698"
::= { diffServTBParam 7 } ::= { diffServTBMeters 5 }
diffServTBParamTrTCMAware OBJECT-IDENTITY diffServTBParamTrTCMAware OBJECT-IDENTITY
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"Two Rate Three Color Marker Metering as defined by RFC 2698, in "Two Rate Three Color Marker Metering as defined by RFC 2698, in
the `Color Aware' mode as described by the RFC." the `Color Aware' mode as described by the RFC."
REFERENCE REFERENCE
"RFC 2698" "RFC 2698"
::= { diffServTBParam 8 } ::= { diffServTBMeters 6 }
diffServTBParamTswTCM OBJECT-IDENTITY diffServTBParamTswTCM OBJECT-IDENTITY
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"Time Sliding Window Three Color Marker Metering as defined by "Time Sliding Window Three Color Marker Metering as defined by
RFC 2859." RFC 2859."
REFERENCE REFERENCE
"RFC 2859" "RFC 2859"
::= { diffServTBParam 9 } ::= { diffServTBMeters 7 }
-- --
-- Actions -- Actions
-- --
diffServAction OBJECT IDENTIFIER ::= { diffServMIBObjects 5 } diffServAction OBJECT IDENTIFIER ::= { diffServMIBObjects 5 }
-- --
-- The Action Table allows enumeration of the different types of
-- actions to be applied to a traffic flow.
-- --
diffServActionNextFree OBJECT-TYPE diffServActionNextFree OBJECT-TYPE
SYNTAX IndexInteger SYNTAX IndexIntegerNextFree
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 contains an unused value for diffServActionId, or a
for a diffServActionId instance. If a configuring system attempts zero to indicate that none exist."
to create a new row in the diffServActionTable using this value,
but an instance has been created or is in the process of being
created, that operation will fail."
::= { 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, traffic exiting from a meter may be counted, marked, and example, traffic exiting from a meter may be counted, marked, and
potentially dropped before entering a queue. potentially dropped before entering a queue.
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
"the Informal Differentiated Services 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 IndexInteger, diffServActionId IndexInteger,
diffServActionInterface InterfaceIndexOrZero,
diffServActionNext RowPointer, diffServActionNext RowPointer,
diffServActionSpecific RowPointer, diffServActionSpecific RowPointer,
diffServActionStorage StorageType,
diffServActionStatus RowStatus diffServActionStatus RowStatus
} }
diffServActionId OBJECT-TYPE diffServActionId OBJECT-TYPE
SYNTAX IndexInteger SYNTAX IndexInteger
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. Managers 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 diffServActionNextFree." diffServActionNextFree."
::= { diffServActionEntry 1 } ::= { diffServActionEntry 1 }
diffServActionInterface OBJECT-TYPE
SYNTAX InterfaceIndexOrZero
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The interface index (value of ifIndex) that this action occurs
on. This may be derived from the diffServDataPathStartEntry's
index by extension through the various RowPointers. However, as
this may be difficult for a network management station, it is
placed here as well. If this is unspecified or unknown, the
value is zero.
This is of especial relevance when reporting the counters which
may apply to traffic crossing an interface:
diffServCountActOctets,
diffServCountActHCOctets,
diffServCountActPkts,
diffServCountActHCPkts,
diffServAlgDropOctets,
diffServAlgDropHCOctets,
diffServAlgDropPkts,
diffServAlgDropHCPkts,
diffServAlgRandomDropOctets,
diffServAlgRandomDropHCOctets,
diffServAlgRandomDropPkts, and
diffServAlgRandomDropHCPkts.
It is also especially relevant to the queue and scheduler which
may be subsequently applied."
::= { diffServActionEntry 2 }
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 Differentiated Services Functional Data "This selects the next Differentiated Services Functional Data
Path Element to handle traffic for this data path. This Path Element to handle traffic for this data path. This
RowPointer should point to an instance of one of: RowPointer should point to an instance of one of:
diffServClfrEntry diffServClfrEntry
diffServMeterEntry diffServMeterEntry
skipping to change at page 58, line 46 skipping to change at page 62, line 27
diffServQEntry diffServQEntry
A value of zeroDotZero in this attribute indicates no further A value of zeroDotZero in this attribute indicates no further
Differentiated Services treatment is performed on traffic of this Differentiated Services treatment is performed on traffic of this
data path. The use of zeroDotZero is the normal usage for the data path. The use of zeroDotZero is the normal usage for the
last 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 3 }
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 either a diffServDscpMarkActEntry or 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 }
If diffServActionSpecific points to a row which is invalid, non-
existent, or notInService, the Meter should be treated as if it
were not present. This may lead to incorrect policy behavior."
::= { diffServActionEntry 4 }
diffServActionStorage OBJECT-TYPE
SYNTAX StorageType
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The StorageType variable controls the type of memory in which
this row is stored; potentially, these include volatile, non-
volatile, and ROM memory, and in the last case may only partially
be in ROM. If the row is stored in ROM, then every column in it
may be stored in ROM."
DEFVAL { nonVolatile }
::= { diffServActionEntry 5 }
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 4 } ::= { diffServActionEntry 6 }
-- DSCP Mark Action Table -- DSCP Mark Action Table
-- --
-- Rows of this table are pointed to by diffServActionSpecific to -- Rows of this table are pointed to by diffServActionSpecific to
-- provide detailed parameters specific to the DSCP Mark action. -- provide detailed parameters specific to the DSCP Mark action.
-- --
-- A single entry in this table can be shared by multiple -- A single entry in this table can be shared by multiple
-- diffServActionTable entries. -- 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."
REFERENCE
"the Informal Differentiated Services Model section 6.1"
::= { diffServAction 3 } ::= { diffServAction 3 }
diffServDscpMarkActEntry OBJECT-TYPE diffServDscpMarkActEntry OBJECT-TYPE
SYNTAX DiffServDscpMarkActEntry SYNTAX DiffServDscpMarkActEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An entry in the DSCP mark action table that describes a single "An entry in the DSCP mark action table that describes a single
DSCP used for marking." DSCP used for marking."
INDEX { diffServDscpMarkActDscp } INDEX { diffServDscpMarkActDscp }
skipping to change at page 60, line 23 skipping to change at page 64, line 19
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 will store into the DSCP field of the "The DSCP that this Action will store into the DSCP field of the
subject. It is quite possible that the only packets subject to subject. It is quite possible that the only packets subject to
this Action are already marked with this DSCP. Note also that this Action are already marked with this DSCP. Note also that
Differentiated Services processing may result in packet being Differentiated Services processing may result in packet being
marked on both ingress to a network and on egress from it, and marked on both ingress to a network and on egress from it, and
that ingress and egress can occur in the same router. that ingress and egress can 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 -- 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 -- that have counters to always configure the count action as the first
-- of multiple actions. -- of multiple actions.
-- --
diffServCountActNextFree OBJECT-TYPE diffServCountActNextFree OBJECT-TYPE
SYNTAX IndexInteger SYNTAX IndexIntegerNextFree
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 for a "This object contains an unused value for
diffServCountActId instance. If a configuring system attempts to create a new diffServCountActId, or a zero to indicate that none exist."
row in the diffServCountActTable using this value, but an instance has been
created or is in the process of being created, that operation will fail."
::= { 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
"the Informal Differentiated Services Model section 6.4"
::= { diffServAction 5 } ::= { diffServAction 5 }
diffServCountActEntry OBJECT-TYPE diffServCountActEntry OBJECT-TYPE
SYNTAX DiffServCountActEntry SYNTAX DiffServCountActEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An entry in the count action table describes a single 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 IndexInteger, diffServCountActId IndexInteger,
diffServCountActOctets Counter32, diffServCountActOctets Counter32,
diffServCountActHCOctets Counter64, diffServCountActHCOctets Counter64,
diffServCountActPkts Counter32, diffServCountActPkts Counter32,
diffServCountActHCPkts Counter64, diffServCountActHCPkts Counter64,
diffServCountActDiscontTime TimeStamp, diffServCountActStorage StorageType,
diffServCountActStatus RowStatus diffServCountActStatus RowStatus
} }
diffServCountActId OBJECT-TYPE diffServCountActId OBJECT-TYPE
SYNTAX IndexInteger SYNTAX IndexInteger
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. Managers
such identifiers spans the whole agent. Managers obtain new obtain 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 ifCounterDiscontinuityTime on the
entry." relevant interface."
::= { 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 ifCounterDiscontinuityTime on the
entry." relevant interface."
::= { 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 ifCounterDiscontinuityTime on the
entry." relevant interface."
::= { 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 ifCounterDiscontinuityTime on the
entry." relevant interface."
::= { diffServCountActEntry 5 } ::= { diffServCountActEntry 5 }
diffServCountActDiscontTime OBJECT-TYPE diffServCountActStorage OBJECT-TYPE
SYNTAX TimeStamp SYNTAX StorageType
MAX-ACCESS read-only MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The value of sysUpTime on the most recent occasion at which any "The StorageType variable controls the type of memory in which
one or more of this entry's counters suffered a discontinuity. If this row is stored; potentially, these include volatile, non-
no such discontinuities have occurred since the last re- volatile, and ROM memory, and in the last case may only partially
initialization of the local management subsystem, then this be in ROM. If the row is stored in ROM, then every column in it
object contains a zero value." may be stored in ROM."
DEFVAL { nonVolatile }
::= { diffServCountActEntry 6 } ::= { diffServCountActEntry 6 }
diffServCountActStatus OBJECT-TYPE diffServCountActStatus OBJECT-TYPE
SYNTAX RowStatus SYNTAX RowStatus
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The RowStatus variable controls the activation, deactivation, or "The RowStatus variable controls the activation, deactivation, or
deletion of this entry. Any writable variable may be modified deletion of this entry."
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 IndexInteger SYNTAX IndexIntegerNextFree
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 contains an unused value for diffServAlgDropId, or a
for a diffServAlgDropId instance. If a configuring system zero to indicate that none exist."
attempts to create a new row in the diffServAlgDropTable using
this value, but an instance has been created or is in the process
of being created, that operation will fail."
::= { 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
"the Informal Differentiated Services Model section 7.1.3"
::= { diffServAlgDrop 2 } ::= { diffServAlgDrop 2 }
diffServAlgDropEntry OBJECT-TYPE diffServAlgDropEntry OBJECT-TYPE
SYNTAX DiffServAlgDropEntry SYNTAX DiffServAlgDropEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
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
skipping to change at page 65, line 13 skipping to change at page 69, line 8
diffServAlgDropQThreshold Unsigned32, diffServAlgDropQThreshold Unsigned32,
diffServAlgDropSpecific RowPointer, diffServAlgDropSpecific RowPointer,
diffServAlgDropOctets Counter32, diffServAlgDropOctets Counter32,
diffServAlgDropHCOctets Counter64, diffServAlgDropHCOctets Counter64,
diffServAlgDropPkts Counter32, diffServAlgDropPkts Counter32,
diffServAlgDropHCPkts Counter64, diffServAlgDropHCPkts Counter64,
diffServAlgRandomDropOctets Counter32, diffServAlgRandomDropOctets Counter32,
diffServAlgRandomDropHCOctets Counter64, diffServAlgRandomDropHCOctets Counter64,
diffServAlgRandomDropPkts Counter32, diffServAlgRandomDropPkts Counter32,
diffServAlgRandomDropHCPkts Counter64, diffServAlgRandomDropHCPkts Counter64,
diffServAlgDropDiscontinuityTime TimeStamp, diffServAlgDropStorage StorageType,
diffServAlgDropStatus RowStatus diffServAlgDropStatus RowStatus
} }
diffServAlgDropId OBJECT-TYPE diffServAlgDropId OBJECT-TYPE
SYNTAX IndexInteger SYNTAX IndexInteger
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.
set of such identifiers spans the whole agent. Managers obtain Managers obtain new values for row creation in this table by
new values for row creation in this table by reading 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) alwaysDrop(5)
} }
skipping to change at page 66, line 20 skipping to change at page 70, line 15
diffServAlgDropSpecific points to a diffServRandomDropEntry that diffServAlgDropSpecific points to a diffServRandomDropEntry that
describes the algorithm. For this algorithm, describes the algorithm. For this algorithm,
diffServAlgDropQThreshold is understood to be the absolute diffServAlgDropQThreshold is understood to be the absolute
maximum size of the queue and additional parameters are described maximum size of the queue and additional parameters are described
in diffServRandomDropTable. in diffServRandomDropTable.
The alwaysDrop(5) algorithm is as its name specifies; always The alwaysDrop(5) algorithm is as its name specifies; always
drop. In this case, the other configuration values in this Entry drop. In this case, the other configuration values in this Entry
are not meaningful; There is no useful 'next' processing step, are not meaningful; There is no useful 'next' processing step,
there is no queue, and parameters describing the queue are not there is no queue, and parameters describing the queue are not
useful. Therefore, diffServAlgDropQNext, diffServAlgDropQMeasure, useful. Therefore, diffServAlgDropNext, diffServAlgDropMeasure,
and diffServAlgDropQSpecific are all zeroDotZero." and diffServAlgDropSpecific 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 Differentiated Services Functional Data "This selects the next Differentiated Services Functional Data
Path Element to handle traffic for this data path. This Path Element to handle traffic for this data path. This
RowPointer should point to an instance of one of: RowPointer should point to an instance of one of:
skipping to change at page 66, line 43 skipping to change at page 70, line 38
diffServMeterEntry diffServMeterEntry
diffServActionEntry diffServActionEntry
diffServQEntry diffServQEntry
A value of zeroDotZero in this attribute indicates no further A value of zeroDotZero in this attribute indicates no further
Differentiated Services treatment is performed on traffic of this Differentiated Services treatment is performed on traffic of this
data path. The use of zeroDotZero is the normal usage for the data path. The use of zeroDotZero is the normal usage for the
last 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, unless
diffServAlgDropType is alwaysDrop(5) where this object is
ignored."
::= { 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
"Points to an entry in the diffServQTable to indicate the queue "Points to an entry in the diffServQTable to indicate the queue
that a drop algorithm is to monitor when deciding whether to drop that a drop algorithm is to monitor when deciding whether to drop
a packet. If the row pointed to does not exist, the algorithmic a packet. If the row pointed to does not exist, the algorithmic
dropper element is considered inactive." dropper element is considered inactive."
::= { diffServAlgDropEntry 4 } ::= { diffServAlgDropEntry 4 }
diffServAlgDropQThreshold OBJECT-TYPE diffServAlgDropQThreshold OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX Unsigned32
UNITS "Bytes" UNITS "Bytes"
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"A threshold on the depth in bytes of the queue being measured at "A threshold on the depth in bytes of the queue being measured at
which a trigger is generated to the dropping algorithm. which a trigger is generated to the dropping algorithm, unless
diffServAlgDropType is alwaysDrop(5) where this object is
ignored.
For the tailDrop(2) or headDrop(3) algorithms, this represents For the tailDrop(2) or headDrop(3) algorithms, this represents
the depth of the queue, pointed to by diffServAlgDropQMeasure, at the depth of the queue, pointed to by diffServAlgDropQMeasure, at
which the drop action will take place. Other algorithms will need which the drop action will take place. Other algorithms will need
to define their own semantics for this threshold." to define their own semantics for this threshold."
::= { diffServAlgDropEntry 5 } ::= { diffServAlgDropEntry 5 }
diffServAlgDropSpecific OBJECT-TYPE diffServAlgDropSpecific OBJECT-TYPE
SYNTAX RowPointer SYNTAX RowPointer
MAX-ACCESS read-create MAX-ACCESS read-create
skipping to change at page 67, line 40 skipping to change at page 71, line 38
"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 specified in this MIB, this should take For all other algorithms specified in this MIB, this should take
the value zeroDotzero. the value zeroDotZero.
The diffServAlgDropType is authoritative for the type of the drop The diffServAlgDropType is authoritative for the type of the drop
algorithm and the specific parameters for the drop algorithm algorithm and the specific parameters for the drop algorithm
needs to be evaluated based on the diffServAlgDropType." needs to be evaluated based on the diffServAlgDropType."
::= { 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 deterministically dropped by "The number of octets that have been deterministically dropped by
this drop process. On high-speed devices, this object implements this drop process. On high-speed devices, this object implements
the least significant 32 bits of diffServAlgDropHCOctets. the least 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 diffServAlgDropDiscontinuityTime for indicated by the value of ifCounterDiscontinuityTime on the
this Entry." relevant interface."
::= { 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 deterministically dropped by "The number of octets that have been deterministically dropped by
this drop process. This object should be used on high-speed this drop process. This object should be used on high-speed
interfaces. 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 diffServAlgDropDiscontinuityTime for indicated by the value of ifCounterDiscontinuityTime on the
this Entry." relevant interface."
::= { 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 deterministically dropped "The number of packets that have been deterministically dropped
by this drop process. On high-speed devices, this object by this drop process. On high-speed devices, this object
implements the least significant 32 bits of implements the least significant 32 bits of
diffServAlgDropHCPkts. 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 diffServAlgDropDiscontinuityTime for indicated by the value of ifCounterDiscontinuityTime on the
this Entry." relevant interface."
::= { 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 deterministically dropped "The number of packets that have been deterministically dropped
by this drop process. This object should be used on high-speed by this drop process. This object should be used on high-speed
interfaces. 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 diffServAlgDropDiscontinuityTime for indicated by the value of ifCounterDiscontinuityTime on the
this Entry." relevant interface."
::= { diffServAlgDropEntry 10 } ::= { diffServAlgDropEntry 10 }
diffServAlgRandomDropOctets OBJECT-TYPE diffServAlgRandomDropOctets 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 randomly dropped by this "The number of octets that have been randomly dropped by this
drop process. This counter applies, therefore, only to random drop process. This counter applies, therefore, only to random
droppers. On high-speed devices, this object implements the droppers. On high-speed devices, this object implements the
least significant 32 bits of diffServAlgRandomDropHCOctets. least significant 32 bits of diffServAlgRandomDropHCOctets.
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 diffServAlgDropDiscontinuityTime for indicated by the value of ifCounterDiscontinuityTime on the
this Entry." relevant interface."
::= { diffServAlgDropEntry 11 } ::= { diffServAlgDropEntry 11 }
diffServAlgRandomDropHCOctets OBJECT-TYPE diffServAlgRandomDropHCOctets 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 randomly dropped by this "The number of octets that have been randomly dropped by this
drop process. This counter applies, therefore, only to random drop process. This counter applies, therefore, only to random
droppers. This object should be used on high-speed interfaces. droppers. 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 diffServAlgDropDiscontinuityTime for indicated by the value of ifCounterDiscontinuityTime on the
this Entry." relevant interface."
::= { diffServAlgDropEntry 12 } ::= { diffServAlgDropEntry 12 }
diffServAlgRandomDropPkts OBJECT-TYPE diffServAlgRandomDropPkts 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 randomly dropped by this "The number of packets that have been randomly dropped by this
drop process. This counter applies, therefore, only to random drop process. This counter applies, therefore, only to random
droppers. On high-speed devices, this object implements the droppers. On high-speed devices, this object implements the
least significant 32 bits of diffServAlgRandomDropHCPkts. least significant 32 bits of diffServAlgRandomDropHCPkts.
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 diffServAlgDropDiscontinuityTime for indicated by the value of ifCounterDiscontinuityTime on the
this Entry." relevant interface."
::= { diffServAlgDropEntry 13 } ::= { diffServAlgDropEntry 13 }
diffServAlgRandomDropHCPkts OBJECT-TYPE diffServAlgRandomDropHCPkts 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 randomly dropped by this "The number of packets that have been randomly dropped by this
drop process. This counter applies, therefore, only to random drop process. This counter applies, therefore, only to random
droppers. This object should be used on high-speed interfaces. droppers. 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 diffServAlgDropDiscontinuityTime for indicated by the value of ifCounterDiscontinuityTime on the
this Entry." relevant interface."
::= { diffServAlgDropEntry 14 } ::= { diffServAlgDropEntry 14 }
diffServAlgDropDiscontinuityTime OBJECT-TYPE diffServAlgDropStorage OBJECT-TYPE
SYNTAX TimeStamp SYNTAX StorageType
MAX-ACCESS read-only MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The value of sysUpTime on the most recent occasion at which any "The StorageType variable controls the type of memory in which
one or more of this entry's counters suffered a discontinuity. If this row is stored; potentially, these include volatile, non-
no such discontinuities have occurred since the last re- volatile, and ROM memory, and in the last case may only partially
initialization of the local management subsystem, then this be in ROM. If the row is stored in ROM, then every column in it
object contains a zero value." may be stored in ROM."
DEFVAL { nonVolatile }
::= { diffServAlgDropEntry 15 } ::= { diffServAlgDropEntry 15 }
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 16 } ::= { diffServAlgDropEntry 16 }
-- --
-- Random Drop Table -- Random Drop Table
-- --
diffServRandomDropNextFree OBJECT-TYPE diffServRandomDropNextFree OBJECT-TYPE
SYNTAX IndexInteger SYNTAX IndexIntegerNextFree
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 contains an unused value for diffServRandomDropId,
for a diffServRandomDropId instance. If a configuring system or a zero to indicate that none exist."
attempts to create a new row in the diffServRandomDropTable using
this value, but an instance has been created or is in the process
of being created, that operation will fail."
::= { 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 are pointed to by drops packets randomly. Entries in this table are pointed to by
diffServAlgDropSpecific." diffServAlgDropSpecific."
REFERENCE
"the Informal Differentiated Services 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 IndexInteger, diffServRandomDropId IndexInteger,
diffServRandomDropMinThreshBytes Unsigned32, diffServRandomDropMinThreshBytes Unsigned32,
diffServRandomDropMinThreshPkts Unsigned32, diffServRandomDropMinThreshPkts Unsigned32,
diffServRandomDropMaxThreshBytes Unsigned32, diffServRandomDropMaxThreshBytes Unsigned32,
diffServRandomDropMaxThreshPkts Unsigned32, diffServRandomDropMaxThreshPkts Unsigned32,
diffServRandomDropProbMax INTEGER, diffServRandomDropProbMax Unsigned32,
diffServRandomDropWeight INTEGER, diffServRandomDropWeight Unsigned32,
diffServRandomDropSamplingRate INTEGER, diffServRandomDropSamplingRate Unsigned32,
diffServRandomDropStorage StorageType,
diffServRandomDropStatus RowStatus diffServRandomDropStatus RowStatus
} }
diffServRandomDropId OBJECT-TYPE diffServRandomDropId OBJECT-TYPE
SYNTAX IndexInteger SYNTAX IndexInteger
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. Managers
such identifiers spans the whole agent. Managers obtain new obtain 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 73, line 24 skipping to change at page 77, line 20
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 INTEGER (0..1000) SYNTAX Unsigned32 (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 in the worst case every arriving packet may be For example, if in the worst case every arriving packet may be
dropped (100%) for a period, this has the value 1000. dropped (100%) for a period, this has the value 1000.
Alternatively, if in the worst case only one percent (1%) of Alternatively, if in the worst case only one percent (1%) of
traffic may be dropped, it has the value 10." traffic may be dropped, it has the value 10."
::= { diffServRandomDropEntry 6 } ::= { diffServRandomDropEntry 6 }
diffServRandomDropWeight OBJECT-TYPE diffServRandomDropWeight OBJECT-TYPE
SYNTAX INTEGER (0..65536) SYNTAX Unsigned32 (0..65536)
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The weighting of past history in affecting the Exponentially "The weighting of past history in affecting the Exponentially
Weighted Moving Average function that calculates the current Weighted Moving Average function that calculates the current
average queue depth. The equation uses average queue depth. The equation uses
diffServRandomDropWeight/65536 as the coefficient for the new diffServRandomDropWeight/65536 as the coefficient for the new
sample in the equation, and (65536 - sample in the equation, and (65536 -
diffServRandomDropWeight)/65536 as the coefficient of the old diffServRandomDropWeight)/65536 as the coefficient of the old
value. value.
Implementations may limit the values of diffServRandomDropWeight Implementations may limit the values of diffServRandomDropWeight
to a subset of the possible range of values, such as powers of to a subset of the possible range of values, such as powers of
two. Doing this would facilitate implementation of the two. Doing this would facilitate implementation of the
Exponentially Weighted Moving Average using shift instructions or Exponentially Weighted Moving Average using shift instructions or
registers." registers."
::= { diffServRandomDropEntry 7 } ::= { diffServRandomDropEntry 7 }
diffServRandomDropSamplingRate OBJECT-TYPE diffServRandomDropSamplingRate OBJECT-TYPE
SYNTAX INTEGER (0..1000000) SYNTAX Unsigned32 (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 is used to mean that the average calculation. A value of zero is used to mean that the
queue is sampled approximately each time a packet is enqueued (or queue is sampled approximately each time a packet is enqueued (or
dequeued)." dequeued)."
::= { diffServRandomDropEntry 8 } ::= { diffServRandomDropEntry 8 }
diffServRandomDropStorage OBJECT-TYPE
SYNTAX StorageType
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The StorageType variable controls the type of memory in which
this row is stored; potentially, these include volatile, non-
volatile, and ROM memory, and in the last case may only partially
be in ROM. If the row is stored in ROM, then every column in it
may be stored in ROM."
DEFVAL { nonVolatile }
::= { diffServRandomDropEntry 9 }
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 10 }
-- --
-- Queue Table -- Queue Table
-- --
diffServQueue OBJECT IDENTIFIER ::= { diffServMIBObjects 7 } diffServQueue OBJECT IDENTIFIER ::= { diffServMIBObjects 7 }
-- --
-- An entry of diffServQTable represents a FIFO queue Differentiated -- An entry of diffServQTable represents a FIFO queue Differentiated
-- Services Functional Data Path element as described in the Informal
-- Differentiated Services 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
-- the Informal Differentiated Services 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,
-- diffServQMinRate.
-- --
-- Note that upstream Differentiated Services Functional Data Path -- Note that upstream Differentiated Services Functional Data Path
-- elements may point to a shared diffServQTable entry as described -- elements may point to a shared diffServQTable entry as described
-- in the Informal Differentiated Services Model section 7.1.1. -- in the Informal Differentiated Services Model section 7.1.1.
-- --
diffServQNextFree OBJECT-TYPE diffServQNextFree OBJECT-TYPE
SYNTAX IndexInteger SYNTAX IndexIntegerNextFree
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 contains an unused value for diffServQId, or a zero
for a diffServQId instance. If a configuring system attempts to to indicate that none exist."
create a new row in the diffServQTable using this value, but an
instance has been created or is in the process of being created,
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. Note that the
REFERENCE MIB models queuing systems as composed of individual queues, one
"the Informal Differentiated Services Model section 7.1.1" per class of traffic, even though they may in fact be structured
as classes of traffic scheduled using a common calendar queue, or
in other ways."
::= { diffServQueue 2 } ::= { diffServQueue 2 }
diffServQEntry OBJECT-TYPE diffServQEntry OBJECT-TYPE
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 or class of
entry belonging to one and only one data path." traffic."
INDEX { diffServQId } INDEX { diffServQId }
::= { diffServQTable 1 } ::= { diffServQTable 1 }
DiffServQEntry ::= SEQUENCE { DiffServQEntry ::= SEQUENCE {
diffServQId IndexInteger, diffServQId IndexInteger,
diffServQNext RowPointer, diffServQNext RowPointer,
diffServQRate RowPointer, diffServQMinRate RowPointer,
diffServQShaper RowPointer, diffServQMaxRate RowPointer,
diffServQStorage StorageType,
diffServQStatus RowStatus diffServQStatus RowStatus
} }
diffServQId OBJECT-TYPE diffServQId OBJECT-TYPE
SYNTAX IndexInteger SYNTAX IndexInteger
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. Managers 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 Differentiated Services Functional Data "This selects the next Differentiated Services Scheduler. The
Path Element to handle traffic for this data path. This
RowPointer must point to 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 diffServQMinRate OBJECT-TYPE
SYNTAX RowPointer SYNTAX RowPointer
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This RowPointer indicates the diffServAssuredRateEntry that the "This RowPointer indicates the diffServMinRateEntry that the
scheduler, pointed to by diffServQNext, should use to service scheduler, pointed to by diffServQNext, should use to service
this queue. this queue.
If the row pointed to is zeroDotZero or does not exist, the If the row pointed to is zeroDotZero or does not exist, the
minimum rate is unspecified." minimum rate is unspecified."
::= { diffServQEntry 3 } ::= { diffServQEntry 3 }
diffServQShaper OBJECT-TYPE diffServQMaxRate OBJECT-TYPE
SYNTAX RowPointer SYNTAX RowPointer
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This RowPointer indicates the diffServShapingRateEntry that the "This RowPointer indicates the diffServMaxRateEntry that the
scheduler, pointed to by diffServQNext, should use to service scheduler, pointed to by diffServQNext, should use to service
this queue. this queue.
If the row pointed to does not exist or is zeroDotZero, the If the row pointed to does not exist or is zeroDotZero, the
maximum rate is the line speed of the interface." maximum rate is the line speed of the interface."
::= { diffServQEntry 4 } ::= { diffServQEntry 4 }
diffServQStorage OBJECT-TYPE
SYNTAX StorageType
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The StorageType variable controls the type of memory in which
this row is stored; potentially, these include volatile, non-
volatile, and ROM memory, and in the last case may only partially
be in ROM. If the row is stored in ROM, then every column in it
may be stored in ROM."
DEFVAL { nonVolatile }
::= { diffServQEntry 5 }
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."
::= { diffServQEntry 5 } ::= { diffServQEntry 6 }
-- --
-- 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 -- A Scheduler Entry represents a packet scheduler, such as a priority
-- scheduler or a WFQ scheduler. It provides flexibility for multiple -- scheduler or a WFQ scheduler. It provides flexibility for multiple
skipping to change at page 78, line 4 skipping to change at page 82, line 19
diffServScheduler OBJECT IDENTIFIER ::= { diffServMIBObjects 8 } diffServScheduler OBJECT IDENTIFIER ::= { diffServMIBObjects 8 }
-- --
-- A Scheduler Entry represents a packet scheduler, such as a priority -- A Scheduler Entry represents a packet scheduler, such as a priority
-- scheduler or a WFQ scheduler. It provides flexibility for multiple -- scheduler or a WFQ scheduler. It provides flexibility for multiple
-- scheduling algorithms, each servicing multiple queues, to be used on -- scheduling algorithms, each servicing multiple queues, to be used on
-- the same logical/physical interface. -- the same logical/physical interface.
-- --
-- Note that upstream queues or schedulers specify several of the -- Note that upstream queues or schedulers specify several of the
-- scheduler's parameters. These must be properly specified if the -- scheduler's parameters. These must be properly specified if the
-- scheduler is to behave as expected. -- scheduler is to behave as expected.
-- --
-- The diffServSchedulerMaxRate 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
-- the Informal Differentiated Services Model section 7.1.2.
-- --
diffServSchedulerNextFree OBJECT-TYPE diffServSchedulerNextFree OBJECT-TYPE
SYNTAX IndexInteger SYNTAX IndexIntegerNextFree
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 contains an unused value for diffServSchedulerId, or
for a diffServSchedulerId instance. If a configuring system a zero to indicate that none exist."
attempts to create a new row in the diffServSchedulerTable using
this value, but an instance has been created or is in the process
of being created, that operation will fail."
::= { 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."
REFERENCE
"the Informal Differentiated Services Model section 7.1.2"
::= { diffServScheduler 2 } ::= { diffServScheduler 2 }
diffServSchedulerEntry OBJECT-TYPE diffServSchedulerEntry OBJECT-TYPE
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 IndexInteger, diffServSchedulerId IndexInteger,
diffServSchedulerNext RowPointer, diffServSchedulerNext RowPointer,
diffServSchedulerMethod OBJECT IDENTIFIER, diffServSchedulerMethod AutonomousType,
diffServSchedulerRate RowPointer, diffServSchedulerMinRate RowPointer,
diffServSchedulerShaper RowPointer, diffServSchedulerMaxRate RowPointer,
diffServSchedulerStorage StorageType,
diffServSchedulerStatus RowStatus diffServSchedulerStatus RowStatus
} }
diffServSchedulerId OBJECT-TYPE diffServSchedulerId OBJECT-TYPE
SYNTAX IndexInteger SYNTAX IndexInteger
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. Managers 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 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 Differentiated Services Functional Data "This selects the next Differentiated Services Functional Data
Path Element to handle traffic for this data path. This Path Element to handle traffic for this data path. This normally
RowPointer should point to an instance of one of: is null (zeroDotZero), or points to a diffServSchedulerEntry or a
diffServSchedulerEntry diffServQEntry.
diffServQEntry as indicated by the Informal Differentiated
Services Model section 7.1.4.
However, this RowPointer may also point to an instance of:. However, this RowPointer may also point to an instance of:
diffServClfrEntry diffServClfrEntry,
diffServMeterEntry diffServMeterEntry,
diffServActionEntry diffServActionEntry,
diffServAlgDropEntry to extend the same data path. diffServAlgDropEntry.
This should point to another diffServSchedulerEntry for It would point another diffServSchedulerEntry when implementing
implementation of multiple scheduler methods for the same data multiple scheduler methods for the same data path, such as having
path, and for implementation of hierarchical schedulers. one set of queues scheduled by WRR and that group participating
in a priority scheduling system in which other queues compete
with it in that way. It might also point to a second scheduler
in a hierarchical scheduling system.
If the row pointed to does not exist or is zeroDotZero, no If the row pointed to does not exist or is zeroDotZero, no
further Differentiated Services treatment is performed on traffic further Differentiated Services treatment is performed on traffic
of this data path." of this data path."
DEFVAL { zeroDotZero } DEFVAL { zeroDotZero }
::= { diffServSchedulerEntry 2 } ::= { diffServSchedulerEntry 2 }
diffServSchedulerMethod OBJECT-TYPE diffServSchedulerMethod OBJECT-TYPE
SYNTAX OBJECT IDENTIFIER SYNTAX AutonomousType
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The scheduling algorithm used by this Scheduler. zeroDotZero "The scheduling algorithm used by this Scheduler. zeroDotZero
indicates that 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
"the Informal Differentiated Services Model section 7.1.2"
::= { diffServSchedulerEntry 3 } ::= { diffServSchedulerEntry 3 }
diffServSchedulerRate OBJECT-TYPE diffServSchedulerMinRate 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 diffServMinRateTable
which indicates the priority or minimum output rate from this which indicates the priority or minimum output rate from this
scheduler. This attribute is used only 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, and be treated as containing zeroDotZero if the
pointer is invalid."
DEFVAL { zeroDotZero } DEFVAL { zeroDotZero }
::= { diffServSchedulerEntry 4 } ::= { diffServSchedulerEntry 4 }
diffServSchedulerShaper OBJECT-TYPE diffServSchedulerMaxRate 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 diffServMaxRateTable
which indicates the maximum output rate from this scheduler. This which indicates the maximum output rate from this scheduler. This
attribute is used only 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, and treated as containing zeroDotZero if the pointer is
invalid."
DEFVAL { zeroDotZero } DEFVAL { zeroDotZero }
::= { diffServSchedulerEntry 5 } ::= { diffServSchedulerEntry 5 }
diffServSchedulerStorage OBJECT-TYPE
SYNTAX StorageType
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The StorageType variable controls the type of memory in which
this row is stored; potentially, these include volatile, non-
volatile, and ROM memory, and in the last case may only partially
be in ROM. If the row is stored in ROM, then every column in it
may be stored in ROM."
DEFVAL { nonVolatile }
::= { diffServSchedulerEntry 6 }
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 7 }
--
-- OIDs for diffServTBParamType definitions.
--
diffServSchedulers OBJECT IDENTIFIER ::= { diffServMIBAdmin 2 }
diffServSchedulerPriority OBJECT-IDENTITY diffServSchedulerPriority OBJECT-IDENTITY
STATUS current STATUS current
DESCRIPTION DESCRIPTION
" For use with diffServSchedulerMethod to indicate the Priority " For use with diffServSchedulerMethod to indicate the Priority
scheduling method. This is defined as an algorithm in which the scheduling method. This is defined as an algorithm in which the
presence of data in a queue or set of queues absolutely precludes presence of data in a queue or set of queues absolutely precludes
dequeue from another queue or set of queues of lower priority. dequeue from another queue or set of queues of lower priority.
Note that attributes from diffServAssuredRateEntry of the Note that attributes from diffServMinRateEntry of the
queues/schedulers feeding this scheduler are used when queues/schedulers feeding this scheduler are used when
determining the next packet to schedule." determining the next packet to schedule."
REFERENCE ::= { diffServSchedulers 1 }
"the Informal Differentiated Services Model section 7.1.2"
::= { diffServScheduler 3 }
diffServSchedulerWRR OBJECT-IDENTITY diffServSchedulerWRR OBJECT-IDENTITY
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"For use with diffServSchedulerMethod to indicate the Weighted "For use with diffServSchedulerMethod to indicate the Weighted
Round Robin scheduling method, defined as any algorithm in which Round Robin scheduling method, defined as any algorithm in which
a set of queues are visited in a fixed order, and varying amounts a set of queues are visited in a fixed order, and varying amounts
of traffic are removed from each queue in turn to implement an of traffic are removed from each queue in turn to implement an
average output rate by class. Notice attributes from average output rate by class. Notice attributes from
diffServAssuredRateEntry of the queues/schedulers feeding this diffServMinRateEntry of the queues/schedulers feeding this
scheduler are used when determining the next packet to schedule." scheduler are used when determining the next packet to schedule."
REFERENCE ::= { diffServSchedulers 2 }
"the Informal Differentiated Services Model section 7.1.2"
::= { diffServScheduler 4 }
diffServSchedulerWFQ OBJECT-IDENTITY diffServSchedulerWFQ OBJECT-IDENTITY
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"For use with diffServSchedulerMethod to indicate the Weighted "For use with diffServSchedulerMethod to indicate the Weighted
Fair Queuing scheduling method, defined as any algorithm in which Fair Queuing scheduling method, defined as any algorithm in which
a set of queues are conceptually visited in some order, to a set of queues are conceptually visited in some order, to
implement an average output rate by class. Notice attributes from implement an average output rate by class. Notice attributes from
diffServAssuredRateEntry of the queues/schedulers feeding this diffServMinRateEntry of the queues/schedulers feeding this
scheduler are used when determining the next packet to schedule." scheduler are used when determining the next packet to schedule."
REFERENCE ::= { diffServSchedulers 3 }
"the Informal Differentiated Services Model section 7.1.2"
::= { diffServScheduler 5 }
-- --
-- Minimum 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 Minimum Rate Parameter Table entries by Queues and
-- Schedulers allows the modeling of hierarchical scheduling systems. -- Schedulers allows the modeling of hierarchical scheduling systems.
-- --
-- Specifically, a Scheduler has one or more inputs and one output. -- Specifically, a Scheduler has one or more inputs and one output.
-- Any queue feeding a scheduler, or any scheduler which feeds a second -- Any queue feeding a scheduler, or any scheduler which feeds a second
-- scheduler, might specify a minimum transfer rate by pointing to an -- scheduler, might specify a minimum transfer rate by pointing to an
-- Minimum Rate Parameter Table entry.
-- --
-- The diffServMinRatePriority/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 -- "work-conserving" implies that the scheduler can continue to emit
-- data as long as there is data available at its input(s). This has -- data as long as there is data available at its input(s). This has
-- the effect of guaranteeing a certain priority relative to other -- 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 diffServMinRateNextFree OBJECT-TYPE
SYNTAX IndexInteger SYNTAX IndexIntegerNextFree
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 contains an unused value for diffServMinRateId, or a
for a diffServAssuredRateId instance. If a configuring system zero to indicate that none exist."
attempts to create a new row in the diffServAssuredRateTable ::= { diffServScheduler 3 }
using this value, but an instance has been created or is in the
process of being created, that operation will fail."
::= { diffServScheduler 6 }
diffServAssuredRateTable OBJECT-TYPE diffServMinRateTable OBJECT-TYPE
SYNTAX SEQUENCE OF DiffServAssuredRateEntry SYNTAX SEQUENCE OF DiffServMinRateEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The Assured Rate Parameters Table enumerates individual sets of "The Minimum 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."
::= { diffServScheduler 7 } ::= { diffServScheduler 4 }
diffServAssuredRateEntry OBJECT-TYPE diffServMinRateEntry OBJECT-TYPE
SYNTAX DiffServAssuredRateEntry SYNTAX DiffServMinRateEntry
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 Minimum 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 { diffServMinRateId }
::= { diffServAssuredRateTable 1 } ::= { diffServMinRateTable 1 }
DiffServAssuredRateEntry ::= SEQUENCE { DiffServMinRateEntry ::= SEQUENCE {
diffServAssuredRateId IndexInteger, diffServMinRateId IndexInteger,
diffServAssuredRatePriority Unsigned32, diffServMinRatePriority Unsigned32,
diffServAssuredRateAbs Unsigned32, diffServMinRateAbs Unsigned32,
diffServAssuredRateRel Unsigned32, diffServMinRateRel Unsigned32,
diffServAssuredRateStatus RowStatus diffServMinRateStorage StorageType,
diffServMinRateStatus RowStatus
} }
diffServAssuredRateId OBJECT-TYPE diffServMinRateId OBJECT-TYPE
SYNTAX IndexInteger SYNTAX IndexInteger
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.
set of such identifiers spans the whole agent. Managers obtain Managers obtain new values for row creation in this table by
new values for row creation in this table by reading reading diffServMinRateNextFree."
diffServAssuredRateNextFree." ::= { diffServMinRateEntry 1 }
::= { diffServAssuredRateEntry 1 }
diffServAssuredRatePriority OBJECT-TYPE diffServMinRatePriority 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. A queue or scheduler with a to the scheduler's other inputs. A queue or scheduler with a
larger numeric value will be served before another with a smaller larger numeric value will be served before another with a smaller
numeric value." numeric value."
::= { diffServAssuredRateEntry 2 } ::= { diffServMinRateEntry 2 }
diffServAssuredRateAbs OBJECT-TYPE diffServMinRateAbs 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 the zero, then there is effectively no minimum rate guarantee. If 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 value and that of diffServAssuredRateRel Note that this attribute value and that of diffServMinRateRel are
are coupled: changes to one will affect the value of the other. coupled: changes to one will affect the value of the other. They
They are linked by the following equation: are linked by the following equation, in that setting one will
change the other:
diffServAssuredRateRel = (diffServAssuredRateAbs * 1000000)/ifSpeed diffServMinRateRel = (diffServMinRateAbs*1000000)/ifSpeed
or, if appropriate: or, if appropriate:
diffServAssuredRateRel = diffServAssuredRateAbs/ifHighSpeed" diffServMinRateRel = diffServMinRateAbs/ifHighSpeed"
REFERENCE REFERENCE
"ifSpeed, ifHighSpeed from the Interfaces MIB" "ifSpeed, ifHighSpeed, Interface MIB, RFC 2863"
::= { diffServAssuredRateEntry 3 } ::= { diffServMinRateEntry 3 }
diffServAssuredRateRel OBJECT-TYPE diffServMinRateRel 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/1000 of 1. If the value is zero, then there is effectively no 1/1000 of 1. If the value is zero, then there is effectively no
minimum rate guarantee. If the value is non-zero, the scheduler minimum rate guarantee. If the value is non-zero, the scheduler
will assure the servicing of this queue to at least this rate. will assure the servicing of this queue to at least this rate.
Note that this attribute value and that of diffServAssuredRateAbs Note that this attribute value and that of diffServMinRateAbs are
are coupled: changes to one will affect the value of the other. coupled: changes to one will affect the value of the other. They
They are linked by the following equation: are linked by the following equation, in that setting one will
change the other:
diffServAssuredRateRel = (diffServAssuredRateAbs * 1000000)/ifSpeed diffServMinRateRel = (diffServMinRateAbs*1000000)/ifSpeed
or, if appropriate: or, if appropriate:
diffServAssuredRateRel = diffServAssuredRateAbs/ifHighSpeed" diffServMinRateRel = diffServMinRateAbs/ifHighSpeed"
REFERENCE REFERENCE
"ifSpeed, ifHighSpeed from the Interfaces MIB" "ifSpeed, ifHighSpeed, Interface MIB, RFC 2863"
::= { diffServAssuredRateEntry 4 } ::= { diffServMinRateEntry 4 }
diffServAssuredRateStatus OBJECT-TYPE diffServMinRateStorage OBJECT-TYPE
SYNTAX StorageType
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The StorageType variable controls the type of memory in which
this row is stored; potentially, these include volatile, non-
volatile, and ROM memory, and in the last case may only partially
be in ROM. If the row is stored in ROM, then every column in it
may be stored in ROM."
DEFVAL { nonVolatile }
::= { diffServMinRateEntry 5 }
diffServMinRateStatus 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 } ::= { diffServMinRateEntry 6 }
-- --
-- Maximum Rate 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 Maximum 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. -- Specifically, a Scheduler has one or more inputs and one output.
-- Any queue feeding a scheduler, or any scheduler which feeds a second -- Any queue feeding a scheduler, or any scheduler which feeds a second
-- scheduler, might specify a maximum transfer rate by pointing to a -- scheduler, might specify a maximum transfer rate by pointing to a
-- Maximum Rate Parameter Table entry. Multi-rate shapers, such as a
-- Dual Leaky Bucket algorithm, specify their rates using multiple
-- Maximum Rate Parameter Entries with the same diffServMaxRateId but
-- different diffServMaxRateLevels.
-- --
-- The diffServMaxRateLevel/Abs/Rel attributes are used as
-- parameters to the non-work-conserving portion of a scheduler:
-- non-work-conserving 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 the Informal
-- Differentiated Services Model section 7.2.
-- --
diffServShapingRateNextFree OBJECT-TYPE diffServMaxRateNextFree OBJECT-TYPE
SYNTAX IndexInteger SYNTAX IndexIntegerNextFree
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 contains an unused value for diffServMaxRateId, or a
for a diffServShapingRateId instance. If a configuring system zero to indicate that none exist."
attempts to create a new row in the diffServShapingRateTable ::= { diffServScheduler 5 }
using this value, but an instance has been created or is in the
process of being created, that operation will fail."
::= { diffServScheduler 8 }
diffServShapingRateTable OBJECT-TYPE diffServMaxRateTable OBJECT-TYPE
SYNTAX SEQUENCE OF DiffServShapingRateEntry SYNTAX SEQUENCE OF DiffServMaxRateEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The Shaping Parameter Table enumerates individual sets of "The Maximum Rate 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."
::= { diffServScheduler 9 } ::= { diffServScheduler 6 }
diffServShapingRateEntry OBJECT-TYPE diffServMaxRateEntry OBJECT-TYPE
SYNTAX DiffServShapingRateEntry SYNTAX DiffServMaxRateEntry
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 Maximum Rate Parameter Table describes a single
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 { diffServShapingRateId, diffServShapingRateLevel } INDEX { diffServMaxRateId, diffServMaxRateLevel }
::= { diffServShapingRateTable 1 } ::= { diffServMaxRateTable 1 }
DiffServShapingRateEntry ::= SEQUENCE { DiffServMaxRateEntry ::= SEQUENCE {
diffServShapingRateId IndexInteger, diffServMaxRateId IndexInteger,
diffServShapingRateLevel Unsigned32, diffServMaxRateLevel Unsigned32,
diffServShapingRateAbs Unsigned32, diffServMaxRateAbs Unsigned32,
diffServShapingRateRel Unsigned32, diffServMaxRateRel Unsigned32,
diffServShapingRateThreshold BurstSize, diffServMaxRateThreshold BurstSize,
diffServShapingRateStatus RowStatus diffServMaxRateStorage StorageType,
diffServMaxRateStatus RowStatus
} }
diffServShapingRateId OBJECT-TYPE diffServMaxRateId OBJECT-TYPE
SYNTAX IndexInteger SYNTAX IndexInteger
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 Maximum Rate Parameter entries.
of such identifiers spans the whole agent. Managers obtain new Managers obtain new values for row creation in this table by
values for row creation in this table by reading reading diffServMaxRateNextFree."
diffServShapingRateNextFree." ::= { diffServMaxRateEntry 1 }
::= { diffServShapingRateEntry 1 }
diffServShapingRateLevel OBJECT-TYPE diffServMaxRateLevel OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX Unsigned32 (1..32)
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. A multi-rate shaper has some number being given its parameters. A multi-rate shaper has some number
of rate levels. Frame Relay's dual rate specification refers to a of rate levels. Frame Relay's dual rate specification refers to a
'committed' and an 'excess' rate; ATM's dual rate specification 'committed' and an 'excess' rate; ATM's dual rate specification
refers to a 'mean' and a 'peak' rate. This table is generalized refers to a 'mean' and a 'peak' rate. This table is generalized
to support an arbitrary number of rates. The committed or mean 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 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 configured, and if there are other rates they are distributed in
monotonically increasing order between them." monotonically increasing order between them."
::= { diffServShapingRateEntry 2 } ::= { diffServMaxRateEntry 2 }
diffServShapingRateAbs OBJECT-TYPE diffServMaxRateAbs 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 value should attempt to be work conserving for this queue. If the value
is non-zero, the scheduler will limit the servicing of this queue is non-zero, the scheduler will limit the servicing of this 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 value and that of diffServShapingRateRel Note that this attribute value and that of diffServMaxRateRel are
are coupled: changes to one will affect the value of the other. coupled: changes to one will affect the value of the other. They
They are linked by the following equation: are linked by the following equation, in that setting one will
change the other:
diffServShapingRateRel = (diffServShapingRateAbs * 1000000)/ifSpeed diffServMaxRateRel = (diffServMaxRateAbs*1000000)/ifSpeed
or, if appropriate: or, if appropriate:
diffServShapingRateRel = diffServShapingRateAbs/ifHighSpeed" diffServMaxRateRel = diffServMaxRateAbs/ifHighSpeed"
REFERENCE REFERENCE
"ifSpeed, ifHighSpeed from the Interfaces MIB, RFC 2963" "ifSpeed, ifHighSpeed, Interface MIB, RFC 2863"
::= { diffServShapingRateEntry 3 } ::= { diffServMaxRateEntry 3 }
diffServShapingRateRel OBJECT-TYPE diffServMaxRateRel 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/1000 of 1. If the value is zero, then there is effectively no 1/1000 of 1. If the value is zero, then there is effectively no
maximum rate limit and the scheduler should attempt to be work maximum rate limit and the scheduler should attempt to be 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 value and that of diffServShapingRateAbs Note that this attribute value and that of diffServMaxRateAbs are
are coupled: changes to one will affect the value of the other. coupled: changes to one will affect the value of the other. They
They are linked by the following equation: are linked by the following equation, in that setting one will
change the other:
diffServShapingRateRel = (diffServShapingRateAbs * 1000000)/ifSpeed
diffServMaxRateRel = (diffServMaxRateAbs*1000000)/ifSpeed
or, if appropriate: or, if appropriate:
diffServShapingRateRel = diffServShapingRateAbs/ifHighSpeed" diffServMaxRateRel = diffServMaxRateAbs/ifHighSpeed"
REFERENCE REFERENCE
"ifSpeed, ifHighSpeed from the Interfaces MIB, RFC 2963" "ifSpeed, ifHighSpeed, Interface MIB, RFC 2863"
::= { diffServShapingRateEntry 4 } ::= { diffServMaxRateEntry 4 }
diffServShapingRateThreshold OBJECT-TYPE diffServMaxRateThreshold 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 number of bytes of queue depth at which the rate of a "The number of bytes of queue depth at which the rate of a
multi-rate scheduler will increase to the next output rate. In multi-rate scheduler will increase to the next output rate. In
the last conceptual row for such a shaper, this threshold is the last conceptual row for such a shaper, this threshold is
ignored and by convention is zero." ignored and by convention is zero."
REFERENCE REFERENCE
"RFC 2963" "Adaptive rate Shaper, RFC 2963"
::= { diffServShapingRateEntry 5 } ::= { diffServMaxRateEntry 5 }
diffServShapingRateStatus OBJECT-TYPE diffServMaxRateStorage OBJECT-TYPE
SYNTAX StorageType
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The StorageType variable controls the type of memory in which
this row is stored; potentially, these include volatile, non-
volatile, and ROM memory, and in the last case may only partially
be in ROM. If the row is stored in ROM, then every column in it
may be stored in ROM."
DEFVAL { nonVolatile }
::= { diffServMaxRateEntry 6 }
diffServMaxRateStatus 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."
::= { diffServShapingRateEntry 6 } ::= { diffServMaxRateEntry 7 }
-- --
-- MIB Compliance statements. -- MIB Compliance statements.
-- --
diffServMIBCompliances OBJECT IDENTIFIER ::= { diffServMIBConformance 1 } diffServMIBCompliances OBJECT IDENTIFIER ::= { diffServMIBConformance 1 }
diffServMIBGroups OBJECT IDENTIFIER ::= { diffServMIBConformance 2 } diffServMIBGroups OBJECT IDENTIFIER ::= { diffServMIBConformance 2 }
diffServMIBCompliance MODULE-COMPLIANCE diffServMIBReadWriteCompliance MODULE-COMPLIANCE
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This MIB may be implemented as a read-only or as a read-create "When this MIB is implemented with support for read-create, then
MIB. As a result, it may be used for monitoring or for such an implementation can claim read/write compliance. Such
configuration." devices can then be both monitored and configured with this MIB."
MODULE -- This Module MODULE -- This Module
MANDATORY-GROUPS { MANDATORY-GROUPS {
diffServMIBDataPathGroup, diffServMIBClfrGroup, diffServMIBDataPathGroup, diffServMIBClfrGroup,
diffServMIBClfrElementGroup, diffServMIBMultiFieldClfrGroup, diffServMIBClfrElementGroup, diffServMIBMultiFieldClfrGroup,
diffServMIBActionGroup, diffServMIBAlgDropGroup, diffServMIBActionGroup, diffServMIBAlgDropGroup,
diffServMIBQGroup, diffServMIBSchedulerGroup, diffServMIBQGroup, diffServMIBSchedulerGroup,
diffServMIBShapingRateGroup, diffServMIBAssuredRateGroup } diffServMIBMaxRateGroup, diffServMIBMinRateGroup
}
-- 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 ifCounterDiscontinuityTime from
-- the Interfaces MIB must also be implemented for that interface. -- the Interfaces MIB must also be implemented for that interface.
-- --
-- Note that the diffServMIBStaticGroup is mandatory for implementations -- Note that the diffServMIBStaticGroup is mandatory for implementations
-- that implement a read-write or read-create mode. -- 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."
skipping to change at page 91, line 29 skipping to change at page 96, line 30
GROUP diffServMIBDscpMarkActGroup GROUP diffServMIBDscpMarkActGroup
DESCRIPTION DESCRIPTION
"This group is mandatory for devices that implement DSCP-Marking "This group is mandatory for devices that implement DSCP-Marking
functions." functions."
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 OBJECT diffServDataPathStatus
SYNTAX RowStatus { active(1) }
WRITE-SYNTAX RowStatus { active(1), createAndGo(4), destroy(6) }
DESCRIPTION DESCRIPTION
"This group is mandatory for devices that allow creation of rows "Support for createAndWait and notInService is not required."
in any of the writable tables of this MIB."
OBJECT diffServClfrStatus
SYNTAX RowStatus { active(1) }
WRITE-SYNTAX RowStatus { active(1), createAndGo(4), destroy(6) }
DESCRIPTION
"Support for createAndWait and notInService is not required."
OBJECT diffServClfrElementStatus
SYNTAX RowStatus { active(1) }
WRITE-SYNTAX RowStatus { active(1), createAndGo(4), destroy(6) }
DESCRIPTION
"Support for createAndWait and notInService is not required."
OBJECT diffServMultiFieldClfrAddrType
SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2) }
DESCRIPTION
"An implementation is only required to support IPv4 and IPv6
addresses."
OBJECT diffServMultiFieldClfrDstAddr
SYNTAX InetAddress (SIZE(0|4|16))
DESCRIPTION
"An implementation is only required to support IPv4 and globally
unique IPv6 addresses."
OBJECT diffServAlgDropStatus
SYNTAX RowStatus { active(1) }
WRITE-SYNTAX RowStatus { active(1), createAndGo(4), destroy(6) }
DESCRIPTION
"Support for createAndWait and notInService is not required."
OBJECT diffServRandomDropStatus
SYNTAX RowStatus { active(1) }
WRITE-SYNTAX RowStatus { active(1), createAndGo(4), destroy(6) }
DESCRIPTION
"Support for createAndWait and notInService is not required."
OBJECT diffServQStatus
SYNTAX RowStatus { active(1) }
WRITE-SYNTAX RowStatus { active(1), createAndGo(4), destroy(6) }
DESCRIPTION
"Support for createAndWait and notInService is not required."
OBJECT diffServSchedulerStatus
SYNTAX RowStatus { active(1) }
WRITE-SYNTAX RowStatus { active(1), createAndGo(4), destroy(6) }
DESCRIPTION
"Support for createAndWait and notInService is not required."
OBJECT diffServMinRateStatus
SYNTAX RowStatus { active(1) }
WRITE-SYNTAX RowStatus { active(1), createAndGo(4), destroy(6) }
DESCRIPTION
"Support for createAndWait and notInService is not required."
OBJECT diffServMaxRateStatus
SYNTAX RowStatus { active(1) }
WRITE-SYNTAX RowStatus { active(1), createAndGo(4), destroy(6) }
DESCRIPTION
"Support for createAndWait and notInService is not required."
::= { diffServMIBCompliances 1 }
--
-- Read-Only Compliance
--
diffServMIBReadOnlyCompliance MODULE-COMPLIANCE
STATUS current
DESCRIPTION
"When this MIB is implemented without support for read-create
(i.e. in read-only mode), then such an implementation can claim
read-only compliance. Such a device can then be monitored but can
not be configured with this MIB."
MODULE -- This Module
MANDATORY-GROUPS {
diffServMIBDataPathGroup, diffServMIBClfrGroup,
diffServMIBClfrElementGroup, diffServMIBMultiFieldClfrGroup,
diffServMIBActionGroup, diffServMIBAlgDropGroup,
diffServMIBQGroup, diffServMIBSchedulerGroup,
diffServMIBMaxRateGroup, diffServMIBMinRateGroup
}
-- The groups:
-- diffServMIBCounterGroup
-- diffServMIBHCCounterGroup
-- diffServMIBVHCCounterGroup
--
-- are mutually exclusive; at most one of these groups is implemented
-- for a particular interface. When any of these groups is implemented
-- for a particular interface, then ifCounterDiscontinuityTime from
-- the Interfaces MIB must also be implemented for that interface.
GROUP diffServMIBCounterGroup
DESCRIPTION
"This group is mandatory for table objects indexed by ifIndex for
which the value of the corresponding instance of ifSpeed is less
than or equal to 20,000,000 bits/second."
GROUP diffServMIBHCCounterGroup
DESCRIPTION
"This group is mandatory for table objects indexed by ifIndex for
which the value of the corresponding instance of ifSpeed is
greater than 20,000,000 bits/second."
GROUP diffServMIBVHCCounterGroup
DESCRIPTION
"This group is mandatory for table objects indexed by ifIndex for
which the value of the corresponding instance of ifSpeed is
greater than 650,000,000 bits/second."
GROUP diffServMIBMeterGroup
DESCRIPTION
"This group is mandatory for devices that implement metering
functions."
GROUP diffServMIBTBParamGroup
DESCRIPTION
"This group is mandatory for devices that implement token-bucket
metering functions."
GROUP diffServMIBDscpMarkActGroup
DESCRIPTION
"This group is mandatory for devices that implement DSCP-Marking
functions."
GROUP diffServMIBRandomDropGroup
DESCRIPTION
"This group is mandatory for devices that implement Random Drop
functions."
OBJECT diffServDataPathStart OBJECT diffServDataPathStart
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServDataPathStatus OBJECT diffServDataPathStorage
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServClfrStatus OBJECT diffServDataPathStatus
SYNTAX RowStatus { active(1) }
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required, and active is the only status that
needs to be supported."
OBJECT diffServClfrNextFree
MIN-ACCESS not-accessible
DESCRIPTION
"Object not needed when diffServClfrTable is implemented read-
only"
OBJECT diffServClfrStorage
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServClfrStatus
SYNTAX RowStatus { active(1) }
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required, and active is the only status that
needs to be supported."
OBJECT diffServClfrElementNextFree
MIN-ACCESS not-accessible
DESCRIPTION
"Object not needed when diffServClfrelementTable is implemented
read-only"
OBJECT diffServClfrElementPrecedence OBJECT diffServClfrElementPrecedence
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServClfrElementNext OBJECT diffServClfrElementNext
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServClfrElementSpecific OBJECT diffServClfrElementSpecific
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServClfrElementStatus OBJECT diffServClfrElementStorage
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServClfrElementStatus
SYNTAX RowStatus { active(1) }
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required, and active is the only status that
needs to be supported."
OBJECT diffServMultiFieldClfrNextFree
MIN-ACCESS not-accessible
DESCRIPTION
"Object is not needed when diffServMultiFieldClfrTable is
implemented in read-only mode."
OBJECT diffServMultiFieldClfrAddrType OBJECT diffServMultiFieldClfrAddrType
SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2) }
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required. An implementation is only required
to support IPv4 and IPv6 addresses."
OBJECT diffServMultiFieldClfrDstAddr OBJECT diffServMultiFieldClfrDstAddr
SYNTAX InetAddress (SIZE(0|4|16))
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required. An implementation is only required
to support IPv4 and globally unique IPv6 addresses."
OBJECT diffServMultiFieldClfrDstPrefixLength OBJECT diffServMultiFieldClfrDstPrefixLength
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServMultiFieldClfrFlowId OBJECT diffServMultiFieldClfrSrcAddr
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required. An implementation is only required
to support IPv4 and globally unique IPv6 addresses."
OBJECT diffServMultiFieldClfrSrcAddr OBJECT diffServMultiFieldClfrSrcPrefixLength
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServMultiFieldClfrSrcPrefixLength OBJECT diffServMultiFieldClfrDscp
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServMultiFieldClfrDscp
OBJECT diffServMultiFieldClfrFlowId
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServMultiFieldClfrProtocol OBJECT diffServMultiFieldClfrProtocol
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServMultiFieldClfrDstL4PortMin OBJECT diffServMultiFieldClfrDstL4PortMin
skipping to change at page 93, line 34 skipping to change at page 102, line 21
OBJECT diffServMultiFieldClfrSrcL4PortMin OBJECT diffServMultiFieldClfrSrcL4PortMin
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServMultiFieldClfrSrcL4PortMax OBJECT diffServMultiFieldClfrSrcL4PortMax
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServMultiFieldClfrStatus OBJECT diffServMultiFieldClfrStorage
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServMultiFieldClfrStatus
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required, createAndWait and notInService
support is not required."
OBJECT diffServMeterNextFree
MIN-ACCESS not-accessible
DESCRIPTION
"Object is not needed when diffServMultiFieldClfrTable is
implemented in read-only mode."
OBJECT diffServMeterSucceedNext OBJECT diffServMeterSucceedNext
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServMeterFailNext OBJECT diffServMeterFailNext
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServMeterSpecific OBJECT diffServMeterSpecific
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServMeterStatus OBJECT diffServMeterStorage
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServMeterStatus
SYNTAX RowStatus { active(1) }
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required, and active is the only status that
needs to be supported."
OBJECT diffServTBParamNextFree
MIN-ACCESS not-accessible
DESCRIPTION
"Object is not needed when diffServTBParamTable is implemented in
read-only mode."
OBJECT diffServTBParamType OBJECT diffServTBParamType
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServTBParamRate OBJECT diffServTBParamRate
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServTBParamBurstSize OBJECT diffServTBParamBurstSize
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServTBParamInterval OBJECT diffServTBParamInterval
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServTBParamStatus OBJECT diffServTBParamStorage
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServTBParamStatus
SYNTAX RowStatus { active(1) }
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required, and active is the only status that
needs to be supported."
OBJECT diffServActionNextFree
MIN-ACCESS not-accessible
DESCRIPTION
"Object is not needed when diffServActionTable is implemented in
read-only mode."
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 diffServActionStorage
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT diffServActionStatus OBJECT diffServActionStatus
SYNTAX RowStatus { active(1) }
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required, and active is the only status that
needs to be supported."
OBJECT diffServCountActNextFree
MIN-ACCESS not-accessible
DESCRIPTION
"Object is not needed when diffServCountActTable is implemented
in read-only mode."
OBJECT diffServCountActStorage
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServCountActStatus OBJECT diffServCountActStatus
SYNTAX RowStatus { active(1) }
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required, and active is the only status that
needs to be supported."
OBJECT diffServAlgDropNextFree
MIN-ACCESS not-accessible
DESCRIPTION
"Object is not needed when diffServAlgDropTable is implemented in
read-only mode."
OBJECT diffServAlgDropType OBJECT diffServAlgDropType
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServAlgDropNext OBJECT diffServAlgDropNext
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 95, line 34 skipping to change at page 105, line 39
OBJECT diffServAlgDropQThreshold OBJECT diffServAlgDropQThreshold
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServAlgDropSpecific OBJECT diffServAlgDropSpecific
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServAlgDropStatus OBJECT diffServAlgDropStorage
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServAlgDropStatus
SYNTAX RowStatus { active(1) }
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required, and active is the only status that
needs to be supported."
OBJECT diffServRandomDropNextFree
MIN-ACCESS not-accessible
DESCRIPTION
"Object is not needed when diffServRandomDropTable is implemented
in read-only mode."
OBJECT diffServRandomDropMinThreshBytes OBJECT diffServRandomDropMinThreshBytes
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServRandomDropMinThreshPkts OBJECT diffServRandomDropMinThreshPkts
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 96, line 27 skipping to change at page 106, line 45
OBJECT diffServRandomDropWeight 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 diffServRandomDropStorage
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServRandomDropStatus
SYNTAX RowStatus { active(1) }
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required, and active is the only status that
needs to be supported."
OBJECT diffServQNextFree
MIN-ACCESS not-accessible
DESCRIPTION
"Object is not needed when diffServQTable is implemented in
read-only mode."
OBJECT diffServQNext OBJECT diffServQNext
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServQRate OBJECT diffServQMinRate
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServQShaper OBJECT diffServQMaxRate
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServQStatus OBJECT diffServQStorage
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServQStatus
SYNTAX RowStatus { active(1) }
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required, and active is the only status that
needs to be supported."
OBJECT diffServSchedulerNextFree
MIN-ACCESS not-accessible
DESCRIPTION
"Object is not needed when diffServSchedulerTable is implemented
in read-only mode."
OBJECT diffServSchedulerNext OBJECT diffServSchedulerNext
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServSchedulerMethod OBJECT diffServSchedulerMethod
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServSchedulerRate OBJECT diffServSchedulerMinRate
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServSchedulerShaper OBJECT diffServSchedulerMaxRate
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServSchedulerStatus OBJECT diffServSchedulerStorage
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServAssuredRatePriority OBJECT diffServSchedulerStatus
SYNTAX RowStatus { active(1) }
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required, and active is the only status that
needs to be supported."
OBJECT diffServMinRateNextFree
MIN-ACCESS not-accessible
DESCRIPTION
"Object is not needed when diffServMinRateTable is implemented in
read-only mode."
OBJECT diffServMinRatePriority
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServAssuredRateAbs OBJECT diffServMinRateAbs
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServAssuredRateRel OBJECT diffServMinRateRel
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServAssuredRateStatus OBJECT diffServMinRateStorage
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServShapingRateAbs OBJECT diffServMinRateStatus
SYNTAX RowStatus { active(1) }
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required, and active is the only status that
needs to be supported."
OBJECT diffServMaxRateNextFree
MIN-ACCESS not-accessible
DESCRIPTION
"Object is not needed when diffServMaxrateTable is implemented in
read-only mode."
OBJECT diffServMaxRateAbs
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServShapingRateRel OBJECT diffServMaxRateRel
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServShapingRateThreshold OBJECT diffServMaxRateThreshold
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServShapingRateStatus OBJECT diffServMaxRateStorage
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
::= { diffServMIBCompliances 1 } OBJECT diffServMaxRateStatus
SYNTAX RowStatus { active(1) }
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required, and active is the only status that
needs to be supported."
::= { diffServMIBCompliances 2 }
diffServMIBDataPathGroup OBJECT-GROUP diffServMIBDataPathGroup OBJECT-GROUP
OBJECTS { OBJECTS {
diffServDataPathStart, diffServDataPathStatus diffServDataPathStart, diffServDataPathStorage,
diffServDataPathStatus
} }
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The Data Path Group defines the MIB Objects that describe a "The Data Path Group defines the MIB Objects that describe a
functional data path." functional data path."
::= { diffServMIBGroups 1 } ::= { diffServMIBGroups 1 }
diffServMIBClfrGroup OBJECT-GROUP diffServMIBClfrGroup OBJECT-GROUP
OBJECTS { OBJECTS {
diffServClfrNextFree, diffServClfrStorage,
diffServClfrStatus diffServClfrStatus
} }
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The Classifier Group defines the MIB Objects that describe the "The Classifier Group defines the MIB Objects that describe the
list the starts of individual classifiers." list the starts of individual classifiers."
::= { diffServMIBGroups 2 } ::= { diffServMIBGroups 2 }
diffServMIBClfrElementGroup OBJECT-GROUP diffServMIBClfrElementGroup OBJECT-GROUP
OBJECTS { OBJECTS {
diffServClfrElementNextFree,
diffServClfrElementPrecedence, diffServClfrElementNext, diffServClfrElementPrecedence, diffServClfrElementNext,
diffServClfrElementSpecific, diffServClfrElementStatus diffServClfrElementSpecific, diffServClfrElementStorage,
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
describe the classifier elements that make up a generic describe the classifier elements that make up a generic
classifier." classifier."
::= { diffServMIBGroups 3 } ::= { diffServMIBGroups 3 }
diffServMIBMultiFieldClfrGroup OBJECT-GROUP diffServMIBMultiFieldClfrGroup OBJECT-GROUP
OBJECTS { OBJECTS {
diffServMultiFieldClfrAddrType, diffServMultiFieldClfrDstAddr, diffServMultiFieldClfrNextFree,
diffServMultiFieldClfrAddrType,
diffServMultiFieldClfrDstAddr,
diffServMultiFieldClfrDstPrefixLength, diffServMultiFieldClfrDstPrefixLength,
diffServMultiFieldClfrFlowId, diffServMultiFieldClfrSrcAddr, diffServMultiFieldClfrFlowId,
diffServMultiFieldClfrSrcPrefixLength, diffServMultiFieldClfrDscp, diffServMultiFieldClfrSrcAddr,
diffServMultiFieldClfrProtocol, diffServMultiFieldClfrDstL4PortMin, diffServMultiFieldClfrSrcPrefixLength,
diffServMultiFieldClfrDstL4PortMax, diffServMultiFieldClfrSrcL4PortMin, diffServMultiFieldClfrDscp,
diffServMultiFieldClfrSrcL4PortMax, diffServMultiFieldClfrStatus diffServMultiFieldClfrProtocol,
diffServMultiFieldClfrDstL4PortMin,
diffServMultiFieldClfrDstL4PortMax,
diffServMultiFieldClfrSrcL4PortMin,
diffServMultiFieldClfrSrcL4PortMax,
diffServMultiFieldClfrStorage,
diffServMultiFieldClfrStatus
} }
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The Six-Tuple Classifier Group defines the MIB Objects that "The Multi-field 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 various fields of
and upper-layer protocol header." an IP and upper-layer protocol header."
::= { diffServMIBGroups 4 } ::= { diffServMIBGroups 4 }
diffServMIBMeterGroup OBJECT-GROUP diffServMIBMeterGroup OBJECT-GROUP
OBJECTS { OBJECTS {
diffServMeterSucceedNext, diffServMeterFailNext, diffServMeterNextFree, diffServMeterSucceedNext,
diffServMeterSpecific, diffServMeterStatus diffServMeterFailNext, diffServMeterSpecific,
diffServMeterStorage, diffServMeterStatus
} }
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The Meter Group defines the objects used in describing a generic "The Meter Group defines the objects used in describing a generic
meter element." meter element."
::= { diffServMIBGroups 5 } ::= { diffServMIBGroups 5 }
diffServMIBTBParamGroup OBJECT-GROUP diffServMIBTBParamGroup OBJECT-GROUP
OBJECTS { OBJECTS {
diffServTBParamType, diffServTBParamRate, diffServTBParamNextFree, diffServTBParamType,
diffServTBParamBurstSize, diffServTBParamInterval, diffServTBParamRate, diffServTBParamBurstSize,
diffServTBParamInterval, diffServTBParamStorage,
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, diffServActionStatus diffServActionNextFree, diffServActionNext,
diffServActionSpecific, diffServActionStorage,
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
} }
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The DSCP Mark Action Group defines the objects used in "The DSCP Mark Action Group defines the objects used in
describing a DSCP Marking Action element." describing a DSCP Marking Action element."
::= { diffServMIBGroups 8 } ::= { diffServMIBGroups 8 }
diffServMIBCounterGroup OBJECT-GROUP diffServMIBCounterGroup OBJECT-GROUP
OBJECTS { OBJECTS {
diffServCountActOctets, diffServCountActPkts, diffServCountActNextFree, diffServCountActOctets,
diffServCountActDiscontTime, diffServCountActStatus, diffServCountActPkts, diffServCountActStorage,
diffServAlgDropOctets, diffServAlgDropPkts, diffServCountActStatus, diffServAlgDropOctets,
diffServAlgRandomDropOctets, diffServAlgRandomDropPkts diffServAlgDropPkts, diffServAlgRandomDropOctets,
diffServAlgRandomDropPkts
} }
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"A collection of objects providing information specific to non- "A collection of objects providing information specific to non-
high speed (non- high speed interfaces transmit and receive at high speed (non- high speed interfaces transmit and receive at
speeds less than or equal to 20,000,000 bits/second) packet- speeds less than or equal to 20,000,000 bits/second) packet-
oriented network interfaces." oriented network interfaces."
::= { diffServMIBGroups 9 } ::= { diffServMIBGroups 9 }
diffServMIBHCCounterGroup OBJECT-GROUP diffServMIBHCCounterGroup OBJECT-GROUP
OBJECTS { OBJECTS {
diffServCountActOctets, diffServCountActHCOctets, diffServCountActOctets, diffServCountActHCOctets,
diffServCountActPkts, diffServCountActDiscontTime, diffServCountActPkts, diffServCountActStorage,
diffServCountActStatus, diffServAlgDropOctets, diffServCountActStatus, diffServAlgDropOctets,
diffServAlgDropHCOctets, diffServAlgDropPkts, diffServAlgDropHCOctets, diffServAlgDropPkts,
diffServAlgRandomDropHCOctets, diffServAlgRandomDropHCPkts diffServAlgRandomDropHCOctets,
diffServAlgRandomDropHCPkts
} }
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"A collection of objects providing information specific to high "A collection of objects providing information specific to high
speed (high speed interfaces transmit and receive at speeds speed (high speed interfaces transmit and receive at speeds
greater than 20,000,000 but less than or equals to 650,000,000 greater than 20,000,000 but less than or equals to 650,000,000
bits/second) packet-oriented network interfaces." bits/second) packet-oriented network interfaces."
::= { diffServMIBGroups 10 } ::= { diffServMIBGroups 10 }
diffServMIBVHCCounterGroup OBJECT-GROUP diffServMIBVHCCounterGroup OBJECT-GROUP
OBJECTS { OBJECTS {