IPv6 neighbor discovery

Provides IPv6 neighbor discovery message types.

NDP_RTR_ADV_FLAGS_MASK
1
(0xc0)
NDP_RTR_ADV_FLAGS_M

managed address configuration

1
(0x80)
NDP_RTR_ADV_FLAGS_O

other configuration

1
(0x40)
NDP_RTR_ADV_CUR_HL_UNSPEC

Router advertisement constants.

1
(0)

See also

RFC 4861, section 4.2current hop limit unspecified by advertising router

NDP_RTR_ADV_LTIME_SEC_MAX

maximum router lifetime in seconds

1
(9000)

NDP_NBR_ADV_LTIME_NOT_DR

router should not be a default router

1
(0)

NDP_NBR_ADV_REACH_TIME

reachable time unspecified by advertising router

1
(0)
NDP_NBR_ADV_RETRANS_TIMER

retrans.

1
(0)

timer unspecified by advertising router

NDP_NBR_ADV_FLAGS_MASK
1
(0xe0)
NDP_NBR_ADV_FLAGS_R

router

1
(0x80)
NDP_NBR_ADV_FLAGS_S

solicited

1
(0x40)
NDP_NBR_ADV_FLAGS_O

override

1
(0x20)
NDP_OPT_SL2A

source link-layer address option

1
(1)
NDP_OPT_TL2A

target link-layer address option

1
(2)
NDP_OPT_PI

prefix information option

1
(3)
NDP_OPT_RH

redirected option

1
(4)
NDP_OPT_MTU

MTU option.

1
(5)
NDP_OPT_RDNSS

recursive DNS server option

1
(25)
NDP_OPT_AR

address registration option

1
(33)
NDP_OPT_6CTX

6LoWPAN context option

1
(34)
NDP_OPT_ABR

authoritative border router option

1
(35)
NDP_OPT_PI_FLAGS_MASK
1
(0xc0)
NDP_OPT_PI_FLAGS_L

on-link

1
(0x80)
NDP_OPT_PI_FLAGS_A

autonomous address configuration

1
(0x40)
NDP_OPT_PI_VALID_LTIME_INF

infinite valid lifetime

1
(UINT32_MAX)
NDP_OPT_PI_PREF_LTIME_INF

infinite preferred lifetime

1
(UINT32_MAX)
NDP_OPT_PI_LEN
1
(4U)
NDP_OPT_MTU_LEN
1
(1U)
NDP_MAX_INIT_RA_INTERVAL

MAX_INITIAL_RTR_ADVERT_INTERVAL (in ms)

1
(16000U)
NDP_MAX_INIT_RA_NUMOF

MAX_INITIAL_RTR_ADVERTISEMENT.

1
(3U)
NDP_MAX_FIN_RA_NUMOF

MAX_FINAL_RTR_ADVERTISEMENT.

1
(3U)
NDP_MIN_MS_DELAY_BETWEEN_RAS

MIN_DELAY_BETWEEN_RAS (in ms)

1
(3000U)
NDP_MAX_RA_DELAY

MAX_RA_DELAY_TIME (in ms)

1
(500U)
NDP_MAX_RA_INTERVAL_MS

default of MaxRtrAdvInterval (in ms)

1
(600000U)
NDP_MIN_RA_INTERVAL_MS

default of MinRtrAdvInterval (in ms)

1
(198000U)
NDP_RTR_LTIME_SEC

default of AdvDefaultLifetime (in sec)

1
(1800U)
NDP_MAX_RS_MS_DELAY

MAX_RTR_SOLICITATION_DELAY (in ms)

1
(1000U)
NDP_RS_MS_INTERVAL

RTR_SOLICITATION_INTERVAL (in ms)

1
(4000U)
NDP_MAX_RS_NUMOF

MAX_RTR_SOLICITATIONS.

1
(3U)
NDP_MAX_MC_SOL_NUMOF

MAX_MULTICAST_SOLICIT.

1
(3U)
NDP_MAX_UC_SOL_NUMOF

MAX_UNICAST_SOLICIT.

1
(3U)
NDP_DAD_TRANSMIT_NUMOF

Default for DupAddrDetectTransmits.

1
(1U)

Note

Must not be greater than 7 for Generic (GNRC) network stack since gnrc/netif/ipv6.h::GNRC_NETIF_IPV6_ADDRS_FLAGS_STATE_TENTATIVE restricts it to that number.

NDP_MAX_ANYCAST_MS_DELAY

MAX_ANYCAST_DELAY_TIME (in ms)

1
(1000U)
NDP_MAX_NA_NUMOF

MAX_NEIGHBOR_ADVERTISEMENT.

1
(3U)
NDP_REACH_MS

REACHABLE_TIME (in ms)

1
(30000U)
NDP_RETRANS_TIMER_MS

RETRANS_TIMER (in ms)

1
(1000U)
NDP_MAX_RETRANS_TIMER_MS

MAX_RETRANS_TIMER (in ms)

1
(60000U)

See also

RFC 7048

NDP_MAX_NS_NUMOF

Maximum retransmission of neighbor solicitations when UNREACHABLE.

1
(17U)

With more than this number the backoff will always be larger than ndp.h::NDP_MAX_RETRANS_TIMER_MS, even if the random factor is 0.5 and the retransmission time is 1ms.

NDP_DELAY_FIRST_PROBE_MS

DELAY_FIRST_PROBE_TIME (in ms)

1
(5000U)
NDP_MIN_RANDOM_FACTOR

MIN_RANDOM_FACTOR (x 1000)

1
(500U)
NDP_MAX_RANDOM_FACTOR

MAX_RANDOM_FACTOR (x 1000)

1
(1500U)
NDP_OPT_RDNSS_MIN_LEN

Minimum length of a recursive DNS server option (in units of 8 bytes)

1
(3U)

struct ndp_rtr_sol_t

Router solicitation message format.

uint8_t type

message type

uint8_t code

message code

byteorder.h::network_uint16_t csum

checksum

byteorder.h::network_uint32_t resv

reserved field

struct ndp_rtr_adv_t

Router advertisement message format.

uint8_t type

message type

uint8_t code

message code

byteorder.h::network_uint16_t csum

checksum

uint8_t cur_hl

current hop limit

uint8_t flags

flags

byteorder.h::network_uint16_t ltime

router lifetime

byteorder.h::network_uint32_t reach_time

reachable time

byteorder.h::network_uint32_t retrans_timer

retransmission timer

struct ndp_nbr_sol_t

Neighbor solicitation message format.

uint8_t type

message type

uint8_t code

message code

byteorder.h::network_uint16_t csum

checksum

byteorder.h::network_uint32_t resv

reserved field

ipv6_addr_t tgt

target address

struct ndp_nbr_adv_t

Neighbor advertisement message format.

uint8_t type

message type

uint8_t code

message code

byteorder.h::network_uint16_t csum

checksum

uint8_t flags

flags

uint8_t resv()

reserved fields

ipv6_addr_t tgt

target address

struct ndp_redirect_t

Redirect message format.

uint8_t type

message type

uint8_t code

message code

byteorder.h::network_uint16_t csum

checksum

byteorder.h::network_uint32_t resv

reserved field

ipv6_addr_t tgt

target address

ipv6_addr_t dst

destination address

struct ndp_opt_t

General NDP option format.

uint8_t type

option type

uint8_t len

length in units of 8 octets

struct ndp_opt_pi_t

Prefix information option format.

uint8_t type

option type

uint8_t len

length in units of 8 octets

uint8_t prefix_len

prefix length

uint8_t flags

flags

byteorder.h::network_uint32_t valid_ltime

valid lifetime

byteorder.h::network_uint32_t pref_ltime

preferred lifetime

byteorder.h::network_uint32_t resv

reserved field

ipv6_addr_t prefix

prefix

struct ndp_opt_rh_t

Redirected header option format.

uint8_t type

option type

uint8_t len

length in units of 8 octets

uint8_t resv()

reserved field

struct ndp_opt_mtu_t

MTU option format.

uint8_t type

option type

uint8_t len

length in units of 8 octets

byteorder.h::network_uint16_t resv

reserved field

byteorder.h::network_uint32_t mtu

MTU.

struct ndp_opt_rdnss_t

Recursive DNS server option format.

uint8_t type

option type

uint8_t len

length in units of 8 octets

byteorder.h::network_uint16_t resv

reserved field

byteorder.h::network_uint32_t ltime

lifetime in seconds

ipv6_addr_t addrs()

addresses of IPv6 recursive DNS servers