32 #ifndef UIP_DS6_ROUTE_H
33 #define UIP_DS6_ROUTE_H
38 void uip_ds6_route_init(
void);
40 #ifndef UIP_CONF_UIP_DS6_NOTIFICATIONS
41 #define UIP_DS6_NOTIFICATIONS 1
43 #define UIP_DS6_NOTIFICATIONS UIP_CONF_UIP_DS6_NOTIFICATIONS
46 #if UIP_DS6_NOTIFICATIONS
51 #define UIP_DS6_NOTIFICATION_DEFRT_ADD 0
52 #define UIP_DS6_NOTIFICATION_DEFRT_RM 1
53 #define UIP_DS6_NOTIFICATION_ROUTE_ADD 2
54 #define UIP_DS6_NOTIFICATION_ROUTE_RM 3
56 typedef void (* uip_ds6_notification_callback)(
int event,
58 uip_ipaddr_t *nexthop,
60 struct uip_ds6_notification {
61 struct uip_ds6_notification *next;
62 uip_ds6_notification_callback callback;
65 void uip_ds6_notification_add(
struct uip_ds6_notification *n,
66 uip_ds6_notification_callback c);
68 void uip_ds6_notification_rm(
struct uip_ds6_notification *n);
73 #ifndef UIP_CONF_MAX_ROUTES
74 #ifdef UIP_CONF_DS6_ROUTE_NBU
75 #define UIP_DS6_ROUTE_NB UIP_CONF_DS6_ROUTE_NBU
77 #define UIP_DS6_ROUTE_NB 4
80 #define UIP_DS6_ROUTE_NB UIP_CONF_MAX_ROUTES
85 #ifndef UIP_DS6_ROUTE_STATE_TYPE
86 #define UIP_DS6_ROUTE_STATE_TYPE rpl_route_entry_t
88 typedef struct rpl_route_entry {
92 uint8_t nopath_received;
99 LIST_STRUCT(route_list);
112 #ifdef UIP_DS6_ROUTE_STATE_TYPE
113 UIP_DS6_ROUTE_STATE_TYPE state;
136 unsigned long interval);
139 uip_ipaddr_t *uip_ds6_defrt_choose(
void);
141 void uip_ds6_defrt_periodic(
void);
148 uip_ds6_route_t *uip_ds6_route_add(uip_ipaddr_t *ipaddr, uint8_t length,
149 uip_ipaddr_t *next_hop);
151 void uip_ds6_route_rm_by_nexthop(uip_ipaddr_t *nexthop);
154 int uip_ds6_route_num_routes(
void);
Second timer library header file.
Linked list manipulation routines.
An entry in the routing table.
The neighbor routes hold a list of routing table entries that are attached to a specific neihbor...
A neighbor route list entry, used on the uip_ds6_route->neighbor_routes->route_list list...
An entry in the default router list.