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, |
