Data Structures | |
struct | rpl_route_entry |
struct | uip_ds6_defrt |
An entry in the default router list. More... | |
struct | uip_ds6_notification |
struct | uip_ds6_route |
An entry in the routing table. More... | |
struct | uip_ds6_route_neighbor_route |
A neighbor route list entry, used on the uip_ds6_route->neighbor_routes->route_list list. More... | |
struct | uip_ds6_route_neighbor_routes |
The neighbor routes hold a list of routing table entries that are attached to a specific neihbor. More... | |
Macros | |
#define | UIP_DS6_NOTIFICATION_DEFRT_ADD 0 |
#define | UIP_DS6_NOTIFICATION_DEFRT_RM 1 |
#define | UIP_DS6_NOTIFICATION_ROUTE_ADD 2 |
#define | UIP_DS6_NOTIFICATION_ROUTE_RM 3 |
#define | UIP_DS6_NOTIFICATIONS 1 |
#define | UIP_DS6_ROUTE_NB 4 |
#define | UIP_DS6_ROUTE_STATE_TYPE rpl_route_entry_t |
define some additional RPL related route state and neighbor callback for RPL - if not a DS6_ROUTE_STATE is already set More... | |
Typedefs | |
typedef struct rpl_route_entry | rpl_route_entry_t |
typedef struct uip_ds6_defrt | uip_ds6_defrt_t |
An entry in the default router list. More... | |
typedef void(* | uip_ds6_notification_callback )(int event, uip_ipaddr_t *route, uip_ipaddr_t *nexthop, int num_routes) |
typedef struct uip_ds6_route | uip_ds6_route_t |
An entry in the routing table. More... | |
Functions | |
void | uip_ds6_notification_add (struct uip_ds6_notification *n, uip_ds6_notification_callback c) |
void | uip_ds6_notification_rm (struct uip_ds6_notification *n) |
void | uip_ds6_route_init (void) |
Default router list basic routines | |
uip_ds6_defrt_t * | uip_ds6_defrt_add (uip_ipaddr_t *ipaddr, unsigned long interval) |
void | uip_ds6_defrt_rm (uip_ds6_defrt_t *defrt) |
uip_ds6_defrt_t * | uip_ds6_defrt_lookup (uip_ipaddr_t *ipaddr) |
uip_ipaddr_t * | uip_ds6_defrt_choose (void) |
void | uip_ds6_defrt_periodic (void) |
Routing Table basic routines | |
uip_ds6_route_t * | uip_ds6_route_lookup (uip_ipaddr_t *destipaddr) |
uip_ds6_route_t * | uip_ds6_route_add (uip_ipaddr_t *ipaddr, uint8_t length, uip_ipaddr_t *next_hop) |
void | uip_ds6_route_rm (uip_ds6_route_t *route) |
void | uip_ds6_route_rm_by_nexthop (uip_ipaddr_t *nexthop) |
uip_ipaddr_t * | uip_ds6_route_nexthop (uip_ds6_route_t *) |
int | uip_ds6_route_num_routes (void) |
uip_ds6_route_t * | uip_ds6_route_head (void) |
uip_ds6_route_t * | uip_ds6_route_next (uip_ds6_route_t *) |
#define UIP_DS6_NOTIFICATION_DEFRT_ADD 0 |
Referenced by route_callback(), and uip_ds6_defrt_add().
#define UIP_DS6_NOTIFICATION_DEFRT_RM 1 |
Referenced by uip_ds6_defrt_rm().
#define UIP_DS6_NOTIFICATION_ROUTE_ADD 2 |
Referenced by uip_ds6_route_add().
#define UIP_DS6_NOTIFICATION_ROUTE_RM 3 |
Referenced by uip_ds6_route_rm().
#define UIP_DS6_NOTIFICATIONS 1 |
#define UIP_DS6_ROUTE_NB 4 |
Referenced by make_routes_roomfor(), and uip_ds6_init().
#define UIP_DS6_ROUTE_STATE_TYPE rpl_route_entry_t |
define some additional RPL related route state and neighbor callback for RPL - if not a DS6_ROUTE_STATE is already set
Referenced by uip_ds6_route_add().
typedef struct rpl_route_entry rpl_route_entry_t |
typedef struct uip_ds6_defrt uip_ds6_defrt_t |
An entry in the default router list.
typedef void(* uip_ds6_notification_callback)(int event, uip_ipaddr_t *route, uip_ipaddr_t *nexthop, int num_routes) |
typedef struct uip_ds6_route uip_ds6_route_t |
An entry in the routing table.
uip_ds6_defrt_t* uip_ds6_defrt_add | ( | uip_ipaddr_t * | ipaddr, |
unsigned long | interval | ||
) |
References ANNOTATE, uip_ds6_defrt::ipaddr, uip_ds6_defrt::isinfinite, uip_ds6_defrt::lifetime, list_push(), memb_alloc(), NULL, PRINT6ADDR, PRINTF, stimer_set(), uip_ip6addr_t::u8, uip_create_unspecified, uip_ds6_defrt_lookup(), UIP_DS6_NOTIFICATION_DEFRT_ADD, and uip_ipaddr_copy.
Referenced by ra_input(), rpl_process_dio(), rpl_set_default_route(), and simple_rpl_init_dag().
uip_ipaddr_t* uip_ds6_defrt_choose | ( | void | ) |
References addr, uip_ds6_defrt::ipaddr, list_head(), list_item_next(), NBR_INCOMPLETE, NULL, PRINT6ADDR, PRINTF, uip_ds6_nbr::state, uip_create_unspecified, uip_ds6_nbr_lookup(), and uip_ipaddr_cmp.
Referenced by tcpip_ipv6_output(), and uip_ds6_send_rs().
uip_ds6_defrt_t* uip_ds6_defrt_lookup | ( | uip_ipaddr_t * | ipaddr | ) |
References uip_ds6_defrt::ipaddr, list_head(), list_item_next(), NULL, and uip_ipaddr_cmp.
Referenced by na_input(), ra_input(), uip_ds6_defrt_add(), and uip_ds6_neighbor_periodic().
void uip_ds6_defrt_periodic | ( | void | ) |
References uip_ds6_defrt::isinfinite, uip_ds6_defrt::lifetime, list_head(), list_item_next(), NULL, PRINTF, stimer_expired(), and uip_ds6_defrt_rm().
Referenced by uip_ds6_periodic().
void uip_ds6_defrt_rm | ( | uip_ds6_defrt_t * | defrt | ) |
References ANNOTATE, uip_ds6_defrt::ipaddr, list_head(), list_item_next(), list_remove(), memb_free(), NULL, PRINTF, uip_ip6addr_t::u8, and UIP_DS6_NOTIFICATION_DEFRT_RM.
Referenced by na_input(), ra_input(), rpl_move_parent(), rpl_nullify_parent(), rpl_set_default_route(), simple_rpl_init_dag_immediately(), uip_ds6_defrt_periodic(), and uip_ds6_neighbor_periodic().
void uip_ds6_notification_add | ( | struct uip_ds6_notification * | n, |
uip_ds6_notification_callback | c | ||
) |
Referenced by PROCESS_THREAD(), and simple_rpl_init().
void uip_ds6_notification_rm | ( | struct uip_ds6_notification * | n | ) |
uip_ds6_route_t* uip_ds6_route_add | ( | uip_ipaddr_t * | ipaddr, |
uint8_t | length, | ||
uip_ipaddr_t * | next_hop | ||
) |
References ANNOTATE, uip_ds6_route::ipaddr, uip_ds6_route::length, length, list_add(), LIST_STRUCT_INIT, memb_alloc(), memb_free(), nbr_table_add_lladdr(), nbr_table_get_from_lladdr(), uip_ds6_route::neighbor_routes, NULL, num_routes, PRINT6ADDR, PRINTF, uip_ds6_route_neighbor_route::route, uip_ds6_route::state, uip_ip6addr_t::u8, uip_ds6_nbr_lladdr_from_ipaddr(), UIP_DS6_NOTIFICATION_ROUTE_ADD, uip_ds6_route_head(), uip_ds6_route_lookup(), uip_ds6_route_num_routes(), uip_ds6_route_rm(), UIP_DS6_ROUTE_STATE_TYPE, and uip_ipaddr_copy.
Referenced by rpl_add_route().
uip_ds6_route_t* uip_ds6_route_head | ( | void | ) |
References list_head().
Referenced by rpl_purge_routes(), rpl_remove_routes(), rpl_remove_routes_by_nexthop(), uip_ds6_route_add(), uip_ds6_route_lookup(), and uip_ds6_route_rm().
void uip_ds6_route_init | ( | void | ) |
References list_init(), memb_init(), nbr_table_register(), and rm_routelist_callback().
Referenced by uip_ds6_init().
uip_ds6_route_t* uip_ds6_route_lookup | ( | uip_ipaddr_t * | destipaddr | ) |
References uip_ds6_route::ipaddr, uip_ds6_route::length, list_add(), list_remove(), NULL, PRINT6ADDR, PRINTF, uip_ds6_route_head(), uip_ds6_route_next(), uip_ds6_route_nexthop(), and uip_ipaddr_prefixcmp.
Referenced by dao_input(), rpl_update_header_empty(), rpl_verify_header(), tcpip_ipv6_output(), and uip_ds6_route_add().
uip_ds6_route_t* uip_ds6_route_next | ( | uip_ds6_route_t * | ) |
References list_item_next(), n, and NULL.
Referenced by rpl_purge_routes(), rpl_remove_routes(), rpl_remove_routes_by_nexthop(), uip_ds6_route_lookup(), and uip_ds6_route_rm().
uip_ipaddr_t* uip_ds6_route_nexthop | ( | uip_ds6_route_t * | ) |
References NULL, uip_ds6_nbr_ipaddr_from_lladdr(), and uip_ds6_route_nexthop_lladdr().
Referenced by dao_input(), make_route(), rpl_remove_routes_by_nexthop(), tcpip_ipv6_output(), uip_ds6_route_lookup(), and uip_ds6_route_rm().
int uip_ds6_route_num_routes | ( | void | ) |
References num_routes.
Referenced by make_routes_roomfor(), and uip_ds6_route_add().
void uip_ds6_route_rm | ( | uip_ds6_route_t * | route | ) |
References ANNOTATE, uip_ds6_route::ipaddr, list_head(), list_item_next(), list_remove(), memb_free(), nbr_table_remove(), uip_ds6_route::neighbor_routes, NULL, num_routes, PRINT6ADDR, PRINTF, uip_ds6_route_neighbor_route::route, uip_debug_ipaddr_print(), UIP_DS6_NOTIFICATION_ROUTE_RM, uip_ds6_route_head(), uip_ds6_route_next(), uip_ds6_route_nexthop(), and uip_ipaddr_cmp.
Referenced by rm_routelist(), rpl_purge_routes(), rpl_remove_routes(), rpl_remove_routes_by_nexthop(), rpl_verify_header(), tcpip_ipv6_output(), and uip_ds6_route_add().
void uip_ds6_route_rm_by_nexthop | ( | uip_ipaddr_t * | nexthop | ) |
References nbr_table_get_from_lladdr(), rm_routelist(), and uip_ds6_nbr_lladdr_from_ipaddr().