Go to file
Eric Dumazet 185d88f99b tc_codel: Controlled Delay AQM
An implementation of CoDel AQM, from Kathleen Nichols and Van Jacobson.

http://queue.acm.org/detail.cfm?id=2209336

This AQM main input is no longer queue size in bytes or packets, but the
delay packets stay in (FIFO) queue.

As we don't have infinite memory, we still can drop packets in enqueue()
in case of massive load, but mean of CoDel is to drop packets in
dequeue(), using a control law based on two simple parameters :

target : target sojourn time (default 5ms)
interval : width of moving time window (default 100ms)

Selected packets are dropped, unless ECN is enabled and packets can get
ECN mark instead.

Usage: tc qdisc ... codel [ limit PACKETS ] [ target TIME ]
                          [ interval TIME ] [ ecn ]

qdisc codel 10: parent 1:1 limit 2000p target 3.0ms interval 60.0ms ecn
 Sent 13347099587 bytes 8815805 pkt (dropped 0, overlimits 0 requeues 0)
 rate 202365Kbit 16708pps backlog 113550b 75p requeues 0
  count 116 lastcount 98 ldelay 4.3ms dropping drop_next 816us
  maxpacket 1514 ecn_mark 84399 drop_overlimit 0

CoDel must be seen as a base module, and should be used keeping in mind
there is still a FIFO queue. So a typical setup will probably need a
hierarchy of several qdiscs and packet classifiers to be able to meet
whatever constraints a user might have.

One possible example would be to use fq_codel, which combines Fair
Queueing and CoDel, in replacement of sfq / sfq_red.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Dave Taht <dave.taht@bufferbloat.net>
2012-05-22 14:13:52 -07:00
doc doc: add pdf targets 2011-04-12 14:28:04 -07:00
etc/iproute2 iproute2: support listing devices by group 2011-02-25 12:38:50 -08:00
examples dhcp-client-script: don't use /tmp 2012-02-15 10:05:45 -08:00
genl Convert to use rta_getattr_ functions 2012-04-10 08:47:55 -07:00
include Update headers to 3.5 merge window 2012-05-22 14:02:49 -07:00
ip iproute2: man page and /bin/ip disagree on del vs delete 2012-05-21 15:17:28 -07:00
lib iproute2 - Don't hardcode the path to config files 2012-04-12 09:37:18 -07:00
man Update tc-netem manpage to add ecn capability 2012-05-22 14:09:09 -07:00
misc ss: use new INET_DIAG_SKMEMINFO option to get more memory information for tcp socket 2012-05-03 08:27:28 -07:00
netem netem: fix installs of dist files 2010-07-31 19:31:04 -07:00
tc tc_codel: Controlled Delay AQM 2012-05-22 14:13:52 -07:00
testsuite Fix modes of test files 2007-09-05 12:00:01 +01:00
.gitignore Don't put configure files in /tmp 2012-02-15 10:03:39 -08:00
COPYING Update address of FSF in license 2008-03-08 13:31:03 -08:00
Makefile iproute2 - Fix up and simplify variables pointing to install directories 2012-04-12 09:49:10 -07:00
README README cleanup's 2012-01-03 15:04:55 -08:00
README.decnet Decnet documentation update 2005-06-13 18:47:56 +00:00
README.devel iproute2: fix minor typo in comments 2011-07-11 10:11:09 -07:00
README.distribution README cleanup's 2012-01-03 15:04:55 -08:00
README.iproute2+tc README cleanup's 2012-01-03 15:04:55 -08:00
README.lnstat Rename: misc/README.lnstat -> README.lnstat 2004-10-19 20:24:47 +00:00
configure Don't put configure files in /tmp 2012-02-15 10:03:39 -08:00

README

This is a set of utilities for Linux networking.

Information:
    http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2

Download:
    http://devresources.linuxfoundation.org/dev/iproute2/download

Repository:
    git://git.kernel.org/pub/scm/linux/kernel/git/shemminger/iproute2.git

How to compile this.
--------------------
1. libdbm

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 Berkeley
database routines.  Often this is in the db-devel package.

2. make

The makefile will automatically build a Config file 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.

4. This package includes matching sanitized kernel headers because
   the build environment may not have up to date versions. See Makefile
   if you have special requirements and need to point at different
   kernel include files.

Stephen Hemminger
shemminger@linux-foundation.org

Alexey Kuznetsov
kuznet@ms2.inr.ac.ru