[ovs-dev] ovs segments frames when transmitting to veth

Jesse Gross jesse at kernel.org
Thu Jan 14 00:22:40 UTC 2016


On Wed, Jan 13, 2016 at 3:51 PM, Ramu Ramamurthy
<sramamur at linux.vnet.ibm.com> wrote:
>
> Problem:
> ---------
>
> We are running centos 7.2 (ovs-kernel module from distribution) with OVS
> 2.3.1.
>
> Large tcp frames (> 30Kbytes gro'd) are coming into a vxlan-tunnel port and
> switched by an ovs-bridge onto a veth port
>
> vxlan-tunnel--(gro'd tcp frames sized > 30K)-->OVS-bridge--(frames sized
> 1448)-->veth port
>
> As the ovs transmits onto the veth port, the frames are getting segmented
> into 1448 byte sized packets. All the offload settings are at default on the
> veth port (gso on, gro on, tso on)
>
> We expect that the OVS can transmit the frame without segmentation onto the
> veth port. But, due to segmentation, the performance suffers.

I think the problem is that tunnel decapsulation (in all cases, not
just VXLAN, and not just with OVS) doesn't appear to strip off the GSO
type that indicates that it is a tunnel frame. As a result, the veth
(which didn't support tunnel GSO until 3.13) sees this as a tunnel
frame rather than just a TCP frame and forces software segmentation.
The issue isn't with OVS code, so I would recommend that you submit a
patch to upstream Linux.



More information about the dev mailing list