51 #include "net/ipv6/uip-nd6.h"
52 #include "net/ipv6/uip-ds6-route.h"
53 #include "net/ipv6/uip-ds6-nbr.h"
65 #define UIP_DS6_DEFRT_NBS 0
66 #ifndef UIP_CONF_DS6_DEFRT_NBU
67 #define UIP_DS6_DEFRT_NBU 2
69 #define UIP_DS6_DEFRT_NBU UIP_CONF_DS6_DEFRT_NBU
71 #define UIP_DS6_DEFRT_NB UIP_DS6_DEFRT_NBS + UIP_DS6_DEFRT_NBU
74 #define UIP_DS6_PREFIX_NBS 1
75 #ifndef UIP_CONF_DS6_PREFIX_NBU
76 #define UIP_DS6_PREFIX_NBU 2
78 #define UIP_DS6_PREFIX_NBU UIP_CONF_DS6_PREFIX_NBU
80 #define UIP_DS6_PREFIX_NB UIP_DS6_PREFIX_NBS + UIP_DS6_PREFIX_NBU
83 #define UIP_DS6_ADDR_NBS 1
84 #ifndef UIP_CONF_DS6_ADDR_NBU
85 #define UIP_DS6_ADDR_NBU 2
87 #define UIP_DS6_ADDR_NBU UIP_CONF_DS6_ADDR_NBU
89 #define UIP_DS6_ADDR_NB UIP_DS6_ADDR_NBS + UIP_DS6_ADDR_NBU
93 #define UIP_DS6_MADDR_NBS 2 + UIP_DS6_ADDR_NB
95 #define UIP_DS6_MADDR_NBS 1 + UIP_DS6_ADDR_NB
97 #ifndef UIP_CONF_DS6_MADDR_NBU
98 #define UIP_DS6_MADDR_NBU 0
100 #define UIP_DS6_MADDR_NBU UIP_CONF_DS6_MADDR_NBU
102 #define UIP_DS6_MADDR_NB UIP_DS6_MADDR_NBS + UIP_DS6_MADDR_NBU
106 #define UIP_DS6_AADDR_NBS UIP_DS6_PREFIX_NB - 1
108 #define UIP_DS6_AADDR_NBS 0
110 #ifndef UIP_CONF_DS6_AADDR_NBU
111 #define UIP_DS6_AADDR_NBU 0
113 #define UIP_DS6_AADDR_NBU UIP_CONF_DS6_AADDR_NBU
115 #define UIP_DS6_AADDR_NB UIP_DS6_AADDR_NBS + UIP_DS6_AADDR_NBU
119 #ifndef UIP_CONF_DS6_LL_NUD
120 #define UIP_DS6_LL_NUD 0
122 #define UIP_DS6_LL_NUD UIP_CONF_DS6_LL_NUD
127 #define ADDR_TENTATIVE 0
128 #define ADDR_PREFERRED 1
129 #define ADDR_DEPRECATED 2
134 #define ADDR_ANYTYPE 0
135 #define ADDR_AUTOCONF 1
137 #define ADDR_MANUAL 3
142 #define UIP_DS6_PERIOD (CLOCK_SECOND/10)
149 #if UIP_CONF_IPV6_QUEUE_PKT
150 #include "net/ip/uip-packetqueue.h"
162 uint8_t l_a_reserved;
182 #if UIP_ND6_DEF_MAXDADNS > 0
183 struct timer dadtimer;
201 #if UIP_CONF_IPV6_RPL
202 #ifndef UIP_CONF_DS6_NEIGHBOR_STATE_CHANGED
203 #define UIP_CONF_DS6_NEIGHBOR_STATE_CHANGED rpl_ipv6_neighbor_callback
207 #if UIP_CONF_IPV6_RPL
208 #ifndef UIP_CONF_DS6_LINK_NEIGHBOR_CALLBACK
209 #define UIP_CONF_DS6_LINK_NEIGHBOR_CALLBACK rpl_link_neighbor_callback
217 uint8_t cur_hop_limit;
218 uint32_t base_reachable_time;
219 uint32_t reachable_time;
220 uint32_t retrans_timer;
236 extern struct etimer uip_ds6_timer_periodic;
255 uint16_t elementsize, uip_ipaddr_t *ipaddr,
274 uint8_t advertise, uint8_t flags,
276 unsigned long ptime);
279 unsigned long interval);
284 uint8_t uip_ds6_is_addr_onlink(uip_ipaddr_t *ipaddr);
290 unsigned long vlifetime, uint8_t type);
318 #if UIP_ND6_DEF_MAXDADNS >0
332 void uip_ds6_send_ra_sollicited(
void);
335 void uip_ds6_send_ra_periodic(
void);
348 #define uip_ds6_is_my_addr(addr) (uip_ds6_addr_lookup(addr) != NULL)
350 #define uip_ds6_is_my_maddr(addr) (uip_ds6_maddr_lookup(addr) != NULL)
352 #define uip_ds6_is_my_aaddr(addr) (uip_ds6_aaddr_lookup(addr) != NULL)