diff options
Diffstat (limited to 'include/net/ipv6.h')
-rw-r--r-- | include/net/ipv6.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/include/net/ipv6.h b/include/net/ipv6.h index 979bf6c13141..5af66b26ebdd 100644 --- a/include/net/ipv6.h +++ b/include/net/ipv6.h | |||
@@ -271,6 +271,15 @@ struct ipv6_txoptions *ipv6_fixup_options(struct ipv6_txoptions *opt_space, | |||
271 | 271 | ||
272 | extern bool ipv6_opt_accepted(const struct sock *sk, const struct sk_buff *skb); | 272 | extern bool ipv6_opt_accepted(const struct sock *sk, const struct sk_buff *skb); |
273 | 273 | ||
274 | static inline bool ipv6_accept_ra(struct inet6_dev *idev) | ||
275 | { | ||
276 | /* If forwarding is enabled, RA are not accepted unless the special | ||
277 | * hybrid mode (accept_ra=2) is enabled. | ||
278 | */ | ||
279 | return idev->cnf.forwarding ? idev->cnf.accept_ra == 2 : | ||
280 | idev->cnf.accept_ra; | ||
281 | } | ||
282 | |||
274 | #if IS_ENABLED(CONFIG_IPV6) | 283 | #if IS_ENABLED(CONFIG_IPV6) |
275 | static inline int ip6_frag_nqueues(struct net *net) | 284 | static inline int ip6_frag_nqueues(struct net *net) |
276 | { | 285 | { |
@@ -630,6 +639,16 @@ extern int ipv6_skip_exthdr(const struct sk_buff *, int start, | |||
630 | 639 | ||
631 | extern bool ipv6_ext_hdr(u8 nexthdr); | 640 | extern bool ipv6_ext_hdr(u8 nexthdr); |
632 | 641 | ||
642 | enum { | ||
643 | IP6_FH_F_FRAG = (1 << 0), | ||
644 | IP6_FH_F_AUTH = (1 << 1), | ||
645 | IP6_FH_F_SKIP_RH = (1 << 2), | ||
646 | }; | ||
647 | |||
648 | /* find specified header and get offset to it */ | ||
649 | extern int ipv6_find_hdr(const struct sk_buff *skb, unsigned int *offset, | ||
650 | int target, unsigned short *fragoff, int *fragflg); | ||
651 | |||
633 | extern int ipv6_find_tlv(struct sk_buff *skb, int offset, int type); | 652 | extern int ipv6_find_tlv(struct sk_buff *skb, int offset, int type); |
634 | 653 | ||
635 | extern struct in6_addr *fl6_update_dst(struct flowi6 *fl6, | 654 | extern struct in6_addr *fl6_update_dst(struct flowi6 *fl6, |