diff --git a/extensions/compat_xtables.c b/extensions/compat_xtables.c index 1a82a5c..9bd1b8d 100644 --- a/extensions/compat_xtables.c +++ b/extensions/compat_xtables.c @@ -613,6 +613,14 @@ void *HX_memmem(const void *space, size_t spacesize, } 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) diff --git a/extensions/compat_xtables.h b/extensions/compat_xtables.h index 1af9536..a1caa51 100644 --- a/extensions/compat_xtables.h +++ b/extensions/compat_xtables.h @@ -96,6 +96,7 @@ # 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) diff --git a/extensions/compat_xtnu.h b/extensions/compat_xtnu.h index 147ad57..35819b0 100644 --- a/extensions/compat_xtnu.h +++ b/extensions/compat_xtnu.h @@ -162,6 +162,8 @@ extern void xtnu_csum_replace4(__u16 __bitwise *, __be32, __be32); 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 *);