33#include "_nib-internal.h"
68void _snd_uc_ns(_nib_onl_entry_t *nbr,
bool reset);
105static inline uint32_t _exp_backoff_retrans_timer_factor(uint8_t ns_sent,
106 uint32_t retrans_timer,
114 uint32_t res = (uint32_t)(((uint64_t)(((uint32_t) 1) << ns_sent) *
123#if IS_ACTIVE(CONFIG_GNRC_IPV6_NIB_ARSM) || defined(DOXYGEN)
130void _handle_snd_ns(_nib_onl_entry_t *nbr);
138void _handle_state_timeout(_nib_onl_entry_t *nbr);
146void _probe_nbr(_nib_onl_entry_t *nbr,
bool reset);
163void _handle_adv_l2(
gnrc_netif_t *netif, _nib_onl_entry_t *nce,
183void _set_reachable(
gnrc_netif_t *netif, _nib_onl_entry_t *nce);
191void _set_unreachable(
gnrc_netif_t *netif, _nib_onl_entry_t *nce);
201 _recalc_reach_time(&netif->
ipv6);
209static inline void _deinit_iface_arsm(
gnrc_netif_t *netif)
221static inline uint16_t _get_nud_state(_nib_onl_entry_t *nbr)
234void _set_nud_state(
gnrc_netif_t *netif, _nib_onl_entry_t *nbr,
247bool _is_reachable(_nib_onl_entry_t *entry);
249#define _handle_snd_ns(ctx) (void)ctx
250#define _handle_state_timeout(ctx) (void)ctx
251#define _probe_nbr(nbr, reset) (void)nbr; (void)reset
252#define _init_iface_arsm(netif) (void)netif
253#define _deinit_iface_arsm(netif) (void)netif
254#define _handle_adv_l2(netif, nce, icmpv6, tl2ao) (void)netif; (void)nce; \
255 (void)icmpv6; (void)tl2ao
256#define _recalc_reach_time(netif) (void)netif
257#define _set_reachable(netif, nce) (void)netif; (void)nce
259#define _get_nud_state(nbr) (GNRC_IPV6_NIB_NC_INFO_NUD_STATE_UNMANAGED)
260#define _set_nud_state(netif, nce, state) (void)netif; (void)nce; (void)state
261#define _is_reachable(entry) (true)
#define assert(cond)
abort the program if assertion is false
Definition for GNRC's network interfaces.
#define GNRC_IPV6_NIB_NC_INFO_NUD_STATE_MASK
Mask for neighbor unreachability detection (NUD) states.
void _snd_ns(const ipv6_addr_t *tgt, gnrc_netif_t *netif, const ipv6_addr_t *src, const ipv6_addr_t *dst)
Sends neighbor solicitation (including ARO if required)
#define NDP_MAX_RETRANS_TIMER_MS
MAX_RETRANS_TIMER (in ms)
#define NDP_REACH_MS
REACHABLE_TIME (in ms)
#define NDP_MAX_NS_NUMOF
Maximum retransmission of neighbor solicitations when UNREACHABLE.
#define NDP_MAX_RANDOM_FACTOR
MAX_RANDOM_FACTOR (x 1000)
#define NDP_MIN_RANDOM_FACTOR
MIN_RANDOM_FACTOR (x 1000)
#define US_PER_MS
The number of microseconds per millisecond.
ICMPv6 type and function definitions.
Configuration macro definitions for neighbor information base.
Common macros and compiler attributes/pragmas configuration.
IPv6 neighbor discovery message type definitions.
IPv6 header type and helper function definitions.
uint16_t info
Information flags.
IPv6 component for gnrc_netif_t.
evtimer_msg_event_t recalc_reach_time
Event for GNRC_IPV6_NIB_RECALC_REACH_TIME.
uint32_t reach_time_base
Base for random reachable time calculation and advertised reachable time in ms (if GNRC_NETIF_FLAGS_I...
Representation of a network interface.
gnrc_netif_ipv6_t ipv6
IPv6 component.
General ICMPv6 message format.
Data type to represent an IPv6 packet header.
General NDP option format.
Data type to represent an IPv6 address.