Cake - FQ_codel the next generation
 help / color / mirror / Atom feed
* [Cake] Status of sch_cake and sctp with ECN
@ 2018-10-07  8:45 Ruben
  2018-10-08  5:06 ` Dave Taht
  2018-10-08  5:16 ` Jonathan Morton
  0 siblings, 2 replies; 4+ messages in thread
From: Ruben @ 2018-10-07  8:45 UTC (permalink / raw)
  To: cake

[-- Attachment #1: Type: text/html, Size: 728 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Cake] Status of sch_cake and sctp with ECN
  2018-10-07  8:45 [Cake] Status of sch_cake and sctp with ECN Ruben
@ 2018-10-08  5:06 ` Dave Taht
  2018-10-08  5:16 ` Jonathan Morton
  1 sibling, 0 replies; 4+ messages in thread
From: Dave Taht @ 2018-10-08  5:06 UTC (permalink / raw)
  To: ruben; +Cc: Cake List, ecn-sane

On Sun, Oct 7, 2018 at 9:46 PM Ruben <ruben@vfn-nrw.de> wrote:
>
> Hey guys,
>
> I googled this but I found no answers. RFC4960 (the sctp RFC) is mentioning ECN, but just in the appendix. I was wondering if the Linux library has ECN support, and how one might active it (as socket option or as system setting?)

Pretty good question. The added reliability of ecn would benefit sctp
applications. There's two ways to get sctp out of linux, the kernel
way and a userspace way. Kernel I thought was the most common. Netperf
has support for it.  4+ years back I'd mostly tested sctp over ipv6
and at least from the kernel code in net/sctp/ipv6 it appears to mark
packets as ecn capable, but I wasn't looking at the time. whether the
congestion control in sctp is currently working worth a damn, don't
know.

So I can quickly setup a server to test this over ipv6 this week.

>and if this tags are currently supported to be handled by sch_cake?

ecn capability is a property of any protocol built on top of ip, tcp,
udp, sctp, udp_lite, etc.

> Hope someone got a bit more overview about this, than me, without digging into code documentations.
>
> Thanks in advance!
>
>
> Best regards
>
> Ruben
> _______________________________________________
> Cake mailing list
> Cake@lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/cake



-- 

Dave Täht
CTO, TekLibre, LLC
http://www.teklibre.com
Tel: 1-831-205-9740

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Cake] Status of sch_cake and sctp with ECN
  2018-10-07  8:45 [Cake] Status of sch_cake and sctp with ECN Ruben
  2018-10-08  5:06 ` Dave Taht
@ 2018-10-08  5:16 ` Jonathan Morton
  2018-10-10 13:48   ` Dave Taht
  1 sibling, 1 reply; 4+ messages in thread
From: Jonathan Morton @ 2018-10-08  5:16 UTC (permalink / raw)
  To: Ruben; +Cc: cake

> On 7 Oct, 2018, at 11:45 am, Ruben <ruben@vfn-nrw.de> wrote:
> 
> I googled this but I found no answers. RFC4960 (the sctp RFC) is mentioning ECN, but just in the appendix. I was wondering if the Linux library has ECN support, and how one might active it (as socket option or as system setting?) and if this tags are currently supported to be handled by sch_cake?

ECN itself is an IP-level protocol, using two bits in the former TOS byte.  Cake will treat any packets advertising themselves as ECN-capable in this way as supporting ECN.  Additionally, Cake uses Linux' packet-dissection mechanism (which I believe supports SCTP) to identify and isolate traffic flows, so it doesn't need to understand every possible transport protocol or encapsulation itself.

Of course, it is the responsibility of the sender to set those bits, and of the receiver to interpret them and echo their meaning back to the sender, and of the transport-layer protocol as a whole to respond appropriately to any congestion signal encoded in them.  I don't personally know how well SCTP does that.

 - Jonathan Morton


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Cake] Status of sch_cake and sctp with ECN
  2018-10-08  5:16 ` Jonathan Morton
@ 2018-10-10 13:48   ` Dave Taht
  0 siblings, 0 replies; 4+ messages in thread
From: Dave Taht @ 2018-10-10 13:48 UTC (permalink / raw)
  To: Jonathan Morton; +Cc: ruben, Cake List

It turns out that years ago we incorporated an sctp test into flent
but it doesn't work.

also, I tend to compile netperf with --enable-demo --enable-sctp - but
that *silently* fails unless libsctp is installed.

Anyway flent-fremont's netperf server now supports sctp, and my
firewall for ipv6 doesn't block sctp, and lo and behold,
sctp negotiates ecn.

It does this independent of the setting of the net.ipv4.tcp_ecn
variable. It always negotiates ecn.

However, its congestion control (at least in the framework of the
netperf test) is just miserable, the SCTP_STREAM test
has serious issues trying to saturate a 20Mbit link over 60 seconds.
the STREAM_STREAM_MULTI test does, though,
and you can see cake making CE markings on it. I don't have sufficient
tools or time to look into whether  it's doing the right things or
not. If anyone cares, a packet cap is up at:
http://flent-fremont.bufferbloat.net/~d/sctp/sctp.cap

On the other hand, I'm perfectly happy to have a standard, non-greedy,
reliable, protocol, one capable of multihoming, actually work from
within my home, over ipv6. It feels like the 80s, back when the future
for new protocols looked bright, and disco was king.


d@dancer:~/sctp$ Recv   Send    Send
Socket Socket  Message  Elapsed
Size   Size    Size     Time     Throughput
bytes  bytes   bytes    secs.    10^6bits/sec

212992 212992   4096    60.00       4.96
Recv   Send    Send
Socket Socket  Message  Elapsed
Size   Size    Size     Time     Throughput
bytes  bytes   bytes    secs.    10^6bits/sec

212992 212992   4096    60.00       4.89
Recv   Send    Send
Socket Socket  Message  Elapsed
Size   Size    Size     Time     Throughput
bytes  bytes   bytes    secs.    10^6bits/sec

212992 212992   4096    60.00       4.89
Recv   Send    Send
Socket Socket  Message  Elapsed
Size   Size    Size     Time     Throughput
bytes  bytes   bytes    secs.    10^6bits/sec

212992 212992   4096    60.00       4.91
Recv   Send    Send
Socket Socket  Message  Elapsed
Size   Size    Size     Time     Throughput
bytes  bytes   bytes    secs.    10^6bits/sec

212992 212992 212992    60.01       0.03
Recv   Send    Send
Socket Socket  Message  Elapsed
Size   Size    Size     Time     Throughput
bytes  bytes   bytes    secs.    10^6bits/sec

212992 212992 212992    60.01       0.03
Recv   Send    Send
Socket Socket  Message  Elapsed
Size   Size    Size     Time     Throughput
bytes  bytes   bytes    secs.    10^6bits/sec

212992 212992 212992    60.01       0.09
Recv   Send    Send
Socket Socket  Message  Elapsed
Size   Size    Size     Time     Throughput
bytes  bytes   bytes    secs.    10^6bits/sec

212992 212992 212992    60.01       0.03

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2018-10-10 13:48 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-07  8:45 [Cake] Status of sch_cake and sctp with ECN Ruben
2018-10-08  5:06 ` Dave Taht
2018-10-08  5:16 ` Jonathan Morton
2018-10-10 13:48   ` Dave Taht

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox