aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/ipv6.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/net/ipv6.h')
-rw-r--r--include/net/ipv6.h14
1 files changed, 10 insertions, 4 deletions
diff --git a/include/net/ipv6.h b/include/net/ipv6.h
index a8fdf7970b3..8223c4410b4 100644
--- a/include/net/ipv6.h
+++ b/include/net/ipv6.h
@@ -40,6 +40,7 @@
40#define NEXTHDR_ICMP 58 /* ICMP for IPv6. */ 40#define NEXTHDR_ICMP 58 /* ICMP for IPv6. */
41#define NEXTHDR_NONE 59 /* No next header */ 41#define NEXTHDR_NONE 59 /* No next header */
42#define NEXTHDR_DEST 60 /* Destination options header. */ 42#define NEXTHDR_DEST 60 /* Destination options header. */
43#define NEXTHDR_MOBILITY 135 /* Mobility header. */
43 44
44#define NEXTHDR_MAX 255 45#define NEXTHDR_MAX 255
45 46
@@ -229,7 +230,7 @@ extern int ip6_ra_control(struct sock *sk, int sel,
229 void (*destructor)(struct sock *)); 230 void (*destructor)(struct sock *));
230 231
231 232
232extern int ipv6_parse_hopopts(struct sk_buff *skb); 233extern int ipv6_parse_hopopts(struct sk_buff **skbp);
233 234
234extern struct ipv6_txoptions * ipv6_dup_options(struct sock *sk, struct ipv6_txoptions *opt); 235extern struct ipv6_txoptions * ipv6_dup_options(struct sock *sk, struct ipv6_txoptions *opt);
235extern struct ipv6_txoptions * ipv6_renew_options(struct sock *sk, struct ipv6_txoptions *opt, 236extern struct ipv6_txoptions * ipv6_renew_options(struct sock *sk, struct ipv6_txoptions *opt,
@@ -317,8 +318,8 @@ static inline void ipv6_addr_prefix(struct in6_addr *pfx,
317 318
318#ifndef __HAVE_ARCH_ADDR_SET 319#ifndef __HAVE_ARCH_ADDR_SET
319static inline void ipv6_addr_set(struct in6_addr *addr, 320static inline void ipv6_addr_set(struct in6_addr *addr,
320 __u32 w1, __u32 w2, 321 __be32 w1, __be32 w2,
321 __u32 w3, __u32 w4) 322 __be32 w3, __be32 w4)
322{ 323{
323 addr->s6_addr32[0] = w1; 324 addr->s6_addr32[0] = w1;
324 addr->s6_addr32[1] = w2; 325 addr->s6_addr32[1] = w2;
@@ -336,7 +337,7 @@ static inline int ipv6_addr_equal(const struct in6_addr *a1,
336 a1->s6_addr32[3] == a2->s6_addr32[3]); 337 a1->s6_addr32[3] == a2->s6_addr32[3]);
337} 338}
338 339
339static inline int __ipv6_prefix_equal(const u32 *a1, const u32 *a2, 340static inline int __ipv6_prefix_equal(const __be32 *a1, const __be32 *a2,
340 unsigned int prefixlen) 341 unsigned int prefixlen)
341{ 342{
342 unsigned pdw, pbi; 343 unsigned pdw, pbi;
@@ -468,6 +469,9 @@ extern void ip6_flush_pending_frames(struct sock *sk);
468extern int ip6_dst_lookup(struct sock *sk, 469extern int ip6_dst_lookup(struct sock *sk,
469 struct dst_entry **dst, 470 struct dst_entry **dst,
470 struct flowi *fl); 471 struct flowi *fl);
472extern int ip6_sk_dst_lookup(struct sock *sk,
473 struct dst_entry **dst,
474 struct flowi *fl);
471 475
472/* 476/*
473 * skb processing functions 477 * skb processing functions
@@ -503,6 +507,8 @@ extern int ipv6_skip_exthdr(const struct sk_buff *, int start,
503 507
504extern int ipv6_ext_hdr(u8 nexthdr); 508extern int ipv6_ext_hdr(u8 nexthdr);
505 509
510extern int ipv6_find_tlv(struct sk_buff *skb, int offset, int type);
511
506extern struct ipv6_txoptions * ipv6_invert_rthdr(struct sock *sk, 512extern struct ipv6_txoptions * ipv6_invert_rthdr(struct sock *sk,
507 struct ipv6_rt_hdr *hdr); 513 struct ipv6_rt_hdr *hdr);
508 514