Ethernet output for IPv6.
Uses ND tables for link-layer addressing.
#include "lwip/opt.h"
#include "lwip/pbuf.h"
#include "lwip/ip6.h"
#include "lwip/ip6_addr.h"
#include "lwip/netif.h"
Functions | |
err_t | ethip6_output (struct netif *netif, struct pbuf *q, ip6_addr_t *ip6addr) |
Resolve and fill-in Ethernet address header for outgoing IPv6 packet. More... | |
err_t ethip6_output | ( | struct netif * | netif, |
struct pbuf * | q, | ||
ip6_addr_t * | ip6addr | ||
) |
Resolve and fill-in Ethernet address header for outgoing IPv6 packet.
For IPv6 multicast, corresponding Ethernet addresses are selected and the packet is transmitted on the link.
For unicast addresses, ...
anycast addresses
netif | The lwIP network interface which the IP packet will be sent on. |
q | The pbuf(s) containing the IP packet to be sent. |
ip6addr | The IP address of the packet destination. |
References nd6_neighbor_cache_entry::counter, nd6_neighbor_cache_entry::delay_time, ERR_BUF, ERR_MEM, ETHARP_DEBUG, ethip6_send(), netif::hwaddr, ip6_addr_ismulticast, nd6_neighbor_cache_entry::lladdr, LWIP_DBG_LEVEL_SERIOUS, LWIP_DBG_TRACE, LWIP_DEBUGF, ND6_DELAY, nd6_get_next_hop_entry(), ND6_PROBE, nd6_queue_packet(), ND6_REACHABLE, ND6_STALE, neighbor_cache, pbuf_header(), SIZEOF_ETH_HDR, and nd6_neighbor_cache_entry::state.
Referenced by winc_netif_init().