Re: [PATCH net-next v8 28/28] net: WireGuard secure network tunnel

2018-10-26 Thread Jason A. Donenfeld
Hey Ted, On Fri, Oct 26, 2018 at 3:09 PM Theodore Y. Ts'o wrote: > If that's what you are trying to conditionalize, why don't use > CONFIG_PM_AUTOSLEEP? That way if there are other systems that want to > use the Android wakelocks style of suspend management, your code will > DTRT, as opposed to

Re: [PATCH net-next v8 28/28] net: WireGuard secure network tunnel

2018-10-26 Thread Theodore Y. Ts'o
On Fri, Oct 26, 2018 at 01:47:21AM +0200, Jason A. Donenfeld wrote: > when it goes to sleep (screen blanking, wakelocks, etc). The Android > model of Linux revolves around this, and hence the suspend semantics > for WireGuard respect this model and adjust accordingly, using the > appropriate CONFIG

Re: [PATCH net-next v8 28/28] net: WireGuard secure network tunnel

2018-10-25 Thread Jason A. Donenfeld
Hi Andrew, On Fri, Oct 26, 2018 at 12:53 AM Andrew Lunn wrote: > > This is on the hot path, actually. Well, it's not on path of data > > packets, but I do consider handshake packets to be fairly "warm". > > So for me, hot path is something called 10 million timers per > second. How often do hands

Re: [PATCH net-next v8 28/28] net: WireGuard secure network tunnel

2018-10-25 Thread Jason A. Donenfeld
Hi Andrew, On Fri, Oct 26, 2018 at 12:37 AM Andrew Lunn wrote: > I can understand that. But on the flip side, CAKE reached something > like version 19 before it got merged. Wireguard is looking similar. > An addition like the above, is not controversial. You could submit > such a single patch in

Re: [PATCH net-next v8 28/28] net: WireGuard secure network tunnel

2018-10-25 Thread Jason A. Donenfeld
Hi Andrew, On Fri, Oct 26, 2018 at 12:44 AM Andrew Lunn wrote: > Out of tree is important here. To some degree, mainline does not care > about out of tree drivers. Putting in a bandaid for them does not help > get them fixed. > > I would drop this bandaid. If the Android community decides to move

Re: [PATCH net-next v8 28/28] net: WireGuard secure network tunnel

2018-10-25 Thread Andrew Lunn
> > > +static void kdf(u8 *first_dst, u8 *second_dst, u8 *third_dst, const u8 > > > *data, > > > + size_t first_len, size_t second_len, size_t third_len, > > > + size_t data_len, const u8 chaining_key[NOISE_HASH_LEN]) > > > +{ > > > + u8 output[BLAKE2S_HASH_SIZE + 1]; >

Re: [PATCH net-next v8 28/28] net: WireGuard secure network tunnel

2018-10-25 Thread Andrew Lunn
> > > +#if defined(CONFIG_PM_SLEEP) && !defined(CONFIG_ANDROID) > > > > I don't see any other code which uses this combination. Why is this > > needed? > > WireGuard clears private key material before going to sleep, so that > ephemeral keys never live longer in ram than their expiration date. > T

Re: [PATCH net-next v8 28/28] net: WireGuard secure network tunnel

2018-10-25 Thread Andrew Lunn
> > > + net_dbg_ratelimited("%s: Could not decrypt invalid cookie > > > response\n", > > > + wg->dev->name); > > > > It might be worth adding a netdev_dbg_ratelimited(), which takes a > > netdev as its first parameter, just line netdev_dbg(). > > That s

Re: [PATCH net-next v8 28/28] net: WireGuard secure network tunnel

2018-10-25 Thread Jason A. Donenfeld
Hi Andrew, Thanks for the review. Comments and fix links are inline below. On Sun, Oct 21, 2018 at 12:47 AM Andrew Lunn wrote: > > > +#define choose_node(parent, key) > > \ > > + parent->bit[(key[parent->bit_at_a] >> parent->bit_at_b) & 1] > Thi

Re: [PATCH net-next v8 28/28] net: WireGuard secure network tunnel

2018-10-20 Thread Andrew Lunn
> +#define choose_node(parent, key) > \ > + parent->bit[(key[parent->bit_at_a] >> parent->bit_at_b) & 1] Hi Jason This should be a function, not a macro. > + > +static void node_free_rcu(struct rcu_head *rcu) > +{ > + kfree(container_of(rcu,