Definitions related to 6Lo router (6LR) functionality of the NIB. More...

Detailed Description

Definitions related to 6Lo router (6LR) functionality of the NIB.

See also
GNRC_IPV6_NIB_CONF_6LR
Author
Martine Lenders m.len.nosp@m.ders.nosp@m.@fu-b.nosp@m.erli.nosp@m.n.de

Definition in file _nib-6lr.h.

#include "net/gnrc/ipv6/nib/conf.h"
#include "net/ndp.h"
#include "net/sixlowpan/nd.h"
#include "_nib-arsm.h"
#include "_nib-6ln.h"
#include "_nib-internal.h"
+ Include dependency graph for _nib-6lr.h:

Go to the source code of this file.

Functions

static uint16_t _get_ar_state (const _nib_onl_entry_t *entry)
 Gets address registration state of a neighbor. More...
 
static void _set_ar_state (_nib_onl_entry_t *entry, uint16_t state)
 Sets address registration state of a neighbor. More...
 
static bool _rtr_sol_on_6lr (const gnrc_netif_t *netif, const icmpv6_hdr_t *icmpv6)
 Checks if the received message is a router solicitation and the interface represents a 6Lo router. More...
 
uint8_t _reg_addr_upstream (gnrc_netif_t *netif, const ipv6_hdr_t *ipv6, const icmpv6_hdr_t *icmpv6, const sixlowpan_nd_opt_ar_t *aro, const ndp_opt_t *sl2ao, _nib_onl_entry_t *nce)
 Registers an address to the (upstream; in case of multihop DAD) router. More...
 
gnrc_pktsnip_t_copy_and_handle_aro (gnrc_netif_t *netif, const ipv6_hdr_t *ipv6, const ndp_nbr_sol_t *nbr_sol, const sixlowpan_nd_opt_ar_t *aro, const ndp_opt_t *sl2ao)
 Handles and copies ARO from NS to NA. More...
 
void _set_rtr_adv (gnrc_netif_t *netif)
 Sets the GNRC_NETIF_FLAGS_IPV6_RTR_ADV flags of an interface. More...
 

Function Documentation

◆ _copy_and_handle_aro()

gnrc_pktsnip_t* _copy_and_handle_aro ( gnrc_netif_t netif,
const ipv6_hdr_t ipv6,
const ndp_nbr_sol_t nbr_sol,
const sixlowpan_nd_opt_ar_t aro,
const ndp_opt_t sl2ao 
)

Handles and copies ARO from NS to NA.

Parameters
[in]netifThe interface the ARO-carrying NS came over.
[in]ipv6The IPv6 header of the message carrying the original ARO.
[in]nbr_solThe neighbor solicitation carrying the original ARO (handed over as icmpv6_hdr_t, since it is just handed to _handle_aro()).
[in]aroThe original ARO
[in]sl2aoSL2AO associated with the ARO.
Returns
registration status of the address (including _ADDR_REG_STATUS_TENTATIVE and _ADDR_REG_STATUS_IGNORE).

◆ _get_ar_state()

static uint16_t _get_ar_state ( const _nib_onl_entry_t entry)
inlinestatic

Gets address registration state of a neighbor.

Parameters
[in]entryNeighbor cache entry representing the neighbor.
Returns
Address registration state of the entry.

Definition at line 43 of file _nib-6lr.h.

◆ _reg_addr_upstream()

uint8_t _reg_addr_upstream ( gnrc_netif_t netif,
const ipv6_hdr_t ipv6,
const icmpv6_hdr_t icmpv6,
const sixlowpan_nd_opt_ar_t aro,
const ndp_opt_t sl2ao,
_nib_onl_entry_t nce 
)

Registers an address to the (upstream; in case of multihop DAD) router.

Parameters
[in]netifThe interface the ARO-carrying NS came over.
[in]ipv6The IPv6 header of the message carrying the ARO.
[in]icmpv6The neighbor solicitation carrying the ARO (handed over as icmpv6_hdr_t, since it is just handed to the SL2AO handler function).
[in]aroARO that carries the address registration information.
[in]sl2aoSL2AO associated with the ARO.
[in]nceThe local neighbor cache entry the registration information is supposed to be copied into. May be NULL (this might create one).
Returns
registration status of the address (including _ADDR_REG_STATUS_TENTATIVE and _ADDR_REG_STATUS_IGNORE).

◆ _rtr_sol_on_6lr()

static bool _rtr_sol_on_6lr ( const gnrc_netif_t netif,
const icmpv6_hdr_t icmpv6 
)
inlinestatic

Checks if the received message is a router solicitation and the interface represents a 6Lo router.

See also
RFC 6775
Parameters
[in]netifA network interface.
[in]icmpv6An ICMPv6 message.

Definition at line 69 of file _nib-6lr.h.

◆ _set_ar_state()

static void _set_ar_state ( _nib_onl_entry_t entry,
uint16_t  state 
)
inlinestatic

Sets address registration state of a neighbor.

Parameters
[in]entryNeighbor cache entry representing the neighbor.
[in]stateAddress registration state for the neighbor.

Definition at line 54 of file _nib-6lr.h.

◆ _set_rtr_adv()

void _set_rtr_adv ( gnrc_netif_t netif)

Sets the GNRC_NETIF_FLAGS_IPV6_RTR_ADV flags of an interface.

Parameters
[in]netifThe interface.