extern errno_t nd6_lookup_ipv6( ifnet_t interface, const struct sockaddr_in6 *ip6_dest, struct sockaddr_dl *ll_dest, size_t ll_dest_len, route_t hint, mbuf_t packet);
The interface the packet is being sent on.
The IPv6 destination of the packet.
On output, the link-layer destination.
The length of the buffer for ll_dest.
Any routing hint passed down from the protocol.
The packet being transmitted.
May return an error such as EHOSTDOWN or ENETUNREACH. If this function returns EJUSTRETURN, the packet has been queued and will be sent when the address is resolved. If any other value is returned, the caller is responsible for disposing of the packet.
This function will check the routing table for a cached neighbor discovery entry or trigger an neighbor discovery query to resolve the IPv6 address to a link-layer address.
nd entries are stored in the routing table. This function will lookup the IPv6 destination in the routing table. If the destination requires forwarding to a gateway, the route of the gateway will be looked up. The route entry is inspected to determine if the link layer destination address is known. If unknown, neighbor discovery will be used to resolve the entry.