Contiki-NG
|
RPL-lite is a lightweight implementation of RPL tailored for reliability. More...
Files | |
file | rpl-conf.h |
Public configuration and API declarations for ContikiRPL. | |
file | rpl-const.h |
Constants for RPL. | |
file | rpl-dag-root.c |
DAG root utility functions for RPL. | |
file | rpl-dag-root.h |
DAG root utility functions for RPL. | |
file | rpl-dag.c |
Logic for Directed Acyclic Graphs in RPL. | |
file | rpl-dag.h |
Header file for rpl-dag module. | |
file | rpl-ext-header.c |
Management of extension headers for ContikiRPL. | |
file | rpl-ext-header.h |
Header file for rpl-ext-header. | |
file | rpl-icmp6.c |
ICMP6 I/O for RPL control messages. | |
file | rpl-icmp6.h |
Header file for rpl-ext-header. | |
file | rpl-mrhof.c |
The Minimum Rank with Hysteresis Objective Function (MRHOF), RFC6719. | |
file | rpl-neighbor.c |
Logic for DAG neighbors in RPL. | |
file | rpl-neighbor.h |
Header file for rpl-neighbor module. | |
file | rpl-of0.c |
An implementation of RPL's objective function 0, RFC6552. | |
file | rpl-timers.c |
RPL timer management. | |
file | rpl-timers.h |
Header file for rpl-timers module. | |
file | rpl-types.h |
RPL types and macros. | |
file | rpl.c |
ContikiRPL, an implementation of RPL: IPv6 Routing Protocol for Low-Power and Lossy Networks (IETF RFC 6550) | |
Data Structures | |
struct | rpl_metric_object_energy |
Structure for RPL energy metric. More... | |
struct | rpl_metric_container |
Logical representation of a DAG Metric Container. More... | |
struct | rpl_prefix |
RPL prefix information. More... | |
struct | rpl_nbr |
All information related to a RPL neighbor. More... | |
struct | rpl_of |
API for RPL objective functions (OF) More... | |
struct | rpl_dag |
RPL DAG structure. More... | |
struct | rpl_instance |
RPL instance structure. More... | |
Macros | |
#define | uip_create_linklocal_rplnodes_mcast(addr) uip_ip6addr((addr), 0xff02, 0, 0, 0, 0, 0, 0, 0x001a) |
Set IP address addr to the link-local, all-rpl-nodes multicast address. More... | |
#define | uip_is_addr_linklocal_rplnodes_mcast(addr) |
Is IPv6 address addr the link-local, all-RPL-nodes multicast address? | |
#define | RPL_LIFETIME(lifetime) |
Compute lifetime, accounting for the lifetime unit. | |
#define | ROOT_RANK curr_instance.min_hoprankinc |
Rank of a root node. More... | |
#define | DAG_RANK(fixpt_rank) ((fixpt_rank) / curr_instance.min_hoprankinc) |
Return DAG RANK as per RFC 6550 (rank divided by min_hoprankinc) | |
Enumerations | |
enum | rpl_dag_state |
RPL DAG states. | |
Functions | |
void | rpl_dag_root_print_links (const char *str) |
Prints a summary of all routing links. More... | |
void | rpl_dag_root_set_prefix (uip_ipaddr_t *prefix, uip_ipaddr_t *iid) |
Set a prefix in case the node is later set as dag root. More... | |
int | rpl_dag_root_start (void) |
Set the node as root and start a DAG. More... | |
int | rpl_dag_root_is_root (void) |
Tells whether we are DAG root or not. More... | |
const char * | rpl_dag_state_to_str (enum rpl_dag_state state) |
Returns a textual description of the current DAG state. More... | |
int | rpl_dag_get_root_ipaddr (uip_ipaddr_t *ipaddr) |
Returns the IPv6 address of the RPL DAG root, if any. More... | |
void | rpl_dag_leave (void) |
Leaves the current DAG. More... | |
void | rpl_dag_poison_and_leave (void) |
Start poisoning and leave the DAG after a delay. More... | |
void | rpl_dag_periodic (unsigned seconds) |
A function called periodically. More... | |
int | rpl_is_addr_in_our_dag (const uip_ipaddr_t *addr) |
Tells whether a given global IPv6 address is in our current DAG. More... | |
rpl_instance_t * | rpl_get_default_instance (void) |
Returns pointer to the default instance (for compatibility with legagy RPL code) More... | |
rpl_dag_t * | rpl_get_any_dag (void) |
Returns pointer to any DAG (for compatibility with legagy RPL code) More... | |
void | rpl_refresh_routes (const char *str) |
Triggers a route fresh via DTSN increment. More... | |
void | rpl_global_repair (const char *str) |
Triggers a RPL global repair. More... | |
void | rpl_local_repair (const char *str) |
Triggers a RPL local repair. More... | |
int | rpl_dag_ready_to_advertise (void) |
Tells whether RPL is ready to advertise the DAG. More... | |
void | rpl_dag_update_state (void) |
Updates RPL internal state: selects preferred parent, updates rank & metreic container, triggers control traffic accordingly and updates uIP6 internal state. | |
void | rpl_process_dio (uip_ipaddr_t *from, rpl_dio_t *dio) |
Processes incoming DIO. More... | |
void | rpl_process_dis (uip_ipaddr_t *from, int is_multicast) |
Processes incoming DIS. More... | |
void | rpl_process_dao (uip_ipaddr_t *from, rpl_dao_t *dao) |
Processes incoming DAO. More... | |
int | rpl_process_hbh (rpl_nbr_t *sender, uint16_t sender_rank, int loop_detected, int rank_error_signaled) |
Processes Hop-by-Hop (HBH) Extension Header of a packet currently being forwrded. More... | |
void | rpl_dag_init_root (uint8_t instance_id, uip_ipaddr_t *dag_id, uip_ipaddr_t *prefix, unsigned prefix_len, uint8_t flags) |
Initializes DAG internal structure for a root node. More... | |
void | rpl_dag_init (void) |
Initializes rpl-dag module. | |
void | rpl_process_dao_ack (uint8_t sequence, uint8_t status) |
Processes incoming DAO-ACK. More... | |
int | rpl_ext_header_srh_get_next_hop (uip_ipaddr_t *ipaddr) |
Look for next hop from SRH of current uIP packet. More... | |
int | rpl_ext_header_srh_update (void) |
Process and update SRH in-place, i.e. More... | |
int | rpl_ext_header_hbh_update (uint8_t *ext_buf, int opt_offset) |
Process and update the RPL hop-by-hop extension headers of the current uIP packet. More... | |
int | rpl_ext_header_update (void) |
Adds/updates all RPL extension headers to current uIP packet. More... | |
bool | rpl_ext_header_remove (void) |
Removes all RPL extension headers. More... | |
uip_ds6_nbr_t * | rpl_icmp6_update_nbr_table (uip_ipaddr_t *from, nbr_table_reason_t reason, void *data) |
Updates IPv6 neighbor cache on incoming link-local RPL ICMPv6 messages. More... | |
void | rpl_icmp6_dis_output (uip_ipaddr_t *addr) |
Creates an ICMPv6 DIS packet and sends it. More... | |
void | rpl_icmp6_dio_output (uip_ipaddr_t *uc_addr) |
Creates an ICMPv6 DIO packet and sends it. More... | |
void | rpl_icmp6_dao_output (uint8_t lifetime) |
Creates an ICMPv6 DAO packet and sends it to the root, advertising the current preferred parent, and with our global address as prefix. More... | |
void | rpl_icmp6_init (void) |
Initializes rpl-icmp6 module, registers ICMPv6 handlers for all RPL ICMPv6 messages: DIO, DIS, DAO and DAO-ACK. | |
void | rpl_icmp6_dao_ack_output (uip_ipaddr_t *dest, uint8_t sequence, uint8_t status) |
Creates an ICMPv6 DAO-ACK packet and sends it to the originator of the ACK. More... | |
int | rpl_neighbor_snprint (char *buf, int buflen, rpl_nbr_t *nbr) |
Print a textual description of RPL neighbor into a string. More... | |
void | rpl_neighbor_print_list (const char *str) |
Prints a summary of all RPL neighbors and their properties. More... | |
int | rpl_neighbor_count (void) |
Returns the number of nodes in the RPL neighbor table. More... | |
rpl_nbr_t * | rpl_neighbor_get_from_lladdr (uip_lladdr_t *addr) |
Returns a neighbor from its link-layer address. More... | |
int | rpl_neighbor_is_acceptable_parent (rpl_nbr_t *nbr) |
Tells whether a nbr is acceptable as per the OF's definition. More... | |
uint16_t | rpl_neighbor_get_link_metric (rpl_nbr_t *nbr) |
Returns a neighbor's link metric. More... | |
rpl_rank_t | rpl_neighbor_rank_via_nbr (rpl_nbr_t *nbr) |
Returns our rank if selecting a given parent as preferred parent. More... | |
const linkaddr_t * | rpl_neighbor_get_lladdr (rpl_nbr_t *nbr) |
Returns a neighbors's link-layer address. More... | |
uip_ipaddr_t * | rpl_neighbor_get_ipaddr (rpl_nbr_t *nbr) |
Returns a neighbor's (link-local) IPv6 address. More... | |
const struct link_stats * | rpl_neighbor_get_link_stats (rpl_nbr_t *nbr) |
Returns a neighbor's link statistics. More... | |
int | rpl_neighbor_is_fresh (rpl_nbr_t *nbr) |
Tells wether we have fresh link information towards a given neighbor. More... | |
int | rpl_neighbor_is_parent (rpl_nbr_t *nbr) |
Tells whether a neighbor is in the parent set. More... | |
void | rpl_neighbor_set_preferred_parent (rpl_nbr_t *nbr) |
Set current RPL preferred parent and update DS6 default route accordingly. More... | |
void | rpl_neighbor_remove_all (void) |
Empty the RPL neighbor table. | |
rpl_nbr_t * | rpl_neighbor_get_from_ipaddr (uip_ipaddr_t *addr) |
Returns a neighbor from its link-local IPv6 address. More... | |
rpl_nbr_t * | rpl_neighbor_select_best (void) |
Returns the best candidate for preferred parent. More... | |
void | rpl_neighbor_init (void) |
Initialize rpl-dag-neighbor module. | |
void | rpl_timers_schedule_periodic_dis (void) |
Schedule periodic DIS with a random delay based on RPL_DIS_INTERVAL, until we join a DAG. | |
void | rpl_timers_dio_reset (const char *str) |
Reset DIO Trickle timer. More... | |
void | rpl_timers_schedule_unicast_dio (rpl_nbr_t *target) |
Schedule unicast DIO with no delay. | |
void | rpl_timers_schedule_dao (void) |
Schedule a DAO with random delay based on RPL_DAO_DELAY. | |
void | rpl_timers_unschedule_leaving (void) |
Cancel scheduled leaving if any. | |
void | rpl_timers_schedule_leaving (void) |
Schedule leaving after RPL_DELAY_BEFORE_LEAVING. | |
void | rpl_timers_init (void) |
Initialize rpl-timers module. | |
void | rpl_timers_stop_dag_timers (void) |
Stop all timers related to the DAG. | |
void | rpl_timers_unschedule_state_update (void) |
Cancelled any scheduled state update. | |
void | rpl_timers_schedule_state_update (void) |
Schedule a state update ASAP. More... | |
void | rpl_timers_schedule_dao_ack (uip_ipaddr_t *target, uint16_t sequence) |
Schedule a DAO-ACK with no delay. | |
void | rpl_timers_notify_dao_ack (void) |
Let the rpl-timers module know that the last DAO was ACKed. | |
void | rpl_schedule_probing (void) |
Schedule probing with delay RPL_PROBING_DELAY_FUNC() | |
void | rpl_schedule_probing_now (void) |
Schedule probing within a few seconds. | |
int | rpl_lollipop_greater_than (int a, int b) |
Greater-than function for a lollipop counter. More... | |
const uip_ipaddr_t * | rpl_get_global_address (void) |
Get one of the node's global addresses. More... | |
void | rpl_link_callback (const linkaddr_t *addr, int status, int numtx) |
Called by lower layers after every packet transmission. More... | |
int | rpl_has_joined (void) |
Tells whether the node has joined a network or not. More... | |
int | rpl_is_reachable (void) |
Get the RPL's best guess on if we are reachable via have downward route or not. More... | |
void | rpl_reset_prefix (rpl_prefix_t *last_prefix) |
Removes current prefx. More... | |
int | rpl_set_prefix_from_addr (uip_ipaddr_t *addr, unsigned len, uint8_t flags) |
Set prefix from an IPv6 address. More... | |
int | rpl_set_prefix (rpl_prefix_t *prefix) |
Set prefix from an prefix data structure (from DIO) More... | |
void | rpl_set_leaf_only (uint8_t value) |
Changes the value of the rpl_leaf_only flag, which determines if a node acts only as a leaf in the network. More... | |
uint8_t | rpl_get_leaf_only (void) |
Get the value of the rpl_leaf_only flag. More... | |
RPL-lite is a lightweight implementation of RPL tailored for reliability.
Supports only non-storing mode, one instance and one DAG.
#define ROOT_RANK curr_instance.min_hoprankinc |
Rank of a root node.
Definition at line 78 of file rpl-types.h.
#define uip_create_linklocal_rplnodes_mcast | ( | addr | ) | uip_ip6addr((addr), 0xff02, 0, 0, 0, 0, 0, 0, 0x001a) |
Set IP address addr to the link-local, all-rpl-nodes multicast address.
Definition at line 54 of file rpl-types.h.
int rpl_dag_get_root_ipaddr | ( | uip_ipaddr_t * | ipaddr | ) |
void rpl_dag_init_root | ( | uint8_t | instance_id, |
uip_ipaddr_t * | dag_id, | ||
uip_ipaddr_t * | prefix, | ||
unsigned | prefix_len, | ||
uint8_t | flags | ||
) |
void rpl_dag_periodic | ( | unsigned | seconds | ) |
A function called periodically.
Used to age the DAG (decrease lifetime and expire DAG accordingly)
seconds | The number of seconds elapsted since last call |
Definition at line 138 of file rpl-dag.c.
References RPL_LIFETIME.
void rpl_dag_poison_and_leave | ( | void | ) |
int rpl_dag_ready_to_advertise | ( | void | ) |
Tells whether RPL is ready to advertise the DAG.
Definition at line 255 of file rpl-dag.c.
Referenced by rpl_timers_dio_reset().
int rpl_dag_root_is_root | ( | void | ) |
Tells whether we are DAG root or not.
Definition at line 158 of file rpl-dag-root.c.
References rpl_get_default_instance().
Referenced by rpl_dag_root_print_links(), rpl_global_repair(), rpl_has_joined(), rpl_neighbor_select_best(), rpl_process_dio(), and rpl_refresh_routes().
void rpl_dag_root_print_links | ( | const char * | str | ) |
Prints a summary of all routing links.
str | A descriptive text on the caller |
Definition at line 54 of file rpl-dag-root.c.
References rpl_dag_root_is_root(), and uip_sr_num_nodes().
void rpl_dag_root_set_prefix | ( | uip_ipaddr_t * | prefix, |
uip_ipaddr_t * | iid | ||
) |
Set a prefix in case the node is later set as dag root.
prefix | The prefix. If NULL, uip_ds6_default_prefix() is used instead |
iid | The IID. If NULL, it will be built from uip_ds6_set_addr_iid. |
Definition at line 113 of file rpl-dag-root.c.
int rpl_dag_root_start | ( | void | ) |
Set the node as root and start a DAG.
Definition at line 124 of file rpl-dag-root.c.
const char * rpl_dag_state_to_str | ( | enum rpl_dag_state | state | ) |
int rpl_ext_header_hbh_update | ( | uint8_t * | ext_buf, |
int | opt_offset | ||
) |
Process and update the RPL hop-by-hop extension headers of the current uIP packet.
ext_buf | A pointer to the ext header buffer |
opt_offset | The offset within the extension header where the option starts |
Definition at line 319 of file rpl-ext-header.c.
bool rpl_ext_header_remove | ( | void | ) |
Removes all RPL extension headers.
Definition at line 470 of file rpl-ext-header.c.
int rpl_ext_header_srh_get_next_hop | ( | uip_ipaddr_t * | ipaddr | ) |
Look for next hop from SRH of current uIP packet.
ipaddr | A pointer to the address where to store the next hop. |
Definition at line 58 of file rpl-ext-header.c.
int rpl_ext_header_srh_update | ( | void | ) |
Process and update SRH in-place, i.e.
internal address swapping as per RFC6554
Definition at line 91 of file rpl-ext-header.c.
int rpl_ext_header_update | ( | void | ) |
Adds/updates all RPL extension headers to current uIP packet.
Definition at line 442 of file rpl-ext-header.c.
rpl_dag_t* rpl_get_any_dag | ( | void | ) |
rpl_instance_t* rpl_get_default_instance | ( | void | ) |
const uip_ipaddr_t* rpl_get_global_address | ( | void | ) |
uint8_t rpl_get_leaf_only | ( | void | ) |
void rpl_global_repair | ( | const char * | str | ) |
Triggers a RPL global repair.
str | A textual description of the cause for triggering a repair |
Definition at line 204 of file rpl-dag.c.
References rpl_dag_root_is_root().
int rpl_has_joined | ( | void | ) |
Tells whether the node has joined a network or not.
1 | if we have joined a network, 0 if not. |
Definition at line 120 of file rpl.c.
References rpl_dag_root_is_root().
void rpl_icmp6_dao_ack_output | ( | uip_ipaddr_t * | dest, |
uint8_t | sequence, | ||
uint8_t | status | ||
) |
Creates an ICMPv6 DAO-ACK packet and sends it to the originator of the ACK.
dest | The DAO-ACK destination (was source of the DAO) |
sequence | The sequence number of the DAO being ACKed |
status | The status of the DAO-ACK (see RPL_DAO_ACK_* defines) |
void rpl_icmp6_dao_output | ( | uint8_t | lifetime | ) |
Creates an ICMPv6 DAO packet and sends it to the root, advertising the current preferred parent, and with our global address as prefix.
lifetime | The DAO lifetime. Use 0 to send a No-path DAO |
Definition at line 543 of file rpl-icmp6.c.
void rpl_icmp6_dio_output | ( | uip_ipaddr_t * | uc_addr | ) |
Creates an ICMPv6 DIO packet and sends it.
Can be unicast or multicast
uc_addr | The link-local address of the target host, if any. Else, a multicast DIO will be sent. |
Definition at line 332 of file rpl-icmp6.c.
void rpl_icmp6_dis_output | ( | uip_ipaddr_t * | addr | ) |
Creates an ICMPv6 DIS packet and sends it.
Can be unicast or multicast.
addr | The link-local address of the target host, if any. Else, a multicast DIS will be sent. |
Definition at line 150 of file rpl-icmp6.c.
uip_ds6_nbr_t* rpl_icmp6_update_nbr_table | ( | uip_ipaddr_t * | from, |
nbr_table_reason_t | reason, | ||
void * | data | ||
) |
Updates IPv6 neighbor cache on incoming link-local RPL ICMPv6 messages.
from | The source link-local IPv6 address |
reason | What triggered the update (maps to RPL packet types) |
data | Generic pointer, used for instance to store parsed DIO data |
Definition at line 112 of file rpl-icmp6.c.
int rpl_is_addr_in_our_dag | ( | const uip_ipaddr_t * | addr | ) |
int rpl_is_reachable | ( | void | ) |
void rpl_link_callback | ( | const linkaddr_t * | addr, |
int | status, | ||
int | numtx | ||
) |
Called by lower layers after every packet transmission.
addr | The link-layer addrress of the packet destination |
status | The transmission status (see os/net/mac/mac.h) |
numtx | The total number of transmission attempts |
void rpl_local_repair | ( | const char * | str | ) |
int rpl_lollipop_greater_than | ( | int | a, |
int | b | ||
) |
int rpl_neighbor_count | ( | void | ) |
Returns the number of nodes in the RPL neighbor table.
Definition at line 168 of file rpl-neighbor.c.
rpl_nbr_t * rpl_neighbor_get_from_ipaddr | ( | uip_ipaddr_t * | addr | ) |
Returns a neighbor from its link-local IPv6 address.
addr | The link-local IPv6 address |
Definition at line 332 of file rpl-neighbor.c.
References uip_ds6_nbr_get_ll(), and uip_ds6_nbr_lookup().
rpl_nbr_t * rpl_neighbor_get_from_lladdr | ( | uip_lladdr_t * | addr | ) |
Returns a neighbor from its link-layer address.
addr | The link-layer address |
Definition at line 213 of file rpl-neighbor.c.
uip_ipaddr_t * rpl_neighbor_get_ipaddr | ( | rpl_nbr_t * | nbr | ) |
Returns a neighbor's (link-local) IPv6 address.
nbr | The neighbor |
Definition at line 252 of file rpl-neighbor.c.
References rpl_neighbor_get_lladdr(), and uip_ds6_nbr_ipaddr_from_lladdr().
uint16_t rpl_neighbor_get_link_metric | ( | rpl_nbr_t * | nbr | ) |
Returns a neighbor's link metric.
nbr | The neighbor |
Definition at line 228 of file rpl-neighbor.c.
const struct link_stats * rpl_neighbor_get_link_stats | ( | rpl_nbr_t * | nbr | ) |
Returns a neighbor's link statistics.
nbr | The neighbor |
Definition at line 259 of file rpl-neighbor.c.
References rpl_neighbor_get_lladdr().
Referenced by rpl_neighbor_is_fresh().
const linkaddr_t * rpl_neighbor_get_lladdr | ( | rpl_nbr_t * | nbr | ) |
Returns a neighbors's link-layer address.
nbr | The neighbor |
Definition at line 246 of file rpl-neighbor.c.
Referenced by rpl_neighbor_get_ipaddr(), and rpl_neighbor_get_link_stats().
int rpl_neighbor_is_acceptable_parent | ( | rpl_nbr_t * | nbr | ) |
Tells whether a nbr is acceptable as per the OF's definition.
nbr | The neighbor |
Definition at line 219 of file rpl-neighbor.c.
int rpl_neighbor_is_fresh | ( | rpl_nbr_t * | nbr | ) |
Tells wether we have fresh link information towards a given neighbor.
nbr | The neighbor |
Definition at line 266 of file rpl-neighbor.c.
References rpl_neighbor_get_link_stats().
int rpl_neighbor_is_parent | ( | rpl_nbr_t * | nbr | ) |
Tells whether a neighbor is in the parent set.
nbr | The neighbor to be tested |
Definition at line 273 of file rpl-neighbor.c.
void rpl_neighbor_print_list | ( | const char * | str | ) |
Prints a summary of all RPL neighbors and their properties.
str | A descriptive text on the caller |
Definition at line 143 of file rpl-neighbor.c.
rpl_rank_t rpl_neighbor_rank_via_nbr | ( | rpl_nbr_t * | nbr | ) |
Returns our rank if selecting a given parent as preferred parent.
nbr | The neighbor |
Definition at line 237 of file rpl-neighbor.c.
rpl_nbr_t * rpl_neighbor_select_best | ( | void | ) |
Returns the best candidate for preferred parent.
Definition at line 378 of file rpl-neighbor.c.
References rpl_dag_root_is_root().
void rpl_neighbor_set_preferred_parent | ( | rpl_nbr_t * | nbr | ) |
Set current RPL preferred parent and update DS6 default route accordingly.
nbr | The new preferred parent |
Definition at line 279 of file rpl-neighbor.c.
int rpl_neighbor_snprint | ( | char * | buf, |
int | buflen, | ||
rpl_nbr_t * | nbr | ||
) |
Print a textual description of RPL neighbor into a string.
buf | The buffer where to write content |
buflen | The buffer len |
nbr | A pointer to a RPL neighbor that will be written to the buffer |
Definition at line 90 of file rpl-neighbor.c.
void rpl_process_dao | ( | uip_ipaddr_t * | from, |
rpl_dao_t * | dao | ||
) |
Processes incoming DAO.
from | The IPv6 address of the originator |
dao | A pointer to a parsed DAO |
Definition at line 633 of file rpl-dag.c.
References uip_sr_expire_parent().
void rpl_process_dao_ack | ( | uint8_t | sequence, |
uint8_t | status | ||
) |
Processes incoming DAO-ACK.
sequence | The DAO-ACK sequence number |
status | The DAO-ACK status (see RPL_DAO_ACK_* defines) |
void rpl_process_dio | ( | uip_ipaddr_t * | from, |
rpl_dio_t * | dio | ||
) |
Processes incoming DIO.
from | The IPv6 address of the originator |
dio | A pointer to a parsed DIO |
Definition at line 600 of file rpl-dag.c.
References rpl_dag_root_is_root().
void rpl_process_dis | ( | uip_ipaddr_t * | from, |
int | is_multicast | ||
) |
Processes incoming DIS.
from | The IPv6 address of the originator |
is_multicast | Set to 1 for multicast DIS, 0 for unicast DIS |
Definition at line 619 of file rpl-dag.c.
References rpl_icmp6_update_nbr_table(), and rpl_timers_dio_reset().
int rpl_process_hbh | ( | rpl_nbr_t * | sender, |
uint16_t | sender_rank, | ||
int | loop_detected, | ||
int | rank_error_signaled | ||
) |
Processes Hop-by-Hop (HBH) Extension Header of a packet currently being forwrded.
sender | The IPv6 address of the originator |
sender_rank | The rank advertised by the sender in the HBH header |
loop_detected | 1 if we could detect a loop while forwarding, 0 otherwise |
rank_error_signaled | 1 if the HBH header advertises a rank error, 0 otherwise |
Definition at line 680 of file rpl-dag.c.
References rpl_timers_dio_reset().
void rpl_refresh_routes | ( | const char * | str | ) |
Triggers a route fresh via DTSN increment.
str | a textual description of the cause for refresh |
Definition at line 189 of file rpl-dag.c.
References rpl_dag_root_is_root().
void rpl_reset_prefix | ( | rpl_prefix_t * | last_prefix | ) |
void rpl_set_leaf_only | ( | uint8_t | value | ) |
int rpl_set_prefix | ( | rpl_prefix_t * | prefix | ) |
int rpl_set_prefix_from_addr | ( | uip_ipaddr_t * | addr, |
unsigned | len, | ||
uint8_t | flags | ||
) |
void rpl_timers_dio_reset | ( | const char * | str | ) |
Reset DIO Trickle timer.
str | A textual description of caused the DIO timer reset |
Definition at line 150 of file rpl-timers.c.
References rpl_dag_ready_to_advertise().
Referenced by rpl_process_dis(), and rpl_process_hbh().
void rpl_timers_schedule_state_update | ( | void | ) |
Schedule a state update ASAP.
Useful to force an update from a context where updating directly would be unsafe.
Definition at line 563 of file rpl-timers.c.