compat: Document nf_defrag_ipv[46] backport.
authorJoe Stringer <joe@ovn.org>
Mon, 2 May 2016 18:19:18 +0000 (11:19 -0700)
committerJoe Stringer <joe@ovn.org>
Tue, 3 May 2016 00:06:37 +0000 (17:06 -0700)
Document how the IP(6) defrag backport works, and do minor style cleanups.

Signed-off-by: Joe Stringer <joe@ovn.org>
Acked-by: Jesse Gross <jesse@kernel.org>
datapath/linux/compat/include/net/ip.h
datapath/linux/compat/include/net/netfilter/ipv6/nf_defrag_ipv6.h

index 0fb1391..145529e 100644 (file)
@@ -116,6 +116,10 @@ static inline int rpl_ip_do_fragment(struct sock *sk, struct sk_buff *skb,
 #define ip_do_fragment rpl_ip_do_fragment
 #endif /* IP_DO_FRAGMENT */
 
+/* If backporting IP defrag, then init/exit functions need to be called from
+ * compat_{in,ex}it() to prepare the backported fragmentation cache. In this
+ * case we declare the functions which are defined in
+ * datapath/linux/compat/ip_fragment.c. */
 int rpl_ip_defrag(struct net *net, struct sk_buff *skb, u32 user);
 #define ip_defrag rpl_ip_defrag
 int __init rpl_ipfrag_init(void);
@@ -139,6 +143,9 @@ static inline int rpl_ip_defrag(struct net *net, struct sk_buff *skb, u32 user)
 #define ip_defrag rpl_ip_defrag
 #endif
 
+/* If we can use upstream defrag then we can rely on the upstream
+ * defrag module to init/exit correctly. In this case the calls in
+ * compat_{in,ex}it() can be no-ops. */
 static inline int rpl_ipfrag_init(void) { return 0; }
 static inline void rpl_ipfrag_fini(void) { }
 #endif /* HAVE_CORRECT_MRU_HANDLING */
index dc440db..09fe781 100644 (file)
 #define OVS_NF_DEFRAG6_BACKPORT 1
 int rpl_nf_ct_frag6_gather(struct net *net, struct sk_buff *skb, u32 user);
 #define nf_ct_frag6_gather rpl_nf_ct_frag6_gather
-#endif /* HAVE_NF_CT_FRAG6_CONSUME_ORIG */
 
-#ifdef OVS_NF_DEFRAG6_BACKPORT
+/* If backporting IPv6 defrag, then init/exit functions need to be called from
+ * compat_{in,ex}it() to prepare the backported fragmentation cache. In this
+ * case we declare the functions which are defined in
+ * datapath/linux/compat/nf_conntrack_reasm.c.
+ *
+ * Otherwise, if we can use upstream defrag then we can rely on the upstream
+ * nf_defrag_ipv6 module to init/exit correctly. In this case the calls in
+ * compat_{in,ex}it() can be no-ops.
+ */
 int __init rpl_nf_ct_frag6_init(void);
 void rpl_nf_ct_frag6_cleanup(void);
 #else /* !OVS_NF_DEFRAG6_BACKPORT */