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.h40
1 files changed, 28 insertions, 12 deletions
diff --git a/include/net/ipv6.h b/include/net/ipv6.h
index 4a3cd2cd2f5e..34200f9e6805 100644
--- a/include/net/ipv6.h
+++ b/include/net/ipv6.h
@@ -89,6 +89,18 @@
89#define IPV6_ADDR_SCOPE_GLOBAL 0x0e 89#define IPV6_ADDR_SCOPE_GLOBAL 0x0e
90 90
91/* 91/*
92 * Addr flags
93 */
94#ifdef __KERNEL__
95#define IPV6_ADDR_MC_FLAG_TRANSIENT(a) \
96 ((a)->s6_addr[1] & 0x10)
97#define IPV6_ADDR_MC_FLAG_PREFIX(a) \
98 ((a)->s6_addr[1] & 0x20)
99#define IPV6_ADDR_MC_FLAG_RENDEZVOUS(a) \
100 ((a)->s6_addr[1] & 0x40)
101#endif
102
103/*
92 * fragmentation header 104 * fragmentation header
93 */ 105 */
94 106
@@ -480,7 +492,7 @@ extern int ip6_rcv_finish(struct sk_buff *skb);
480 */ 492 */
481extern int ip6_xmit(struct sock *sk, 493extern int ip6_xmit(struct sock *sk,
482 struct sk_buff *skb, 494 struct sk_buff *skb,
483 struct flowi *fl, 495 struct flowi6 *fl6,
484 struct ipv6_txoptions *opt); 496 struct ipv6_txoptions *opt);
485 497
486extern int ip6_nd_hdr(struct sock *sk, 498extern int ip6_nd_hdr(struct sock *sk,
@@ -500,7 +512,7 @@ extern int ip6_append_data(struct sock *sk,
500 int hlimit, 512 int hlimit,
501 int tclass, 513 int tclass,
502 struct ipv6_txoptions *opt, 514 struct ipv6_txoptions *opt,
503 struct flowi *fl, 515 struct flowi6 *fl6,
504 struct rt6_info *rt, 516 struct rt6_info *rt,
505 unsigned int flags, 517 unsigned int flags,
506 int dontfrag); 518 int dontfrag);
@@ -511,13 +523,17 @@ extern void ip6_flush_pending_frames(struct sock *sk);
511 523
512extern int ip6_dst_lookup(struct sock *sk, 524extern int ip6_dst_lookup(struct sock *sk,
513 struct dst_entry **dst, 525 struct dst_entry **dst,
514 struct flowi *fl); 526 struct flowi6 *fl6);
515extern int ip6_dst_blackhole(struct sock *sk, 527extern struct dst_entry * ip6_dst_lookup_flow(struct sock *sk,
516 struct dst_entry **dst, 528 struct flowi6 *fl6,
517 struct flowi *fl); 529 const struct in6_addr *final_dst,
518extern int ip6_sk_dst_lookup(struct sock *sk, 530 bool can_sleep);
519 struct dst_entry **dst, 531extern struct dst_entry * ip6_sk_dst_lookup_flow(struct sock *sk,
520 struct flowi *fl); 532 struct flowi6 *fl6,
533 const struct in6_addr *final_dst,
534 bool can_sleep);
535extern struct dst_entry * ip6_blackhole_route(struct net *net,
536 struct dst_entry *orig_dst);
521 537
522/* 538/*
523 * skb processing functions 539 * skb processing functions
@@ -550,7 +566,7 @@ extern int ipv6_ext_hdr(u8 nexthdr);
550 566
551extern int ipv6_find_tlv(struct sk_buff *skb, int offset, int type); 567extern int ipv6_find_tlv(struct sk_buff *skb, int offset, int type);
552 568
553extern struct in6_addr *fl6_update_dst(struct flowi *fl, 569extern struct in6_addr *fl6_update_dst(struct flowi6 *fl6,
554 const struct ipv6_txoptions *opt, 570 const struct ipv6_txoptions *opt,
555 struct in6_addr *orig); 571 struct in6_addr *orig);
556 572
@@ -584,8 +600,8 @@ extern int ipv6_recv_error(struct sock *sk, struct msghdr *msg, int len);
584extern int ipv6_recv_rxpmtu(struct sock *sk, struct msghdr *msg, int len); 600extern int ipv6_recv_rxpmtu(struct sock *sk, struct msghdr *msg, int len);
585extern void ipv6_icmp_error(struct sock *sk, struct sk_buff *skb, int err, __be16 port, 601extern void ipv6_icmp_error(struct sock *sk, struct sk_buff *skb, int err, __be16 port,
586 u32 info, u8 *payload); 602 u32 info, u8 *payload);
587extern void ipv6_local_error(struct sock *sk, int err, struct flowi *fl, u32 info); 603extern void ipv6_local_error(struct sock *sk, int err, struct flowi6 *fl6, u32 info);
588extern void ipv6_local_rxpmtu(struct sock *sk, struct flowi *fl, u32 mtu); 604extern void ipv6_local_rxpmtu(struct sock *sk, struct flowi6 *fl6, u32 mtu);
589 605
590extern int inet6_release(struct socket *sock); 606extern int inet6_release(struct socket *sock);
591extern int inet6_bind(struct socket *sock, struct sockaddr *uaddr, 607extern int inet6_bind(struct socket *sock, struct sockaddr *uaddr,