[WireGuard] WireGuard ECN Implementation
Dave Taht
dave.taht at gmail.com
Thu Sep 29 20:19:52 CEST 2016
On Thu, Sep 29, 2016 at 10:50 AM, Jason A. Donenfeld <Jason at zx2c4.com> wrote:
> Hey Dave,
>
> I'm back! Catching up on the backlog now. You wrote in your blog post:
Welcome back!
I got distracted also. See "TCP BBR".
I have no idea how sch_fq + pacing fits into your design, either.
>> In a day, the author (while on a plane!) tossed off an ecn encapsulation
>> implementation (it worked! but it’s not currently as modern RFC compliant as it should be),
>
> What part of it deviates from the RFC precisely? Here's a short
> summary of the implementation:
>
> - When a packet is transmitted:
>
> outer_packet->ds =
> ip_tunnel_ecn_encap(0, ip_hdr(inner_packet), inner_packet);
>
> - When a packet is received:
>
> var = ip_tunnel_get_dsfield(ip_hdr(outer_packet), outer_packet);
> if (INET_ECN_is_ce(var))
> IP_ECN_set_ce(ip_hdr(inner_packet));
I think the correct behavior here is to only set ce on the inner
packet if the inner packet is marked as ecn capable.
> What specifically is wrong with this? Where does it deviate from the
> RFC? I'd like to be as "correct" as possible.
It looked to as tho leveraging the other newer ecn capable codebases
in the kernel was sane also.
>
> Talk soon,
> Jason
--
Dave Täht
Let's go make home routers and wifi faster! With better software!
http://blog.cerowrt.org
More information about the WireGuard
mailing list