[ovs-dev] [PATCH] compat: Properly handle fragment lru.

pravin shelar pshelar at ovn.org
Mon Aug 1 23:52:31 UTC 2016


On Mon, Aug 1, 2016 at 2:25 PM, Joe Stringer <joe at ovn.org> wrote:
> On 1 August 2016 at 14:08, Joe Stringer <joe at ovn.org> wrote:
>> In kernels <=3.16 there is an LRU for managing fragment queues for IPv4
>> and IPv6. Because the backport code comes from more recent upstream
>> versions of Linux, this LRU management was missing from ip_frag_queue()
>> and nf_ct_frag6_queue().
>>
>> Fixes: 595e069a0634 ("compat: Backport IPv4 reassembly.")
>> Signed-off-by: Joe Stringer <joe at ovn.org>
>
> I thought this was only needed inside the HAVE_CORRECT_MRU_HANDLING
> but it seems to be called outside that from IPv6 (eg kernel-4.2). The
> following incremental should fix the build on relevant platforms:
>
> diff --git a/datapath/linux/compat/include/net/inet_frag.h
> b/datapath/linux/compat/include/net/inet_frag.h
> index dee1eaf80642..c37bc845896e 100644
> --- a/datapath/linux/compat/include/net/inet_frag.h
> +++ b/datapath/linux/compat/include/net/inet_frag.h
> @@ -23,13 +23,13 @@ static inline bool inet_frag_evicting(struct
> inet_frag_queue *q)
> }
> #endif /* HAVE_INET_FRAG_EVICTING */
>
> -#ifndef HAVE_CORRECT_MRU_HANDLING
> /* Upstream commit 3fd588eb90bf ("inet: frag: remove lru list") dropped this
>  * function, but we call it from our compat code. Provide a noop version. */
> #ifndef HAVE_INET_FRAG_LRU_MOVE
> #define inet_frag_lru_move(q)
> #endif
>
> +#ifndef HAVE_CORRECT_MRU_HANDLING
> static inline void rpl_sub_frag_mem_limit(struct netns_frags *nf, int i)
> {
>        __percpu_counter_add(&nf->mem, -i, frag_percpu_counter_batch);

Acked-by: Pravin B Shelar <pshelar at ovn.org>



More information about the dev mailing list