diff options
Diffstat (limited to 'inet/netinet/ip6.h')
-rw-r--r-- | inet/netinet/ip6.h | 89 |
1 files changed, 9 insertions, 80 deletions
diff --git a/inet/netinet/ip6.h b/inet/netinet/ip6.h index bef2af2f5a..7045836df6 100644 --- a/inet/netinet/ip6.h +++ b/inet/netinet/ip6.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-1997, 2001, 2003, 2006 Free Software Foundation, Inc. +/* Copyright (C) 1991-1997, 2001, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -89,8 +89,7 @@ struct ip6_rthdr0 uint8_t ip6r0_segleft; /* segments left */ uint8_t ip6r0_reserved; /* reserved field */ uint8_t ip6r0_slmap[3]; /* strict/loose bit map */ - /* followed by up to 127 struct in6_addr */ - struct in6_addr ip6r0_addr[0]; + struct in6_addr ip6r0_addr[1]; /* up to 23 addresses */ }; /* Fragment header */ @@ -102,88 +101,18 @@ struct ip6_frag uint32_t ip6f_ident; /* identification */ }; -#if BYTE_ORDER == BIG_ENDIAN -# define IP6F_OFF_MASK 0xfff8 /* mask out offset from _offlg */ -# define IP6F_RESERVED_MASK 0x0006 /* reserved bits in ip6f_offlg */ -# define IP6F_MORE_FRAG 0x0001 /* more-fragments flag */ +#if BYTE_ORDER == BIG_ENDIAN +#define IP6F_OFF_MASK 0xfff8 /* mask out offset from _offlg */ +#define IP6F_RESERVED_MASK 0x0006 /* reserved bits in ip6f_offlg */ +#define IP6F_MORE_FRAG 0x0001 /* more-fragments flag */ #else /* BYTE_ORDER == LITTLE_ENDIAN */ -# define IP6F_OFF_MASK 0xf8ff /* mask out offset from _offlg */ -# define IP6F_RESERVED_MASK 0x0600 /* reserved bits in ip6f_offlg */ -# define IP6F_MORE_FRAG 0x0100 /* more-fragments flag */ +#define IP6F_OFF_MASK 0xf8ff /* mask out offset from _offlg */ +#define IP6F_RESERVED_MASK 0x0600 /* reserved bits in ip6f_offlg */ +#define IP6F_MORE_FRAG 0x0100 /* more-fragments flag */ #endif -/* IPv6 options */ -struct ip6_opt - { - uint8_t ip6o_type; - uint8_t ip6o_len; - }; - -/* The high-order 3 bits of the option type define the behavior - * when processing an unknown option and whether or not the option - * content changes in flight. - */ -#define IP6OPT_TYPE(o) ((o) & 0xc0) -#define IP6OPT_TYPE_SKIP 0x00 -#define IP6OPT_TYPE_DISCARD 0x40 -#define IP6OPT_TYPE_FORCEICMP 0x80 -#define IP6OPT_TYPE_ICMP 0xc0 -#define IP6OPT_TYPE_MUTABLE 0x20 - /* Special option types for padding. */ #define IP6OPT_PAD1 0 #define IP6OPT_PADN 1 -#define IP6OPT_JUMBO 0xc2 -#define IP6OPT_NSAP_ADDR 0xc3 -#define IP6OPT_TUNNEL_LIMIT 0x04 -#define IP6OPT_ROUTER_ALERT 0x05 - -/* Jumbo Payload Option */ -struct ip6_opt_jumbo - { - uint8_t ip6oj_type; - uint8_t ip6oj_len; - uint8_t ip6oj_jumbo_len[4]; - }; -#define IP6OPT_JUMBO_LEN 6 - -/* NSAP Address Option */ -struct ip6_opt_nsap - { - uint8_t ip6on_type; - uint8_t ip6on_len; - uint8_t ip6on_src_nsap_len; - uint8_t ip6on_dst_nsap_len; - /* followed by source NSAP */ - /* followed by destination NSAP */ - }; - -/* Tunnel Limit Option */ -struct ip6_opt_tunnel - { - uint8_t ip6ot_type; - uint8_t ip6ot_len; - uint8_t ip6ot_encap_limit; - }; - -/* Router Alert Option */ -struct ip6_opt_router - { - uint8_t ip6or_type; - uint8_t ip6or_len; - uint8_t ip6or_value[2]; - }; - -/* Router alert values (in network byte order) */ -#if BYTE_ORDER == BIG_ENDIAN -# define IP6_ALERT_MLD 0x0000 -# define IP6_ALERT_RSVP 0x0001 -# define IP6_ALERT_AN 0x0002 -#else /* BYTE_ORDER == LITTLE_ENDING */ -# define IP6_ALERT_MLD 0x0000 -# define IP6_ALERT_RSVP 0x0100 -# define IP6_ALERT_AN 0x0200 -#endif - #endif /* netinet/ip6.h */ |