aboutsummaryrefslogtreecommitdiff
path: root/inet/netinet
diff options
context:
space:
mode:
Diffstat (limited to 'inet/netinet')
-rw-r--r--inet/netinet/ether.h55
-rw-r--r--inet/netinet/icmp6.h345
-rw-r--r--inet/netinet/igmp.h125
-rw-r--r--inet/netinet/in.h632
-rw-r--r--inet/netinet/ip6.h188
5 files changed, 0 insertions, 1345 deletions
diff --git a/inet/netinet/ether.h b/inet/netinet/ether.h
deleted file mode 100644
index 966ec8aec1..0000000000
--- a/inet/netinet/ether.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Functions for storing Ethernet addresses in ASCII and mapping to hostnames.
- Copyright (C) 1996-2017 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
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _NETINET_ETHER_H
-#define _NETINET_ETHER_H 1
-
-#include <features.h>
-
-/* Get definition of `struct ether_addr'. */
-#include <netinet/if_ether.h>
-
-#ifdef __USE_MISC
-__BEGIN_DECLS
-
-/* Convert 48 bit Ethernet ADDRess to ASCII. */
-extern char *ether_ntoa (const struct ether_addr *__addr) __THROW;
-extern char *ether_ntoa_r (const struct ether_addr *__addr, char *__buf)
- __THROW;
-
-/* Convert ASCII string S to 48 bit Ethernet address. */
-extern struct ether_addr *ether_aton (const char *__asc) __THROW;
-extern struct ether_addr *ether_aton_r (const char *__asc,
- struct ether_addr *__addr) __THROW;
-
-/* Map 48 bit Ethernet number ADDR to HOSTNAME. */
-extern int ether_ntohost (char *__hostname, const struct ether_addr *__addr)
- __THROW;
-
-/* Map HOSTNAME to 48 bit Ethernet address. */
-extern int ether_hostton (const char *__hostname, struct ether_addr *__addr)
- __THROW;
-
-/* Scan LINE and set ADDR and HOSTNAME. */
-extern int ether_line (const char *__line, struct ether_addr *__addr,
- char *__hostname) __THROW;
-
-__END_DECLS
-#endif /* Use misc. */
-
-#endif /* netinet/ether.h */
diff --git a/inet/netinet/icmp6.h b/inet/netinet/icmp6.h
deleted file mode 100644
index fc5d09ecac..0000000000
--- a/inet/netinet/icmp6.h
+++ /dev/null
@@ -1,345 +0,0 @@
-/* Copyright (C) 1991-2017 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
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _NETINET_ICMP6_H
-#define _NETINET_ICMP6_H 1
-
-#include <inttypes.h>
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-
-#define ICMP6_FILTER 1
-
-#define ICMP6_FILTER_BLOCK 1
-#define ICMP6_FILTER_PASS 2
-#define ICMP6_FILTER_BLOCKOTHERS 3
-#define ICMP6_FILTER_PASSONLY 4
-
-struct icmp6_filter
- {
- uint32_t icmp6_filt[8];
- };
-
-struct icmp6_hdr
- {
- uint8_t icmp6_type; /* type field */
- uint8_t icmp6_code; /* code field */
- uint16_t icmp6_cksum; /* checksum field */
- union
- {
- uint32_t icmp6_un_data32[1]; /* type-specific field */
- uint16_t icmp6_un_data16[2]; /* type-specific field */
- uint8_t icmp6_un_data8[4]; /* type-specific field */
- } icmp6_dataun;
- };
-
-#define icmp6_data32 icmp6_dataun.icmp6_un_data32
-#define icmp6_data16 icmp6_dataun.icmp6_un_data16
-#define icmp6_data8 icmp6_dataun.icmp6_un_data8
-#define icmp6_pptr icmp6_data32[0] /* parameter prob */
-#define icmp6_mtu icmp6_data32[0] /* packet too big */
-#define icmp6_id icmp6_data16[0] /* echo request/reply */
-#define icmp6_seq icmp6_data16[1] /* echo request/reply */
-#define icmp6_maxdelay icmp6_data16[0] /* mcast group membership */
-
-#define ICMP6_DST_UNREACH 1
-#define ICMP6_PACKET_TOO_BIG 2
-#define ICMP6_TIME_EXCEEDED 3
-#define ICMP6_PARAM_PROB 4
-
-#define ICMP6_INFOMSG_MASK 0x80 /* all informational messages */
-
-#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_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_ADDR 3 /* address unreachable */
-#define ICMP6_DST_UNREACH_NOPORT 4 /* bad port */
-
-#define ICMP6_TIME_EXCEED_TRANSIT 0 /* Hop Limit == 0 in transit */
-#define ICMP6_TIME_EXCEED_REASSEMBLY 1 /* Reassembly time out */
-
-#define ICMP6_PARAMPROB_HEADER 0 /* erroneous header field */
-#define ICMP6_PARAMPROB_NEXTHEADER 1 /* unrecognized Next Header */
-#define ICMP6_PARAMPROB_OPTION 2 /* unrecognized IPv6 option */
-
-#define ICMP6_FILTER_WILLPASS(type, filterp) \
- ((((filterp)->icmp6_filt[(type) >> 5]) & (1 << ((type) & 31))) == 0)
-
-#define ICMP6_FILTER_WILLBLOCK(type, filterp) \
- ((((filterp)->icmp6_filt[(type) >> 5]) & (1 << ((type) & 31))) != 0)
-
-#define ICMP6_FILTER_SETPASS(type, filterp) \
- ((((filterp)->icmp6_filt[(type) >> 5]) &= ~(1 << ((type) & 31))))
-
-#define ICMP6_FILTER_SETBLOCK(type, filterp) \
- ((((filterp)->icmp6_filt[(type) >> 5]) |= (1 << ((type) & 31))))
-
-#define ICMP6_FILTER_SETPASSALL(filterp) \
- memset (filterp, 0, sizeof (struct icmp6_filter));
-
-#define ICMP6_FILTER_SETBLOCKALL(filterp) \
- memset (filterp, 0xFF, sizeof (struct icmp6_filter));
-
-#define ND_ROUTER_SOLICIT 133
-#define ND_ROUTER_ADVERT 134
-#define ND_NEIGHBOR_SOLICIT 135
-#define ND_NEIGHBOR_ADVERT 136
-#define ND_REDIRECT 137
-
-struct nd_router_solicit /* router solicitation */
- {
- struct icmp6_hdr nd_rs_hdr;
- /* could be followed by options */
- };
-
-#define nd_rs_type nd_rs_hdr.icmp6_type
-#define nd_rs_code nd_rs_hdr.icmp6_code
-#define nd_rs_cksum nd_rs_hdr.icmp6_cksum
-#define nd_rs_reserved nd_rs_hdr.icmp6_data32[0]
-
-struct nd_router_advert /* router advertisement */
- {
- struct icmp6_hdr nd_ra_hdr;
- uint32_t nd_ra_reachable; /* reachable time */
- uint32_t nd_ra_retransmit; /* retransmit timer */
- /* could be followed by options */
- };
-
-#define nd_ra_type nd_ra_hdr.icmp6_type
-#define nd_ra_code nd_ra_hdr.icmp6_code
-#define nd_ra_cksum nd_ra_hdr.icmp6_cksum
-#define nd_ra_curhoplimit nd_ra_hdr.icmp6_data8[0]
-#define nd_ra_flags_reserved nd_ra_hdr.icmp6_data8[1]
-#define ND_RA_FLAG_MANAGED 0x80
-#define ND_RA_FLAG_OTHER 0x40
-#define ND_RA_FLAG_HOME_AGENT 0x20
-#define nd_ra_router_lifetime nd_ra_hdr.icmp6_data16[1]
-
-struct nd_neighbor_solicit /* neighbor solicitation */
- {
- struct icmp6_hdr nd_ns_hdr;
- struct in6_addr nd_ns_target; /* target address */
- /* could be followed by options */
- };
-
-#define nd_ns_type nd_ns_hdr.icmp6_type
-#define nd_ns_code nd_ns_hdr.icmp6_code
-#define nd_ns_cksum nd_ns_hdr.icmp6_cksum
-#define nd_ns_reserved nd_ns_hdr.icmp6_data32[0]
-
-struct nd_neighbor_advert /* neighbor advertisement */
- {
- struct icmp6_hdr nd_na_hdr;
- struct in6_addr nd_na_target; /* target address */
- /* could be followed by options */
- };
-
-#define nd_na_type nd_na_hdr.icmp6_type
-#define nd_na_code nd_na_hdr.icmp6_code
-#define nd_na_cksum nd_na_hdr.icmp6_cksum
-#define nd_na_flags_reserved nd_na_hdr.icmp6_data32[0]
-#if __BYTE_ORDER == __BIG_ENDIAN
-#define ND_NA_FLAG_ROUTER 0x80000000
-#define ND_NA_FLAG_SOLICITED 0x40000000
-#define ND_NA_FLAG_OVERRIDE 0x20000000
-#else /* __BYTE_ORDER == __LITTLE_ENDIAN */
-#define ND_NA_FLAG_ROUTER 0x00000080
-#define ND_NA_FLAG_SOLICITED 0x00000040
-#define ND_NA_FLAG_OVERRIDE 0x00000020
-#endif
-
-struct nd_redirect /* redirect */
- {
- struct icmp6_hdr nd_rd_hdr;
- struct in6_addr nd_rd_target; /* target address */
- struct in6_addr nd_rd_dst; /* destination address */
- /* could be followed by options */
- };
-
-#define nd_rd_type nd_rd_hdr.icmp6_type
-#define nd_rd_code nd_rd_hdr.icmp6_code
-#define nd_rd_cksum nd_rd_hdr.icmp6_cksum
-#define nd_rd_reserved nd_rd_hdr.icmp6_data32[0]
-
-struct nd_opt_hdr /* Neighbor discovery option header */
- {
- uint8_t nd_opt_type;
- uint8_t nd_opt_len; /* in units of 8 octets */
- /* 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
-
-struct nd_opt_prefix_info /* prefix information */
- {
- uint8_t nd_opt_pi_type;
- uint8_t nd_opt_pi_len;
- uint8_t nd_opt_pi_prefix_len;
- uint8_t nd_opt_pi_flags_reserved;
- uint32_t nd_opt_pi_valid_time;
- uint32_t nd_opt_pi_preferred_time;
- uint32_t nd_opt_pi_reserved2;
- 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
-
-struct nd_opt_rd_hdr /* redirected header */
- {
- uint8_t nd_opt_rh_type;
- uint8_t nd_opt_rh_len;
- uint16_t nd_opt_rh_reserved1;
- uint32_t nd_opt_rh_reserved2;
- /* followed by IP header and data */
- };
-
-struct nd_opt_mtu /* MTU option */
- {
- uint8_t nd_opt_mtu_type;
- uint8_t nd_opt_mtu_len;
- uint16_t nd_opt_mtu_reserved;
- 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
- {
- uint8_t nd_opt_adv_interval_type;
- uint8_t nd_opt_adv_interval_len;
- uint16_t nd_opt_adv_interval_reserved;
- uint32_t nd_opt_adv_interval_ival;
- };
-
-/* Mobile IPv6 extension: Home Agent Info. */
-struct nd_opt_home_agent_info
- {
- uint8_t nd_opt_home_agent_info_type;
- uint8_t nd_opt_home_agent_info_len;
- uint16_t nd_opt_home_agent_info_reserved;
- uint16_t nd_opt_home_agent_info_preference;
- uint16_t nd_opt_home_agent_info_lifetime;
- };
-
-#endif /* netinet/icmpv6.h */
diff --git a/inet/netinet/igmp.h b/inet/netinet/igmp.h
deleted file mode 100644
index 292ced4a95..0000000000
--- a/inet/netinet/igmp.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/* Copyright (C) 1997-2017 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
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _NETINET_IGMP_H
-#define _NETINET_IGMP_H 1
-
-#include <sys/cdefs.h>
-#include <sys/types.h>
-
-#ifdef __USE_MISC
-
-#include <netinet/in.h>
-
-__BEGIN_DECLS
-
-/*
- * Copyright (c) 1988 Stephen Deering.
- * Copyright (c) 1992, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * Stephen Deering of Stanford University.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#)igmp.h 8.1 (Berkeley) 6/10/93
- * $FreeBSD$
- */
-
-struct igmp {
- uint8_t igmp_type; /* IGMP type */
- uint8_t igmp_code; /* routing code */
- uint16_t igmp_cksum; /* checksum */
- struct in_addr igmp_group; /* group address */
-};
-
-#define IGMP_MINLEN 8
-
-/*
- * Message types, including version number.
- */
-#define IGMP_MEMBERSHIP_QUERY 0x11 /* membership query */
-#define IGMP_V1_MEMBERSHIP_REPORT 0x12 /* Ver. 1 membership report */
-#define IGMP_V2_MEMBERSHIP_REPORT 0x16 /* Ver. 2 membership report */
-#define IGMP_V2_LEAVE_GROUP 0x17 /* Leave-group message */
-
-#define IGMP_DVMRP 0x13 /* DVMRP routing message */
-#define IGMP_PIM 0x14 /* PIM routing message */
-#define IGMP_TRACE 0x15
-
-#define IGMP_MTRACE_RESP 0x1e /* traceroute resp.(to sender)*/
-#define IGMP_MTRACE 0x1f /* mcast traceroute messages */
-
-#define IGMP_MAX_HOST_REPORT_DELAY 10 /* max delay for response to */
- /* query (in seconds) according */
- /* to RFC1112 */
-#define IGMP_TIMER_SCALE 10 /* denotes that the igmp code field */
- /* specifies time in 10th of seconds*/
-
-/*
- * States for the IGMP v2 state table.
- */
-#define IGMP_DELAYING_MEMBER 1
-#define IGMP_IDLE_MEMBER 2
-#define IGMP_LAZY_MEMBER 3
-#define IGMP_SLEEPING_MEMBER 4
-#define IGMP_AWAKENING_MEMBER 5
-
-/*
- * States for IGMP router version cache.
- */
-#define IGMP_v1_ROUTER 1
-#define IGMP_v2_ROUTER 2
-
-/*
- * The following four defininitions are for backwards compatibility.
- * They should be removed as soon as all applications are updated to
- * use the new constant names.
- */
-#define IGMP_HOST_MEMBERSHIP_QUERY IGMP_MEMBERSHIP_QUERY
-#define IGMP_HOST_MEMBERSHIP_REPORT IGMP_V1_MEMBERSHIP_REPORT
-#define IGMP_HOST_NEW_MEMBERSHIP_REPORT IGMP_V2_MEMBERSHIP_REPORT
-#define IGMP_HOST_LEAVE_MESSAGE IGMP_V2_LEAVE_GROUP
-
-__END_DECLS
-
-#endif
-
-#endif /* netinet/igmp.h */
diff --git a/inet/netinet/in.h b/inet/netinet/in.h
deleted file mode 100644
index f94b4b4e1c..0000000000
--- a/inet/netinet/in.h
+++ /dev/null
@@ -1,632 +0,0 @@
-/* Copyright (C) 1991-2017 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
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _NETINET_IN_H
-#define _NETINET_IN_H 1
-
-#include <features.h>
-#include <bits/stdint-uintn.h>
-#include <sys/socket.h>
-#include <bits/types.h>
-
-
-__BEGIN_DECLS
-
-/* Internet address. */
-typedef uint32_t in_addr_t;
-struct in_addr
- {
- in_addr_t s_addr;
- };
-
-/* Get system-specific definitions. */
-#include <bits/in.h>
-
-/* Standard well-defined IP protocols. */
-enum
- {
- IPPROTO_IP = 0, /* Dummy protocol for TCP. */
-#define IPPROTO_IP IPPROTO_IP
- IPPROTO_ICMP = 1, /* Internet Control Message Protocol. */
-#define IPPROTO_ICMP IPPROTO_ICMP
- IPPROTO_IGMP = 2, /* Internet Group Management Protocol. */
-#define IPPROTO_IGMP IPPROTO_IGMP
- IPPROTO_IPIP = 4, /* IPIP tunnels (older KA9Q tunnels use 94). */
-#define IPPROTO_IPIP IPPROTO_IPIP
- IPPROTO_TCP = 6, /* Transmission Control Protocol. */
-#define IPPROTO_TCP IPPROTO_TCP
- IPPROTO_EGP = 8, /* Exterior Gateway Protocol. */
-#define IPPROTO_EGP IPPROTO_EGP
- IPPROTO_PUP = 12, /* PUP protocol. */
-#define IPPROTO_PUP IPPROTO_PUP
- IPPROTO_UDP = 17, /* User Datagram Protocol. */
-#define IPPROTO_UDP IPPROTO_UDP
- IPPROTO_IDP = 22, /* XNS IDP protocol. */
-#define IPPROTO_IDP IPPROTO_IDP
- IPPROTO_TP = 29, /* SO Transport Protocol Class 4. */
-#define IPPROTO_TP IPPROTO_TP
- IPPROTO_DCCP = 33, /* Datagram Congestion Control Protocol. */
-#define IPPROTO_DCCP IPPROTO_DCCP
- IPPROTO_IPV6 = 41, /* IPv6 header. */
-#define IPPROTO_IPV6 IPPROTO_IPV6
- IPPROTO_RSVP = 46, /* Reservation Protocol. */
-#define IPPROTO_RSVP IPPROTO_RSVP
- IPPROTO_GRE = 47, /* General Routing Encapsulation. */
-#define IPPROTO_GRE IPPROTO_GRE
- IPPROTO_ESP = 50, /* encapsulating security payload. */
-#define IPPROTO_ESP IPPROTO_ESP
- IPPROTO_AH = 51, /* authentication header. */
-#define IPPROTO_AH IPPROTO_AH
- IPPROTO_MTP = 92, /* Multicast Transport Protocol. */
-#define IPPROTO_MTP IPPROTO_MTP
- IPPROTO_BEETPH = 94, /* IP option pseudo header for BEET. */
-#define IPPROTO_BEETPH IPPROTO_BEETPH
- IPPROTO_ENCAP = 98, /* Encapsulation Header. */
-#define IPPROTO_ENCAP IPPROTO_ENCAP
- IPPROTO_PIM = 103, /* Protocol Independent Multicast. */
-#define IPPROTO_PIM IPPROTO_PIM
- IPPROTO_COMP = 108, /* Compression Header Protocol. */
-#define IPPROTO_COMP IPPROTO_COMP
- IPPROTO_SCTP = 132, /* Stream Control Transmission Protocol. */
-#define IPPROTO_SCTP IPPROTO_SCTP
- IPPROTO_UDPLITE = 136, /* UDP-Lite protocol. */
-#define IPPROTO_UDPLITE IPPROTO_UDPLITE
- IPPROTO_MPLS = 137, /* MPLS in IP. */
-#define IPPROTO_MPLS IPPROTO_MPLS
- IPPROTO_RAW = 255, /* Raw IP packets. */
-#define IPPROTO_RAW IPPROTO_RAW
- IPPROTO_MAX
- };
-
-/* If __USE_KERNEL_IPV6_DEFS is 1 then the user has included the kernel
- network headers first and we should use those ABI-identical definitions
- instead of our own, otherwise 0. */
-#if !__USE_KERNEL_IPV6_DEFS
-enum
- {
- IPPROTO_HOPOPTS = 0, /* IPv6 Hop-by-Hop options. */
-#define IPPROTO_HOPOPTS IPPROTO_HOPOPTS
- IPPROTO_ROUTING = 43, /* IPv6 routing header. */
-#define IPPROTO_ROUTING IPPROTO_ROUTING
- IPPROTO_FRAGMENT = 44, /* IPv6 fragmentation header. */
-#define IPPROTO_FRAGMENT IPPROTO_FRAGMENT
- IPPROTO_ICMPV6 = 58, /* ICMPv6. */
-#define IPPROTO_ICMPV6 IPPROTO_ICMPV6
- IPPROTO_NONE = 59, /* IPv6 no next header. */
-#define IPPROTO_NONE IPPROTO_NONE
- IPPROTO_DSTOPTS = 60, /* IPv6 destination options. */
-#define IPPROTO_DSTOPTS IPPROTO_DSTOPTS
- IPPROTO_MH = 135 /* IPv6 mobility header. */
-#define IPPROTO_MH IPPROTO_MH
- };
-#endif /* !__USE_KERNEL_IPV6_DEFS */
-
-/* Type to represent a port. */
-typedef uint16_t in_port_t;
-
-/* Standard well-known ports. */
-enum
- {
- IPPORT_ECHO = 7, /* Echo service. */
- IPPORT_DISCARD = 9, /* Discard transmissions service. */
- IPPORT_SYSTAT = 11, /* System status service. */
- IPPORT_DAYTIME = 13, /* Time of day service. */
- IPPORT_NETSTAT = 15, /* Network status service. */
- IPPORT_FTP = 21, /* File Transfer Protocol. */
- IPPORT_TELNET = 23, /* Telnet protocol. */
- IPPORT_SMTP = 25, /* Simple Mail Transfer Protocol. */
- IPPORT_TIMESERVER = 37, /* Timeserver service. */
- IPPORT_NAMESERVER = 42, /* Domain Name Service. */
- IPPORT_WHOIS = 43, /* Internet Whois service. */
- IPPORT_MTP = 57,
-
- IPPORT_TFTP = 69, /* Trivial File Transfer Protocol. */
- IPPORT_RJE = 77,
- IPPORT_FINGER = 79, /* Finger service. */
- IPPORT_TTYLINK = 87,
- IPPORT_SUPDUP = 95, /* SUPDUP protocol. */
-
-
- IPPORT_EXECSERVER = 512, /* execd service. */
- IPPORT_LOGINSERVER = 513, /* rlogind service. */
- IPPORT_CMDSERVER = 514,
- IPPORT_EFSSERVER = 520,
-
- /* UDP ports. */
- IPPORT_BIFFUDP = 512,
- IPPORT_WHOSERVER = 513,
- IPPORT_ROUTESERVER = 520,
-
- /* Ports less than this value are reserved for privileged processes. */
- IPPORT_RESERVED = 1024,
-
- /* Ports greater this value are reserved for (non-privileged) servers. */
- IPPORT_USERRESERVED = 5000
- };
-
-/* Definitions of the bits in an Internet address integer.
-
- On subnets, host and network parts are found according to
- the subnet mask, not these masks. */
-
-#define IN_CLASSA(a) ((((in_addr_t)(a)) & 0x80000000) == 0)
-#define IN_CLASSA_NET 0xff000000
-#define IN_CLASSA_NSHIFT 24
-#define IN_CLASSA_HOST (0xffffffff & ~IN_CLASSA_NET)
-#define IN_CLASSA_MAX 128
-
-#define IN_CLASSB(a) ((((in_addr_t)(a)) & 0xc0000000) == 0x80000000)
-#define IN_CLASSB_NET 0xffff0000
-#define IN_CLASSB_NSHIFT 16
-#define IN_CLASSB_HOST (0xffffffff & ~IN_CLASSB_NET)
-#define IN_CLASSB_MAX 65536
-
-#define IN_CLASSC(a) ((((in_addr_t)(a)) & 0xe0000000) == 0xc0000000)
-#define IN_CLASSC_NET 0xffffff00
-#define IN_CLASSC_NSHIFT 8
-#define IN_CLASSC_HOST (0xffffffff & ~IN_CLASSC_NET)
-
-#define IN_CLASSD(a) ((((in_addr_t)(a)) & 0xf0000000) == 0xe0000000)
-#define IN_MULTICAST(a) IN_CLASSD(a)
-
-#define IN_EXPERIMENTAL(a) ((((in_addr_t)(a)) & 0xe0000000) == 0xe0000000)
-#define IN_BADCLASS(a) ((((in_addr_t)(a)) & 0xf0000000) == 0xf0000000)
-
-/* Address to accept any incoming messages. */
-#define INADDR_ANY ((in_addr_t) 0x00000000)
-/* Address to send to all hosts. */
-#define INADDR_BROADCAST ((in_addr_t) 0xffffffff)
-/* Address indicating an error return. */
-#define INADDR_NONE ((in_addr_t) 0xffffffff)
-
-/* Network number for local host loopback. */
-#define IN_LOOPBACKNET 127
-/* Address to loopback in software to local host. */
-#ifndef INADDR_LOOPBACK
-# define INADDR_LOOPBACK ((in_addr_t) 0x7f000001) /* Inet 127.0.0.1. */
-#endif
-
-/* Defines for Multicast INADDR. */
-#define INADDR_UNSPEC_GROUP ((in_addr_t) 0xe0000000) /* 224.0.0.0 */
-#define INADDR_ALLHOSTS_GROUP ((in_addr_t) 0xe0000001) /* 224.0.0.1 */
-#define INADDR_ALLRTRS_GROUP ((in_addr_t) 0xe0000002) /* 224.0.0.2 */
-#define INADDR_MAX_LOCAL_GROUP ((in_addr_t) 0xe00000ff) /* 224.0.0.255 */
-
-#if !__USE_KERNEL_IPV6_DEFS
-/* IPv6 address */
-struct in6_addr
- {
- union
- {
- uint8_t __u6_addr8[16];
- uint16_t __u6_addr16[8];
- uint32_t __u6_addr32[4];
- } __in6_u;
-#define s6_addr __in6_u.__u6_addr8
-#ifdef __USE_MISC
-# define s6_addr16 __in6_u.__u6_addr16
-# define s6_addr32 __in6_u.__u6_addr32
-#endif
- };
-#endif /* !__USE_KERNEL_IPV6_DEFS */
-
-extern const struct in6_addr in6addr_any; /* :: */
-extern const struct in6_addr in6addr_loopback; /* ::1 */
-#define IN6ADDR_ANY_INIT { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } } }
-#define IN6ADDR_LOOPBACK_INIT { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 } } }
-
-#define INET_ADDRSTRLEN 16
-#define INET6_ADDRSTRLEN 46
-
-
-/* Structure describing an Internet socket address. */
-struct sockaddr_in
- {
- __SOCKADDR_COMMON (sin_);
- in_port_t sin_port; /* Port number. */
- struct in_addr sin_addr; /* Internet address. */
-
- /* Pad to size of `struct sockaddr'. */
- unsigned char sin_zero[sizeof (struct sockaddr) -
- __SOCKADDR_COMMON_SIZE -
- sizeof (in_port_t) -
- sizeof (struct in_addr)];
- };
-
-#if !__USE_KERNEL_IPV6_DEFS
-/* Ditto, for IPv6. */
-struct sockaddr_in6
- {
- __SOCKADDR_COMMON (sin6_);
- in_port_t sin6_port; /* Transport layer port # */
- uint32_t sin6_flowinfo; /* IPv6 flow information */
- struct in6_addr sin6_addr; /* IPv6 address */
- uint32_t sin6_scope_id; /* IPv6 scope-id */
- };
-#endif /* !__USE_KERNEL_IPV6_DEFS */
-
-#ifdef __USE_MISC
-/* IPv4 multicast request. */
-struct ip_mreq
- {
- /* IP multicast address of group. */
- struct in_addr imr_multiaddr;
-
- /* Local IP address of interface. */
- struct in_addr imr_interface;
- };
-
-struct ip_mreq_source
- {
- /* IP multicast address of group. */
- struct in_addr imr_multiaddr;
-
- /* IP address of interface. */
- struct in_addr imr_interface;
-
- /* IP address of source. */
- struct in_addr imr_sourceaddr;
- };
-#endif
-
-#if !__USE_KERNEL_IPV6_DEFS
-/* Likewise, for IPv6. */
-struct ipv6_mreq
- {
- /* IPv6 multicast address of group */
- struct in6_addr ipv6mr_multiaddr;
-
- /* local interface */
- unsigned int ipv6mr_interface;
- };
-#endif /* !__USE_KERNEL_IPV6_DEFS */
-
-#ifdef __USE_MISC
-/* Multicast group request. */
-struct group_req
- {
- /* Interface index. */
- uint32_t gr_interface;
-
- /* Group address. */
- struct sockaddr_storage gr_group;
- };
-
-struct group_source_req
- {
- /* Interface index. */
- uint32_t gsr_interface;
-
- /* Group address. */
- struct sockaddr_storage gsr_group;
-
- /* Source address. */
- struct sockaddr_storage gsr_source;
- };
-
-
-/* Full-state filter operations. */
-struct ip_msfilter
- {
- /* IP multicast address of group. */
- struct in_addr imsf_multiaddr;
-
- /* Local IP address of interface. */
- struct in_addr imsf_interface;
-
- /* Filter mode. */
- uint32_t imsf_fmode;
-
- /* Number of source addresses. */
- uint32_t imsf_numsrc;
- /* Source addresses. */
- struct in_addr imsf_slist[1];
- };
-
-#define IP_MSFILTER_SIZE(numsrc) (sizeof (struct ip_msfilter) \
- - sizeof (struct in_addr) \
- + (numsrc) * sizeof (struct in_addr))
-
-struct group_filter
- {
- /* Interface index. */
- uint32_t gf_interface;
-
- /* Group address. */
- struct sockaddr_storage gf_group;
-
- /* Filter mode. */
- uint32_t gf_fmode;
-
- /* Number of source addresses. */
- uint32_t gf_numsrc;
- /* Source addresses. */
- struct sockaddr_storage gf_slist[1];
-};
-
-#define GROUP_FILTER_SIZE(numsrc) (sizeof (struct group_filter) \
- - sizeof (struct sockaddr_storage) \
- + ((numsrc) \
- * sizeof (struct sockaddr_storage)))
-#endif
-
-/* Functions to convert between host and network byte order.
-
- Please note that these functions normally take `unsigned long int' or
- `unsigned short int' values as arguments and also return them. But
- this was a short-sighted decision since on different systems the types
- may have different representations but the values are always the same. */
-
-extern uint32_t ntohl (uint32_t __netlong) __THROW __attribute__ ((__const__));
-extern uint16_t ntohs (uint16_t __netshort)
- __THROW __attribute__ ((__const__));
-extern uint32_t htonl (uint32_t __hostlong)
- __THROW __attribute__ ((__const__));
-extern uint16_t htons (uint16_t __hostshort)
- __THROW __attribute__ ((__const__));
-
-#include <endian.h>
-
-/* Get machine dependent optimized versions of byte swapping functions. */
-#include <bits/byteswap.h>
-#include <bits/uintn-identity.h>
-
-#ifdef __OPTIMIZE__
-/* We can optimize calls to the conversion functions. Either nothing has
- to be done or we are using directly the byte-swapping functions which
- often can be inlined. */
-# if __BYTE_ORDER == __BIG_ENDIAN
-/* The host byte order is the same as network byte order,
- so these functions are all just identity. */
-# define ntohl(x) __uint32_identity (x)
-# define ntohs(x) __uint16_identity (x)
-# define htonl(x) __uint32_identity (x)
-# define htons(x) __uint16_identity (x)
-# else
-# if __BYTE_ORDER == __LITTLE_ENDIAN
-# define ntohl(x) __bswap_32 (x)
-# define ntohs(x) __bswap_16 (x)
-# define htonl(x) __bswap_32 (x)
-# define htons(x) __bswap_16 (x)
-# endif
-# endif
-#endif
-
-#ifdef __GNUC__
-# define IN6_IS_ADDR_UNSPECIFIED(a) \
- (__extension__ \
- ({ const struct in6_addr *__a = (const struct in6_addr *) (a); \
- __a->__in6_u.__u6_addr32[0] == 0 \
- && __a->__in6_u.__u6_addr32[1] == 0 \
- && __a->__in6_u.__u6_addr32[2] == 0 \
- && __a->__in6_u.__u6_addr32[3] == 0; }))
-
-# define IN6_IS_ADDR_LOOPBACK(a) \
- (__extension__ \
- ({ const struct in6_addr *__a = (const struct in6_addr *) (a); \
- __a->__in6_u.__u6_addr32[0] == 0 \
- && __a->__in6_u.__u6_addr32[1] == 0 \
- && __a->__in6_u.__u6_addr32[2] == 0 \
- && __a->__in6_u.__u6_addr32[3] == htonl (1); }))
-
-# define IN6_IS_ADDR_LINKLOCAL(a) \
- (__extension__ \
- ({ const struct in6_addr *__a = (const struct in6_addr *) (a); \
- (__a->__in6_u.__u6_addr32[0] & htonl (0xffc00000)) == htonl (0xfe800000); }))
-
-# define IN6_IS_ADDR_SITELOCAL(a) \
- (__extension__ \
- ({ const struct in6_addr *__a = (const struct in6_addr *) (a); \
- (__a->__in6_u.__u6_addr32[0] & htonl (0xffc00000)) == htonl (0xfec00000); }))
-
-# define IN6_IS_ADDR_V4MAPPED(a) \
- (__extension__ \
- ({ const struct in6_addr *__a = (const struct in6_addr *) (a); \
- __a->__in6_u.__u6_addr32[0] == 0 \
- && __a->__in6_u.__u6_addr32[1] == 0 \
- && __a->__in6_u.__u6_addr32[2] == htonl (0xffff); }))
-
-# define IN6_IS_ADDR_V4COMPAT(a) \
- (__extension__ \
- ({ const struct in6_addr *__a = (const struct in6_addr *) (a); \
- __a->__in6_u.__u6_addr32[0] == 0 \
- && __a->__in6_u.__u6_addr32[1] == 0 \
- && __a->__in6_u.__u6_addr32[2] == 0 \
- && ntohl (__a->__in6_u.__u6_addr32[3]) > 1; }))
-
-# define IN6_ARE_ADDR_EQUAL(a,b) \
- (__extension__ \
- ({ const struct in6_addr *__a = (const struct in6_addr *) (a); \
- const struct in6_addr *__b = (const struct in6_addr *) (b); \
- __a->__in6_u.__u6_addr32[0] == __b->__in6_u.__u6_addr32[0] \
- && __a->__in6_u.__u6_addr32[1] == __b->__in6_u.__u6_addr32[1] \
- && __a->__in6_u.__u6_addr32[2] == __b->__in6_u.__u6_addr32[2] \
- && __a->__in6_u.__u6_addr32[3] == __b->__in6_u.__u6_addr32[3]; }))
-#else
-# define IN6_IS_ADDR_UNSPECIFIED(a) \
- (((const uint32_t *) (a))[0] == 0 \
- && ((const uint32_t *) (a))[1] == 0 \
- && ((const uint32_t *) (a))[2] == 0 \
- && ((const uint32_t *) (a))[3] == 0)
-
-# define IN6_IS_ADDR_LOOPBACK(a) \
- (((const uint32_t *) (a))[0] == 0 \
- && ((const uint32_t *) (a))[1] == 0 \
- && ((const uint32_t *) (a))[2] == 0 \
- && ((const uint32_t *) (a))[3] == htonl (1))
-
-# define IN6_IS_ADDR_LINKLOCAL(a) \
- ((((const uint32_t *) (a))[0] & htonl (0xffc00000)) \
- == htonl (0xfe800000))
-
-# define IN6_IS_ADDR_SITELOCAL(a) \
- ((((const uint32_t *) (a))[0] & htonl (0xffc00000)) \
- == htonl (0xfec00000))
-
-# define IN6_IS_ADDR_V4MAPPED(a) \
- ((((const uint32_t *) (a))[0] == 0) \
- && (((const uint32_t *) (a))[1] == 0) \
- && (((const uint32_t *) (a))[2] == htonl (0xffff)))
-
-# define IN6_IS_ADDR_V4COMPAT(a) \
- ((((const uint32_t *) (a))[0] == 0) \
- && (((const uint32_t *) (a))[1] == 0) \
- && (((const uint32_t *) (a))[2] == 0) \
- && (ntohl (((const uint32_t *) (a))[3]) > 1))
-
-# define IN6_ARE_ADDR_EQUAL(a,b) \
- ((((const uint32_t *) (a))[0] == ((const uint32_t *) (b))[0]) \
- && (((const uint32_t *) (a))[1] == ((const uint32_t *) (b))[1]) \
- && (((const uint32_t *) (a))[2] == ((const uint32_t *) (b))[2]) \
- && (((const uint32_t *) (a))[3] == ((const uint32_t *) (b))[3]))
-#endif
-
-#define IN6_IS_ADDR_MULTICAST(a) (((const uint8_t *) (a))[0] == 0xff)
-
-#ifdef __USE_MISC
-/* Bind socket to a privileged IP port. */
-extern int bindresvport (int __sockfd, struct sockaddr_in *__sock_in) __THROW;
-
-/* The IPv6 version of this function. */
-extern int bindresvport6 (int __sockfd, struct sockaddr_in6 *__sock_in)
- __THROW;
-#endif
-
-
-#define IN6_IS_ADDR_MC_NODELOCAL(a) \
- (IN6_IS_ADDR_MULTICAST(a) \
- && ((((const uint8_t *) (a))[1] & 0xf) == 0x1))
-
-#define IN6_IS_ADDR_MC_LINKLOCAL(a) \
- (IN6_IS_ADDR_MULTICAST(a) \
- && ((((const uint8_t *) (a))[1] & 0xf) == 0x2))
-
-#define IN6_IS_ADDR_MC_SITELOCAL(a) \
- (IN6_IS_ADDR_MULTICAST(a) \
- && ((((const uint8_t *) (a))[1] & 0xf) == 0x5))
-
-#define IN6_IS_ADDR_MC_ORGLOCAL(a) \
- (IN6_IS_ADDR_MULTICAST(a) \
- && ((((const uint8_t *) (a))[1] & 0xf) == 0x8))
-
-#define IN6_IS_ADDR_MC_GLOBAL(a) \
- (IN6_IS_ADDR_MULTICAST(a) \
- && ((((const uint8_t *) (a))[1] & 0xf) == 0xe))
-
-
-#ifdef __USE_GNU
-struct cmsghdr; /* Forward declaration. */
-
-#if !__USE_KERNEL_IPV6_DEFS
-/* 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 */
- };
-#endif /* !__USE_KERNEL_IPV6_DEFS */
-
-/* Obsolete hop-by-hop and Destination Options Processing (RFC 2292). */
-extern int inet6_option_space (int __nbytes)
- __THROW __attribute_deprecated__;
-extern int inet6_option_init (void *__bp, struct cmsghdr **__cmsgp,
- int __type) __THROW __attribute_deprecated__;
-extern int inet6_option_append (struct cmsghdr *__cmsg,
- const uint8_t *__typep, int __multx,
- int __plusy) __THROW __attribute_deprecated__;
-extern uint8_t *inet6_option_alloc (struct cmsghdr *__cmsg, int __datalen,
- int __multx, int __plusy)
- __THROW __attribute_deprecated__;
-extern int inet6_option_next (const struct cmsghdr *__cmsg,
- uint8_t **__tptrp)
- __THROW __attribute_deprecated__;
-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;
-
-
-/* Multicast source filter support. */
-
-/* Get IPv4 source filter. */
-extern int getipv4sourcefilter (int __s, struct in_addr __interface_addr,
- struct in_addr __group, uint32_t *__fmode,
- uint32_t *__numsrc, struct in_addr *__slist)
- __THROW;
-
-/* Set IPv4 source filter. */
-extern int setipv4sourcefilter (int __s, struct in_addr __interface_addr,
- struct in_addr __group, uint32_t __fmode,
- uint32_t __numsrc,
- const struct in_addr *__slist)
- __THROW;
-
-
-/* Get source filter. */
-extern int getsourcefilter (int __s, uint32_t __interface_addr,
- const struct sockaddr *__group,
- socklen_t __grouplen, uint32_t *__fmode,
- uint32_t *__numsrc,
- struct sockaddr_storage *__slist) __THROW;
-
-/* Set source filter. */
-extern int setsourcefilter (int __s, uint32_t __interface_addr,
- const struct sockaddr *__group,
- socklen_t __grouplen, uint32_t __fmode,
- uint32_t __numsrc,
- const struct sockaddr_storage *__slist) __THROW;
-#endif /* use GNU */
-
-__END_DECLS
-
-#endif /* netinet/in.h */
diff --git a/inet/netinet/ip6.h b/inet/netinet/ip6.h
deleted file mode 100644
index dbced70502..0000000000
--- a/inet/netinet/ip6.h
+++ /dev/null
@@ -1,188 +0,0 @@
-/* Copyright (C) 1991-2017 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
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _NETINET_IP6_H
-#define _NETINET_IP6_H 1
-
-#include <inttypes.h>
-#include <netinet/in.h>
-
-struct ip6_hdr
- {
- union
- {
- struct ip6_hdrctl
- {
- uint32_t ip6_un1_flow; /* 4 bits version, 8 bits TC,
- 20 bits flow-ID */
- uint16_t ip6_un1_plen; /* payload length */
- uint8_t ip6_un1_nxt; /* next header */
- uint8_t ip6_un1_hlim; /* hop limit */
- } ip6_un1;
- uint8_t ip6_un2_vfc; /* 4 bits version, top 4 bits tclass */
- } ip6_ctlun;
- struct in6_addr ip6_src; /* source address */
- struct in6_addr ip6_dst; /* destination address */
- };
-
-#define ip6_vfc ip6_ctlun.ip6_un2_vfc
-#define ip6_flow ip6_ctlun.ip6_un1.ip6_un1_flow
-#define ip6_plen ip6_ctlun.ip6_un1.ip6_un1_plen
-#define ip6_nxt ip6_ctlun.ip6_un1.ip6_un1_nxt
-#define ip6_hlim ip6_ctlun.ip6_un1.ip6_un1_hlim
-#define ip6_hops ip6_ctlun.ip6_un1.ip6_un1_hlim
-
-/* Generic extension header. */
-struct ip6_ext
- {
- uint8_t ip6e_nxt; /* next header. */
- uint8_t ip6e_len; /* length in units of 8 octets. */
- };
-
-/* Hop-by-Hop options header. */
-struct ip6_hbh
- {
- uint8_t ip6h_nxt; /* next header. */
- uint8_t ip6h_len; /* length in units of 8 octets. */
- /* followed by options */
- };
-
-/* Destination options header */
-struct ip6_dest
- {
- uint8_t ip6d_nxt; /* next header */
- uint8_t ip6d_len; /* length in units of 8 octets */
- /* followed by options */
- };
-
-/* Routing header */
-struct ip6_rthdr
- {
- uint8_t ip6r_nxt; /* next header */
- uint8_t ip6r_len; /* length in units of 8 octets */
- uint8_t ip6r_type; /* routing type */
- uint8_t ip6r_segleft; /* segments left */
- /* followed by routing type specific data */
- };
-
-/* Type 0 Routing header */
-struct ip6_rthdr0
- {
- uint8_t ip6r0_nxt; /* next header */
- uint8_t ip6r0_len; /* length in units of 8 octets */
- uint8_t ip6r0_type; /* always zero */
- 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];
- };
-
-/* Fragment header */
-struct ip6_frag
- {
- uint8_t ip6f_nxt; /* next header */
- uint8_t ip6f_reserved; /* reserved field */
- uint16_t ip6f_offlg; /* offset, reserved, and flag */
- 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 */
-#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 */
-#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_ENDIAN */
-# define IP6_ALERT_MLD 0x0000
-# define IP6_ALERT_RSVP 0x0100
-# define IP6_ALERT_AN 0x0200
-#endif
-
-#endif /* netinet/ip6.h */