The iproute2 package (the newest version 2.6.10.20050112) includes patches which add the ESFQ and WRR queueing disciplines to the tc tool. However, both patches contain the same bug which prevents them to work. An qdisc registers itself in the tc tool by defining a qdisc_util structure with name <qdisc_name>_qdisc_util. This is an example from iproute2 sources - the SFQ qdisc: struct qdisc_util sfq_qdisc_util = { .id = "sfq", ... However, the qdisc_util structures in the WRR and ESFQ qdiscs have names wrr_util and esfq_util - instead of the correct names wrr_qdisc_util and esfq_qdisc_util. The consequence is that WRR and ESFQ qdisc are successfully compiled but are not recognized by the tc tool. Reproducible: Always Steps to Reproduce: 1. emerge =sys-apps/iproute2-2.6.10.20050112 2. $ tc qdisc add dev lo wrr help 3. $ tc qdisc add dev lo esfq help Actual Results: The actual output is: $ tc qdisc add dev lo wrr help Unknown qdisc "wrr", hence option "help" is unparsable $ tc qdisc add dev lo esfq help Unknown qdisc "esfq", hence option "help" is unparsable Expected Results: The output should be: $ tc qdisc add dev lo wrr help Usage: ... wrr sour|dest ip|masq|mac maxclasses proxymaxcon [penalty-setup] $ tc qdisc add dev lo esfq help Usage: ... esfq [ perturb SECS ] [ quantum BYTES ] [ depth FLOWS ] [ divisor HASHBITS ] [ limit PKTS ] [ hash HASHTYPE] Where: HASHTYPE := { classic | src | dst } This is my emerge info: Portage 2.0.51-r3 (hardened/x86/2.6, gcc-3.3.5, glibc-2.3.4.20040808-r1, 2.6.10- pf-r2 i686) ================================================================= System uname: 2.6.10-pf-r2 i686 Unknown CPU Type Gentoo Base System version 1.4.16 Autoconf: sys-devel/autoconf-2.59-r5 Automake: sys-devel/automake-1.8.5-r1 Binutils: sys-devel/binutils-2.15.92.0.2-r1 Headers: sys-kernel/linux26-headers-2.6.8.1-r2 Libtools: sys-devel/libtool-1.5.2-r7 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-march=i586 -O2 -fomit-frame-pointer -pipe" CHOST="i586-pc-linux-gnu" COMPILER="" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/share/ config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-march=i586 -O2 -fomit-frame-pointer -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs autoconfig ccache distlocks sandbox" GENTOO_MIRRORS="ftp://ftp.sh.cvut.cz/MIRRORS/gentoo/gentoo http://gentoo. oregonstate.edu http://www.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage//packages/x86/" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage/" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" USE="apache2 berkdb crypt dlloader hardened ipv6 java libwww mcal ncurses nptl pam pdflib perl pic pie png python readline samba slang snmp socks5 ssl tcpd tiff x86 xml2 zlib"
Created attachment 50104 [details, diff] The working patch for the WRR qdisc This is the corrected version of the WRR patch.
Created attachment 50105 [details, diff] The working patch for the ESFQ qdisc This is the corrected version of the ESFQ patch.
why dont you try 2.6.10.20050112-r1 which was added already to fix these patches
I'm sorry, I've discovered this bug on my server, which has not so up-to-date portage tree (from 15th January). Ok, the bug is already fixed then... Will check the fresh ebuilds next time :-)