Reactive Discovery of P2P Routes in LLNs

Implementation of P2P-RPL.

See also

RFC 6997

GNRC_RPL_P2P_DEFAULT_DIO_INTERVAL_MIN
1
(6)
GNRC_RPL_P2P_DEFAULT_DIO_REDUNDANCY_CONSTANT
1
(1)
GNRC_RPL_P2P_DEFAULT_LIFETIME
1
(0xFF)
GNRC_RPL_P2P_LIFETIME_UNIT
1
(0xFFFF)
const uint8_t gnrc_rpl_p2p_lifetime_lookup()

Lookup table used to decode/encode the lifetime values.

structs.h::gnrc_rpl_instance_t * gnrc_rpl_p2p_root_init(uint8_t instance_id, ipv6_addr_t * dodag_id, ipv6_addr_t * target, bool gen_inst_id)

Initialization of a P2P-RPL Instance as root node.

Parameters

instance_id:Id of the instance
dodag_id:Id of the DODAG
target:Target of the P2P-RPL routes discovery
gen_inst_id:Flag indicating whether to generate a local isntance id. If true, instance_id will be ignored

Return values

  • Pointer to the new Instance, on success.
  • NULL, otherwise.
include/net/gnrc/pkt.h::gnrc_pktsnip_t * gnrc_rpl_p2p_rdo_build(include/net/gnrc/pkt.h::gnrc_pktsnip_t * pkt, gnrc_rpl_p2p_ext_t * p2p_ext)

Build an RDO.

Parameters

pkt:The RDO will be added to the pkt
p2p_ext:Pointer to the P2P-RPL DODAG extension

void gnrc_rpl_p2p_rdo_parse(gnrc_rpl_p2p_opt_rdo_t * rdo, gnrc_rpl_p2p_ext_t * p2p_ext)

Parse an RDO.

Parameters

rdo:The RDO to parse from.
p2p_ext:Pointer to the P2P-RPL DODAG extension

void gnrc_rpl_p2p_send_DRO(include/net/gnrc/pkt.h::gnrc_pktsnip_t * pkt, gnrc_rpl_p2p_ext_t * p2p_ext)

Send a DRO control message.

Parameters

pkt:The ICMPv6 packet to send. Can be NULL.
p2p_ext:Pointer to the P2P-RPL DODAG extension

void gnrc_rpl_p2p_recv_DRO(include/net/gnrc/pkt.h::gnrc_pktsnip_t * pkt, ipv6_addr_t * src)

Receive and parse a DRO control message.

Parameters

pkt:The ICMPv6 packet to parse.
src:The source address of the IPv6 packet.

void gnrc_rpl_p2p_update(void)

Updates the lifetime of the P2P Dodag and the delay of the DRO.

GNRC_RPL_P2P_MOP

P2P-RPL Mode of Operation.

1
(0x04)
GNRC_RPL_P2P_LIFETIME

Default lifetime of the P2P-RPL DODAG, encoded.

1
(0x02)

GNRC_RPL_P2P_COMPR

Number of elided prefix octets from the target field and address vector.

1
(0)

GNRC_RPL_P2P_MAX_RANK

Maximum rank in the DODAG during the route discovery.

1
(0)

GNRC_RPL_P2P_OPT_RDO

P2P-RPL RDO DIO option type.

1
(0x0A)

GNRC_RPL_P2P_ICMPV6_CODE_DRO

DRO ICMPv6 code.

1
(0x04)

GNRC_RPL_P2P_ICMPV6_CODE_DRO_ACK

DRO-ACK ICMPv6 code.

1
(0x05)

GNRC_RPL_P2P_DRO_DELAY

Time in seconds to wait before sending a DRO.

1
(4)
GNRC_RPL_P2P_MSG_TYPE_DRO_HANDLE

Message type for handling DRO sending.

1
(0x09A0)