RFC3289 - Management Information Base for the Differentiated

时间:2005-02-17 来源: 作者: 点击:
Network Working Group F. Baker Request for Comments: 3289 Cisco System Category: Standards Track K. Chan Nortel Networks A. Smith Harbour Networks May 2002 Management Information Base for the Differentiated Services Architecture Status of this Memo T
  Network Working Group F. Baker
Request for Comments: 3289 Cisco System
Category: Standards Track K. Chan
Nortel Networks
A. Smith
Harbour Networks
May 2002

Management Information Base for the
Differentiated Services Architecture

Status of this Memo

This document specifies an Internet standards track protocol for the
Internet community, and requests discussion and suggestions for
improvements. Please refer to the current edition of the "Internet
Official Protocol Standards" (STD 1) for the standardization state
and status of this protocol. Distribution of this memo is unlimited.

Copyright Notice

Copyright (C) The Internet Society (2002). All Rights Reserved.

Abstract

This memo describes an SMIv2 (Structure of Management Information
version 2) MIB for a device implementing the Differentiated Services
Architecture. It may be used both for monitoring and configuration
of a router or switch capable of Differentiated Services
functionality.

Table of Contents

1 The SNMP Management Framework ................................. 3
2 Relationship to other working group documents ................. 4
2.1 Relationship to the Informal Management Model for
Differentiated Services Router ............................. 4
2.2 Relationship to other MIBs and Policy Management ............ 5
3 MIB Overview .................................................. 6
3.1 Processing Path ............................................. 7
3.1.1 diffServDataPathTable - The Data Path Table ............... 7
3.2 Classifier .................................................. 7
3.2.1 diffServClfrElementTable - The Classifier Element Table ... 8
3.2.2 diffServMultiFieldClfrTable - The Multi-field Classifier
Table ...................................................... 9
3.3 Metering Traffic ............................................ 10
3.3.1 diffServMeterTable - The Meter Table ...................... 11

3.3.2 diffServTBParamTable - The Token Bucket Parameters Table... 11
3.4 Actions applied to packets .................................. 12
3.4.1 diffServActionTable - The Action Table .................... 12
3.4.2 diffServCountActTable - The Count Action Table ............ 12
3.4.3 diffServDscpMarkActTable - The Mark Action Table .......... 13
3.4.4 diffServAlgDropTable - The Algorithmic Drop Table ......... 13
3.4.5 diffServRandomDropTable - The Random Drop Parameters Table 14
3.5 Queuing and Scheduling of Packets ........................... 16
3.5.1 diffServQTable - The Class or Queue Table ................. 16
3.5.2 diffServSchedulerTable - The Scheduler Table .............. 16
3.5.3 diffServMinRateTable - The Minimum Rate Table ............. 16
3.5.4 diffServMaxRateTable - The Maximum Rate Table ............. 17
3.5.5 Using queues and schedulers together ...................... 17
3.6 Example configuration for AF and EF ......................... 20
3.6.1 AF and EF Ingress Interface Configuration ................. 20
3.6.1.1 Classification In The Example ........................... 22
3.6.1.2 AF Implementation On an Ingress Edge Interface .......... 22
3.6.1.2.1 AF Metering On an Ingress Edge Interface .............. 22
3.6.1.2.2 AF Actions On an Ingress Edge Interface ............... 23
3.6.1.3 EF Implementation On an Ingress Edge Interface .......... 23
3.6.1.3.1 EF Metering On an Ingress Edge Interface .............. 23
3.6.1.3.2 EF Actions On an Ingress Edge Interface ............... 23
3.7 AF and EF Egress Edge Interface Configuration ............... 24
3.7.1 Classification On an Egress Edge Interface ................ 24
3.7.2 AF Implementation On an Egress Edge Interface ............. 26
3.7.2.1 AF Metering On an Egress Edge Interface ................. 26
3.7.2.2 AF Actions On an Egress Edge Interface .................. 29
3.7.2.3 AF Rate-based Queuing On an Egress Edge Interface ....... 30
3.7.3 EF Implementation On an Egress Edge Interface ............. 30
3.7.3.1 EF Metering On an Egress Edge Interface ................. 30
3.7.3.2 EF Actions On an Egress Edge Interface .................. 30
3.7.3.3 EF Priority Queuing On an Egress Edge Interface ......... 32
4 Conventions used in this MIB .................................. 33
4.1 The use of RowPointer to indicate data path linkage ......... 33
4.2 The use of RowPointer to indicate parameters ................ 34
4.3 Conceptual row creation and deletion ........................ 34
5 Extending this MIB ............................................ 35
6 MIB Definition ................................................ 35
7 Acknowledgments ............................................... 110
8 Security Considerations ....................................... 110
9 Intellectual Property Rights .................................. 111
10 References ................................................... 112
11 Authors' Addresses ........................................... 115
12 Full Copyright Statement ..................................... 116

1. The SNMP Management Framework

The SNMP Management Framework presently consists of five major
components:

o An overall architecture, described in [RFC2571].

o Mechanisms for describing and naming objects and events for the
purpose of management. The first version of this Structure of
Management Information (SMI) is called SMIv1 and is described
in [RFC1155], [RFC1212] and [RFC1215]. The second version,
called SMIv2, is described in [RFC2578], RFC2579 [RFC2579]
and [RFC2580].

o Message protocols for transferring management information. The
first version of the SNMP message protocol is called SNMPv1 and
is described in [RFC1157]. A second version of the SNMP
message protocol, which is not an Internet standards track
protocol, is called SNMPv2c and is described in [RFC1901] and
[RFC1906]. The third version of the message protocol is
called SNMPv3 and is described in [RFC1906], [RFC2572] and
[RFC2574].

o Protocol operations for accessing management information. The
first set of protocol operations and associated PDU formats is
described in [RFC1157]. A second set of protocol operations
and associated PDU formats is described in [RFC1905].

o A set of fundamental applications described in [RFC2573] and
the view-based access control mechanism described in [RFC
2575].

A more detailed introduction to the current SNMP Management Framework
can be found in [RFC2570].

Managed objects are accessed via a virtual information store, termed
the Management Information Base or MIB. Objects in the MIB are
defined using the mechanisms defined in the SMI.

This memo specifies a MIB module that is compliant to the SMIv2. A
MIB conforming to the SMIv1 can be produced through the appropriate
translations. The resulting translated MIB must be semantically
equivalent, except where objects or events are omitted because there
is no translation is possible (use of Counter64). Some machine-
readable information in SMIv2 will be converted into textual
descriptions in SMIv1 during the translation process. However, this
loss of machine readable information is not considered to change the
semantics of the MIB.

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119].

2. Relationship to other working group documents

The Differentiated Services Working Group and related working groups
developed other documents, notably the Informal Management Model and
the policy configuration paradigm of SNMPCONF. The relationship
between the MIB and those documents is clarified here.

2.1. Relationship to the Informal Management Model for Differentiated
Services Router

This MIB is similar in design to [MODEL], although it can be used to
build functional data paths that the model would not well describe.
The model conceptually describes ingress and egress interfaces of an
n-port router, which may find some interfaces at a network edge and
others facing into the network core. It describes the configuration
and management of a Differentiated Services interface in terms of one
or more Traffic Conditioning Blocks (TCB), each containing, arranged
in the specified order, by definition, zero or more classifiers,
meters, actions, algorithmic droppers, queues and schedulers.
Traffic may be classified, and classified traffic may be metered.
Each stream of traffic identified by a combination of classifiers and
meters may have some set of actions performed on it; it may have
dropping algorithms applied and it may ultimately be stored into a
queue before being scheduled out to its next destination, either onto
a link or to another TCB. At times, the treatment for a given packet
must have any of those elements repeated. [MODEL] models this by
cascading multiple TCBs, while this MIB describes the policy by
directly linking the functional data path elements.

The MIB represents this cascade by following the "Next" attributes of
the various elements. They indicate what the next step in
Differentiated Services processing will be, whether it be a
classifier, meter, action, algorithmic dropper, queue, scheduler or a
decision to now forward a packet.

The higher level concept of a TCB is not required in the
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 for relating the MIB with the [MODEL]. Rather,
the MIB models the individual elements that make up the TCBs.

This MIB uses the notion of a Data Path to indicate the
Differentiated Services processing a packet may experience. The Data
Path a packet will initially follow is an attribute of the interface

in question. The Data Path Table provides a starting point for each
direction (ingress or egress) on each interface. A Data Path Table
Entry indicates the first of possible multiple elements that will
apply Differentiated Services treatment to the packet.

2.2. Relationship to other MIBs and Policy Management

This MIB provides for direct reporting and manipulation of detailed
functional elements. These elements consist of a structural element
and one or more parameter-bearing elements. While this can be
cumbersome, it allows the reuse of parameters. For example, a
service provider may offer three varieties of contracts, and
configure three parameter elements. Each such data path on the
system may then refer to these sets of parameters. The
diffServDataPathTable couples each direction on each interface with
the specified data path linkage. The concept of "interface" is as
defined by InterfaceIndex/ifIndex of the IETF Interfaces MIB [IF-
MIB].

Other MIBs and data structure definitions for policy management
mechanisms, other than SNMP/SMIv2 are likely to exist in the future
for the purpose 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
definitions of Differentiated Services functionality are likely e.g.
some form of "Per-Hop Behavior"-based definition involving a template
of detailed object values which is applied to specific instances of
objects in this MIB semi-automatically.

Another possible direction of abstraction is one using a concept of
"roles" (often, but not always, applied to interfaces). In this
case, it may be possible to re-use the object definitions in this
MIB, especially the parameterization tables. The Data Path table
will help in the reuse of the data path linkage tables by having the
interface specific information centralized, allowing easier
mechanical replacement 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

The Differentiated Services Architecture does not specify how an
implementation should be assembled. The [MODEL] describes a general
approach to implementation design, or to user interface design. Its
components could, however, be assembled in a different way. For
example, traffic conforming to a meter might be run through a second
meter, or reclassified.

This MIB models the same functional data path elements, allowing the
network manager to assemble them in any fashion that meets the
relevant policy. These data path elements include Classifiers,
Meters, Actions of various sorts, Queues, and Schedulers.

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
specific policy elements. This is to facilitate configuration, if
the MIB is used for that. The concept is that a set of parameters,
such as the values that describe a specific token bucket, might be
configured once and applied to many interfaces.

The RowPointer Textual Convention is therefore used in two ways in
this MIB. It is defined for the purpose of connecting an object to
an entry dynamically; the RowPointer object identifies the first
object in the target Entry, and in so doing points to the entire
entry. In this MIB, it is used as a connector between successive
functional data path elements, and as the link between the policy
structure and the parameters that are used. When used as a
connector, it says what happens "next"; what happens to classified
traffic, to traffic conforming or not conforming to a meter, and so
on. When used to indicate the parameters applied in a policy, it
says "specifically" what is meant; the structure points to the
parameters of its policy.

The use of RowPointers as connectors allows for the simple extension
of the MIB. The RowPointers, whether "next" or "specific", may point
to Entries defined in other MIB modules. For example, the only type
of meter defined in this MIB is a token bucket meter; if another type
of meter is required, another MIB could be defined describing that
type of meter, and diffServMeterSpecific could point to it.
Similarly, if a new action is required, the "next" pointer of the
previous functional datapath element could point to an Entry defined
in another MIB, public or proprietary.

3.1. Processing Path

An interface has an ingress and an egress direction, and will
generally have a different policy in each direction. As traffic
enters an edge interface, it may be classified, metered, counted, and
marked. Traffic leaving the same interface might be remarked
according to the contract with the next network, queued to manage the
bandwidth, and so on. As [MODEL] points out, the functional datapath
elements used on ingress and egress are of the same type, but may be
structured in very different ways to implement the relevant policies.

3.1.1. diffServDataPathTable - The Data Path Table

Therefore, when traffic arrives at an ingress or egress interface,
the first step in applying the policy is determining what policy
applies. This MIB does that by providing a table of pointers to the
first functional data path element, indexed by interface and
direction on that interface. The content of the
diffServDataPathEntry is a single RowPointer, which points to that
functional data path element.

When diffServDataPathStart in a direction on an interface is
undefined or is set to zeroDotZero, the implication is that there is
no specific policy to apply.

3.2. Classifier

Classifiers are used to differentiate among types of traffic. In the
Differentiated Services architecture, one usually discusses a
behavior aggregate identified by the application of one or more
Differentiated Services Code Points (DSCPs). However, especially at
network edges (which include hosts and first hop routers serving
hosts), traffic may arrive unmarked or the marks may not be trusted.
In these cases, one applies a Multi-Field Classifier, which may
select an aggregate as coarse as "all traffic", as fine as a specific
microflow identified by IP Addresses, IP Protocol, and TCP or UDP
ports, or variety of slices in between.

Classifiers can be simple or complex. In a core interface, one would
expect to find simple behavior aggregate classification to be used.
However, in an edge interface, one might first ask what application
is being used, meter the arriving traffic, and then apply various
policies to the non-conforming traffic depending on the Autonomous
System number advertising the destination address. To accomplish
such a thing, traffic must be classified, metered, and then
reclassified. To this end, the MIB defines separate classifiers,
which may be applied at any point in processing, and may have
different content as needed.

The MIB also allows for ambiguous classification in a structured
fashion. In the end, traffic classification must be unambiguous; one
must know for certain what policy to apply to any given packet.
However, writing an unambiguous specification is often tedious, while
writing a specification in steps that permits and excludes various
kinds of traffic may be simpler and more intuitive. In such a case,
the classification "steps" are enumerated; all classification
elements of one precedence are applied as if in parallel, and then
all classification elements of the next precedence.

This MIB defines a single classifier parameter entry, the Multi-field
Classifier. A degenerate case of this multi-field classifier is a
Behavior Aggregate classifier. Other classifiers may be defined in
other MIB modules, to select traffic from a given layer two neighbor
or a given interface, traffic whose addresses belong to a given BGP
Community or Autonomous System, and so on.

3.2.1. diffServClfrElementTable - The Classifier Element Table

A classifier consists of classifier elements. A classifier element
identifies a specific set of traffic that forms part of a behavior
aggregate; other classifier elements within the same classifier may
identify other traffic that also falls into the behavior aggregate.
For example, in identifying AF traffic for the aggregate AF1, one
might implement separate classifier elements for AF11, AF12, and AF13
within the same classifier and pointing to the same subsequent meter.

Generally, one would expect the Data Path Entry to point to a
classifier (which is to say, a set of one or more classifier
elements), although it may point to something else when appropriate.
Reclassification in a functional data path is achieved by pointing to
another Classifier Entry when appropriate.

A classifier element is a structural element, indexed by classifier
ID and element ID. It has a precedence value, allowing for
structured ambiguity as described above, a "specific" pointer that
identifies what rule is to be applied, and a "next" pointer directing
traffic matching the classifier to the next functional data path
element. If the "next" pointer is zeroDotZero, the indication is
that there is no further differentiated services processing for this
behavior aggregate. However, if the "specific" pointer is
zeroDotZero, the device is misconfigured. In such a case, the
classifier element should be operationally treated as if it were not
present.

When the MIB is used for configuration, diffServClfrNextFree and
diffServClfrElementNextFree always contain legal values for
diffServClfrId and diffServClfrElementId that are not currently used

in the system's configuration. The values are validated when
creating diffServClfrId and diffServClfrElementId, and in the event
of a failure (which would happen if two managers simultaneously
attempted to create an entry) must be re-read.

3.2.2. diffServMultiFieldClfrTable - The Multi-field Classifier Table

This MIB defines a single parameter type for classification, the
Multi-field Classifier. As a parameter, a filter may be specified
once and applied to many interfaces, using
diffServClfrElementSpecific. This filter matches:

o IP source address prefix, including host, CIDR Prefix, and "any
source address"

o IP destination address prefix, including host, CIDR Prefix, and
"any destination address"

o IPv6 Flow ID

o IP protocol or "any"

o TCP/UDP/SCTP source port range, including "any"

o TCP/UDP/SCTP destination port range, including "any"

o Differentiated Services Code Point

Since port ranges, IP prefixes, or "any" are defined in each case, it
is clear that a wide variety of filters can be constructed. The
Differentiated Services Behavior Aggregate filter is a special case
of this filter, in which only the DSCP is specified.

Other MIB modules may define similar filters in the same way. For
example, a filter for Ethernet information might define source and
destination MAC addresses of "any", Ethernet Packet Type, IEEE 802.2
SAPs, and IEEE 802.1 priorities. A filter related to policy routing
might be structured like the diffServMultiFieldClfrTable, but contain
the BGP Communities of the source and destination prefix rather than
the prefix itself, meaning "any prefix in this community". For such
a filter, a table similar to diffServMultiFieldClfrTable is
constructed, and diffServClfrElementSpecific is configured to point
to it.

When the MIB is used for configuration,
diffServMultiFieldClfrNextFree always contains a legal value for
diffServMultiFieldClfrId that is not currently used in the system's
configuration.

3.3. Metering Traffic

As discussed in [MODEL], a meter and a shaper are functions that
operate on opposing ends of a link. A shaper schedules traffic for
transmission at specific times in order to approximate a particular
line speed or combination of line speeds. In its simplest form, if
the traffic stream contains constant sized packets, it might transmit
one packet per unit time to build the equivalent of a CBR circuit.
However, various factors intervene to make the approximation inexact;
multiple classes of traffic may occasionally schedule their traffic
at the same time, the variable length nature of IP traffic may
introduce variation, and factors in the link or physical layer may
change traffic timing. A meter integrates the arrival rate of
traffic and determines whether the shaper at the far end was
correctly applied, or whether the behavior of the application in
question is naturally close enough to such behavior to be acceptable
under a given policy.

A common type of meter is a Token Bucket meter, such as [srTCM] or
[trTCM]. This type of meter assumes the use of a shaper at a
previous node; applications which send at a constant rate when
sending may conform if the token bucket is properly specified. It
specifies the acceptable arrival rate and quantifies the acceptable
variability, often by specifying a burst size or an interval; since
rate = quantity/time, specifying any two of those parameters implies
the third, and a large interval provides for a forgiving system.
Multiple rates may be specified, as in AF, such that a subset of the
traffic (up to one rate) is accepted with one set of guarantees, and
traffic in excess of that but below another rate has a different set
of guarantees. Other types of meters exist as well.

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 a case, the fractal nature of normal Internet
traffic must be reflected 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 interval is dropped. Applications
like FTP contain the effect by simply staying below the target bit
rate; this type of configuration very adversely affects transaction
applications like HTTP, however. Another use of a meter is in the AF
specification, in which excess traffic is marked with a related DSCP
and subjected to slightly more active queue depth management. The

application is not sharply limited to a contracted rate in such a
case, but can be readily contained should its traffic create a
burden.

3.3.1. diffServMeterTable - The Meter Table

The Meter Table is a structural table, specifying a specific
functional data path element. Its entry consists essentially of
three RowPointers - a "succeed" pointer, for traffic conforming to
the meter, a "fail" pointer, for traffic not conforming to the meter,
and a "specific" pointer, to identify the parameters in question.
This structure is a bow to SNMP's limitations; it would be better to
have a structure with N rates and N+1 "next" pointers, with a single
algorithm specified. In this case, multiple meter entries connected
by the "fail" link are understood to contain the parameters for a
specified algorithm, and traffic conforming to a given rate follows
their "succeed" paths. Within this MIB, only Token Bucket parameters
are specified; other varieties of meters may be designed in other MIB
modules.

When the MIB is used for configuration, diffServMeterNextFree always
contains a legal value for diffServMeterId that is not currently used
in the system's configuration.

3.3.2. diffServTBParamTable - The Token Bucket Parameters Table

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 once and applied to many interfaces, using
diffServMeterSpecific. Specifically, several modes of [srTCM] and
[trTCM] are addressed. Other 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 - 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 to the higher rates, or it fails all of them. As
such, multi-rate meters should specify those rates in monotonically
increasing order, passing through the diffServMeterFailNext from more
committed to more excess rates, and finally falling through
diffServMeterFailNext to the set of actions that apply to traffic
which conforms to none of the specified rates. diffServTBParamType
in the first entry indicates the algorithm being used. At each rate,
diffServTBParamRate is derivable from diffServTBParamBurstSize and
diffServTBParamInterval; a superior implementation will allow the

configuration of any two of diffServTBParamRate,
diffServTBParamBurstSize, and diffServTBParamInterval, and respond
with the appropriate error code if all three are specified but are
not mathematically related.

When the MIB is used for configuration, diffServTBParamNextFree
always contains a legal value for diffServTBParamId that is not
currently used in the system's configuration.

3.4. Actions applied to packets

"Actions" are the things a differentiated services interface PHB may
do to a packet in transit. At a minimum, such a policy might
calculate statistics on traffic in various configured classes, mark
it with a DSCP, drop it, or enqueue it before passing it on for other
processing.

Actions are composed of a structural element, the
diffServActionTable, and various component action entries that may be
applied. In the case of the Algorithmic Dropper, an additional
parameter table may be specified to control Active Queue Management,
as defined in [RED93] and other AQM specifications.

3.4.1. diffServActionTable - The Action Table

The action table identifies sequences of actions to be applied to a
packet. Successive actions are chained through diffServActionNext,
ultimately resulting in zeroDotZero (indicating that the policy is
complete), a pointer to a queue, or a pointer to some other
functional data path element.

When the MIB is used for configuration, diffServActionNextFree always
contains a legal value for diffServActionId that is not currently
used in the system's configuration.

3.4.2. diffServCountActTable - The Count Action Table

The count action accumulates statistics pertaining to traffic passing
through a given path through the policy. It is intended to be useful
for usage-based billing, for statistical studies, or for analysis of
the behavior of a policy in a given network. The objects in the
Count Action are various counters and a discontinuity time. The
counters display the number of packets and bytes encountered on the
path since the discontinuity time. They share the same discontinuity
time, which is the discontinuity time of the interface or agent.

The designers of this MIB expect that every path through a policy
should have a corresponding counter. In early versions, it was
impossible to configure an action without implementing a counter,
although the current design makes them in effect the network
manager's option, as a result of making actions consistent in
structure and extensibility. The assurance of proper debugging and
accounting is therefore left with the policy designer.

When the MIB is used for configuration, diffServCountActNextFree
always contains a legal value for diffServCountActId that is not
currently used in the system's configuration.

3.4.3. diffServDscpMarkActTable - The Mark Action Table

The Mark Action table is an unusual table, both in SNMP and in this
MIB. It might be viewed not so much as an array of single-object
entries as an array of OBJECT-IDENTIFIER conventions, as the OID for
a diffServDscpMarkActDscp instance conveys all of the necessary
information: packets are to be marked with the requisite DSCP.

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.

3.4.4. diffServAlgDropTable - The Algorithmic Drop Table

The Algorithmic Drop Table identifies a dropping algorithm, drops
packets, and counts the drops. Classified as an action, it is in
effect a method which applies a packet to a queue, and may modify
either. When the algorithm is "always drop", this is simple; when
the algorithm calls for head-drop, tail-drop, or a variety of Active
Queue Management, the queue is inspected, and in the case of Active
Queue Management, additional parameters are REQUIRED.

What may not be clear from the name is that an Algorithmic Drop
action often does not drop traffic. Algorithms other than "always
drop" normally drop a few percent of packets at most. The action
inspects the diffServQEntry that diffServAlgDropQMeasure points to in
order to determine whether the packet should be dropped.

When the MIB is used for configuration, diffServAlgDropNextFree
always contains a legal value for diffServAlgDropId that is not
currently used in the system's configuration.

3.4.5. diffServRandomDropTable - The Random Drop Parameters Table

The Random Drop Table is an extension of the Algorithmic Drop Table
intended for use on queues whose depth is actively managed. Active
Queue Management algorithms are typified by [RED93], but the
parameters they use vary. It was deemed for the purposes of this MIB
that the proper values to represent include:

o Target case mean queue depth, expressed in bytes or packets

o Worst case mean queue depth, expressed in bytes or packets

o Maximum drop rate expressed as drops per thousand

o Coefficient of an exponentially weighted moving average,
expressed as the numerator of a fraction whose denominator is
65536.

o Sampling rate

An example of the representation chosen in this MIB for this element
is shown in Figure 1.

Random droppers often have their drop probability function described
as 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 becomes 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.

In the MIB module, diffServRandomDropMinThreshBytes and
diffServRandomDropMinThreshPkts represent Qmin.
diffServRandomDropMaxThreshBytes and diffServRandomDropMaxThreshPkts
represent Qmax. diffServAlgDropQThreshold represents Qclip.
diffServRandomDropInvProbMax represents Pmax (inverse). This MIB
does not represent Pmin (assumed to be zero unless otherwise
represented). In addition, since message memory is finite, queues
generally have some upper bound above which they are incapable of
storing additional traffic. Normally this number is equal to Qclip,
specified by diffServAlgDropQThreshold.

AlgDrop Queue
+-----------------+ +-------+
--->| Next ---------+--+------------------->| Next -+--> ...
| QMeasure -------+--+ | ... |
| QThreshold | RandomDrop +-------+
| Type=randomDrop | +----------------+
| Specific -------+---->| MinThreshBytes |
+-----------------+ | MaxThreshBytes |
| ProbMax |
| Weight |
| SamplingRate |
+----------------+

Figure 1: Example Use of the RandomDropTable for Random Droppers

Each random dropper specification is associated with a queue. This
allows multiple drop processes (of same or different types) to be
associated with the same queue, as different PHB implementations may
require. This also allows for sequences of multiple droppers if
necessary.

The calculation of a smoothed queue length may also have an important
bearing on the behavior of the dropper: parameters may include the
sampling interval or rate, and the weight of each sample. The
performance may be very sensitive to the values of these parameters
and a wide range of possible values may be required due to a wide
range of link speeds. Most algorithms include a sample weight,
represented here by diffServRandomDropWeight. The availability of
diffServRandomDropSamplingRate as readable is important, the
information provided by Sampling Rate is essential to the
configuration of diffServRandomDropWeight. Having Sampling Rate be
configurable is also helpful, as line speed increases, the ability to
have queue sampling be less frequent than packet arrival is needed.
Note, however, that there is ongoing research on this topic, see e.g.
[ACTQMGMT] and [AQMROUTER].

Additional parameters may be added in an enterprise MIB module, e.g.
by using AUGMENTS on this table, to handle aspects of random drop
algorithms that are not standardized here.

When the MIB is used for configuration, diffServRandomDropNextFree
always contains a legal value for diffServRandomDropId that is not
currently used in the system's configuration.

3.5. Queuing and Scheduling of Packets

These include Queues and Schedulers, which are inter-related in their
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 priority among them, and at a specific priority find a
secondary WFQ scheduler with some number of queues.

3.5.1. diffServQTable - The Class or Queue Table

The Queue Table models simple FIFO queues. The Scheduler Table
allows flexibility in constructing both simple and somewhat more
complex queuing hierarchies from those queues.

Queue Table entries are pointed at by the "next" attributes of the
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 placed in the same queue, after metering, without reordering.
To accomplish that, the upstream diffServAlgDropNext pointers each
point to the same diffServQEntry.

A common requirement of a queue is that its traffic enjoy a certain
minimum or maximum rate, or that it be given a certain priority.
Functionally, the selection of such is a function of a scheduler.
The parameter is associated with the queue, however, using the
Minimum or Maximum Rate Parameters Table.

When the MIB is used for configuration, diffServQNextFree always
contains a legal value for diffServQId that is not currently used in
the system's configuration.

3.5.2. diffServSchedulerTable - The Scheduler Table

The scheduler, and therefore the Scheduler Table, accepts inputs from
either queues or a preceding scheduler. The Scheduler Table allows
flexibility in constructing both simple and somewhat more complex
queuing hierarchies from those queues.

When the MIB is used for configuration, diffServSchedulerNextFree
always contains a legal value for diffServSchedulerId that is not
currently used in the system's configuration.

3.5.3. diffServMinRateTable - The Minimum Rate Table

When the output rate of a queue or scheduler must be given a minimum
rate or a priority, this is done using the diffServMinRateTable.

Rates may be expressed as absolute rates, or as a fraction of
ifSpeed, and imply the use of a rate-based scheduler such as WFQ or
WRR. The use of a priority implies the use of a Priority Scheduler.
Only one of the Absolute or Relative rates needs to be set; the other
takes the relevant value as a result. Excess capacity is distributed
proportionally among the inputs to a scheduler using the assured
rate. More complex functionality may be described by augmenting this
MIB.

When a priority scheduler is used, its effect is to give the queue
the entire capacity of the subject interface less the capacity used
by 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, diffServMinRateNextFree
always contains a legal value for diffServMinRateId that is not
currently used in the system's configuration.

3.5.4. diffServMaxRateTable - The Maximum Rate Table

When the output rate of a queue or scheduler must be limited to at
most a specified maximum rate, this is done using the
diffServMaxRateTable. Rates may be expressed as absolute rates, or
as a fraction of ifSpeed. Only one of the Absolute or Relative rate
needs to be set; the other takes the relevant value as a result.

The definition of a multirate shaper requires multiple
diffServMaxRateEntries. In this case, an algorithm such as [SHAPER]
is used. In that algorithm, more than one rate is specified, and at
any given time traffic is shaped to the lowest specified rate which
exceeds the arrival rate of traffic.

When the MIB is used for configuration, diffServMaxRateNextFree
always contains a legal value for diffServMaxRateId that is not
currently used in the system's configuration.

3.5.5. Using queues and schedulers together

For representing a Strict Priority scheduler, each scheduler input is
assigned a priority with respect to all the other inputs feeding the
same scheduler, with default values for the other parameters.
Higher-priority traffic that is not being delayed for shaping will be
serviced before a lower-priority input. An example is found in
Figure 2.

For weighted scheduling methods, such as WFQ or WRR, the "weight" of
a given scheduler input is represented with a Minimum Service Rate
leaky-bucket profile which provides a guaranteed minimum bandwidth to
that input, if required. This is represented by a rate
diffServMinRateAbsolute; 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, diffServMinRateRelative, to assist in cases where
line rates are variable or where a higher-level policy might be
expressed in terms of fractions of network resources. The two rate
parameters are inter-related and changes in one may be reflected in
the other. An example is found in figure 3.

+-----+
+-------+ | P S |
| Queue +------------>+ r c |
+-------+-+--------+ | i h |
|Priority| | o e |
+--------+ | r d +----------->
+-------+ | i u |
| Queue +------------>+ t l |
+-------+-+--------+ | y e |
|Priority| | r |
+--------+ +-----+

Figure 2: Priority Scheduler with two queues

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 controls both queue the service
order and the amount of traffic serviced, providing bandwidth sharing
and relative delay ordering amongst the queues.

A queue or scheduled set of queues (which is an input to a scheduler)
may also be capable of acting as a non-work-conserving [MODEL]
traffic shaper: this is done by defining a Maximum Service Rate
leaky-bucket profile in order to limit the scheduler bandwidth
available to that input. This is represented by a rate, in
diffServMaxRateAbsolute; 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, diffServMaxRateRelative. This MIB presumes that
shaping is something a scheduler does to its inputs, which it models
as a queue with a maximum rate or a scheduler whose output has a
maximum rate.

+-----+
+-------+ | W S |
| Queue +------------>+ R c |
+-------+-+--------+ | R h |
| Rate | | e |
+--------+ | o d +----------->
+-------+ | r u |
| Queue +------------>+ l |
+-------+-+--------+ | W e |
| Rate | | F r |
+--------+ | Q |
+-----+

Figure 3: WRR or WFQ rate-based scheduler with two inputs

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 diffServMinRateEntry. NOTE:
diffServSchedulerMethod uses OBJECT IDENTIFIER syntax, with the
different types of scheduling methods defined as OBJECT-IDENTITY.

+---+
+-------+ | S |
| Queue +------------>+ c |
+-------+-+--------+ | h |
| | | e +----------->
+--------+ | d +-+-------+
| u | |Shaping|
+-------+ | l | | Rate |
| Queue +------------>+ e | +-------+
+-------+-+--------+ | r |
| | +---+
+--------+

Figure 4: Shaping scheduled traffic to a known rate

+---+
+-------+ | S |
| Queue +------------>+ c |
+-------+-+--------+ | h |
|Min Rate| | e +----------->
+--------+ | d |
| u |
+-------+ | l |
| Queue +------------>+ e |
+-------+-+--------+ | r |
|Min Rate| | |
+--------+ | |
|Max Rate| | |
+--------+ +---+

Figure 5: Shaping one input to a work-conserving scheduler

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.

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
schedulers. If one were to additionally shape the output of the
system to a rate lower than the interface rate, one must place an
upper bound rate on the output of the priority scheduler. See figure
6.

3.6. Example configuration for AF and EF

For the sake of argument, let us build an example with one EF class
and four AF classes using the constructs in this MIB.

3.6.1. AF and EF Ingress Interface Configuration

The ingress edge interface identifies traffic into classes, meters
it, and ensures that any excess is appropriately dealt with according
to the PHB. For AF, this means marking excess; for EF, it means
dropping excess or shaping it to a maximum rate.

+-----+
+-------+ | P S |
| Queue +---------------------------------->+ r c |
+-------+----------------------+--------+ | i h |
|Priority| | o e +----------->
+--------+ | r d +-+-------+
+------+ | i u | |Shaping|
+-------+ | W S +------------->+ t l | | Rate |
| Queue +------------>+ R c +-+--------+ | y e | +-------+
+-------+-+--------+ | R h | |Priority| | r |
|Min Rate| | e | +--------+ +-----+
+--------+ | o d |
+-------+ | r u |
| Queue +------------>+ l |
+-------+-+--------+ | W e |
|Min Rate| | F r |
+--------+ | Q |
+------+

Figure 6: Combined EF and AF services using cascaded schedulers.

+-----------------------+
| diffServDataPathStart |
+-----------+-----------+
|
+----------+
|
+--+--+ +-----+ +-----+ +-----+ +-----+
| AF1 +-----+ AF2 +-----+ AF3 +-----+ AF4 +-----+ EF |
+--+--+ +--+--+ +--+--+ +--+--+ +--+--+
| | | | |
+--+--+ +--+--+ +--+--+ +--+--+ +--+--+
|trTCM| |trTCM| |trTCM| |trTCM| |srTCM|
|Meter| |Meter| |Meter| |Meter| |Meter|
+-+++-+ +-+++-+ +-+++-+ +-+++-+ +-+-+-+
||| ||| ||| ||| | |
+-+||---+ +-+||---+ +-+||---+ +-+||---+ +-+-|---+
|+-+|----+ |+-+|----+ |+-+|----+ |+-+|----+ |+--+----+
||+-+-----+ ||+-+-----+ ||+-+-----+ ||+-+-----+ ||Actions|
+||Actions| +||Actions| +||Actions| +||Actions| +| |
+| | +| | +| | +| | +-+-----+
+-+-----+ +-+-----+ +-+-----+ +-+-----+ |
||| ||| ||| ||| |
VVV VVV VVV VVV V

Accepted traffic is sent to IP forwarding

Figure 7: combined EF and AF implementation, ingress side

3.6.1.1. Classification In The Example

A packet arriving at an ingress interface picks up its policy from
the diffServDataPathTable. This points to a classifier, which will
select traffic according to some specification for each traffic
class.

An example of a classifier for an AFm class would be a set of three
classifier elements, each pointing to a Multi-field classification
parameter block identifying one of the AFmn DSCPs. Alternatively,
the filters might contain selectors for HTTP traffic or some other
application.

An example of a classifier for EF traffic might be a classifier
element pointing to a filter specifying the EF code point, a
collection of classifiers with parameter blocks specifying individual
telephone calls, or a variety of other approaches.

Typically, of course, a classifier identifies a variety of traffic
------分隔线----------------------------
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
推荐内容