Re: [Bloat] [Ecn-sane] [iccrg] Fwd: [tcpPrague] Implementation and experimentation of TCP Prague/L4S hackaton at IETF104

2019-03-15 Thread Dave Taht
On Fri, Mar 15, 2019 at 9:04 PM Jonathan Morton  wrote:
>
> > On 15 Mar, 2019, at 7:01 pm, David P. Reed  wrote:
> >
> > > Next up for sce was going to be to find if dctcp could be modified to
> > > use it. Also, bittorrent.
> >
> > YES! I endorse this message.
>
> Actually, today I was still figuring out how to fit it to CUBIC.  I *think* 
> I've succeeded…
>
> https://github.com/dtaht/bufferbloat-rfcs/blob/master/sce/ELR%20Proposal%203%20(TCP).txt
>
> I recall DCTCP as being singularly built around a distinct setpoint from what 
> either Classic ECN or SCE expects.  So I think I might look at LEDBAT first.

LEDBAT as defined by the ietf is a waste of time, as is it did not deploy.

In terms of dealing with bittorrent, I recommend you look over the UDP
implementation in libutp, and in particular the embedded
implementation in "transmission", which is easier to play with first.
Along the way, getting setsockopt to set the diffserv bits right
finally for libutp would be nice.


>  - Jonathan Morton
>
> ___
> Ecn-sane mailing list
> ecn-s...@lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/ecn-sane



-- 

Dave Täht
CTO, TekLibre, LLC
http://www.teklibre.com
Tel: 1-831-205-9740
___
Bloat mailing list
Bloat@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/bloat


Re: [Bloat] [Ecn-sane] [iccrg] Fwd: [tcpPrague] Implementation and experimentation of TCP Prague/L4S hackaton at IETF104

2019-03-15 Thread Jonathan Morton
> On 15 Mar, 2019, at 7:01 pm, David P. Reed  wrote:
> 
> > Next up for sce was going to be to find if dctcp could be modified to
> > use it. Also, bittorrent.
> 
> YES! I endorse this message.

Actually, today I was still figuring out how to fit it to CUBIC.  I *think* 
I've succeeded…

https://github.com/dtaht/bufferbloat-rfcs/blob/master/sce/ELR%20Proposal%203%20(TCP).txt

I recall DCTCP as being singularly built around a distinct setpoint from what 
either Classic ECN or SCE expects.  So I think I might look at LEDBAT first.

 - Jonathan Morton

___
Bloat mailing list
Bloat@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/bloat


Re: [Bloat] [Ecn-sane] [iccrg] Fwd: [tcpPrague] Implementation and experimentation of TCP Prague/L4S hackaton at IETF104

2019-03-15 Thread Jonathan Morton
> On 16 Mar, 2019, at 1:43 am, David P. Reed  wrote:
> 
> Now the other thing that is crucial is that the optimal state almost all of 
> the time of every link in the network is that a utilization far from max 
> capacity. The reason for this is the fact that the Internet (like almost all 
> networks) is bursty and fractal.

That can be said about some types of links but not others.

Last-mile links in particular are often saturated by their users' individual 
traffic for minutes or even hours at a time, especially the slower link 
technologies such as ADSL and 4G.  The user wants their hundred-gigabyte game 
update installed as soon as possible, even if they only have 10Mbps to suck it 
through, and they still want to use their connection for other things while 
they wait.  And this is not unreasonable; I do it regularly.

At peak times, ISP backhaul capacity can often be enough of a bottleneck for 
users to notice the congestion and induced latency; it is far from the case 
that all ISPs worldwide massively over-provision their networks to avoid 
routine congestion, even in modern technologically advanced nations.  There are 
remote islands where hundreds or thousands of users must share a single 
satellite or microwave uplink.  Cell towers are also a shared medium with 
decidedly finite capacity.

Only core networks, and the backhaul networks of certain particularly 
conscientious ISPs, can typically be described as congestion-free.  And that is 
why we discuss AQM and ECN in such detail in the first place; without 
congestion, they wouldn't be required.

The extent to which traffic classification is needed on particular types of 
link can be debated.  It could fairly be argued that we've done remarkably well 
without the benefit of a functioning Diffserv ecosystem, so there is no 
particular urgency to create one.  At the same time, it's worth discussing 
*why* Diffserv fails to do its intended job, and how a better system *could* be 
designed, because that may reveal lessons for the future.

I will say this: there are times, even with the benefit of everything Cake does 
for me, when I would prefer that BitTorrent traffic would automatically defer 
to other stuff (as it was supposedly designed to).  Several game updaters, 
including Wargaming.net's, use BitTorrent under the skin - opening and using 
several hundred flows in parallel, and thereby swamping any other traffic going 
to the same host.  It would be very straightforward for them to mark all that 
traffic as Minimum Cost, while their games themselves use Minimum Latency for 
battle traffic.

Minimum Cost is a natural choice for any transport using LEDBAT, or with 
similarly altruistic philosophy.

Minimum Latency is a natural choice for any application requiring realtime 
response - games, VoIP, remote shells.

Minimum Loss is a natural choice for applications involved in network control, 
where dropped packets could have a much greater than normal impact on overall 
network performance.

Maximum Throughput is a natural choice for general-purpose applications not 
fitting any of the above.

Pricing is not required.  Making the wrong choice will simply make your 
application perform badly on a loaded network, as the bottleneck link optimises 
for the thing you told it to optimise for, rather than for what you actually 
want.  That's all that's really needed.

 - Jonathan Morton

___
Bloat mailing list
Bloat@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/bloat


Re: [Bloat] [Ecn-sane] [iccrg] Fwd: [tcpPrague] Implementation and experimentation of TCP Prague/L4S hackaton at IETF104

2019-03-15 Thread David P. Reed

How many applications used by normal users have "admin" privileges? The 
Browser? Email? FTP?
 
 
-Original Message-
From: "Dave Taht" 
Sent: Friday, March 15, 2019 4:31pm
To: "Jonathan Foulkes" 
Cc: ecn-s...@lists.bufferbloat.net, "bloat" 
Subject: Re: [Ecn-sane] [Bloat] [iccrg] Fwd: [tcpPrague] Implementation and 
experimentation of TCP Prague/L4S hackaton at IETF104



On Fri, Mar 15, 2019 at 1:28 PM Jonathan Foulkes  
wrote:
>
> All this discussion of DSCP marking brings to mind what happened on the 
> Windows platform, where the OS had to suppress ALL DSCP marks, as app authors 
> were trying to game the system.
> And even if not trying to ‘game’ it, they have non-obvious reasons why they 
> don’t mark traffic how one would expect. Example:
>
> I know an engineer who works at a cloud-storage solution company, and I asked 
> why a long-standing customer request for DSCP marking (as bulk) was not 
> implemented. His answer was they’d never do that, as that would impact 
> benchmarks against their competitors for which service syncs faster. 
>
> Which brings me to a question: Is anyone aware of an easy to use Windows app 
> that will allow the user to select an application and tell the OS to mark the 
> traffic (all or by port) with a user selected DSCP level?
> There are many guides on using regedit and other error-prone (and geek-only) 
> means of doing this, but is there a simple Windows 10 home app?

When I last tried it (years ago), in order to set the tos bits, an
application merely had to have admin privs.

> Now that Cake is out there with simple DiffServ3 support, it would be nice to 
> lower the priority of cloud-storage services and other bulk traffic by 
> correctly marking it at the origin.
>
> Cheers,
>
> Jonathan Foulkes
>
>
> > On Mar 15, 2019, at 3:32 PM, Jonathan Morton  wrote:
> >
> >> On 15 Mar, 2019, at 8:36 pm, Mikael Abrahamsson  wrote:
> >>
> >> Having a "lower-than-best-effort" diffserve codepoint might work, because 
> >> it means worse treatment, not preferential treatment.
> >>
> >> The problem with having DSCP CPs that indicate preferential treatment is 
> >> typically a ddos magnet.
> >
> > This is true, and also why I feel that just 2 bits should be sufficient for 
> > Diffserv (rather than 6). They are sufficient to express four different 
> > optimisation targets:
> >
> > 0: Maximum Throughput (aka Best Effort)
> > 1: Minimum Cost (aka Least Effort)
> > 2: Minimum Latency (aka Maximum Responsiveness)
> > 3: Minimum Loss (aka Maximum Reliability)
> >
> > It is legitimate for traffic to request any of these four optimisations, 
> > with the explicit tradeoff of *not* necessarily getting optimisation in the 
> > other three dimensions.
> >
> > The old TOS spec erred in specifying 4 non-exclusive bits to express this, 
> > in addition to 3 bits for a telegram-office style "priority level" (which 
> > was very much ripe for abuse if not strictly admission-controlled). TOS was 
> > rightly considered a mess, but was replaced with Diffserv which was far too 
> > loose a spec to be useful in practice.
> >
> > But that's a separate topic from ECN per se.
> >
> > - Jonathan Morton
> >
> > ___
> > Bloat mailing list
> > Bloat@lists.bufferbloat.net
> > https://lists.bufferbloat.net/listinfo/bloat
>
> ___
> Bloat mailing list
> Bloat@lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/bloat



-- 

Dave Täht
CTO, TekLibre, LLC
http://www.teklibre.com
Tel: 1-831-205-9740
___
Ecn-sane mailing list
ecn-s...@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/ecn-sane___
Bloat mailing list
Bloat@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/bloat


Re: [Bloat] [Ecn-sane] [iccrg] Fwd: [tcpPrague] Implementation and experimentation of TCP Prague/L4S hackaton at IETF104

2019-03-15 Thread David P. Reed

My point is that the argument for doing such balancing is that somehow ISPs at 
the entry points (representing somehow the goals of source and destination of 
each flow) will classify their flows correctly based on some criterion, and not 
select the option that allows them to "beat" all the others, which then causes 
them be "game theoreitically" incented to screw up the labeling.
 
The business argument that the users at both ends will choose the rignt labels 
is that they are responsive to price signals in a very sensitive way that will 
get them to mark things correctly. (that includes, by the way, the Internet 
Access Providers, if they take over the labeling job and force their choice on 
their users, because they become the "endpoint")
 
So if pricing mechanisms don't work to incent labeling correctly, it does not 
matter that there exists an optimum that can be achieved by an Oracle who fully 
decides the settings on all packets of all protocols ever to be invented.
 
And that's why I brought up the issue of pricing and economics, which sadly 
really affect any kind of queue management.
 
That's why pricing becomes a practical issue, and issues of "utility" to the 
users become important.
 
Now the other thing that is crucial is that the optimal state almost all of the 
time of every link in the network is that a utilization far from max capacity. 
The reason for this is the fact that the Internet (like almost all networks) is 
bursty and fractal. The law of large numbers doesn't smooth traffic volume over 
any timescale (that's the sense of fractalness here). There is no statistical 
smoothing of load - there are rare high peaks on some links but most links are 
underutilized, *if you want all the protocols currently used in the Internet to 
make users happy with minimal time-to-task-completion* (response time at the 
scale that matters for the particular user's needs at that moment).
 
So if most links are uncongested most of the time (and they should be if the 
folks maintaining the subnets are all doing their job by growing links that are 
congested to handle more traffic), then congestion management is only a peak 
load problem, and only affects things a small percentage of the time.
 
This is very, very different from the typical "benchmark" case, which focuses 
only on dealing with peak loads, which are transient in the real world. Most 
"benchmarks" make the strange and unrealistic assumption that overload is 
steady state, and that users themselves don't give up and stop using an 
overloaded system.
 
 
-Original Message-
From: "Jonathan Morton" 
Sent: Friday, March 15, 2019 4:13pm
To: "David P. Reed" 
Cc: "Mikael Abrahamsson" , ecn-s...@lists.bufferbloat.net, 
"bloat" 
Subject: Re: [Bloat] [Ecn-sane] [iccrg] Fwd: [tcpPrague] Implementation and 
experimentation of TCP Prague/L4S hackaton at IETF104



> On 15 Mar, 2019, at 9:44 pm, David P. Reed  wrote:
> 
> pricing (even dynamic pricing) of different qualities of service is unstable

An interesting result, but I should note that the four-way optimisation system 
I described doesn't rely on pricing, only a sufficiently correct implementation 
of those optimisations at enough bottlenecks to make it worthwhile for 
applications to mark their traffic appropriately. The technology exists to do 
so, but is not standardised in a way that makes it usable.

 - Jonathan Morton

___
Bloat mailing list
Bloat@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/bloat


Re: [Bloat] [iccrg] Fwd: [tcpPrague] Implementation and experimentation of TCP Prague/L4S hackaton at IETF104

2019-03-15 Thread Wesley Eddy
Hi, Dave, strangely it looks like nobody has been copying TSVWG on this 
thread, even though that is where the L4S work is happening in the IETF!  :)


I just wanted to respond to one part of your message since I am 
currently acting as document shepherd for the L4S drafts in TSVWG, and 
it seems like maybe you don't know where to find all of the IETF 
materials in order to participate (based on the "stalled out 
indefinitely" comment below).  So in case it's helpful here are some 
pointers to where things are kept.


The 3 base L4S documents were adopted in the TSVWG WG, and have been 
regularly updated.  You can find the charter and milestone dates 
(currently June 2019) quite easily on the WG datatracker page: 
https://datatracker.ietf.org/group/tsvwg/about/ and of course the 
"Documents" tab there takes you to the copies of all the documents.


There have been updates on L4S and presentations/discussions at the IETF 
meetings (with minutes and charts posted to the proceedings), as well as 
L4S draft reviews and comment threads on the TSVWG list whose archives 
are under "List archive".  You can find meeting minutes and slide decks 
also readily linked from that WG page: 
https://datatracker.ietf.org/group/tsvwg/meetings/


There are source code repositories, papers, videos, etc. that the 
proponents have also made very easy to find, e.g. 
https://riteproject.eu/dctth/#code (and as linked in meeting materials).


Since we (TSVWG chairs) are looking for inputs towards WGLC readiness to 
proceed on these, hopefully this information is helpful for you.



On 3/15/2019 6:46 AM, Dave Taht wrote:
> ...
>
> Some background to this: after the L4S/TCP Prague/and dualpi 
experiments appeared stalled out indefinitely in the IETF, and with our 
own frustration with IETF processes, bufferbloat.net project members 
publicly formed our own working group to look into the problems with 
ecn, back in august of last year.


___
Bloat mailing list
Bloat@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/bloat


Re: [Bloat] [Ecn-sane] [iccrg] Fwd: [tcpPrague] Implementation and experimentation of TCP Prague/L4S hackaton at IETF104

2019-03-15 Thread Dave Taht
On Fri, Mar 15, 2019 at 1:28 PM Jonathan Foulkes  
wrote:
>
> All this discussion of DSCP marking brings to mind what happened on the 
> Windows platform, where the OS had to suppress ALL DSCP marks, as app authors 
> were trying to game the system.
> And even if not trying to ‘game’ it, they have non-obvious reasons why they 
> don’t mark traffic how one would expect. Example:
>
> I know an engineer who works at a cloud-storage solution company, and I asked 
> why a long-standing customer request for DSCP marking (as bulk) was not 
> implemented. His answer was they’d never do that, as that would impact 
> benchmarks against their competitors for which service syncs faster. 
>
> Which brings me to a question: Is anyone aware of an easy to use Windows app 
> that will allow the user to select an application and tell the OS to mark the 
> traffic (all or by port) with a user selected DSCP level?
> There are many guides on using regedit and other error-prone (and geek-only) 
> means of doing this, but is there a simple Windows 10 home app?

When I last tried it (years ago), in order to set the tos bits, an
application merely had to have admin privs.

> Now that Cake is out there with simple DiffServ3 support, it would be nice to 
> lower the priority of cloud-storage services and other bulk traffic by 
> correctly marking it at the origin.
>
> Cheers,
>
> Jonathan Foulkes
>
>
> > On Mar 15, 2019, at 3:32 PM, Jonathan Morton  wrote:
> >
> >> On 15 Mar, 2019, at 8:36 pm, Mikael Abrahamsson  wrote:
> >>
> >> Having a "lower-than-best-effort" diffserve codepoint might work, because 
> >> it means worse treatment, not preferential treatment.
> >>
> >> The problem with having DSCP CPs that indicate preferential treatment is 
> >> typically a ddos magnet.
> >
> > This is true, and also why I feel that just 2 bits should be sufficient for 
> > Diffserv (rather than 6).  They are sufficient to express four different 
> > optimisation targets:
> >
> > 0: Maximum Throughput (aka Best Effort)
> > 1: Minimum Cost (aka Least Effort)
> > 2: Minimum Latency (aka Maximum Responsiveness)
> > 3: Minimum Loss (aka Maximum Reliability)
> >
> > It is legitimate for traffic to request any of these four optimisations, 
> > with the explicit tradeoff of *not* necessarily getting optimisation in the 
> > other three dimensions.
> >
> > The old TOS spec erred in specifying 4 non-exclusive bits to express this, 
> > in addition to 3 bits for a telegram-office style "priority level" (which 
> > was very much ripe for abuse if not strictly admission-controlled).  TOS 
> > was rightly considered a mess, but was replaced with Diffserv which was far 
> > too loose a spec to be useful in practice.
> >
> > But that's a separate topic from ECN per se.
> >
> > - Jonathan Morton
> >
> > ___
> > Bloat mailing list
> > Bloat@lists.bufferbloat.net
> > https://lists.bufferbloat.net/listinfo/bloat
>
> ___
> Bloat mailing list
> Bloat@lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/bloat



-- 

Dave Täht
CTO, TekLibre, LLC
http://www.teklibre.com
Tel: 1-831-205-9740
___
Bloat mailing list
Bloat@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/bloat


Re: [Bloat] [Ecn-sane] [iccrg] Fwd: [tcpPrague] Implementation and experimentation of TCP Prague/L4S hackaton at IETF104

2019-03-15 Thread Jonathan Foulkes
All this discussion of DSCP marking brings to mind what happened on the Windows 
platform, where the OS had to suppress ALL DSCP marks, as app authors were 
trying to game the system.
And even if not trying to ‘game’ it, they have non-obvious reasons why they 
don’t mark traffic how one would expect. Example:

I know an engineer who works at a cloud-storage solution company, and I asked 
why a long-standing customer request for DSCP marking (as bulk) was not 
implemented. His answer was they’d never do that, as that would impact 
benchmarks against their competitors for which service syncs faster. 

Which brings me to a question: Is anyone aware of an easy to use Windows app 
that will allow the user to select an application and tell the OS to mark the 
traffic (all or by port) with a user selected DSCP level?
There are many guides on using regedit and other error-prone (and geek-only) 
means of doing this, but is there a simple Windows 10 home app?

Now that Cake is out there with simple DiffServ3 support, it would be nice to 
lower the priority of cloud-storage services and other bulk traffic by 
correctly marking it at the origin. 

Cheers,

Jonathan Foulkes


> On Mar 15, 2019, at 3:32 PM, Jonathan Morton  wrote:
> 
>> On 15 Mar, 2019, at 8:36 pm, Mikael Abrahamsson  wrote:
>> 
>> Having a "lower-than-best-effort" diffserve codepoint might work, because it 
>> means worse treatment, not preferential treatment.
>> 
>> The problem with having DSCP CPs that indicate preferential treatment is 
>> typically a ddos magnet.
> 
> This is true, and also why I feel that just 2 bits should be sufficient for 
> Diffserv (rather than 6).  They are sufficient to express four different 
> optimisation targets:
> 
> 0: Maximum Throughput (aka Best Effort)
> 1: Minimum Cost (aka Least Effort)
> 2: Minimum Latency (aka Maximum Responsiveness)
> 3: Minimum Loss (aka Maximum Reliability)
> 
> It is legitimate for traffic to request any of these four optimisations, with 
> the explicit tradeoff of *not* necessarily getting optimisation in the other 
> three dimensions.
> 
> The old TOS spec erred in specifying 4 non-exclusive bits to express this, in 
> addition to 3 bits for a telegram-office style "priority level" (which was 
> very much ripe for abuse if not strictly admission-controlled).  TOS was 
> rightly considered a mess, but was replaced with Diffserv which was far too 
> loose a spec to be useful in practice.
> 
> But that's a separate topic from ECN per se.
> 
> - Jonathan Morton
> 
> ___
> Bloat mailing list
> Bloat@lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/bloat

___
Bloat mailing list
Bloat@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/bloat


Re: [Bloat] [Ecn-sane] [iccrg] Fwd: [tcpPrague] Implementation and experimentation of TCP Prague/L4S hackaton at IETF104

2019-03-15 Thread Jonathan Morton
> On 15 Mar, 2019, at 9:44 pm, David P. Reed  wrote:
> 
> pricing (even dynamic pricing) of different qualities of service is unstable

An interesting result, but I should note that the four-way optimisation system 
I described doesn't rely on pricing, only a sufficiently correct implementation 
of those optimisations at enough bottlenecks to make it worthwhile for 
applications to mark their traffic appropriately.  The technology exists to do 
so, but is not standardised in a way that makes it usable.

 - Jonathan Morton

___
Bloat mailing list
Bloat@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/bloat


Re: [Bloat] [Ecn-sane] [iccrg] Fwd: [tcpPrague] Implementation and experimentation of TCP Prague/L4S hackaton at IETF104

2019-03-15 Thread David P. Reed

Just to throw in one more thing not well understood by engineers.
 
Economists I have discussed this with (real ones, not fringe right-wing true 
believers that the market "just works"), have observed that pricing (even 
dynamic pricing) of different qualities of service is unstable and extremely 
unlikely to reflect the correct price for the particular utility of the 
achieved service quality.
 
The point of that observation is that even a simple 2 classes of service system 
(so-called Paris Metro Pricing) is unstable, such that users of such a system 
will not be encouraged to set the priorities/service types to make system 
optimal or stable.
 
I can explain more, but the end user doesn't benefit from multiple choices of 
class of service at the packet level.
-Original Message-
From: "Jonathan Morton" 
Sent: Friday, March 15, 2019 3:32pm
To: "Mikael Abrahamsson" 
Cc: "David P. Reed" , ecn-s...@lists.bufferbloat.net, 
"bloat" 
Subject: Re: [Bloat] [Ecn-sane] [iccrg] Fwd: [tcpPrague] Implementation and 
experimentation of TCP Prague/L4S hackaton at IETF104



> On 15 Mar, 2019, at 8:36 pm, Mikael Abrahamsson  wrote:
> 
> Having a "lower-than-best-effort" diffserve codepoint might work, because it 
> means worse treatment, not preferential treatment.
> 
> The problem with having DSCP CPs that indicate preferential treatment is 
> typically a ddos magnet.

This is true, and also why I feel that just 2 bits should be sufficient for 
Diffserv (rather than 6). They are sufficient to express four different 
optimisation targets:

0: Maximum Throughput (aka Best Effort)
1: Minimum Cost (aka Least Effort)
2: Minimum Latency (aka Maximum Responsiveness)
3: Minimum Loss (aka Maximum Reliability)

It is legitimate for traffic to request any of these four optimisations, with 
the explicit tradeoff of *not* necessarily getting optimisation in the other 
three dimensions.

The old TOS spec erred in specifying 4 non-exclusive bits to express this, in 
addition to 3 bits for a telegram-office style "priority level" (which was very 
much ripe for abuse if not strictly admission-controlled). TOS was rightly 
considered a mess, but was replaced with Diffserv which was far too loose a 
spec to be useful in practice.

But that's a separate topic from ECN per se.

 - Jonathan Morton

___
Bloat mailing list
Bloat@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/bloat


Re: [Bloat] [Ecn-sane] [iccrg] Fwd: [tcpPrague] Implementation and experimentation of TCP Prague/L4S hackaton at IETF104

2019-03-15 Thread Jonathan Morton
> On 15 Mar, 2019, at 8:36 pm, Mikael Abrahamsson  wrote:
> 
> Having a "lower-than-best-effort" diffserve codepoint might work, because it 
> means worse treatment, not preferential treatment.
> 
> The problem with having DSCP CPs that indicate preferential treatment is 
> typically a ddos magnet.

This is true, and also why I feel that just 2 bits should be sufficient for 
Diffserv (rather than 6).  They are sufficient to express four different 
optimisation targets:

0: Maximum Throughput (aka Best Effort)
1: Minimum Cost (aka Least Effort)
2: Minimum Latency (aka Maximum Responsiveness)
3: Minimum Loss (aka Maximum Reliability)

It is legitimate for traffic to request any of these four optimisations, with 
the explicit tradeoff of *not* necessarily getting optimisation in the other 
three dimensions.

The old TOS spec erred in specifying 4 non-exclusive bits to express this, in 
addition to 3 bits for a telegram-office style "priority level" (which was very 
much ripe for abuse if not strictly admission-controlled).  TOS was rightly 
considered a mess, but was replaced with Diffserv which was far too loose a 
spec to be useful in practice.

But that's a separate topic from ECN per se.

 - Jonathan Morton

___
Bloat mailing list
Bloat@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/bloat


Re: [Bloat] [Ecn-sane] [iccrg] Fwd: [tcpPrague] Implementation and experimentation of TCP Prague/L4S hackaton at IETF104

2019-03-15 Thread Sebastian Moeller
Hi Mikael,


> On Mar 15, 2019, at 19:36, Mikael Abrahamsson  wrote:
> 
> On Fri, 15 Mar 2019, David P. Reed wrote:
> 
>> So if the responsible network engineers in the carriers cannot agree on 
>> anything, IETF is wasting its time.
> 
> The IETF has already said that anything diffserv is domain-internal only. I 
> have joined the effort of the LE PHB and see if we can get some kind of 
> agreement and transparancy for a PHB that is aimed at customer access only 
> and "drop most of me and my pals at any sign of customer access line 
> congestion", and see if that can be agreed on.

+1

> 
> Having a "lower-than-best-effort" diffserve codepoint might work, because it 
> means worse treatment, not preferential treatment.
> 
> The problem with having DSCP CPs that indicate preferential treatment is 
> typically a ddos magnet.

Hence splitting it up, three for the current transport domain to do 
with as it sees fit and 3 for signaling intent; this very much does not give a 
guarantee that any intermediate hop will follow the intent, but only make it 
possible for the endpoints to transmit intent. This IMHO is completely 
compatible with a LE PHB and transports honoring that request. 

> See my emails on this topic on (this? other?) mailing lists where I try to 
> create a three class buffering system saying "LE gets 5%, BE and 
> 'everything-else' gets to split the difference".

We can haggle over the numbers but that seems a) sane and b) 
underspecified...

> 
> I even got pushback on this here, and then we're not even close to people 
> running large ISP networks who see ddos attacks happen hourly.
> 
> Saying L4S should "just use diffserv" is as constructive to say "go away and 
> pound a rock" or "we want that bit pattern so.. screw you".

But just nodding expertly when they go and claim an unrelated bit in 
the IP header for their separation l4s vs legacy (as if l4s would be the end 
all of network design), and then having resorting to modifying so-far 
not-deployed-at the edge DCTCP (instead of modifying well-deployed TCP) because 
they already spent the one bit usable to extend ECN for less binary congestion 
signaling in a backward-compatible fashion... I might be wording things to 
strongly here, but that is the general gist.

> 
> L4S has a much better possibility of actually getting deployment into the 
> wider Internet packet-moving equipment than anything being talked about here.

That is not a high bar to clear though...

> Same with PIE as opposed to FQ_CODEL. I know it's might not be as good,

Debatable, and from my perspective this is the reason to talk about it 
at all.

> but it fits better into actual silicon

Does it?

> and it's being proposed by people who actually have better channels into the 
> people setting hard requirements.

That would be great if the proposal would throw end-user like me a bone 
instead of treating me as the product. It would also help if the architectural 
RFC would not be so breathlessly over-hyping/over-promising... But they really 
need end-points to switch over to a neutered DCTCP before things start to make 
sense, so they actually need to convince end-users and so far they are doing a 
terrible job IMHO. But what do I know...

> 
> I suggest you consider joining them instead of opposing them.

Join where? it pretty much looks like a "fait accompli" as they do seem 
way past the design stages and seem pretty much crystallized in what they see 
the path forward. 

Best Regards
Sebastian

> 
> -- 
> Mikael Abrahamssonemail: swm...@swm.pp.se

___
Bloat mailing list
Bloat@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/bloat


Re: [Bloat] [Ecn-sane] [iccrg] Fwd: [tcpPrague] Implementation and experimentation of TCP Prague/L4S hackaton at IETF104

2019-03-15 Thread Mikael Abrahamsson

On Fri, 15 Mar 2019, David P. Reed wrote:

So if the responsible network engineers in the carriers cannot agree on 
anything, IETF is wasting its time.


The IETF has already said that anything diffserv is domain-internal only. 
I have joined the effort of the LE PHB and see if we can get some kind of 
agreement and transparancy for a PHB that is aimed at customer access only 
and "drop most of me and my pals at any sign of customer access line 
congestion", and see if that can be agreed on.


Having a "lower-than-best-effort" diffserve codepoint might work, because 
it means worse treatment, not preferential treatment.


The problem with having DSCP CPs that indicate preferential treatment is 
typically a ddos magnet. See my emails on this topic on (this? other?) 
mailing lists where I try to create a three class buffering system saying 
"LE gets 5%, BE and 'everything-else' gets to split the difference".


I even got pushback on this here, and then we're not even close to people 
running large ISP networks who see ddos attacks happen hourly.


Saying L4S should "just use diffserv" is as constructive to say "go away 
and pound a rock" or "we want that bit pattern so.. screw you".


L4S has a much better possibility of actually getting deployment into the 
wider Internet packet-moving equipment than anything being talked about 
here. Same with PIE as opposed to FQ_CODEL. I know it's might not be as 
good, but it fits better into actual silicon and it's being proposed by 
people who actually have better channels into the people setting hard 
requirements.


I suggest you consider joining them instead of opposing them.

--
Mikael Abrahamssonemail: swm...@swm.pp.se
___
Bloat mailing list
Bloat@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/bloat


Re: [Bloat] [Ecn-sane] [iccrg] Fwd: [tcpPrague] Implementation and experimentation of TCP Prague/L4S hackaton at IETF104

2019-03-15 Thread Mikael Abrahamsson

On Fri, 15 Mar 2019, Dave Taht wrote:

It appears, also, ironically, (I have confirmation from several sources 
now) that cake, fq_codel and dualpi are now illegal for an ISP to use in 
their provided equipment under california law. The idea of one day 
having to appear in court to defend our key algorithms reminds me of the 
famous john fogerty case where he demonstrated how blues music was made.


I would love to know more about this. Running an AQM on the customer 
access that doesn't prioritize some specific service should be fine, ie it 
doesn't explicitly do something the *customer* doesn't benefit from.


Net neutrality should be about what the ISP does to benefit itself, not 
what is done on the customer access line (the scheduler per customer) that 
just looks at packet flow characteristics and isn't configured to 
prioritize any specific content (src/destination/port etc).


--
Mikael Abrahamssonemail: swm...@swm.pp.se
___
Bloat mailing list
Bloat@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/bloat


Re: [Bloat] [Ecn-sane] [iccrg] Fwd: [tcpPrague] Implementation and experimentation of TCP Prague/L4S hackaton at IETF104

2019-03-15 Thread Sebastian Moeller


On March 15, 2019 6:01:23 PM GMT+01:00, "David P. Reed"  
wrote:
>
>The absolute fundamental issue with diffserv, IMO, is that the carriers
>cannot agree on an actual specification of what routers and gateways
>are supposed to do, while being compatible with the core principle of
>the IP layer: do not hold packets if they cause increasing queueing
>delay. (this is in the Best Practices RFC)
> 

IMHO it is the Charme of the 2 times 3 bits approach, that carriers get 3 bits 
they can do with whatever they want. As VLAN tags and MPLS? only support 3 bit 
priorities this looks to me like a match made in heaven, and we get 3 bits with 
end to end guarantees. Not that rolling that out would ever work in reality

Best Regards

Sebastian

And yes, this is not an idea I came up with, I just forgot who proposed that 
initially.


>And it's not for lack of trying. Dave Clark led a working group at the
>MIT communications futures program (where I was a principle) that
>included most major backbone providers' key folks that was specifically
>focused on getting a widespread agreement on what any of the code
>points might mean, not as bullshit English descriptions of what kind of
>traffic each one represented, but as an operational description of what
>should be done by a router to manage its queues.
> 
>They couldn't even agree (after about 18 months of meetings) about what
>the bullshit English intent was, much less what operational semantics
>in the packet forwarding network had to be.
> 
>So if the responsible network engineers in the carriers cannot agree on
>anything, IETF is wasting its time.
> 
> 
> 
> 
>-Original Message-
>From: "Sebastian Moeller" 
>Sent: Friday, March 15, 2019 11:52am
>To: "Dave Täht" 
>Cc: ecn-s...@lists.bufferbloat.net, "bloat"
>
>Subject: Re: [Ecn-sane] [Bloat] [iccrg] Fwd: [tcpPrague] Implementation
>and experimentation of TCP Prague/L4S hackaton at IETF104
>
>
>
>Hi Dave,
>
>
>> On Mar 15, 2019, at 15:06, Dave Taht  wrote:
>> 
>> I would really prefer to move this discussion to the ecn-sane mailing
>> list, as IMHO, ecn is generally such a tiny thing needed for good
>> congestion control compared to better transports like pacing + bbr,
>> and things like bql, fq, and aqm using drop.
>> 
>> I'm going to keep cc-ing that list in the hope that we can keep
>better
>> track of the discussion here.
>
>Ah, sure, I basically wanted to avoid annoying the ietf lists as I feel
>out of place there, having only had a cursory read of the relevant
>RFCs.
>
>
>> 
>> On Fri, Mar 15, 2019 at 6:01 AM Sebastian Moeller 
>wrote:
>>> 
>>> Hi Dave,
>>> 
>>> I pruned the CC list as I am out of my league here and want to
>restrict the radius of my embarrassment to those that already know my
>level of incompetence before hand.
>> 
>> IMHO, your work on educating the OpenWrt community over the years on
>> how to use sqm, makes you much more than "only a grasshopper". You
>> have a firm grip on what can be achieved in the real world.
>> 
>>> 
>>> That said, having read through the L4S architecture description and
>the related appendices of draft-ietf-tsvwg-ecn-l4s-id-05 I came to the
>conclusion, that this is a mess.
>> 
>> I am so glad someone other than I has now read it.
>> 
>>> The L4S project proposes a really wide-ranging change of basically
>the internet (but allow a concurrent operation with legacy probably to
>cater to the fact that an internet-wide flag-day seems daunting to
>organize). But then they chicken out when figuring out how to
>differentiate between their new and the old by proposing to use ECT(1)
>for a purpose outside of its nominal purpose namely explicit congestion
>notification, why not think bolder? If the plan is to change everything
>the feasibility can not hinge upon the ability to re-using one old
>legacy bit, can it...
>>> Conceptually it seems much cleaner to use ECT(1) for congestion
>notification directly (there are already proposals out there and SCE
>just added another fully back-ward compatible one) and find another way
>to mark l4s traffic, sure that is going to be hard and inconvenient,
>but if you set out to change the internet that is par for the course.
>>> IMHO they would do more good if they actually fought for a better
>use of the 6 DSCP bits instead. (say by splitting into two groups of 3
>bits, one group for reduced diffserv and one group for new features,
>that would even
>> 
>> The existing diffserv deployment is a failure.
>
> Which is a shame, but one RFC's failure is another one's opportunity.
>
>
>> I have another ID
>> cooking that suggests a better way, going forward, to use them, but I
>> do not feel at this time it would be useful to present. One big
>battle
>> at a time.
>
>:)
>
>> That ID is very simple, it basically proposes that all
>> diffserv codepoints be passed through ISPs and transit providers
>> unchanged, and if any given codepoint must be changed, the only
>> permissible change is to 0 (BE), and MUST be not be remarked to
>> 

Re: [Bloat] [Ecn-sane] [iccrg] Fwd: [tcpPrague] Implementation and experimentation of TCP Prague/L4S hackaton at IETF104

2019-03-15 Thread David P. Reed

The absolute fundamental issue with diffserv, IMO, is that the carriers cannot 
agree on an actual specification of what routers and gateways are supposed to 
do, while being compatible with the core principle of the IP layer: do not hold 
packets if they cause increasing queueing delay. (this is in the Best Practices 
RFC)
 
And it's not for lack of trying. Dave Clark led a working group at the MIT 
communications futures program (where I was a principle) that included most 
major backbone providers' key folks that was specifically focused on getting a 
widespread agreement on what any of the code points might mean, not as bullshit 
English descriptions of what kind of traffic each one represented, but as an 
operational description of what should be done by a router to manage its queues.
 
They couldn't even agree (after about 18 months of meetings) about what the 
bullshit English intent was, much less what operational semantics in the packet 
forwarding network had to be.
 
So if the responsible network engineers in the carriers cannot agree on 
anything, IETF is wasting its time.
 
 
 
 
-Original Message-
From: "Sebastian Moeller" 
Sent: Friday, March 15, 2019 11:52am
To: "Dave Täht" 
Cc: ecn-s...@lists.bufferbloat.net, "bloat" 
Subject: Re: [Ecn-sane] [Bloat] [iccrg] Fwd: [tcpPrague] Implementation and 
experimentation of TCP Prague/L4S hackaton at IETF104



Hi Dave,


> On Mar 15, 2019, at 15:06, Dave Taht  wrote:
> 
> I would really prefer to move this discussion to the ecn-sane mailing
> list, as IMHO, ecn is generally such a tiny thing needed for good
> congestion control compared to better transports like pacing + bbr,
> and things like bql, fq, and aqm using drop.
> 
> I'm going to keep cc-ing that list in the hope that we can keep better
> track of the discussion here.

 Ah, sure, I basically wanted to avoid annoying the ietf lists as I feel out of 
place there, having only had a cursory read of the relevant RFCs.


> 
> On Fri, Mar 15, 2019 at 6:01 AM Sebastian Moeller  wrote:
>> 
>> Hi Dave,
>> 
>> I pruned the CC list as I am out of my league here and want to restrict the 
>> radius of my embarrassment to those that already know my level of 
>> incompetence before hand.
> 
> IMHO, your work on educating the OpenWrt community over the years on
> how to use sqm, makes you much more than "only a grasshopper". You
> have a firm grip on what can be achieved in the real world.
> 
>> 
>> That said, having read through the L4S architecture description and the 
>> related appendices of draft-ietf-tsvwg-ecn-l4s-id-05 I came to the 
>> conclusion, that this is a mess.
> 
> I am so glad someone other than I has now read it.
> 
>> The L4S project proposes a really wide-ranging change of basically the 
>> internet (but allow a concurrent operation with legacy probably to cater to 
>> the fact that an internet-wide flag-day seems daunting to organize). But 
>> then they chicken out when figuring out how to differentiate between their 
>> new and the old by proposing to use ECT(1) for a purpose outside of its 
>> nominal purpose namely explicit congestion notification, why not think 
>> bolder? If the plan is to change everything the feasibility can not hinge 
>> upon the ability to re-using one old legacy bit, can it...
>> Conceptually it seems much cleaner to use ECT(1) for congestion notification 
>> directly (there are already proposals out there and SCE just added another 
>> fully back-ward compatible one) and find another way to mark l4s traffic, 
>> sure that is going to be hard and inconvenient, but if you set out to change 
>> the internet that is par for the course.
>> IMHO they would do more good if they actually fought for a better use of the 
>> 6 DSCP bits instead. (say by splitting into two groups of 3 bits, one group 
>> for reduced diffserv and one group for new features, that would even
> 
> The existing diffserv deployment is a failure.

 Which is a shame, but one RFC's failure is another one's opportunity.


> I have another ID
> cooking that suggests a better way, going forward, to use them, but I
> do not feel at this time it would be useful to present. One big battle
> at a time.

:)

> That ID is very simple, it basically proposes that all
> diffserv codepoints be passed through ISPs and transit providers
> unchanged, and if any given codepoint must be changed, the only
> permissible change is to 0 (BE), and MUST be not be remarked to
> anything else, especially not CS1.

 I like the simplicity, but I also like the split into two groups of 3 bits, 
say "active bit pattern" (for transport purposes) and "intenden bit pattern" 
for the sender to transmit intent, which than can be conveyed lossless to the 
receiver; my gut feeling is that throwing the transport people a bone here 
might work better, as in the end they are the one that will carry the "burden" 
of the change. IMHO this has the additional advantage that it will make "tabula 
rasa" of the existing distict set 

Re: [Bloat] [iccrg] Fwd: [tcpPrague] Implementation and experimentation of TCP Prague/L4S hackaton at IETF104

2019-03-15 Thread Sebastian Moeller
Hi Dave,


> On Mar 15, 2019, at 15:06, Dave Taht  wrote:
> 
> I would really prefer to move this discussion to the ecn-sane mailing
> list, as IMHO, ecn is generally such a tiny thing needed for good
> congestion control compared to better transports like pacing + bbr,
> and things like bql, fq, and aqm using drop.
> 
> I'm going to keep cc-ing that list in the hope that we can keep better
> track of the discussion here.

Ah, sure, I basically wanted to avoid annoying the ietf lists as I feel 
out of place there, having only had a cursory read of the relevant RFCs.


> 
> On Fri, Mar 15, 2019 at 6:01 AM Sebastian Moeller  wrote:
>> 
>> Hi Dave,
>> 
>> I pruned the CC list as I am out of my league here and want to restrict the 
>> radius of my embarrassment to those that already know my level of 
>> incompetence before hand.
> 
> IMHO, your work on educating the OpenWrt community over the years on
> how to use sqm, makes you much more than "only a grasshopper". You
> have a firm grip on what can be achieved in the real world.
> 
>> 
>> That said, having read through the L4S architecture description and the 
>> related appendices of draft-ietf-tsvwg-ecn-l4s-id-05 I came to the 
>> conclusion, that this is a mess.
> 
> I am so glad someone other than I has now read it.
> 
>> The L4S project proposes a really wide-ranging change of basically the 
>> internet (but allow a concurrent operation with legacy probably to cater to 
>> the fact that an internet-wide flag-day seems daunting to organize). But 
>> then they chicken out when figuring out how to differentiate between their 
>> new and the old by proposing to use ECT(1) for a purpose outside of its 
>> nominal purpose namely explicit congestion notification, why not think 
>> bolder? If the plan is to change everything the feasibility can not hinge 
>> upon the ability to re-using one old legacy bit, can it...
>> Conceptually it seems much cleaner to use ECT(1) for congestion notification 
>> directly (there are already proposals out there and SCE just added another 
>> fully back-ward compatible one) and find another way to mark l4s traffic, 
>> sure that is going to be hard and inconvenient, but if you set out to change 
>> the internet that is par for the course.
>> IMHO they would do more good if they actually fought for a better use of the 
>> 6 DSCP bits instead. (say by splitting into two groups of 3 bits, one group 
>> for reduced diffserv and one group for new features, that would even
> 
> The existing diffserv deployment is a failure.

Which is a shame, but one RFC's failure is another one's opportunity.


> I have another ID
> cooking that suggests a better way, going forward, to use them, but I
> do not feel at this time it would be useful to present. One big battle
> at a time.

:)

> That ID is very simple, it basically proposes that all
> diffserv codepoints be passed through ISPs and transit providers
> unchanged, and if any given codepoint must be changed, the only
> permissible change is to 0 (BE), and MUST be not be remarked to
> anything else, especially not CS1.

I like the simplicity, but I also like the split into two groups of 3 
bits, say "active bit pattern" (for transport purposes) and "intenden bit 
pattern" for the sender to transmit intent, which than can be conveyed lossless 
to the receiver; my gut feeling is that throwing the transport people a bone 
here might work better, as in the end they are the one that will carry the 
"burden" of the change. IMHO this has the additional advantage that it will 
make "tabula rasa" of the existing distict set of bit patterns used in the real 
world. Which in turn probably is this ideas downfall...


> 
>> allow for concurrent use of the inevitable L5S and L6S ;) ). Especially 
>> since as far as I can understand l4s actually would like to have a more 
>> gradual congestion information stream than classic ECN, and since they need 
>> to modify DCTCP anyway to make it save for the wider internet, replacing its 
>> ECN response should be well inside the scope of work they already have on 
>> their list.
> 
> Next up for sce was going to be to find if dctcp could be modified to
> use it. Also, bittorrent.

YES! I endorse this message.

> 
>> If I sound a bit miffed, it is because after reading 
>> https://tools.ietf.org/html/draft-ietf-tsvwg-l4s-arch-03 I do not have the 
>> feeling they are trying to build abetter internet, but rather that they are 
>> building an internet where I can be a better "product" and customer of 
>> newfangled services, and I do not look forward to such a facebooky future 
>> with much enthusiasm.
> 
> I have rigorously tried to keep the network neutrality debate out of
> this.

And I really do not want to start this here, as I agree that this is 
about a technical question. That said, I had hoped more out of the l4s promises 
from an end-user perspective. Then again, it if this is going to happen it 
needs the ISPs 

Re: [Bloat] [iccrg] Fwd: [tcpPrague] Implementation and experimentation of TCP Prague/L4S hackaton at IETF104

2019-03-15 Thread Jonathan Morton
> On 15 Mar, 2019, at 4:44 pm, Sebastian Moeller  wrote:
> 
> In essence, they do not want to deal with the diffserv mess under the 
> end-to-end perspective and making it reliable.

Yeah, that's pretty much what I thought.  Diffserv really does need to be fixed 
sometime.

>> But Codel-type AQMs don't provide the ideal ECN signal for L4S (and nor do 
>> RED-type AQMs without specific tuning for L4S), and any single-queue AQM is 
>> going to end up with L4S flows outcompeting standard ones quite seriously.
> 
> Except L$S flows are required to "degrade" to classic congestion contro once 
> they have proof of not being handled by a l4s aware AQM, like real packet 
> drops or ECT(0) + CE...

That isn't enough, because ECN AQMs as presently specified won't change ECT(1) 
to ECT(0) (nor will SCE), and it would require a lot of overload before 
dropping actually started.  So those signals don't reliably identify a legacy 
AQM.

> L4S would find uses for SCE, but that still faces the same roll-out issue...

It's not the same roll-out issue, because in an SCE context L4S would have to 
be legacy-compatible by default, and only employ the "new" behaviour when SCE 
information appears - the reverse of its present behaviour - which then makes 
it backwards compatible and incrementally deployable.

The real snag is that DCTCP's setpoint is 2 marks per RTT, which is different 
from SCE's specified setpoint of 50% packets marked (unless the cwnd is down to 
4 packets).  That'd make it difficult for a straight port of DCTCP to SCE to 
achieve full throughput.

A sane compromise could be for SCE to be marked in the same way as L4S marks 
CE, and a valid interpretation of SCE to follow the 1/n response of DCTCP.  
That would leverage existing TCP-Prague R, but in a backwards-compatible, 
incrementally-deployable manner.  Perhaps that's something worth discussing at 
IETF?

 - Jonathan Morton

___
Bloat mailing list
Bloat@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/bloat


Re: [Bloat] [iccrg] Fwd: [tcpPrague] Implementation and experimentation of TCP Prague/L4S hackaton at IETF104

2019-03-15 Thread Sebastian Moeller
Hi Jonathan,


> On Mar 15, 2019, at 15:27, Jonathan Morton  wrote:
> 
>> On 15 Mar, 2019, at 3:01 pm, Sebastian Moeller  wrote:
>> 
>> That said, having read through the L4S architecture description and the 
>> related appendices of draft-ietf-tsvwg-ecn-l4s-id-05 I came to the 
>> conclusion, that this is a mess.
>> 
>> The L4S project proposes a really wide-ranging change of basically the 
>> internet (but allow a concurrent operation with legacy probably to cater to 
>> the fact that an internet-wide flag-day seems daunting to organize). But 
>> then they chicken out when figuring out how to differentiate between their 
>> new and the old by proposing to use ECT(1)…
> 
> I think I would be less annoyed by L4S if it proposed to assign a DSCP or 
> three to identify its traffic.  In fact, I'd be interested to hear a defence 
> of why DSCP identification of L4S flows was *not* adopted.  I suspect it 
> would revolve around the widespread practice of re-marking DSCPs by ISPs, 
> which renders DSCP too unreliable for L4S' purposes.

https://tools.ietf.org/html/draft-ietf-tsvwg-ecn-l4s-id-05 contains a 
discussion of the alternatives, specifically to your point it argues:
"Appendix B.  Alternative Identifiers
[...]
B.2.  ECN Plus a Diffserv Codepoint (DSCP)


   Definition:

  For packets with a defined DSCP, all codepoints of the ECN field
  (except Not-ECT) would signify alternative L4S semantics to those
  for classic ECN [RFC3168], specifically:

  *  The L4S DSCP would signifiy that the packet came from an L4S-
 capable sender;

  *  ECT(0) and ECT(1) would both signify that the packet was
 travelling between transport endpoints that were both ECN-
 capable;

  *  CE would signify that the packet had been marked by an AQM
 implementing the L4S service.

   Use of a DSCP is the only approach for alternative ECN semantics
   given as an example in [RFC4774].  However, it was perhaps considered
   more for controlled environments than new end-to-end services;

   Cons:

   Consumes DSCP pairs:  A DSCP is obviously not orthogonal to Diffserv.
  Therefore, wherever the L4S service is applied to multiple
  Diffserv scheduling behaviours, it would be necessary to replace
  each DSCP with a pair of DSCPs.

   Uses critical lower-layer header space:  The resulting increased
  number of DSCPs might be hard to support for some lower layer
  technologies, e.g. 802.1p and MPLS both offer only 3-bits for a
  maximum of 8 traffic class identifiers.  Although L4S should
  reduce and possibly remove the need for some DSCPs intended for
  differentiated queuing delay, it will not remove the need for
  Diffserv entirely, because Diffserv is also used to allocate
  bandwidth, e.g. by prioritising some classes of traffic over
  others when traffic exceeds available capacity.

   Not end-to-end (host-network):  Very few networks honour a DSCP set
  by a host.  Typically a network will zero (bleach) the Diffserv
  field from all hosts.  Sometimes networks will attempt to identify
  applications by some form of packet inspection and, based on
  network policy, they will set the DSCP considered appropriate for
  the identified application.  Network-based application
  identification might use some combination of protocol ID, port
  numbers(s), application layer protocol headers, IP address(es),
  VLAN ID(s) and even packet timing.

   Not end-to-end (network-network):  Very few networks honour a DSCP
  received from a neighbouring network.  Typically a network will
  zero (bleach) the Diffserv field from all neighbouring networks at
  an interconnection point.  Sometimes bilateral arrangements are
  made between networks, such that the receiving network remarks
  some DSCPs to those it uses for roughly equivalent services.  The
  likelihood that a DSCP will be bleached or ignored depends on the
  type of DSCP:

  Local-use DSCP:  These tend to be used to implement application-
 specific network policies, but a bilateral arrangement to
 remark certain DSCPs is often applied to DSCPs in the local-use
 range simply because it is easier not to change all of a
 network's internal configurations when a new arrangement is
 made with a neighbour;

  Global-use DSCP:  These do not tend to be honoured across network
 interconnections more than local-use DSCPs.  However, if two
 networks decide to honour certain of each other's DSCPs, the
 reconfiguration is a little easier if both of their globally
 recognised services are already represented by the relevant
 global-use DSCPs.

 Note that today a global-use DSCP gives little more assurance
 of end-to-end service than a local-use DSCP.  In future the
 global-use range might give more assurance of end-to-end
 

Re: [Bloat] [iccrg] Fwd: [tcpPrague] Implementation and experimentation of TCP Prague/L4S hackaton at IETF104

2019-03-15 Thread Jonathan Morton
> On 15 Mar, 2019, at 3:01 pm, Sebastian Moeller  wrote:
> 
> That said, having read through the L4S architecture description and the 
> related appendices of draft-ietf-tsvwg-ecn-l4s-id-05 I came to the 
> conclusion, that this is a mess.
> 
> The L4S project proposes a really wide-ranging change of basically the 
> internet (but allow a concurrent operation with legacy probably to cater to 
> the fact that an internet-wide flag-day seems daunting to organize). But then 
> they chicken out when figuring out how to differentiate between their new and 
> the old by proposing to use ECT(1)…

I think I would be less annoyed by L4S if it proposed to assign a DSCP or three 
to identify its traffic.  In fact, I'd be interested to hear a defence of why 
DSCP identification of L4S flows was *not* adopted.  I suspect it would revolve 
around the widespread practice of re-marking DSCPs by ISPs, which renders DSCP 
too unreliable for L4S' purposes.

But using the ECN field for this purpose is *also* unreliable, because it is 
*intended* to be altered on route (in prescribed ways).  In particular, both 
ECT codepoints can be replaced by CE, erasing the distinction between them when 
it comes to choosing which half of a "dual queue" AQM to pass it through.  I'm 
not convinced they've spent very much of the past several years thinking about 
that.

Fortunately, L4S flows should work with flow-isolating AQMs (including Cake) 
without modifying the latter, and without needing to specifically identify 
which flows are L4S or otherwise.  That really says more about the robustness 
of proper flow isolation than anything else.  But Codel-type AQMs don't provide 
the ideal ECN signal for L4S (and nor do RED-type AQMs without specific tuning 
for L4S), and any single-queue AQM is going to end up with L4S flows 
outcompeting standard ones quite seriously.

Since very little "big iron" hardware supports flow-isolating AQM so far, that 
puts a damper on any "incremental deployment" argument to be made for L4S, even 
if they claim their dual-queue AQM is easier to implement at high link rates 
than full flow isolation.  The fact is that either dual-queue or flow-isolation 
is required in middleboxes *before* endpoint deployment of L4S can begin.

SCE explicitly avoids these problems, as both SCE-aware endpoints and SCE-aware 
middleboxes can safely be deployed without waiting for each other.  Work 
remains on figuring out precisely how SCE information should be produced and 
consumed, and verifying that the resulting system behaves as intended when 
fully deployed - but its interaction with existing deployed hardware and 
software is explicitly defined to be benign.

 - Jonathan Morton

___
Bloat mailing list
Bloat@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/bloat


Re: [Bloat] [iccrg] Fwd: [tcpPrague] Implementation and experimentation of TCP Prague/L4S hackaton at IETF104

2019-03-15 Thread Dave Taht
I would really prefer to move this discussion to the ecn-sane mailing
list, as IMHO, ecn is generally such a tiny thing needed for good
congestion control compared to better transports like pacing + bbr,
and things like bql, fq, and aqm using drop.

I'm going to keep cc-ing that list in the hope that we can keep better
track of the discussion here.

On Fri, Mar 15, 2019 at 6:01 AM Sebastian Moeller  wrote:
>
> Hi Dave,
>
> I pruned the CC list as I am out of my league here and want to restrict the 
> radius of my embarrassment to those that already know my level of 
> incompetence before hand.

IMHO, your work on educating the OpenWrt community over the years on
how to use sqm, makes you much more than "only a grasshopper". You
have a firm grip on what can be achieved in the real world.

>
> That said, having read through the L4S architecture description and the 
> related appendices of draft-ietf-tsvwg-ecn-l4s-id-05 I came to the 
> conclusion, that this is a mess.

I am so glad someone other than I has now read it.

> The L4S project proposes a really wide-ranging change of basically the 
> internet (but allow a concurrent operation with legacy probably to cater to 
> the fact that an internet-wide flag-day seems daunting to organize). But then 
> they chicken out when figuring out how to differentiate between their new and 
> the old by proposing to use ECT(1) for a purpose outside of its nominal 
> purpose namely explicit congestion notification, why not think bolder? If the 
> plan is to change everything the feasibility can not hinge upon the ability 
> to re-using one old legacy bit, can it...
> Conceptually it seems much cleaner to use ECT(1) for congestion notification 
> directly (there are already proposals out there and SCE just added another 
> fully back-ward compatible one) and find another way to mark l4s traffic, 
> sure that is going to be hard and inconvenient, but if you set out to change 
> the internet that is par for the course.
> IMHO they would do more good if they actually fought for a better use of the 
> 6 DSCP bits instead. (say by splitting into two groups of 3 bits, one group 
> for reduced diffserv and one group for new features, that would even

The existing diffserv deployment is a failure. I have another ID
cooking that suggests a better way, going forward, to use them, but I
do not feel at this time it would be useful to present. One big battle
at a time. That ID is very simple, it basically proposes that all
diffserv codepoints be passed through ISPs and transit providers
unchanged, and if any given codepoint must be changed, the only
permissible change is to 0 (BE), and MUST be not be remarked to
anything else, especially not CS1.

>allow for concurrent use of the inevitable L5S and L6S ;) ). Especially since 
>as far as I can understand l4s actually would like to have a more gradual 
>congestion information stream than classic ECN, and since they need to modify 
>DCTCP anyway to make it save for the wider internet, replacing its ECN 
>response should be well inside the scope of work they already have on their 
>list.

Next up for sce was going to be to find if dctcp could be modified to
use it. Also, bittorrent.

> If I sound a bit miffed, it is because after reading 
> https://tools.ietf.org/html/draft-ietf-tsvwg-l4s-arch-03 I do not have the 
> feeling they are trying to build abetter internet, but rather that they are 
> building an internet where I can be a better "product" and customer of 
> newfangled services, and I do not look forward to such a facebooky future 
> with much enthusiasm.

I have rigorously tried to keep the network neutrality debate out of
this. dualpi is just another aqm that needs the same thorough
technical and public evaluation done to it that pie, codel, fq_codel
were subjected to.The use of ect_1 in dualpi for it is nuts IMHO, and
I'd vastly prefer that another L4S codepoint be added to make it work,
but any attempt to do so would also require industry consolidation on
that ID and that would be distracting at this time.

It appears, also, ironically, (I have confirmation from several
sources now) that cake, fq_codel and dualpi are now illegal for an ISP
to use in their provided equipment under california law. The idea of
one day having to appear in court to defend our key algorithms reminds
me of the famous john fogerty case where he demonstrated how blues
music was made.

I wish I knew a lawyer willing to take on "bufferbloat.net vs the
state of california", though, as it may come down to that.

I blew up on this part of the issue here:
http://blog.cerowrt.org/post/net_neutrality_customers/
>
> I hope that the discussion in Prague go well and a compromise/consense can be 
> hashed out as I see different implementations duking it out here, but the 
> overall goal of the competitors seems quite compatible, improving the 
> internet by focussing on latency.
>
> Best Regards
> Sebastian
>
> > On Mar 15, 2019, at 11:46, Dave Taht  

Re: [Bloat] [iccrg] Fwd: [tcpPrague] Implementation and experimentation of TCP Prague/L4S hackaton at IETF104

2019-03-15 Thread Sebastian Moeller
Hi Dave,

I pruned the CC list as I am out of my league here and want to restrict the 
radius of my embarrassment to those that already know my level of incompetence 
before hand.


That said, having read through the L4S architecture description and the related 
appendices of draft-ietf-tsvwg-ecn-l4s-id-05 I came to the conclusion, that 
this is a mess.

The L4S project proposes a really wide-ranging change of basically the internet 
(but allow a concurrent operation with legacy probably to cater to the fact 
that an internet-wide flag-day seems daunting to organize). But then they 
chicken out when figuring out how to differentiate between their new and the 
old by proposing to use ECT(1) for a purpose outside of its nominal purpose 
namely explicit congestion notification, why not think bolder? If the plan is 
to change everything the feasibility can not hinge upon the ability to re-using 
one old legacy bit, can it...
Conceptually it seems much cleaner to use ECT(1) for congestion notification 
directly (there are already proposals out there and SCE just added another 
fully back-ward compatible one) and find another way to mark l4s traffic, sure 
that is going to be hard and inconvenient, but if you set out to change the 
internet that is par for the course. 
IMHO they would do more good if they actually fought for a better use of the 6 
DSCP bits instead. (say by splitting into two groups of 3 bits, one group for 
reduced diffserv and one group for new features, that would even allow for 
concurrent use of the inevitable L5S and L6S ;) ). Especially since as far as I 
can understand l4s actually would like to have a more gradual congestion 
information stream than classic ECN, and since they need to modify DCTCP anyway 
to make it save for the wider internet, replacing its ECN response should be 
well inside the scope of work they already have on their list.

If I sound a bit miffed, it is because after reading 
https://tools.ietf.org/html/draft-ietf-tsvwg-l4s-arch-03 I do not have the 
feeling they are trying to build abetter internet, but rather that they are 
building an internet where I can be a better "product" and customer of 
newfangled services, and I do not look forward to such a facebooky future with 
much enthusiasm. 

I hope that the discussion in Prague go well and a compromise/consense can be 
hashed out as I see different implementations duking it out here, but the 
overall goal of the competitors seems quite compatible, improving the internet 
by focussing on latency.

Best Regards
Sebastian

> On Mar 15, 2019, at 11:46, Dave Taht  wrote:
> 
> Bufferbloat.net's ecn-sane working group members have a co-ordinated response 
> to your efforts brewing but it's not ready yet. We have a worldwide team of 
> linux and freebsd developers co-ordinating on landing code for our competing 
> proposal "Some Congestion Experienced", which we submitted to tsvwg last 
> sunday. 
> 
> That draft is under continuous revision, here:
> 
> https://github.com/dtaht/bufferbloat-rfcs/blob/master/sce/draft-morton-taht-tsvwg-sce.txt
> 
> Our Linux and FreeBSD team is also flying into prague for SCE presentations 
> at netdevconf and ietf.
> 
> Some background to this: after the L4S/TCP Prague/and dualpi experiments 
> appeared stalled out indefinitely in the IETF, and with our own frustration 
> with IETF processes, bufferbloat.net project members publicly formed our own 
> working group to look into the problems with ecn, back in august of last year.
> 
> Its charter is here: https://www.bufferbloat.net/projects/ecn-sane/wiki/
> 
> We were unaware, until last month, that the cable industry had 16 months back 
> gone and formed its own private working group also, and was intending to turn 
> the tcp prague/l4s/dualpi IETF "experiments" into an actual DOCSIS standard.
> 
> Our SCE proposal appears to be backward compatible with the existing 10s-100s 
> of millions of ecn-enabled fq_codel[1] and sch_cake[2] deployments, and 
> doesn't require any changes to any RFC3168 tcps (or any tcp-friendly 
> congestion control) at all in order to basically work. tcp-prague is subtly 
> incompatible with that, and dualpi, more so. Our proposal is different also, 
> it proposes some receiver side changes in order to get the full benefit of 
> SCE while remaining backward compatible with the existing meaning of the CE 
> codepoint.
> 
> In either case, either approach essentially permanently redefines the ECT_1 
> codepoint incompatibly, once and for all, and for all time. This is a final 
> battle over the meaning of a single bit in IP, and I expect the debates to be 
> as difficult as the ones described in https://www.ietf.org/rfc/ien/ien137.txt 
> - I would really, really, really prefer that they stay technical and not veer 
> into politics, but I have little hope for that.
> 
> The members of the ecn-sane working group are delighted to finally hear that 
> running code for tcp-prague might land this ietf, and look 

Re: [Bloat] [iccrg] Fwd: [tcpPrague] Implementation and experimentation of TCP Prague/L4S hackaton at IETF104

2019-03-15 Thread Dave Taht
Bufferbloat.net's ecn-sane working group members have a co-ordinated
response to your efforts brewing but it's not ready yet. We have a
worldwide team of linux and freebsd developers co-ordinating on landing
code for our competing proposal "Some Congestion Experienced", which we
submitted to tsvwg last sunday.

That draft is under continuous revision, here:

https://github.com/dtaht/bufferbloat-rfcs/blob/master/sce/draft-morton-taht-tsvwg-sce.txt

Our Linux and FreeBSD team is also flying into prague for SCE presentations
at netdevconf and ietf.

Some background to this: after the L4S/TCP Prague/and dualpi experiments
appeared stalled out indefinitely in the IETF, and with our own frustration
with IETF processes, bufferbloat.net project members publicly formed our
own working group to look into the problems with ecn, back in august of
last year.

Its charter is here: https://www.bufferbloat.net/projects/ecn-sane/wiki/

We were unaware, until last month, that the cable industry had 16 months
back gone and formed its own private working group also, and was intending
to turn the tcp prague/l4s/dualpi IETF "experiments" into an actual DOCSIS
standard.

Our SCE proposal appears to be backward compatible with the existing
10s-100s of millions of ecn-enabled fq_codel[1] and sch_cake[2]
deployments, and doesn't require any changes to any RFC3168 tcps (or any
tcp-friendly congestion control) at all in order to basically work.
tcp-prague is subtly incompatible with that, and dualpi, more so. Our
proposal is different also, it proposes some receiver side changes in order
to get the full benefit of SCE while remaining backward compatible with the
existing meaning of the CE codepoint.

In either case, either approach essentially permanently redefines the ECT_1
codepoint incompatibly, once and for all, and for all time. This is a final
battle over the meaning of a single bit in IP, and I expect the debates to
be as difficult as the ones described in
https://www.ietf.org/rfc/ien/ien137.txt - I would really, really, really
prefer that they stay technical and not veer into politics, but I have
little hope for that.

The members of the ecn-sane working group are delighted to finally hear
that running code for tcp-prague might land this ietf, and look forward to
finally testing the whole l4s/tcpprague/dualpi architecture in conjunction
with the flent.org 's and irtt's exhaustive suite of tests and servers in
the cloud in the coming months, both against our existing, deployed,
fq_codel, fq_pie, cake and pie derived solutions and our new SCE proposal.
We hope to finally be able to write new tests for flent in particular, that
can show tcpprague off in the ways that are important to those developing
it. Flent has some basic dctcp tests, but nothing that can get down below a
20ms sample rate on modern hardware. (currently. It's easy to add tests,
flent is written in python)

We also hope that more test tools and implementations in ns2 and ns3 show
up for tcpprauge  and dualpi show up soon also, from members of those
projects.

Note: sunday's dual-pi linux submission was kicked back from the linux
networking developers due to some technical and legal problems with linux
net-next HEAD ( https://patchwork.ozlabs.org/patch/1054521/  ) , and I do
hope that a corrected version lands soon, so we can safely test it with
current versions of OpenWrt, etc.

Finally, running code. Will we find consensus?

Thx!


[1] https://tools.ietf.org/html/rfc8290
[2] sch_cake was available for 3 years out of tree and was mainlined last
august, in linux 4.19. It is partially described by "Piece of CAKE: A
Comprehensive Queue Management Solution for Home Gateways" "
https://arxiv.org/pdf/1804.07617.pdf

A second paper describing its fq_codel-derived "cobalt" AQM algorithm is
awaiting publication in a peer reviewed journal. It has been part of
openwrt and the related sqm-scripts for many years and is widely deployed
on multiple commercial products, such as those from eero and evenroute.

Cake has a docsis specific mode which we longed for cablelabs to evaluate.


On Fri, Mar 15, 2019 at 2:33 AM Bob Briscoe  wrote:

> Forwarding to tcpm & iccrg - apologies if you were already on one of the
> lists that received this.
>
> Olivier has been working hard on integrating the pieces of a Linux
> implementation of TCP Prague, and is close to having a version ported
> against the tip of the Linux mainline tree. This is his request for more
> people to get involved.
>
>
> Bob
>
>
>  Forwarded Message 
> Subject: [tcpPrague] Implementation and experimentation of TCP Prague/L4S
> hackaton at IETF104
> Date: Wed, 6 Mar 2019 10:26:05 +
> From: Tilmans, Olivier (Nokia - BE/Antwerp)
> 
> 
> To: hackat...@ietf.org  ,
> tcppra...@ietf.org  
> CC: dleb...@google.com  , Joakim
> Misund  , Bob Briscoe
>  , Quentin De Coninck
>  ,
> François Michel 
> , Mirja Kuehlewind
>  ,
> Maxime Piraux  ,
> Olga Albisser  , Fabien Duchêne
>  , De Schepper,
> Koen