[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20141202.192311.1226452173523245977.davem@davemloft.net>
Date: Tue, 02 Dec 2014 19:23:11 -0800 (PST)
From: David Miller <davem@...emloft.net>
To: fan.du@...el.com
Cc: netdev@...r.kernel.org, fw@...len.de
Subject: Re: [PATCH net] gso: do GSO for local skb with size bigger than MTU
From: Fan Du <fan.du@...el.com>
Date: Fri, 28 Nov 2014 14:33:05 +0800
> Test scenario: two KVM guests sitting in different
> hosts communicate to each other with a vxlan tunnel.
>
> All interface MTU is default 1500 Bytes, from guest point
> of view, its skb gso_size could be as bigger as 1448Bytes,
> however after guest skb goes through vxlan encapuslation,
> individual segments length of a gso packet could exceed
> physical NIC MTU 1500, which will be lost at recevier side.
>
> So it's possible in virtualized environment, locally created
> skb len after encapslation could be bigger than underlayer
> MTU. In such case, it's reasonable to do GSO first,
> then fragment any packet bigger than MTU as possible.
>
> +---------------+ TX RX +---------------+
> | KVM Guest | -> ... -> | KVM Guest |
> +-+-----------+-+ +-+-----------+-+
> |Qemu/VirtIO| |Qemu/VirtIO|
> +-----------+ +-----------+
> | |
> v tap0 tap0 v
> +-----------+ +-----------+
> | ovs bridge| | ovs bridge|
> +-----------+ +-----------+
> | vxlan vxlan |
> v v
> +-----------+ +-----------+
> | NIC | <------> | NIC |
> +-----------+ +-----------+
>
> Steps to reproduce:
> 1. Using kernel builtin openvswitch module to setup ovs bridge.
> 2. Runing iperf without -M, communication will stuck.
>
> Signed-off-by: Fan Du <fan.du@...el.com>
I really don't like this at all.
If guest sees a 1500 byte MTU, that's it's link layer MTU and it had
better be able to send 1500 byte packets onto the "wire".
If you cannot properly propagate the vxlan encapsulation overhead back
into the guest's MTU you must hide this problem from the rest of our
stack somehow.
Nothing we create inside the host should need the change that you
are making.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists