draft-ietf-diffserv-mib-10.txt   draft-ietf-diffserv-mib-11.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 December 2001 Nortel Networks Expires December 2001 Nortel Networks
draft-ietf-diffserv-mib-10.txt A. Smith draft-ietf-diffserv-mib-11.txt A. Smith
Allegro Networks Allegro Networks
August 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
documents of the Internet Engineering Task Force (IETF), its areas, and documents of the Internet Engineering Task Force (IETF), its areas, and
its working groups. Note that other groups may also distribute working its working groups. Note that other groups may also distribute working
documents as Internet- Drafts. documents as Internet- Drafts.
skipping to change at page 3, line 49 skipping to change at page 3, line 49
The higher level concept of a TCB is not required in the The higher level concept of a TCB is not required in the
parameterization or in the linking together of the individual elements, parameterization or in the linking together of the individual elements,
hence it is not used in the MIB itself and is only mentioned in the text hence it is not used in the MIB itself and is only mentioned in the text
for relating the MIB with the [MODEL]. Rather, the MIB models the for relating the MIB with the [MODEL]. Rather, the MIB models the
individual elements that make up the TCBs. individual elements that make up the TCBs.
This MIB uses the notion of a Data Path to indicate the Differentiated This MIB uses the notion of a Data Path to indicate the Differentiated
Services processing a packet may experience. The Data Path a packet Services processing a packet may experience. The Data Path a packet
will initially follow is an attribute of the interface in question. The will initially follow is an attribute of the interface in question. The
Data Path Start Table provides a starting point for each direction Data Path Table provides a starting point for each direction (ingress or
(ingress or egress) on each interface. A Data Path Table Entry egress) on each interface. A Data Path Table Entry indicates the first
indicates the first of possibly multiple elements that will apply of possibly multiple elements that will apply Differentiated Services
Differentiated Services treatment to the packet. treatment to the packet.
2.2. Relationship to other MIBs and Policy Management 2.2. Relationship to other MIBs and Policy Management
This MIB provides for direct reporting and manipulation of 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 [IFMIB].
Other MIBs and data structure definitions for policy management Other MIBs and data structure definitions for policy management
mechanisms other than SNMP/SMIv2 are likely to exist in the future for mechanisms other than SNMP/SMIv2 are likely to exist in the future for
the purposes of abstracting the model in other ways. the purposes of abstracting the model in other ways. An example is the
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
in this MIB semi-automatically. in this MIB semi-automatically.
Another possible direction of abstraction is one using a concept of Another possible direction of abstraction is one using a concept of
"roles" (often, but not always, applied to interfaces). In this case, "roles" (often, but not always, applied to interfaces). In this case,
it may be possible to re-use the object definitions in this MIB, it may be possible to re-use the object definitions in this MIB,
especially the parameterization tables. The Data Path table will help especially the parameterization tables. The Data Path table will help
in the reuse of the data path linkage tables by having the interface in the reuse of the data path linkage tables by having the interface
specific information centralized, allowing easier mechanical replacement specific information centralized, allowing easier mechanical replacement
of ifIndex by some sort of "roleIndex". This work is ongoing. of ifIndex by some sort of "roleIndex". This work is ongoing.
The reuse of parameter blocks on a variety of functional data paths is
intended to simplify network management. In many cases, one could also
re-use the structural elements as well; this has the unfortunate side-
effect of re-using the counters, so that monitoring information is lost.
For this reason, the re-use of structural elements is not generally
recommended.
3. MIB Overview 3. MIB Overview
The Differentiated Services Architecture does not specify how an The Differentiated Services Architecture does not specify how an
implementation should be assembled. The [MODEL] describes a general implementation should be assembled. The [MODEL] describes a general
approach to implementation design, or to user interface design. Its approach to implementation design, or to user interface design. Its
components could, however, be assembled in a different way. Traffic components could, however, be assembled in a different way. Traffic
conforming to a meter might be run through a second meter, for example, conforming to a meter might be run through a second meter, for example,
or reclassified. or reclassified.
This MIB models the same functional data path elements, allowing the This MIB models the same functional data path elements, allowing the
network manager to assemble them in any fashion that meets the relevant network manager to assemble them in any fashion that meets the relevant
policy. These data path elements include Classifiers, Meters, Actions policy. These data path elements include Classifiers, Meters, Actions
of various sorts, Queues, and Schedulers. of various sorts, Queues, and Schedulers.
In many of these tables, a distinction is drawn between the structure of In many of these tables, a distinction is drawn between the structure of
the policy (do this, then do that) and the parameters applied to the policy (do this, then do that) and the parameters applied to
specific policy elements. This is to facilitate configuration, if the specific policy elements. This is to facilitate configuration, if the
MIB is used for that. The concept is that a set of parameters, such as MIB is used for that. The concept is that a set of parameters, such as
the values that describe a specific token bucket, might be configured the values that describe a specific token bucket, might be configured
once and applied to many interfaces. once and applied to many interfaces.
The RowPointer Textual Convention is therefore used in two ways in this The RowPointer Textual Convention is therefore used in two ways in this
skipping to change at page 5, line 30 skipping to change at page 5, line 38
parameters that are used. When used as a connector, it says what parameters that are used. When used as a connector, it says what
happens "next"; what happens to classified traffic, to traffic happens "next"; what happens to classified traffic, to traffic
conforming or not conforming to a meter, and so on. When used to conforming or not conforming to a meter, and so on. When used to
indicate the parameters applied in a policy, it says "specifically" what indicate the parameters applied in a policy, it says "specifically" what
is meant; the structure points to the parameters of its policy. is meant; the structure points to the parameters of its policy.
The use of RowPointers as connectors allows for the simple extension of The use of RowPointers as connectors allows for the simple extension of
the MIB. The RowPointers, whether "next" or "specific", may point to the MIB. The RowPointers, whether "next" or "specific", may point to
Entries defined in other MIB modules. For example, the only type of Entries defined in other MIB modules. For example, the only type of
meter defined in this MIB is a token bucket meter; if another type of meter defined in this MIB is a token bucket meter; if another type of
meter is required, a proprietary MIB or another standard MIB could be meter is required, another MIB could be defined describing that type of
defined describing that type of meter, and diffServMeterSpecific could meter, and diffServMeterSpecific could point to it. Similarly, if a new
point to it. Similarly, if a new action is required, the "next" pointer action is required, the "next" pointer of the previous functional
of the previous functional datapath element could point to an Entry datapath element could point to an Entry defined in another MIB, public
defined in a proprietary MIB or one defined in another standard. or proprietary.
3.1. Processing Path 3.1. Processing Path
An interface has an ingress and an egress direction, and will generally An interface has an ingress and an egress direction, and will generally
have a different policy in each direction. As traffic enters an edge have a different policy in each direction. As traffic enters an edge
interface, it may be classified, metered, counted, and marked. Traffic interface, it may be classified, metered, counted, and marked. Traffic
leaving the same interface might be remarked according to the contract leaving the same interface might be remarked according to the contract
with the next network, queued to manage the bandwidth, and so on. As with the next network, queued to manage the bandwidth, and so on. As
[MODEL] points out, the functional datapath elements used on ingress and [MODEL] points out, the functional datapath elements used on ingress and
egress are of the same type, but may be structured in very different egress are of the same type, but may be structured in very different
ways to implement the relevant policies. ways to implement the relevant policies.
3.1.1. diffServDataPathTable - The Data Path Table 3.1.1. diffServDataPathTable - The Data Path Table
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
skipping to change at page 6, line 46 skipping to change at page 7, line 4
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; we
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 Six-Tuple This MIB defines a single classifier parameter entry, the Multi-field
Classifier. A degenerate case of this multi-field classifier is a Classifier. A degenerate case of this multi-field classifier is a
Behavior Aggregate classifier. Other classifiers may be defined in Behavior Aggregate classifier. Other classifiers may be defined in
other MIB modules, to select traffic from a given layer two neighbor or other MIB modules, to select traffic from a given layer two neighbor or
a given interface, traffic whose addresses belong to a given BGP a given interface, traffic whose addresses belong to a given BGP
Community or Autonomous System, and so on. Community or Autonomous System, and so on.
3.2.1. diffServClfrElementTable - The Classifier Element Table 3.2.1. diffServClfrElementTable - The Classifier Element Table
A classifier consists of classifier elements. A classifier element A classifier consists of classifier elements. A classifier element
identifies a specific set of traffic that forms part of a behavior identifies a specific set of traffic that forms part of a behavior
aggregate; other classifier elements within the same classifier may aggregate; other classifier elements within the same classifier may
identify other traffic that also falls into the behavior aggregate. For identify other traffic that also falls into the behavior aggregate. For
example, in identifying AF traffic for the aggregate AF1, one might example, in identifying AF traffic for the aggregate AF1, one might
implement separate classifier elements for AF11, AF12, and AF13 within implement separate classifier elements for AF11, AF12, and AF13 within
the same classifier and pointing to the same subsequent meter. the same classifier and pointing to the same subsequent meter.
Generally, one would expect Data Path Entry to point to a classifier Generally, one would expect Data Path Entry to point to a classifier
(which is to say, the first of a set of one or more classifier (which is to say, a set of one or more classifier elements), although it
elements), although it may point to something else when appropriate. may point to something else when appropriate. Reclassification in a
Reclassification in a functional data path is achieved by pointing to functional data path is achieved by pointing to another Classifier Entry
another Classifier Entry when appropriate. when appropriate.
A classifier element is a structural element, indexed by classifier ID A classifier element is a structural element, indexed by classifier ID
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
skipping to change at page 8, line 18 skipping to change at page 8, line 23
configuration. The Network Management Application reads the variable configuration. The Network Management Application reads the variable
and uses the value read in a create-and-go or a create-and-wait SET. 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 When the SET is performed, the agent must determine whether the value is
indeed still unused; two network managers may attempt to create a indeed still unused; two network managers may attempt to create a
configuration entry simultaneously and use the same value. If it is configuration entry simultaneously and use the same value. If it is
currently unused, the SET succeeds and the agent changes the value of currently unused, the SET succeeds and the agent changes the value of
diffServClfrElementNextFree according to an agent-specific algorithm. diffServClfrElementNextFree according to an agent-specific algorithm.
If the value is in use, however, the SET fails. The network manager If the value is in use, however, the SET fails. The network manager
must re-read diffServClfrElementNextFree to obtain a useful value. must re-read diffServClfrElementNextFree to obtain a useful value.
3.2.2. diffServSixTupleClfrTable - The Six-Tuple 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 Six-
Tuple Classifier. As a parameter, a filter may be specified once and Tuple 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
classifier 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 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 In that ranges or "any" are defined in each case, clearly a wide variety
of filters can be constructed. The Differentiated Services Behavior of filters can be constructed. The Differentiated Services Behavior
skipping to change at page 8, line 44 skipping to change at page 9, line 4
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 In that ranges or "any" are defined in each case, clearly a wide variety
of filters can be constructed. The Differentiated Services Behavior of filters can be constructed. The Differentiated Services Behavior
Aggregate filter is a special case of this filter. Aggregate filter is a special case of this filter.
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 diffServSixTupleClfrTable, 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 diffServSixTupleClfrTable is constructed, and filter, a table similar to diffServMultiFieldClfrTable is constructed,
and diffServClfrElementSpecific configured to point to it.
diffServClfrElementSpecific configured to point to it.
When the MIB is used for configuration, diffServSixTupleClfrNextFree When the MIB is used for configuration, diffServMultiFieldClfrNextFree
always contains a legal value for diffServSixTupleClfrId 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. The Network Management
Application reads the variable and uses the value read in a create- 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 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 must determine whether the value is indeed still unused; two network
managers may attempt to create a configuration entry simultaneously and managers may attempt to create a configuration entry simultaneously and
use the same value. If it is currently unused, the SET succeeds and the use the same value. If it is currently unused, the SET succeeds and the
agent changes the value of diffServSixTupleClfrNextFree according to an agent changes the value of diffServMultiFieldClfrNextFree according to
agent-specific algorithm. If the value is in use, however, the SET an agent-specific algorithm. If the value is in use, however, the SET
fails. The network manager must re-read diffServSixTupleClfrNextFree to fails. The network manager must re-read diffServMultiFieldClfrNextFree
obtain a useful value. 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 As discussed in [MODEL], a meter and a shaper are functions that operate
operate on opposing ends of a link. A shaper schedules traffic for on opposing ends of a link. A shaper schedules traffic for transmission
transmission at specific times in order to approximate a particular line at specific times in order to approximate a particular line speed or
speed or combination of line speeds. In its simplest form, if the combination of line speeds. In its simplest form, if the traffic stream
traffic stream contains constant sized packet, it might transmit one contains constant sized packet, it might transmit one packet per unit
packet per unit time to build the equivalent of a CBR circuit. However, time to build the equivalent of a CBR circuit. However, various factors
various factors intervene to make the approximation inexact; multiple intervene to make the approximation inexact; multiple classes of traffic
classes of traffic may occasionally schedule their traffic and the same may occasionally schedule their traffic and the same time, the variable
time, the variable length nature of IP traffic may introduce variation, length nature of IP traffic may introduce variation, and factors in the
and factors in the link or physical layer may change traffic timing. A link or physical layer may change traffic timing. A meter integrates
"meter" integrates the arrival rate of traffic and determines whether the arrival rate of traffic and determines whether the shaper at the far
the shaper at the far end was correctly applied, or whether the behavior end was correctly applied, or whether the behavior of the application in
of the application in question is naturally close enough to such question is naturally close enough to such behavior to be acceptable
behavior to be acceptable under a given contract. under a given contract.
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
bursts, and responds poorly when more than one packet in a round trip bursts, and responds poorly when more than one packet in a round trip
interval is dropped. Applications like FTP contain the effect by simply interval is dropped. Applications like FTP contain the effect by simply
staying below the target bit rate; this type of configuration very staying below the target bit rate; this type of configuration very
adversely affects transaction applications like HTTP, however. Another adversely affects transaction applications like HTTP, however. Another
use of a meter is in the AF specification, in which excess traffic is use of a meter is in the AF specification, in which excess traffic is
marked with a related DSCP and subjected to slightly more active queue marked with a related DSCP and subjected to slightly more active queue
depth management. The application is not sharply limited to a depth management. The application is not sharply limited to a
skipping to change at page 10, line 44 skipping to change at page 11, line 4
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 Network Management Application reads
the variable and uses the value read in a create-and-go or a create- 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 and-wait SET. When the SET is performed, the agent must determine
whether the value is indeed still unused; two network managers may whether the value is indeed still unused; two network managers may
attempt to create a configuration entry simultaneously and use the same attempt to create a configuration entry simultaneously and use the same
value. If it is currently unused, the SET succeeds and the agent value. If it is currently unused, the SET succeeds and the agent
changes the value of diffServMeterNextFree according to an agent- changes the value of diffServMeterNextFree according to an agent-
specific algorithm. If the value is in use, however, the SET fails. specific algorithm. If the value is in use, however, the SET fails.
The network manager must re-read diffServMeterNextFree to obtain a The network manager must re-read diffServMeterNextFree to obtain a
useful value. 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
- the traffic stream is slower than and therefore conforms to all of the - the traffic stream is slower than and therefore conforms to all of the
rates, it fails the first few but is slower than and therefore conforms rates, it fails the first few but is slower than and therefore conforms
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 montonically 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 "badValue" if all three are
specified but are not mathematically related. 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 Network Management Application reads
skipping to change at page 12, line 44 skipping to change at page 13, line 4
the discontinuity time. They share the same discontinuity time. the discontinuity time. They share the same discontinuity time.
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 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- 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 and-wait SET. When the SET is performed, the agent must determine
whether the value is indeed still unused; two network managers may whether the value is indeed still unused; two network managers may
attempt to create a configuration entry simultaneously and use the same attempt to create a configuration entry simultaneously and use the same
value. If it is currently unused, the SET succeeds and the agent value. If it is currently unused, the SET succeeds and the agent
changes the value of diffServCountActNextFree according to an agent- changes the value of diffServCountActNextFree according to an agent-
specific algorithm. If the value is in use, however, the SET fails. specific algorithm. If the value is in use, however, the SET fails.
The network manager must re-read diffServCountActNextFree to obtain a The network manager must re-read diffServCountActNextFree to obtain a
useful value. 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.
I might be viewed not so much as an array of single-object entries as an It might be viewed not so much as an array of single-object entries as
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-
only, and is both the Entry's index and its only value. only, and is both the Entry's index and its only value.
3.4.4. diffServAlgDropTable - The Algorithmic Drop Table 3.4.4. diffServAlgDropTable - The Algorithmic Drop Table
The Algorithmic Drop Table identifies a dropping algorithm, drops The Algorithmic Drop Table identifies a dropping algorithm, drops
packets, and counts the drops. Classified as an action, it is in effect packets, and counts the drops. Classified as an action, it is in effect
skipping to change at page 14, line 28 skipping to change at page 14, line 35
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.
Random droppers often have their drop probability function described as
a plot of drop probability (P) against averaged queue length (Q).
(Qmin,Pmin) then defines the start of the characteristic plot. Normally
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
drop probability become more progressive (greater slope). (Qclip,1)
defines the queue length at which all packets will be dropped. Notice
this is different from Tail Drop because this uses an averaged queue
AlgDrop Queue AlgDrop Queue
+-----------------+ +-------+ +-----------------+ +-------+
--->| Next ---------+--+------------------->| Next -+--> ... --->| Next ---------+--+------------------->| Next -+--> ...
| QMeasure -------+--+ | ... | | QMeasure -------+--+ | ... |
| QThreshold | RandomDrop +-------+ | QThreshold | RandomDrop +-------+
| Type=randomDrop | +----------------+ | Type=randomDrop | +----------------+
| Specific -------+---->| MinThreshBytes | | Specific -------+---->| MinThreshBytes |
+-----------------+ | MaxThreshBytes | +-----------------+ | MaxThreshBytes |
| ProbMax | | ProbMax |
| Weight | | Weight |
| SamplingRate | | SamplingRate |
+----------------+ +----------------+
Random droppers often have their drop probability function described as
a plot of drop probability (P) against averaged queue length (Q).
(Qmin,Pmin) then defines the start of the characteristic plot. Normally
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
drop probability become more progressive (greater slope). (Qclip,1)
defines the queue length at which all packets will be dropped. Notice
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
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.
The calculation of a smoothed queue length may also have an important The calculation of a smoothed queue length may also have an important
bearing on the behavior of the dropper: parameters may include the bearing on the behavior of the dropper: parameters may include the
sampling interval or rate, and the weight of each sample. The sampling interval or rate, and the weight of each sample. The
performance may be very sensitive to the values of these parameters and performance may be very sensitive to the values of these parameters and
a wide range of possible values may be required due to a wide range of a wide range of possible values may be required due to a wide range of
link speeds. Most algorithms include a sample weight, represented here link speeds. Most algorithms include a sample weight, represented here
by DiffServRandomDropInvWeight. The availability of by diffServRandomDropWeight. The availability of
DiffServRandomDropSamplingRate as readable is important, the information diffServRandomDropSamplingRate as readable is important, the information
provided by Sampling Rate is essential to the configuration of provided by Sampling Rate is essential to the configuration of
DiffServRandomDropInvWeight. Having Sampling Rate be configurable is diffServRandomDropWeight. Having Sampling Rate be configurable is also
also helpful, as line speed increases, the ability to have queue helpful, as line speed increases, the ability to have queue sampling be
sampling be less frequent than packet arrival is needed. Note, however, less frequent than packet arrival is needed. Note, however, that there
that there is ongoing research on this topic, see e.g. [ACTQMGMT] and is ongoing research on this topic, see e.g. [ACTQMGMT] and [AQMROUTER].
[AQMROUTER].
Additional parameters may be added in an enterprise MIB module, e.g. by Additional parameters may be added in an enterprise MIB module, e.g. by
using AUGMENTS on this table, to handle aspects of random drop using AUGMENTS on this table, to handle aspects of random drop
algorithms that are not standardized here. algorithms that are not standardized here.
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. The Network Management currently used in the system's configuration. The Network Management
Application reads the variable and uses the value read in a create- 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 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 must determine whether the value is indeed still unused; two network
managers may attempt to create a configuration entry simultaneously and managers may attempt to create a configuration entry simultaneously and
use the same value. If it is currently unused, the SET succeeds and the use the same value. If it is currently unused, the SET succeeds and the
agent changes the value of diffServRandomDropNextFree according to an agent changes the value of diffServRandomDropNextFree according to an
agent-specific algorithm. If the value is in use, however, the SET agent-specific algorithm. If the value is in use, however, the SET
fails. The network manager must re-read diffServRandomDropNextFree to fails. The network manager must re-read diffServRandomDropNextFree to
obtain a useful value. 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
skipping to change at page 16, line 24 skipping to change at page 16, line 31
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
The Queue Table models simple FIFO queues. The Scheduler Table allows The Queue Table models simple FIFO queues. 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.
Queue Table entries are pointed at by the "next" attributes of the Queue Table entries are pointed at by the "next" attributes of the
upstream elements, such as DiffServMeterSucceedNext or upstream elements, such as diffServMeterSucceedNext or
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, as in Functionally, the selection of such is a function of a scheduler. The
Section .sh 4 "The parameter is associated with the queue, however, parameter is associated with the queue, however, using the Assured or
using the Assured or Shaping Rate Parameters Table. Shaping 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. The Network Management Application reads the
variable and uses the value read in a create-and-go or a create- and- 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 wait SET. When the SET is performed, the agent must determine whether
the value is indeed still unused; two network managers may attempt to the value is indeed still unused; two network managers may attempt to
create a configuration entry simultaneously and use the same value. If create a configuration entry simultaneously and use the same value. If
it is currently unused, the SET succeeds and the agent changes the value it is currently unused, the SET succeeds and the agent changes the value
of diffServQNextFree according to an agent- specific algorithm. If the of diffServQNextFree according to an agent- specific algorithm. If the
value is in use, however, the SET fails. The network manager must re- value is in use, however, the SET fails. The network manager must re-
read diffServQNextFree to obtain a useful value. 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
skipping to change at page 17, line 20 skipping to change at page 17, line 27
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. The Network Management Application
reads the variable and uses the value read in a create- and-go or a 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 create-and-wait SET. When the SET is performed, the agent must
determine whether the value is indeed still unused; two network managers determine whether the value is indeed still unused; two network managers
may attempt to create a configuration entry simultaneously and use the may attempt to create a configuration entry simultaneously and use the
same value. If it is currently unused, the SET succeeds and the agent same value. If it is currently unused, the SET succeeds and the agent
changes the value of diffServSchedulerNextFree according to an agent- changes the value of diffServSchedulerNextFree according to an algorithm
specific algorithm. If the value is in use, however, the SET fails. specific to the agent. If the value is in use, however, the SET fails.
The network manager must re-read diffServSchedulerNextFree to obtain a The network manager must re-read diffServSchedulerNextFree to obtain a
useful value. useful value.
3.5.3. diffServAssuredRateTable - The Assured Rate Table 3.5.3. diffServAssuredRateTable - The Assured 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 diffServAssuredRateTable.
Rates may be expressed as absolute rates, or as a fraction of ifSpeed, Rates may be expressed as absolute rates, or as a fraction of ifSpeed,
and imply the use of a rate-based scheduler such as WFQ or WRR. The use and imply the use of a rate-based scheduler such as WFQ or WRR. The use
of a priority implies the use of a Priority Scheduler. Only one of the of a priority implies the use of a Priority Scheduler. Only one of the
Absolute or Relative rate need be set; the other takes the relevant 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. the inputs to a scheduler using the assured rate. More complex
functionality may be described by augmenting this MIB.
The effect of combining priority and rate is to make the rates be in When a priority scheduler is used, its effect is to give the queue the
fact fractions of ifSpeed less the actual amount of traffic passing, entire capacity of the subject interface less the capacity used by
although the fraction is calculated against the ifSpeed value. higher priorities, if there is traffic present to use it. This is true
regardless of the rate specifications applied to that queue or other
queues on the interface. Policing excess traffic will mitigate this
behavior.
When the MIB is used for configuration, diffServAssuredRateNextFree When the MIB is used for configuration, diffServAssuredRateNextFree
always contains a legal value for diffServAssuredRateId that is not always contains a legal value for diffServAssuredRateId that is not
currently used in the system's configuration. The Network Management currently used in the system's configuration. The Network Management
Application reads the variable and uses the value read in a create- 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 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 must determine whether the value is indeed still unused; two network
managers may attempt to create a configuration entry simultaneously and managers may attempt to create a configuration entry simultaneously and
use the same value. If it is currently unused, the SET succeeds and the use the same value. If it is currently unused, the SET succeeds and the
agent changes the value of diffServAssuredRateNextFree according to an agent changes the value of diffServAssuredRateNextFree according to an
skipping to change at page 18, line 16 skipping to change at page 18, line 27
3.5.4. diffServShapingRateTable - The Shaping Rate Table 3.5.4. diffServShapingRateTable - The Shaping 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
diffServShapingRateTable. Rates may be expressed as absolute rates, or diffServShapingRateTable. Rates may be expressed as absolute rates, or
as a fraction of ifSpeed. Only one of the Absolute or Relative rate as a fraction of ifSpeed. Only one of the Absolute or Relative rate
need be set; the other takes the relevant value as a result. need be set; the other takes 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 SHAPING diffServShapingRateEntries. In this case, an algorithm such as [SHAPER]
is used. In that algorithm, more than one rate is specified, and at any is used. In that algorithm, more than one rate is specified, and at any
given time traffic is shaped to the lowest specified rate which exceeds 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, diffServShapingRateNextFree
always contains a legal value for diffServShapingRateId that is not always contains a legal value for diffServShapingRateId that is not
currently used in the system's configuration. The Network Management currently used in the system's configuration. The Network Management
Application reads the variable and uses the value read in a create- 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 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 must determine whether the value is indeed still unused; two network
skipping to change at page 18, line 39 skipping to change at page 19, line 4
agent changes the value of diffServShapingRateNextFree according to an agent changes the value of diffServShapingRateNextFree according to an
agent-specific algorithm. If the value is in use, however, the SET agent-specific algorithm. If the value is in use, however, the SET
fails. The network manager must re-read diffServShapingRateNextFree to fails. The network manager must re-read diffServShapingRateNextFree to
obtain a useful value. 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 Queuing 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
DiffServAssuredRateAbs; 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
+-----+ +-----+
+-------+ | 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 |
+--------+ +-----+ +--------+ +-----+
current line rate. DiffServAssuredRateRel to assist in cases where line 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
diffServAssuredRateAbs; 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, diffServAssuredRateRel, to assist in cases where line
rates are variable or where a higher-level policy might be expressed in rates are variable or where a higher-level policy might be expressed in
terms of fractions of network resources. The two rate parameters are terms of fractions of network resources. The two rate parameters are
inter-related and changes in one may be reflected in the other. An inter-related and changes in one may be reflected in the other. An
example is found in figure 4. example is found in figure 3.
For weighted scheduling methods, one can say loosely, that WRR focuses
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
+-----+ +-----+
+-------+ | 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
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 profile in order to limit the scheduler bandwidth available to that
input. This is represented by a rate, in DiffServShapingRateAbs; the input. This is represented by a rate, in diffServShapingRateAbs; the
classical weight is the ratio between that rate and the interface speed, classical weight is the ratio between that rate and the interface speed,
or perhaps the ratio between that rate and the sum of the configured or perhaps the ratio between that rate and the sum of the configured
rates for classes. The rate may 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, diffServShapingRateRel.
There was discussion in the working group about alternative modeling There was discussion in the working group about alternative modeling
approaches, such as defining a shaping action or a shaping element. approaches, such as defining a shaping action or a shaping element.
This MIB does not take this approach because shaping is in fact This MIB does not take this approach because shaping is in fact
something a scheduler does to its inputs, (which we model as a queue 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 with a maximum rate or a scheduler whose output has a maximum rate) and
the authors felt it was simpler and more elegant to simply describe it the authors felt it was simpler and more elegant to simply describe it
in that context. in that context.
The same may be done on a queue, if a given class is to be shaped to a
maximum rate without shaping other classes, as in Figure 5.
Other types of priority and weighted scheduling methods can be defined
using existing parameters in DiffServAssuredRateEntry. NOTE:
DiffServSchedulerMethod uses OBJECT IDENTIFIER syntax, with the
different types of scheduling methods defined as OBJECT-IDENTITY.
Future scheduling methods may be defined in other MIBs. This requires
an OBJECT-IDENTITY definition, a description of how the existing objects
are reused, if they are, and any new objects they require.
Queue Table entries are pointed at by the "next" attributes of the
upstream elements, such as DiffServMeterSucceedNext or
diffServActionNext. Note that multiple upstream elements may direct
their traffic to the same Queue Table entry. For example, the Assured
Forwarding PHB suggests that all traffic marked AF11, AF12 or AF13 be
+---+ +---+
+-------+ | S | +-------+ | S |
| Queue +------------>+ c | | Queue +------------>+ c |
+-------+-+--------+ | h | +-------+-+--------+ | h |
| | | e +-----------> | | | e +----------->
+--------+ | d +-+-------+ +--------+ | d +-+-------+
| u | |Maximum| | 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
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| | |
+--------+ +---+ +--------+ +---+
placed in the same queue, after metering, without reordering. To Other types of priority and weighted scheduling methods can be defined
accomplish that, the upstream diffServAlgDropNext pointers each point to using existing parameters in diffServAssuredRateEntry. NOTE:
the same diffServQEntry. diffServSchedulerMethod uses OBJECT IDENTIFIER syntax, with the
different types of scheduling methods defined as OBJECT-IDENTITY.
A common requirement of a queue is that its traffic enjoy a certain Future scheduling methods may be defined in other MIBs. This requires
minimum or maximum rate, or that it be given a certain priority. an OBJECT-IDENTITY definition, a description of how the existing objects
Functionally, the selection of such is a function of a scheduler, as in are reused, if they are, and any new objects they require.
Section .sh 4 "The parameter is associated with the queue, however,
using the Assured or Shaping Rate Parameters Table.
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 we 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, we must place an upper bound
rate on the output of the priority scheduler. See figure 4. 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 dealth 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 | |Maximum| +------+ | 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
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 |
+--+--+ +--+--+ +--+--+ +--+--+ +--+--+ +--+--+ +--+--+ +--+--+ +--+--+ +--+--+
| | | | | | | | | |
skipping to change at page 23, line 36 skipping to change at page 23, line 5
VVV VVV VVV VVV V VVV VVV VVV VVV V
Accepted traffic is sent to IP forwarding Accepted traffic is sent to IP forwarding
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 "program" from
the diffServDataPathTable. This points to a classifier, which will the diffServDataPathTable. This points to a classifier, which will
select traffic according to some specification for each traffic class. select traffic according to some specification for each 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 set of three
three classifier elements, each pointing to a Six-tuple 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
six-tuples 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 six-tuple parameter specifying the EF code point, element pointing to a filter specifying the EF code point, or a
or a collection of classifiers with parameter blocks specifying collection of classifiers with parameter blocks specifying individual
individual telephone calls, or a variety of other approaches. telephone calls, or a variety of other approaches.
Each classifier hands its traffic off to appropriate functional data Typically, of course, a classifier identifies a variety of traffic and
path elements. breaks it up into separate classes. It might very well contain fourteen
classifier elements indicating the twelve AFmn DSCP values, EF, and
"everything else". These would presumably direct traffic down six
functional data paths: one for each AF or EF class, and one for all
other traffic.
3.6.1.2. AF Implementation On an Ingress Edge Interface 3.6.1.2. AF Implementation 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. These groups of traffic conform to both specified into three groups. These groups of traffic conform to both specified
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.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 To configure this, we apply two Meter Entries, one for the conforming
rate and one for the excess rate. The rate parameters are stored in 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
skipping to change at page 25, line 4 skipping to change at page 24, line 23
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, we set the "SucceedNext" pointer of the
Mark Action to zeroDotZero.
Mark Action is left at 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 30 skipping to change at page 25, line 4
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, we set the "SucceedNext" pointer of the Mark
Action is left at zeroDotZero. Action 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. We
can use a count action on this traffic if the several counters are 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. We
configure an Alorithmic Drop Entry of the type "alwaysDrop," with no configure an Alorithmic Drop Entry of the type "alwaysDrop," with no
successor. successor.
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
+-----------------------+ +-----------------------+
| diffServDataPathStart | | diffServDataPathStart |
+-----------+-----------+ +-----------+-----------+
| |
+----------+ +----------+
| |
+--+--+ +-----+ +-----+ +-----+ +-----+ +--+--+ +-----+ +-----+ +-----+ +-----+
| AF1 +-----+ AF2 +-----+ AF3 +-----+ AF4 +-----+ EF | | AF1 +-----+ AF2 +-----+ AF3 +-----+ AF4 +-----+ EF |
|-+++-| |-+++-| |-+++-| |-+++-| +-+-+-+ |-+++-| |-+++-| |-+++-| |-+++-| +-+-+-+
||| ||| ||| ||| | | ||| ||| ||| ||| | |
skipping to change at page 26, line 40 skipping to change at page 26, line 8
+--+-----------+-----------+-----------+---+ | +--+-----------+-----------+-----------+---+ |
| WFQ/WRR Scheduler | | | WFQ/WRR Scheduler | |
+--------------------------------------+---+ | +--------------------------------------+---+ |
| | | |
+-----+-----------+----+ +-----+-----------+----+
| Priority Scheduler | | Priority Scheduler |
+----------+-----------+ +----------+-----------+
| |
V V
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 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 Six-tuple classification
parameter block identifying one of the AFmn DSCPs. Alternatively, the parameter block identifying one of the AFmn DSCPs. Alternatively, the
six-tuples might contain selectors for HTTP traffic or some other filter 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 six-tuple parameter specifying the EF code point, element pointing to a Multi-field parameter specifying the EF code
or a collection of classifiers with parameter blocks specifying point, or a collection of classifiers with parameter blocks specifying
individual telephone calls, or a variety of other approaches. individual telephone calls, or a variety of other approaches.
Each classifier hands its traffic off to appropriate functional data Each classifier delivers traffic to appropriate functional data path
path elements. elements.
3.7.2. AF Implementation On an Egress Edge Interface 3.7.2. AF Implementation 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. These groups of traffic conform to both specified into three groups. These groups of traffic conform to both specified
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 To configure this, we apply two Meter Entries, one for the conforming
rate and one for the excess rate. The rate parameters are stored in 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
skipping to change at page 29, line 45 skipping to change at page 29, line 16
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. By this, we mean that a separate queue is used for each EF
class, with a strict ordering. class, with a strict 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 it this an SNMP Table by pointing to one of its objects. One of the ways this
MIB uses it is to indicate succession, pointing to data path linkage MIB uses it is to indicate succession, pointing to data path linkage
table entries. table entries.
For succession, it answers the question "what happens next?". Rather For succession, it answers the question "what happens next?". Rather
than presume that the next table must be as specified in the conceptual than presume that the next table must be as specified in the conceptual
model [MODEL] and providing its index, the RowPointer takes you to the model [MODEL] and providing its index, the RowPointer takes you to the
MIB row representing that thing. In the DiffServMeterTable, for example, MIB row representing that thing. In the diffServMeterTable, for example,
the DiffServMeterFailNext RowPointer might take you to another meter, the diffServMeterFailNext RowPointer might take you to another meter,
while the DiffServMeterSucceedNext RowPointer would take you to an while the diffServMeterSucceedNext RowPointer would take you to an
action. action.
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
value it contains, it is possible and acceptable to use RowPointers to value it contains, it is possible and acceptable to use RowPointers to
merge data paths. An obvious example of such a use is in the merge data paths. An obvious example of such a use is in the
classifier: traffic matching the DSCPs AF11, AF12, and AF13 might be classifier: traffic matching the DSCPs AF11, AF12, and AF13 might be
presented to the same meter in order to perform the processing described presented to the same meter in order to perform the processing described
in the Assured Forwarding PHB. Another use would be to merge data paths in the Assured Forwarding PHB. Another use would be to merge data paths
from several interfaces; if they represent a single service contract, from several interfaces; if they represent a single service contract,
having them share a common set of counters and common policy may be a having them share a common set of counters and common policy may be a
desireable configuration. Note well, however, that suchconfigurations desirable configuration. Note well, however, that such configurations
may have related implementation issues - if Differentiated Services may have related implementation issues - if Differentiated Services
processing for the interfaces is implemented in multiple forwarding processing for the interfaces is implemented in multiple forwarding
engines, the engines will need to communicate if they are to implement engines, the engines will need to communicate if they are to implement
such a feature. An implementation that fails to provide this capability such a feature. An implementation that fails to provide this capability
is not considered to have failed the intention of this MIB or of the is not considered to have failed the intention of this MIB or of the
[MODEL]; an implementation that does provide it is not considered [MODEL]; an implementation that does provide it is not considered
superior from a standards perspective. superior from a standards perspective.
NOTE -- the RowPointer construct is used to connect the functional NOTE -- the RowPointer construct is used to connect the functional
data paths. The [MODEL] describes these as TCBs, as an aid to data paths. The [MODEL] describes these as TCBs, as an aid to
skipping to change at page 31, line 5 skipping to change at page 30, line 20
RowPointer, it is assumed the data path ends and the traffic should be RowPointer, it is assumed the data path ends and the traffic should be
given to the next logical part of the device, usually a forwarding given to the next logical part of the device, usually a forwarding
process or a transmission engine, or the proverbial bit-bucket. Any process or a transmission engine, or the proverbial bit-bucket. Any
variation from this usage is indicated by the attribute affected. variation from this usage is indicated by the attribute affected.
4.2. The use of RowPointer to indicate parameters 4.2. The use of RowPointer to indicate parameters
RowPointer is also used in this MIB to indicate parameterization, for RowPointer is also used in this MIB to indicate parameterization, for
pointing to parameterization table entries. pointing to parameterization table entries.
For indirection (as in the DiffServClfrElementTable), the idea is to For indirection (as in the diffServClfrElementTable), the idea is to
allow other MIBs, including proprietary ones, to define new and arcane allow other MIBs, including proprietary ones, to define new and arcane
filters - MAC headers, IPv4 and IPv6 headers, BGP Communities and all filters - MAC headers, IPv4 and IPv6 headers, BGP Communities and all
sorts of other things - whilst still utilizing the structures of this sorts of other things - whilst still utilizing the structures of this
MIB. This is a form of class inheritance (in "object oriented" MIB. This is a form of class inheritance (in "object oriented"
language): it allows base object definitions ("classes") to be extended language): it allows base object definitions ("classes") to be extended
in proprietary or standard ways, in the future, by other documents. in proprietary or standard ways, in the future, by other documents.
RowPointer also clearly indicates the identified conceptual row's RowPointer also clearly indicates the identified conceptual row's
content does not change, hence they can be simultaneously used, pointed content does not change, hence they can be simultaneously used, pointed
to, by more than one data path linkage table entries. The to, by more than one data path linkage table entries. The
skipping to change at page 31, line 29 skipping to change at page 30, line 44
4.3. Conceptual row creation and deletion 4.3. Conceptual row creation and deletion
A number of conceptual tables defined in this MIB use as an index an A number of conceptual tables defined in this MIB use as an index an
arbitrary integer value, unique across the scope of the agent. In order arbitrary integer value, unique across the scope of the agent. In order
to help with multi-manager row-creation problems, a mechanism must be to help with multi-manager row-creation problems, a mechanism must be
provided to allow a manager to obtain unique values for such an index provided to allow a manager to obtain unique values for such an index
and to ensure that, when used, the manager knows whether it got what it and to ensure that, when used, the manager knows whether it got what it
wanted or not. wanted or not.
Typically, such a table has an associated NextFree variable e.g. Typically, such a table has an associated NextFree variable e.g.
DiffServClfrNextFree which provides a suitable value for the index of diffServClfrNextFree which provides a suitable value for the index of
the next row to be created e.g. DiffServClfrElementClfrId. The value the next row to be created e.g. diffServClfrElementClfrId. The value
zero is used to indicate that the agent can configure no more entries. zero is used to indicate that the agent can configure no more entries.
The table also has a columnar Status attribute with RowStatus syntax The table also has a columnar Status attribute with RowStatus syntax
[6]. [6].
Generally, if a manager attempts to create a row, using either Generally, if a manager attempts to create a row, using either
createAndGo or createAndWait, the agent will create the row and return createAndGo or createAndWait, the agent will create the row and return
success. If the agent has insufficient resources or such a row already success. If the agent has insufficient resources or such a row already
exists, then it returns an error. A manager must be prepared to try exists, then it returns an error. A manager must be prepared to try
again in such circumstances, probably by re-reading the NextFree to again in such circumstances, probably by re-reading the NextFree to
obtain a new index value in case a second manager had got in between the obtain a new index value in case a second manager had got in between the
skipping to change at page 32, line 15 skipping to change at page 31, line 30
limit on the type of entries its RowPointer attributes can point to, limit on the type of entries its RowPointer attributes can point to,
hence new functional data path elements can be defined in other MIBs and hence new functional data path elements can be defined in other MIBs and
integrated with functional data path elements of this MIB. For example, integrated with functional data path elements of this MIB. For example,
new Action functional data path element can be defined for Traffic new Action functional data path element can be defined for Traffic
Engineering and be integrated with Differentiated Services functional Engineering and be integrated with Differentiated Services functional
data path elements, possibly used within the same data path sharing the data path elements, possibly used within the same data path sharing the
same classifiers and meters. same classifiers and meters.
It is more likely that new parameterization tables will be created in It is more likely that new parameterization tables will be created in
other MIBs as new methods or proprietary methods get deployed for other MIBs as new methods or proprietary methods get deployed for
existing Differentiated Services functional data path elements. For existing Differentiated Services Functional Data Path Elements. For
example, different kinds of filters can be defined by using new filter example, different kinds of filters can be defined by using new filter
parameterization tables. New scheduling methods can be deployed by parameterization tables. New scheduling methods can be deployed by
defining new scheduling method OIDs and new scheduling parameter tables. defining new scheduling method OIDs and new scheduling parameter tables.
Notice both new data path linkage tables and parameterization tables can Notice both new data path linkage tables and parameterization tables can
be added without needing to change this MIB document or affect existing be added without needing to change this MIB document or affect existing
tables and their usage. tables and their usage.
6. MIB Definition 6. MIB Definition
skipping to change at page 34, line 20 skipping to change at page 33, line 20
DscpOrAny ::= TEXTUAL-CONVENTION DscpOrAny ::= TEXTUAL-CONVENTION
DISPLAY-HINT "d" DISPLAY-HINT "d"
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The IP header Differentiated Services Code-Point that may be "The IP header Differentiated Services Code-Point that may be
used for discriminating among traffic streams. The value -1 is used for discriminating among traffic streams. The value -1 is
used to indicate a wild card i.e. any value." used to indicate a wild card i.e. any value."
REFERENCE REFERENCE
"RFC 2474, RFC 2780" "RFC 2474, RFC 2780"
SYNTAX Integer32 (-1 | 0..63) SYNTAX Integer32 (-1 | 0..63)
IndexInteger ::= TEXTUAL-CONVENTION
DISPLAY-HINT "d"
STATUS current
DESCRIPTION
"An integer which may be used as an SNMP Index."
REFERENCE
"RFC 2474, RFC 2780"
SYNTAX INTEGER (1..2147483647)
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
skipping to change at page 38, line 22 skipping to change at page 37, line 22
"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."
::= { diffServDataPathEntry 1 } ::= { diffServDataPathEntry 1 }
diffServDataPathStart OBJECT-TYPE diffServDataPathStart OBJECT-TYPE
SYNTAX RowPointer SYNTAX RowPointer
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This selects the first Differentiated Services Functional Data "This selects the first 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:
diffServClfrElementEntry diffServClfrEntry
diffServMeterEntry diffServMeterEntry
diffServActionEntry diffServActionEntry
diffServAlgDropEntry diffServAlgDropEntry
diffServQEntry diffServQEntry
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.
skipping to change at page 39, line 28 skipping to change at page 38, line 28
--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; --classifier, classifier linkage order indicates their precedence;
--the first classifier in the link is applied to the traffic first. --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 classification pattern, defined in filter table entries.
--Each classifier element table entry also specifies the subsequent --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 --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. --A classifier is composed of one or more classifier elements.
diffServClfrNextFree OBJECT-TYPE diffServClfrNextFree OBJECT-TYPE
SYNTAX INTEGER (1..2147483647) SYNTAX IndexInteger
MAX-ACCESS read-only MAX-ACCESS read-only
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This object yields a value when read that is currently unused "This object yields a value when read that is currently unused
for a diffServClfrId instance. If a configuring system attempts for a diffServClfrId instance. If a configuring system attempts
to create a new row in the diffServClfrTable using this value, to create a new row in the diffServClfrTable using this value,
but an instance has been created or is in the process of being but an instance has been created or is in the process of being
created, that operation will fail." 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
instance of diffServClfrStatus, is frequently used as the name
for a set of classifier elements, which all use the index
diffServClfrId. Per the semantics of the classifier element
table, these entries constitute one or more unordered sets of
tests which may be simultaneously applied to a message to
classify it."
REFERENCE REFERENCE
"[MODEL] section 4.1" "the Informal Differentiated Services Model section 4.1"
::= { 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 Unsigned32, diffServClfrId IndexInteger,
diffServClfrDataPathStart RowPointer,
diffServClfrStatus RowStatus diffServClfrStatus RowStatus
} }
diffServClfrId OBJECT-TYPE diffServClfrId OBJECT-TYPE
SYNTAX Unsigned32 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. The set of such
identifiers spans the whole agent. Managers should obtain new identifiers spans the whole agent. Managers should obtain new
values for row creation in this table by reading values for row creation in this table by reading
diffServClfrNextFree." diffServClfrNextFree."
::= { diffServClfrEntry 1 } ::= { diffServClfrEntry 1 }
diffServClfrDataPathStart OBJECT-TYPE
SYNTAX RowPointer
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"This selects the first Differentiated Services Functional Data
Path element to handle traffic for this classifier. This
RowPointer should point to an instance of a
diffServClfrElementEntry. It is primarily useful in indicating
the first classifier element in a classifier other than the one
pointed to by diffServClfrDataPathStart, although it may be used
for those classifiers as well.
A value of zeroDotZero in this attribute indicates that no
Differentiated Services treatment is performed on traffic of this
data path. A pointer with the value zeroDotZero normally
terminates a functional data path.
If the row pointed to does not exist, the treatment is as if this
attribute contains a value of zeroDotZero."
::= { diffServClfrEntry 2 }
diffServClfrStatus OBJECT-TYPE diffServClfrStatus OBJECT-TYPE
SYNTAX RowStatus SYNTAX RowStatus
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The RowStatus variable controls the activation, deactivation, or "The RowStatus variable controls the activation, deactivation, or
deletion of a classifier. Any writable variable may be modified deletion of a classifier. Any writable variable may be modified
whether the row is active or notInService." whether the row is active or notInService."
::= { diffServClfrEntry 3 } ::= { diffServClfrEntry 2 }
-- Classifier Element Table -- Classifier Element Table
-- --
diffServClfrElementNextFree OBJECT-TYPE diffServClfrElementNextFree OBJECT-TYPE
SYNTAX INTEGER (1..2147483647) SYNTAX IndexInteger
MAX-ACCESS read-only MAX-ACCESS read-only
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This object yields a value when read that is currently unused "This object yields a value when read that is currently unused
for a diffServClfrElementId instance. If a configuring system for a diffServClfrElementId instance. If a configuring system
attempts to create a new row in the diffServClfrElementTable attempts to create a new row in the diffServClfrElementTable
using this value, but an instance has been created or is in the using this value, but an instance has been created or is in the
process of being created, that operation will fail." process of being created, that operation will fail."
::= { diffServClassifier 3 } ::= { diffServClassifier 3 }
skipping to change at page 42, line 32 skipping to change at page 41, line 32
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.
diffServClfrElementSpecific points to a filter that specifies the diffServClfrElementSpecific points to a filter that specifies the
classification parameters. A classifier may use filter tables of classification parameters. A classifier may use filter tables of
different types together. different types together.
One example of a filter table defined in this MIB is One example of a filter table defined in this MIB is
diffServSixTupleClfrTable, for IP Multi-Field Classifiers (MFCs). diffServMultiFieldClfrTable, for IP Multi-Field Classifiers
Such an entry might identify anything from a single micro-flow (MFCs). Such an entry might identify anything from a single
(an identifiable sub-session packet stream directed from one micro-flow (an identifiable sub-session packet stream directed
sending transport to the receiving transport or transports), or from one sending transport to the receiving transport or
aggregates of those such as the traffic from a host, traffic for transports), or aggregates of those such as the traffic from a
an application, or traffic between two hosts using an application host, traffic for an application, or traffic between two hosts
and a given DSCP. The standard Behavior Aggregate used in the using an application and a given DSCP. The standard Behavior
Differentiated Services Architecture is encoded as a degenerate Aggregate used in the Differentiated Services Architecture is
case of such an aggregate - the traffic using a particular DSCP encoded as a degenerate case of such an aggregate - the traffic
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 REFERENCE
"[MODEL] section 4.1" "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 { diffServClfrElementClfrId, diffServClfrElementId }
::= { diffServClfrElementTable 1 } ::= { diffServClfrElementTable 1 }
DiffServClfrElementEntry ::= SEQUENCE { DiffServClfrElementEntry ::= SEQUENCE {
diffServClfrElementClfrId INTEGER, diffServClfrElementClfrId IndexInteger,
diffServClfrElementId INTEGER, diffServClfrElementId IndexInteger,
diffServClfrElementPrecedence Unsigned32, diffServClfrElementPrecedence Unsigned32,
diffServClfrElementNext RowPointer, diffServClfrElementNext RowPointer,
diffServClfrElementSpecific RowPointer, diffServClfrElementSpecific RowPointer,
diffServClfrElementStatus RowStatus diffServClfrElementStatus RowStatus
} }
diffServClfrElementClfrId OBJECT-TYPE diffServClfrElementClfrId OBJECT-TYPE
SYNTAX INTEGER (1..2147483647) 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. The set of such
identifiers spans the whole agent. Managers obtain new values for identifiers spans the whole agent. Managers obtain new values for
row creation in this table by reading diffServClfrNextFree. row creation in this table by reading diffServClfrNextFree.
A classifier Id identifies which classifier this classifier A classifier Id identifies which classifier this classifier
element is a part of." element is a part of."
::= { diffServClfrElementEntry 1 } ::= { diffServClfrElementEntry 1 }
diffServClfrElementId OBJECT-TYPE diffServClfrElementId OBJECT-TYPE
SYNTAX INTEGER (1..2147483647) 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. The set
of such identifiers spans the whole agent. Managers obtain new of such identifiers spans the whole agent. Managers obtain new
values for row creation in this table by reading values for row creation in this table by reading
diffServClfrElementNextFree." diffServClfrElementNextFree."
::= { diffServClfrElementEntry 2 } ::= { diffServClfrElementEntry 2 }
diffServClfrElementPrecedence OBJECT-TYPE diffServClfrElementPrecedence OBJECT-TYPE
skipping to change at page 44, line 23 skipping to change at page 43, line 23
requirement in the egress direction." requirement in the egress direction."
DEFVAL { 0 } DEFVAL { 0 }
::= { diffServClfrElementEntry 3 } ::= { diffServClfrElementEntry 3 }
diffServClfrElementNext OBJECT-TYPE diffServClfrElementNext OBJECT-TYPE
SYNTAX RowPointer SYNTAX RowPointer
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This attribute provides one branch of the fan-out functionality "This attribute provides one branch of the fan-out functionality
of a classifier described in [MODEL] section 4.1. of a classifier described in the Informal Differentiated Services
Model section 4.1.
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:
diffServClfrElementEntry diffServClfrEntry
diffServMeterEntry diffServMeterEntry
diffServActionEntry diffServActionEntry
diffServAlgDropEntry diffServAlgDropEntry
diffServQEntry diffServQEntry
A value of zeroDotZero in this attribute indicates no further A value of zeroDotZero in this attribute indicates no further
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.
skipping to change at page 45, line 4 skipping to change at page 44, line 5
::= { diffServClfrElementEntry 4 } ::= { diffServClfrElementEntry 4 }
diffServClfrElementSpecific OBJECT-TYPE diffServClfrElementSpecific OBJECT-TYPE
SYNTAX RowPointer SYNTAX RowPointer
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"A pointer to a valid entry in another table, filter table, 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 diffServSixTupleClfrTable. 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 } DEFVAL { zeroDotZero }
::= { diffServClfrElementEntry 5 } ::= { diffServClfrElementEntry 5 }
diffServClfrElementStatus OBJECT-TYPE diffServClfrElementStatus OBJECT-TYPE
SYNTAX RowStatus SYNTAX RowStatus
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The RowStatus variable controls the activation, deactivation, or "The RowStatus variable controls the activation, deactivation, or
deletion of a classifier element. Any writ- able variable may be deletion of a classifier element. Any writeable variable may be
modified whether the row is active or notInService." modified whether the row is active or notInService."
::= { diffServClfrElementEntry 6 } ::= { diffServClfrElementEntry 6 }
-- --
-- IP Six-Tuple Classification Table -- IP Six-Tuple Classification Table
-- --
--Classification based on six different fields in the IP header. --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.
-- --
diffServSixTupleClfrNextFree OBJECT-TYPE diffServMultiFieldClfrNextFree OBJECT-TYPE
SYNTAX INTEGER (1..2147483647) SYNTAX IndexInteger
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 yields a value when read that is currently unused for a
diffServSixTupleClfrId instance. If a configuring system attempts to create a diffServMultiFieldClfrId instance. If a configuring system attempts to create a
new row in the diffServSixTupleClfrTable using this value, but an instance has 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." been created or is in the process of being created, that operation will fail."
::= { diffServClassifier 5 } ::= { diffServClassifier 5 }
diffServSixTupleClfrTable OBJECT-TYPE diffServMultiFieldClfrTable OBJECT-TYPE
SYNTAX SEQUENCE OF DiffServSixTupleClfrEntry 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 Six-Tuple Classifier filter entries that a system
may use to identify IP traffic." may use to identify IP traffic."
REFERENCE REFERENCE
"[MODEL] section 4.2.2" "the Informal Differentiated Services Model section 4.2.2"
::= { diffServClassifier 6 } ::= { diffServClassifier 6 }
diffServSixTupleClfrEntry OBJECT-TYPE diffServMultiFieldClfrEntry OBJECT-TYPE
SYNTAX DiffServSixTupleClfrEntry 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 Six-Tuple Classifier entry describes a single filter."
INDEX { diffServSixTupleClfrId } INDEX { diffServMultiFieldClfrId }
::= { diffServSixTupleClfrTable 1 } ::= { diffServMultiFieldClfrTable 1 }
DiffServSixTupleClfrEntry ::= SEQUENCE { DiffServMultiFieldClfrEntry ::= SEQUENCE {
diffServSixTupleClfrId INTEGER, diffServMultiFieldClfrId INTEGER,
diffServSixTupleClfrDstAddrType InetAddressType, diffServMultiFieldClfrAddrType InetAddressType,
diffServSixTupleClfrDstAddr InetAddress, diffServMultiFieldClfrDstAddr InetAddress,
diffServSixTupleClfrDstPrefixLength InetAddressPrefixLength, diffServMultiFieldClfrDstPrefixLength InetAddressPrefixLength,
diffServSixTupleClfrSrcAddrType InetAddressType, diffServMultiFieldClfrSrcAddr InetAddress,
diffServSixTupleClfrSrcAddr InetAddress, diffServMultiFieldClfrSrcPrefixLength InetAddressPrefixLength,
diffServSixTupleClfrSrcPrefixLength InetAddressPrefixLength, diffServMultiFieldClfrDscp DscpOrAny,
diffServSixTupleClfrDscp DscpOrAny, diffServMultiFieldClfrFlowId INTEGER,
diffServSixTupleClfrProtocol Unsigned32, diffServMultiFieldClfrProtocol Unsigned32,
diffServSixTupleClfrDstL4PortMin InetPortNumber, diffServMultiFieldClfrDstL4PortMin InetPortNumber,
diffServSixTupleClfrDstL4PortMax InetPortNumber, diffServMultiFieldClfrDstL4PortMax InetPortNumber,
diffServSixTupleClfrSrcL4PortMin InetPortNumber, diffServMultiFieldClfrSrcL4PortMin InetPortNumber,
diffServSixTupleClfrSrcL4PortMax InetPortNumber, diffServMultiFieldClfrSrcL4PortMax InetPortNumber,
diffServSixTupleClfrStatus RowStatus diffServMultiFieldClfrStatus RowStatus
} }
diffServSixTupleClfrId OBJECT-TYPE diffServMultiFieldClfrId OBJECT-TYPE
SYNTAX INTEGER (1..2147483647) SYNTAX IndexInteger
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"An index that enumerates the Six Tuple Classifier filter "An index that enumerates the MultiField Classifier filter
entries. The set of such identifiers spans the whole agent. entries. The set of such identifiers spans the whole agent.
Managers obtain new values for row creation in this table by Managers obtain new values for row creation in this table by
reading diffServSixTupleClfrNextFree." reading diffServMultiFieldClfrNextFree."
::= { diffServSixTupleClfrEntry 1 } ::= { diffServMultiFieldClfrEntry 1 }
diffServSixTupleClfrDstAddrType 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 destination address used by this classifier "The type of IP address used by this classifier entry."
entry." ::= { diffServMultiFieldClfrEntry 2 }
::= { diffServSixTupleClfrEntry 2 }
diffServSixTupleClfrDstAddr 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. diffServSixTupleClfrDstPrefixLength indicates the number address. diffServMultiFieldClfrDstPrefixLength indicates the
of bits that are relevant." number of bits that are relevant."
::= { diffServSixTupleClfrEntry 3 } ::= { diffServMultiFieldClfrEntry 3 }
diffServSixTupleClfrDstPrefixLength 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
diffServSixTupleClfrDstAddr. In IPv4 addresses, a length of 0 diffServMultiFieldClfrDstAddr. In IPv4 addresses, a length of 0
indicates a match of any address; a length of 32 indicates a indicates a match of any address; a length of 32 indicates a
match of a single host address, and a length between 0 and 32 match of a single host address, and a length between 0 and 32
indicates the use of a CIDR Prefix. IPv6 is similar, except that indicates the use of a CIDR Prefix. IPv6 is similar, except that
prefix lengths range from 0..128." prefix lengths range from 0..128."
DEFVAL { 0 } DEFVAL { 0 }
::= { diffServSixTupleClfrEntry 4 } ::= { diffServMultiFieldClfrEntry 4 }
diffServSixTupleClfrSrcAddrType OBJECT-TYPE
SYNTAX InetAddressType
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The type of IP source address used by this classifier entry."
::= { diffServSixTupleClfrEntry 5 }
diffServSixTupleClfrSrcAddr OBJECT-TYPE 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.
diffServSixTupleClfrSrcPrefixLength indicates the number of bits diffServMultiFieldClfrSrcPrefixLength indicates the number of
that are relevant." bits that are relevant."
::= { diffServSixTupleClfrEntry 6 } ::= { diffServMultiFieldClfrEntry 6 }
diffServSixTupleClfrSrcPrefixLength 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
"The length of the CIDR Prefix carried in "The length of the CIDR Prefix carried in
diffServSixTupleClfrSrcAddr. In IPv4 addresses, a length of 0 diffServMultiFieldClfrSrcAddr. In IPv4 addresses, a length of 0
indicates a match of any address; a length of 32 indicates a indicates a match of any address; a length of 32 indicates a
match of a single host address, and a length between 0 and 32 match of a single host address, and a length between 0 and 32
indicates the use of a CIDR Prefix. IPv6 is similar, except that indicates the use of a CIDR Prefix. IPv6 is similar, except that
prefix lengths range from 0..128." prefix lengths range from 0..128."
DEFVAL { 0 } DEFVAL { 0 }
::= { diffServSixTupleClfrEntry 7 } ::= { diffServMultiFieldClfrEntry 7 }
diffServSixTupleClfrDscp OBJECT-TYPE diffServMultiFieldClfrDscp OBJECT-TYPE
SYNTAX DscpOrAny SYNTAX DscpOrAny
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The value that the DSCP in the packet must have to match this "The value that the DSCP in the packet must have to match this
entry. A value of -1 indicates that a specific DSCP value has not entry. A value of -1 indicates that a specific DSCP value has not
been defined and thus all DSCP values are considered a match." been defined and thus all DSCP values are considered a match."
DEFVAL { -1 } DEFVAL { -1 }
::= { diffServSixTupleClfrEntry 8 } ::= { diffServMultiFieldClfrEntry 8 }
diffServSixTupleClfrProtocol OBJECT-TYPE diffServMultiFieldClfrFlowID OBJECT-TYPE
SYNTAX INTEGER (0..1048575)
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The flow identifier in an IPv6 header."
::= { diffServMultiFieldClfrEntry 5 }
diffServMultiFieldClfrProtocol OBJECT-TYPE
SYNTAX Unsigned32 (0..255) SYNTAX Unsigned32 (0..255)
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The IP protocol to match against the IPv4 protocol number or the "The IP protocol to match against the IPv4 protocol number or the
IPv6 Next- Header number in the packet. A value of 255 means IPv6 Next- Header number in the packet. A value of 255 means
match all. Note the protocol number of 255 is reserved by IANA, match all. Note the protocol number of 255 is reserved by IANA,
and Next-Header number of 0 is used in IPv6." and Next-Header number of 0 is used in IPv6."
DEFVAL { 255 } DEFVAL { 255 }
::= { diffServSixTupleClfrEntry 9 } ::= { diffServMultiFieldClfrEntry 9 }
diffServSixTupleClfrDstL4PortMin OBJECT-TYPE diffServMultiFieldClfrDstL4PortMin OBJECT-TYPE
SYNTAX InetPortNumber SYNTAX InetPortNumber
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The minimum value that the layer-4 destination port number in "The minimum value that the layer-4 destination port number in
the packet must have in order to match this classifier entry." the packet must have in order to match this classifier entry."
DEFVAL { 0 } DEFVAL { 0 }
::= { diffServSixTupleClfrEntry 10 } ::= { diffServMultiFieldClfrEntry 10 }
diffServSixTupleClfrDstL4PortMax OBJECT-TYPE diffServMultiFieldClfrDstL4PortMax 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 destination port number in "The maximum value that the layer-4 destination port number in
the packet must have in order to match this classifier entry. the packet must have in order to match this classifier entry.
This value must be equal to or greater than the value specified This value must be equal to or greater than the value specified
for this entry in diffServSixTupleClfrDstL4PortMin." for this entry in diffServMultiFieldClfrDstL4PortMin."
DEFVAL { 65535 } DEFVAL { 65535 }
::= { diffServSixTupleClfrEntry 11 } ::= { diffServMultiFieldClfrEntry 11 }
diffServSixTupleClfrSrcL4PortMin OBJECT-TYPE diffServMultiFieldClfrSrcL4PortMin OBJECT-TYPE
SYNTAX InetPortNumber SYNTAX InetPortNumber
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The minimum value that the layer-4 source port number in the "The minimum value that the layer-4 source port number in the
packet must have in order to match this classifier entry." packet must have in order to match this classifier entry."
DEFVAL { 0 } DEFVAL { 0 }
::= { diffServSixTupleClfrEntry 12 } ::= { diffServMultiFieldClfrEntry 12 }
diffServSixTupleClfrSrcL4PortMax 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 oder 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 diffServSixTupleClfrSrcL4PortMin." this entry in diffServMultiFieldClfrSrcL4PortMin."
DEFVAL { 65535 } DEFVAL { 65535 }
::= { diffServSixTupleClfrEntry 13 } ::= { diffServMultiFieldClfrEntry 13 }
diffServSixTupleClfrStatus 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."
::= { diffServSixTupleClfrEntry 14 } ::= { diffServMultiFieldClfrEntry 14 }
-- --
-- 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
skipping to change at page 50, line 26 skipping to change at page 49, line 26
-- 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
-- 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 INTEGER (1..2147483647) SYNTAX IndexInteger
MAX-ACCESS read-only MAX-ACCESS read-only
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This object yields a value when read that is currently unused "This object yields a value when read that is currently unused
for a diffServMeterId instance. If a configuring system attempts for a diffServMeterId instance. If a configuring system attempts
to create a new row in the diffServMeterTable using this value, to create a new row in the diffServMeterTable using this value,
but an instance has been created or is in the process of being but an instance has been created or is in the process of being
created, that operation will fail." created, that operation will fail."
::= { diffServMeter 1 } ::= { diffServMeter 1 }
diffServMeterTable OBJECT-TYPE diffServMeterTable OBJECT-TYPE
SYNTAX SEQUENCE OF DiffServMeterEntry SYNTAX SEQUENCE OF DiffServMeterEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This table enumerates specific meters that a system may use to "This table enumerates specific meters that a system may use to
police, or shape, a stream of traffic. The traffic stream to be police a stream of traffic. The traffic stream to be metered is
metered is determined by the Differentiated Services Functional determined by the Differentiated Services Functional Data Path
Data Path element(s) upstream of the meter i.e. by the object(s) Element(s) upstream of the meter i.e. by the object(s) that point
that point to each entry in this table. This may include all to each entry in this table. This may include all traffic on an
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 REFERENCE
"[MODEL] section 5.1" "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 }
skipping to change at page 51, line 42 skipping to change at page 50, line 44
DiffServMeterEntry ::= SEQUENCE { DiffServMeterEntry ::= SEQUENCE {
diffServMeterId INTEGER, diffServMeterId INTEGER,
diffServMeterSucceedNext RowPointer, diffServMeterSucceedNext RowPointer,
diffServMeterFailNext RowPointer, diffServMeterFailNext RowPointer,
diffServMeterSpecific RowPointer, diffServMeterSpecific RowPointer,
diffServMeterStatus RowStatus diffServMeterStatus RowStatus
} }
diffServMeterId OBJECT-TYPE diffServMeterId OBJECT-TYPE
SYNTAX INTEGER (1..2147483647) 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. The set of such
identifiers spans the whole agent. Managers obtain new values for identifiers spans the whole agent. Managers obtain new values for
row creation in this table by reading diffServMeterNextFree." row creation in this table by reading 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
instance of one of: instance of one of:
diffServClfrElementEntry diffServClfrEntry
diffServMeterEntry diffServMeterEntry
diffServActionEntry diffServActionEntry
diffServAlgDropEntry diffServAlgDropEntry
diffServQEntry diffServQEntry
A value of zeroDotZero in this attribute indicates that no A value of zeroDotZero in this attribute indicates that no
further Differentiated Services treatment is performed on traffic further Differentiated Services treatment is performed on traffic
of this data path. The use of zeroDotZero is the normal usage for of this data path. The use of zeroDotZero is the normal usage for
the last functional data path element of the current data path. the last functional data path element of the current data path.
skipping to change at page 52, line 37 skipping to change at page 51, line 40
diffServMeterFailNext OBJECT-TYPE diffServMeterFailNext OBJECT-TYPE
SYNTAX RowPointer SYNTAX RowPointer
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"If the traffic does not conform, this selects the next "If the traffic does not 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
instance of one of: instance of one of:
diffServClfrElementEntry diffServClfrEntry
diffServMeterEntry diffServMeterEntry
diffServActionEntry diffServActionEntry
diffServAlgDropEntry diffServAlgDropEntry
diffServQEntry diffServQEntry
A value of zeroDotZero in this attribute indicates no further A value of zeroDotZero in this attribute indicates no further
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.
skipping to change at page 53, line 41 skipping to change at page 52, line 45
-- 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.
-- --
diffServTBParamNextFree OBJECT-TYPE diffServTBParamNextFree OBJECT-TYPE
SYNTAX INTEGER (1..2147483647) SYNTAX IndexInteger
MAX-ACCESS read-only MAX-ACCESS read-only
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This object yields a value when read that is currently unused "This object yields a value when read that is currently unused
for a diffServTBParamId instance. If a configuring system for a diffServTBParamId instance. If a configuring system
attempts to create a new row in the diffServTBParamTable using attempts to create a new row in the diffServTBParamTable using
this value, but an instance has been created or is in the process this value, but an instance has been created or is in the process
of being created, that operation will fail." 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 or shape a stream of parameters that a system may use to police a stream of traffic.
traffic. Such meters are modeled here as having a single rate and Such meters are modeled here as having a single rate and a single
a single burst size. Multiple entries are used when multiple burst size. Multiple entries are used when multiple rates/burst
rates/burst sizes are needed." sizes are needed."
REFERENCE REFERENCE
"[MODEL] section 5.1" "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 }
skipping to change at page 54, line 43 skipping to change at page 53, line 46
DiffServTBParamEntry ::= SEQUENCE { DiffServTBParamEntry ::= SEQUENCE {
diffServTBParamId INTEGER, diffServTBParamId INTEGER,
diffServTBParamType OBJECT IDENTIFIER, diffServTBParamType OBJECT IDENTIFIER,
diffServTBParamRate Unsigned32, diffServTBParamRate Unsigned32,
diffServTBParamBurstSize BurstSize, diffServTBParamBurstSize BurstSize,
diffServTBParamInterval Unsigned32, diffServTBParamInterval Unsigned32,
diffServTBParamStatus RowStatus diffServTBParamStatus RowStatus
} }
diffServTBParamId OBJECT-TYPE diffServTBParamId OBJECT-TYPE
SYNTAX INTEGER (1..2147483647) 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. The
set of such identifiers spans the whole agent. Managers obtain set of such identifiers spans the whole agent. Managers obtain
new values for row creation in this table by reading new values for row creation in this table by reading
diffServTBParamNextFree." diffServTBParamNextFree."
::= { diffServTBParamEntry 1 } ::= { diffServTBParamEntry 1 }
diffServTBParamType OBJECT-TYPE diffServTBParamType OBJECT-TYPE
SYNTAX OBJECT IDENTIFIER SYNTAX OBJECT IDENTIFIER
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The Metering/Shaping algorithm associated with the Token Bucket "The Metering algorithm associated with the Token Bucket
parameters. parameters. zeroDotZero indicates this is unknown.
zeroDotZero indicates this is unknown.
Standard values for generic algorithms: Standard values for generic algorithms:
diffServTBParamSimpleTokenBucket, diffServTBParamAvgRate, diffServTBParamSimpleTokenBucket, diffServTBParamAvgRate,
diffServTBParamSrTCMBlind, diffServTBParamSrTCMAware, diffServTBParamSrTCMBlind, diffServTBParamSrTCMAware,
diffServTBParamTrTCMBlind, diffServTBParamTrTCMAware, 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 REFERENCE
"[MODEL] section 5" "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. PIR and CIR 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 [MODEL] section 5." 4. AverageRate used in the Informal Differentiated Services Model section 5."
::= { diffServTBParamEntry 3 } ::= { diffServTBParamEntry 3 }
diffServTBParamBurstSize OBJECT-TYPE diffServTBParamBurstSize OBJECT-TYPE
SYNTAX BurstSize SYNTAX BurstSize
UNITS "Bytes" UNITS "Bytes"
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The maximum number of bytes in a single transmission burst. 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 [MODEL] section 5." 3. Burst Size used in the Informal Differentiated Services Model section 5."
::= { diffServTBParamEntry 4 } ::= { diffServTBParamEntry 4 }
diffServTBParamInterval OBJECT-TYPE diffServTBParamInterval OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX Unsigned32
UNITS "microseconds" UNITS "microseconds"
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The time interval used with the token bucket. For: "The time interval used with the token bucket. For:
1. Average Rate Meter, [MODEL] section 5.2.1, - Delta. 1. Average Rate Meter, the Informal Differentiated Services Model section 5.2.1, - Delta.
2. Simple Token Bucket Meter, [MODEL] section 5.1, 2. Simple Token Bucket Meter, the Informal Differentiated Services Model section 5.1,
- time interval t. - 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 interval." update time interval."
::= { diffServTBParamEntry 5 } ::= { diffServTBParamEntry 5 }
diffServTBParamStatus OBJECT-TYPE diffServTBParamStatus OBJECT-TYPE
SYNTAX RowStatus SYNTAX RowStatus
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The RowStatus variable controls the activation, deactivation, or "The RowStatus variable controls the activation, deactivation, or
deletion of a meter. Any writable variable may be modified deletion of a meter. Any writable variable may be modified
whether the row is active or notInService." whether the row is active or notInService."
::= { diffServTBParamEntry 6 } ::= { diffServTBParamEntry 6 }
diffServTBParamSimpleTokenBucket OBJECT-IDENTITY diffServTBParamSimpleTokenBucket OBJECT-IDENTITY
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The value tokenBucket(2) indicates the use of Two Parameter "Two Parameter Token Bucket Meter as described in the Informal
Token Bucket Meter as described in [MODEL] section 5.2.3." Differentiated Services Model section 5.2.3."
REFERENCE REFERENCE
"[MODEL] sections 5 and 7.1.2" "the Informal Differentiated Services Model sections 5 and 7.1.2"
::= { diffServTBParam 3 } ::= { diffServTBParam 3 }
diffServTBParamAvgRate OBJECT-IDENTITY diffServTBParamAvgRate OBJECT-IDENTITY
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The value avgRate(3) indicates the use of Average Rate Meter as "Average Rate Meter as described in the Informal Differentiated
described in [MODEL] section 5.2.1." Services Model section 5.2.1."
REFERENCE REFERENCE
"[MODEL] sections 5 and 7.1.2" "the Informal Differentiated Services Model sections 5 and 7.1.2"
::= { diffServTBParam 4 } ::= { diffServTBParam 4 }
diffServTBParamSrTCMBlind OBJECT-IDENTITY diffServTBParamSrTCMBlind OBJECT-IDENTITY
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The values srTCMBlind(4) and srTCMAware(5) indicate the use of "Single Rate Three Color Marker Metering as defined by RFC 2697,
Single Rate Three Color Marker Metering as defined by RFC 2697, in the `Color Blind' mode as described by the RFC."
in either the `Color Blind' and `Color Aware' mode as described
by the RFC."
REFERENCE REFERENCE
"[MODEL] sections 5 and 7.1.2" "RFC 2697"
::= { diffServTBParam 5 } ::= { diffServTBParam 5 }
diffServTBParamSrTCMAware OBJECT-IDENTITY diffServTBParamSrTCMAware OBJECT-IDENTITY
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The values srTCMBlind(4) and srTCMAware(5) indicate the use of "Single Rate Three Color Marker Metering as defined by RFC 2697,
Single Rate Three Color Marker Metering as defined by RFC 2697, in the `Color Aware' mode as described by the RFC."
in either the `Color Blind' and `Color Aware' mode as described
by the RFC."
REFERENCE REFERENCE
"[MODEL] sections 5 and 7.1.2" "RFC 2697"
::= { diffServTBParam 6 } ::= { diffServTBParam 6 }
diffServTBParamTrTCMBlind OBJECT-IDENTITY diffServTBParamTrTCMBlind OBJECT-IDENTITY
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The values trTCMBlind(6) and trTCMAware(7) indicate the use of "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."
either the `Color Blind' and `Color Aware' mode as described by
the RFC."
REFERENCE REFERENCE
"[MODEL] sections 5 and 7.1.2" "RFC 2698"
::= { diffServTBParam 7 } ::= { diffServTBParam 7 }
diffServTBParamTrTCMAware OBJECT-IDENTITY diffServTBParamTrTCMAware OBJECT-IDENTITY
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"Value of trTCMBlind(6) and trTCMAware(7) indicates the use of "Two Rate Three Color Marker Metering as defined by RFC 2698, in
Two Rate Three Color Marker Metering as defined by RFC 2698, with the `Color Aware' mode as described by the RFC."
`Color Blind' and `Color Aware' mode as described by the RFC."
REFERENCE REFERENCE
"[MODEL] sections 5 and 7.1.2" "RFC 2698"
::= { diffServTBParam 8 } ::= { diffServTBParam 8 }
diffServTBParamTswTCM OBJECT-IDENTITY diffServTBParamTswTCM OBJECT-IDENTITY
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The value tswTCM(8) indicates the use of Time Sliding Window "Time Sliding Window Three Color Marker Metering as defined by
Three Color Marker Metering as defined by RFC 2859." RFC 2859."
REFERENCE REFERENCE
"[MODEL] sections 5 and 7.1.2" "RFC 2859"
::= { diffServTBParam 9 } ::= { diffServTBParam 9 }
-- --
-- Actions -- Actions
-- --
diffServAction OBJECT IDENTIFIER ::= { diffServMIBObjects 5 } diffServAction OBJECT IDENTIFIER ::= { diffServMIBObjects 5 }
-- --
-- The Action Table allows enumeration of the different -- The Action Table allows enumeration of the different
-- types of actions to be applied to a traffic flow. -- types of actions to be applied to a traffic flow.
-- --
diffServActionNextFree OBJECT-TYPE diffServActionNextFree OBJECT-TYPE
SYNTAX INTEGER (1..2147483647) SYNTAX IndexInteger
MAX-ACCESS read-only MAX-ACCESS read-only
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This object yields a value when read that is currently unused "This object yields a value when read that is currently unused
for a diffServActionId instance. If a configuring system attempts for a diffServActionId instance. If a configuring system attempts
to create a new row in the diffServActionTable using this value, to create a new row in the diffServActionTable using this value,
but an instance has been created or is in the process of being but an instance has been created or is in the process of being
created, that operation will fail." created, that operation will fail."
::= { diffServAction 1 } ::= { diffServAction 1 }
skipping to change at page 59, line 42 skipping to change at page 57, line 42
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 REFERENCE
"[MODEL] section 6." "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 INTEGER, diffServActionId INTEGER,
diffServActionNext RowPointer, diffServActionNext RowPointer,
diffServActionSpecific RowPointer, diffServActionSpecific RowPointer,
diffServActionStatus RowStatus diffServActionStatus RowStatus
} }
diffServActionId OBJECT-TYPE diffServActionId OBJECT-TYPE
SYNTAX INTEGER (1..2147483647) 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. The set of such
identifiers spans the whole agent. Managers obtain new values for identifiers spans the whole agent. Managers obtain new values for
row creation in this table by reading diffServActionNextFree." row creation in this table by reading diffServActionNextFree."
::= { diffServActionEntry 1 } ::= { diffServActionEntry 1 }
diffServActionNext OBJECT-TYPE diffServActionNext OBJECT-TYPE
SYNTAX RowPointer SYNTAX RowPointer
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This selects the next 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:
diffServClfrElementEntry diffServClfrEntry
diffServMeterEntry diffServMeterEntry
diffServActionEntry diffServActionEntry
diffServAlgDropEntry
diffServQEntry diffServQEntry
A value of zeroDotZero in this attribute indicates no further A value of zeroDotZero in this attribute indicates no further
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 }
skipping to change at page 61, line 42 skipping to change at page 59, line 43
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 REFERENCE
"[MODEL] section 6.1" "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 62, line 40 skipping to change at page 60, line 41
-- --
-- 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 -- diffServActionEntry be used to describe multiple actions for a
-- data path, the counter became an optional action type. In normal -- data path, the counter became an optional action type. In normal
-- implementation, either a data path has counters or it does not, -- implementation, either a data path has counters or it does not,
-- as opposed to being configurable. The management entity may choose -- as opposed to being configurable. The management entity may choose
-- to read the counter or not. Hence it is recommended for implementation -- 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.
-- --
diffServCountActNextFree OBJECT-TYPE diffServCountActNextFree OBJECT-TYPE
SYNTAX INTEGER (1..2147483647) SYNTAX IndexInteger
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 yields a value when read that is currently unused for a
diffServCountActId instance. If a configuring system attempts to create a new diffServCountActId instance. If a configuring system attempts to create a new
row in the diffServCountActTable using this value, but an instance has been 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." 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 REFERENCE
"[MODEL] section 6.4" "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 }
skipping to change at page 63, line 39 skipping to change at page 61, line 40
diffServCountActId INTEGER, diffServCountActId INTEGER,
diffServCountActOctets Counter32, diffServCountActOctets Counter32,
diffServCountActHCOctets Counter64, diffServCountActHCOctets Counter64,
diffServCountActPkts Counter32, diffServCountActPkts Counter32,
diffServCountActHCPkts Counter64, diffServCountActHCPkts Counter64,
diffServCountActDiscontTime TimeStamp, diffServCountActDiscontTime TimeStamp,
diffServCountActStatus RowStatus diffServCountActStatus RowStatus
} }
diffServCountActId OBJECT-TYPE diffServCountActId OBJECT-TYPE
SYNTAX INTEGER (1..2147483647) 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. The set of
such identifiers spans the whole agent. Managers obtain new such identifiers spans the whole agent. Managers 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
skipping to change at page 66, line 12 skipping to change at page 64, line 12
whether the row is active or notInService." whether the row is active or notInService."
::= { diffServCountActEntry 7 } ::= { diffServCountActEntry 7 }
-- --
-- Algorithmic Drop Table -- Algorithmic Drop Table
-- --
diffServAlgDrop OBJECT IDENTIFIER ::= { diffServMIBObjects 6 } diffServAlgDrop OBJECT IDENTIFIER ::= { diffServMIBObjects 6 }
diffServAlgDropNextFree OBJECT-TYPE diffServAlgDropNextFree OBJECT-TYPE
SYNTAX INTEGER (1..2147483647) SYNTAX IndexInteger
MAX-ACCESS read-only MAX-ACCESS read-only
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This object yields a value when read that is currently unused "This object yields a value when read that is currently unused
for a diffServAlgDropId instance. If a configuring system for a diffServAlgDropId instance. If a configuring system
attempts to create a new row in the diffServAlgDropTable using attempts to create a new row in the diffServAlgDropTable using
this value, but an instance has been created or is in the process this value, but an instance has been created or is in the process
of being created, that operation will fail." 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 REFERENCE
"[MODEL] section 7.1.3" "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 67, line 9 skipping to change at page 65, line 9
diffServAlgDropId INTEGER, diffServAlgDropId INTEGER,
diffServAlgDropType INTEGER, diffServAlgDropType INTEGER,
diffServAlgDropNext RowPointer, diffServAlgDropNext RowPointer,
diffServAlgDropQMeasure RowPointer, diffServAlgDropQMeasure RowPointer,
diffServAlgDropQThreshold Unsigned32, diffServAlgDropQThreshold Unsigned32,
diffServAlgDropSpecific RowPointer, diffServAlgDropSpecific RowPointer,
diffServAlgDropOctets Counter32, diffServAlgDropOctets Counter32,
diffServAlgDropHCOctets Counter64, diffServAlgDropHCOctets Counter64,
diffServAlgDropPkts Counter32, diffServAlgDropPkts Counter32,
diffServAlgDropHCPkts Counter64, diffServAlgDropHCPkts Counter64,
diffServAlgRandomDropOctets Counter32,
diffServAlgRandomDropHCOctets Counter64,
diffServAlgRandomDropPkts Counter32,
diffServAlgRandomDropHCPkts Counter64,
diffServAlgDropDiscontinuityTime TimeStamp, diffServAlgDropDiscontinuityTime TimeStamp,
diffServAlgDropStatus RowStatus diffServAlgDropStatus RowStatus
} }
diffServAlgDropId OBJECT-TYPE diffServAlgDropId OBJECT-TYPE
SYNTAX INTEGER (1..2147483647) 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. The
set of such identifiers spans the whole agent. Managers obtain set of such identifiers spans the whole agent. Managers obtain
new values for row creation in this table by reading new values for row creation in this table by reading
diffServAlgDropNextFree." diffServAlgDropNextFree."
::= { diffServAlgDropEntry 1 } ::= { diffServAlgDropEntry 1 }
diffServAlgDropType OBJECT-TYPE diffServAlgDropType OBJECT-TYPE
skipping to change at page 68, line 8 skipping to change at page 66, line 12
diffServAlgDropQMeasure, is at diffServAlgDropQThreshold, packets diffServAlgDropQMeasure, is at diffServAlgDropQThreshold, packets
currently at the head of the queue are dropped to make room for currently at the head of the queue are dropped to make room for
the new packet to be enqueued at the tail of the queue. the new packet to be enqueued at the tail of the queue.
In the randomDrop(4) algorithm, on packet arrival, an Active In the randomDrop(4) algorithm, on packet arrival, an Active
Queue Management algorithm is executed which may randomly drop a Queue Management algorithm is executed which may randomly drop a
packet. This algorithm may be proprietary, and it may drop either packet. This algorithm may be proprietary, and it may drop either
the arriving packet or another packet in the queue. the arriving packet or another packet in the queue.
diffServAlgDropSpecific points to a diffServRandomDropEntry that diffServAlgDropSpecific points to a diffServRandomDropEntry that
describes the algorithm. For this algorithm, describes the algorithm. For this algorithm,
diffServAlgQThreshold is understood to be the absolute maximum diffServAlgDropQThreshold is understood to be the absolute
size of the queue and additional parameters are described in maximum size of the queue and additional parameters are described
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 the queue are not useful. are not meaningful; There is no useful 'next' processing step,
Therefore, diffServAlgQNext, diffServAlgQMeasure, and there is no queue, and parameters describing the queue are not
diffServAlgQSpecific are all zeroDotZero." useful. Therefore, diffServAlgDropQNext, diffServAlgDropQMeasure,
and diffServAlgDropQSpecific 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:
diffServClfrElementEntry diffServClfrEntry
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
skipping to change at page 69, line 35 skipping to change at page 67, line 40
"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
algorithm and the specific parameters for the drop algorithm
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 dropped by this drop "The number of octets that have been deterministically dropped by
process. On high-speed devices, this object implements the least this drop process. On high-speed devices, this object implements
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 diffServAlgDropDiscontinuityTime for
this Entry." this Entry."
::= { diffServAlgDropEntry 7 } ::= { diffServAlgDropEntry 7 }
diffServAlgDropHCOctets OBJECT-TYPE diffServAlgDropHCOctets OBJECT-TYPE
SYNTAX Counter64 SYNTAX Counter64
MAX-ACCESS read-only MAX-ACCESS read-only
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The number of octets that have been dropped by this drop "The number of octets that have been deterministically dropped by
process. This object should be used on high-speed interfaces. this drop process. This object should be used on high-speed
interfaces.
Discontinuities in the value of this counter can occur at re- Discontinuities in the value of this counter can occur at re-
initialization of the management system and at other times as initialization of the management system and at other times as
indicated by the value of diffServAlgDropDiscontinuityTime for indicated by the value of diffServAlgDropDiscontinuityTime for
this Entry." this Entry."
::= { diffServAlgDropEntry 8 } ::= { diffServAlgDropEntry 8 }
diffServAlgDropPkts OBJECT-TYPE diffServAlgDropPkts OBJECT-TYPE
SYNTAX Counter32 SYNTAX Counter32
MAX-ACCESS read-only MAX-ACCESS read-only
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The number of packets that have been dropped by this drop "The number of packets that have been deterministically dropped
process. On high- speed devices, this object implements the least by this drop process. On high-speed devices, this object
significant 32 bits of diffServAlgDropHCPkts. implements the least significant 32 bits of
diffServAlgDropHCPkts.
Discontinuities in the value of this counter can occur at re- Discontinuities in the value of this counter can occur at re-
initialization of the management system and at other times as initialization of the management system and at other times as
indicated by the value of diffServAlgDropDiscontinuityTime for indicated by the value of diffServAlgDropDiscontinuityTime for
this Entry." this Entry."
::= { diffServAlgDropEntry 9 } ::= { diffServAlgDropEntry 9 }
diffServAlgDropHCPkts OBJECT-TYPE diffServAlgDropHCPkts OBJECT-TYPE
SYNTAX Counter64 SYNTAX Counter64
MAX-ACCESS read-only MAX-ACCESS read-only
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The number of packets that have been dropped by this drop "The number of packets that have been deterministically dropped
process. This object should be used on high-speed interfaces. by this drop process. This object should be used on high-speed
interfaces.
Discontinuities in the value of this counter can occur at re- Discontinuities in the value of this counter can occur at re-
initialization of the management system and at other times as initialization of the management system and at other times as
indicated by the value of diffServAlgDropDiscontinuityTime for indicated by the value of diffServAlgDropDiscontinuityTime for
this Entry." this Entry."
::= { diffServAlgDropEntry 10 } ::= { diffServAlgDropEntry 10 }
diffServAlgRandomDropOctets OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of octets that have been randomly dropped by this
drop process. This counter applies, therefore, only to random
droppers. On high-speed devices, this object implements the
least significant 32 bits of diffServAlgRandomDropHCOctets.
Discontinuities in the value of this counter can occur at re-
initialization of the management system and at other times as
indicated by the value of diffServAlgDropDiscontinuityTime for
this Entry."
::= { diffServAlgDropEntry 11 }
diffServAlgRandomDropHCOctets OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of octets that have been randomly dropped by this
drop process. This counter applies, therefore, only to random
droppers. This object should be used on high-speed interfaces.
Discontinuities in the value of this counter can occur at re-
initialization of the management system and at other times as
indicated by the value of diffServAlgDropDiscontinuityTime for
this Entry."
::= { diffServAlgDropEntry 12 }
diffServAlgRandomDropPkts OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of packets that have been randomly dropped by this
drop process. This counter applies, therefore, only to random
droppers. On high-speed devices, this object implements the
least significant 32 bits of diffServAlgRandomDropHCPkts.
Discontinuities in the value of this counter can occur at re-
initialization of the management system and at other times as
indicated by the value of diffServAlgDropDiscontinuityTime for
this Entry."
::= { diffServAlgDropEntry 13 }
diffServAlgRandomDropHCPkts OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of packets that have been randomly dropped by this
drop process. This counter applies, therefore, only to random
droppers. This object should be used on high-speed interfaces.
Discontinuities in the value of this counter can occur at re-
initialization of the management system and at other times as
indicated by the value of diffServAlgDropDiscontinuityTime for
this Entry."
::= { diffServAlgDropEntry 14 }
diffServAlgDropDiscontinuityTime OBJECT-TYPE diffServAlgDropDiscontinuityTime OBJECT-TYPE
SYNTAX TimeStamp SYNTAX TimeStamp
MAX-ACCESS read-only MAX-ACCESS read-only
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The value of sysUpTime on the most recent occasion at which any "The value of sysUpTime on the most recent occasion at which any
one or more of this entry's counters suffered a discontinuity. If one or more of this entry's counters suffered a discontinuity. If
no such discontinuities have occurred since the last re- no such discontinuities have occurred since the last re-
initialization of the local management subsystem, then this initialization of the local management subsystem, then this
object contains a zero value." object contains a zero value."
::= { diffServAlgDropEntry 11 } ::= { 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 12 } ::= { diffServAlgDropEntry 16 }
-- --
-- Random Drop Table -- Random Drop Table
-- --
diffServRandomDropNextFree OBJECT-TYPE diffServRandomDropNextFree OBJECT-TYPE
SYNTAX INTEGER (1..2147483647) SYNTAX IndexInteger
MAX-ACCESS read-only MAX-ACCESS read-only
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This object yields a value when read that is currently unused "This object yields a value when read that is currently unused
for a diffServRandomDropId instance. If a configuring system for a diffServRandomDropId instance. If a configuring system
attempts to create a new row in the diffServRandomDropTable using attempts to create a new row in the diffServRandomDropTable using
this value, but an instance has been created or is in the process this value, but an instance has been created or is in the process
of being created, that operation will fail." 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 REFERENCE
"[MODEL] section 7.1.3" "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 }
skipping to change at page 72, line 26 skipping to change at page 72, line 8
diffServRandomDropMinThreshPkts Unsigned32, diffServRandomDropMinThreshPkts Unsigned32,
diffServRandomDropMaxThreshBytes Unsigned32, diffServRandomDropMaxThreshBytes Unsigned32,
diffServRandomDropMaxThreshPkts Unsigned32, diffServRandomDropMaxThreshPkts Unsigned32,
diffServRandomDropProbMax INTEGER, diffServRandomDropProbMax INTEGER,
diffServRandomDropWeight INTEGER, diffServRandomDropWeight INTEGER,
diffServRandomDropSamplingRate INTEGER, diffServRandomDropSamplingRate INTEGER,
diffServRandomDropStatus RowStatus diffServRandomDropStatus RowStatus
} }
diffServRandomDropId OBJECT-TYPE diffServRandomDropId OBJECT-TYPE
SYNTAX INTEGER (1..2147483647) 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. The set of
such identifiers spans the whole agent. Managers obtain new such identifiers spans the whole agent. Managers 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
skipping to change at page 74, line 15 skipping to change at page 73, line 43
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 INTEGER (0..65536)
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The weighting of past history in affecting the Exponentially "The weighting of past history in affecting the Exponentially
Weighted Moving Average function which 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
skipping to change at page 75, line 13 skipping to change at page 75, line 13
::= { diffServRandomDropEntry 9 } ::= { diffServRandomDropEntry 9 }
-- --
-- Queue Table -- Queue Table
-- --
diffServQueue OBJECT IDENTIFIER ::= { diffServMIBObjects 7 } diffServQueue OBJECT IDENTIFIER ::= { diffServMIBObjects 7 }
-- --
-- An entry of diffServQTable represents a FIFO queue Differentiated -- 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 -- 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 -- 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: -- hierarchical queuing/scheduling. A queue therefore has these attributes:
-- 1. Which scheduler will service this queue, diffServQNext. -- 1. Which scheduler will service this queue, diffServQNext.
-- 2. How the scheduler will service this queue, with respect -- 2. How the scheduler will service this queue, with respect
-- to all the other queues the same scheduler needs to service, -- to all the other queues the same scheduler needs to service,
-- diffServQRate. -- diffServQRate.
-- --
-- Note that upstream Differentiated Services Functional Data Path -- 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.
-- --
diffServQNextFree OBJECT-TYPE diffServQNextFree OBJECT-TYPE
SYNTAX INTEGER (1..2147483647) SYNTAX IndexInteger
MAX-ACCESS read-only MAX-ACCESS read-only
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This object yields a value when read that is currently unused "This object yields a value when read that is currently unused
for a diffServQId instance. If a configuring system attempts to for a diffServQId instance. If a configuring system attempts to
create a new row in the diffServQTable using this value, but an create a new row in the diffServQTable using this value, but an
instance has been created or is in the process of being created, instance has been created or is in the process of being created,
that operation will fail." that operation will fail."
::= { diffServQueue 1 } ::= { diffServQueue 1 }
diffServQTable OBJECT-TYPE diffServQTable OBJECT-TYPE
SYNTAX SEQUENCE OF DiffServQEntry SYNTAX SEQUENCE OF DiffServQEntry
MAX-ACCESS not-accessible MAX-ACCESS not-accessible
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The Queue Table enumerates the individual queues." "The Queue Table enumerates the individual queues."
REFERENCE REFERENCE
"[MODEL] section 7.1.1" "the Informal Differentiated Services Model section 7.1.1"
::= { 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. With each
entry belonging to one and only one data path." entry belonging to one and only one data path."
INDEX { diffServQId } INDEX { diffServQId }
skipping to change at page 76, line 21 skipping to change at page 76, line 21
DiffServQEntry ::= SEQUENCE { DiffServQEntry ::= SEQUENCE {
diffServQId INTEGER, diffServQId INTEGER,
diffServQNext RowPointer, diffServQNext RowPointer,
diffServQRate RowPointer, diffServQRate RowPointer,
diffServQShaper RowPointer, diffServQShaper RowPointer,
diffServQStatus RowStatus diffServQStatus RowStatus
} }
diffServQId OBJECT-TYPE diffServQId OBJECT-TYPE
SYNTAX INTEGER (1..2147483647) 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. The set of such
identifiers spans the whole agent. Managers obtain new values for identifiers spans the whole agent. Managers obtain new values for
row creation in this table by reading diffServQNextFree." row creation in this table by reading 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 Functional Data
Path element to handle traffic for this data path. This 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 }
skipping to change at page 78, line 12 skipping to change at page 78, line 12
-- 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 diffServSchedulerShaper attribute specifies the parameters -- The diffServSchedulerShaper attribute specifies the parameters
-- when a scheduler's output is sent to another scheduler. This is -- when a scheduler's output is sent to another scheduler. This is
-- used in building hierarchical queues or schedulers. -- used in building hierarchical queues or schedulers.
-- --
-- More discussion of the scheduler functional data path element is -- 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 INTEGER (1..2147483647) SYNTAX IndexInteger
MAX-ACCESS read-only MAX-ACCESS read-only
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This object yields a value when read that is currently unused "This object yields a value when read that is currently unused
for a diffServSchedulerId instance. If a configuring system for a diffServSchedulerId instance. If a configuring system
attempts to create a new row in the diffServSchedulerTable using attempts to create a new row in the diffServSchedulerTable using
this value, but an instance has been created or is in the process this value, but an instance has been created or is in the process
of being created, that operation will fail." 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 REFERENCE
"[MODEL] section 7.1.2" "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 }
skipping to change at page 79, line 11 skipping to change at page 79, line 11
DiffServSchedulerEntry ::= SEQUENCE { DiffServSchedulerEntry ::= SEQUENCE {
diffServSchedulerId INTEGER, diffServSchedulerId INTEGER,
diffServSchedulerNext RowPointer, diffServSchedulerNext RowPointer,
diffServSchedulerMethod OBJECT IDENTIFIER, diffServSchedulerMethod OBJECT IDENTIFIER,
diffServSchedulerRate RowPointer, diffServSchedulerRate RowPointer,
diffServSchedulerShaper RowPointer, diffServSchedulerShaper RowPointer,
diffServSchedulerStatus RowStatus diffServSchedulerStatus RowStatus
} }
diffServSchedulerId OBJECT-TYPE diffServSchedulerId OBJECT-TYPE
SYNTAX INTEGER (1..2147483647) 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. The set of such
identifiers spans the whole agent. Managers obtain new values for identifiers spans the whole agent. Managers obtain new values for
row creation in this table by reading diffServSchedulerNextFree." row creation in this table by reading 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
RowPointer should point to an instance of one of: RowPointer should point to an instance of one of:
diffServSchedulerEntry diffServSchedulerEntry
diffServQEntry as indicated by [MODEL] section 7.1.4. diffServQEntry as indicated by 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:.
diffServClfrElementEntry diffServClfrEntry
diffServMeterEntry diffServMeterEntry
diffServActionEntry diffServActionEntry
diffServAlgDropEntry to extend the same data path. diffServAlgDropEntry to extend the same data path.
This should point to another diffServSchedulerEntry for This should point to another diffServSchedulerEntry for
implementation of multiple scheduler methods for the same data implementation of multiple scheduler methods for the same data
path, and for implementation of hierarchical schedulers. path, and for implementation of hierarchical schedulers.
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
skipping to change at page 80, line 12 skipping to change at page 80, line 13
SYNTAX OBJECT IDENTIFIER SYNTAX OBJECT IDENTIFIER
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The scheduling algorithm used by this Scheduler. 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 REFERENCE
"[MODEL] section 7.1.2" "the Informal Differentiated Services Model section 7.1.2"
::= { diffServSchedulerEntry 3 } ::= { diffServSchedulerEntry 3 }
diffServSchedulerRate OBJECT-TYPE diffServSchedulerRate OBJECT-TYPE
SYNTAX RowPointer SYNTAX RowPointer
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This RowPointer indicates the entry in diffServAssuredRateTable "This RowPointer indicates the entry in diffServAssuredRateTable
which indicates the priority or minimum output rate from this which indicates the priority or minimum output rate from this
scheduler. This attribute is used only when there is more than scheduler. This attribute is used only when there is more than
skipping to change at page 81, line 8 skipping to change at page 81, line 8
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The RowStatus variable controls the activation, deactivation, or "The RowStatus variable controls the activation, deactivation, or
deletion of a scheduler. Any writable variable may be modified deletion of a scheduler. Any writable variable may be modified
whether the row is active or notInService." whether the row is active or notInService."
::= { diffServSchedulerEntry 6 } ::= { diffServSchedulerEntry 6 }
diffServSchedulerPriority OBJECT-IDENTITY diffServSchedulerPriority OBJECT-IDENTITY
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"When the next scheduler uses Priority scheduling, defined as an " For use with diffServSchedulerMethod to indicate the Priority
algorithm in which the presence of data in a queue or set of scheduling method. This is defined as an algorithm in which the
queues absolutely precludes dequeue from another queue or set of presence of data in a queue or set of queues absolutely precludes
queues, this indicates the relative priority of the traffic dequeue from another queue or set of queues of lower priority.
stream. Note that attributes from diffServAssuredRateEntry of the Note that attributes from diffServAssuredRateEntry 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 REFERENCE
"[MODEL] section 7.1.2" "the Informal Differentiated Services Model section 7.1.2"
::= { diffServScheduler 3 } ::= { diffServScheduler 3 }
diffServSchedulerWRR OBJECT-IDENTITY diffServSchedulerWRR OBJECT-IDENTITY
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"For use with diffServSchedulerMethod to indicate Weighted Round "For use with diffServSchedulerMethod to indicate the Weighted
Robin scheduling method, defined as any algorithm in which a set Round Robin scheduling method, defined as any algorithm in which
of queues are visited in a fixed order, and varying amounts of a set of queues are visited in a fixed order, and varying amounts
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 diffServAssuredRateEntry 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 REFERENCE
"[MODEL] section 7.1.2" "the Informal Differentiated Services Model section 7.1.2"
::= { diffServScheduler 4 } ::= { diffServScheduler 4 }
diffServSchedulerWFQ OBJECT-IDENTITY diffServSchedulerWFQ OBJECT-IDENTITY
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"For use with diffServSchedulerMethod to indicate Weighted Fair "For use with diffServSchedulerMethod to indicate the Weighted
Queuing scheduling method, defined as any algorithm in which a Fair Queuing scheduling method, defined as any algorithm in which
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 diffServAssuredRateEntry 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 REFERENCE
"[MODEL] section 7.1.2" "the Informal Differentiated Services Model section 7.1.2"
::= { diffServScheduler 5 } ::= { diffServScheduler 5 }
-- --
--Assured Rate Parameters Table --Assured Rate Parameters Table
-- --
-- The parameters used by a scheduler for its inputs or outputs are -- The parameters used by a scheduler for its inputs or outputs are
-- maintained separately from the Queue or Scheduler table entries -- maintained separately from the Queue or Scheduler table entries
-- for reusability reasons and so that they may be used by both queues -- for reusability reasons and so that they may be used by both queues
-- and schedulers. This follows the approach for separation of data -- and schedulers. This follows the approach for separation of data
-- path elements from parameterization that is used throughout this MIB. -- path elements from parameterization that is used throughout this MIB.
skipping to change at page 82, line 34 skipping to change at page 82, line 34
-- 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 -- scheduler inputs and/or a certain minimum proportion of the available
-- output bandwidth. Properly configured, this means a certain minimum -- output bandwidth. Properly configured, this means a certain minimum
-- rate, which may be exceeded should traffic be available should there -- rate, which may be exceeded should traffic be available should there
-- be spare bandwidth after all other classes have had opportunities to -- be spare bandwidth after all other classes have had opportunities to
-- consume their own minimum rates. -- consume their own minimum rates.
-- --
diffServAssuredRateNextFree OBJECT-TYPE diffServAssuredRateNextFree OBJECT-TYPE
SYNTAX INTEGER (1..2147483647) SYNTAX IndexInteger
MAX-ACCESS read-only MAX-ACCESS read-only
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This object yields a value when read that is currently unused "This object yields a value when read that is currently unused
for a diffServAssuredRateId instance. If a configuring system for a diffServAssuredRateId instance. If a configuring system
attempts to create a new row in the diffServAssuredRateTable attempts to create a new row in the diffServAssuredRateTable
using this value, but an instance has been created or is in the using this value, but an instance has been created or is in the
process of being created, that operation will fail." process of being created, that operation will fail."
::= { diffServScheduler 6 } ::= { diffServScheduler 6 }
skipping to change at page 83, line 27 skipping to change at page 83, line 27
DiffServAssuredRateEntry ::= SEQUENCE { DiffServAssuredRateEntry ::= SEQUENCE {
diffServAssuredRateId INTEGER, diffServAssuredRateId INTEGER,
diffServAssuredRatePriority Unsigned32, diffServAssuredRatePriority Unsigned32,
diffServAssuredRateAbs Unsigned32, diffServAssuredRateAbs Unsigned32,
diffServAssuredRateRel Unsigned32, diffServAssuredRateRel Unsigned32,
diffServAssuredRateStatus RowStatus diffServAssuredRateStatus RowStatus
} }
diffServAssuredRateId OBJECT-TYPE diffServAssuredRateId OBJECT-TYPE
SYNTAX INTEGER (1..2147483647) 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. The
set of such identifiers spans the whole agent. Managers obtain set of such identifiers spans the whole agent. Managers obtain
new values for row creation in this table by reading new values for row creation in this table by reading
diffServAssuredRateNextFree." diffServAssuredRateNextFree."
::= { diffServAssuredRateEntry 1 } ::= { diffServAssuredRateEntry 1 }
diffServAssuredRatePriority OBJECT-TYPE diffServAssuredRatePriority OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX Unsigned32
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The priority of this input to the associated scheduler, relative "The priority of this input to the associated scheduler, relative
to the scheduler's other inputs." to the scheduler's other inputs. A queue or scheduler with a
larger numeric value will be served before another with a smaller
numeric value."
::= { diffServAssuredRateEntry 2 } ::= { diffServAssuredRateEntry 2 }
diffServAssuredRateAbs OBJECT-TYPE diffServAssuredRateAbs OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX Unsigned32
UNITS "kilobits per second" UNITS "kilobits per second"
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The minimum absolute rate, in kilobits/sec, that a downstream "The minimum absolute rate, in kilobits/sec, that a downstream
scheduler element should allocate to this queue. If the value is scheduler element should allocate to this queue. If the value is
zero, then there is effectively no minimum rate guarantee. If 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 diffServAssuredRateRel
are coupled: changes to one will affect the value of the other. are coupled: changes to one will affect the value of the other.
They are linked by the following equation: They are linked by the following equation:
diffServAssuredRateRel = diffServAssuredRateAbs * 1000/ifSpeed diffServAssuredRateRel = (diffServAssuredRateAbs * 1000000)/ifSpeed
or, if appropriate: or, if appropriate:
diffServAssuredRateRel = diffServAssuredRateAbs * 1000/ifHighSpeed" diffServAssuredRateRel = diffServAssuredRateAbs/ifHighSpeed"
REFERENCE REFERENCE
"ifSpeed, ifHighSpeed from [IFMIB]" "ifSpeed, ifHighSpeed from the Interfaces MIB"
::= { diffServAssuredRateEntry 3 } ::= { diffServAssuredRateEntry 3 }
diffServAssuredRateRel OBJECT-TYPE diffServAssuredRateRel OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX Unsigned32
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The minimum rate that a downstream scheduler element should "The minimum rate that a downstream scheduler element should
allocate to this queue, relative to the maximum rate of the allocate to this queue, relative to the maximum rate of the
interface as reported by ifSpeed or ifHighSpeed, in units of interface as reported by ifSpeed or ifHighSpeed, in units of
1/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 diffServAssuredRateAbs
are coupled: changes to one will affect the value of the other. are coupled: changes to one will affect the value of the other.
They are linked by the following equation: They are linked by the following equation:
diffServAssuredRateRel = diffServAssuredRateAbs * 1000/ifSpeed diffServAssuredRateRel = (diffServAssuredRateAbs * 1000000)/ifSpeed
or, if appropriate: or, if appropriate:
diffServAssuredRateRel = diffServAssuredRateAbs * 1000/ifHighSpeed" diffServAssuredRateRel = diffServAssuredRateAbs/ifHighSpeed"
REFERENCE REFERENCE
"ifSpeed, ifHighSpeed from [IFMIB]" "ifSpeed, ifHighSpeed from the Interfaces MIB"
::= { diffServAssuredRateEntry 4 } ::= { diffServAssuredRateEntry 4 }
diffServAssuredRateStatus OBJECT-TYPE diffServAssuredRateStatus OBJECT-TYPE
SYNTAX RowStatus SYNTAX RowStatus
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The RowStatus variable controls the activation, deactivation, or "The RowStatus variable controls the activation, deactivation, or
deletion of a queue. Any writable variable may be modified deletion of a queue. Any writable variable may be modified
whether the row is active or notInService." whether the row is active or notInService."
skipping to change at page 86, line 20 skipping to change at page 86, line 20
-- for reusability reasons and so that they may be used by both queues -- for reusability reasons and so that they may be used by both queues
-- and schedulers. This follows the approach for separation of data -- and schedulers. This follows the approach for separation of data
-- path elements from parameterization that is used throughout this MIB. -- path elements from parameterization that is used throughout this MIB.
-- Use of these Shaping Parameter Table entries by Queues and Schedulers -- Use of these Shaping Parameter Table entries by Queues and Schedulers
-- allows the modeling of hierarchical scheduling systems. -- 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
-- Shaping Parameter Table entry. Multi-rate shapers, such as a Dual -- Shaping Parameter Table entry. Multi-rate shapers, such as a Dual
-- Leaky Bucket algorithm, specify their rates using multiple
-- Shaping Parameter Entries with the same diffServShapingRateId but -- Shaping Parameter Entries with the same diffServShapingRateId but
-- different diffServShapingRateLevels. -- different diffServShapingRateLevels.
-- --
-- The diffServShapingRateLevel/Abs/Rel attributes are used as parameters -- The diffServShapingRateLevel/Abs/Rel attributes are used as parameters
-- to the non-work-conserving portion of a scheduler: non-work-conserving -- to the non-work-conserving portion of a scheduler: non-work-conserving
-- implies that the scheduler may sometimes not emit a packet, even if -- implies that the scheduler may sometimes not emit a packet, even if
-- there is data available at its input(s). This has the effect of limiting -- 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 -- the servicing of the queue/scheduler input or output, in effect performing
-- shaping of the packet stream passing through the queue/scheduler, as -- shaping of the packet stream passing through the queue/scheduler, as
-- described in the Informal Differentiated Services Model section 7.2.
-- --
diffServShapingRateNextFree OBJECT-TYPE diffServShapingRateNextFree OBJECT-TYPE
SYNTAX INTEGER (1..2147483647) SYNTAX IndexInteger
MAX-ACCESS read-only MAX-ACCESS read-only
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This object yields a value when read that is currently unused "This object yields a value when read that is currently unused
for a diffServShapingRateId instance. If a configuring system for a diffServShapingRateId instance. If a configuring system
attempts to create a new row in the diffServShapingRateTable attempts to create a new row in the diffServShapingRateTable
using this value, but an instance has been created or is in the using this value, but an instance has been created or is in the
process of being created, that operation will fail." process of being created, that operation will fail."
::= { diffServScheduler 8 } ::= { diffServScheduler 8 }
skipping to change at page 87, line 28 skipping to change at page 87, line 28
DiffServShapingRateEntry ::= SEQUENCE { DiffServShapingRateEntry ::= SEQUENCE {
diffServShapingRateId INTEGER, diffServShapingRateId INTEGER,
diffServShapingRateLevel INTEGER, diffServShapingRateLevel INTEGER,
diffServShapingRateAbs Unsigned32, diffServShapingRateAbs Unsigned32,
diffServShapingRateRel Unsigned32, diffServShapingRateRel Unsigned32,
diffServShapingRateThreshold BurstSize, diffServShapingRateThreshold BurstSize,
diffServShapingRateStatus RowStatus diffServShapingRateStatus RowStatus
} }
diffServShapingRateId OBJECT-TYPE diffServShapingRateId OBJECT-TYPE
SYNTAX INTEGER (1..2147483647) 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 Shaping Parameter entries. The set
of such identifiers spans the whole agent. Managers obtain new of such identifiers spans the whole agent. Managers obtain new
values for row creation in this table by reading values for row creation in this table by reading
diffServShapingRateNextFree." diffServShapingRateNextFree."
::= { diffServShapingRateEntry 1 } ::= { diffServShapingRateEntry 1 }
diffServShapingRateLevel OBJECT-TYPE diffServShapingRateLevel OBJECT-TYPE
SYNTAX INTEGER (1..2147483647) SYNTAX IndexInteger
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
skipping to change at page 88, line 24 skipping to change at page 88, line 24
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 diffServShapingRateRel
are coupled: changes to one will affect the value of the other. are coupled: changes to one will affect the value of the other.
They are linked by the following equation: They are linked by the following equation:
diffServAssuredRateRel = diffServAssuredRateAbs * 1000/ifSpeed diffServShapingRateRel = (diffServShapingRateAbs * 1000000)/ifSpeed
or, if appropriate: or, if appropriate:
diffServAssuredRateRel = diffServAssuredRateAbs * 1000/ifHighSpeed" diffServShapingRateRel = diffServShapingRateAbs/ifHighSpeed"
REFERENCE REFERENCE
"ifSpeed, ifHighSpeed from [IFMIB], RFC 2963" "ifSpeed, ifHighSpeed from the Interfaces MIB, RFC 2963"
::= { diffServShapingRateEntry 3 } ::= { diffServShapingRateEntry 3 }
diffServShapingRateRel OBJECT-TYPE diffServShapingRateRel OBJECT-TYPE
SYNTAX Unsigned32 SYNTAX Unsigned32
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The maximum rate that a downstream scheduler element should "The maximum rate that a downstream scheduler element should
allocate to this queue, relative to the maximum rate of the allocate to this queue, relative to the maximum rate of the
interface as reported by ifSpeed or ifHighSpeed, in units of interface as reported by ifSpeed or ifHighSpeed, in units of
1/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 diffServShapingRateAbs
are coupled: changes to one will affect the value of the other. are coupled: changes to one will affect the value of the other.
They are linked by the following equation: They are linked by the following equation:
diffServShapingRateAbs = ifSpeed * diffServShapingRateRel/1000 diffServShapingRateRel = (diffServShapingRateAbs * 1000000)/ifSpeed
or, if appropriate: or, if appropriate:
diffServShapingRateAbs = ifHighSpeed * diffServShapingRateRel/1000" diffServShapingRateRel = diffServShapingRateAbs/ifHighSpeed"
REFERENCE REFERENCE
"ifSpeed, ifHighSpeed from [IFMIB], RFC 2963" "ifSpeed, ifHighSpeed from the Interfaces MIB, RFC 2963"
::= { diffServShapingRateEntry 4 } ::= { diffServShapingRateEntry 4 }
diffServShapingRateThreshold OBJECT-TYPE diffServShapingRateThreshold OBJECT-TYPE
SYNTAX BurstSize SYNTAX BurstSize
UNITS "Bytes" UNITS "Bytes"
MAX-ACCESS read-create MAX-ACCESS read-create
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"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
skipping to change at page 90, line 21 skipping to change at page 90, line 21
diffServMIBCompliance MODULE-COMPLIANCE diffServMIBCompliance MODULE-COMPLIANCE
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"This MIB may be implemented as a read-only or as a read-create "This MIB may be implemented as a read-only or as a read-create
MIB. As a result, it may be used for monitoring or for MIB. As a result, it may be used for monitoring or for
configuration." configuration."
MODULE -- This Module MODULE -- This Module
MANDATORY-GROUPS { MANDATORY-GROUPS {
diffServMIBDataPathGroup, diffServMIBClfrGroup, diffServMIBDataPathGroup, diffServMIBClfrGroup,
diffServMIBClfrElementGroup, diffServMIBSixTupleClfrGroup, diffServMIBClfrElementGroup, diffServMIBMultiFieldClfrGroup,
diffServMIBActionGroup, diffServMIBAlgDropGroup, diffServMIBActionGroup, diffServMIBAlgDropGroup,
diffServMIBQGroup, diffServMIBSchedulerGroup, diffServMIBQGroup, diffServMIBSchedulerGroup,
diffServMIBShapingRateGroup, diffServMIBAssuredRateGroup } diffServMIBShapingRateGroup, diffServMIBAssuredRateGroup }
-- The groups: -- The groups:
-- diffServMIBCounterGroup -- diffServMIBCounterGroup
-- diffServMIBHCCounterGroup -- diffServMIBHCCounterGroup
-- diffServMIBVHCCounterGroup -- diffServMIBVHCCounterGroup
-- --
-- are mutually exclusive; at most one of these groups is implemented -- are mutually exclusive; at most one of these groups is implemented
-- for a particular interface. When any of these groups is implemented -- for a particular interface. When any of these groups is implemented
-- for a particular interface, then ifCounterDiscontinuityGroup from -- for a particular interface, then ifCounterDiscontinuityGroup from
-- 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 92, line 27 skipping to change at page 92, line 27
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 diffServClfrElementStatus
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServSixTupleClfrDstAddrType OBJECT diffServMultiFieldClfrAddrType
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServSixTupleClfrDstAddr OBJECT diffServMultiFieldClfrDstAddr
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServSixTupleClfrDstPrefixLength OBJECT diffServMultiFieldClfrDstPrefixLength
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServSixTupleClfrSrcAddrType OBJECT diffServMultiFieldClfrFlowId
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServSixTupleClfrSrcAddr OBJECT diffServMultiFieldClfrSrcAddr
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServSixTupleClfrSrcPrefixLength OBJECT diffServMultiFieldClfrSrcPrefixLength
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServSixTupleClfrDscp OBJECT diffServMultiFieldClfrDscp
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServSixTupleClfrProtocol OBJECT diffServMultiFieldClfrProtocol
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServSixTupleClfrDstL4PortMin OBJECT diffServMultiFieldClfrDstL4PortMin
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServSixTupleClfrDstL4PortMax OBJECT diffServMultiFieldClfrDstL4PortMax
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServSixTupleClfrSrcL4PortMin OBJECT diffServMultiFieldClfrSrcL4PortMin
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServSixTupleClfrSrcL4PortMax OBJECT diffServMultiFieldClfrSrcL4PortMax
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
OBJECT diffServSixTupleClfrStatus OBJECT diffServMultiFieldClfrStatus
MIN-ACCESS read-only MIN-ACCESS read-only
DESCRIPTION DESCRIPTION
"Write access is not required." "Write access is not required."
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
skipping to change at page 99, line 17 skipping to change at page 99, line 17
diffServDataPathStart, diffServDataPathStatus diffServDataPathStart, 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 {
diffServClfrDataPathStart, 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 {
diffServClfrElementPrecedence, diffServClfrElementNext, diffServClfrElementPrecedence, diffServClfrElementNext,
diffServClfrElementSpecific, diffServClfrElementStatus diffServClfrElementSpecific, diffServClfrElementStatus
} }
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The Classifier Element Group defines the MIB Objects that "The Classifier Element Group defines the MIB Objects that
describe the classifier elements that make up a generic describe the classifier elements that make up a generic
classifier." classifier."
::= { diffServMIBGroups 3 } ::= { diffServMIBGroups 3 }
diffServMIBSixTupleClfrGroup OBJECT-GROUP diffServMIBMultiFieldClfrGroup OBJECT-GROUP
OBJECTS { OBJECTS {
diffServSixTupleClfrDstAddrType, diffServSixTupleClfrDstAddr, diffServMultiFieldClfrAddrType, diffServMultiFieldClfrDstAddr,
diffServSixTupleClfrDstPrefixLength, diffServMultiFieldClfrDstPrefixLength,
diffServSixTupleClfrSrcAddrType, diffServSixTupleClfrSrcAddr, diffServMultiFieldClfrFlowId, diffServMultiFieldClfrSrcAddr,
diffServSixTupleClfrSrcPrefixLength, diffServSixTupleClfrDscp, diffServMultiFieldClfrSrcPrefixLength, diffServMultiFieldClfrDscp,
diffServSixTupleClfrProtocol, diffServSixTupleClfrDstL4PortMin, diffServMultiFieldClfrProtocol, diffServMultiFieldClfrDstL4PortMin,
diffServSixTupleClfrDstL4PortMax, diffServSixTupleClfrSrcL4PortMin, diffServMultiFieldClfrDstL4PortMax, diffServMultiFieldClfrSrcL4PortMin,
diffServSixTupleClfrSrcL4PortMax, diffServSixTupleClfrStatus diffServMultiFieldClfrSrcL4PortMax, diffServMultiFieldClfrStatus
} }
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The Six-Tuple Classifier Group defines the MIB Objects that "The Six-Tuple Classifier Group defines the MIB Objects that
describe a classifier element for matching on 6 fields of an IP describe a classifier element for matching on 6 fields of an IP
and upper-layer protocol header." and upper-layer protocol header."
::= { diffServMIBGroups 4 } ::= { diffServMIBGroups 4 }
diffServMIBMeterGroup OBJECT-GROUP diffServMIBMeterGroup OBJECT-GROUP
OBJECTS { OBJECTS {
skipping to change at page 101, line 6 skipping to change at page 101, line 6
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, diffServCountActOctets, diffServCountActPkts,
diffServCountActDiscontTime, diffServCountActStatus, diffServCountActDiscontTime, diffServCountActStatus,
diffServAlgDropOctets, diffServAlgDropPkts diffServAlgDropOctets, 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, diffServCountActDiscontTime,
diffServCountActStatus, diffServAlgDropOctets, diffServCountActStatus, diffServAlgDropOctets,
diffServAlgDropHCOctets, diffServAlgDropPkts diffServAlgDropHCOctets, diffServAlgDropPkts,
diffServAlgRandomDropHCOctets, diffServAlgRandomDropPkts
} }
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
skipping to change at page 103, line 32 skipping to change at page 103, line 34
} }
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The Scheduler Parameter Group contains the objects that describe "The Scheduler Parameter Group contains the objects that describe
packet schedulers' parameters on interfaces." packet schedulers' parameters on interfaces."
::= { diffServMIBGroups 17 } ::= { diffServMIBGroups 17 }
diffServMIBStaticGroup OBJECT-GROUP diffServMIBStaticGroup OBJECT-GROUP
OBJECTS { OBJECTS {
diffServClfrNextFree, diffServClfrElementNextFree, diffServClfrNextFree, diffServClfrElementNextFree,
diffServSixTupleClfrNextFree, diffServMeterNextFree, diffServMultiFieldClfrNextFree, diffServMeterNextFree,
diffServTBParamNextFree, diffServActionNextFree, diffServTBParamNextFree, diffServActionNextFree,
diffServCountActNextFree, diffServAlgDropNextFree, diffServCountActNextFree, diffServAlgDropNextFree,
diffServRandomDropNextFree, diffServQNextFree, diffServRandomDropNextFree, diffServQNextFree,
diffServSchedulerNextFree, diffServAssuredRateNextFree, diffServSchedulerNextFree, diffServAssuredRateNextFree,
diffServShapingRateNextFree diffServShapingRateNextFree
} }
STATUS current STATUS current
DESCRIPTION DESCRIPTION
"The Static Group contains readable scalar objects used in "The Static Group contains readable scalar objects used in
creating unique identifiers for classifiers, meters, actions and creating unique identifiers for classifiers, meters, actions and
skipping to change at page 109, line 28 skipping to change at page 109, line 28
1 The SNMP Management Framework ................................... 2 1 The SNMP Management Framework ................................... 2
2 Relationship to other working group documents ................... 3 2 Relationship to other working group documents ................... 3
2.1 Relationship to the Informal Management Model for 2.1 Relationship to the Informal Management Model for
Differentiated Services Router ............................... 3 Differentiated Services Router ............................... 3
2.2 Relationship to other MIBs and Policy Management .............. 4 2.2 Relationship to other MIBs and Policy Management .............. 4
3 MIB Overview .................................................... 4 3 MIB Overview .................................................... 4
3.1 Processing Path ............................................... 5 3.1 Processing Path ............................................... 5
3.1.1 diffServDataPathTable - The Data Path Table ................. 6 3.1.1 diffServDataPathTable - The Data Path Table ................. 6
3.2 Classifier .................................................... 6 3.2 Classifier .................................................... 6
3.2.1 diffServClfrElementTable - The Classifier Element Table ..... 7 3.2.1 diffServClfrElementTable - The Classifier Element Table ..... 7
3.2.2 diffServSixTupleClfrTable - The Six-Tuple Classifier Table 3.2.2 diffServMultiFieldClfrTable - The Multi-field Classifier
.............................................................. 8 Table ........................................................ 8
3.3 Metering Traffic .............................................. 9 3.3 Metering Traffic .............................................. 9
3.3.1 diffServMeterTable - The Meter Table ........................ 10 3.3.1 diffServMeterTable - The Meter Table ........................ 10
3.3.2 diffServTBParamTable - The Token Bucket Parameters Table 3.3.2 diffServTBParamTable - The Token Bucket Parameters Table
.............................................................. 10 .............................................................. 11
3.4 Actions applied to packets .................................... 11 3.4 Actions applied to packets .................................... 11
3.4.1 diffServActionTable - The Action Table ...................... 12 3.4.1 diffServActionTable - The Action Table ...................... 12
3.4.2 diffServCountActTable - The Count Action Table .............. 12 3.4.2 diffServCountActTable - The Count Action Table .............. 12
3.4.3 diffServDscpMarkActTable - The Mark Action Table ............ 13 3.4.3 diffServDscpMarkActTable - The Mark Action Table ............ 13
3.4.4 diffServAlgDropTable - The Algorithmic Drop Table ........... 13 3.4.4 diffServAlgDropTable - The Algorithmic Drop Table ........... 13
3.4.5 diffServRandomDropTable - The Random Drop Parameters Table 3.4.5 diffServRandomDropTable - The Random Drop Parameters Table
.............................................................. 14 .............................................................. 14
3.5 Queuing and Scheduling of Packets ............................. 16 3.5 Queuing and Scheduling of Packets ............................. 16
3.5.1 diffServQTable - The Class or Queue Table ................... 16 3.5.1 diffServQTable - The Class or Queue Table ................... 16
3.5.2 diffServSchedulerTable - The Scheduler Table ................ 17 3.5.2 diffServSchedulerTable - The Scheduler Table ................ 17
3.5.3 diffServAssuredRateTable - The Assured Rate Table ........... 17 3.5.3 diffServAssuredRateTable - The Assured Rate Table ........... 17
3.5.4 diffServShapingRateTable - The Shaping Rate Table ........... 18 3.5.4 diffServShapingRateTable - The Shaping Rate Table ........... 18
3.5.5 Using queues and schedulers together ........................ 18 3.5.5 Using queues and schedulers together ........................ 18
3.6 Example configuration for AF and EF ........................... 21 3.6 Example configuration for AF and EF ........................... 22
3.6.1 AF and EF Ingress Interface Configuration ................... 21 3.6.1 AF and EF Ingress Interface Configuration ................... 22
3.6.1.1 Classification In The Example ............................. 23 3.6.1.1 Classification In The Example ............................. 22
3.6.1.2 AF Implementation On an Ingress Edge Interface ............ 24 3.6.1.2 AF Implementation On an Ingress Edge Interface ............ 23
3.6.1.2.1 AF Metering On an Ingress Edge Interface ................ 24 3.6.1.2.1 AF Metering On an Ingress Edge Interface ................ 23
3.6.1.2.2 AF Actions On an Ingress Edge Interface ................. 24 3.6.1.2.2 AF Actions On an Ingress Edge Interface ................. 24
3.6.1.3 EF Implementation On an Ingress Edge Interface ............ 25 3.6.1.3 EF Implementation On an Ingress Edge Interface ............ 24
3.6.1.3.1 EF Metering On an Ingress Edge Interface ................ 25 3.6.1.3.1 EF Metering On an Ingress Edge Interface ................ 24
3.6.1.3.2 EF Actions On an Ingress Edge Interface ................. 25 3.6.1.3.2 EF Actions On an Ingress Edge Interface ................. 24
3.7 AF and EF Egress Edge Interface Configuration ................. 25 3.7 AF and EF Egress Edge Interface Configuration ................. 25
3.7.1 Classification On an Egress Edge Interface .................. 25 3.7.1 Classification On an Egress Edge Interface .................. 26
3.7.2 AF Implementation On an Egress Edge Interface ............... 27 3.7.2 AF Implementation On an Egress Edge Interface ............... 26
3.7.2.1 AF Metering On an Egress Edge Interface ................... 27 3.7.2.1 AF Metering On an Egress Edge Interface ................... 26
3.7.2.2 AF Actions On an Egress Edge Interface .................... 28 3.7.2.2 AF Actions On an Egress Edge Interface .................... 27
3.7.2.3 AF Rate-based Queuing On an Egress Edge Interface ......... 28 3.7.2.3 AF Rate-based Queuing On an Egress Edge Interface ......... 27
3.7.3 EF Implementation On an Egress Edge Interface ............... 28 3.7.3 EF Implementation On an Egress Edge Interface ............... 28
3.7.3.1 EF Metering On an Egress Edge Interface ................... 29 3.7.3.1 EF Metering On an Egress Edge Interface ................... 28
3.7.3.2 EF Actions On an Egress Edge Interface .................... 29 3.7.3.2 EF Actions On an Egress Edge Interface .................... 28
3.7.3.3 EF Priority Queuing On an Egress Edge Interface ........... 29 3.7.3.3 EF Priority Queuing On an Egress Edge Interface ........... 29
4 Conventions used in this MIB .................................... 29 4 Conventions used in this MIB .................................... 29
4.1 The use of RowPointer to indicate data path linkage ........... 29 4.1 The use of RowPointer to indicate data path linkage ........... 29
4.2 The use of RowPointer to indicate parameters .................. 30 4.2 The use of RowPointer to indicate parameters .................. 30
4.3 Conceptual row creation and deletion .......................... 31 4.3 Conceptual row creation and deletion .......................... 30
5 Extending this MIB .............................................. 31 5 Extending this MIB .............................................. 31
6 MIB Definition .................................................. 33 6 MIB Definition .................................................. 32
7 Acknowledgments ................................................. 104 7 Acknowledgments ................................................. 104
8 Security Considerations ......................................... 104 8 Security Considerations ......................................... 104
9 References ...................................................... 105 9 References ...................................................... 105
10 Authors' Addresses ............................................. 108 10 Authors' Addresses ............................................. 108
11. Full Copyright 11. Full Copyright
Copyright (C) The Internet Society (2000). All Rights Reserved. Copyright (C) The Internet Society (2000). All Rights Reserved.
This document and translations of it may be copied and furnished to This document and translations of it may be copied and furnished to
 End of changes. 282 change blocks. 
489 lines changed or deleted 586 lines changed or added

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