flow_dissector: Parse batman-adv unicast headers
authorSven Eckelmann <sven.eckelmann@openmesh.com>
Thu, 21 Dec 2017 09:17:42 +0000 (10:17 +0100)
committerDavid S. Miller <davem@davemloft.net>
Thu, 21 Dec 2017 20:35:53 +0000 (15:35 -0500)
commit5b0890a97204627d75a333fc30f29f737e2bfad6
tree116fcc5608db6f00e87f3ff3894f3b5ad1798794
parentfec149f5d3234c037ec761d1db4cc8c0550e9964
flow_dissector: Parse batman-adv unicast headers

The batman-adv unicast packets contain a full layer 2 frame in encapsulated
form. The flow dissector must therefore be able to parse the batman-adv
unicast header to reach the layer 2+3 information.

  +--------------------+
  | ip(v6)hdr          |
  +--------------------+
  | inner ethhdr       |
  +--------------------+
  | batadv unicast hdr |
  +--------------------+
  | outer ethhdr       |
  +--------------------+

The obtained information from the upper layer can then be used by RPS to
schedule the processing on separate cores. This allows better distribution
of multiple flows from the same neighbor to different cores.

Signed-off-by: Sven Eckelmann <sven.eckelmann@openmesh.com>
Reviewed-by: Jiri Pirko <jiri@mellanox.com>
Acked-by: Willem de Bruijn <willemb@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/flow_dissector.c