8 #include <basictypes.h> 12 #define ND_OPTION_SL_ADDR (1) 13 #define ND_OPTION_TL_ADDR (2) 14 #define ND_OPTION_PREFIX (3) 15 #define ND_OPTION_REDIR (4) 16 #define ND_OPTION_MTU (5) 17 #define ND_OPTION_AD_INTVL (7) 18 #define ND_OPTION_HOME_AGENT (8) 19 #define ND_OPTION_ROUTE_INFO (9) 20 #define ND_OPTION_DNS (25) 22 #define ND_FLAG_ROUTER (0x80000000) 23 #define ND_FLAG_SOLICITED (0x40000000) 24 #define ND_FLAG_OVERRIDE (0x20000000) 26 #define RA_FLAG_MANAGED_IP (0x80) 27 #define RA_FLAG_OTHER_AVAIL (0x40) 31 beuint16_t ver_ihl_flowmsb;
39 } __attribute__((packed));
43 uint8_t frag_next_header;
45 beuint16_t offset_and_flags;
48 } __attribute__((packed));
50 struct IP6_ROUTE_HEADER
57 } __attribute__((packed));
59 struct ICMPV6_PSEUDO_HDR
63 beuint32_t icmplength;
68 } __attribute__((packed));
75 } __attribute__((packed));
77 struct ICMPV6_ND_SOLICIT
85 } __attribute__((packed));
87 struct ICMP6_ND_ADVERT_RSP
97 } __attribute__((packed));
99 struct ICMP6_ND_ADVERT
106 } __attribute__((packed));
108 struct ICMPV6_PARAM_PROB
114 } __attribute__((packed));
122 } __attribute__((packed));
124 struct ICMPV6_DEST_UNREACH
130 } __attribute__((packed));
139 } __attribute__((packed));
141 struct ICMPV6_TIME_EXCEEDED
147 } __attribute__((packed));
156 } __attribute__((packed));
166 } __attribute__((packed));
168 struct ICMPV6_RD_ADVERT
173 uint8_t cur_hop_limit;
176 beuint32_t ReachableTime;
177 beuint32_t RetranstimeTime;
178 } __attribute__((packed));
180 struct ICMPV6_RA_PREFIX
186 beuint32_t ValidTime;
187 beuint32_t PreferedLifeTime;
190 } __attribute__((packed));
198 } __attribute__((packed));
207 } __attribute__((packed));
217 } __attribute__((packed));
219 struct ICMPV6_MCV2_REC
223 beuint16_t src_count;
226 } __attribute__((packed));
228 struct ICMPV6_MCV2_REP
234 beuint16_t rec_count;
235 ICMPV6_MCV2_REC pRec[];
236 } __attribute__((packed));
245 } __attribute__((packed));
Used to hold and manipulate IPv4 and IPv6 addresses in dual stack mode.
Definition: ipv6_addr.h:28