Subject: slackterm formula / RFC 2212

From: Martin Karsten <[email-masked]>
Date: Thu, 10 Dec 1998 16:45:45 +0000 ()

In RFC 2212 (Guaranteed service) on page 13, a formula is given to calculate
R and S modifications when consuming slackterm:
	Sout + b/Rout + Ctoti/Rout <= Sin + b/Rin + Ctoti/Rin
It seems to me that this formula results from earlier drafts for G service
using only b and r as token bucket spec.

In principle, I would expect the middle term on both sides to read as
	[(b-M) / R] * [(p-R) / (p-r)] + M/R
using Rout respectively Rin.
Could someone confirm me on that or tell me what I'm missing?

I already browsed the mail archive of this list, but couldn't find any
explanation/correction.

BTW, the mail archive at ftp.isi.edu only goes until Jan 30 1998. Is there
an addendum or complete archive somewhere else?

Thanks,
Martin

---

From: Roch Guerin <[email-masked]>
Date: Thu, 10 Dec 1998 17:02:06 -0500

Martin,

You have basically got it right.  The expression in the RFC is given
only for the simple case (notation wise) of infinite peak rate.  As you
mention, it is easy to generalize it to the case of a finite peak rate.

Basically, the reasoning is as follows:  The complete end-to-end delay
bound taking the peak rate into consideration is as given on p.3:

[(b- M)/R * (p-R)/(p-r)] + (M+Ctot)/R + Dtot

(I'm assuming here the most common case of r<=R<=p).

It applies also to the delay bound up to node i by replacing Ctot and
Dtot by Ctoti and Dtoti, respectively.

Is you have a non-zero slack term and want to use it to reduce the
reserved rate at node i, then you must basically make sure that you
compensate for the lower rate that will from now on be reserved at node
i and all its upstream neighbors by taking (at least) a  corresponding
amount from the slack term.

When p is infinity, the above expression simplifies to:

b/R + Ctot/R + Dtot or b/R + Ctoti/R +Dtoti for the bound up to node i.

so if you reduce the reserved rate from node i upwards down to Rout from
Rin, the resulting increase in the delay bound is then:

(b/Rout + Ctoti/Rout) - (b/Rin + Ctoti/Rin) which must then be smaller
than or equal to the amount you take from the slack term which is given
by Sin - Sout.
This gives you the expression on page 13 of the RFC.

Now, if you want to use the expression that includes a finite peak rate,
you get that the delay increase is:

([(b- M)/Rout * (p-Rout)/(p-r)] + (M+Ctoti)/R ) -
[(b- M)/Rin * (p-Rin)/(p-r)] + (M+Ctoti)/Rin

which must then be less than or equal to Sin - Sout.  Which is
essentially what you had concluded.

Roch