Contiki-NG
|
The structure of a routing protocol driver. More...
#include <os/net/routing/routing.h>
Data Fields | |
void(* | init )(void) |
Initialize the routing protocol. | |
void(* | root_set_prefix )(uip_ipaddr_t *prefix, uip_ipaddr_t *iid) |
Set the prefix, for nodes that will operate as root. More... | |
int(* | root_start )(void) |
Set the node as root and start a network. More... | |
int(* | node_is_root )(void) |
Tells whether the node is a network root or not. More... | |
int(* | get_root_ipaddr )(uip_ipaddr_t *ipaddr) |
Returns the IPv6 address of the network root, if any. More... | |
int(* | get_sr_node_ipaddr )(uip_ipaddr_t *addr, const uip_sr_node_t *node) |
Returns the global IPv6 address of a source routing node. More... | |
void(* | leave_network )(void) |
Leave the network the node is part of. More... | |
int(* | node_has_joined )(void) |
Tells whether the node is currently part of a network. More... | |
int(* | node_is_reachable )(void) |
Tells whether the node is currently reachable as part of the network. More... | |
void(* | global_repair )(const char *str) |
Triggers a global topology repair. More... | |
void(* | local_repair )(const char *str) |
Triggers a RPL local topology repair. More... | |
bool(* | ext_header_remove )(void) |
Removes all extension headers that pertain to the routing protocol. More... | |
int(* | ext_header_update )(void) |
Adds/updates routing protocol extension headers to current uIP packet. More... | |
int(* | ext_header_hbh_update )(uint8_t *ext_buf, int opt_offset) |
Process and update the routing protocol hob-by-hop extention headers of the current uIP packet. More... | |
int(* | ext_header_srh_update )(void) |
Process and update SRH in-place, i.e. More... | |
int(* | ext_header_srh_get_next_hop )(uip_ipaddr_t *ipaddr) |
Look for next hop from SRH of current uIP packet. More... | |
void(* | link_callback )(const linkaddr_t *addr, int status, int numtx) |
Called by lower layers after every packet transmission. More... | |
void(* | neighbor_state_changed )(uip_ds6_nbr_t *nbr) |
Called by uIP to notify addition/removal of IPv6 neighbor entries. More... | |
void(* | drop_route )(uip_ds6_route_t *route) |
Called by uIP if it has decided to drop a route because. More... | |
uint8_t(* | is_in_leaf_mode )(void) |
Tells whether the protocol is in leaf mode. More... | |
void(* routing_driver::drop_route) (uip_ds6_route_t *route) |
int(* routing_driver::ext_header_hbh_update) (uint8_t *ext_buf, int opt_offset) |
Process and update the routing protocol hob-by-hop extention 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 |
bool(* routing_driver::ext_header_remove) (void) |
int(* routing_driver::ext_header_srh_get_next_hop) (uip_ipaddr_t *ipaddr) |
int(* routing_driver::ext_header_srh_update) (void) |
int(* routing_driver::ext_header_update) (void) |
int(* routing_driver::get_root_ipaddr) (uip_ipaddr_t *ipaddr) |
int(* routing_driver::get_sr_node_ipaddr) (uip_ipaddr_t *addr, const uip_sr_node_t *node) |
void(* routing_driver::global_repair) (const char *str) |
uint8_t(* routing_driver::is_in_leaf_mode) (void) |
void(* routing_driver::leave_network) (void) |
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(* routing_driver::local_repair) (const char *str) |
void(* routing_driver::neighbor_state_changed) (uip_ds6_nbr_t *nbr) |
Called by uIP to notify addition/removal of IPv6 neighbor entries.
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 |
int(* routing_driver::node_has_joined) (void) |
int(* routing_driver::node_is_reachable) (void) |
int(* routing_driver::node_is_root) (void) |
void(* routing_driver::root_set_prefix) (uip_ipaddr_t *prefix, uip_ipaddr_t *iid) |
Set the prefix, for nodes that will operate as 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. |