37#ifndef LWIP_HDR_PROT_ND6_H
38#define LWIP_HDR_PROT_ND6_H
49#ifdef PACK_STRUCT_USE_INCLUDES
54 PACK_STRUCT_FLD_8(u8_t type);
55 PACK_STRUCT_FLD_8(u8_t code);
56 PACK_STRUCT_FIELD(u16_t chksum);
57 PACK_STRUCT_FIELD(u32_t reserved);
58 PACK_STRUCT_FLD_S(ip6_addr_p_t target_address);
62#ifdef PACK_STRUCT_USE_INCLUDES
67#ifdef PACK_STRUCT_USE_INCLUDES
72 PACK_STRUCT_FLD_8(u8_t type);
73 PACK_STRUCT_FLD_8(u8_t code);
74 PACK_STRUCT_FIELD(u16_t chksum);
75 PACK_STRUCT_FLD_8(u8_t flags);
76 PACK_STRUCT_FLD_8(u8_t reserved[3]);
77 PACK_STRUCT_FLD_S(ip6_addr_p_t target_address);
81#ifdef PACK_STRUCT_USE_INCLUDES
84#define ND6_FLAG_ROUTER (0x80)
85#define ND6_FLAG_SOLICITED (0x40)
86#define ND6_FLAG_OVERRIDE (0x20)
89#ifdef PACK_STRUCT_USE_INCLUDES
94 PACK_STRUCT_FLD_8(u8_t type);
95 PACK_STRUCT_FLD_8(u8_t code);
96 PACK_STRUCT_FIELD(u16_t chksum);
97 PACK_STRUCT_FIELD(u32_t reserved);
101#ifdef PACK_STRUCT_USE_INCLUDES
106#define ND6_RA_FLAG_MANAGED_ADDR_CONFIG (0x80)
107#define ND6_RA_FLAG_OTHER_CONFIG (0x40)
108#define ND6_RA_FLAG_HOME_AGENT (0x20)
109#define ND6_RA_PREFERENCE_MASK (0x18)
110#define ND6_RA_PREFERENCE_HIGH (0x08)
111#define ND6_RA_PREFERENCE_MEDIUM (0x00)
112#define ND6_RA_PREFERENCE_LOW (0x18)
113#define ND6_RA_PREFERENCE_DISABLED (0x10)
114#ifdef PACK_STRUCT_USE_INCLUDES
119 PACK_STRUCT_FLD_8(u8_t type);
120 PACK_STRUCT_FLD_8(u8_t code);
121 PACK_STRUCT_FIELD(u16_t chksum);
122 PACK_STRUCT_FLD_8(u8_t current_hop_limit);
123 PACK_STRUCT_FLD_8(u8_t flags);
124 PACK_STRUCT_FIELD(u16_t router_lifetime);
125 PACK_STRUCT_FIELD(u32_t reachable_time);
126 PACK_STRUCT_FIELD(u32_t retrans_timer);
130#ifdef PACK_STRUCT_USE_INCLUDES
135#ifdef PACK_STRUCT_USE_INCLUDES
140 PACK_STRUCT_FLD_8(u8_t type);
141 PACK_STRUCT_FLD_8(u8_t code);
142 PACK_STRUCT_FIELD(u16_t chksum);
143 PACK_STRUCT_FIELD(u32_t reserved);
144 PACK_STRUCT_FLD_S(ip6_addr_p_t target_address);
145 PACK_STRUCT_FLD_S(ip6_addr_p_t destination_address);
149#ifdef PACK_STRUCT_USE_INCLUDES
154#define ND6_OPTION_TYPE_SOURCE_LLADDR (0x01)
155#define ND6_OPTION_TYPE_TARGET_LLADDR (0x02)
156#ifdef PACK_STRUCT_USE_INCLUDES
161 PACK_STRUCT_FLD_8(u8_t type);
162 PACK_STRUCT_FLD_8(u8_t length);
166#ifdef PACK_STRUCT_USE_INCLUDES
171#define ND6_OPTION_TYPE_PREFIX_INFO (0x03)
172#define ND6_PREFIX_FLAG_ON_LINK (0x80)
173#define ND6_PREFIX_FLAG_AUTONOMOUS (0x40)
174#define ND6_PREFIX_FLAG_ROUTER_ADDRESS (0x20)
175#define ND6_PREFIX_FLAG_SITE_PREFIX (0x10)
176#ifdef PACK_STRUCT_USE_INCLUDES
181 PACK_STRUCT_FLD_8(u8_t type);
182 PACK_STRUCT_FLD_8(u8_t length);
183 PACK_STRUCT_FLD_8(u8_t prefix_length);
184 PACK_STRUCT_FLD_8(u8_t flags);
185 PACK_STRUCT_FIELD(u32_t valid_lifetime);
186 PACK_STRUCT_FIELD(u32_t preferred_lifetime);
187 PACK_STRUCT_FLD_8(u8_t reserved2[3]);
188 PACK_STRUCT_FLD_8(u8_t site_prefix_length);
189 PACK_STRUCT_FLD_S(ip6_addr_p_t prefix);
192#ifdef PACK_STRUCT_USE_INCLUDES
197#define ND6_OPTION_TYPE_REDIR_HDR (0x04)
198#ifdef PACK_STRUCT_USE_INCLUDES
203 PACK_STRUCT_FLD_8(u8_t type);
204 PACK_STRUCT_FLD_8(u8_t length);
205 PACK_STRUCT_FLD_8(u8_t reserved[6]);
210#ifdef PACK_STRUCT_USE_INCLUDES
215#define ND6_OPTION_TYPE_MTU (0x05)
216#ifdef PACK_STRUCT_USE_INCLUDES
221 PACK_STRUCT_FLD_8(u8_t type);
222 PACK_STRUCT_FLD_8(u8_t length);
223 PACK_STRUCT_FIELD(u16_t reserved);
224 PACK_STRUCT_FIELD(u32_t mtu);
227#ifdef PACK_STRUCT_USE_INCLUDES
232#define ND6_OPTION_TYPE_ROUTE_INFO (24)
233#ifdef PACK_STRUCT_USE_INCLUDES
238 PACK_STRUCT_FLD_8(u8_t type);
239 PACK_STRUCT_FLD_8(u8_t length);
240 PACK_STRUCT_FLD_8(u8_t prefix_length);
241 PACK_STRUCT_FLD_8(u8_t preference);
242 PACK_STRUCT_FIELD(u32_t route_lifetime);
243 PACK_STRUCT_FLD_S(ip6_addr_p_t prefix);
246#ifdef PACK_STRUCT_USE_INCLUDES
251#define ND6_OPTION_TYPE_RDNSS (25)
252#ifdef PACK_STRUCT_USE_INCLUDES
257 PACK_STRUCT_FLD_8(u8_t type);
258 PACK_STRUCT_FLD_8(u8_t length);
259 PACK_STRUCT_FIELD(u16_t reserved);
260 PACK_STRUCT_FIELD(u32_t lifetime);
261 PACK_STRUCT_FLD_S(ip6_addr_p_t rdnss_address[1]);
264#ifdef PACK_STRUCT_USE_INCLUDES
268#define SIZEOF_RDNSS_OPTION_BASE 8
#define PACK_STRUCT_END
Definition: arch.h:318
#define PACK_STRUCT_BEGIN
Definition: arch.h:309
#define PACK_STRUCT_STRUCT
Definition: arch.h:330
#define NETIF_MAX_HWADDR_LEN
Definition: netif.h:63