[Make-wifi-fast] emulating wifi better - coupling qdiscs in netem?

Dave Taht dave.taht at gmail.com
Mon Jun 18 15:44:13 EDT 2018

On Mon, Jun 18, 2018 at 12:33 PM, Pete Heist <pete at heistp.net> wrote:
> On Jun 18, 2018, at 6:08 PM, Eric Dumazet <eric.dumazet at gmail.com> wrote:
> nfq_set_mode(qh, NFQNL_COPY_PACKET, 0xffff)
> ->
> nfq_set_mode(qh, NFQNL_COPY_PACKET, 128); // assuming you want to inspect
> headers
> Thanks for that. I see flat RTTs, and a sometimes significant increase in
> throughputs. Unexpectedly, nfq with GSO throughputs are higher than without
> nfq at all.
> ping mean (min-max) RTTs:
> APU2, nfq without GSO: 80 us -> 82 us
> APU2, nfq with GSO: 85 us -> 83 us
> 2011 MBP, nfq without GSO: 13 us -> 14 us
> 2011 MBP, nfq with GSO: 14 us -> 13 us
> iperf3 throughputs:
> APU2, nfq without GSO: 391 -> 415 Mbps
> APU2, nfq with GSO: 3.35 -> 6.07 Gbps [higher than no nfqueue, 5.55 -> 6.07]
> 2011 MBP, nfq without GSO: 1.48 Gbps -> 2.73 Gbps
> 2011 MBP, nfq with GSO: 38.0 Gbps -> 45.5 Gbps [higher than no nfqueue, 39.2
> -> 45.5]

This is still without batch releases, yes?

In any case, the now achieved rates and latencies seem sufficient to
try and adapt these methods to emulating wifi/lte etc better! We only
need to get to a gbit. Obviously doing more expensive userspace
processing is going to hurt, and, well, for the sake of argument
emulating a 32 station wifi 802.11n network would be proof of the
pudding, but I'd settle for even the simplest case of one ap and two
actually rendering sane-looking behavior.

Originally, when thinking about this, I'd thought we'd use one veth
per station and toss packets to userspace based on one nfqueue per
input/output interface. I still lean that way (do we get multicast mac
addrs on packets this way?), but perhaps a single interface could be
used and we could
sort out the src/dst ips and batching in userspace, starting with
fifos to represent current behavior and gradually working our way back
up to the fq_codel on wifi emulation. Or, with one veth per station,
still use a fq_codel qdisc, but I don't see how we can create
backpressure for that actually to engage.

Better to be reordering the verdict on packets in the batch for an
fq_codel emulation. I think.

> _______________________________________________
> Make-wifi-fast mailing list
> Make-wifi-fast at lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/make-wifi-fast


Dave Täht
CEO, TekLibre, LLC
Tel: 1-669-226-2619

More information about the Make-wifi-fast mailing list