37 #define NDP_RTR_ADV_FLAGS_MASK      (0xc0) 
   38 #define NDP_RTR_ADV_FLAGS_M         (0x80)   
   39 #define NDP_RTR_ADV_FLAGS_O         (0x40)   
   49 #define NDP_RTR_ADV_CUR_HL_UNSPEC   (0)  
   55 #define NDP_RTR_ADV_LTIME_SEC_MAX   (9000) 
   61 #define NDP_NBR_ADV_LTIME_NOT_DR    (0) 
   63 #define NDP_NBR_ADV_REACH_TIME      (0)      
   64 #define NDP_NBR_ADV_RETRANS_TIMER   (0)      
   72 #define NDP_NBR_ADV_FLAGS_MASK      (0xe0) 
   73 #define NDP_NBR_ADV_FLAGS_R         (0x80)   
   74 #define NDP_NBR_ADV_FLAGS_S         (0x40)   
   75 #define NDP_NBR_ADV_FLAGS_O         (0x20)   
   86 #define NDP_OPT_SL2A                (1)      
   87 #define NDP_OPT_TL2A                (2)      
   88 #define NDP_OPT_PI                  (3)      
   89 #define NDP_OPT_RH                  (4)      
   90 #define NDP_OPT_MTU                 (5)      
   91 #define NDP_OPT_RI                  (24)     
   92 #define NDP_OPT_RDNSS               (25)     
   93 #define NDP_OPT_AR                  (33)     
   94 #define NDP_OPT_6CTX                (34)     
   95 #define NDP_OPT_ABR                 (35)     
  102 #define NDP_OPT_PI_FLAGS_MASK       (0xc0) 
  103 #define NDP_OPT_PI_FLAGS_L          (0x80)   
  104 #define NDP_OPT_PI_FLAGS_A          (0x40)   
  111 #define NDP_OPT_RI_FLAGS_MASK       (0x18) 
  112 #define NDP_OPT_RI_FLAGS_PRF_NONE   (0x10)   
  113 #define NDP_OPT_RI_FLAGS_PRF_NEG    (0x18)   
  114 #define NDP_OPT_RI_FLAGS_PRF_ZERO   (0x0)    
  115 #define NDP_OPT_RI_FLAGS_PRF_POS    (0x8)    
  123 #define NDP_OPT_PI_VALID_LTIME_INF  (UINT32_MAX)     
  124 #define NDP_OPT_PI_PREF_LTIME_INF   (UINT32_MAX)     
  132 #define NDP_OPT_PI_LEN              (4U) 
  133 #define NDP_OPT_MTU_LEN             (1U) 
  140 #define NDP_OPT_RDNSS_MIN_LEN       (3U) 
  148 #define NDP_MAX_INIT_RA_INTERVAL        (16000U)    
  149 #define NDP_MAX_INIT_RA_NUMOF           (3U)        
  150 #define NDP_MAX_FIN_RA_NUMOF            (3U)        
  151 #define NDP_MIN_MS_DELAY_BETWEEN_RAS    (3000U)     
  152 #define NDP_MAX_RA_DELAY                (500U)      
  153 #define NDP_MAX_RA_INTERVAL_MS          (600000U)   
  154 #define NDP_MIN_RA_INTERVAL_MS          (198000U)   
  155 #define NDP_RTR_LTIME_SEC               (1800U)     
  163 #define NDP_MAX_RS_MS_DELAY         (1000U)      
  164 #define NDP_RS_MS_INTERVAL          (4000U)      
  165 #define NDP_MAX_RS_NUMOF            (3U)         
  173 #define NDP_MAX_MC_SOL_NUMOF        (3U)         
  174 #define NDP_MAX_UC_SOL_NUMOF        (3U)         
  183 #define NDP_DAD_TRANSMIT_NUMOF      (1U) 
  184 #define NDP_MAX_ANYCAST_MS_DELAY    (1000U)      
  185 #define NDP_MAX_NA_NUMOF            (3U)         
  186 #define NDP_REACH_MS                (30000U)     
  187 #define NDP_RETRANS_TIMER_MS        (1000U)      
  193 #define NDP_MAX_RETRANS_TIMER_MS    (60000U) 
  202 #define NDP_MAX_NS_NUMOF            (17U) 
  203 #define NDP_DELAY_FIRST_PROBE_MS    (5000U)      
  204 #define NDP_MIN_RANDOM_FACTOR       (500U)       
  205 #define NDP_MAX_RANDOM_FACTOR       (1500U)      
  218 #define NDP_HOP_LIMIT               (255U) 
  226 typedef struct __attribute__((packed)) {
 
  239 typedef struct __attribute__((packed)) {
 
  256 typedef struct __attribute__((packed)) {
 
  270 typedef struct __attribute__((packed)) {
 
  285 typedef struct __attribute__((packed)) {
 
  298 typedef struct __attribute__((packed)) {
 
  312 typedef struct __attribute__((packed)) {
 
  329 typedef struct __attribute__((packed)) {
 
  344 typedef struct __attribute__((packed)) {
 
  356 typedef struct __attribute__((packed)) {
 
  370 typedef struct __attribute__((packed)) {
 
  386 typedef struct __attribute__((packed)) {
 
Functions to work with different byte orders.
 
Definitions for IPv6 addresses.
 
Neighbor advertisement message format.
 
network_uint16_t csum
checksum
 
ipv6_addr_t tgt
target address
 
Neighbor solicitation message format.
 
network_uint16_t csum
checksum
 
network_uint32_t resv
reserved field
 
ipv6_addr_t tgt
target address
 
network_uint16_t resv
reserved field
 
uint8_t len
length in units of 8 octets
 
Prefix information option format.
 
uint8_t prefix_len
prefix length
 
network_uint32_t pref_ltime
preferred lifetime
 
network_uint32_t resv
reserved field
 
network_uint32_t valid_ltime
valid lifetime
 
uint8_t len
length in units of 8 octets
 
Recursive DNS server option format with payload.
 
network_uint16_t resv
reserved field
 
uint8_t len
length in units of 8 octets
 
network_uint32_t ltime
lifetime in seconds
 
Recursive DNS server option format without payload.
 
network_uint16_t resv
reserved field
 
uint8_t len
length in units of 8 octets
 
network_uint32_t ltime
lifetime in seconds
 
Redirected header option format.
 
uint8_t len
length in units of 8 octets
 
Route information option format.
 
uint8_t prefix_len
prefix length
 
network_uint32_t route_ltime
route lifetime
 
uint8_t len
length in units of 8 octets
 
General NDP option format.
 
uint8_t len
length in units of 8 octets
 
ipv6_addr_t tgt
target address
 
ipv6_addr_t dst
destination address
 
network_uint32_t resv
reserved field
 
network_uint16_t csum
checksum
 
Router advertisement message format.
 
network_uint32_t reach_time
reachable time
 
network_uint16_t csum
checksum
 
uint8_t cur_hl
current hop limit
 
network_uint32_t retrans_timer
retransmission timer
 
network_uint16_t ltime
router lifetime
 
Router solicitation message format.
 
network_uint16_t csum
checksum
 
network_uint32_t resv
reserved field
 
A 16 bit integer in big endian aka network byte order.
 
A 32 bit integer in big endian aka network byte order.
 
Data type to represent an IPv6 address.