History log of /external/iproute2/tc/tc_core.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
839c8456fbe08fc2497857673805b84dffb45507 25-Jul-2008 Jussi Kivilinna <jussi.kivilinna@mbnet.fi> add generic size table for qdiscs

Patch adds generic size table that is similiar to rate table, with
difference that size table stores link layer packet size.

Based on patch by Patrick McHardy
http://marc.info/?l=linux-netdev&m=115201979221729&w=2

Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
Signed-off-by: Stephen Hemminger <stephen.hemminger@vyatta.com>
/external/iproute2/tc/tc_core.c
292f29b42c3444375b5ae7086484c99da7129d94 09-Apr-2008 Jesper Dangaard Brouer <hawk@diku.dk> ATM cell alignment.

Introducing the function that does the ATM cell alignment, and
modifying tc_calc_rtable() to use this based upon a linklayer
parameter.

Modified from original to use constants from atm.h and
fix all the usages of rtable in same patch.

Signed-off-by: Jesper Dangaard Brouer <hawk@comx.dk>
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
/external/iproute2/tc/tc_core.c
eeee367d91c4004c9f75749b5b09e21fa9244b51 05-Sep-2007 Jesper Dangaard Brouer <hawk@comx.dk> Change the rate table calc of transmit cost to use upper bound value.

Patrick McHardy, Cite: 'its better to overestimate than underestimate
to stay in control of the queue'.

Illustrating the rate table array:
Legend description
rtab[x] : Array index x of rtab[x]
xmit_sz : Transmit size contained in rtab[x] (normally transmit time)
maps[a-b] : Packet sizes from a to b, will map into rtab[x]

Current/old rate table mapping (cell_log:3):
rtab[0]:=xmit_sz:0 maps[0-7]
rtab[1]:=xmit_sz:8 maps[8-15]
rtab[2]:=xmit_sz:16 maps[16-23]
rtab[3]:=xmit_sz:24 maps[24-31]
rtab[4]:=xmit_sz:32 maps[32-39]
rtab[5]:=xmit_sz:40 maps[40-47]
rtab[6]:=xmit_sz:48 maps[48-55]

New rate table mapping, with kernel cell_align support.
rtab[0]:=xmit_sz:8 maps[0-8]
rtab[1]:=xmit_sz:16 maps[9-16]
rtab[2]:=xmit_sz:24 maps[17-24]
rtab[3]:=xmit_sz:32 maps[25-32]
rtab[4]:=xmit_sz:40 maps[33-40]
rtab[5]:=xmit_sz:48 maps[41-48]
rtab[6]:=xmit_sz:56 maps[49-56]

New TC util on a kernel WITHOUT support for cell_align
rtab[0]:=xmit_sz:8 maps[0-7]
rtab[1]:=xmit_sz:16 maps[8-15]
rtab[2]:=xmit_sz:24 maps[16-23]
rtab[3]:=xmit_sz:32 maps[24-31]
rtab[4]:=xmit_sz:40 maps[32-39]
rtab[5]:=xmit_sz:48 maps[40-47]
rtab[6]:=xmit_sz:56 maps[48-55]

Signed-off-by: Jesper Dangaard Brouer <hawk@comx.dk>
Signed-off-by: Stephen Hemminger <stephen.hemminger@vyatta.com>
/external/iproute2/tc/tc_core.c
d5f46f9cc3856af532e852ef29fd7ddfd141faf0 05-Sep-2007 Jesper Dangaard Brouer <hawk@comx.dk> Cleanup: tc_calc_rtable().

Change tc_calc_rtable() to take a tc_ratespec struct as an
argument. (cell_log still needs to be passed on as a parameter,
because -1 indicate that the cell_log needs to be computed by the
function.).

Signed-off-by: Jesper Dangaard Brouer <hawk@comx.dk>
Signed-off-by: Stephen Hemminger <stephen.hemminger@vyatta.com>
/external/iproute2/tc/tc_core.c
bccd014b866daa21002f7ac682cee57a9fe003e3 11-Sep-2007 Jesper Dangaard Brouer <hawk@comx.dk> Overhead calculation is now done in the kernel.

The only current user is HTB. HTB overhead argument is now passed on
to the kernel (in the struct tc_ratespec). Also correct the data
types.

Signed-off-by: Jesper Dangaard Brouer <hawk@comx.dk>
Signed-off-by: Stephen Hemminger <stephen.hemminger@vyatta.com>
/external/iproute2/tc/tc_core.c
64e2ad593b7610d547741aa3d68b5f130c0560b0 12-Oct-2007 Andreas Henriksson <andreas@fatal.se> Also do tc_core_time2big argument (long->unsigned).

tc_core_time2big only used in tc/q_netem.c where it gets passed an unsigned.

Signed-off-by: Andreas Henriksson <andreas@fatal.se>
Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
/external/iproute2/tc/tc_core.c
57a800d45a5f8f46c9ce4950599f17545413c82d 12-Oct-2007 Andreas Henriksson <andreas@fatal.se> Switch helpers tc_core_{time2ktime,ktime2time} from long to unsigned as well.

Follow up patch to "Fix overflow in time2tick / tick2time." which switches
the remaining two helper functions from long to unsigned as well.
These functions are only used in "tc/q_hfsc.c" where both the passed argument
and the place the return value is stored are unsigned/u32 variables, so this
change should be safe to make but hasn't been tested as extensively as the
time2tick patch.

Signed-off-by: Andreas Henriksson <andreas@fatal.se>
Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
/external/iproute2/tc/tc_core.c
447598449817fcaea26016d9102d703c4d16bd9c 12-Oct-2007 Andreas Henriksson <andreas@fatal.se> Fix overflow in time2tick / tick2time.

The helper functions gets passed an unsigned int, which gets cast to long
and overflows. See http://bugs.debian.org/175462

Signed-off-by: Andreas Henriksson <andreas@fatal.se>
Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
/external/iproute2/tc/tc_core.c
147e1d4b5abad8da3fc69fb23a4c9a4457e65d66 04-Mar-2007 Patrick McHardy <kaber@trash.net> Handle different kernel clock resolutions

[IPROUTE]: Handle different kernel clock resolutions

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
/external/iproute2/tc/tc_core.c
8f34caafbdbc8f87d228d577872591e138caadb1 04-Mar-2007 Patrick McHardy <kaber@trash.net> Replace "usec" by "time" in function names

[IPROUTE]: Replace "usec" by "time" in function names

Rename functions containing "usec" since they don't necessarily return
usec units anymore.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
/external/iproute2/tc/tc_core.c
f0bda7e5a52d880a85af698a041afa7dc379e76e 04-Mar-2007 Patrick McHardy <kaber@trash.net> Introduce TIME_UNITS_PER_SEC to represent internal clock resolution

[IPROUTE]: Introduce TIME_UNITS_PER_SEC to represent internal clock resolution

Introduce TIME_UNITS_PER_SEC and conversion functions between internal
resolution and resolution expected by the kernel (currently implemented as
NOPs, only needed by HFSC, which currently always uses microseconds).

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
/external/iproute2/tc/tc_core.c
76dc0aa28fe6fa78e263bf0250c1e42c584dd544 04-Mar-2007 Patrick McHardy <kaber@trash.net> Introduce tc_calc_xmitsize and use where appropriate

[IPROUTE]: Introduce tc_calc_xmitsize and use where appropriate

Add tc_calc_xmitsize() as complement to tc_calc_xmittime(), which calculates
the size that can be transmitted at a given rate during a given time.

Replace all expressions of the form "size = rate*tc_core_tick2usec(time))/1000000"
by tc_calc_xmitsize() calls.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
/external/iproute2/tc/tc_core.c
476daa7278aaf324f6cef27981f81187afce8836 04-Mar-2007 Patrick McHardy <kaber@trash.net> Use tc_calc_xmittime() where appropriate

[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>
/external/iproute2/tc/tc_core.c
fa56513034c839e444ab7ca986ddb178dece86c7 19-Oct-2006 Stephen Hemminger <shemminger@osdl.org> Trap possible overflow in usec values to netem
If user asks for large usec value it could overflow 32 bits.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
/external/iproute2/tc/tc_core.c
934677a23e278f2991938061a9accea2627deccb 30-Jul-2004 osdl.net!shemminger <osdl.net!shemminger> Adds mpu support to HTB (ATM) queueing discipline


(Logical change 1.58)
/external/iproute2/tc/tc_core.c
aba5acdfdb347d2c21fc67d613d83d4430ca3937 15-Apr-2004 osdl.org!shemminger <osdl.org!shemminger> (Logical change 1.3)
/external/iproute2/tc/tc_core.c
86fdf0e47be697587efcf9602cd1f952a1d73170 15-Apr-2004 osdl.org!shemminger <osdl.org!shemminger> Initial revision
/external/iproute2/tc/tc_core.c