]> git.baikalelectronics.ru Git - kernel.git/commit
Merge branch 'vxlan-cleanups'
authorDavid S. Miller <davem@davemloft.net>
Thu, 18 Feb 2016 04:52:12 +0000 (23:52 -0500)
committerDavid S. Miller <davem@davemloft.net>
Thu, 18 Feb 2016 04:52:12 +0000 (23:52 -0500)
commite43729607eda98b209f19aadf9d39da32b379071
tree7208c2dd2669bfe11a132652c27ac8406293cbdf
parent2aa74095bfe39ec82f347b0512a3000f18ad48ef
parentf24a5ee2ff0308c45c083baa4ed34906278141e5
Merge branch 'vxlan-cleanups'

Jiri Benc says:

====================
vxlan: clean up rx path, consolidating extension handling

The rx path of VXLAN turned over time into kind of spaghetti code. The rx
processing is split between vxlan_udp_encap_recv and vxlan_rcv but in an
artificial way: vxlan_rcv is just called at the end of vxlan_udp_encap_recv,
continuing the rx processing where vxlan_udp_encap_recv left it. There's no
clear border between those two functions.

It makes sense to combine those functions into one; this will be actually
needed for VXLAN-GPE where we'll need to skip part of the processing which
is hard to do with the current code.

However, both functions are too long already. This patchset is shortening
them, consolidating extension handling that is spread all around together
and moving it to separate functions. (Later patchsets will do more
consolidation in other parts of the functions with the final goal of merging
vxlan_udp_encap_recv and vxlan_rcv.)

In process of consolidation of the extension handling, I needed to deal with
vni field in a generic way, as its lower 8 bits mean different things for
different extensions. While cleaning up the code to strictly distinguish
between "vni" and "vni field" (which contains vni plus an additional byte),
I also converted the code not to convert endianess back and forth.

The full picture can be seen at:
https://github.com/jbenc/linux-vxlan/commits/master
====================

Signed-off-by: David S. Miller <davem@davemloft.net>