Remove in6_clearscope() and in6_setscope() calls from nd6_ioctl().
Remove sa6_recoverscope(), use in6_getscopezone() instead.
Add in6ifa_ifpwithdstaddr() function. It is IPv6 optimized version of
ifa_ifpwithdstaddr().
Scope related cleanup in nd6_is_new_addr_neighbor():
* since we assume that addresses doesn't contains embedded zone ids,
  link-local addresses are always neighbors. So, remove
  sa6_recoverscope() and in6_setscope() calls;
* use in6_localip() to check that address matches one of our addresses;
* use in6ifa_ifpwithdstaddr() instead of ifa_ifwithdstaddr().
Change the type of the argument of the function nd6_is_addr_neighbor()
from sockaddr_in6* to in6_addr*.
Scope related cleanup in nd6_ns_input():
* remove in6_setscope() calls;
* don't do route lookup for link-local addresses.
Scope related cleanup in nd6_ns_output():
* remove in6_setscope() and in6_clearscope calls;
* initialize sin6_scope_id before in6_selectsrc();
* use IPV6_USEROIF flag for ip6_output().
* sort variables declarations.
Scope related cleanup in nd6_na_output/nd6_na_input:
* remove in6_setscope() and in6_clearscope() calls;
* initialize sin6_scope_id before in6_selectsrc();
* no need to initialize ro.ro_dst, in6_selectsrc will do it;
* use IPV6_USEROIF flags for ip6_output().
Remove sa6_embedscope(), use sa6_checkzone() instead.
Remove in6_clearscope() calls.
Remove in6_clearscope() calls.
Scope related cleanup in rip6_output():
* remove sa6_embedscope() and in6_setscope() calls;
* rip6_output() calls in6_selectsrc, so it always has outgoing interface
  and we can use IPV6_USEROIF when calling ip6_output.
* add sa6_checkzone() to rip6_send. Application always must provide
  a proper scope zone id.
Scope related cleanup in rip6_bind():
* remove sa6_embedscope() call, use sa6_checkzone() instead;
* use in6ifa_ifwithaddr() to determine interface where address
is configured.
* initialize inp->in6p_zoneid.
Scope related cleanup in rip6_connect():
* remove sa6_embedscope() and in6_setscope() calls;
* use sa6_checkzone() to check sin6_scope_id for correctness;
* when laddr or faddr is from link-local scope, initialize in6p_zoneid.
Scope releated cleanup in in6_ifattach_linklocal():
* remove in6_setscope() call;
* remove in6ifa_ifpforlinklocal() call. It is redundant, since
  in6_update_ifa() returns error.
Remove in6_purgeif() function. It seems it was never used.
Some cleanups in in6_ifdetach():
* remove in6_setscope() call;
* remove part of code, that already done in the in6_purgeaddr();
* don't remove route to multicast, we don't keep it.
Remove all assumptions about embedded form of addresses:
* cleanup comments;
* remove in6_setscope(), in6_clearscope() and sa6_embedscope() calls;
* use in6_getscopezone() to initialize sin6_scope_id;
* use sa6_checkzone() to check addresses for correctness;
* don't check unsigned ifindex for negative values.
Scope related cleanup in mld6.c:
* cleanup comments;
* remove in6_clearscope() and in6_setscope() calls;
Don't adjust checksum, since addresses don't contain scope id anymore.
Scope related cleanup in udp6_output():
* remove sa6_embedscope() and in6_setscope() calls;
* move address validation check from udp6_output() to udp6_send();
* when address isn't specified, try to determine outgoing interface
  from inc->in6p_zoneid;
* use IPV6_USEROIF for ip6_output() when outgoing interface is known.