CoDel AQM discussions
 help / color / mirror / Atom feed
* [Codel] testbed for testing fq_codel on wifi doesn't work as expected
@ 2013-06-01 11:09 Alessandro Bolletta
       [not found] ` <CAJpd8ptGOYJGz+3kFi60JAZpRPjzFpD_vXm4OAf9PQw=COcfzg@mail.gmail.com>
  0 siblings, 1 reply; 4+ messages in thread
From: Alessandro Bolletta @ 2013-06-01 11:09 UTC (permalink / raw)
  To: codel

[-- Attachment #1: Type: text/plain, Size: 5830 bytes --]

Hi everybody,
I made a little testbed in my office with 2 Ubiquiti Nanobridge M5 and 2 TPlink 741nd.
Nanobridges are simply connected in AP-STA mode and relaying traffic to the two TPLinks where i'm running batman-adv. So I bridged the bat0 interface create by batman-adv with one of the ethernet ports offered by the ar71xx CPU. So I connected two laptops to the bridge at both ends and I pushed up a bidirectional UDP flow filling the wifi link available bandwidth (I saw that it constantly runs at 33Mbps in download and 37Mbps in upload).
In every device (tplinks and ubnts) i'm running OpenWRT BARRIER BREAKER (Bleeding Edge, r36692), running on kernel 3.8.12
I executed Dave Taht's debloat script for bash (and also the lua-compatible one) on every device, but if i try to make a ping starting from a laptop to the opposite laptop, these are the times that I get (sorry, it's written in italian. "Richiesta scaduta" means "expired reply"):

Risposta da 192.168.2.25: byte=32 durata=259ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=281ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=285ms TTL=128
Richiesta scaduta.
Risposta da 192.168.2.25: byte=32 durata=91ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=130ms TTL=128
Richiesta scaduta.
Richiesta scaduta.
Richiesta scaduta.
Risposta da 192.168.2.25: byte=32 durata=251ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=188ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=156ms TTL=128
Richiesta scaduta.
Risposta da 192.168.2.25: byte=32 durata=279ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=314ms TTL=128
Richiesta scaduta.
Risposta da 192.168.2.25: byte=32 durata=288ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=324ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=297ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=318ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=301ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=115ms TTL=128
Richiesta scaduta.
Risposta da 192.168.2.25: byte=32 durata=312ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=292ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=266ms TTL=128
Richiesta scaduta.
Risposta da 192.168.2.25: byte=32 durata=227ms TTL=128
Richiesta scaduta.
Risposta da 192.168.2.25: byte=32 durata=91ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=266ms TTL=128
Richiesta scaduta.
Risposta da 192.168.2.25: byte=32 durata=190ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=161ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=132ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=118ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=166ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=247ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=281ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=282ms TTL=128
Richiesta scaduta.
Risposta da 192.168.2.25: byte=32 durata=288ms TTL=128
Richiesta scaduta.
Risposta da 192.168.2.25: byte=32 durata=165ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=251ms TTL=128
Richiesta scaduta.
Risposta da 192.168.2.25: byte=32 durata=307ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=294ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=297ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=275ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=288ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=282ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=273ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=224ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=159ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=103ms TTL=128
Richiesta scaduta.
Richiesta scaduta.
Richiesta scaduta.
Risposta da 192.168.2.25: byte=32 durata=186ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=225ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=299ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=112ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=171ms TTL=128
Richiesta scaduta.
Richiesta scaduta.
Risposta da 192.168.2.25: byte=32 durata=175ms TTL=128
Richiesta scaduta.
Richiesta scaduta.
Risposta da 192.168.2.25: byte=32 durata=147ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=211ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=279ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=279ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=228ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=219ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=167ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=177ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=197ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=265ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=275ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=237ms TTL=128
Richiesta scaduta.
Risposta da 192.168.2.25: byte=32 durata=237ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=285ms TTL=128
Richiesta scaduta.
Richiesta scaduta.
Risposta da 192.168.2.25: byte=32 durata=166ms TTL=128
Richiesta scaduta.
Risposta da 192.168.2.25: byte=32 durata=262ms TTL=128
Richiesta scaduta.
Risposta da 192.168.2.25: byte=32 durata=275ms TTL=128
Richiesta scaduta.
Risposta da 192.168.2.25: byte=32 durata=30ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=84ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=249ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=244ms TTL=128
Richiesta scaduta.
Risposta da 192.168.2.25: byte=32 durata=201ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=110ms TTL=128
Richiesta scaduta.
Risposta da 192.168.2.25: byte=32 durata=220ms TTL=128
Risposta da 192.168.2.25: byte=32 durata=240ms TTL=128


While if I ping while i'm not doing traffic at all I get 1ms RTT replies without packet loss.
Can you help me to find the cause of this bufferbloat?

Thanks
Alessandro

[-- Attachment #2: Type: text/html, Size: 11914 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Codel] R: testbed for testing fq_codel on wifi doesn't work as expected
       [not found] ` <CAJpd8ptGOYJGz+3kFi60JAZpRPjzFpD_vXm4OAf9PQw=COcfzg@mail.gmail.com>
@ 2013-06-03  8:35   ` Alessandro Bolletta
       [not found]     ` <CAJpd8puSZELTrLVbTe_9G3FmxLD3JQc0hP0=wf=0m3QQZzkeQw@mail.gmail.com>
  0 siblings, 1 reply; 4+ messages in thread
From: Alessandro Bolletta @ 2013-06-03  8:35 UTC (permalink / raw)
  To: Jaume Barcelo; +Cc: codel

Hi Jaume,

the dropping technique should involve every type of packet fulling the queue, including UDP packets.
It seems that there's something wrong with my configuration.

--
Alessandro Bolletta
Mediaspot S.r.l.

-----Messaggio originale-----
Da: Jaume Barcelo [mailto:jaume.barcelo@upf.edu] 
Inviato: lunedì 3 giugno 2013 10.32
A: Alessandro Bolletta
Oggetto: Re: [Codel] testbed for testing fq_codel on wifi doesn't work as expected

Hi Alessandro,

I am a newbie here. I wanted to ask why do you use udp to saturate the link. I thought that codel was meant to throttle tcp flows.

Cheers,
Jaume

On Sat, Jun 1, 2013 at 1:09 PM, Alessandro Bolletta <alessandro@mediaspot.net> wrote:
> Hi everybody,
>
> I made a little testbed in my office with 2 Ubiquiti Nanobridge M5 and 
> 2 TPlink 741nd.
>
> Nanobridges are simply connected in AP-STA mode and relaying traffic 
> to the two TPLinks where i'm running batman-adv. So I bridged the bat0 
> interface create by batman-adv with one of the ethernet ports offered 
> by the ar71xx CPU. So I connected two laptops to the bridge at both 
> ends and I pushed up a bidirectional UDP flow filling the wifi link 
> available bandwidth (I saw that it constantly runs at 33Mbps in download and 37Mbps in upload).
>
> In every device (tplinks and ubnts) i'm running OpenWRT BARRIER 
> BREAKER (Bleeding Edge, r36692), running on kernel 3.8.12
>
> I executed Dave Taht's debloat script for bash (and also the 
> lua-compatible
> one) on every device, but if i try to make a ping starting from a 
> laptop to the opposite laptop, these are the times that I get (sorry, 
> it's written in italian. "Richiesta scaduta" means "expired reply"):
>
>
>
> Risposta da 192.168.2.25: byte=32 durata=259ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=281ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=285ms TTL=128
>
> Richiesta scaduta.
>
> Risposta da 192.168.2.25: byte=32 durata=91ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=130ms TTL=128
>
> Richiesta scaduta.
>
> Richiesta scaduta.
>
> Richiesta scaduta.
>
> Risposta da 192.168.2.25: byte=32 durata=251ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=188ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=156ms TTL=128
>
> Richiesta scaduta.
>
> Risposta da 192.168.2.25: byte=32 durata=279ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=314ms TTL=128
>
> Richiesta scaduta.
>
> Risposta da 192.168.2.25: byte=32 durata=288ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=324ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=297ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=318ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=301ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=115ms TTL=128
>
> Richiesta scaduta.
>
> Risposta da 192.168.2.25: byte=32 durata=312ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=292ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=266ms TTL=128
>
> Richiesta scaduta.
>
> Risposta da 192.168.2.25: byte=32 durata=227ms TTL=128
>
> Richiesta scaduta.
>
> Risposta da 192.168.2.25: byte=32 durata=91ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=266ms TTL=128
>
> Richiesta scaduta.
>
> Risposta da 192.168.2.25: byte=32 durata=190ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=161ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=132ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=118ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=166ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=247ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=281ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=282ms TTL=128
>
> Richiesta scaduta.
>
> Risposta da 192.168.2.25: byte=32 durata=288ms TTL=128
>
> Richiesta scaduta.
>
> Risposta da 192.168.2.25: byte=32 durata=165ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=251ms TTL=128
>
> Richiesta scaduta.
>
> Risposta da 192.168.2.25: byte=32 durata=307ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=294ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=297ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=275ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=288ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=282ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=273ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=224ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=159ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=103ms TTL=128
>
> Richiesta scaduta.
>
> Richiesta scaduta.
>
> Richiesta scaduta.
>
> Risposta da 192.168.2.25: byte=32 durata=186ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=225ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=299ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=112ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=171ms TTL=128
>
> Richiesta scaduta.
>
> Richiesta scaduta.
>
> Risposta da 192.168.2.25: byte=32 durata=175ms TTL=128
>
> Richiesta scaduta.
>
> Richiesta scaduta.
>
> Risposta da 192.168.2.25: byte=32 durata=147ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=211ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=279ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=279ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=228ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=219ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=167ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=177ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=197ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=265ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=275ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=237ms TTL=128
>
> Richiesta scaduta.
>
> Risposta da 192.168.2.25: byte=32 durata=237ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=285ms TTL=128
>
> Richiesta scaduta.
>
> Richiesta scaduta.
>
> Risposta da 192.168.2.25: byte=32 durata=166ms TTL=128
>
> Richiesta scaduta.
>
> Risposta da 192.168.2.25: byte=32 durata=262ms TTL=128
>
> Richiesta scaduta.
>
> Risposta da 192.168.2.25: byte=32 durata=275ms TTL=128
>
> Richiesta scaduta.
>
> Risposta da 192.168.2.25: byte=32 durata=30ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=84ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=249ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=244ms TTL=128
>
> Richiesta scaduta.
>
> Risposta da 192.168.2.25: byte=32 durata=201ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=110ms TTL=128
>
> Richiesta scaduta.
>
> Risposta da 192.168.2.25: byte=32 durata=220ms TTL=128
>
> Risposta da 192.168.2.25: byte=32 durata=240ms TTL=128
>
>
>
>
>
> While if I ping while i'm not doing traffic at all I get 1ms RTT 
> replies without packet loss.
>
> Can you help me to find the cause of this bufferbloat?
>
>
>
> Thanks
>
> Alessandro
>
>
> _______________________________________________
> Codel mailing list
> Codel@lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/codel
>



^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Codel] R: testbed for testing fq_codel on wifi doesn't work as expected
       [not found]     ` <CAJpd8puSZELTrLVbTe_9G3FmxLD3JQc0hP0=wf=0m3QQZzkeQw@mail.gmail.com>
@ 2013-06-03  8:57       ` Alessandro Bolletta
  0 siblings, 0 replies; 4+ messages in thread
From: Alessandro Bolletta @ 2013-06-03  8:57 UTC (permalink / raw)
  To: Jaume Barcelo; +Cc: codel

Yes, what you're saying is right, because only TCP can scale down the window size in order to lower down his throughput when a packet loss is matched, so a TCP flow can correctly handle a packet loss event and resend the lost packet while decreasing the window size through his ARQ protocol. 
So, it's true that CoDel is primarily developed in function of TCP, but it is also true that fq_codel doesn't know what packet is dropping when happens that the queue fills out, simply because I'm configuring fq_codel to be the default qdisc for my ethernet interfaces.
In conclusion, if I send a large UDP data flow without an application-layer ARQ protocol and filling the queue, the data trasmitted will be unreliable, because of packet loss generated by fq_codel, but I shouldn't experience bufferbloat. 
And this is what matters for me :)

--
Alessandro Bolletta
Mediaspot S.r.l.

-----Messaggio originale-----
Da: Jaume Barcelo [mailto:jaume.barcelo@upf.edu] 
Inviato: lunedì 3 giugno 2013 10.44
A: Alessandro Bolletta
Oggetto: Re: [Codel] testbed for testing fq_codel on wifi doesn't work as expected

From what I read, the idea is to drop packets to signal the TCP flows to slow down. Why don't you try to saturate the flow using TCP?
(iperf, or scp a large file)

The Codel paper starts by explaining the behaviour of TCP in the bottleneck. That's why I suspect that codel (and aqm in general) works only with TCP.

Cheers!
Jaume

On Mon, Jun 3, 2013 at 10:35 AM, Alessandro Bolletta <alessandro@mediaspot.net> wrote:
> Hi Jaume,
>
> the dropping technique should involve every type of packet fulling the queue, including UDP packets.
> It seems that there's something wrong with my configuration.
>
> --
> Alessandro Bolletta
> Mediaspot S.r.l.
>
> -----Messaggio originale-----
> Da: Jaume Barcelo [mailto:jaume.barcelo@upf.edu]
> Inviato: lunedì 3 giugno 2013 10.32
> A: Alessandro Bolletta
> Oggetto: Re: [Codel] testbed for testing fq_codel on wifi doesn't work 
> as expected
>
> Hi Alessandro,
>
> I am a newbie here. I wanted to ask why do you use udp to saturate the link. I thought that codel was meant to throttle tcp flows.
>
> Cheers,
> Jaume
>
> On Sat, Jun 1, 2013 at 1:09 PM, Alessandro Bolletta <alessandro@mediaspot.net> wrote:
>> Hi everybody,
>>
>> I made a little testbed in my office with 2 Ubiquiti Nanobridge M5 
>> and
>> 2 TPlink 741nd.
>>
>> Nanobridges are simply connected in AP-STA mode and relaying traffic 
>> to the two TPLinks where i'm running batman-adv. So I bridged the 
>> bat0 interface create by batman-adv with one of the ethernet ports 
>> offered by the ar71xx CPU. So I connected two laptops to the bridge 
>> at both ends and I pushed up a bidirectional UDP flow filling the 
>> wifi link available bandwidth (I saw that it constantly runs at 33Mbps in download and 37Mbps in upload).
>>
>> In every device (tplinks and ubnts) i'm running OpenWRT BARRIER 
>> BREAKER (Bleeding Edge, r36692), running on kernel 3.8.12
>>
>> I executed Dave Taht's debloat script for bash (and also the 
>> lua-compatible
>> one) on every device, but if i try to make a ping starting from a 
>> laptop to the opposite laptop, these are the times that I get (sorry, 
>> it's written in italian. "Richiesta scaduta" means "expired reply"):
>>
>>
>>
>> Risposta da 192.168.2.25: byte=32 durata=259ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=281ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=285ms TTL=128
>>
>> Richiesta scaduta.
>>
>> Risposta da 192.168.2.25: byte=32 durata=91ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=130ms TTL=128
>>
>> Richiesta scaduta.
>>
>> Richiesta scaduta.
>>
>> Richiesta scaduta.
>>
>> Risposta da 192.168.2.25: byte=32 durata=251ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=188ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=156ms TTL=128
>>
>> Richiesta scaduta.
>>
>> Risposta da 192.168.2.25: byte=32 durata=279ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=314ms TTL=128
>>
>> Richiesta scaduta.
>>
>> Risposta da 192.168.2.25: byte=32 durata=288ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=324ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=297ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=318ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=301ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=115ms TTL=128
>>
>> Richiesta scaduta.
>>
>> Risposta da 192.168.2.25: byte=32 durata=312ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=292ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=266ms TTL=128
>>
>> Richiesta scaduta.
>>
>> Risposta da 192.168.2.25: byte=32 durata=227ms TTL=128
>>
>> Richiesta scaduta.
>>
>> Risposta da 192.168.2.25: byte=32 durata=91ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=266ms TTL=128
>>
>> Richiesta scaduta.
>>
>> Risposta da 192.168.2.25: byte=32 durata=190ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=161ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=132ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=118ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=166ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=247ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=281ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=282ms TTL=128
>>
>> Richiesta scaduta.
>>
>> Risposta da 192.168.2.25: byte=32 durata=288ms TTL=128
>>
>> Richiesta scaduta.
>>
>> Risposta da 192.168.2.25: byte=32 durata=165ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=251ms TTL=128
>>
>> Richiesta scaduta.
>>
>> Risposta da 192.168.2.25: byte=32 durata=307ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=294ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=297ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=275ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=288ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=282ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=273ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=224ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=159ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=103ms TTL=128
>>
>> Richiesta scaduta.
>>
>> Richiesta scaduta.
>>
>> Richiesta scaduta.
>>
>> Risposta da 192.168.2.25: byte=32 durata=186ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=225ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=299ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=112ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=171ms TTL=128
>>
>> Richiesta scaduta.
>>
>> Richiesta scaduta.
>>
>> Risposta da 192.168.2.25: byte=32 durata=175ms TTL=128
>>
>> Richiesta scaduta.
>>
>> Richiesta scaduta.
>>
>> Risposta da 192.168.2.25: byte=32 durata=147ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=211ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=279ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=279ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=228ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=219ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=167ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=177ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=197ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=265ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=275ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=237ms TTL=128
>>
>> Richiesta scaduta.
>>
>> Risposta da 192.168.2.25: byte=32 durata=237ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=285ms TTL=128
>>
>> Richiesta scaduta.
>>
>> Richiesta scaduta.
>>
>> Risposta da 192.168.2.25: byte=32 durata=166ms TTL=128
>>
>> Richiesta scaduta.
>>
>> Risposta da 192.168.2.25: byte=32 durata=262ms TTL=128
>>
>> Richiesta scaduta.
>>
>> Risposta da 192.168.2.25: byte=32 durata=275ms TTL=128
>>
>> Richiesta scaduta.
>>
>> Risposta da 192.168.2.25: byte=32 durata=30ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=84ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=249ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=244ms TTL=128
>>
>> Richiesta scaduta.
>>
>> Risposta da 192.168.2.25: byte=32 durata=201ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=110ms TTL=128
>>
>> Richiesta scaduta.
>>
>> Risposta da 192.168.2.25: byte=32 durata=220ms TTL=128
>>
>> Risposta da 192.168.2.25: byte=32 durata=240ms TTL=128
>>
>>
>>
>>
>>
>> While if I ping while i'm not doing traffic at all I get 1ms RTT 
>> replies without packet loss.
>>
>> Can you help me to find the cause of this bufferbloat?
>>
>>
>>
>> Thanks
>>
>> Alessandro
>>
>>
>> _______________________________________________
>> Codel mailing list
>> Codel@lists.bufferbloat.net
>> https://lists.bufferbloat.net/listinfo/codel
>>
>
>



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Codel] testbed for testing fq_codel on wifi doesn't work as expected
@ 2013-06-04  9:42 Alessandro Bolletta
  0 siblings, 0 replies; 4+ messages in thread
From: Alessandro Bolletta @ 2013-06-04  9:42 UTC (permalink / raw)
  To: codel

[-- Attachment #1: Type: text/plain, Size: 12139 bytes --]




-------- Messaggio originale --------
Da: Alessandro Bolletta <alessandro@mediaspot.net>
Data:
A: codel@lists.bufferbloat.net
Oggetto: I: Re: R: Re: R: Re: [Codel] testbed for testing fq_codel on wifi doesn't work as expected


Yes Dave, you're right.
For the public list: i'm trying to understand why i'm encountering bufferbloat in a quite simple (but geared with bridges and batman-adv's L2 abstraction. Another info: i'm also using trelay in order to use wifi interface of the nano bridges in the tplink devices avoiding ethernet/802.11 header wrong translation) testbed. I already applied debloat script (the lua based one) to my physical interfaces as eth0 and wlan0 but if i try to load the wifi link with an UDP bidirectional flow I experience bufferbloat and I still couldn't figure out why. Tomorrow I will try to simplify the configuration of the testbed but I'll have to solve this problem because it will be the configuration that we're going to use on our mesh network.


--

Alessandro Bolletta
Mediaspot Srl



-------- Messaggio originale --------
Da: Dave Taht <dave.taht@gmail.com>
Data:
A: Alessandro Bolletta <alessandro@mediaspot.net>
Oggetto: Re: R: Re: R: Re: [Codel] testbed for testing fq_codel on wifi doesn't work as expected


Can we do this stuff in public please?

I think it is possible we are miscommunicating somewhere here.

1) What I'd said elsewhere was that the debloat script did not debloat a bridge, when handed an IFACE=lan-br it doesn't do the right thing.

if you have a bridge, the underlying interfaces need to be debloated, so you'd have (for example eth0 and wlan0 bridged together which need the debloat run on each). We clear there?

2) Bridging wifi and wired together is a bad idea in the case of multicast. So that's a source of bloat given that the interface slows down a lot to deliver multicast.





On Sun, Jun 2, 2013 at 6:43 AM, Alessandro Bolletta <alessandro@mediaspot.net<mailto:alessandro@mediaspot.net>> wrote:

Why do you think that bridges could be source of bufferbloat?
--
Alessandro Bolletta
Mediaspot srl

Dave Taht <dave.taht@gmail.com<mailto:dave.taht@gmail.com>> ha scritto:



Find /sys -name qlen_\*

Set vo to 2 vi to 4 be to 12. Bk to 12. For lowest latency set to 4.

4 will clobber throughput. We are well aware of how to fix aggregation to work well with fq codel but didn't get funded so the best compromise at the moment is about 12.

On Jun 1, 2013 9:31 AM, "Dave Taht" <dave.taht@gmail.com<mailto:dave.taht@gmail.com>> wrote:

As I said debloat doesn't work on bridges you have to apply it to the underlying interfaces. In /etc/rc.local if you must. I never figured out a sane way to parse brctl.

On Jun 1, 2013 9:11 AM, "Alessandro Bolletta" <alessandro@mediaspot.net<mailto:alessandro@mediaspot.net>> wrote:
I tried the lua version but it doesn't seem to apply correctly changes. Is there any common problem that I could have to know?


--

Alessandro Bolletta
Mediaspot Srl



-------- Messaggio originale --------
Da: Dave Taht <dave.taht@gmail.com<mailto:dave.taht@gmail.com>>
Data:
A: Alessandro Bolletta <alessandro@mediaspot.net<mailto:alessandro@mediaspot.net>>
Oggetto: Re: R: Re: [Codel] testbed for testing fq_codel on wifi doesn't work as expected



I don't thinknthe shell based version tweaks on qlen_be.

On Jun 1, 2013 8:51 AM, "Alessandro Bolletta" <alessandro@mediaspot.net<mailto:alessandro@mediaspot.net>> wrote:
Hi Dave,
It seems that the lua-based debloat script doesn't apply changes in tc. Is the bash-based version identical to the lua-based or are there some differences that I might know?

Thanks

--

Alessandro Bolletta
Mediaspot Srl



-------- Messaggio originale --------
Da: Dave Taht <dave.taht@gmail.com<mailto:dave.taht@gmail.com>>
Data:
A: Alessandro Bolletta <alessandro@mediaspot.net<mailto:alessandro@mediaspot.net>>
Cc: codel@lists.bufferbloat.net<mailto:codel@lists.bufferbloat.net>
Oggetto: Re: [Codel] testbed for testing fq_codel on wifi doesn't work as expected



The debloat script does not debloat bridges. You have to apply it to the underlying devices.

IFACE=wlan0 QMODEL=fq_codel_ll debloat

There are numerous other potential problems  below. I advise simplifying your setup.

On Jun 1, 2013 4:34 AM, "Alessandro Bolletta" <alessandro@mediaspot.net<mailto:alessandro@mediaspot.net>> wrote:
Hi everybody,
I made a little testbed in my office with 2 Ubiquiti Nanobridge M5 and 2 TPlink 741nd.
Nanobridges are simply connected in AP-STA mode and relaying traffic to the two TPLinks where i’m running batman-adv. So I bridged the bat0 interface create by batman-adv with one of the ethernet ports offered by the ar71xx CPU. So I connected two laptops to the bridge at both ends and I pushed up a bidirectional UDP flow filling the wifi link available bandwidth (I saw that it constantly runs at 33Mbps in download and 37Mbps in upload).
In every device (tplinks and ubnts) i’m running OpenWRT BARRIER BREAKER (Bleeding Edge, r36692), running on kernel 3.8.12
I executed Dave Taht’s debloat script for bash (and also the lua-compatible one) on every device, but if i try to make a ping starting from a laptop to the opposite laptop, these are the times that I get (sorry, it’s written in italian. “Richiesta scaduta” means “expired reply”):

Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=259ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=281ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=285ms TTL=128
Richiesta scaduta.
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=91ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=130ms TTL=128
Richiesta scaduta.
Richiesta scaduta.
Richiesta scaduta.
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=251ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=188ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=156ms TTL=128
Richiesta scaduta.
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=279ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=314ms TTL=128
Richiesta scaduta.
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=288ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=324ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=297ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=318ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=301ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=115ms TTL=128
Richiesta scaduta.
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=312ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=292ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=266ms TTL=128
Richiesta scaduta.
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=227ms TTL=128
Richiesta scaduta.
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=91ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=266ms TTL=128
Richiesta scaduta.
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=190ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=161ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=132ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=118ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=166ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=247ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=281ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=282ms TTL=128
Richiesta scaduta.
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=288ms TTL=128
Richiesta scaduta.
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=165ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=251ms TTL=128
Richiesta scaduta.
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=307ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=294ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=297ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=275ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=288ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=282ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=273ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=224ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=159ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=103ms TTL=128
Richiesta scaduta.
Richiesta scaduta.
Richiesta scaduta.
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=186ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=225ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=299ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=112ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=171ms TTL=128
Richiesta scaduta.
Richiesta scaduta.
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=175ms TTL=128
Richiesta scaduta.
Richiesta scaduta.
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=147ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=211ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=279ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=279ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=228ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=219ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=167ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=177ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=197ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=265ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=275ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=237ms TTL=128
Richiesta scaduta.
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=237ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=285ms TTL=128
Richiesta scaduta.
Richiesta scaduta.
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=166ms TTL=128
Richiesta scaduta.
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=262ms TTL=128
Richiesta scaduta.
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=275ms TTL=128
Richiesta scaduta.
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=30ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=84ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=249ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=244ms TTL=128
Richiesta scaduta.
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=201ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=110ms TTL=128
Richiesta scaduta.
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=220ms TTL=128
Risposta da 192.168.2.25<http://192.168.2.25>: byte=32 durata=240ms TTL=128


While if I ping while i’m not doing traffic at all I get 1ms RTT replies without packet loss.
Can you help me to find the cause of this bufferbloat?

Thanks
Alessandro

_______________________________________________
Codel mailing list
Codel@lists.bufferbloat.net<mailto:Codel@lists.bufferbloat.net>
https://lists.bufferbloat.net/listinfo/codel




--
Dave Täht

Fixing bufferbloat with cerowrt: http://www.teklibre.com/cerowrt/subscribe.html

[-- Attachment #2: Type: text/html, Size: 21368 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2013-06-04  9:42 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-06-01 11:09 [Codel] testbed for testing fq_codel on wifi doesn't work as expected Alessandro Bolletta
     [not found] ` <CAJpd8ptGOYJGz+3kFi60JAZpRPjzFpD_vXm4OAf9PQw=COcfzg@mail.gmail.com>
2013-06-03  8:35   ` [Codel] R: " Alessandro Bolletta
     [not found]     ` <CAJpd8puSZELTrLVbTe_9G3FmxLD3JQc0hP0=wf=0m3QQZzkeQw@mail.gmail.com>
2013-06-03  8:57       ` Alessandro Bolletta
2013-06-04  9:42 [Codel] " Alessandro Bolletta

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox