Remove link-local multicast routes remnants from in6_purgeaddr.
Also merge in6_purgeaddr_mc with in6_purgeaddr.

Sponsored by:	Yandex LLC


git-svn-id: svn+ssh://svn.freebsd.org/base/head@274346 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
* Make nd6_dad_duplicated() constant.
* Simplify refcounting by using nd6_dad_add() / nd6_dad_del().

Reviewed by:	ae
MFC after:	2 weeks
Sponsored by:	Yandex LLC


git-svn-id: svn+ssh://svn.freebsd.org/base/head@274347 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Add sa6_checkzone_ifp() function. It checks correctness of struct
sockaddr_in6, usually obtained from the user level through ioctl.
It initializes sin6_scope_id using given interface.

Sponsored by:	Yandex LLC


git-svn-id: svn+ssh://svn.freebsd.org/base/head@274348 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f