I'm disappointed to see Weave adding features instead of fixing the foundation. Userspace encapsulation is garbage; it's both slower and more work than using the kernel's built-in encapsulation.
Today it's becoming harder and harder if users have to make sure that feature X is enabled in kernel version N or even compile and load a module. I do not disagree that your suggestion would benefit the performance.
You make it sound like achieving what weave does would be straightforward with the existing in-kernel encapsulation mechanisms. That's not the case. Even if putting some parts in the kernel would make sense in the long term, getting it right in userspace first is not a ridiculous idea.
@wmf, with respect, it's not garbage and actually works well for many cases. At the same time, it is quite possible to see ways to integrate weave with kernel features! We welcome your input and help on that -- why not get in touch? weave@zett.io