From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-oi0-x22f.google.com (mail-oi0-x22f.google.com [IPv6:2607:f8b0:4003:c06::22f]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by huchra.bufferbloat.net (Postfix) with ESMTPS id AEA5621F971 for ; Thu, 29 Oct 2015 08:25:59 -0700 (PDT) Received: by oifu63 with SMTP id u63so37920838oif.2 for ; Thu, 29 Oct 2015 08:25:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=rCLMcRPDv3sAbFoXS9+fu6LiYiHxlXeCRlr6lWHon80=; b=ivi68Mr7Qna03l7Prvp2CoC5mAsNu++AJ1wMANR8CfxuE/HMGcVomLwsFvhq5icve9 xN0wVC18pTnkC7t5HXbEvrgRbw1yjcS5t0YATdsv35CHLsC/b9srg3shxCoqKx7htDRZ Cq4g7gck3I0aqSl6ZwGo2CMcXYNYAnknw6Uw0Fz0woRNgq1LTiZDGPunnsOTXFEnJtVu zBHqnDOwUIv8+Hmkhq9Kh52JpkXYA5+UMBEUe+XrWKDPJr2A/nSJLVPJWDiK+XyZ30s/ pnOU4AZfyxbGkBuEznwa9FnuksGL0Jpzn0HUhj8xcUdRFgjn1IarRE0D8t4nbHpRuj3f 6WyQ== X-Received: by 10.60.58.67 with SMTP id o3mr1646960oeq.48.1446132358236; Thu, 29 Oct 2015 08:25:58 -0700 (PDT) MIME-Version: 1.0 Received: by 10.202.88.215 with HTTP; Thu, 29 Oct 2015 08:25:38 -0700 (PDT) In-Reply-To: References: <5627B90D.8070106@alvestrand.no> <43B59C2F-4B64-4318-8339-04903AF2A6AC@cisco.com> <34EEB0FF-1922-42B5-A778-9BB66B7C4FDC@csperkins.org> From: "Piers O'Hanlon" Date: Thu, 29 Oct 2015 15:25:38 +0000 Message-ID: To: Justin Uberti Content-Type: multipart/alternative; boundary=089e0158b69a82d41b05233fedc4 X-Mailman-Approved-At: Thu, 29 Oct 2015 08:29:05 -0700 Cc: "Pal Martinsen \(palmarti\)" , "aqm@ietf.org" , "cake@lists.bufferbloat.net" , "rmcat@ietf.org" , "rtcweb@ietf.org" , Colin Perkins Subject: Re: [Cake] [rmcat] [rtcweb] Catching up on diffserv markings X-BeenThere: cake@lists.bufferbloat.net X-Mailman-Version: 2.1.13 Precedence: list List-Id: Cake - FQ_codel the next generation List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Oct 2015 15:26:22 -0000 --089e0158b69a82d41b05233fedc4 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable I implemented some prototype software that read and set ECN for UDP packets whilst working on RFC6679, but there's no published open-source code I'm aware of that fully implements RFC6679. I reported my experiences to the AVT list back in 2011, and I've updated them here: To set ECN on Linux, BSD and OSX one can use IP_TOS socket option, with the setsockopt() call, to set the relevant ECN bits of the TOS byte. On Windows one can use a similar technique though firstly one has to enable TOS byte setting by enabling a particular Registry key ( DisableUserTOSSetting=3D0 (see https://msdn.microsoft.com/en-us/library/windows/desktop/dd874008%28v=3Dvs.= 85%29.aspx One could also probably use the libpcap write functionality. To obtain the ECN bits from a packet one needs a mechanism to retrieve the ECN bits from each packet. On Linux, one needs to firstly set the IP_RECVTOS socket option on the receiving socket, and use the recvmsg() call to receive a packet, and then retrieve the TOS byte from the associated csmg structure returned by the recvmsg() call. This still works with linux-4.2.3. On OSX/BSD there are no suitable socket options to retrieve the ECN/TOS bits and one cannot use raw sockets as they do not function for UDP/TCP sockets (they do work with ICMP), so one has to use alternatives such the bpf interface, or a REDIRECT socket. Whilst on Windows it seems that the only way to retrieve the ECN bits is via a raw socket, or custom NDIS driver, though it's possible there's an API I'm missing. On 22 October 2015 at 20:54, Justin Uberti wrote: > At present I'm not aware of any widely-deployed OS where an app can read > the received ECN markings. > > iOS9 added support for this within the kernel, and it's used for TCP, but > not exposed to userspace. There is an open Radar bug asking for this info > to be exposed to userspace. > > FWIW, Chrome supports setting the DSCP markings if you set a magic > parameter. But it's not on by default, mainly because we've never done th= e > auditing necessary to ensure this doesn't randomly break in various > dimly-lit parts of the internet. > > On Thu, Oct 22, 2015 at 2:13 AM, Colin Perkins wrote: > >> On 22 Oct 2015, at 08:48, Pal Martinsen (palmarti) >> wrote: >> >> >> On 21 Oct 2015, at 18:10, Harald Alvestrand wrote= : >> >> Den 21. okt. 2015 17:51, skrev Dave Taht: >> >> I unsubscribed from rmcat and rtcweb groups a while back after I got >> overloaded, and appear.in started working so well, (for both ipv6 and >> ipv4! I use it all day long now!), to focus on finishing up the new >> "cake" qdisc/shaper/aqm/QoS system, among other things. >> >> http://www.bufferbloat.net/projects/codel/wiki/CakeTechnical >> >> Cake is now entering the testlab, and among other things, it has >> support for the diffserv markings discussed in the related, now >> concluded dart wg, but in ways somewhat different from that imagined >> there. We have not got any good code in our testbeds yet to test >> videoconferencing behavior, and we could use some, although it does >> look like we can drive firefox with some remote control stuff with a >> fixed video playback now.... >> >> Five questions: >> >> 1) Has anyone implemented or tested putting voice and video on two >> different 5-tuples in any running code out there? >> >> >> All VC systems I know of except WebRTC-based ones do it, AFAIK. >> It=E2=80=99s putting them on the same that's unusual. >> >> That sounds like the world I am living in as well. >> >> >> 2) How about diffserv markings in general? Do any browsers or webrtc >> capable software support what was discussed way back when? >> >> >> I know Hangouts did something like that internally, on the controlled >> network. But not according to spec. >> >> 3) Were diffserv marking changes eventually allowed on the same 5-tuple? >> >> >> Yes, with caveats. draft-ietf-tsvwg-rtcweb-qos has the table. >> >> 4) Did the ECN support that was originally in one draft or another >> ever make it into any running code? >> >> >> I don't know. I think we lost it from the docs. >> >> (yea, apple plans to turn on ecn universally in their next OS!) >> >> So how would ECN work on UDP? I do not think the necessary bits from the >> IP header are available for the application to do anything. I do think >> Linux supports this, have not tested. >> >> And what about the network, would it support UDP when setting the ECN >> bits? Probably a configuration related problem if not supported. >> >> >> RFC 6679 describes how to use ECN with RTP on UDP, although as you say >> there are implementation difficulties on some platforms. I=E2=80=99m not= sure >> whether there are implementations. >> >> >> 5) What else did I miss in the past year I should know about? >> >> >> For TCP and SCTP congestion controllers, we're back to one DSCP marking >> per flow, and resetting the congestion control state if DSCP marking >> changes. >> >> >> There is a new ICE wg. It was created so =E2=80=9Cnetwork people=E2=80= =9D could >> participate without the overhead of listening to the SDP related >> discussions. (https://datatracker.ietf.org/wg/ice/charter/) >> >> .-. >> P=C3=A5l-Erik >> >> >> Feel free to contact me off list if these have already been discussed. >> I have totally lost track of the relevant drafts. >> >> >> They're not finished still :-) >> >> >> Sincerely, >> >> Dave T=C3=A4ht >> I just lost five years of my life to making the edge >> of the internet, and, wifi better. >> And, now... the FCC wants to make my work illegal >> for ordinary people to install. >> https://www.gofundme.com/savewifi >> >> _______________________________________________ >> rtcweb mailing list >> rtcweb@ietf.org >> https://www.ietf.org/mailman/listinfo/rtcweb >> >> >> _______________________________________________ >> rtcweb mailing list >> rtcweb@ietf.org >> https://www.ietf.org/mailman/listinfo/rtcweb >> >> >> _______________________________________________ >> rtcweb mailing list >> rtcweb@ietf.org >> https://www.ietf.org/mailman/listinfo/rtcweb >> >> >> >> >> -- >> Colin Perkins >> https://csperkins.org/ >> >> >> >> >> > --089e0158b69a82d41b05233fedc4 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
I implemented some prototype software that read and s= et ECN for UDP packets whilst working on RFC6679, but there's no publis= hed open-source code I'm aware of that fully implements RFC6679. I repo= rted my experiences to the AVT list back in 2011, and I've updated them= here:

To set ECN on Linux, BSD and OSX one can use IP_TOS socket opt= ion, with the
setsockopt() call, to set the relevant ECN bits of the TOS byt= e. On Windows one can use a similar technique though firstly one has to ena= ble TOS byte setting by enabling a particular Registry key ( DisableUserTOSSetting=3D0 (see https://msdn.microsoft.com/en-us/library/windows/desktop/dd874008%28v=3D= vs.85%29.aspx=C2=A0 One could also probably use the libpcap write funct= ionality.

To obtain the ECN bits from a packet one needs a mechanism to = retrieve the ECN bits from each packet. On Linux, one needs to= firstly set the IP_RECVTOS socket option on the receiving socket, and use = the recvmsg() call to receive a packet, and then retrieve the TOS byte from= the associated csmg structure returned by the recvmsg() call. This still w= orks with linux-4.2.3. On OSX/BSD there are no suitable socket options to r= etrieve the ECN/TOS bits and one cannot use raw sockets as they do not func= tion for UDP/TCP sockets (they do work with ICMP), so one has to use altern= atives such the bpf interface, or a REDIRECT socket. Whilst on Windows it s= eems that the only way to retrieve the ECN bits is via a raw s= ocket, or custom NDIS driver, though it's possible there's an API I= 'm missing.


On 22= October 2015 at 20:54, Justin Uberti <juberti@google.com> = wrote:
At present I'= m not aware of any widely-deployed OS where an app can read the received EC= N markings.=C2=A0

iOS9 added support for this within the= kernel, and it's used for TCP, but not exposed to userspace. There is = an open Radar bug asking for this info to be exposed to userspace.

FWIW, Chrome supports setting the DSCP markings if you set= a magic parameter. But it's not on by default, mainly because we'v= e never done the auditing necessary to ensure this doesn't randomly bre= ak in various dimly-lit parts of the internet.

On Thu, Oct 22, 2015 at 2:13 AM, Colin Perkins <= csp@csperkins.org> wrote:


On 21 Oct 2015, at 18:10, Harald Alvestrand <harald@alvestrand.no> wrote:
Den 21. okt. 2015 17:51, skrev Dave Taht:
I unsubscribed from rmcat and rtcweb groups a while back after I got
overloaded, and appear.in started working so well, (for both ipv6 and
ipv4! I use it all day long now!), to focus on finishing up the new
"cake" qdisc/shaper/aqm/QoS system, among other things.

http://www.bufferbloat.net/projects/codel/wiki/CakeTechnica= l

Cake is now entering the testlab, and among other things, it has
support for the diffserv markings discussed in the related, now
concluded dart wg, but in ways somewhat different from that imagined
there. We have not got any good code in our testbeds yet to test
videoconferencing behavior, and we could use some, although it does
look like we can drive firefox with some remote control stuff with a
fixed video playback now....

Five questions:

1) Has anyone implemented or tested putting voice and video on two
different 5-tuples in any running code out there?

All VC systems I know of except WebRTC-based ones do it, AFAIK.
It=E2=80=99s putting them on the same that's unusual.

That sounds like the world I am living in as well.


2) How about diffserv markings in general? Do any browsers or webrtc
capable software support what was discussed way back when?

I know Hangouts did something like that internally, on the controlled=
network. But not according to spec.

3) Were diffserv marking changes eventually allowed on the same 5-tuple?

Yes, with caveats. draft-ietf-tsvwg-rtcweb-qos has the table.

4) Did the ECN support that was originally in one draft or another
ever make it into any running code?

I don't know. I think we lost it from the docs.

(yea, apple plans to turn on ecn universally in their next OS!)

So how would ECN work on UDP? I do not think the necessary bits from t= he IP header are available for the application to do anything. I do think L= inux supports this, have not tested.

And what about the network, would it support UDP when setting the ECN = bits? Probably a configuration related problem if not supported.

RFC 6679 describe= s how to use ECN with RTP on UDP, although as you say there are implementat= ion difficulties on some platforms. I=E2=80=99m not sure whether there are = implementations.=C2=A0


5) =C2=A0What else did I miss in the past year I should know about?

For TCP and SCTP congestion controllers, we're back to one DSCP marking
per flow, and resetting the congestion control state if DSCP marking changes.


There is a new ICE wg. It was created so =E2=80=9Cnetwork people=E2=80=9D c= ould participate without the overhead of listening to the SDP related discu= ssions. (https://datatracker.ietf.org/wg/ice/charter/)

.-.
P=C3=A5l-Erik


Feel free to contact me off list if these have already been discussed.
I have totally lost track of the relevant drafts.

They're not finished still :-)


Sincerely,

Dave T=C3=A4ht
I just lost five years of my life to making the edge
of the internet, and, wifi better.
And, now... the FCC wants to make my work illegal
for ordinary people to install.
https://www= .gofundme.com/savewifi

_______________________________________________
rtcweb mailing list
rtcweb@ietf.org = https://www.ietf.org/mailman/listinfo/rtcweb


________________________= _______________________
rtcweb mailing list
rtcweb@ietf.o= rg
https://www.ietf.org/mailman/listinfo/rtcweb

_______________________________________________
rtcweb mailing list
<= a href=3D"mailto:rtcweb@ietf.org" target=3D"_blank">rtcweb@ietf.org
= = https://www.ietf.org/mailman/listinfo/rtcweb



--=C2=A0
Colin= Perkins






--089e0158b69a82d41b05233fedc4--