On Aug 27, 2011, at 6:59 AM, Jesse Gross wrote:

> What I'm thinking about is what happens when we actually implement
> this optimization, assuming that the userspace/kernel interface is
> locked down.  When userspace stops disabling LRO, these checks will
> start triggering and will drop packets.  To support this we'll have to
> remove or relax those checks, which is fine because we're just
> implementing a feature that was previously unsupported.  However, in
> order to use this feature userspace will need to detect whether it
> exists, which in this case means some kind of kernel version check
> because there's nothing directly visible from userspace.
> 
> To avoid the above mess, I thought that maybe we should just implement
> the kernel portion of this since it's fairly simple and then the
> problem just goes away.  The easiest way to do that is just drop the
> checks but they actually are somewhat useful for debugging
> configuration problems.  The MTU check is really only useful in the
> netdev case because that's where we hit real devices with MTUs and is
> the place where LRO is actually a problem.  The optimization that I
> have in mind is useful for internal devices (which have an MTU but
> don't care) and it's already a no-op for OVS virtual devices like
> tunnels and patch ports because they don't have MTUs at all.  That's
> why I think that pushing the check into the netdev vport code only
> solves the problem.

Thanks for the explanation.  Makes sense to me now.

> The patch is basically what I had in mind, though you can now remove
> the test for no MTU and I would also drop the packet and record the
> error if skb_warn_if_lro() triggers (it returns a bool).


Great.  I'll make those changes tomorrow and resend the entire series.

--Justin


_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to