From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-il1-x144.google.com (mail-il1-x144.google.com [IPv6:2607:f8b0:4864:20::144]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.bufferbloat.net (Postfix) with ESMTPS id 9BBE13B29E for ; Wed, 22 Apr 2020 12:20:41 -0400 (EDT) Received: by mail-il1-x144.google.com with SMTP id s10so2474189iln.11 for ; Wed, 22 Apr 2020 09:20:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=fXruWUavglrPOL170DXAekUVw2B+9It8kqldZRg0qcY=; b=qc7pKmSpSkh9aI1X6aXaCZBbLlXicUmzvoZFjJO2+2nW7RHZMVlSR5mLmjLs1xoPUM lIumv4pptyNC1tOCwQzLdwg5JSJP+ZVNHKc7agNzKvDFTxtzcr+/4RHwSiRQYOM93Uwp gGH4yOnOrkmXh3ZvJphrN4d/5dgfkp32+FIYPHZFdgzs8JTuV4EUsOqBYD7krueKF5M0 JzCVwURJzDvkXsKG4p4InxWMKsIjbwvPKjxw29ytA7aeNvBaKiDliTwbgn29OHAjf9I/ R9OZH94RFLb0bgobcfpn3dvBJ/3Gy3p73KaEfdXpT4az7LBLDNEjXUnW/ZuoDNcaubId tWNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=fXruWUavglrPOL170DXAekUVw2B+9It8kqldZRg0qcY=; b=QUxz/fwpXJRRhgNgtpufDMbd7IBhecGPJqImXxMB4LieqJICPszQkwhQaartVFXd0h WFmOdbrB7lT25J/qBk7yXbqMSoZ5C/YaB64NnhAFmzag5zbsRpGWDnmxh6UhLT5FT2Oo qpOdqdyEj6mavghkIRdGW3VEMxeUcJFtUB21ZW8XMXKBUzchNwvVHp3Pkwl+j9C8T5io t2ow1TYkIkHAy9rpfERWvEZjQt5bRnMFZlWaC/iyJfvIQZ43uxEujNOefn96XSqupJUt BuLtgRfm9b2iFjeuYmsijL0ZxWsAOi9Sqfvmr4+dv3OWfbR9tAkQRF9jQavXBcVkwCKl Qx6A== X-Gm-Message-State: AGi0PubjcpVpSF9qmIIooDOBuDguutmtgPjgE/sEzgjpSM3HJbc14Zfp YFvfZzRN8TEEsnAHfQXSdJ93QNVOwsYSn4uXknrlI6+I3Vs= X-Google-Smtp-Source: APiQypK6Ksn640o7tGslOiG+phfaZ8EUnSWgUwQfYXtVSnidldXesTDqPcdiMf6J/pOk51XKV3fHZi1wuIV4kKW8sqo= X-Received: by 2002:a92:dc0d:: with SMTP id t13mr2544156iln.287.1587572441004; Wed, 22 Apr 2020 09:20:41 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Dave Taht Date: Wed, 22 Apr 2020 09:20:29 -0700 Message-ID: To: Kevin Darbyshire-Bryant Cc: Cake List Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Subject: Re: [Cake] DSCP ramblings X-BeenThere: cake@lists.bufferbloat.net X-Mailman-Version: 2.1.20 Precedence: list List-Id: Cake - FQ_codel the next generation List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 22 Apr 2020 16:20:41 -0000 and because of your I'm off building collectd because those graphs look so good. :) https://forum.openwrt.org/t/sqm-reporting/59960/24 I have long just used snmpd, and collectd looks interesting. I fear it's too heavyweight, particularly shelling out to a script.... On Wed, Apr 22, 2020 at 9:15 AM Dave Taht wrote: > > On Wed, Apr 22, 2020 at 8:58 AM Kevin Darbyshire-Bryant > wrote: > > > > During these strange times of lockdown I=E2=80=99ve been trying to keep= myself occupied/entertained/sane(???) by =E2=80=98fiddling with stuff=E2= =80=99 and improving my coding. This started with an idea of learning Pyth= on which was great until the on-line bit of it ran out and someone posted a= n idea on the Openwrt forum about graphing Cake stats. > > > > That had nothing to do with Python and involved (new to me) technologie= s such as =E2=80=98collectd=E2=80=99, =E2=80=98JSON=E2=80=99, a bit of java= script and my usual level of cobbling something together in =E2=80=98ash=E2= =80=99=E2=80=A6. So that course was well spent :-) > > > > Anyway, data was collected and graphs produced in a very small househol= d. What=E2=80=99s immediately apparent from those graphs and cake in =E2= =80=98diffserv4=E2=80=99 mode is that very, very few applications are using= DSCP at all. Most things are to port 443. > > > > I was also a little surprised to see that my DNS over foo proxies such = as stubby & https-dns-proxy don=E2=80=99t use DSCP coding. It surprised me= even more to see RFC recommendations that DNS be treated as =E2=80=98Best = Effort=E2=80=99. Now in the days of udp only and no dnssec (with fallback = to tcp) this may be good enough, but I wonder if this is realistic these da= ys? > > > > So putting aside the discussion of what codepoint should be used, I the= n wondered how hard it would be to actually set a dscp in these application= s. And this is where I had another surprise. For example https-dns-proxy = uses libcurl. libcurl has no standard =E2=80=98in-library=E2=80=99 method = for setting a socket=E2=80=99s dscp. I cobbled a workaround in the applica= tion https://github.com/aarond10/https_dns_proxy/pull/83 - it works. > > > > Next I attacked stubby, which uses getdns. getdns doesn=E2=80=99t even= have a callback or parameters passing so you can set a dscp on the socket = from a client application, pure =E2=80=98hack the library=E2=80=99 stuff. > > > > To be blunt and on a small sample of 2 libraries/applications, it seems= that DSCP is completely ignored. Applications signalling =E2=80=99this is= /isnt latency sensitive/bulk=E2=80=99 isn=E2=80=99t going to happen if it i= sn=E2=80=99t easy to do. > > > > Apple should be marking facetime calls as being =E2=80=98video conferen= ce=E2=80=99 or whatever. BBC iplayer Radio apps should be marking =E2=80= =98audio streaming=E2=80=99. But every f*ing thing is CS0 port 443. And I= =E2=80=99m wondering how much of this is because library support is simply = missing. Maybe gaming apps are better? (I don=E2=80=99t game) > > > > Right, I=E2=80=99m off for a lie down. Sorry for the rant. > > Welcome to my explorations... in 2011. Diffserv is rather underused, isn'= t it? > > I took a survey of every (500+) gaming console at a convention. nearly > zero diffserv usage and it was all over the map, and I think, mostly, > from osx. > > windows requires admin privs to set the tos bits at all > webrtc has an api to set the bits, but it doesn't work on windows. > > ssh will set the imm bit for interactive, I forget what it sets for bulk > bgp sets cs6. so does babel. Arguably both usages are wrong. > some windows stuff sets cs1 for things like ping > I got the mosh folk to use AF42 as a (worldwide) test, for nearly a > year. they had one user with a problem and they turned it off. It was > funny, keith thought I was making an expert recommendation rather than > a test and just copy pasted my code into the tree and shipped it. > > linux implements a strict priority queue in pfifo_fast. You can dos it > if you hit it by setting the bits. > irtt and netperf let you set the bits. iperf also. > > I produced a patch for rsync in particular (since I use it heavily) > > sqm at least used to mark dns and ntp as some elivated prio, but I > forget which and for all I know the cake qos system doesn't implement > those filters. > > A few multi-queue ethernet devices actually do interpret the bits. > Undocumented as to which one.. > > and lets not get started on ecn. > > > > > > > Hack for getdns/stubby > > > > diff --git a/src/stub.c b/src/stub.c > > index 2547d10f..7e47aba5 100644 > > --- a/src/stub.c > > +++ b/src/stub.c > > @@ -52,6 +52,7 @@ > > #include "platform.h" > > #include "general.h" > > #include "pubkey-pinning.h" > > +#include > > > > /* WSA TODO: > > * STUB_TCP_RETRY added to deal with edge triggered event loops (versu= s > > @@ -381,6 +382,9 @@ tcp_connect(getdns_upstream *upstream, getdns_trans= port_list_t transport) > > # else > > static const int enable =3D 1; > > # endif > > +#endif > > +#if defined(IP_TOS) > > + int dscp =3D IPTOS_CLASS_CS4; > > #endif > > int fd =3D -1; > > > > @@ -390,6 +394,12 @@ tcp_connect(getdns_upstream *upstream, getdns_tran= sport_list_t transport) > > __FUNC__, (void*)upstream); > > if ((fd =3D socket(upstream->addr.ss_family, SOCK_STREAM, IPPRO= TO_TCP)) =3D=3D -1) > > return -1; > > +#if defined(IP_TOS) > > + if (upstream->addr.ss_family =3D=3D AF_INET6) > > + (void)setsockopt(fd, IPPROTO_IPV6, IP_TOS, &dscp, sizeo= f(dscp)); > > + else if (upstream->addr.ss_family =3D=3D AF_INET) > > + (void)setsockopt(fd, IPPROTO_IP, IP_TOS, &dscp, sizeof(= dscp)); > > +#endif > > > > > > Cheers, > > > > Kevin D-B > > > > gpg: 012C ACB2 28C6 C53E 9775 9123 B3A2 389B 9DE2 334A > > > > _______________________________________________ > > Cake mailing list > > Cake@lists.bufferbloat.net > > https://lists.bufferbloat.net/listinfo/cake > > > > -- > Make Music, Not War > > Dave T=C3=A4ht > CTO, TekLibre, LLC > http://www.teklibre.com > Tel: 1-831-435-0729 --=20 Make Music, Not War Dave T=C3=A4ht CTO, TekLibre, LLC http://www.teklibre.com Tel: 1-831-435-0729