ixgbe: fix packet type for VXLAN and NVGRE on X550
authorWenzhuo Lu <wenzhuo.lu@intel.com>
Fri, 8 Apr 2016 08:10:24 +0000 (16:10 +0800)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Fri, 8 Apr 2016 20:33:19 +0000 (22:33 +0200)
commit533e050a06abe5454fde212bfcff779f40694048
tree557e7eccac892bec5fa3e8662bf85e173c7e7de0
parente3898dc486f91a17cd29348b03649594efe366cd
ixgbe: fix packet type for VXLAN and NVGRE on X550

VxLAN & NVGRE are supported by x550. As we know HW can parse
the packet and tell SW the type info. For VxLAN & NVGRE packets
there's some change. HW will not tell SW the info of the outer
header but the inner header instead. But we always take the
info as it's for the outer header. So the packet type info is
not right when x550 receives VxLAN & NVGRE packets.

As x550 only supports IPv4 VxLAN & NVGRE packets, we can tell
the outer header of VxLAN is IPv4 + UDP, and the outer header
of NVGRE is IPv4 only. What we don't know is if there's
optional field in the outer IPv4 header.

This patch implement the support of packet type for VxLAN &
NVGRE. And it fixes the wrong packet type issue either.

BTW:
It doesn't fix any existing commit as although it resolve an
issue it's more like a new feature but not a fix.

Reported-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
drivers/net/ixgbe/ixgbe_rxtx.c
drivers/net/ixgbe/ixgbe_rxtx.h