--- sys/netinet6/in6_var.h (svn+ssh://svn.freebsd.org/base/head) (revision 261548) +++ sys/netinet6/in6_var.h (working copy) @@ -525,7 +525,7 @@ VNET_DECLARE(u_long, in6_ifaddrhmask); (&V_in6_ifaddrhashtbl[IN6ADDR_HASHVAL(x) & V_in6_ifaddrhmask]) static __inline uint32_t -in6_addrhash(struct in6_addr *in6) +in6_addrhash(const struct in6_addr *in6) { uint32_t x; @@ -788,7 +788,7 @@ int ip6_setmoptions(struct inpcb *, struct sockopt /* Legacy KAME multicast KPIs. */ struct in6_multi_mship * - in6_joingroup(struct ifnet *, struct in6_addr *, int *, int); + in6_joingroup(struct ifnet *, const struct in6_addr *, int *, int); int in6_leavegroup(struct in6_multi_mship *); /* flags to in6_update_ifa */ @@ -803,7 +803,6 @@ void in6_prepare_ifra(struct in6_aliasreq *, const const struct in6_addr *); void in6_purgeaddr(struct ifaddr *); int in6if_do_dad(struct ifnet *); -void in6_purgeif(struct ifnet *); void in6_savemkludge(struct in6_ifaddr *); void *in6_domifattach(struct ifnet *); void in6_domifdetach(struct ifnet *, void *); @@ -810,7 +809,10 @@ void in6_domifdetach(struct ifnet *, void *); void in6_setmaxmtu(void); int in6_if2idlen(struct ifnet *); struct in6_ifaddr *in6ifa_ifpforlinklocal(struct ifnet *, int); -struct in6_ifaddr *in6ifa_ifpwithaddr(struct ifnet *, struct in6_addr *); +struct in6_ifaddr *in6ifa_ifpwithaddr(struct ifnet *, const struct in6_addr *); +struct in6_ifaddr *in6ifa_ifpwithdstaddr(struct ifnet *, + const struct in6_addr *); +struct in6_ifaddr *in6ifa_ifwithaddr(const struct in6_addr *, uint32_t); struct in6_ifaddr *in6ifa_llaonifp(struct ifnet *); char *ip6_sprintf(char *, const struct in6_addr *); int in6_addr2zoneid(struct ifnet *, struct in6_addr *, u_int32_t *);