From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (Client did not present a certificate) by huchra.bufferbloat.net (Postfix) with ESMTPS id 15C21200666 for ; Tue, 13 Aug 2013 02:24:01 -0700 (PDT) Received: from u-088-d147.biologie.uni-tuebingen.de ([134.2.88.147]) by mail.gmx.com (mrgmx102) with ESMTPSA (Nemesis) id 0LxMgg-1WBFfZ0N2Y-016xdw for ; Tue, 13 Aug 2013 11:23:59 +0200 Content-Type: multipart/mixed; boundary="Apple-Mail=_D71343FB-6A97-4702-BB95-C3D0D27215E2" Mime-Version: 1.0 (Mac OS X Mail 6.5 \(1508\)) From: Sebastian Moeller In-Reply-To: Date: Tue, 13 Aug 2013 11:23:59 +0200 Message-Id: <8444520E-068A-416F-B078-242632A57A66@gmx.de> References: <0C8722D2-EC97-4816-9935-D7FC112C6E52@gmx.de> To: Dave Taht X-Mailer: Apple Mail (2.1508) X-Provags-ID: V03:K0:DtJW8ytbrfn7cAMyAsBMrzP5bYKvWmtX43u2I2mN7/WRWGmwfVm gcf8LBt1RSJy7eOep6UhmbXiWNBYi0eM3QLLqlz3uc7SUd406OhTufQYPs68u9MvJywzMQy 2ugJr3Qgorbqz7SgTEVO5w8yngmV9tTTvS1EDgRQLGkah/k5lMY8PtTlWyuOaGXI6VZb2hK TdsvE7XIHwuHTAdnauKNg== Cc: =?iso-8859-1?Q?Toke_H=F8iland-J=F8rgensen?= , "cerowrt-devel@lists.bufferbloat.net" Subject: Re: [Cerowrt-devel] AQM scripts modified for DSL exploration X-BeenThere: cerowrt-devel@lists.bufferbloat.net X-Mailman-Version: 2.1.13 Precedence: list List-Id: Development issues regarding the cerowrt test router project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 09:24:02 -0000 --Apple-Mail=_D71343FB-6A97-4702-BB95-C3D0D27215E2 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=windows-1252 Hi Dave, On Aug 12, 2013, at 02:06 , Dave Taht wrote: > Alright I slammed them into ceropackages for the next build but I > don't get this line: >=20 > STABSTRING=3D"stab mtu 2048 tsize ${TSIZE} overhead ${OVERHEAD} > linklayer ${LINKLAYER}" >=20 > mtu 2048? So it turns out that I got a more complete version ready yesterday. I = had a look at the defaults in actual tc and linux kernel code and MTU = defaults to 2047 instead of 2048, I guess zero based=85 Also I am unsure = whether the td-stab man page is correct in assuming that the kernel = appends the ethernet header size automatically to the packet size (I am = a layman but to me it looks like the overhead mechanism just overwrites = that information); will try to dig deeper into this... I also included the mpu and tsize parameters. Then tested the two = implementations with different values put into the fields. It looks like stab approach works, at least: root@nacktmulle:~# tc -d qdisc qdisc fq_codel a: dev se00 root refcnt 2 limit 1000p flows 1024 quantum = 1000 target 5.0ms interval 100.0ms ecn=20 qdisc htb 1: dev ge00 root refcnt 2 r2q 10 default 12 = direct_packets_stat 0 ver 3.17 linklayer atm overhead 26 mtu 2047 tsize 128=20 but: tc -d class show dev ge00 class htb 1:11 parent 1:1 leaf 110: prio 1 quantum 1500 rate 128000bit = ceil 767000bit burst 1600b/1 mpu 0b overhead 0b cburst 9587b/1 mpu 0b = overhead 0b level 0=20 So HTB does not report overhead and mpu, no wonder as stab works with a = size table and not the rate table that HTB expects, but with the HTB = private link layer adaptation mechanism in place I get: root@nacktmulle:~# tc -d qdisc qdisc fq_codel a: dev se00 root refcnt 2 limit 1000p flows 1024 quantum = 1000 target 5.0ms interval 100.0ms ecn=20 qdisc htb 1: dev ge00 root refcnt 2 r2q 10 default 12 = direct_packets_stat 0 ver 3.17 which is expected as HTB is not supposed to report anything here, but = also: tc -d class show dev ifb0 class htb 1:11 parent 1:1 leaf 110: prio 1 quantum 1500 rate 32000bit = ceil 4899Kbit burst 1600b/1 mpu 0b overhead 0b cburst 244950b/1 mpu 0b = overhead 0b level 0=20 And Fred Stratton aldso showed (with the ADSL box in AQM ticked): tc -s -d class show dev ge00 class htb 1:10 parent 1:1 leaf 110: prio 0 quantum 1500 rate 700000bit = ceil 700000bit burst 1599b/1 mpu 0b overhead 0b cburst 1599b/1 mpu 0b = overhead 0b level 0=20 So it looks like either HTB's private implementation is busted (at = least for mpu and overhead). =46rom my searching through the kernel = code, my gut feeling is that stab is the preferred method anyway, since = it does not fudge with apparent transmit rates (HTB uses a rate table) = but instead fudges the packet length to account for the linklayer = encapsulation and overhead (it effectively modifies = qdisc_skb_cb(skb)->pkt_len) All this leaves me curious, so I guess I need to figure out a way to = test whether the link layer adaptation actually works. The most visible effect of the ATM quantization is for very small = packets were a partly added final atm cell eats a disproportionate part = of the bandwidth, so I guess I need to create a stream of such packets = and test goodput and latency concurrently. All I need to come up with is = the expected goodput at link saturation (with active shaping). This i = following the theory that say a 49 byte packet will require two atm = cells the second of which is padded with 47 bytes, so almost 50% of the = bandwidth is spend for ATM quantization. I guess it might be good to = come up with a simple script to test so that it is easier to catch = regressions in this functionality more easily. So all I need to do is = wrap my head around this and create a simple small script=85=20 Best Sebastian --Apple-Mail=_D71343FB-6A97-4702-BB95-C3D0D27215E2 Content-Disposition: attachment; filename=usr.zip Content-Type: application/zip; x-mac-auto-archive=yes; name="usr.zip" Content-Transfer-Encoding: base64 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 mWdi1y+JXffEdr6nA87z9ElgeiBk2ADaenH1RyPUxw4ggXMXd52dAM4B33Ogy+cObxdiF9WXhcwW m/hDPMoljiE4vbkKyE7fXV8iDkAcZ0hoj/OcpmIZRifaYfJxa5LqB5zqZXfz4Sm0OP2ibWGAvyPw VVhvn4XOkjGj+/raFWgnlQ9Yvg88u8NXyt+tAsTp2osBZlWnqIkgD1+HCwTHOLY/00o1Mxfw4bYB PMC4e2TY5sLo8JfJhPhAeh3wCS2lU3WVIpR2DqNonzGVr/vyurr5tJvSFX+QFd7Q1/I/Edrh6IM4 YukI4+Wd1WV4frguVYXEduA1pAJOjjfvDiDv9HzA4D9mesisUetyO5q8/q2RPU0wCHsORYDak+TN 9cW/57tpvm8c4rsXSWUlcgznBtmPQ5qeBr0bNnxEXmYLrZ2YPllDcEzvxptPMIbDX0OyAcZL0m0V u4QPj948CvcybsQ9bTX9bf3wtK34TK7C4zewNVSqaV/TIPOyBpl6h3xBsN8d09MdZnFgWwUV+x9Q SwcIDhLzxW8FAABeDQAAUEsDBAoAAAAAAABbDUMAAAAAAAAAAAAAAAAaABAAX19NQUNPU1gvdXNy L2xpYi9sdWEvbHVjaS9VWAwAMPsJUjD7CVL1ARQAUEsDBAoAAAAAAABbDUMAAAAAAAAAAAAAAAAg ABAAX19NQUNPU1gvdXNyL2xpYi9sdWEvbHVjaS9tb2RlbC9VWAwAMPsJUjD7CVL1ARQAUEsDBAoA AAAAAABbDUMAAAAAAAAAAAAAAAAkABAAX19NQUNPU1gvdXNyL2xpYi9sdWEvbHVjaS9tb2RlbC9j YmkvVVgMADD7CVIw+wlS9QEUAFBLAwQUAAgACABAqwxDAAAAAAAAAAAAAAAALQAQAF9fTUFDT1NY L3Vzci9saWIvbHVhL2x1Y2kvbW9kZWwvY2JpLy5fYXFtLmx1YVVYDADINglSyDYJUvUBFABjYBVj Z2BiYPBNTFbwD1aIUIACkBgDJxAbAXENEIP46xiIAo4hIUFQJkjHDCAWQ1PCiBAXTc7P1UssKMhJ 1SssTSxKzCvJzEtlKNQ3MDAwsjY1MrBMSzI2sPZNzMyxZgAAUEsHCHBPbERhAAAArgAAAFBLAQIV AwoAAAAAAFKvC0MAAAAAAAAAAAAAAAAEAAwAAAAAAAAAAEDtQQAAAAB1c3IvVVgIAOvsB1Lr7AdS UEsBAhUDFAAIAAgAIawMQ99g44IFAQAABBgAAA0ADAAAAAAAAAAAQKSBMgAAAHVzci8uRFNfU3Rv cmVVWAgAbjgJUm44CVJQSwECFQMKAAAAAAAAWw1DAAAAAAAAAAAAAAAACQAMAAAAAAAAAABA/UGC AQAAX19NQUNPU1gvVVgIADD7CVIw+wlSUEsBAhUDCgAAAAAAAFsNQwAAAAAAAAAAAAAAAA0ADAAA AAAAAAAAQP1BuQEAAF9fTUFDT1NYL3Vzci9VWAgAMPsJUjD7CVJQSwECFQMUAAgACAAhrAxD8yc5 G2YAAACuAAAAGAAMAAAAAAAAAABApIH0AQAAX19NQUNPU1gvdXNyLy5fLkRTX1N0b3JlVVgIAG44 CVJuOAlSUEsBAhUDCgAAAAAAVK8LQwAAAAAAAAAAAAAAAAgADAAAAAAAAAAAQO1BsAIAAHVzci9s aWIvVVgIAPDsB1Lw7AdSUEsBAhUDFAAIAAgAVK8LQ8lpUU3YAAAABBgAABEADAAAAAAAAAAAQKSB 5gIAAHVzci9saWIvLkRTX1N0b3JlVVgIAPDsB1Lw7AdSUEsBAhUDCgAAAAAAAFsNQwAAAAAAAAAA AAAAABEADAAAAAAAAAAAQP1BDQQAAF9fTUFDT1NYL3Vzci9saWIvVVgIADD7CVIw+wlSUEsBAhUD FAAIAAgAVK8LQ/MnORtmAAAArgAAABwADAAAAAAAAAAAQKSBTAQAAF9fTUFDT1NYL3Vzci9saWIv Ll8uRFNfU3RvcmVVWAgA8OwHUvDsB1JQSwECFQMKAAAAAACXbAxDAAAAAAAAAAAAAAAADAAMAAAA AAAAAABA7UEMBQAAdXNyL2xpYi9hcW0vVVgIAM7ICFLOyAhSUEsBAhUDFAAIAAgAl2wMQ7SCuyLl BgAA3hAAABgADAAAAAAAAAAAQKSBRgUAAHVzci9saWIvYXFtL2Z1bmN0aW9ucy5zaFVYCADOyAhS zsgIUlBLAQIVAwoAAAAAAABbDUMAAAAAAAAAAAAAAAAVAAwAAAAAAAAAAED9QYEMAABfX01BQ09T WC91c3IvbGliL2FxbS9VWAgAMPsJUjD7CVJQSwECFQMUAAgACACXbAxDcE9sRGEAAACuAAAAIwAM AAAAAAAAAABApIHEDAAAX19NQUNPU1gvdXNyL2xpYi9hcW0vLl9mdW5jdGlvbnMuc2hVWAgAzsgI Us7ICFJQSwECFQMUAAgACACDbAxDPFPSG5gBAAC0AwAAEgAMAAAAAAAAAABA7YGGDQAAdXNyL2xp Yi9hcW0vcnVuLnNoVVgIAKXICFKlyAhSUEsBAhUDFAAIAAgAg2wMQ3KhXsBhAAAArgAAAB0ADAAA AAAAAAAAQKSBbg8AAF9fTUFDT1NYL3Vzci9saWIvYXFtLy5fcnVuLnNoVVgIAKXICFKlyAhSUEsB AhUDFAAIAAgA4LgIQ234EshdCAAAqhkAABYADAAAAAAAAAAAQO2BKhAAAHVzci9saWIvYXFtL3Np bXBsZS5xb3NVWAgAdAgEUnQIBFJQSwECFQMUAAgACADguAhDcE9sRGEAAACuAAAAIQAMAAAAAAAA AABApIHbGAAAX19NQUNPU1gvdXNyL2xpYi9hcW0vLl9zaW1wbGUucW9zVVgIAHQIBFJ0CARSUEsB AhUDFAAIAAgAAAeqQmo/JZVHAAAASgAAABsADAAAAAAAAAAAQKSBmxkAAHVzci9saWIvYXFtL3Np bXBsZS5xb3MuaGVscFVYCACAKYxRgCmMUVBLAQIVAxQACAAIAAAHqkJwT2xEYQAAAK4AAAAmAAwA AAAAAAAAAECkgTsaAABfX01BQ09TWC91c3IvbGliL2FxbS8uX3NpbXBsZS5xb3MuaGVscFVYCACA KYxRgCmMUVBLAQIVAxQACAAIAAC2CEOjS59awAMAAJ4IAAAYAAwAAAAAAAAAAEDtgQAbAAB1c3Iv bGliL2FxbS9zaW1wbGVzdC5xb3NVWAgAAAQEUgAEBFJQSwECFQMUAAgACAAAtghDcqFewGEAAACu AAAAIwAMAAAAAAAAAABApIEWHwAAX19NQUNPU1gvdXNyL2xpYi9hcW0vLl9zaW1wbGVzdC5xb3NV WAgAAAQEUgAEBFJQSwECFQMUAAgACADAlrJCTtXj1EsAAABMAAAAHQAMAAAAAAAAAABApIHYHwAA dXNyL2xpYi9hcW0vc2ltcGxlc3QucW9zLmhlbHBVWAgAKLKXUSiyl1FQSwECFQMUAAgACADAlrJC cE9sRGEAAACuAAAAKAAMAAAAAAAAAABApIF+IAAAX19NQUNPU1gvdXNyL2xpYi9hcW0vLl9zaW1w bGVzdC5xb3MuaGVscFVYCAAospdRKLKXUVBLAQIVAxQACAAIAGC2l0LcNecTFQEAAGQCAAATAAwA AAAAAAAAAEDtgUUhAAB1c3IvbGliL2FxbS9zdG9wLnNoVVgIADT0dlE09HZRUEsBAhUDFAAIAAgA YLaXQnBPbERhAAAArgAAAB4ADAAAAAAAAAAAQKSBqyIAAF9fTUFDT1NYL3Vzci9saWIvYXFtLy5f c3RvcC5zaFVYCAA09HZRNPR2UVBLAQIVAwoAAAAAAFSvC0MAAAAAAAAAAAAAAAAMAAwAAAAAAAAA AEDtQWgjAAB1c3IvbGliL2x1YS9VWAgA8OwHUvDsB1JQSwECFQMUAAgACABUrwtDfAOFqMYAAAAE GAAAFQAMAAAAAAAAAABApIGiIwAAdXNyL2xpYi9sdWEvLkRTX1N0b3JlVVgIAPDsB1Lw7AdSUEsB AhUDCgAAAAAAAFsNQwAAAAAAAAAAAAAAABUADAAAAAAAAAAAQP1BuyQAAF9fTUFDT1NYL3Vzci9s aWIvbHVhL1VYCAAw+wlSMPsJUlBLAQIVAxQACAAIAFSvC0PzJzkbZgAAAK4AAAAgAAwAAAAAAAAA AECkgf4kAABfX01BQ09TWC91c3IvbGliL2x1YS8uXy5EU19TdG9yZVVYCADw7AdS8OwHUlBLAQIV AwoAAAAAAPOzCEMAAAAAAAAAAAAAAAARAAwAAAAAAAAAAEDtQcIlAAB1c3IvbGliL2x1YS9sdWNp L1VYCAApAARSKQAEUlBLAQIVAwoAAAAAAPWzCEMAAAAAAAAAAAAAAAAXAAwAAAAAAAAAAEDtQQEm AAB1c3IvbGliL2x1YS9sdWNpL21vZGVsL1VYCAAtAARSLQAEUlBLAQIVAwoAAAAAAEhyDEMAAAAA AAAAAAAAAAAbAAwAAAAAAAAAAEDtQUYmAAB1c3IvbGliL2x1YS9sdWNpL21vZGVsL2NiaS9VWAgA h9IIUofSCFJQSwECFQMUAAgACABAqwxDDhLzxW8FAABeDQAAIgAMAAAAAAAAAABApIGPJgAAdXNy L2xpYi9sdWEvbHVjaS9tb2RlbC9jYmkvYXFtLmx1YVVYCADINglSyDYJUlBLAQIVAwoAAAAAAABb DUMAAAAAAAAAAAAAAAAaAAwAAAAAAAAAAED9QV4sAABfX01BQ09TWC91c3IvbGliL2x1YS9sdWNp L1VYCAAw+wlSMPsJUlBLAQIVAwoAAAAAAABbDUMAAAAAAAAAAAAAAAAgAAwAAAAAAAAAAED9QaYs AABfX01BQ09TWC91c3IvbGliL2x1YS9sdWNpL21vZGVsL1VYCAAw+wlSMPsJUlBLAQIVAwoAAAAA AABbDUMAAAAAAAAAAAAAAAAkAAwAAAAAAAAAAED9QfQsAABfX01BQ09TWC91c3IvbGliL2x1YS9s dWNpL21vZGVsL2NiaS9VWAgAMPsJUjD7CVJQSwECFQMUAAgACABAqwxDcE9sRGEAAACuAAAALQAM AAAAAAAAAABApIFGLQAAX19NQUNPU1gvdXNyL2xpYi9sdWEvbHVjaS9tb2RlbC9jYmkvLl9hcW0u bHVhVVgIAMg2CVLINglSUEsFBgAAAAAlACUA4QsAABIuAAAAAA== --Apple-Mail=_D71343FB-6A97-4702-BB95-C3D0D27215E2--