aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/xen-netback/interface.c
diff options
context:
space:
mode:
authorWei-Chun Chao <[email protected]>2013-12-26 21:10:22 +0000
committerDavid S. Miller <[email protected]>2014-01-03 00:06:47 +0000
commit7a7ffbabf99445704be01bff5d7e360da908cf8e (patch)
tree3b4f71699307ac2853a8fdffde60fb7055cb1b04 /drivers/net/xen-netback/interface.c
parentsctp: Remove outqueue empty state (diff)
downloadkernel-7a7ffbabf99445704be01bff5d7e360da908cf8e.tar.gz
kernel-7a7ffbabf99445704be01bff5d7e360da908cf8e.zip
ipv4: fix tunneled VM traffic over hw VXLAN/GRE GSO NIC
VM to VM GSO traffic is broken if it goes through VXLAN or GRE tunnel and the physical NIC on the host supports hardware VXLAN/GRE GSO offload (e.g. bnx2x and next-gen mlx4). Two issues - (VXLAN) VM traffic has SKB_GSO_DODGY and SKB_GSO_UDP_TUNNEL with SKB_GSO_TCP/UDP set depending on the inner protocol. GSO header integrity check fails in udp4_ufo_fragment if inner protocol is TCP. Also gso_segs is calculated incorrectly using skb->len that includes tunnel header. Fix: robust check should only be applied to the inner packet. (VXLAN & GRE) Once GSO header integrity check passes, NULL segs is returned and the original skb is sent to hardware. However the tunnel header is already pulled. Fix: tunnel header needs to be restored so that hardware can perform GSO properly on the original packet. Signed-off-by: Wei-Chun Chao <[email protected]> Signed-off-by: David S. Miller <[email protected]>
Diffstat (limited to 'drivers/net/xen-netback/interface.c')
0 files changed, 0 insertions, 0 deletions