Jesse,

I know this sounds too easy, but can we just tell OVS about the underlying
physical network MTU via config option?

On Fri, May 6, 2016 at 1:08 PM, Jesse Gross <je...@kernel.org> wrote:

> On Fri, May 6, 2016 at 11:53 AM, Ryan Moats <rmo...@us.ibm.com> wrote:
> > Jesse Gross <je...@kernel.org> wrote on 05/06/2016 11:11:10 AM:
> >
> >> From: Jesse Gross <je...@kernel.org>
> >> To: Ryan Moats/Omaha/IBM@IBMUS
> >> Cc: Matt Kassawara <mkassaw...@gmail.com>, discuss
> >> <discuss@openvswitch.org>, Thomas Graf <tg...@suug.ch>
> >> Date: 05/06/2016 11:11 AM
> >
> >
> >> Subject: Re: [ovs-discuss] MTU considerations for OVN
> >>
> >> On Fri, May 6, 2016 at 8:40 AM, Ryan Moats <rmo...@us.ibm.com> wrote:
> >> > "discuss" <discuss-boun...@openvswitch.org> wrote on 05/04/2016
> 06:09:04
> >> > PM:
> >> >
> >> >> From: Jesse Gross <je...@kernel.org>
> >> >> To: Matt Kassawara <mkassaw...@gmail.com>
> >> >> Cc: discuss <discuss@openvswitch.org>
> >> >> Date: 05/04/2016 06:09 PM
> >> >> Subject: Re: [ovs-discuss] MTU considerations for OVN
> >> >> Sent by: "discuss" <discuss-boun...@openvswitch.org>
> >> >>
> >> >> On Tue, May 3, 2016 at 3:50 PM, Matt Kassawara <mkassaw...@gmail.com
> >
> >> >> wrote:
> >> >> > Jesse,
> >> >> >
> >> >> > I'm resurrecting this thread after a fairly lengthy discussion of
> MTU
> >> >> > with
> >> >> > Ben at the recent OpenStack summit. Have you given the topic any
> >> >> > further
> >> >> > thought toward implementation in a reasonable way? Can you
> elaborate
> >> >> > on
> >> >> > the
> >> >> > architectural limitations? At the moment, the OpenStack
> >> >> > implementation
> >> >> > of
> >> >> > OVN doesn't use DPDK.
> >> >>
> >> >> The issue that I alluded to before is that when OVS (and by extension
> >> >> OVN) does L3 processing the packets aren't traversing the Linux IP
> >> >> stack and so the usual MTU checks don't apply. Instead OVS just does
> a
> >> >> single combined lookup for all flow processing and then applies some
> >> >> actions like set SMAC/DMAC and decrement TTL. Not only is there no
> >> >> code to check the outgoing MTU but there's no obvious outgoing device
> >> >> to fetch the desired MTU from.
> >> >
> >> > I'm not 100% sure why this would be an issue - IIRC (based on my
> >> > scanning
> >> > the code)
> >> > when a packet is going to be outputed, it looks like the MTU of the
> >> > physical
> >> > device
> >> > is checked and a fragmentation decision made.  Isn't that good enough
> >> > for
> >> > our
> >> > purposes?
> >>
> >> Which check in particular do you have in mind?
> >>
> >> There are two possibilities that I can think of:
> >>  * ovs_vport_send() has one but the device it looks at for the MTU is
> >> a tunnel device, which has an essentially infinite MTU. The real MTU
> >> that we would need to check also depends on the destination IP address
> >> of the tunnel but we haven't done a route lookup at this point.
> >>  * ip_finish_output() in the IP stack. This one does have the
> >> information that we need but it is outside of the tunnel. Any ICMP
> >> packets that are generated will be processed through the hypervisor's
> >> IP stack and won't make it back to the VM. In addition, this check
> >> doesn't handle GSO packets.
> >
> > I see, I was misreading code... my mistake.
> >
> > I certainly dislike the idea of separating the MTU calculation from the
> > datapath. What I was hoping to find that it would be possible to do the
> > fragmentation check on the tunnel after the route has been looked up and
> > the outgoing device is known, but looking through this, I'm not seeing
> > a good way to do this cleanly (yet) ...
>
> I agree.
>
> There was a thread a while back on the netdev mailing list related
> this but no real conclusion:
> https://www.spinics.net/lists/netdev/msg257830.html
>
_______________________________________________
discuss mailing list
discuss@openvswitch.org
http://openvswitch.org/mailman/listinfo/discuss

Reply via email to