diff options
Diffstat (limited to 'include/net/ipv6.h')
-rw-r--r-- | include/net/ipv6.h | 40 |
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 | */ |
481 | extern int ip6_xmit(struct sock *sk, | 493 | extern 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 | ||
486 | extern int ip6_nd_hdr(struct sock *sk, | 498 | extern 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 | ||
512 | extern int ip6_dst_lookup(struct sock *sk, | 524 | extern 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); |
515 | extern int ip6_dst_blackhole(struct sock *sk, | 527 | extern 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, |
518 | extern int ip6_sk_dst_lookup(struct sock *sk, | 530 | bool can_sleep); |
519 | struct dst_entry **dst, | 531 | extern 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); | ||
535 | extern 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 | ||
551 | extern int ipv6_find_tlv(struct sk_buff *skb, int offset, int type); | 567 | extern int ipv6_find_tlv(struct sk_buff *skb, int offset, int type); |
552 | 568 | ||
553 | extern struct in6_addr *fl6_update_dst(struct flowi *fl, | 569 | extern 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); | |||
584 | extern int ipv6_recv_rxpmtu(struct sock *sk, struct msghdr *msg, int len); | 600 | extern int ipv6_recv_rxpmtu(struct sock *sk, struct msghdr *msg, int len); |
585 | extern void ipv6_icmp_error(struct sock *sk, struct sk_buff *skb, int err, __be16 port, | 601 | extern 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); |
587 | extern void ipv6_local_error(struct sock *sk, int err, struct flowi *fl, u32 info); | 603 | extern void ipv6_local_error(struct sock *sk, int err, struct flowi6 *fl6, u32 info); |
588 | extern void ipv6_local_rxpmtu(struct sock *sk, struct flowi *fl, u32 mtu); | 604 | extern void ipv6_local_rxpmtu(struct sock *sk, struct flowi6 *fl6, u32 mtu); |
589 | 605 | ||
590 | extern int inet6_release(struct socket *sock); | 606 | extern int inet6_release(struct socket *sock); |
591 | extern int inet6_bind(struct socket *sock, struct sockaddr *uaddr, | 607 | extern int inet6_bind(struct socket *sock, struct sockaddr *uaddr, |