Lets make wifi fast again!
 help / color / mirror / Atom feed
From: "Toke Høiland-Jørgensen" <toke@toke.dk>
To: Pete Heist <peteheist@gmail.com>
Cc: Sebastian Moeller <moeller0@gmx.de>,
	cake@lists.bufferbloat.net, Aaron Wood <woody77@gmail.com>,
	make-wifi-fast@lists.bufferbloat.net
Subject: Re: [Make-wifi-fast] [Cake] Flent results for point-to-point Wi-Fi on LEDE/OM2P-HS available
Date: Fri, 17 Feb 2017 10:52:38 +0100	[thread overview]
Message-ID: <8737fd5el5.fsf@alrua-karlstad> (raw)
In-Reply-To: <09A27886-7088-4493-A262-3CC2FF4C6CE2@gmail.com> (Pete Heist's message of "Fri, 17 Feb 2017 08:53:19 +0100")

Pete Heist <peteheist@gmail.com> writes:

>  On Feb 16, 2017, at 10:03 PM, Sebastian Moeller <moeller0@gmx.de> wrote:
>
>  On Feb 16, 2017, at 18:19, Jonathan Morton <chromatix99@gmail.com> wrote:
>
>  In a sense if there are thresholds for permissible VO/VI traffic fractions below which the AP will not escalate its own priority this will come close to throttling the high priority senders, no? 
>
>  I thought Aaron’s suggestion sounds both sensible and not difficult to implement. That way we wouldn’t even have to regularly monitor it, and anyone who is marking all their packets thinking they’re doing themselves a favor is just limiting their max throughput.
>
>  Could there be another keyword in Cake to do this automatically, say “fairdiffserv", or would this just be feature bloat for what is already a sophisticated shaper? I don’t know if there are sensible mappings from dscp value to max percentage throughput that would work most of
>  the time, or if there could also be an adjustable curve parameter that controls the percentage backoff as you go up dscp levels.
>
>  This is actually what Cake already does by default (the “diffserv3” mode).  If you look at the detailed statistics (tc -s qdisc), you’ll see that each tin has a “threshold” bandwidth.  If there’s more traffic than that threshold in that tin, the tin will be deprioritised - it can still use all of the
>  bandwidth left spare by other tins’ traffic, but no more than that.
>
>  Additionally, diffserv3 mode uses more aggressive AQM settings on the “voice” tin than the “best effort” tin, on the grounds that the former is a request for minimum latency.  This should also discourage bulk traffic from using unnecessarily high DSCPs.
>
>  However, in both the “besteffort” and “diffserv3” cases, the DSCP may be interpreted independently by the NIC as well as Cake.  In the case of wifi, this affects the medium grant latency and priority.  If the link isn’t saturated, this shouldn’t affect Cake’s prioritisation strategy much if
>  at all, but it does have implications for the effect of other stations sharing the frequency.
>
>  Here is part of the problem: the more aggressive airtime access of the VI and VO classes will massively cut down the actual achievable bandwidth over all classes. And I might add this effect is not restricted to the AP and station under one’s control, but all other stations and APs using
>  the same frequency that are in the close RF neighborhood will affect the available airtime and hence achievable bandwidth. If you look how wifi achieves its higher bandwidth it is by using longer periods of airtime to make up for the rather fixed time “preamble” that wastes time without
>  transmission of user data. VI users in the vicinity will drastically (IIRC) reduce the ability to send those aggregates. In other words link saturation is partly a function of which AC classes are used and not a nice and fixed entity as for typical wired connections. Now if you can control both
>  sides of your transfer _and_ all other users of the same frequency that are RF-visible to your endpoints, it might be possible to thnk of a wifi link in similar terms as a wired one, but I would be cautious…
>
> Thanks for that info. In my testing I’m focusing on point-to-point Wi-Fi, but I see the complexity that WMM presents, especially when there's more than one station.
>
> It's perplexing that at least two concerns- packet retransmission and prioritization, occur at multiple layers in the stack. 802.11 ack frames are sent in response to every data frame (aggregation aside), and retransmission occurs at this layer, but also higher up in the TCP layer. Prioritization
> can occur at the IP layer, but then again in the media layer with WMM. This seems to violate separation of concerns, and makes it difficult to ascertain and control what’s going on in the system as a whole.
>
> It feels like WMM went a step too far. There may have been (may still be) valid performance reasons for Wi-Fi to take on such concerns, but as the data rates get higher and processing power increases, it feels like it would be better to have a wireless technology that just delivers frames,
> and to push reliability, prioritization and aggregation back up into the higher layers so that long-term innovation can take place in software. The 802.11 spec is on my reading list so I might learn if and where this goes off the tracks.

Note that WMM also affects max aggregation sizes; the VO queue doesn't
do aggregation at all, for instance; and the max aggregate size for VI
is smaller than for BE. This *should* be an incentive to not use the
higher queues for bulk traffic.

That being said, I do believe there are issues with how the QoS levels
are currently handled in the Linux WiFi stack, and looking into that in
more detail is on my list somewhere... :)


-Toke

  reply	other threads:[~2017-02-17  9:52 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-30 21:21 [Make-wifi-fast] " Pete Heist
2017-01-30 21:44 ` Toke Høiland-Jørgensen
2017-01-30 22:48   ` Aaron Wood
2017-02-01 14:53     ` Toke Høiland-Jørgensen
2017-01-30 23:21   ` Dave Taht
2017-01-31 16:40     ` Pete Heist
2017-02-14  8:56     ` Pete Heist
2017-02-15 23:03       ` Dave Täht
2017-02-16  7:57         ` Pete Heist
2017-02-16  8:42           ` [Make-wifi-fast] [Cake] " Sebastian Moeller
2017-02-16  9:17             ` Pete Heist
2017-02-16 16:15               ` Aaron Wood
2017-02-16 16:21                 ` Sebastian Moeller
2017-02-16 16:51                   ` Pete Heist
2017-02-16 17:19                     ` Jonathan Morton
2017-02-16 19:05                       ` Pete Heist
2017-02-16 20:54                         ` Pete Heist
2017-02-16 21:03                       ` Sebastian Moeller
2017-02-17  7:53                         ` Pete Heist
2017-02-17  9:52                           ` Toke Høiland-Jørgensen [this message]
2017-02-19 15:25       ` [Make-wifi-fast] " Dave Taht
2017-01-31 15:52   ` Pete Heist
2017-02-01 14:48     ` Toke Høiland-Jørgensen
2017-02-02  8:25       ` Pete Heist
2017-02-07 11:57         ` Toke Høiland-Jørgensen
2017-02-08 15:26           ` Pete Heist
2017-02-08 16:11             ` Toke Høiland-Jørgensen
2017-02-08 16:35               ` Dave Taht
2017-02-08 17:10                 ` Dave Taht
2017-02-08 17:11                   ` Dave Taht
2017-02-09  8:35                 ` Pete Heist
2017-02-09  7:45               ` Pete Heist
2017-02-09 13:51                 ` Toke Høiland-Jørgensen
2017-02-09 14:20                   ` Pete Heist
2017-02-09 14:44                     ` Toke Høiland-Jørgensen
2017-02-10  7:51                       ` Pete Heist
2017-02-08 18:29             ` [Make-wifi-fast] [Cake] " John Yates
2017-01-30 23:55 ` [Make-wifi-fast] " Dave Taht
2017-01-31 16:58   ` Pete Heist

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://lists.bufferbloat.net/postorius/lists/make-wifi-fast.lists.bufferbloat.net/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8737fd5el5.fsf@alrua-karlstad \
    --to=toke@toke.dk \
    --cc=cake@lists.bufferbloat.net \
    --cc=make-wifi-fast@lists.bufferbloat.net \
    --cc=moeller0@gmx.de \
    --cc=peteheist@gmail.com \
    --cc=woody77@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox