55 #define UIP_ND6_HOP_LIMIT 255
57 #define UIP_ND6_INFINITE_LIFETIME 0xFFFFFFFF
62 #define UIP_ND6_MAX_RTR_SOLICITATION_DELAY 1
63 #define UIP_ND6_RTR_SOLICITATION_INTERVAL 4
64 #define UIP_ND6_MAX_RTR_SOLICITATIONS 3
69 #ifndef UIP_CONF_ND6_SEND_RA
70 #define UIP_ND6_SEND_RA 1
72 #define UIP_ND6_SEND_RA UIP_CONF_ND6_SEND_RA
74 #ifndef UIP_CONF_ND6_SEND_NA
75 #define UIP_ND6_SEND_NA 1
77 #define UIP_ND6_SEND_NA UIP_CONF_ND6_SEND_NA
79 #define UIP_ND6_MAX_RA_INTERVAL 600
80 #define UIP_ND6_MIN_RA_INTERVAL (UIP_ND6_MAX_RA_INTERVAL / 3)
81 #define UIP_ND6_M_FLAG 0
82 #define UIP_ND6_O_FLAG 0
83 #define UIP_ND6_ROUTER_LIFETIME 3 * UIP_ND6_MAX_RA_INTERVAL
85 #define UIP_ND6_MAX_INITIAL_RA_INTERVAL 16
86 #define UIP_ND6_MAX_INITIAL_RAS 3
87 #define UIP_ND6_MIN_DELAY_BETWEEN_RAS 3
89 #define UIP_ND6_MAX_RA_DELAY_TIME_MS 500
92 #ifndef UIP_CONF_ND6_DEF_MAXDADNS
94 #if UIP_CONF_LL_802154
95 #define UIP_ND6_DEF_MAXDADNS 0
97 #define UIP_ND6_DEF_MAXDADNS UIP_ND6_SEND_NA
100 #define UIP_ND6_DEF_MAXDADNS UIP_CONF_ND6_DEF_MAXDADNS
104 #define UIP_ND6_MAX_MULTICAST_SOLICIT 3
106 #ifdef UIP_CONF_ND6_MAX_UNICAST_SOLICIT
107 #define UIP_ND6_MAX_UNICAST_SOLICIT UIP_CONF_ND6_MAX_UNICAST_SOLICIT
109 #define UIP_ND6_MAX_UNICAST_SOLICIT 3
112 #ifdef UIP_CONF_ND6_REACHABLE_TIME
113 #define UIP_ND6_REACHABLE_TIME UIP_CONF_ND6_REACHABLE_TIME
115 #define UIP_ND6_REACHABLE_TIME 30000
118 #ifdef UIP_CONF_ND6_RETRANS_TIMER
119 #define UIP_ND6_RETRANS_TIMER UIP_CONF_ND6_RETRANS_TIMER
121 #define UIP_ND6_RETRANS_TIMER 1000
124 #define UIP_ND6_DELAY_FIRST_PROBE_TIME 5
125 #define UIP_ND6_MIN_RANDOM_FACTOR(x) (x / 2)
126 #define UIP_ND6_MAX_RANDOM_FACTOR(x) ((x) + (x) / 2)
132 #define UIP_ND6_OPT_SLLAO 1
133 #define UIP_ND6_OPT_TLLAO 2
134 #define UIP_ND6_OPT_PREFIX_INFO 3
135 #define UIP_ND6_OPT_REDIRECTED_HDR 4
136 #define UIP_ND6_OPT_MTU 5
141 #define UIP_ND6_OPT_TYPE_OFFSET 0
142 #define UIP_ND6_OPT_LEN_OFFSET 1
143 #define UIP_ND6_OPT_DATA_OFFSET 2
147 #define UIP_ND6_NA_LEN 20
148 #define UIP_ND6_NS_LEN 20
149 #define UIP_ND6_RA_LEN 12
150 #define UIP_ND6_RS_LEN 4
156 #define UIP_ND6_OPT_HDR_LEN 2
157 #define UIP_ND6_OPT_PREFIX_INFO_LEN 32
158 #define UIP_ND6_OPT_MTU_LEN 8
162 #if UIP_CONF_LL_802154
164 #define UIP_ND6_OPT_SHORT_LLAO_LEN 8
165 #define UIP_ND6_OPT_LONG_LLAO_LEN 16
167 #define UIP_ND6_OPT_LLAO_LEN UIP_ND6_OPT_LONG_LLAO_LEN
169 #if UIP_CONF_LL_80211
172 #define UIP_ND6_OPT_LLAO_LEN 8
175 #define UIP_ND6_OPT_LLAO_LEN 8
183 #define UIP_ND6_NA_FLAG_ROUTER 0x80
184 #define UIP_ND6_NA_FLAG_SOLICITED 0x40
185 #define UIP_ND6_NA_FLAG_OVERRIDE 0x20
186 #define UIP_ND6_RA_FLAG_ONLINK 0x80
187 #define UIP_ND6_RA_FLAG_AUTONOMOUS 0x40
202 uip_ipaddr_t tgtipaddr;
211 uint8_t flagsreserved;
213 uip_ipaddr_t tgtipaddr;
232 uint8_t flags_reserved;
233 uint16_t router_lifetime;
234 uint32_t reachable_time;
235 uint32_t retrans_timer;
245 uip_ipaddr_t tgtipaddress;
246 uip_ipaddr_t destipaddress;
266 uint8_t flagsreserved1;
268 uint32_t preferredlt;
282 typedef struct uip_nd6_opt_redirected_hdr {
286 } uip_nd6_opt_redirected_hdr;
347 void uip_nd6_ra_output(uip_ipaddr_t *dest);
372 uip_appserver_addr_get(uip_ipaddr_t *ipaddr);
Second timer library header file.
A router advertisement constant part.
struct uip_nd6_opt_prefix_info uip_nd6_opt_prefix_info
ND option prefix information.
struct uip_nd6_opt_hdr uip_nd6_opt_hdr
ND option header.
Header file for the uIP TCP/IP stack.
void uip_nd6_rs_output(void)
Send a Router Solicitation.
ND option prefix information.
void uip_nd6_ns_input(void)
Process a neighbor solicitation.
struct uip_nd6_rs uip_nd6_rs
A router solicitation constant part.
void uip_nd6_init()
Initialise the uIP ND core.
A router solicitation constant part.
A neighbor solicitation constant part.
struct uip_nd6_na uip_nd6_na
A neighbor advertisement constant part.
A redirect message constant part.
struct uip_nd6_ra uip_nd6_ra
A router advertisement constant part.
struct uip_nd6_redirect uip_nd6_redirect
A redirect message constant part.
struct uip_nd6_ns uip_nd6_ns
A neighbor solicitation constant part.
struct uip_nd6_opt_mtu uip_nd6_opt_mtu
ND option MTU.
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.
A neighbor advertisement constant part.