datapath: Use upstream ipv6_find_hdr().
[cascardo/ovs.git] / datapath / linux / compat / include / net / ipv6.h
index eebb1fe..1762a4d 100644 (file)
@@ -9,23 +9,28 @@
 #define NEXTHDR_SCTP    132 /* Stream Control Transport Protocol */
 #endif
 
+#ifndef HAVE_IP6_FH_F_SKIP_RH
+
+enum {
+       IP6_FH_F_FRAG           = (1 << 0),
+       IP6_FH_F_AUTH           = (1 << 1),
+       IP6_FH_F_SKIP_RH        = (1 << 2),
+};
+
 #if LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0)
 #define ipv6_skip_exthdr rpl_ipv6_skip_exthdr
 extern int ipv6_skip_exthdr(const struct sk_buff *skb, int start,
                            u8 *nexthdrp, __be16 *frag_offp);
 #endif
 
-enum {
-       OVS_IP6T_FH_F_FRAG      = (1 << 0),
-       OVS_IP6T_FH_F_AUTH      = (1 << 1),
-       OVS_IP6T_FH_F_SKIP_RH   = (1 << 2),
-};
-
 /* This function is upstream, but not the version which skips routing
- * headers with 0 segments_left. We plan to propose the extended version. */
+ * headers with 0 segments_left. We fixed it when we introduced
+ * IP6_FH_F_SKIP_RH.
+ */
 #define ipv6_find_hdr rpl_ipv6_find_hdr
 extern int ipv6_find_hdr(const struct sk_buff *skb, unsigned int *offset,
                         int target, unsigned short *fragoff, int *fragflg);
+#endif
 
 #if LINUX_VERSION_CODE < KERNEL_VERSION(3,6,0)
 static inline u32 ipv6_addr_hash(const struct in6_addr *a)