Subject: Re: [Diffserv] multi-level traffic control

From: "Alain BURGAIN" <[email-masked]>
Date: Fri, 05 Nov 1999 12:39:50 +0100

===========================
Need of a multi-level traffic conditioning
===========================

We agree that, for optimal performances, it is better to perform MF
classification in the source host, or in a first router, and to perform only
BA classification in the border router of the ISP.

But we also think that more complex cases might happen (a simple one would be
a non-diffserv aware host directly connected to a border router of a DiffServ
network).

So we think that the MIB should make it possible, either at an ingress
interface of a router, or at an egress one, to perform classification and
control of the traffic both at the « multi field » (application, end user,…)
level and at the « aggregate » (TCS per interface…) level.

The document “A Conceptual Model for DiffServ Routers”
(draft-ietf-diffserv-model-01.txt), presents an architecture, in paragraph
8.3, with a two-level traffic conditioning.

To be exhaustive, the “aggregate” level of traffic classification, might need
a MF classification, when the TCS is not associated only to the network
ingress point, but also to a specific (list of) network egress point(s). So,
we could theorically need a three level traffic conditioning (MF
application-user, MF aggregate toward destination, BA) , though in a real
network, we can probably avoid to do this on a unique router interface.

====================================
Adaptation of the MIB (diffserv-mib-01) to this need
====================================
After the following analysis, the MIB draft can effectively cover most of the
possible cases (but not all), by use of the RowPointer. Some clarification
might still be useful.

MF TCB (Traffic Conditioning Bloc) :
                                      | Action
1.MF classifier -->( 2.Meter ) --> 3. | Marker         --> (4.Queue–if
shaping-) ->
                       (MF)           | MF Counters
                                      | (Queue thresholds)

BA TCB :
                                                      |Action
->5 : BA TCB |--> 5a.(BA classifier) -->6.|Meter -->7.|(Marker)    -->
8.Queue or forwarding
             |--> 5b.MF classifier        |BA         |BA counters
                if the TCS of the                     |Queue thresholds
                aggregate is toward a
                specific network exit point

When the BA TCB is to be performed after a MF TCB, the Behavior Aggregate is
already known, and it is then possible to skip step 5a. This is not true in
the 5b case, as the aggregate is selected according to the destination
address.

The RowPointer in the -01 MIB effectively seem to allow all cases excepted
5b.

=========
Clarifications
=========
In paragraph 3.5 (Queue Table), the definition of the “TCB” (= “Traffic
Control Block”) seems not to be consistent with the one that used above (=
“Traffic Conditioning Block”), and that can be found in various DiffServ
documents.

To my understanding, in some RowPointer comments, like those of
diffServActionNext, and diffServQueueNextTCB, we should understand that the
pointer can (also) point to the Meter of the “Traffic Conditioning Block” of
the Behavior Aggregate that has been selected by the current (in case of an
Action entry) or previous (in case of a Queue entry) Action.

That is to say (cause I’m not sure that was so clear !), if we refer to
paragraph 2 above :

The RowPointer of Action number 3 (or the RowPointer of Queue number 4) can
point to the Meter number 6, which is the Meter of the Traffic Conditioning
Block of the BA selected in Action number 3…

=============================================================
Alternative proposal of extension to DiFFServ MIB to allow multi
level-traffic conditioning
=============================================================
Just in case it would be found useful, either for a clearer and easier to
manage view of two (or more) levels of Traffic Conditioning blocs, or to
allow Multilevel traffic conditioning over a “multifield Aggregate” (case 5b
above)…

In DiffServClassifierEntry (page 10 to 12), add  “diffServClassifierLevel”
(Unsigned32, read-create, current, DEFVAL { 0 } ), before (or after)
“diffServClassifierSequence” :

“ The level of the classifier. Level 0 is the Behavior Aggregate level. Other
levels are Multifield levels. Most often, there is either no multifield
level, or a single one, which is level 1. The highest level is fully
processed first, then, if other levels are present, processing is made in
decreasing order. Only classifiers indicated with the current level are
searched for matching the packet (with respect to the search sequence
specified below), then, as a classifier is found, it is processed with its
associated meter and action and the treatment resumes with the next level of
classification. ”

This object may be added at the end of the index list.

Alain

Brian E Carpenter wrote:

> Alain BURGAIN wrote:
> ...
> > It should be possible to classify and control the traffic both at the «
> > multi field » (application, end user,…) level and at the « aggregate »
> > (TCS per interface…) level.
>
> However, there is no reason why both these stages must occur
> in the same router.
>
> In fact it would seem more natural to do the full MF classification
> in the source host (or possibly the first router) and then do
> the BA classification in an ISP border router.
>
> If you do want to cascade them both at the same router ingress,
> doesn't the RowPointer in the -01 MIB allow this?
>
>   Brian
>
> _______________________________________________
> diffserv mailing list
> [email-masked]
> http://www.ietf.org/mailman/listinfo/diffserv
> Archive: http://www-nrg.ee.lbl.gov/diff-serv-arch/