FreeBSD/sys/netinet6/nd6.c
/*
 * Removes either all lle entries for given @ia, or lle
 * corresponding to @ia address.
 */
Removes either all lle entries for given @ia, or lle
corresponding to @ia address.
Removes either all lle entries for given @ia or lle corresponding to @ia address .
void
nd6_rem_ifa_lle(struct in6_ifaddr *ia, int all)
{
	struct sockaddr_in6 mask, addr;
	struct sockaddr *saddr, *smask;
	struct ifnet *ifp;
	ifp = ia->ia_ifa.ifa_ifp;
	memcpy(&addr, &ia->ia_addr, sizeof(ia->ia_addr));
	memcpy(&mask, &ia->ia_prefixmask, sizeof(ia->ia_prefixmask));
	saddr = (struct sockaddr *)&addr;
	smask = (struct sockaddr *)&mask;
	if (all != 0)
		lltable_prefix_free(AF_INET6, saddr, smask, LLE_STATIC);
	else
		lltable_delete_addr(LLTABLE6(ifp), LLE_IFADDR, saddr);
}
void nd6_rem_ifa_lle ( struct in6_ifaddr * ia , int all ) { struct sockaddr_in6 mask , addr ; struct sockaddr * saddr , * smask ; struct ifnet * ifp ; ifp = ia -> ia_ifa . ifa_ifp ; memcpy ( & addr , & ia -> ia_addr , sizeof ( ia -> ia_addr ) ) ; memcpy ( & mask , & ia -> ia_prefixmask , sizeof ( ia -> ia_prefixmask ) ) ; saddr = ( struct sockaddr * ) & addr ; smask = ( struct sockaddr * ) & mask ; if ( all != 0 ) lltable_prefix_free ( AF_INET6 , saddr , smask , LLE_STATIC ) ; else lltable_delete_addr ( LLTABLE6 ( ifp ) , LLE_IFADDR , saddr ) ; }
Removes either all lle entries for given @ia, or lle
 corresponding to @ia address.
Removes either all lle entries for given @ia or lle corresponding to @ia address .