Subject: Re: [PATCH net] macvlan: Disable LRO on lowerdev; warn if it's turned back on

From: Ben Greear <[email-masked]>
Date: Tue, 21 Feb 2012 13:46:47 -0800

On 02/21/2012 12:28 PM, Ben Hutchings wrote:
> On Tue, 2012-02-21 at 12:01 -0800, John Fastabend wrote:
>> On 2/21/2012 11:13 AM, Ben Hutchings wrote:
>>> Large Receive Offload (LRO) is only appropriate for packets that are
>>> destined for the host, and should be disabled if received packets may
>>> be forwarded.
>>>
>>> Further, macvtap_skb_to_vnet_hdr() will BUG() on a packet received
>>> with LRO (but not GRO).
>>>
>>> Signed-off-by: Ben Hutchings<[email-masked]>
>>> ---
>>> I'm not really familiar with macvlan so I'm not certain that this should
>>> be applied to all modes.
>>>
>>> Ben.
>>>
>>>   drivers/net/macvlan.c |    7 +++++++
>>>   1 files changed, 7 insertions(+), 0 deletions(-)
>>>
>>
>> But this patch assumes the macvlan is forwarding traffic to a guest
>> via macvtap. Which is an assumption that may not be true.
>>
>> It seems more appropriate for the macvtap driver to do these checks
>> after all its the driver that may BUG() with LRO.
>
> That's what I thought at first, but then I looked through what macvlan
> was doing and it certainly appears to re-transmit skbs in all modes.
> That's not valid when gso_size != 0 and gso_type == 0.

You can put an IP on a mac-vlan and receive packets on it like
normal Ethernet interfaces.  They wouldn't be re-transmitted
in that case, would they?

> Ben.

-- 
Ben Greear <[email-masked]>
Candela Technologies Inc  http://www.candelatech.com