Implementation of P2P-RPL. More...
Implementation of P2P-RPL.
Files | |
file | p2p.h |
Definititions for P2P-RPL. | |
file | p2p_dodag.h |
DODAG-related functions for P2P-RPL. | |
file | p2p_structs.h |
P2P-RPL data structs. | |
Macros | |
#define | GNRC_RPL_P2P_MOP (0x04) |
P2P-RPL Mode of Operation. | |
#define | GNRC_RPL_P2P_LIFETIME (0x02) |
Default lifetime of the P2P-RPL DODAG, encoded. More... | |
#define | GNRC_RPL_P2P_COMPR (0) |
Number of elided prefix octets from the target field and address vector. More... | |
#define | GNRC_RPL_P2P_MAX_RANK (0) |
Maximum rank in the DODAG during the route discovery. More... | |
#define | GNRC_RPL_P2P_OPT_RDO (0x0A) |
P2P-RPL RDO DIO option type. More... | |
#define | GNRC_RPL_P2P_ICMPV6_CODE_DRO (0x04) |
DRO ICMPv6 code. More... | |
#define | GNRC_RPL_P2P_ICMPV6_CODE_DRO_ACK (0x05) |
DRO-ACK ICMPv6 code. More... | |
#define | GNRC_RPL_P2P_DRO_DELAY (4) |
Time in seconds to wait before sending a DRO. | |
#define | GNRC_RPL_P2P_MSG_TYPE_DRO_HANDLE (0x09A0) |
Message type for handling DRO sending. | |
Functions | |
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. More... | |
gnrc_pktsnip_t * | gnrc_rpl_p2p_rdo_build (gnrc_pktsnip_t *pkt, gnrc_rpl_p2p_ext_t *p2p_ext) |
Build an RDO. More... | |
void | gnrc_rpl_p2p_rdo_parse (gnrc_rpl_p2p_opt_rdo_t *rdo, gnrc_rpl_p2p_ext_t *p2p_ext) |
Parse an RDO. More... | |
void | gnrc_rpl_p2p_send_DRO (gnrc_pktsnip_t *pkt, gnrc_rpl_p2p_ext_t *p2p_ext) |
Send a DRO control message. More... | |
void | gnrc_rpl_p2p_recv_DRO (gnrc_pktsnip_t *pkt, ipv6_addr_t *src) |
Receive and parse a DRO control message. More... | |
void | gnrc_rpl_p2p_update (void) |
Updates the lifetime of the P2P Dodag and the delay of the DRO. | |
Variables | |
const uint8_t | gnrc_rpl_p2p_lifetime_lookup [4] |
Lookup table used to decode/encode the lifetime values. | |
Trickle parameters | |
#define | GNRC_RPL_P2P_DEFAULT_DIO_INTERVAL_MIN (6) |
#define | GNRC_RPL_P2P_DEFAULT_DIO_REDUNDANCY_CONSTANT (1) |
#define GNRC_RPL_P2P_COMPR (0) |
Number of elided prefix octets from the target field and address vector.
#define GNRC_RPL_P2P_ICMPV6_CODE_DRO (0x04) |
DRO ICMPv6 code.
#define GNRC_RPL_P2P_ICMPV6_CODE_DRO_ACK (0x05) |
DRO-ACK ICMPv6 code.
#define GNRC_RPL_P2P_LIFETIME (0x02) |
Default lifetime of the P2P-RPL DODAG, encoded.
#define GNRC_RPL_P2P_MAX_RANK (0) |
Maximum rank in the DODAG during the route discovery.
#define GNRC_RPL_P2P_OPT_RDO (0x0A) |
P2P-RPL RDO DIO option type.
gnrc_pktsnip_t* gnrc_rpl_p2p_rdo_build | ( | gnrc_pktsnip_t * | pkt, |
gnrc_rpl_p2p_ext_t * | p2p_ext | ||
) |
Build an RDO.
[in,out] | pkt | The RDO will be added to the pkt |
[in] | 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.
[in] | rdo | The RDO to parse from. |
[in] | p2p_ext | Pointer to the P2P-RPL DODAG extension |
void gnrc_rpl_p2p_recv_DRO | ( | gnrc_pktsnip_t * | pkt, |
ipv6_addr_t * | src | ||
) |
Receive and parse a DRO control message.
[in] | pkt | The ICMPv6 packet to parse. |
[in] | src | The source address of the IPv6 packet. |
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.
[in] | instance_id | Id of the instance |
[in] | dodag_id | Id of the DODAG |
[in] | target | Target of the P2P-RPL routes discovery |
[in] | gen_inst_id | Flag indicating whether to generate a local instance id. If true, instance_id will be ignored |
void gnrc_rpl_p2p_send_DRO | ( | gnrc_pktsnip_t * | pkt, |
gnrc_rpl_p2p_ext_t * | p2p_ext | ||
) |
Send a DRO control message.
[in] | pkt | The ICMPv6 packet to send. Can be NULL. |
[in] | p2p_ext | Pointer to the P2P-RPL DODAG extension |