From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pa0-x235.google.com (mail-pa0-x235.google.com [IPv6:2607:f8b0:400e:c03::235]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by huchra.bufferbloat.net (Postfix) with ESMTPS id C9E9221F4FE for ; Fri, 16 Oct 2015 02:39:59 -0700 (PDT) Received: by pacez2 with SMTP id ez2so296083pac.1 for ; Fri, 16 Oct 2015 02:39:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=hfcMjZGPB8PSzaFwShEFPdZ5PNk7pGnyUiQiC4OKGcE=; b=urI/k/0QGvdbDGiDRxT8yGGVaWoB4Z/muzIf4ZhXiIyj4swA4VAXCa80EMSSX49vNc ZoFHHTZN6vLBQbkzOzxGHWJAir6cwvlKFgEWWWqUTI0hrDwXuWbWxNhGYT1YcYDV+dEl zcpwTdahxf16acUIMkZS4j1B5Yo1dwBpBfObNl4wKkg1JIXQdGwiqdxvxa8zJ7+W5qMt /ino7VWYg6F5pqZ0rqfX8aWYeN51UQ7bNdHtvVvz6SCIpIEgdTWnFBAidb+AuGVKD/HC bnV7tzmz6h2qTVD1Oou6Xo5GnDORKcmOPatTLzGuhKhvC4NazrxSPcKdeLvV8w1ncsmw qTwA== MIME-Version: 1.0 X-Received: by 10.66.102.106 with SMTP id fn10mr15519336pab.156.1444988398912; Fri, 16 Oct 2015 02:39:58 -0700 (PDT) Received: by 10.66.23.38 with HTTP; Fri, 16 Oct 2015 02:39:58 -0700 (PDT) In-Reply-To: <561F9431.6050606@darbyshire-bryant.me.uk> References: <561F9431.6050606@darbyshire-bryant.me.uk> Date: Fri, 16 Oct 2015 13:39:58 +0400 Message-ID: From: Loganaden Velvindron To: Kevin Darbyshire-Bryant Content-Type: multipart/alternative; boundary=047d7bd9070838d2f7052235940f Cc: cake@lists.bufferbloat.net Subject: Re: [Cake] Fresh from the bakery X-BeenThere: cake@lists.bufferbloat.net X-Mailman-Version: 2.1.13 Precedence: list List-Id: Cake - FQ_codel the next generation List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Oct 2015 09:40:22 -0000 --047d7bd9070838d2f7052235940f Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Thu, Oct 15, 2015 at 3:55 PM, Kevin Darbyshire-Bryant < kevin@darbyshire-bryant.me.uk> wrote: > Hi list, > > Jonathan has been slaving over the oven (again) and produced a fresh > batch of commits, this time for the iproute2/tc userland side of things > (announced in another email on this list) This means that the cake > qdisc module & tc will talk to one another again with a few new whizzy > features (and sprinkles!) > > I've just merged those changes into Dave's 'tc-adv' repo, compiled & > run(ning) then here on an Archer C7. I've not *yet* updated the > ceropackages repo to point to the latest sch-cake & tc-adv so it's not > 'openwrt' wide at this time. > > Warning: Since the ABI/API changed, you'll likely need to update both > the kernel module & userland tc - nothing should burst into flames but > 'missing stats' output from tc is a sure sign that cake tray & tin are > not in alignment. > > > Note the new 'rtt' parameter: > > # tc qdisc change cake help > Usage: ... cake [ bandwidth RATE | unlimited* ] > [ rtt TIME | datacentre | lan | metro | regional | > internet* | oceanic | satellite | interplanetary ] > [ besteffort | squash | precedence | diffserv8 | > diffserv4* ] > [ flowblind | srchost | dsthost | hosts | flows* ] > [ atm | noatm* ] [ overhead N | conservative | raw* ] > (* marks defaults) > > > And the stats: > > # tc -s qdisc show dev eth0 > qdisc cake 800a: root refcnt 2 bandwidth 9800Kbit diffserv4 flows rtt > 100.0ms noatm overhead 12 > Sent 1580471 bytes 15158 pkt (dropped 0, overlimits 627 requeues 0) > backlog 0b 0p requeues 0 > Tin 0 Tin 1 Tin 2 Tin 3 > thresh 9800Kbit 9187Kbit 7350Kbit 2450Kbit > target 5.0ms 5.0ms 5.0ms 7.4ms > interval 100.0ms 100.0ms 100.0ms 102.4ms > Pk-delay 0us 381us 2us 1us > Av-delay 0us 10us 0us 0us > Sp-delay 0us 1us 0us 0us > pkts 0 15053 66 39 > bytes 0 1565352 5940 9179 > way-inds 0 43 0 0 > way-miss 0 900 66 11 > way-cols 0 0 0 0 > drops 0 0 0 0 > marks 0 0 0 0 > Sp-flows 0 0 1 0 > Bk-flows 0 2 0 2 > last-len 0 82 90 225 > max-len 0 1514 90 485 > > qdisc ingress ffff: parent ffff:fff1 ---------------- > Sent 12901461 bytes 20356 pkt (dropped 0, overlimits 0 requeues 0) > backlog 0b 0p requeues 0 > > > Note how traffic is classified into Tins, not Classes or Bins :-) > > Enjoy! > > > Building the latest tc-adv causes issues with gcc. gcc -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wold-style-definition -Wformat=3D2 -O2 -I../include -DRESOLVE_HOSTNAMES -DLIBDIR=3D\"/usr/lib\" -DCONFDIR=3D\"/etc/iproute2\" -D_GNU_SOURCE -DHAVE_SETNS -DHAVE_ELF -DCONFIG_GACT -DCONFIG_GACT_PROB -DIPT_LIB_DIR=3D\"/usr/lib/iptables\" -DYY_NO_INPUT -c -o q_cake0.o q_cake0.c In file included from q_cake.c:48:0: q_cake.c: In function =E2=80=98cake_print_xstats=E2=80=99:../include/utils.= h:177:55: error: expected expression before =E2=80=98)=E2=80=99 token # define offsetof(type= , member) ( (size_t) & ( (type *) 0 )->member ) ^q_cake.c:500:31: note: in expansion of macro =E2=80=98offset= of=E2=80=99 && RTA_PAYLOAD(xstats) >=3D offsetof(*stnc, capacity_estimate)) GCC version: gcc version 5.2.0 (GCC) --047d7bd9070838d2f7052235940f Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable


On Thu, Oct 15, 2015 at 3:55 PM, Kevin Darbyshire-Bryant <= kevin@darbyshire-bryant.me.uk> wrote:
Hi = list,

Jonathan has been slaving over the oven (again) and produced a fresh
batch of commits, this time for the iproute2/tc userland side of things
(announced in another email on this list)=C2=A0 This means that the cake qdisc module & tc will talk to one another again with a few new whizzy<= br> features (and sprinkles!)

I've just merged those changes into Dave's 'tc-adv' repo, c= ompiled &
run(ning) then here on an Archer C7.=C2=A0 I've not *yet* updated the ceropackages repo to point to the latest sch-cake & tc-adv so it's = not
'openwrt' wide at this time.

Warning:=C2=A0 Since the ABI/API changed, you'll likely need to update = both
the kernel module & userland tc - nothing should burst into flames but<= br> 'missing stats' output from tc is a sure sign that cake tray & = tin are
not in alignment.


Note the new 'rtt' parameter:

# tc qdisc change cake help
Usage: ... cake [ bandwidth RATE | unlimited* ]
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 [ rtt TIME | datace= ntre | lan | metro | regional |
internet* | oceanic | satellite | interplanetary ]
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 [ besteffort | squa= sh | precedence | diffserv8 |
diffserv4* ]
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 [ flowblind | srcho= st | dsthost | hosts | flows* ]
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 [ atm | noatm* ] [ = overhead N | conservative | raw* ]
=C2=A0 =C2=A0 (* marks defaults)


And the stats:

# tc -s qdisc show dev eth0
qdisc cake 800a: root refcnt 2 bandwidth 9800Kbit diffserv4 flows rtt
100.0ms noatm overhead 12
=C2=A0Sent 1580471 bytes 15158 pkt (dropped 0, overlimits 627 requeues 0) =C2=A0backlog 0b 0p requeues 0
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Tin 0=C2=A0 =C2=A0 =C2=A0 = =C2=A0Tin 1=C2=A0 =C2=A0 =C2=A0 =C2=A0Tin 2=C2=A0 =C2=A0 =C2=A0 =C2=A0Tin 3=
=C2=A0 thresh=C2=A0 =C2=A0 9800Kbit=C2=A0 =C2=A0 9187Kbit=C2=A0 =C2=A0 7350= Kbit=C2=A0 =C2=A0 2450Kbit
=C2=A0 target=C2=A0 =C2=A0 =C2=A0 =C2=A05.0ms=C2=A0 =C2=A0 =C2=A0 =C2=A05.0= ms=C2=A0 =C2=A0 =C2=A0 =C2=A05.0ms=C2=A0 =C2=A0 =C2=A0 =C2=A07.4ms
interval=C2=A0 =C2=A0 =C2=A0100.0ms=C2=A0 =C2=A0 =C2=A0100.0ms=C2=A0 =C2=A0= =C2=A0100.0ms=C2=A0 =C2=A0 =C2=A0102.4ms
Pk-delay=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00us=C2=A0 =C2=A0 =C2=A0 =C2=A0381= us=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A02us=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A01u= s
Av-delay=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00us=C2=A0 =C2=A0 =C2=A0 =C2=A0 10= us=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00us=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00u= s
Sp-delay=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00us=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A01us=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00us=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A00us
=C2=A0 pkts=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00=C2=A0 =C2=A0 = =C2=A0 =C2=A015053=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 66=C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 39
=C2=A0 bytes=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0= 1565352=C2=A0 =C2=A0 =C2=A0 =C2=A0 5940=C2=A0 =C2=A0 =C2=A0 =C2=A0 9179
way-inds=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 43=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00=C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A00
way-miss=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0900=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 66=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 11
way-cols=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A00=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00=C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A00
=C2=A0 drops=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A00=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00
=C2=A0 marks=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A00=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00
Sp-flows=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A00=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A01=C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A00
Bk-flows=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A02=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00=C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A02
last-len=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 82=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 90=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0225
max-len=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2= =A0 1514=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 90=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0485

qdisc ingress ffff: parent ffff:fff1 ----------------
=C2=A0Sent 12901461 bytes 20356 pkt (dropped 0, overlimits 0 requeues 0) =C2=A0backlog 0b 0p requeues 0


Note how traffic is classified into Tins, not Classes or Bins :-)

Enjoy!



Building the latest tc-adv causes issu= es with gcc.

=C2=A0
gcc -Wall -Wstr= ict-prototypes =C2=A0-Wmissing-prototypes -Wmissing-declarations -Wold-styl= e-definition -Wformat=3D2 -O2 -I../include -DRESOLVE_HOSTNAMES -DLIBDIR=3D\= "/usr/lib\" -DCONFDIR=3D\"/etc/iproute2\" -D_GNU_SOURCE= =C2=A0-DHAVE_SETNS -DHAVE_ELF -DCONFIG_GACT -DCONFIG_GACT_PROB -DIPT_LIB_D= IR=3D\"/usr/lib/iptables\" -DYY_NO_INPUT =C2=A0 -c -o q_cake0.o q= _cake0.c
In file included from q_cake.c:48:0:
q_cake.c:= In function =E2=80=98cake_print_xstats=E2=80=99:../include/utils.h:177:55:= error: expected expression before =E2=80=98)=E2=80=99 token # define offse= tof(type, member) ( (size_t) & ( (type *) 0 )->member ) =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ^q_cake.c:500:31: note: in expansion of mac= ro =E2=80=98offsetof=E2=80=99
=C2=A0 =C2=A0 =C2=A0&& RTA_= PAYLOAD(xstats) >=3D offsetof(*stnc, capacity_estimate))

GCC version:
gcc version 5.2.0 (GCC)=C2=A0

--047d7bd9070838d2f7052235940f--