55#define UIP_ND6_HOP_LIMIT 255
57#define UIP_ND6_INFINITE_LIFETIME 0xFFFFFFFF
63#ifndef UIP_CONF_ND6_MAX_RTR_SOLICITATION_DELAY
64#define UIP_ND6_MAX_RTR_SOLICITATION_DELAY 1
66#define UIP_ND6_MAX_RTR_SOLICITATION_DELAY UIP_CONF_ND6_MAX_RTR_SOLICITATION_DELAY
69#ifndef UIP_CONF_ND6_RTR_SOLICITATION_INTERVAL
70#define UIP_ND6_RTR_SOLICITATION_INTERVAL 4
72#define UIP_ND6_RTR_SOLICITATION_INTERVAL UIP_CONF_ND6_RTR_SOLICITATION_INTERVAL
75#ifndef UIP_CONF_ND6_MAX_RTR_SOLICITATIONS
76#define UIP_ND6_MAX_RTR_SOLICITATIONS 3
78#define UIP_ND6_MAX_RTR_SOLICITATIONS UIP_CONF_ND6_MAX_RTR_SOLICITATIONS
84#ifndef UIP_CONF_ND6_SEND_RA
85#define UIP_ND6_SEND_RA 1
87#define UIP_ND6_SEND_RA UIP_CONF_ND6_SEND_RA
89#ifndef UIP_CONF_ND6_SEND_NS
90#define UIP_ND6_SEND_NS 1
92#define UIP_ND6_SEND_NS UIP_CONF_ND6_SEND_NS
94#ifndef UIP_CONF_ND6_SEND_NA
95#define UIP_ND6_SEND_NA 1
97#define UIP_ND6_SEND_NA UIP_CONF_ND6_SEND_NA
99#ifndef UIP_CONF_ND6_AUTOFILL_NBR_CACHE
106#define UIP_ND6_AUTOFILL_NBR_CACHE 0
108#define UIP_ND6_AUTOFILL_NBR_CACHE UIP_CONF_ND6_AUTOFILL_NBR_CACHE
110#ifndef UIP_CONF_ND6_MAX_RA_INTERVAL
111#define UIP_ND6_MAX_RA_INTERVAL 600
113#define UIP_ND6_MAX_RA_INTERVAL UIP_CONF_ND6_MAX_RA_INTERVAL
115#ifndef UIP_CONF_ND6_MIN_RA_INTERVAL
116#define UIP_ND6_MIN_RA_INTERVAL (UIP_ND6_MAX_RA_INTERVAL / 3)
118#define UIP_ND6_MIN_RA_INTERVAL UIP_CONF_ND6_MIN_RA_INTERVAL
120#define UIP_ND6_M_FLAG 0
121#define UIP_ND6_O_FLAG 0
122#ifndef UIP_CONF_ROUTER_LIFETIME
123#define UIP_ND6_ROUTER_LIFETIME 3 * UIP_ND6_MAX_RA_INTERVAL
125#define UIP_ND6_ROUTER_LIFETIME UIP_CONF_ROUTER_LIFETIME
128#define UIP_ND6_MAX_INITIAL_RA_INTERVAL 16
129#define UIP_ND6_MAX_INITIAL_RAS 3
130#ifndef UIP_CONF_ND6_MIN_DELAY_BETWEEN_RAS
131#define UIP_ND6_MIN_DELAY_BETWEEN_RAS 3
133#define UIP_ND6_MIN_DELAY_BETWEEN_RAS UIP_CONF_ND6_MIN_DELAY_BETWEEN_RAS
136#define UIP_ND6_MAX_RA_DELAY_TIME_MS 500
139#ifndef UIP_CONF_ND6_DEF_MAXDADNS
141#if UIP_CONF_LL_802154
142#define UIP_ND6_DEF_MAXDADNS 0
144#define UIP_ND6_DEF_MAXDADNS UIP_ND6_SEND_NS
147#define UIP_ND6_DEF_MAXDADNS UIP_CONF_ND6_DEF_MAXDADNS
151#define UIP_ND6_MAX_MULTICAST_SOLICIT 3
153#ifdef UIP_CONF_ND6_MAX_UNICAST_SOLICIT
154#define UIP_ND6_MAX_UNICAST_SOLICIT UIP_CONF_ND6_MAX_UNICAST_SOLICIT
156#define UIP_ND6_MAX_UNICAST_SOLICIT 3
159#ifdef UIP_CONF_ND6_REACHABLE_TIME
160#define UIP_ND6_REACHABLE_TIME UIP_CONF_ND6_REACHABLE_TIME
162#define UIP_ND6_REACHABLE_TIME 60000
165#ifdef UIP_CONF_ND6_RETRANS_TIMER
166#define UIP_ND6_RETRANS_TIMER UIP_CONF_ND6_RETRANS_TIMER
168#define UIP_ND6_RETRANS_TIMER 1000
171#define UIP_ND6_DELAY_FIRST_PROBE_TIME 5
172#define UIP_ND6_MIN_RANDOM_FACTOR(x) (x / 2)
173#define UIP_ND6_MAX_RANDOM_FACTOR(x) ((x) + (x) / 2)
179#ifndef UIP_CONF_ND6_RA_RDNSS
180#define UIP_ND6_RA_RDNSS 0
182#define UIP_ND6_RA_RDNSS UIP_CONF_ND6_RA_RDNSS
185#ifndef UIP_CONF_ND6_RA_DNSSL
186#define UIP_ND6_RA_DNSSL 0
188#error Not implemented
189#define UIP_ND6_RA_DNSSL UIP_CONF_ND6_RA_DNSSL
196#define UIP_ND6_OPT_SLLAO 1
197#define UIP_ND6_OPT_TLLAO 2
198#define UIP_ND6_OPT_PREFIX_INFO 3
199#define UIP_ND6_OPT_REDIRECTED_HDR 4
200#define UIP_ND6_OPT_MTU 5
201#define UIP_ND6_OPT_RDNSS 25
202#define UIP_ND6_OPT_DNSSL 31
207#define UIP_ND6_OPT_TYPE_OFFSET 0
208#define UIP_ND6_OPT_LEN_OFFSET 1
209#define UIP_ND6_OPT_DATA_OFFSET 2
213#define UIP_ND6_NA_LEN 20
214#define UIP_ND6_NS_LEN 20
215#define UIP_ND6_RA_LEN 12
216#define UIP_ND6_RS_LEN 4
222#define UIP_ND6_OPT_HDR_LEN 2
223#define UIP_ND6_OPT_PREFIX_INFO_LEN 32
224#define UIP_ND6_OPT_MTU_LEN 8
225#define UIP_ND6_OPT_RDNSS_LEN 1
226#define UIP_ND6_OPT_DNSSL_LEN 1
230#if UIP_CONF_LL_802154
232#define UIP_ND6_OPT_SHORT_LLAO_LEN 8
233#define UIP_ND6_OPT_LONG_LLAO_LEN 16
235#define UIP_ND6_OPT_LLAO_LEN UIP_ND6_OPT_LONG_LLAO_LEN
240#define UIP_ND6_OPT_LLAO_LEN 8
243#define UIP_ND6_OPT_LLAO_LEN 8
251#define UIP_ND6_NA_FLAG_ROUTER 0x80
252#define UIP_ND6_NA_FLAG_SOLICITED 0x40
253#define UIP_ND6_NA_FLAG_OVERRIDE 0x20
254#define UIP_ND6_RA_FLAG_ONLINK 0x80
255#define UIP_ND6_RA_FLAG_AUTONOMOUS 0x40
270 uip_ipaddr_t tgtipaddr;
279 uint8_t flagsreserved;
281 uip_ipaddr_t tgtipaddr;
300 uint8_t flags_reserved;
301 uint16_t router_lifetime;
302 uint32_t reachable_time;
303 uint32_t retrans_timer;
313 uip_ipaddr_t tgtipaddress;
314 uip_ipaddr_t destipaddress;
334 uint8_t flagsreserved1;
336 uint32_t preferredlt;
359typedef struct uip_nd6_opt_redirected_hdr {
363} uip_nd6_opt_redirected_hdr;
401void uip_nd6_ra_output(
const uip_ipaddr_t *dest);
426uip_appserver_addr_get(uip_ipaddr_t *
ipaddr);
void uip_nd6_ns_output(const uip_ipaddr_t *src, const 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_na uip_nd6_na
A neighbor advertisement constant part.
struct uip_nd6_opt_dns uip_nd6_opt_dns
ND option RDNSS.
void uip_nd6_rs_output(void)
Send a Router Solicitation.
struct uip_nd6_redirect uip_nd6_redirect
A redirect message constant part.
void uip_nd6_init(void)
Initialise the uIP ND core.
struct uip_nd6_ns uip_nd6_ns
A neighbor solicitation constant part.
struct uip_nd6_opt_hdr uip_nd6_opt_hdr
ND option header.
struct uip_nd6_rs uip_nd6_rs
A router solicitation constant part.
struct uip_nd6_ra uip_nd6_ra
A router advertisement constant part.
struct uip_nd6_opt_mtu uip_nd6_opt_mtu
ND option MTU.
Second timer library header file.
A neighbor advertisement constant part.
A neighbor solicitation constant part.
ND option prefix information.
A router advertisement constant part.
A redirect message constant part.
A router solicitation constant part.
static uip_ipaddr_t ipaddr
Pointer to prefix information option in uip_buf.
Header file for the uIP TCP/IP stack.