icmp6.h (96116) | icmp6.h (103842) |
---|---|
1/* $FreeBSD: head/sys/netinet/icmp6.h 96116 2002-05-06 16:28:25Z ume $ */ | 1/* $FreeBSD: head/sys/netinet/icmp6.h 103842 2002-09-23 06:25:08Z alfred $ */ |
2/* $KAME: icmp6.h,v 1.46 2001/04/27 15:09:48 itojun Exp $ */ 3 4/* 5 * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. 6 * All rights reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted provided that the following conditions --- 65 unchanged lines hidden (view full) --- 75 u_int8_t icmp6_type; /* type field */ 76 u_int8_t icmp6_code; /* code field */ 77 u_int16_t icmp6_cksum; /* checksum field */ 78 union { 79 u_int32_t icmp6_un_data32[1]; /* type-specific field */ 80 u_int16_t icmp6_un_data16[2]; /* type-specific field */ 81 u_int8_t icmp6_un_data8[4]; /* type-specific field */ 82 } icmp6_dataun; | 2/* $KAME: icmp6.h,v 1.46 2001/04/27 15:09:48 itojun Exp $ */ 3 4/* 5 * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. 6 * All rights reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted provided that the following conditions --- 65 unchanged lines hidden (view full) --- 75 u_int8_t icmp6_type; /* type field */ 76 u_int8_t icmp6_code; /* code field */ 77 u_int16_t icmp6_cksum; /* checksum field */ 78 union { 79 u_int32_t icmp6_un_data32[1]; /* type-specific field */ 80 u_int16_t icmp6_un_data16[2]; /* type-specific field */ 81 u_int8_t icmp6_un_data8[4]; /* type-specific field */ 82 } icmp6_dataun; |
83} __attribute__((__packed__)); | 83} __packed; |
84 85#define icmp6_data32 icmp6_dataun.icmp6_un_data32 86#define icmp6_data16 icmp6_dataun.icmp6_un_data16 87#define icmp6_data8 icmp6_dataun.icmp6_un_data8 88#define icmp6_pptr icmp6_data32[0] /* parameter prob */ 89#define icmp6_mtu icmp6_data32[0] /* packet too big */ 90#define icmp6_id icmp6_data16[0] /* echo request/reply */ 91#define icmp6_seq icmp6_data16[1] /* echo request/reply */ --- 82 unchanged lines hidden (view full) --- 174#define ND_REDIRECT_ROUTER 1 /* redirect to a better router */ 175 176/* 177 * Multicast Listener Discovery 178 */ 179struct mld_hdr { 180 struct icmp6_hdr mld_icmp6_hdr; 181 struct in6_addr mld_addr; /* multicast address */ | 84 85#define icmp6_data32 icmp6_dataun.icmp6_un_data32 86#define icmp6_data16 icmp6_dataun.icmp6_un_data16 87#define icmp6_data8 icmp6_dataun.icmp6_un_data8 88#define icmp6_pptr icmp6_data32[0] /* parameter prob */ 89#define icmp6_mtu icmp6_data32[0] /* packet too big */ 90#define icmp6_id icmp6_data16[0] /* echo request/reply */ 91#define icmp6_seq icmp6_data16[1] /* echo request/reply */ --- 82 unchanged lines hidden (view full) --- 174#define ND_REDIRECT_ROUTER 1 /* redirect to a better router */ 175 176/* 177 * Multicast Listener Discovery 178 */ 179struct mld_hdr { 180 struct icmp6_hdr mld_icmp6_hdr; 181 struct in6_addr mld_addr; /* multicast address */ |
182} __attribute__((__packed__)); | 182} __packed; |
183 184/* definitions to provide backward compatibility to old KAME applications */ 185#ifndef _KERNEL 186#define mld6_hdr mld_hdr 187#define mld6_type mld_type 188#define mld6_code mld_code 189#define mld6_cksum mld_cksum 190#define mld6_maxdelay mld_maxdelay --- 10 unchanged lines hidden (view full) --- 201 202/* 203 * Neighbor Discovery 204 */ 205 206struct nd_router_solicit { /* router solicitation */ 207 struct icmp6_hdr nd_rs_hdr; 208 /* could be followed by options */ | 183 184/* definitions to provide backward compatibility to old KAME applications */ 185#ifndef _KERNEL 186#define mld6_hdr mld_hdr 187#define mld6_type mld_type 188#define mld6_code mld_code 189#define mld6_cksum mld_cksum 190#define mld6_maxdelay mld_maxdelay --- 10 unchanged lines hidden (view full) --- 201 202/* 203 * Neighbor Discovery 204 */ 205 206struct nd_router_solicit { /* router solicitation */ 207 struct icmp6_hdr nd_rs_hdr; 208 /* could be followed by options */ |
209} __attribute__((__packed__)); | 209} __packed; |
210 211#define nd_rs_type nd_rs_hdr.icmp6_type 212#define nd_rs_code nd_rs_hdr.icmp6_code 213#define nd_rs_cksum nd_rs_hdr.icmp6_cksum 214#define nd_rs_reserved nd_rs_hdr.icmp6_data32[0] 215 216struct nd_router_advert { /* router advertisement */ 217 struct icmp6_hdr nd_ra_hdr; 218 u_int32_t nd_ra_reachable; /* reachable time */ 219 u_int32_t nd_ra_retransmit; /* retransmit timer */ 220 /* could be followed by options */ | 210 211#define nd_rs_type nd_rs_hdr.icmp6_type 212#define nd_rs_code nd_rs_hdr.icmp6_code 213#define nd_rs_cksum nd_rs_hdr.icmp6_cksum 214#define nd_rs_reserved nd_rs_hdr.icmp6_data32[0] 215 216struct nd_router_advert { /* router advertisement */ 217 struct icmp6_hdr nd_ra_hdr; 218 u_int32_t nd_ra_reachable; /* reachable time */ 219 u_int32_t nd_ra_retransmit; /* retransmit timer */ 220 /* could be followed by options */ |
221} __attribute__((__packed__)); | 221} __packed; |
222 223#define nd_ra_type nd_ra_hdr.icmp6_type 224#define nd_ra_code nd_ra_hdr.icmp6_code 225#define nd_ra_cksum nd_ra_hdr.icmp6_cksum 226#define nd_ra_curhoplimit nd_ra_hdr.icmp6_data8[0] 227#define nd_ra_flags_reserved nd_ra_hdr.icmp6_data8[1] 228#define ND_RA_FLAG_MANAGED 0x80 229#define ND_RA_FLAG_OTHER 0x40 --- 11 unchanged lines hidden (view full) --- 241#define ND_RA_FLAG_RTPREF_RSV 0x10 /* 00010000 */ 242 243#define nd_ra_router_lifetime nd_ra_hdr.icmp6_data16[1] 244 245struct nd_neighbor_solicit { /* neighbor solicitation */ 246 struct icmp6_hdr nd_ns_hdr; 247 struct in6_addr nd_ns_target; /*target address */ 248 /* could be followed by options */ | 222 223#define nd_ra_type nd_ra_hdr.icmp6_type 224#define nd_ra_code nd_ra_hdr.icmp6_code 225#define nd_ra_cksum nd_ra_hdr.icmp6_cksum 226#define nd_ra_curhoplimit nd_ra_hdr.icmp6_data8[0] 227#define nd_ra_flags_reserved nd_ra_hdr.icmp6_data8[1] 228#define ND_RA_FLAG_MANAGED 0x80 229#define ND_RA_FLAG_OTHER 0x40 --- 11 unchanged lines hidden (view full) --- 241#define ND_RA_FLAG_RTPREF_RSV 0x10 /* 00010000 */ 242 243#define nd_ra_router_lifetime nd_ra_hdr.icmp6_data16[1] 244 245struct nd_neighbor_solicit { /* neighbor solicitation */ 246 struct icmp6_hdr nd_ns_hdr; 247 struct in6_addr nd_ns_target; /*target address */ 248 /* could be followed by options */ |
249} __attribute__((__packed__)); | 249} __packed; |
250 251#define nd_ns_type nd_ns_hdr.icmp6_type 252#define nd_ns_code nd_ns_hdr.icmp6_code 253#define nd_ns_cksum nd_ns_hdr.icmp6_cksum 254#define nd_ns_reserved nd_ns_hdr.icmp6_data32[0] 255 256struct nd_neighbor_advert { /* neighbor advertisement */ 257 struct icmp6_hdr nd_na_hdr; 258 struct in6_addr nd_na_target; /* target address */ 259 /* could be followed by options */ | 250 251#define nd_ns_type nd_ns_hdr.icmp6_type 252#define nd_ns_code nd_ns_hdr.icmp6_code 253#define nd_ns_cksum nd_ns_hdr.icmp6_cksum 254#define nd_ns_reserved nd_ns_hdr.icmp6_data32[0] 255 256struct nd_neighbor_advert { /* neighbor advertisement */ 257 struct icmp6_hdr nd_na_hdr; 258 struct in6_addr nd_na_target; /* target address */ 259 /* could be followed by options */ |
260} __attribute__((__packed__)); | 260} __packed; |
261 262#define nd_na_type nd_na_hdr.icmp6_type 263#define nd_na_code nd_na_hdr.icmp6_code 264#define nd_na_cksum nd_na_hdr.icmp6_cksum 265#define nd_na_flags_reserved nd_na_hdr.icmp6_data32[0] 266#if BYTE_ORDER == BIG_ENDIAN 267#define ND_NA_FLAG_ROUTER 0x80000000 268#define ND_NA_FLAG_SOLICITED 0x40000000 --- 6 unchanged lines hidden (view full) --- 275#endif 276#endif 277 278struct nd_redirect { /* redirect */ 279 struct icmp6_hdr nd_rd_hdr; 280 struct in6_addr nd_rd_target; /* target address */ 281 struct in6_addr nd_rd_dst; /* destination address */ 282 /* could be followed by options */ | 261 262#define nd_na_type nd_na_hdr.icmp6_type 263#define nd_na_code nd_na_hdr.icmp6_code 264#define nd_na_cksum nd_na_hdr.icmp6_cksum 265#define nd_na_flags_reserved nd_na_hdr.icmp6_data32[0] 266#if BYTE_ORDER == BIG_ENDIAN 267#define ND_NA_FLAG_ROUTER 0x80000000 268#define ND_NA_FLAG_SOLICITED 0x40000000 --- 6 unchanged lines hidden (view full) --- 275#endif 276#endif 277 278struct nd_redirect { /* redirect */ 279 struct icmp6_hdr nd_rd_hdr; 280 struct in6_addr nd_rd_target; /* target address */ 281 struct in6_addr nd_rd_dst; /* destination address */ 282 /* could be followed by options */ |
283} __attribute__((__packed__)); | 283} __packed; |
284 285#define nd_rd_type nd_rd_hdr.icmp6_type 286#define nd_rd_code nd_rd_hdr.icmp6_code 287#define nd_rd_cksum nd_rd_hdr.icmp6_cksum 288#define nd_rd_reserved nd_rd_hdr.icmp6_data32[0] 289 290struct nd_opt_hdr { /* Neighbor discovery option header */ 291 u_int8_t nd_opt_type; 292 u_int8_t nd_opt_len; 293 /* followed by option specific data*/ | 284 285#define nd_rd_type nd_rd_hdr.icmp6_type 286#define nd_rd_code nd_rd_hdr.icmp6_code 287#define nd_rd_cksum nd_rd_hdr.icmp6_cksum 288#define nd_rd_reserved nd_rd_hdr.icmp6_data32[0] 289 290struct nd_opt_hdr { /* Neighbor discovery option header */ 291 u_int8_t nd_opt_type; 292 u_int8_t nd_opt_len; 293 /* followed by option specific data*/ |
294} __attribute__((__packed__)); | 294} __packed; |
295 296#define ND_OPT_SOURCE_LINKADDR 1 297#define ND_OPT_TARGET_LINKADDR 2 298#define ND_OPT_PREFIX_INFORMATION 3 299#define ND_OPT_REDIRECTED_HEADER 4 300#define ND_OPT_MTU 5 301 302#define ND_OPT_ROUTE_INFO 200 /* draft-ietf-ipngwg-router-preference, not officially assigned yet */ 303 304struct nd_opt_prefix_info { /* prefix information */ 305 u_int8_t nd_opt_pi_type; 306 u_int8_t nd_opt_pi_len; 307 u_int8_t nd_opt_pi_prefix_len; 308 u_int8_t nd_opt_pi_flags_reserved; 309 u_int32_t nd_opt_pi_valid_time; 310 u_int32_t nd_opt_pi_preferred_time; 311 u_int32_t nd_opt_pi_reserved2; 312 struct in6_addr nd_opt_pi_prefix; | 295 296#define ND_OPT_SOURCE_LINKADDR 1 297#define ND_OPT_TARGET_LINKADDR 2 298#define ND_OPT_PREFIX_INFORMATION 3 299#define ND_OPT_REDIRECTED_HEADER 4 300#define ND_OPT_MTU 5 301 302#define ND_OPT_ROUTE_INFO 200 /* draft-ietf-ipngwg-router-preference, not officially assigned yet */ 303 304struct nd_opt_prefix_info { /* prefix information */ 305 u_int8_t nd_opt_pi_type; 306 u_int8_t nd_opt_pi_len; 307 u_int8_t nd_opt_pi_prefix_len; 308 u_int8_t nd_opt_pi_flags_reserved; 309 u_int32_t nd_opt_pi_valid_time; 310 u_int32_t nd_opt_pi_preferred_time; 311 u_int32_t nd_opt_pi_reserved2; 312 struct in6_addr nd_opt_pi_prefix; |
313} __attribute__((__packed__)); | 313} __packed; |
314 315#define ND_OPT_PI_FLAG_ONLINK 0x80 316#define ND_OPT_PI_FLAG_AUTO 0x40 317 318struct nd_opt_rd_hdr { /* redirected header */ 319 u_int8_t nd_opt_rh_type; 320 u_int8_t nd_opt_rh_len; 321 u_int16_t nd_opt_rh_reserved1; 322 u_int32_t nd_opt_rh_reserved2; 323 /* followed by IP header and data */ | 314 315#define ND_OPT_PI_FLAG_ONLINK 0x80 316#define ND_OPT_PI_FLAG_AUTO 0x40 317 318struct nd_opt_rd_hdr { /* redirected header */ 319 u_int8_t nd_opt_rh_type; 320 u_int8_t nd_opt_rh_len; 321 u_int16_t nd_opt_rh_reserved1; 322 u_int32_t nd_opt_rh_reserved2; 323 /* followed by IP header and data */ |
324} __attribute__((__packed__)); | 324} __packed; |
325 326struct nd_opt_mtu { /* MTU option */ 327 u_int8_t nd_opt_mtu_type; 328 u_int8_t nd_opt_mtu_len; 329 u_int16_t nd_opt_mtu_reserved; 330 u_int32_t nd_opt_mtu_mtu; | 325 326struct nd_opt_mtu { /* MTU option */ 327 u_int8_t nd_opt_mtu_type; 328 u_int8_t nd_opt_mtu_len; 329 u_int16_t nd_opt_mtu_reserved; 330 u_int32_t nd_opt_mtu_mtu; |
331} __attribute__((__packed__)); | 331} __packed; |
332 333struct nd_opt_route_info { /* route info */ 334 u_int8_t nd_opt_rti_type; 335 u_int8_t nd_opt_rti_len; 336 u_int8_t nd_opt_rti_prefixlen; 337 u_int8_t nd_opt_rti_flags; 338 u_int32_t nd_opt_rti_lifetime; 339 /* prefix follows */ | 332 333struct nd_opt_route_info { /* route info */ 334 u_int8_t nd_opt_rti_type; 335 u_int8_t nd_opt_rti_len; 336 u_int8_t nd_opt_rti_prefixlen; 337 u_int8_t nd_opt_rti_flags; 338 u_int32_t nd_opt_rti_lifetime; 339 /* prefix follows */ |
340} __attribute__((__packed__)); | 340} __packed; |
341 342/* 343 * icmp6 namelookup 344 */ 345 346struct icmp6_namelookup { 347 struct icmp6_hdr icmp6_nl_hdr; 348 u_int8_t icmp6_nl_nonce[8]; 349 int32_t icmp6_nl_ttl; 350#if 0 351 u_int8_t icmp6_nl_len; 352 u_int8_t icmp6_nl_name[3]; 353#endif 354 /* could be followed by options */ | 341 342/* 343 * icmp6 namelookup 344 */ 345 346struct icmp6_namelookup { 347 struct icmp6_hdr icmp6_nl_hdr; 348 u_int8_t icmp6_nl_nonce[8]; 349 int32_t icmp6_nl_ttl; 350#if 0 351 u_int8_t icmp6_nl_len; 352 u_int8_t icmp6_nl_name[3]; 353#endif 354 /* could be followed by options */ |
355} __attribute__((__packed__)); | 355} __packed; |
356 357/* 358 * icmp6 node information 359 */ 360struct icmp6_nodeinfo { 361 struct icmp6_hdr icmp6_ni_hdr; 362 u_int8_t icmp6_ni_nonce[8]; 363 /* could be followed by reply data */ | 356 357/* 358 * icmp6 node information 359 */ 360struct icmp6_nodeinfo { 361 struct icmp6_hdr icmp6_ni_hdr; 362 u_int8_t icmp6_ni_nonce[8]; 363 /* could be followed by reply data */ |
364} __attribute__((__packed__)); | 364} __packed; |
365 366#define ni_type icmp6_ni_hdr.icmp6_type 367#define ni_code icmp6_ni_hdr.icmp6_code 368#define ni_cksum icmp6_ni_hdr.icmp6_cksum 369#define ni_qtype icmp6_ni_hdr.icmp6_data16[0] 370#define ni_flags icmp6_ni_hdr.icmp6_data16[1] 371 372#define NI_QTYPE_NOOP 0 /* NOOP */ --- 46 unchanged lines hidden (view full) --- 419#define NI_NODEADDR_FLAG_ANYCAST 0x4000 /* just experimental. not in spec */ 420#endif 421#endif 422 423struct ni_reply_fqdn { 424 u_int32_t ni_fqdn_ttl; /* TTL */ 425 u_int8_t ni_fqdn_namelen; /* length in octets of the FQDN */ 426 u_int8_t ni_fqdn_name[3]; /* XXX: alignment */ | 365 366#define ni_type icmp6_ni_hdr.icmp6_type 367#define ni_code icmp6_ni_hdr.icmp6_code 368#define ni_cksum icmp6_ni_hdr.icmp6_cksum 369#define ni_qtype icmp6_ni_hdr.icmp6_data16[0] 370#define ni_flags icmp6_ni_hdr.icmp6_data16[1] 371 372#define NI_QTYPE_NOOP 0 /* NOOP */ --- 46 unchanged lines hidden (view full) --- 419#define NI_NODEADDR_FLAG_ANYCAST 0x4000 /* just experimental. not in spec */ 420#endif 421#endif 422 423struct ni_reply_fqdn { 424 u_int32_t ni_fqdn_ttl; /* TTL */ 425 u_int8_t ni_fqdn_namelen; /* length in octets of the FQDN */ 426 u_int8_t ni_fqdn_name[3]; /* XXX: alignment */ |
427} __attribute__((__packed__)); | 427} __packed; |
428 429/* 430 * Router Renumbering. as router-renum-08.txt 431 */ 432struct icmp6_router_renum { /* router renumbering header */ 433 struct icmp6_hdr rr_hdr; 434 u_int8_t rr_segnum; 435 u_int8_t rr_flags; 436 u_int16_t rr_maxdelay; 437 u_int32_t rr_reserved; | 428 429/* 430 * Router Renumbering. as router-renum-08.txt 431 */ 432struct icmp6_router_renum { /* router renumbering header */ 433 struct icmp6_hdr rr_hdr; 434 u_int8_t rr_segnum; 435 u_int8_t rr_flags; 436 u_int16_t rr_maxdelay; 437 u_int32_t rr_reserved; |
438} __attribute__((__packed__)); | 438} __packed; |
439 440#define ICMP6_RR_FLAGS_TEST 0x80 441#define ICMP6_RR_FLAGS_REQRESULT 0x40 442#define ICMP6_RR_FLAGS_FORCEAPPLY 0x20 443#define ICMP6_RR_FLAGS_SPECSITE 0x10 444#define ICMP6_RR_FLAGS_PREVDONE 0x08 445 446#define rr_type rr_hdr.icmp6_type --- 5 unchanged lines hidden (view full) --- 452 u_int8_t rpm_code; 453 u_int8_t rpm_len; 454 u_int8_t rpm_ordinal; 455 u_int8_t rpm_matchlen; 456 u_int8_t rpm_minlen; 457 u_int8_t rpm_maxlen; 458 u_int16_t rpm_reserved; 459 struct in6_addr rpm_prefix; | 439 440#define ICMP6_RR_FLAGS_TEST 0x80 441#define ICMP6_RR_FLAGS_REQRESULT 0x40 442#define ICMP6_RR_FLAGS_FORCEAPPLY 0x20 443#define ICMP6_RR_FLAGS_SPECSITE 0x10 444#define ICMP6_RR_FLAGS_PREVDONE 0x08 445 446#define rr_type rr_hdr.icmp6_type --- 5 unchanged lines hidden (view full) --- 452 u_int8_t rpm_code; 453 u_int8_t rpm_len; 454 u_int8_t rpm_ordinal; 455 u_int8_t rpm_matchlen; 456 u_int8_t rpm_minlen; 457 u_int8_t rpm_maxlen; 458 u_int16_t rpm_reserved; 459 struct in6_addr rpm_prefix; |
460} __attribute__((__packed__)); | 460} __packed; |
461 462#define RPM_PCO_ADD 1 463#define RPM_PCO_CHANGE 2 464#define RPM_PCO_SETGLOBAL 3 465#define RPM_PCO_MAX 4 466 467struct rr_pco_use { /* use prefix part */ 468 u_int8_t rpu_uselen; 469 u_int8_t rpu_keeplen; 470 u_int8_t rpu_ramask; 471 u_int8_t rpu_raflags; 472 u_int32_t rpu_vltime; 473 u_int32_t rpu_pltime; 474 u_int32_t rpu_flags; 475 struct in6_addr rpu_prefix; | 461 462#define RPM_PCO_ADD 1 463#define RPM_PCO_CHANGE 2 464#define RPM_PCO_SETGLOBAL 3 465#define RPM_PCO_MAX 4 466 467struct rr_pco_use { /* use prefix part */ 468 u_int8_t rpu_uselen; 469 u_int8_t rpu_keeplen; 470 u_int8_t rpu_ramask; 471 u_int8_t rpu_raflags; 472 u_int32_t rpu_vltime; 473 u_int32_t rpu_pltime; 474 u_int32_t rpu_flags; 475 struct in6_addr rpu_prefix; |
476} __attribute__((__packed__)); | 476} __packed; |
477#define ICMP6_RR_PCOUSE_RAFLAGS_ONLINK 0x80 478#define ICMP6_RR_PCOUSE_RAFLAGS_AUTO 0x40 479 480#if BYTE_ORDER == BIG_ENDIAN 481#define ICMP6_RR_PCOUSE_FLAGS_DECRVLTIME 0x80000000 482#define ICMP6_RR_PCOUSE_FLAGS_DECRPLTIME 0x40000000 483#elif BYTE_ORDER == LITTLE_ENDIAN 484#define ICMP6_RR_PCOUSE_FLAGS_DECRVLTIME 0x80 485#define ICMP6_RR_PCOUSE_FLAGS_DECRPLTIME 0x40 486#endif 487 488struct rr_result { /* router renumbering result message */ 489 u_int16_t rrr_flags; 490 u_int8_t rrr_ordinal; 491 u_int8_t rrr_matchedlen; 492 u_int32_t rrr_ifid; 493 struct in6_addr rrr_prefix; | 477#define ICMP6_RR_PCOUSE_RAFLAGS_ONLINK 0x80 478#define ICMP6_RR_PCOUSE_RAFLAGS_AUTO 0x40 479 480#if BYTE_ORDER == BIG_ENDIAN 481#define ICMP6_RR_PCOUSE_FLAGS_DECRVLTIME 0x80000000 482#define ICMP6_RR_PCOUSE_FLAGS_DECRPLTIME 0x40000000 483#elif BYTE_ORDER == LITTLE_ENDIAN 484#define ICMP6_RR_PCOUSE_FLAGS_DECRVLTIME 0x80 485#define ICMP6_RR_PCOUSE_FLAGS_DECRPLTIME 0x40 486#endif 487 488struct rr_result { /* router renumbering result message */ 489 u_int16_t rrr_flags; 490 u_int8_t rrr_ordinal; 491 u_int8_t rrr_matchedlen; 492 u_int32_t rrr_ifid; 493 struct in6_addr rrr_prefix; |
494} __attribute__((__packed__)); | 494} __packed; |
495#if BYTE_ORDER == BIG_ENDIAN 496#define ICMP6_RR_RESULT_FLAGS_OOB 0x0002 497#define ICMP6_RR_RESULT_FLAGS_FORBIDDEN 0x0001 498#elif BYTE_ORDER == LITTLE_ENDIAN 499#define ICMP6_RR_RESULT_FLAGS_OOB 0x0200 500#define ICMP6_RR_RESULT_FLAGS_FORBIDDEN 0x0100 501#endif 502 --- 238 unchanged lines hidden --- | 495#if BYTE_ORDER == BIG_ENDIAN 496#define ICMP6_RR_RESULT_FLAGS_OOB 0x0002 497#define ICMP6_RR_RESULT_FLAGS_FORBIDDEN 0x0001 498#elif BYTE_ORDER == LITTLE_ENDIAN 499#define ICMP6_RR_RESULT_FLAGS_OOB 0x0200 500#define ICMP6_RR_RESULT_FLAGS_FORBIDDEN 0x0100 501#endif 502 --- 238 unchanged lines hidden --- |