Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: mbed-TFT-example-NCS36510 mbed-Accelerometer-example-NCS36510 mbed-Accelerometer-example-NCS36510
nd6.h File Reference
Neighbor discovery and stateless address autoconfiguration for IPv6. More...
Go to the source code of this file.
Data Structures | |
struct | nd6_neighbor_cache_entry |
Struct for tables. More... | |
struct | nd6_q_entry |
struct for queueing outgoing packets for unknown address defined here to be accessed by memp.h More... | |
struct | ns_header |
Neighbor solicitation message header. More... | |
struct | na_header |
Neighbor advertisement message header. More... | |
struct | rs_header |
Router solicitation message header. More... | |
struct | redirect_header |
Redirect message header. More... | |
Functions | |
void | nd6_tmr (void) |
Periodic timer for Neighbor discovery functions: | |
void | nd6_input (struct pbuf *p, struct netif *inp) |
Process an incoming neighbor discovery message. | |
s8_t | nd6_get_next_hop_entry (const ip6_addr_t *ip6addr, struct netif *netif) |
Determine the next hop for a destination. | |
s8_t | nd6_select_router (const ip6_addr_t *ip6addr, struct netif *netif) |
Select a default router for a destination. | |
u16_t | nd6_get_destination_mtu (const ip6_addr_t *ip6addr, struct netif *netif) |
Get the Path MTU for a destination. | |
err_t | nd6_queue_packet (s8_t neighbor_index, struct pbuf *p) |
Queue a packet for a neighbor. | |
void | nd6_reachability_hint (const ip6_addr_t *ip6addr) |
Provide the Neighbor discovery process with a hint that a destination is reachable. | |
void | nd6_cleanup_netif (struct netif *netif) |
Remove all prefix, neighbor_cache and router entries of the specified netif. |
Detailed Description
Neighbor discovery and stateless address autoconfiguration for IPv6.
Aims to be compliant with RFC 4861 (Neighbor discovery) and RFC 4862 (Address autoconfiguration).
Definition in file nd6.h.
Function Documentation
void nd6_cleanup_netif | ( | struct netif * | netif ) |
Remove all prefix, neighbor_cache and router entries of the specified netif.
- Parameters:
-
netif points to a network interface
Definition at line 1861 of file lwip_nd6.c.
u16_t nd6_get_destination_mtu | ( | const ip6_addr_t * | ip6addr, |
struct netif * | netif | ||
) |
Get the Path MTU for a destination.
- Parameters:
-
ip6addr the destination address netif the netif on which the packet will be sent
- Returns:
- the Path MTU, if known, or the netif default MTU
Definition at line 1788 of file lwip_nd6.c.
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.
- Parameters:
-
ip6addr the destination address netif the netif on which the packet will be sent
- Returns:
- the neighbor cache entry for the next hop, ERR_RTE if no suitable next hop was found, ERR_MEM if no cache entry could be created
Definition at line 1492 of file lwip_nd6.c.
Process an incoming neighbor discovery message.
- Parameters:
-
p the nd packet, p->payload pointing to the icmpv6 header inp the netif on which this packet was received
Definition at line 119 of file lwip_nd6.c.
Queue a packet for a neighbor.
- Parameters:
-
neighbor_index the index in the neighbor cache table q packet to be queued
- Returns:
- ERR_OK if succeeded, ERR_MEM if out of memory
Definition at line 1604 of file lwip_nd6.c.
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.
- Parameters:
-
ip6addr the destination address which is know to be reachable by an upper layer protocol (TCP)
Definition at line 1818 of file lwip_nd6.c.
s8_t nd6_select_router | ( | const ip6_addr_t * | ip6addr, |
struct netif * | netif | ||
) |
Select a default router for a destination.
- Parameters:
-
ip6addr the destination address netif the netif for the outgoing packet, if known
- Returns:
- the default router entry index, or -1 if no suitable router is found
Definition at line 1300 of file lwip_nd6.c.
void nd6_tmr | ( | void | ) |
Periodic timer for Neighbor discovery functions:
- Update neighbor reachability states
- Update destination cache entries age
- Update invalidation timers of default routers and on-link prefixes
- Perform duplicate address detection (DAD) for our addresses
- Send router solicitations
Definition at line 655 of file lwip_nd6.c.
Generated on Tue Jul 12 2022 11:03:03 by
