Thread (12 messages) flat view 12 messages, 2 authors, 2020-02-14

Re: [PATCH v2 net 3/3] wireguard: send: account for mtu=0 devices

From: Eric Dumazet <hidden>
Date: 2020-02-14 18:53:39


On 2/14/20 10:37 AM, Jason A. Donenfeld wrote:
On 2/14/20, Eric Dumazet [off-list ref] wrote:
quoted

On 2/14/20 10:15 AM, Jason A. Donenfeld wrote:
quoted
On Fri, Feb 14, 2020 at 6:56 PM Eric Dumazet [off-list ref]
wrote:
quoted
Oh dear, can you describe what do you expect of a wireguard device with
mtu == 0 or mtu == 1

Why simply not allowing silly configurations, instead of convoluted tests
in fast path ?

We are speaking of tunnels adding quite a lot of headers, so we better
not try to make them
work on networks with tiny mtu. Just say no to syzbot.
The idea was that wireguard might still be useful for the persistent
keepalive stuff. This branch becomes very cold very fast, so I don't
think it makes a difference performance wise, but if you feel strongly
about it, I can get rid of it and set a non-zero min_mtu that's the
smallest thing wireguard's xmit semantics will accept. It sounds like
you'd prefer that?
Well, if you believe that wireguard in persistent keepalive
has some value on its own, I guess that we will have to support this mode.
Alright.
quoted
Some legacy devices can have arbitrary mtu, and this has caused headaches.
I was hoping that for brand new devices, we could have saner limits.

About setting max_mtu to ~MAX_INT, does it mean wireguard will attempt
to send UDP datagrams bigger than 64K ? Where is the segmentation done ?
The before passings off to the udp tunnel api, we indicate that we
support ip segmentation, and then it gets handled and fragmented
deeper down. Check out socket.c. 
Okay. Speaking of socket.c, I found this wg_socket_reinit() snippet :

synchronize_rcu();
synchronize_net();

Which makes little sense. Please add a comment explaining why these two
calls are needed.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help