[ovs-discuss] Question on sending jumbo frames

Zhou, Han hzhou8 at ebay.com
Tue Jan 28 07:16:22 UTC 2014


Hi Jesse,

Now I changed eth0 MTU on guest to 1400 and eth0/br0 MTU on host back to 1500.
Both guest and host eth0 are with TSO and GSO on.

With iperf TCP test I can see large packets (64k) on vnet interface, and on br0 
packets are already fragmented to 14xx according to guest's MTU (plus GRE tunnel 
header).

Is this fragmentation done by OVS? But I didn't see any fragmentation handling in 
datapath/vport_gre.c. gre_handle_offload() is invoked there but it seems not doing 
any fragmentation? Could you help explain which part of the system performs the 
inner packet fragmentation, and how is the guest MTU information passed to it?

In addition, setting MTU of br-int doesn't affect the results. (e.g. setting br-int MTU 
1000 still results in packet size 14xx). So what would br-int MTU affect?

Thanks a lot.


Best regards,
Han

> -----Original Message-----
> From: Jesse Gross [mailto:jesse at nicira.com]
> Sent: Tuesday, January 28, 2014 5:36 AM
> To: Zhou, Han
> Cc: discuss at openvswitch.org
> Subject: Re: [ovs-discuss] Question on sending jumbo frames
> 
> It's hard to say, I would run tcpdump on each interface in the path
> and make sure that the packet is being fragmented at the place that
> you expect.
> 
> On Fri, Jan 24, 2014 at 5:50 PM, Zhou, Han <hzhou8 at ebay.com> wrote:
> > Hi Jesse,
> >
> > Thanks for your suggestion and now I can increase MTU of br-int after
> > increasing MTU of all other ports connected to it.
> >
> > However, after change MTU of br-int to 9000, I still get this same
> fragmentation
> > (the GRE packet fragmentation, as you have explained) seen in tcpdump.
> >
> > I understand that generally I should set internal MTU smaller than physical
> > Interface so that tunnel headers are reserved. But in my ICMP testing the
> > packet size is only 1473 and I wonder where did this fragmentation happen?
> >
> > Now vnet interface, br-int, br0 and eth0 are all with MTU 9000, is there
> > any other point I should look at?
> >
> > Best regards,
> > Han
> >
> > -----Original Message-----
> > From: Jesse Gross [mailto:jesse at nicira.com]
> > Sent: Friday, January 24, 2014 3:05 PM
> > To: Zhou, Han
> > Cc: discuss at openvswitch.org
> > Subject: Re: [ovs-discuss] Question on sending jumbo frames
> >
> > On Thu, Jan 23, 2014 at 5:32 PM, Zhou, Han <hzhou8 at ebay.com> wrote:
> >> Hi,
> >>
> >> I am using OVS2.0.1 and GRE tunnels for transport.
> >> I am trying to send jumbo frames from guest VM, so I changed MTU of VM's
> >> eth0, OVS interface br0, vport interface to the VM, and also host's eth0 to
> 9000.
> >> But I cannot change MTU of br-int with command ifconfig br-int mtu 9000.
> >>
> >> The results is that ping destination outside of the hypervisor with packet size
> >> larger than 1472 fails. tcpdump -i br0 captures truncated packets:
> >>        ... GREv0, key=0xb5515, seq 9400832, length 1480: IP truncated-ip
> - 54 bytes missing! 11.11.11.4 > 11.11.11.2: ICMP echo request, id 1416, seq
> 3044, length 1488
> >
> > I believe that what you are seeing is fragmentation, not a truncated
> > packet. tcpdump only sees part of the IP packet in the GRE payload but
> > there should be another GRE fragment that follows. Even with jumbo
> > frames, the VM's MTU should still be lower than the physical network's
> > to account for tunnel headers.
> >
> > The MTU of the internal device is restricted to be no more than the
> > smallest MTU of the attached devices on the bridge so I would check
> > that you have updated all of the other MTUs first.


More information about the discuss mailing list