lwIP 2.0.0
lwIP 2.0.0
LightweightIPstack
|
#include "lwip/opt.h"
#include "lwip/nd6.h"
#include "lwip/pbuf.h"
#include "lwip/mem.h"
#include "lwip/memp.h"
#include "lwip/ip6.h"
#include "lwip/ip6_addr.h"
#include "lwip/inet_chksum.h"
#include "lwip/netif.h"
#include "lwip/icmp6.h"
#include "lwip/mld6.h"
#include "lwip/ip.h"
#include "lwip/stats.h"
#include <string.h>
Functions | |
void | nd6_input (struct pbuf *p, struct netif *inp) |
void | nd6_tmr (void) |
s8_t | nd6_select_router (const ip6_addr_t *ip6addr, struct netif *netif) |
s8_t | nd6_get_next_hop_entry (const ip6_addr_t *ip6addr, struct netif *netif) |
err_t | nd6_queue_packet (s8_t neighbor_index, struct pbuf *q) |
u16_t | nd6_get_destination_mtu (const ip6_addr_t *ip6addr, struct netif *netif) |
void | nd6_reachability_hint (const ip6_addr_t *ip6addr) |
void | nd6_cleanup_netif (struct netif *netif) |
Neighbor discovery and stateless address autoconfiguration for IPv6. Aims to be compliant with RFC 4861 (Neighbor discovery) and RFC 4862 (Address autoconfiguration).
void nd6_cleanup_netif | ( | struct netif * | netif | ) |
Remove all prefix, neighbor_cache and router entries of the specified netif.
netif | points to a network interface |
u16_t nd6_get_destination_mtu | ( | const ip6_addr_t * | ip6addr, |
struct netif * | netif | ||
) |
Get the Path MTU for a destination.
ip6addr | the destination address |
netif | the netif on which the packet will be sent |
s8_t nd6_get_next_hop_entry | ( | const ip6_addr_t * | ip6addr, |
struct netif * | netif | ||
) |
Determine the next hop for a destination. Will determine if the destination is on-link, else a suitable on-link router is selected.
The last entry index is cached for fast entry search.
ip6addr | the destination address |
netif | the netif on which the packet will be sent |
Process an incoming neighbor discovery message
p | the nd packet, p->payload pointing to the icmpv6 header |
inp | the netif on which this packet was received |
Queue a packet for a neighbor.
neighbor_index | the index in the neighbor cache table |
q | packet to be queued |
void nd6_reachability_hint | ( | const ip6_addr_t * | ip6addr | ) |
Provide the Neighbor discovery process with a hint that a destination is reachable. Called by tcp_receive when ACKs are received or sent (as per RFC). This is useful to avoid sending NS messages every 30 seconds.
ip6addr | the destination address which is know to be reachable by an upper layer protocol (TCP) |
s8_t nd6_select_router | ( | const ip6_addr_t * | ip6addr, |
struct netif * | netif | ||
) |
Select a default router for a destination.
ip6addr | the destination address |
netif | the netif for the outgoing packet, if known |
void nd6_tmr | ( | void | ) |
Periodic timer for Neighbor discovery functions: