diff options
Diffstat (limited to 'inet/netinet')
-rw-r--r-- | inet/netinet/icmp6.h | 132 | ||||
-rw-r--r-- | inet/netinet/in.h | 61 | ||||
-rw-r--r-- | inet/netinet/ip6.h | 89 |
3 files changed, 39 insertions, 243 deletions
diff --git a/inet/netinet/icmp6.h b/inet/netinet/icmp6.h index 0cb1aa6a6c..4b17d9cd93 100644 --- a/inet/netinet/icmp6.h +++ b/inet/netinet/icmp6.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-1997,2000,2006 Free Software Foundation, Inc. +/* Copyright (C) 1991,92,93,94,95,96,97,2000 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 @@ -33,7 +33,7 @@ struct icmp6_filter { - uint32_t icmp6_filt[8]; + uint32_t data[8]; }; struct icmp6_hdr @@ -67,14 +67,14 @@ struct icmp6_hdr #define ICMP6_ECHO_REQUEST 128 #define ICMP6_ECHO_REPLY 129 -#define MLD_LISTENER_QUERY 130 -#define MLD_LISTENER_REPORT 131 -#define MLD_LISTENER_REDUCTION 132 +#define ICMP6_MEMBERSHIP_QUERY 130 +#define ICMP6_MEMBERSHIP_REPORT 131 +#define ICMP6_MEMBERSHIP_REDUCTION 132 #define ICMP6_DST_UNREACH_NOROUTE 0 /* no route to destination */ #define ICMP6_DST_UNREACH_ADMIN 1 /* communication with destination */ /* administratively prohibited */ -#define ICMP6_DST_UNREACH_BEYONDSCOPE 2 /* beyond scope of source address */ +#define ICMP6_DST_UNREACH_NOTNEIGHBOR 2 /* not a neighbor */ #define ICMP6_DST_UNREACH_ADDR 3 /* address unreachable */ #define ICMP6_DST_UNREACH_NOPORT 4 /* bad port */ @@ -86,16 +86,16 @@ struct icmp6_hdr #define ICMP6_PARAMPROB_OPTION 2 /* unrecognized IPv6 option */ #define ICMP6_FILTER_WILLPASS(type, filterp) \ - ((((filterp)->icmp6_filt[(type) >> 5]) & (1 << ((type) & 31))) == 0) + ((((filterp)->data[(type) >> 5]) & (1 << ((type) & 31))) == 0) #define ICMP6_FILTER_WILLBLOCK(type, filterp) \ - ((((filterp)->icmp6_filt[(type) >> 5]) & (1 << ((type) & 31))) != 0) + ((((filterp)->data[(type) >> 5]) & (1 << ((type) & 31))) != 0) #define ICMP6_FILTER_SETPASS(type, filterp) \ - ((((filterp)->icmp6_filt[(type) >> 5]) &= ~(1 << ((type) & 31)))) + ((((filterp)->data[(type) >> 5]) &= ~(1 << ((type) & 31)))) #define ICMP6_FILTER_SETBLOCK(type, filterp) \ - ((((filterp)->icmp6_filt[(type) >> 5]) |= (1 << ((type) & 31)))) + ((((filterp)->data[(type) >> 5]) |= (1 << ((type) & 31)))) #define ICMP6_FILTER_SETPASSALL(filterp) \ memset (filterp, 0, sizeof (struct icmp6_filter)); @@ -191,13 +191,13 @@ struct nd_opt_hdr /* Neighbor discovery option header */ /* followed by option specific data */ }; -#define ND_OPT_SOURCE_LINKADDR 1 -#define ND_OPT_TARGET_LINKADDR 2 -#define ND_OPT_PREFIX_INFORMATION 3 -#define ND_OPT_REDIRECTED_HEADER 4 -#define ND_OPT_MTU 5 -#define ND_OPT_RTR_ADV_INTERVAL 7 -#define ND_OPT_HOME_AGENT_INFO 8 +#define ND_OPT_SOURCE_LINKADDR 1 +#define ND_OPT_TARGET_LINKADDR 2 +#define ND_OPT_PREFIX_INFORMATION 3 +#define ND_OPT_REDIRECTED_HEADER 4 +#define ND_OPT_MTU 5 +#define ND_OPT_RTR_ADV_INTERVAL 7 +#define ND_OPT_HOME_AGENT_INFO 8 struct nd_opt_prefix_info /* prefix information */ { @@ -211,9 +211,9 @@ struct nd_opt_prefix_info /* prefix information */ struct in6_addr nd_opt_pi_prefix; }; -#define ND_OPT_PI_FLAG_ONLINK 0x80 -#define ND_OPT_PI_FLAG_AUTO 0x40 -#define ND_OPT_PI_FLAG_RADDR 0x20 +#define ND_OPT_PI_FLAG_ONLINK 0x80 +#define ND_OPT_PI_FLAG_AUTO 0x40 +#define ND_OPT_PI_FLAG_RADDR 0x20 struct nd_opt_rd_hdr /* redirected header */ { @@ -232,98 +232,6 @@ struct nd_opt_mtu /* MTU option */ uint32_t nd_opt_mtu_mtu; }; -struct mld_hdr - { - struct icmp6_hdr mld_icmp6_hdr; - struct in6_addr mld_addr; /* multicast address */ - }; - -#define mld_type mld_icmp6_hdr.icmp6_type -#define mld_code mld_icmp6_hdr.icmp6_code -#define mld_cksum mld_icmp6_hdr.icmp6_cksum -#define mld_maxdelay mld_icmp6_hdr.icmp6_data16[0] -#define mld_reserved mld_icmp6_hdr.icmp6_data16[1] - -#define ICMP6_ROUTER_RENUMBERING 138 - -struct icmp6_router_renum /* router renumbering header */ - { - struct icmp6_hdr rr_hdr; - uint8_t rr_segnum; - uint8_t rr_flags; - uint16_t rr_maxdelay; - uint32_t rr_reserved; - }; - -#define rr_type rr_hdr.icmp6_type -#define rr_code rr_hdr.icmp6_code -#define rr_cksum rr_hdr.icmp6_cksum -#define rr_seqnum rr_hdr.icmp6_data32[0] - -/* Router renumbering flags */ -#define ICMP6_RR_FLAGS_TEST 0x80 -#define ICMP6_RR_FLAGS_REQRESULT 0x40 -#define ICMP6_RR_FLAGS_FORCEAPPLY 0x20 -#define ICMP6_RR_FLAGS_SPECSITE 0x10 -#define ICMP6_RR_FLAGS_PREVDONE 0x08 - -struct rr_pco_match /* match prefix part */ - { - uint8_t rpm_code; - uint8_t rpm_len; - uint8_t rpm_ordinal; - uint8_t rpm_matchlen; - uint8_t rpm_minlen; - uint8_t rpm_maxlen; - uint16_t rpm_reserved; - struct in6_addr rpm_prefix; - }; - -/* PCO code values */ -#define RPM_PCO_ADD 1 -#define RPM_PCO_CHANGE 2 -#define RPM_PCO_SETGLOBAL 3 - -struct rr_pco_use /* use prefix part */ - { - uint8_t rpu_uselen; - uint8_t rpu_keeplen; - uint8_t rpu_ramask; - uint8_t rpu_raflags; - uint32_t rpu_vltime; - uint32_t rpu_pltime; - uint32_t rpu_flags; - struct in6_addr rpu_prefix; - }; - -#define ICMP6_RR_PCOUSE_RAFLAGS_ONLINK 0x20 -#define ICMP6_RR_PCOUSE_RAFLAGS_AUTO 0x10 - -#if BYTE_ORDER == BIG_ENDIAN -# define ICMP6_RR_PCOUSE_FLAGS_DECRVLTIME 0x80000000 -# define ICMP6_RR_PCOUSE_FLAGS_DECRPLTIME 0x40000000 -#elif BYTE_ORDER == LITTLE_ENDIAN -# define ICMP6_RR_PCOUSE_FLAGS_DECRVLTIME 0x80 -# define ICMP6_RR_PCOUSE_FLAGS_DECRPLTIME 0x40 -#endif - -struct rr_result /* router renumbering result message */ - { - uint16_t rrr_flags; - uint8_t rrr_ordinal; - uint8_t rrr_matchedlen; - uint32_t rrr_ifid; - struct in6_addr rrr_prefix; - }; - -#if BYTE_ORDER == BIG_ENDIAN -# define ICMP6_RR_RESULT_FLAGS_OOB 0x0002 -# define ICMP6_RR_RESULT_FLAGS_FORBIDDEN 0x0001 -#elif BYTE_ORDER == LITTLE_ENDIAN -# define ICMP6_RR_RESULT_FLAGS_OOB 0x0200 -# define ICMP6_RR_RESULT_FLAGS_FORBIDDEN 0x0100 -#endif - /* Mobile IPv6 extension: Advertisement Interval. */ struct nd_opt_adv_interval { diff --git a/inet/netinet/in.h b/inet/netinet/in.h index 4fdc0fadf1..8898be3664 100644 --- a/inet/netinet/in.h +++ b/inet/netinet/in.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2001, 2003, 2004, 2006 Free Software Foundation, Inc. +/* Copyright (C) 1991-2001, 2003, 2004 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 @@ -455,66 +455,25 @@ extern int bindresvport6 (int __sockfd, struct sockaddr_in6 *__sock_in) /* IPv6 packet information. */ struct in6_pktinfo { - struct in6_addr ipi6_addr; /* src/dst IPv6 address */ - unsigned int ipi6_ifindex; /* send/recv interface index */ - }; - -/* IPv6 MTU information. */ -struct ip6_mtuinfo - { - struct sockaddr_in6 ip6m_addr; /* dst address including zone ID */ - uint32_t ip6m_mtu; /* path MTU in host byte order */ + struct in6_addr ipi6_addr; /* src/dst IPv6 address */ + unsigned int ipi6_ifindex; /* send/recv interface index */ }; #ifdef __USE_GNU -/* Obsolete hop-by-hop and Destination Options Processing (RFC 2292). */ -extern int inet6_option_space (int __nbytes) - __THROW __attribute_deprecated__; +/* Hop-by-Hop and Destination Options Processing. */ +extern int inet6_option_space (int __nbytes) __THROW; extern int inet6_option_init (void *__bp, struct cmsghdr **__cmsgp, - int __type) __THROW __attribute_deprecated__; + int __type) __THROW; extern int inet6_option_append (struct cmsghdr *__cmsg, __const uint8_t *__typep, int __multx, - int __plusy) __THROW __attribute_deprecated__; + int __plusy) __THROW; extern uint8_t *inet6_option_alloc (struct cmsghdr *__cmsg, int __datalen, - int __multx, int __plusy) - __THROW __attribute_deprecated__; + int __multx, int __plusy) __THROW; extern int inet6_option_next (__const struct cmsghdr *__cmsg, - uint8_t **__tptrp) - __THROW __attribute_deprecated__; + uint8_t **__tptrp) __THROW; extern int inet6_option_find (__const struct cmsghdr *__cmsg, - uint8_t **__tptrp, int __type) - __THROW __attribute_deprecated__; - - -/* Hop-by-Hop and Destination Options Processing (RFC 3542). */ -extern int inet6_opt_init (void *__extbuf, socklen_t __extlen) __THROW; -extern int inet6_opt_append (void *__extbuf, socklen_t __extlen, int __offset, - uint8_t __type, socklen_t __len, uint8_t __align, - void **__databufp) __THROW; -extern int inet6_opt_finish (void *__extbuf, socklen_t __extlen, int __offset) - __THROW; -extern int inet6_opt_set_val (void *__databuf, int __offset, void *__val, - socklen_t __vallen) __THROW; -extern int inet6_opt_next (void *__extbuf, socklen_t __extlen, int __offset, - uint8_t *__typep, socklen_t *__lenp, - void **__databufp) __THROW; -extern int inet6_opt_find (void *__extbuf, socklen_t __extlen, int __offset, - uint8_t __type, socklen_t *__lenp, - void **__databufp) __THROW; -extern int inet6_opt_get_val (void *__databuf, int __offset, void *__val, - socklen_t __vallen) __THROW; - - -/* Routing Header Option (RFC 3542). */ -extern socklen_t inet6_rth_space (int __type, int __segments) __THROW; -extern void *inet6_rth_init (void *__bp, socklen_t __bp_len, int __type, - int __segments) __THROW; -extern int inet6_rth_add (void *__bp, __const struct in6_addr *__addr) __THROW; -extern int inet6_rth_reverse (__const void *__in, void *__out) __THROW; -extern int inet6_rth_segments (__const void *__bp) __THROW; -extern struct in6_addr *inet6_rth_getaddr (__const void *__bp, int __index) - __THROW; + uint8_t **__tptrp, int __type) __THROW; /* Multicast source filter support. */ 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 */ |