about summary refs log tree commit diff
path: root/include/netinet
Commit message (Collapse)AuthorAgeFilesLines
* netinet/if_ether.h: add new ETH_P_ macros from linux v4.14Szabolcs Nagy2018-02-221-0/+4
| | | | | | | | new ethertypes in linux v4.14: ETH_P_ERSPAN new in 84e54fe0a5eaed696dee4019c396f8396f5a908b ETH_P_IFE new in 2804fd3af6ba5ae5737705b27146455eabe2e2f8 ETH_P_NSH new in 155e6f649757c902901e599c268f8b575ddac1f8 ETH_P_MAP new in 7373ae7e8f0bf2c0718422481da986db5058b005
* add additional uapi guards for Linux kernel header filesHauke Mehrtens2018-01-091-0/+1
| | | | | | | | | | | | With Linux kernel 4.16 it will be possible to guard more parts of the Linux header files from a libc. Make use of this in musl to guard all the structures and other definitions from the Linux header files which are also defined by the header files provided by musl. This will make it possible to compile source files which include both the libc headers and the kernel userspace headers. This extends the definitions done in commit 04983f227238 ("make netinet/in.h suppress clashing definitions from kernel headers")
* fix endian errors in netinet/icmp6.h due to failure to include endian.hRich Felker2017-12-151-0/+1
|
* add new tcp.h socket options from linux v4.13Szabolcs Nagy2017-11-051-2/+7
| | | | | TCP_ULP is new in linux commit 734942cc4ea6478eed125af258da1bdbb4afe578 TCP_MD5SIG_EXT is new in 8917a777be3ba566377be05117f71b93a5fd909d
* add TCP_NLA_* enums from linux v4.11Szabolcs Nagy2017-11-051-0/+2
| | | | | two new stats for SCM_TIMESTAMPING_OPT_STATS, added in linux commit 7e98102f489775d8c000884fca8a0d995ea688a9
* add TCP_FASTOPEN_CONNECT tcp socket option from linux v4.11Szabolcs Nagy2017-11-051-0/+1
| | | | new in linux commit 19f6d3f3c8422d65b5e3d2162e30ef07c6e21ea2
* add ETH_P_IBOE from linux v4.11Szabolcs Nagy2017-11-051-0/+1
| | | | new in linux commit 69ae543969abeba48e04dd93277684c8c0895f3b
* add ETH_MIN_MTU and ETH_MAX_MTU from linux v4.10Szabolcs Nagy2017-11-051-0/+2
| | | | | | min max mtu size definitions mostly for drivers. new in linux commits a52ad514fdf3b8a57ca4322c92d2d8d5c6182485 and d894be57ca92c8a8819ab544d550809e8731137b
* add IP_RECVFRAGSIZE and IPV6_RECVFRAGSIZE from linux v4.10Szabolcs Nagy2017-11-051-0/+2
| | | | added in linux commit 70ecc24841326396a827deb55c3fefac582a729d
* add SCM_TIMESTAMPING_OPT_STATS and related TCP_ enums from linux v4.10Szabolcs Nagy2017-11-051-0/+10
| | | | | | | for tcp timestamp control messages, new in linux commit 1c885808e45601b2b6f68b30ac1d999e10b6f606 and export time measurements via tcp_info, added in linux commit efd90174167530c67a54273fd5d8369c87f9bd32
* move IPPORT_RESERVED from netdb.h to netinet/in.hRich Felker2017-08-291-0/+2
| | | | | it's in the reserved namespace for the latter, where it seems it was historically defined, and some programs expect to find it there.
* update tcp_info struct to linux v4.9Szabolcs Nagy2016-12-291-0/+2
| | | | | export tcp data delivery rate in tcp_info struct. see linux commit eb8329e0a04db0061f714f033b4454326ba147f4
* make netinet/in.h suppress clashing definitions from kernel headersRich Felker2016-11-071-0/+15
| | | | | | | | | | | | | | | the linux kernel uapi headers provide their own definitions of the structures from netinet/in.h, resulting in errors when a program includes both the standard libc header and one or more of the networking-related kernel headers that pull in the kernel definitions. as before, we do not attempt to support the case where kernel headers are included before the libc ones, since the kernel definitions may have subtly incorrect types, namespace violations, etc. however, we can easily support the inclusion of the kernel headers after the libc ones, since the kernel headers provide a public interface for suppressing their definitions. this patch adds the necessary macro definitions for such suppression.
* add missing if_ether.h constantsDaniel Sabogal2016-10-201-0/+3
| | | | | | | | | | | | ETH_P_HSR (IEC 62439-3 HSRv1) added in linux 4.7 commit ee1c27977284907d40f7f72c2d078d709f15811f ETH_P_TSN (IEEE 1722) added in linux 4.3 commit 1ab1e895492d8084dfc1c854efacde219e56b8c1 this constant breaks the ascending order to match the kernel header ETH_P_XDSA (Multiplexed DSA protocol) added in linux 3.18 commit 3e8a72d1dae374cf6fc1dba97cec663585845ff9
* update icmphdr struct following linux v4.8Szabolcs Nagy2016-10-201-0/+1
| | | | | add union field that is used in the kernel for SIT/GRE tunneling ICMPv4 messages. see linux commit 20e1954fe238dbe5f8d3a979e593fe352bd703cf
* add TCP_REPAIR_WINDOW to netinet/tcp.h from linux v4.8Szabolcs Nagy2016-10-201-0/+9
| | | | | another kernel internal state exposure for checkpoint-restore. see linux commit b1ed4c4fa9a5ccf325184fd90edc50978ef6e33a
* add ETH_P_NCSI to netinet/if_ether.h from linux v4.8Szabolcs Nagy2016-10-201-0/+1
| | | | see linux commit 6389eaa7fa9c3ee6c7d39f6087b86660d17236ac
* add UDP_ENCAP_GTP0, UDP_ENCAP_GTP1U from linux v4.7 to netinet/udp.hSzabolcs Nagy2016-08-301-0/+2
| | | | | for GPRS tunneling protocol, new in linux commit 459aa660eb1d8ce67080da1983bb81d716aa5a69
* make brace placement in public header struct definitions consistentRich Felker2016-07-032-24/+12
| | | | | | | | | | | | | | placing the opening brace on the same line as the struct keyword/tag is the style I prefer and seems to be the prevailing practice in more recent additions. these changes were generated by the command: find include/ arch/*/bits -name '*.h' \ -exec sed -i '/^struct [^;{]*$/{N;s/\n/ /;}' {} + and subsequently checked by hand to ensure that the regex did not pick up any false positives.
* add new tcp_info fields from linux v4.6Szabolcs Nagy2016-06-091-0/+4
| | | | | | new fields and associated linux commit: tcpi_notsent_bytes, tcpi_min_rtt cd9b266095f422267bddbec88f9098b48ea548fc tcpi_data_segs_in, tcpi_data_segs_out a44d6eacdaf56f74fad699af7f4925a5f5ac0e7f
* add ETH_P_MACSEC netinet/if_ether.h, new in linux v4.6Szabolcs Nagy2016-06-091-0/+1
| | | | | ethertype for macsec added in linux commit dece8d2b78d19df7fe5e4e965f1f0d1a3e188d1b
* add IPV6_HDRINCL socket option from linux v4.5Szabolcs Nagy2016-03-191-0/+1
| | | | | new in linux commit 715f504b118998c41a2079a17e16bf5a8a114885 same as IP_HDRINCL but for SOL_IPV6 sockets.
* add new IP_BIND_ADDRESS_NO_PORT and IPPROTO_MPLS to netinet/in.hSzabolcs Nagy2016-01-241-0/+2
| | | | | | | | | IP_BIND_ADDRESS_NO_PORT is a SOL_IP socket option to delay src port allocation until connect in case src ip is set with bind(port=0). new in linux v4.2, commit 90c337da1524863838658078ec34241f45d8394d IPPROTO_MPLS protocol number for mpls over ip. new in linux v4.2, commit 730fc4371333636a00fed32c587fc1e85c5367e2
* update netinet/tcp.h for linux v4.2Szabolcs Nagy2016-01-241-0/+7
| | | | | | | | | | | | | TCP_CC_INFO is a new socket option to get congestion control info without netlink (union tcp_cc_info is in linux/inet_diag.h kernel header). linux commit 6e9250f59ef9efb932c84850cd221f22c2a03c4a TCP_SAVE_SYN, TCP_SAVED_SYN socket options are for saving and getting the SYN headers of passive connections in a server application. linux commit cd8ae85299d54155702a56811b2e035e63064d3d Add new tcpi_* fields to struct tcp_info implementing RFC4898 counters. linux commit 2efd055c53c06b7e89c167c98069bab9afce7e59
* netinet/tcp: Add TCPOPT, TCPOLEN constantsKylie McClain2016-01-171-0/+13
| | | | | | | | | Programs such as iptables depend on these constants, which can also be found defined in other libcs. Since only TCP_* is reserved as part of tcp.h's namespace, we hide them behind _BSD_SOURCE (and therefore _DEFAULT_SOURCE) to expose them by default, but keep it standard conforming.
* fix netinet/ether.h for c++Szabolcs Nagy2015-05-081-0/+8
|
* add IPTOS_CLASS_* macros to netinet/ip.hSzabolcs Nagy2015-05-011-0/+12
| | | | | These macros were introduced in glibc 2.12 to follow RFC 2474 which deprecates "IP Precedence" in favor of "Class Selector Codepoints".
* add IP_CHECKSUM socket option to netinet/in.hSzabolcs Nagy2015-04-171-0/+1
| | | | new in linux v4.0, commit ad6f939ab193750cc94a265f58e007fb598c97b7
* add new IPV6_AUTOFLOWLABEL socket option in netinet/in.hSzabolcs Nagy2014-10-081-0/+1
| | | | | added in linux v3.17 commit 753a2ad54ef45e3417a9d49537c2b42b04a2e1be enables automatic flow label generation on transmit
* add pacing rate information to the tcp_info struct in tcp.hSzabolcs Nagy2014-07-201-0/+2
| | | | | used by monitoring applications such as ss from iproute2 introduced in linux 3.15 commit 977cb0ecf82eb6d15562573c31edebf90db35163
* add new ethernet packet types ETH_P_80221, ETH_P_LOOPBACKSzabolcs Nagy2014-07-201-2/+4
| | | | | | | | | | ETH_P_80221 is ethertype for IEEE Std 802.21 - Media Independent Handover Protocol introduced in linux 3.15 commit b62faf3cdc875a1ac5a10696cf6ea0b12bab1596 ETH_P_LOOPBACK is the correct packet type for loopback in IEEE 802.3* introduced in linux 3.15 commit 61ccbb684421d374fdcd7cf5d6b024b06f03ce4e some defines were shuffled to be in ascending order and match the kernel header
* update netinet/in.h to match the current kernel uapiSzabolcs Nagy2014-05-301-1/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | from linux/in.h and linux/in6.h uapi headers the following missing socket options were added: IP_NODEFRAG - used with customized ipv4 headers IPV6_RECVPATHMTU - for ipv6 path mtu IPV6_PATHMTU - for ipv6 path mtu IPV6_DONTFRAG - for ipv6 path mtu IPV6_ADDR_PREFERENCES - RFC5014 Source Address Selection IPV6_MINHOPCOUNT - RFC5082 Generalized TTL Security Mechanism IPV6_ORIGDSTADDR - used by tproxy IPV6_RECVORIGDSTADDR - used by tproxy IPV6_TRANSPARENT - used by tproxy IPV6_UNICAST_IF - ipv6 version of IP_UNICAST_IF and socket option values: IP_PMTUDISC_OMIT - value for IP_MTU_DISCOVER option, new in linux 3.14 IPV6_PMTUDISC_OMIT - same for IPV6_MTU_DISCOVER IPV6_PMTUDISC_INTERFACE - ipv6 version of IP_PMTUDISC_INTERFACE IPV6_PREFER_* - flags for IPV6_ADDR_PREFERENCES not added: ipv6 flow info and flow label related definitions. (it's unclear if libc should define these and namespace polluting type name is involved so they are not provided for now)
* in.h: new IP_MTU_DISCOVER mode IP_PMTUDISC_INTERFACESzabolcs Nagy2014-02-251-0/+1
| | | | | introduced in linux v3.13, 482fc6094afad572a4ea1fd722e7b11ca72022a0 to mitigate dns cache poisoning via fragmentation
* if_ether.h: new ethernet protocol typeSzabolcs Nagy2014-02-251-0/+1
| | | | | for High-availability Seamless Redundancy (HSR) specified in IEC 62439-3 new in linux v3.13, f421436a591d34fa5279b54a96ac07d70250cc8d
* add parens when bit and arith ops are mixed in macros in public headersSzabolcs Nagy2014-02-111-1/+1
| | | | | another commit to silence gcc warnings (-Wparentheses) for standard headers. changed macros: LOG_UPTO, IN6_ARE_ADDR_EQUAL
* reduce namespace pollution in netinet/udp.hRich Felker2014-02-051-7/+10
| | | | | | | | | | | the affected part of the header is responsible for providing both GNU and BSD versions of the udphdr structure. previously, the namespace-polluting GNU names were always used for the actual struct members, and the BSD names, which are named in a manner resembling a sane namespace, were always macros defined to expand to the GNU names. now, unless _GNU_SOURCE is defined, the BSD names are used as the actual structure members, and the macros and GNU names only come into play when the application requests them.
* fix use of legacy u_intN_t types in netinet/tcp.hRich Felker2014-02-051-73/+74
| | | | | | policy is to avoid using these types except where they are needed for namespace conformance. C99-style stdint.h types should be used instead.
* add support for BSD struct tcphdr in netinet/tcp.hRich Felker2014-02-051-4/+41
| | | | | | | | | | | | | there are two versions of this structure: the BSD version and the GNU version. previously only the GNU version was supported. the only way to support both simultaneously is with an anonymous union, which was a nonstandard extension prior to C11, so some effort is made to avoid breakage with compilers which do not support anonymous unions. this commit is based on a patch by Timo Teräs, but with some changes. in particular, the GNU version of the structure is not exposed unless _GNU_SOURCE is defined; this both avoids namespace pollution and dependency on anonymous unions in the default feature profile.
* fix remaining known namespace violations for netinet/in.hRich Felker2014-01-081-22/+14
| | | | | | | | | | | | | | | | | | | | the imr_, imsf_, ip6_, ip6m_, ipi_, ipi6_, SCM_, and SOL_ prefixes are not in the reserved namespace for this header. thus the constants and structures using them need to be protected under appropriate feature test macros. this also affects some headers which are permitted to include netinet/in.h, particularly netdb.h and arpa/inet.h. the SOL_ macros are moved to sys/socket.h where they are in the reserved namespace (SO*). they are still accessible via netinet/in.h since it includes sys/socket.h implicitly (which is permitted). the SCM_SRCRT macro is simply removed, since the definition used for it, IPV6_RXSRCRT is not defined anywhere. it could be re-added, this time in sys/socket.h, if the appropriate value can be determined; however, given that the erroneous definition was not caught, it is unlikely that any software actually attempts to use SCM_SRCRT.
* add netinet/igmp.h and multicast groups to netinet/in.hRich Felker2013-12-202-0/+50
| | | | based on patch by Timo Teräs.
* add TCP_INFO and TCP_MD5SIG socket option related structuresTimo Teräs2013-12-201-0/+58
|
* add TCP_NOTSENT_LOWAT tcp socket option, new in linux v3.12Szabolcs Nagy2013-11-231-0/+1
|
* add linux tcp state enumsTimo Teräs2013-11-231-0/+12
|
* add multicast structures from RFC 3678 to netinet/in.hTimo Teräs2013-11-231-1/+42
| | | | | and use _GNU_SOURCE || _BSD_SOURCE guards for all of the RFC 3678 namespace polluting things like glibc/uclibc does.
* netinet/in.h: add missing IP protocol numbers from the linux uapi headersSzabolcs Nagy2013-09-151-0/+2
|
* only expose struct tcphdr under _GNU_SOURCERich Felker2013-08-301-1/+3
| | | | | | | | the BSD and GNU versions of this structure differ, so exposing it in the default _BSD_SOURCE profile is possibly problematic. both versions could be simultaneously supported with anonymous unions if needed in the future, but for now, just omitting it except under _GNU_SOURCE should be safe.
* add struct tcphdr in netinet/tcp.hRich Felker2013-08-301-0/+33
|
* add if_ether.h constants ETH_P_802_3_MIN and ETH_P_BATMANSzabolcs Nagy2013-07-241-0/+3
| | | | | see linux commits 4f99ad51292078cc47343c17d3870764588cff73 and e5c5d22e8dcf7c2d430336cbf8e180bd38e8daf1
* remove TCP_COOKIE_TRANSACTIONS from tcp.hSzabolcs Nagy2013-07-241-1/+0
| | | | removed in linux-v3.10 in commit 1a2c6181c4a1922021b4d7df373bba612c3e5f04
* refactor headers, especially alltypes.h, and improve C++ ABI compatRich Felker2013-07-221-9/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the arch-specific bits/alltypes.h.sh has been replaced with a generic alltypes.h.in and minimal arch-specific bits/alltypes.h.in. this commit is intended to have no functional changes except: - exposing additional symbols that POSIX allows but does not require - changing the C++ name mangling for some types - fixing the signedness of blksize_t on powerpc (POSIX requires signed) - fixing the limit macros for sig_atomic_t on x86_64 - making dev_t an unsigned type (ABI matching goal, and more logical) in addition, some types that were wrongly defined with long on 32-bit archs were changed to int, and vice versa; this change is non-functional except for the possibility of making pointer types mismatch, and only affects programs that were using them incorrectly, and only at build-time, not runtime. the following changes were made in the interest of moving non-arch-specific types out of the alltypes system and into the headers they're associated with, and also will tend to improve application compatibility: - netdb.h now includes netinet/in.h (for socklen_t and uint32_t) - netinet/in.h now includes sys/socket.h and inttypes.h - sys/resource.h now includes sys/time.h (for struct timeval) - sys/wait.h now includes signal.h (for siginfo_t) - langinfo.h now includes nl_types.h (for nl_item) for the types in stdint.h: - types which are of no interest to other headers were moved out of the alltypes system. - fast types for 8- and 64-bit are hard-coded (at least for now); only the 16- and 32-bit ones have reason to vary by arch. and the following types have been changed for C++ ABI purposes; - mbstate_t now has a struct tag, __mbstate_t - FILE's struct tag has been changed to _IO_FILE - DIR's struct tag has been changed to __dirstream - locale_t's struct tag has been changed to __locale_struct - pthread_t is defined as unsigned long in C++ mode only - fpos_t now has a struct tag, _G_fpos64_t - fsid_t's struct tag has been changed to __fsid_t - idtype_t has been made an enum type (also required by POSIX) - nl_catd has been changed from long to void * - siginfo_t's struct tag has been removed - sigset_t's has been given a struct tag, __sigset_t - stack_t has been given a struct tag, sigaltstack - suseconds_t has been changed to long on 32-bit archs - [u]intptr_t have been changed from long to int rank on 32-bit archs - dev_t has been made unsigned summary of tests that have been performed against these changes: - nsz's libc-test (diff -u before and after) - C++ ABI check symbol dump (diff -u before, after, glibc) - grepped for __NEED, made sure types needed are still in alltypes - built gcc 3.4.6