ndp.h File Reference

IPv6 neighbor discovery message type definitions. More...

Detailed Description

#include <stdint.h>
#include "byteorder.h"
#include "net/ipv6/addr.h"
+ Include dependency graph for ndp.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  ndp_rtr_sol_t
 Router solicitation message format. More...
 
struct  ndp_rtr_adv_t
 Router advertisement message format. More...
 
struct  ndp_nbr_sol_t
 Neighbor solicitation message format. More...
 
struct  ndp_nbr_adv_t
 Neighbor advertisement message format. More...
 
struct  ndp_redirect_t
 Redirect message format. More...
 
struct  ndp_opt_t
 General NDP option format. More...
 
struct  ndp_opt_pi_t
 Prefix information option format. More...
 
struct  ndp_opt_rh_t
 Redirected header option format. More...
 
struct  ndp_opt_mtu_t
 MTU option format. More...
 

Macros

Router advertisement flags
#define NDP_RTR_ADV_FLAGS_MASK   (0xc0)
 
#define NDP_RTR_ADV_FLAGS_M   (0x80)
 managed address configuration
 
#define NDP_RTR_ADV_FLAGS_O   (0x40)
 other configuration
 
#define NDP_RTR_ADV_CUR_HL_UNSPEC   (0)
 Router advertisement constants. More...
 
#define NDP_RTR_ADV_LTIME_SEC_MAX   (9000)
 maximum router lifetime in seconds More...
 
#define NDP_NBR_ADV_LTIME_NOT_DR   (0)
 router should not be a default router More...
 
#define NDP_NBR_ADV_REACH_TIME   (0)
 reachable time unspecified by advertising router
 
#define NDP_NBR_ADV_RETRANS_TIMER   (0)
 retrans. More...
 
Neighbor advertisement flags
#define NDP_NBR_ADV_FLAGS_MASK   (0xe0)
 
#define NDP_NBR_ADV_FLAGS_R   (0x80)
 router
 
#define NDP_NBR_ADV_FLAGS_S   (0x40)
 solicited
 
#define NDP_NBR_ADV_FLAGS_O   (0x20)
 override
 
NDP option types
#define NDP_OPT_SL2A   (1)
 source link-layer address option
 
#define NDP_OPT_TL2A   (2)
 target link-layer address option
 
#define NDP_OPT_PI   (3)
 prefix information option
 
#define NDP_OPT_RH   (4)
 redirected option
 
#define NDP_OPT_MTU   (5)
 MTU option.
 
#define NDP_OPT_AR   (33)
 address registration option
 
#define NDP_OPT_6CTX   (34)
 6LoWPAN context option
 
#define NDP_OPT_ABR   (35)
 authoritative border router option
 
Flags for prefix information option
#define NDP_OPT_PI_FLAGS_MASK   (0xc0)
 
#define NDP_OPT_PI_FLAGS_L   (0x80)
 on-link
 
#define NDP_OPT_PI_FLAGS_A   (0x40)
 autonomous address configuration
 
Prefix information option constants
#define NDP_OPT_PI_VALID_LTIME_INF   (UINT32_MAX)
 infinite valid lifetime
 
#define NDP_OPT_PI_PREF_LTIME_INF   (UINT32_MAX)
 infinite preferred lifetime
 
Lengths for fixed length options
Note
Options don't use bytes as their length unit, but 8 bytes.
#define NDP_OPT_PI_LEN   (4U)
 
#define NDP_OPT_MTU_LEN   (1U)
 
Router constants
#define NDP_MAX_INIT_RA_INTERVAL   (16000U)
 MAX_INITIAL_RTR_ADVERT_INTERVAL (in ms)
 
#define NDP_MAX_INIT_RA_NUMOF   (3U)
 MAX_INITIAL_RTR_ADVERTISEMENT.
 
#define NDP_MAX_FIN_RA_NUMOF   (3U)
 MAX_FINAL_RTR_ADVERTISEMENT.
 
#define NDP_MIN_MS_DELAY_BETWEEN_RAS   (3000U)
 MIN_DELAY_BETWEEN_RAS (in ms)
 
#define NDP_MAX_RA_DELAY   (500U)
 MAX_RA_DELAY_TIME (in ms)
 
Host constants
#define NDP_MAX_RS_MS_DELAY   (1000U)
 MAX_RTR_SOLICITATION_DELAY (in ms)
 
#define NDP_RS_MS_INTERVAL   (4000U)
 RTR_SOLICITATION_INTERVAL (in ms)
 
#define NDP_MAX_RS_NUMOF   (3U)
 MAX_RTR_SOLICITATIONS.
 
Node constants
#define NDP_MAX_MC_SOL_NUMOF   (3U)
 MAX_MULTICAST_SOLICIT.
 
#define NDP_MAX_UC_SOL_NUMOF   (3U)
 MAX_UNICAST_SOLICIT.
 
#define NDP_MAX_ANYCAST_MS_DELAY   (1000U)
 MAX_ANYCAST_DELAY_TIME (in ms)
 
#define NDP_MAX_NA_NUMOF   (3U)
 MAX_NEIGHBOR_ADVERTISEMENT.
 
#define NDP_REACH_MS   (30000U)
 REACHABLE_TIME (in ms)
 
#define NDP_RETRANS_TIMER_MS   (1000U)
 RETRANS_TIMER (in ms)
 
#define NDP_DELAY_FIRST_PROBE_MS   (5000U)
 DELAY_FIRST_PROBE_TIME (in ms)
 
#define NDP_MIN_RANDOM_FACTOR   (500U)
 MIN_RANDOM_FACTOR (x 1000)
 
#define NDP_MAX_RANDOM_FACTOR   (1500U)
 MAX_RANDOM_FACTOR (x 1000)