<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Feb 16, 2017, at 10:03 PM, Sebastian Moeller <<a href="mailto:moeller0@gmx.de" class="">moeller0@gmx.de</a>> wrote:</div><div class=""><blockquote type="cite" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br class="Apple-interchange-newline">On Feb 16, 2017, at 18:19, Jonathan Morton <<a href="mailto:chromatix99@gmail.com" class="">chromatix99@gmail.com</a>> wrote:<br class=""><br class=""><blockquote type="cite" class=""><blockquote type="cite" class="">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?<span class="Apple-converted-space"> </span><br class=""></blockquote><br class="">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.<br class=""><br class="">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.<br class=""></blockquote><br class="">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.<br class=""><br class="">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.<br class=""><br class="">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.<br class=""></blockquote><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span class="Apple-tab-span" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: pre; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">       </span><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">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…</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""></div></blockquote></div><br class=""><div class="">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.</div><div class=""><br class=""></div><div class="">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.</div><div class=""><br class=""></div><div class="">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.</div></body></html>