55 #define UIP_ND6_HOP_LIMIT 255
57 #define UIP_ND6_INFINITE_LIFETIME 0xFFFFFFFF
63 #define UIP_ND6_MAX_RTR_SOLICITATION_DELAY 1
65 #define UIP_ND6_RTR_SOLICITATION_INTERVAL 4
67 #define UIP_ND6_MAX_RTR_SOLICITATIONS 3
72 #ifndef UIP_CONF_ND6_SEND_RA
73 #define UIP_ND6_SEND_RA 1
75 #define UIP_ND6_SEND_RA UIP_CONF_ND6_SEND_RA
77 #ifndef UIP_CONF_ND6_SEND_NA
78 #define UIP_ND6_SEND_NA 1
80 #define UIP_ND6_SEND_NA UIP_CONF_ND6_SEND_NA
82 #ifndef UIP_CONF_ND6_MAX_RA_INTERVAL
83 #define UIP_ND6_MAX_RA_INTERVAL 600
85 #define UIP_ND6_MAX_RA_INTERVAL UIP_CONF_ND6_MAX_RA_INTERVAL
87 #ifndef UIP_CONF_ND6_MIN_RA_INTERVAL
88 #define UIP_ND6_MIN_RA_INTERVAL (UIP_ND6_MAX_RA_INTERVAL / 3)
90 #define UIP_ND6_MIN_RA_INTERVAL UIP_CONF_ND6_MIN_RA_INTERVAL
92 #define UIP_ND6_M_FLAG 0
93 #define UIP_ND6_O_FLAG (UIP_ND6_RA_RDNSS || UIP_ND6_RA_DNSSL)
94 #define UIP_ND6_ROUTER_LIFETIME 3 * UIP_ND6_MAX_RA_INTERVAL
96 #define UIP_ND6_MAX_INITIAL_RA_INTERVAL 16
97 #define UIP_ND6_MAX_INITIAL_RAS 3
98 #ifndef UIP_CONF_ND6_MIN_DELAY_BETWEEN_RAS
99 #define UIP_ND6_MIN_DELAY_BETWEEN_RAS 3
101 #define UIP_ND6_MIN_DELAY_BETWEEN_RAS UIP_CONF_ND6_MIN_DELAY_BETWEEN_RAS
104 #define UIP_ND6_MAX_RA_DELAY_TIME_MS 500
107 #ifndef UIP_CONF_ND6_DEF_MAXDADNS
109 #if UIP_CONF_LL_802154
110 #define UIP_ND6_DEF_MAXDADNS 0
112 #define UIP_ND6_DEF_MAXDADNS UIP_ND6_SEND_NA
115 #define UIP_ND6_DEF_MAXDADNS UIP_CONF_ND6_DEF_MAXDADNS
119 #define UIP_ND6_MAX_MULTICAST_SOLICIT 3
121 #ifdef UIP_CONF_ND6_MAX_UNICAST_SOLICIT
122 #define UIP_ND6_MAX_UNICAST_SOLICIT UIP_CONF_ND6_MAX_UNICAST_SOLICIT
124 #define UIP_ND6_MAX_UNICAST_SOLICIT 3
127 #ifdef UIP_CONF_ND6_REACHABLE_TIME
128 #define UIP_ND6_REACHABLE_TIME UIP_CONF_ND6_REACHABLE_TIME
130 #define UIP_ND6_REACHABLE_TIME 30000
133 #ifdef UIP_CONF_ND6_RETRANS_TIMER
134 #define UIP_ND6_RETRANS_TIMER UIP_CONF_ND6_RETRANS_TIMER
136 #define UIP_ND6_RETRANS_TIMER 1000
139 #define UIP_ND6_DELAY_FIRST_PROBE_TIME 5
140 #define UIP_ND6_MIN_RANDOM_FACTOR(x) (x / 2)
141 #define UIP_ND6_MAX_RANDOM_FACTOR(x) ((x) + (x) / 2)
147 #ifndef UIP_CONF_ND6_RA_RDNSS
148 #define UIP_ND6_RA_RDNSS 0
150 #define UIP_ND6_RA_RDNSS UIP_CONF_ND6_RA_RDNSS
153 #ifndef UIP_CONF_ND6_RA_DNSSL
154 #define UIP_ND6_RA_DNSSL 0
156 #error Not implemented
157 #define UIP_ND6_RA_DNSSL UIP_CONF_ND6_RA_DNSSL
164 #define UIP_ND6_OPT_SLLAO 1
165 #define UIP_ND6_OPT_TLLAO 2
166 #define UIP_ND6_OPT_PREFIX_INFO 3
167 #define UIP_ND6_OPT_REDIRECTED_HDR 4
168 #define UIP_ND6_OPT_MTU 5
169 #define UIP_ND6_OPT_RDNSS 25
170 #define UIP_ND6_OPT_DNSSL 31
175 #define UIP_ND6_OPT_TYPE_OFFSET 0
176 #define UIP_ND6_OPT_LEN_OFFSET 1
177 #define UIP_ND6_OPT_DATA_OFFSET 2
181 #define UIP_ND6_NA_LEN 20
182 #define UIP_ND6_NS_LEN 20
183 #define UIP_ND6_RA_LEN 12
184 #define UIP_ND6_RS_LEN 4
190 #define UIP_ND6_OPT_HDR_LEN 2
191 #define UIP_ND6_OPT_PREFIX_INFO_LEN 32
192 #define UIP_ND6_OPT_MTU_LEN 8
193 #define UIP_ND6_OPT_RDNSS_LEN 1
194 #define UIP_ND6_OPT_DNSSL_LEN 1
198 #if UIP_CONF_LL_802154
200 #define UIP_ND6_OPT_SHORT_LLAO_LEN 8
201 #define UIP_ND6_OPT_LONG_LLAO_LEN 16
203 #define UIP_ND6_OPT_LLAO_LEN UIP_ND6_OPT_LONG_LLAO_LEN
205 #if UIP_CONF_LL_80211
208 #define UIP_ND6_OPT_LLAO_LEN 8
211 #define UIP_ND6_OPT_LLAO_LEN 8
219 #define UIP_ND6_NA_FLAG_ROUTER 0x80
220 #define UIP_ND6_NA_FLAG_SOLICITED 0x40
221 #define UIP_ND6_NA_FLAG_OVERRIDE 0x20
222 #define UIP_ND6_RA_FLAG_ONLINK 0x80
223 #define UIP_ND6_RA_FLAG_AUTONOMOUS 0x40
238 uip_ipaddr_t tgtipaddr;
247 uint8_t flagsreserved;
249 uip_ipaddr_t tgtipaddr;
268 uint8_t flags_reserved;
269 uint16_t router_lifetime;
270 uint32_t reachable_time;
271 uint32_t retrans_timer;
281 uip_ipaddr_t tgtipaddress;
282 uip_ipaddr_t destipaddress;
302 uint8_t flagsreserved1;
304 uint32_t preferredlt;
327 typedef struct uip_nd6_opt_redirected_hdr {
331 } uip_nd6_opt_redirected_hdr;
392 void uip_nd6_ra_output(uip_ipaddr_t *dest);
417 uip_appserver_addr_get(uip_ipaddr_t *
ipaddr);
static uip_ipaddr_t ipaddr
Pointer to prefix information option in uip_buf.
struct uip_nd6_opt_dns uip_nd6_opt_dns
ND option RDNSS.
void uip_nd6_rs_output(void)
Send a Router Solicitation.
A router solicitation constant part.
struct uip_nd6_ns uip_nd6_ns
A neighbor solicitation constant part.
ND option prefix information.
void uip_nd6_ns_input(void)
Process a neighbor solicitation.
struct uip_nd6_na uip_nd6_na
A neighbor advertisement constant part.
A neighbor solicitation constant part.
Second timer library header file.
struct uip_nd6_ra uip_nd6_ra
A router advertisement constant part.
A redirect message constant part.
A neighbor advertisement constant part.
Header file for the uIP TCP/IP stack.
void uip_nd6_ns_output(uip_ipaddr_t *src, uip_ipaddr_t *dest, uip_ipaddr_t *tgt)
Send a neighbor solicitation, send a Neighbor Advertisement.
struct uip_nd6_opt_prefix_info uip_nd6_opt_prefix_info
ND option prefix information.
struct uip_nd6_rs uip_nd6_rs
A router solicitation constant part.
struct uip_nd6_opt_mtu uip_nd6_opt_mtu
ND option MTU.
struct uip_nd6_opt_hdr uip_nd6_opt_hdr
ND option header.
struct uip_nd6_redirect uip_nd6_redirect
A redirect message constant part.
void uip_nd6_init(void)
Initialise the uIP ND core.
A router advertisement constant part.