[IPROUTE]: Use tc_calc_xmittime() where appropriate
Replace expressions of the form "tc_core_usec2tick(1000000 * size/rate)"
by tc_calc_xmittime().
The CBQ case deserves an extra comment: when called with bnwd=rate,
tc_cbq_calc_maxidle() behaves identical to tc_calc_xmittime():
unsigned tc_cbq_calc_maxidle(...)
{
double g = 1.0 - 1.0/(1<<ewma_log);
double xmt = (double)avpkt/bndw;
maxidle = xmt*(1-g);
if (bndw != rate && maxburst) {
...
}
return tc_core_usec2tick(maxidle*(1<<ewma_log)*1000000);
}
which comes down to:
maxidle = xmt * (1 - g)
= xmt * (1 - (1.0 - 1.0/(1 << ewma_log))
= xmt * (1.0/(1 << ewma_log))
so:
maxidle * (1 << ewma_log) * 1000000
= xmt * (1.0/(1 << ewma_log)) * (1 << ewma_log) * 1000000
= xmt * 1000000
= avpkt/bndw * 1000000
Which means tc_core_usec2tick(maxidle*(1<<ewma_log)*1000000) is identical
to tc_calc_xmittime(bndw, avpkt). Use it directly since its a lot easier
to understand its limits.
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
|
||
|---|---|---|
| doc | ||
| etc/iproute2 | ||
| examples | ||
| genl | ||
| include | ||
| ip | ||
| lib | ||
| man | ||
| misc | ||
| netem | ||
| tc | ||
| testsuite | ||
| .gitignore | ||
| COPYING | ||
| ChangeLog | ||
| Makefile | ||
| README | ||
| README.decnet | ||
| README.distribution | ||
| README.iproute2+tc | ||
| README.lnstat | ||
| RELNOTES | ||
| configure | ||
README
Primary site is: http://developer.osdl.org/dev/iproute2 Original FTP site is: ftp://ftp.inr.ac.ru/ip-routing/ How to compile this. -------------------- 1. Look at start of Makefile and set correct values for: KERNEL_INCLUDE should point to correct linux kernel include directory. Default (/usr/src/linux/include) is right as rule. arpd needs to have the db4 development libraries. For debian users this is the package with a name like libdb4.x-dev. DBM_INCLUDE points to the directory with db_185.h which is the include file used by arpd to get to the old format Berkely database routines. Often this is in the db-devel package. 2. make The makefile will automatically build a file Config which contains whether or not ATM is available, etc. 3. To make documentation, cd to doc/ directory , then look at start of Makefile and set correct values for PAGESIZE=a4 , ie: a4 , letter ... (string) PAGESPERPAGE=2 , ie: 1 , 2 ... (numeric) and make there. It assumes, that latex, dvips and psnup are in your path. Stephen Hemminger shemminger@osdl.org Alexey Kuznetsov kuznet@ms2.inr.ac.ru