[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <50DB4B3D.2050800@linux-ipv6.org>
Date: Thu, 27 Dec 2012 04:08:45 +0900
From: YOSHIFUJI Hideaki <yoshfuji@...ux-ipv6.org>
To: Eric Dumazet <eric.dumazet@...il.com>
CC: netdev@...r.kernel.org, davem@...emloft.net,
YOSHIFUJI Hideaki <yoshfuji@...ux-ipv6.org>
Subject: Re: [PATCH] ndisc: Ensure to reserve header space for encapsulation.
Eric Dumazet wrote:
> On Tue, 2012-12-25 at 23:39 +0900, YOSHIFUJI Hideaki wrote:
>> We allocate sk_buff of MAX_HEADER + LL_RESERVED_SPACE(dev) + packet
>> length + dev->needed_tailroom, but reserved LL_RESERVED_SPACE(dev)
>> only. This means that space for encapsulation was placed at the end
>> of buffer. This does not make sense.
>>
>> Reserve the space correctly, like this:
>>
>> head data tail end
>> +--------------------------------------------------------------+
>> + | | | |
>> +--------------------------------------------------------------+
>> |<--MAX_HEADER-->|<-hlen---->|<---ipv6 packet------>|<--tlen-->|
>> =LL_
>> RESERVED_
>> SPACE(dev)
>>
>> Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@...ux-ipv6.org>
>> ---
:
> It looks like this MAX_HEADER reserve is not needed at all.
>
> Space for encapsulation should already be in
> int hlen = LL_RESERVED_SPACE(dev);
>
> arp_create() for example doesnt add this MAX_HEADER
>
> If extra encapsulation is needed (at head or at tail), it really should
> be documented.
Current code does not make sense, at least.
Please refer to my previous posting: "[GIT PULL net-next 01/17]
ndisc: Fix size calculation for headers." around Dec/19.
My previous patch did remove MAX_HEADER from allocation.
--yoshfuji
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists