[ovs-dev] [PATCH 2/2] datapath: Disable LRO from userspace instead of the kernel.
jpettit at nicira.com
Sun Aug 28 01:01:46 PDT 2011
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.
More information about the dev