[ovs-dev] [PATCH 2/2] datapath: Disable LRO from userspace instead of the kernel.

Jesse Gross jesse at nicira.com
Sat Aug 20 02:20:54 UTC 2011


On Sat, Aug 20, 2011 at 9:47 AM, Justin Pettit <jpettit at nicira.com> wrote:
>
> On Aug 19, 2011, at 6:13 PM, Jesse Gross wrote:
>
>> On Thu, Aug 18, 2011 at 10:01 AM, Justin Pettit <jpettit at nicira.com> wrote:
>>> @@ -381,6 +386,10 @@ dpif_linux_port_add(struct dpif *dpif_, struct netdev *netdev,
>>>         request.options_len = options->size;
>>>     }
>>>
>>> +    if (request.type == ODP_VPORT_TYPE_NETDEV) {
>>> +        netdev_linux_ethtool_set_flag(netdev, ETH_FLAG_LRO, false);
>>> +    }
>>
>> One other thing: the kernel implementation of dev_disable_lro()
>> fetches the flags again after it disables LRO and checks to see if it
>> really is disabled, issuing a warning if it isn't.  This sounds
>> completely unnecessary but I've seen the warning trigger several times
>> before so maybe we should do that as well.
>
> The kernel implementation disables LRO by first doing an ethtool GFLAGS and then appropriate SFLAGS.  It then confirms that it is correct by checking "dev->features & NETIF_F_LRO" on the actual device.
>
> Is it sufficient to just do another ethtool GFLAGS or should we be checking the configuration of the actual device directly?  The "features" flag is exported through sysfs, but it may be a little hacky getting it through there.

I think doing another ethtool get flags is probably sufficient, in all
cases that I'm aware of it just returns the appropriate bits from the
features flag.  As you say, going through sysfs is hacky (and it's
probably going to go away in the future).



More information about the dev mailing list