On 19 February 2016 at 16:03, Pravin B Shelar <[email protected]> wrote: > @@ -119,25 +119,9 @@ static inline int rpl_ip_do_fragment(struct sock *sk, > struct sk_buff *skb, > int rpl_ip_defrag(struct sk_buff *skb, u32 user); > #define ip_defrag rpl_ip_defrag > > +#endif /* HAVE_CORRECT_MRU_HANDLING */ > int __init rpl_ipfrag_init(void); > void rpl_ipfrag_fini(void); > -#else /* HAVE_CORRECT_MRU_HANDLING || !OVS_FRAGMENT_BACKPORT */ > - > -/* We have no good way to detect the presence of upstream commit 8282f27449bf > - * ("inet: frag: Always orphan skbs inside ip_defrag()"), but it should be > - * always included in kernels 4.5+. */ > -#if LINUX_VERSION_CODE < KERNEL_VERSION(4,5,0) > -static inline int rpl_ip_defrag(struct sk_buff *skb, u32 user) > -{ > - skb_orphan(skb); > - return ip_defrag(skb, user); > -} > -#define ip_defrag rpl_ip_defrag > -#endif
Quick comment on this piece; it fixes an issue that would be seen on kernels 4.4 and earlier. Kernels <4.2 will use the full ip_defrag backport, so the fix is still provided there. Upstream on kernel.org, kernels 4.2 and 4.3 are EOL'd, and the upstream fix was queued up for -stable, so the affected kernels are fairly minimal. The only exception I'm aware of would be those using Ubuntu 15.10, which ships a 4.2 kernel. Given the small set of affected kernels, and that the issue requires use of conntrack on IP fragments, passing the packets to/from the local stack to trigger the BUG, this is probably fine. Alternatively we could consider keeping this in the "!defined(HAVE_CORRECT_MRU_HANDLING) && LINUX_VERSION_CODE < KERNEL_VERSION(4,5,0)" case. _______________________________________________ dev mailing list [email protected] http://openvswitch.org/mailman/listinfo/dev
