}
EXPORT_SYMBOL_GPL(HX_memmem);
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 3, 0)
+int xtnu_ipv6_skip_exthdr(const struct sk_buff *skb, int start,
+ uint8_t *nexthdrp, __be16 *fragoffp)
+{
+ return ipv6_skip_exthdr(skb, start, nexthdrp);
+}
+#endif
+
#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 5, 0)
int xtnu_ipv6_find_hdr(const struct sk_buff *skb, unsigned int *offset,
int target, unsigned short *fragoff, int *fragflg)
# define nf_nat_ipv4_multi_range_compat nf_nat_multi_range_compat
# define nf_nat_ipv4_range nf_nat_range
# define NF_NAT_RANGE_MAP_IPS IP_NAT_RANGE_MAP_IPS
+# define ipv6_skip_exthdr xtnu_ipv6_skip_exthdr
#endif
#if !defined(NIP6) && !defined(NIP6_FMT)
extern void xtnu_proto_csum_replace4(__u16 __bitwise *, struct sk_buff *,
__be32, __be32, bool);
extern int xtnu_skb_linearize(struct sk_buff *);
+extern int xtnu_ipv6_skip_exthdr(const struct sk_buff *, int,
+ uint8_t *, __be16 *);
extern int xtnu_ipv6_find_hdr(const struct sk_buff *, unsigned int *,
int, unsigned short *, int *);