Go to the documentation of this file.
24 #ifndef NET_GNRC_RPL_STRUCTS_H
25 #define NET_GNRC_RPL_STRUCTS_H
41 #define GNRC_RPL_OPT_DODAG_CONF_LEN (14)
42 #define GNRC_RPL_OPT_PREFIX_INFO_LEN (30)
43 #define GNRC_RPL_OPT_TARGET_LEN (18)
44 #define GNRC_RPL_OPT_TRANSIT_INFO_LEN (4)
51 #define GNRC_RPL_DAO_D_BIT (1 << 6)
52 #define GNRC_RPL_DAO_K_BIT (1 << 7)
59 #define GNRC_RPL_DAO_ACK_D_BIT (1 << 7)
67 #define GNRC_RPL_REQ_DIO_OPT_DODAG_CONF_SHIFT (0)
68 #define GNRC_RPL_REQ_DIO_OPT_DODAG_CONF (1 << GNRC_RPL_REQ_DIO_OPT_DODAG_CONF_SHIFT)
69 #define GNRC_RPL_REQ_DIO_OPT_PREFIX_INFO_SHIFT (1)
70 #define GNRC_RPL_REQ_DIO_OPT_PREFIX_INFO (1 << GNRC_RPL_REQ_DIO_OPT_PREFIX_INFO_SHIFT)
79 typedef struct __attribute__((packed)) {
90 typedef struct __attribute__((packed)) {
107 typedef struct __attribute__((packed)) {
128 typedef struct __attribute__((packed)) {
139 typedef struct __attribute__((packed)) {
154 typedef struct __attribute__((packed)) {
167 typedef struct __attribute__((packed)) {
180 typedef struct __attribute__((packed)) {
194 typedef struct __attribute__((packed)) {
209 typedef struct __attribute__((packed)) {
239 struct gnrc_rpl_parent {
247 uint8_t link_metric_type;
306 void (*process_dio)(void);
312 struct gnrc_rpl_dodag {
318 uint8_t dio_interval_doubl;
321 uint8_t default_lifetime;
322 uint16_t lifetime_unit;
330 bool dao_ack_received;
337 struct gnrc_rpl_instance {
343 uint16_t min_hop_rank_inc;
344 uint16_t max_rank_inc;
DODAG Information Solicitation.
uint8_t path_lifetime
lifetime of routes
int16_t kernel_pid_t
Unique process identifier.
uint8_t length
option length without the first two bytes
ipv6_addr_t dodag_id
DODAG ID predicate.
uint8_t length
Option Length: 19 bytes.
uint8_t dao_sequence
sequence must be equal to the sequence from the DAO object
uint8_t k_d_flags
K and D flags.
A 32 bit integer in big endian aka network byte order.
uint8_t version_number
version number of the DODAG
Objective function representation.
uint8_t path_sequence
increased value for route updates
uint8_t length
option length without the first two bytes
uint8_t d_reserved
if set, indicates that the DODAG id should be included
network_uint16_t ocp
Objective Code Point.
uint8_t instance_id
id of the instance
Functions to work with different byte orders.
network_uint16_t max_rank_inc
allowable increase in rank
A 16 bit integer in big endian aka network byte order.
Data type to represent an IPv6 address.
uint8_t dio_redun
trickle k parameter
uint8_t dtsn
Destination Advertisement Trigger Sequence Number.
Definitions for IPv6 addresses.
uint8_t type
Option Type: 0x07.
uint8_t instance_id
id of the instance
Trickle timer interface definition.
uint8_t instance_id
id of the instance
uint8_t type
Option Type: 0x07.
struct gnrc_rpl_instance gnrc_rpl_instance_t
Instance representation.
Prefix Information Option.
ipv6_addr_t dodag_id
id of the dodag
uint8_t LAR_flags
flags and resereved
internal unpacked struct type for DIS solicited option insertion
uint8_t g_mop_prf
grounded, MOP, preferred flags
DODAG Configuration Option.
IPC-based evtimer definitions.
uint8_t prefix_len
prefix length
network_uint16_t lifetime_unit
unit in seconds
uint8_t length
Option Length: 19 bytes.
uint8_t path_control
limits the number of DAO parents
uint8_t VID_flags
V|I|D predicate options followed by 5 bit unused flags.
network_uint16_t rank
rank of the parent emitting the DIO
uint8_t e_flags
external flag indicates external routes
all state variables of a trickle timer
RPL-Option Generic Format.
ipv6_addr_t prefix
prefix used for Stateless Address Autoconfiguration
Destination Advertisement Object Acknowledgement.
uint8_t status
indicates completion
uint8_t dio_int_doubl
trickle Imax parameter
uint8_t dao_sequence
sequence of the DAO, needs to be used for DAO-ACK
network_uint16_t min_hop_rank_inc
DAGRank(rank) = floor(rank/MinHopRankIncrease)
uint8_t length
length of option, not including first two bytes
uint16_t ocp
objective code point
ipv6_addr_t dodag_id
DODAG ID predicate.
uint8_t prefix_length
number of valid leading bits in the IPv6 prefix
network_uint32_t valid_lifetime
valid lifetime
uint8_t instance_id
id of the instance
internal unpacked struct type for option insertion
uint8_t default_lifetime
lifetime of RPL routes (lifetime * lifetime_unit)
uint8_t length
Option Length, does not include the first two byte.
uint8_t length
Option Length, does not include the first two byte.
network_uint32_t pref_lifetime
preferred lifetime
DIS Solicited Information option.
ipv6_addr_t target
IPv6 prefix, address or multicast group.
uint8_t dio_int_min
trickle Imin parameter
uint32_t reserved
reserved
struct gnrc_rpl_parent gnrc_rpl_parent_t
Parent representation.
uint8_t type
Option Type: 0x04.
uint8_t instance_id
id of the instance
uint8_t length
option length without the first two bytes
uint8_t version_number
version number of the DODAG
struct gnrc_rpl_dodag gnrc_rpl_dodag_t
DODAG representation.
uint8_t VID_flags
V|I|D predicate options followed by 5 bit unused flags.
uint8_t version_number
version number of the DODAG
Destination Advertisement Object.