update netinet/in.h to match the current kernel uapi

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)
This commit is contained in:
Szabolcs Nagy 2014-05-30 14:15:48 +02:00 committed by Rich Felker
parent c8ea212668
commit c350468658
1 changed files with 21 additions and 1 deletions

View File

@ -198,6 +198,7 @@ uint16_t ntohs(uint16_t);
#define IP_ORIGDSTADDR 20 #define IP_ORIGDSTADDR 20
#define IP_RECVORIGDSTADDR IP_ORIGDSTADDR #define IP_RECVORIGDSTADDR IP_ORIGDSTADDR
#define IP_MINTTL 21 #define IP_MINTTL 21
#define IP_NODEFRAG 22
#define IP_MULTICAST_IF 32 #define IP_MULTICAST_IF 32
#define IP_MULTICAST_TTL 33 #define IP_MULTICAST_TTL 33
#define IP_MULTICAST_LOOP 34 #define IP_MULTICAST_LOOP 34
@ -218,6 +219,7 @@ uint16_t ntohs(uint16_t);
#define IP_PMTUDISC_DO 2 #define IP_PMTUDISC_DO 2
#define IP_PMTUDISC_PROBE 3 #define IP_PMTUDISC_PROBE 3
#define IP_PMTUDISC_INTERFACE 4 #define IP_PMTUDISC_INTERFACE 4
#define IP_PMTUDISC_OMIT 5
#define IP_DEFAULT_MULTICAST_TTL 1 #define IP_DEFAULT_MULTICAST_TTL 1
#define IP_DEFAULT_MULTICAST_LOOP 1 #define IP_DEFAULT_MULTICAST_LOOP 1
@ -351,9 +353,17 @@ struct ip6_mtuinfo
#define IPV6_RTHDR 57 #define IPV6_RTHDR 57
#define IPV6_RECVDSTOPTS 58 #define IPV6_RECVDSTOPTS 58
#define IPV6_DSTOPTS 59 #define IPV6_DSTOPTS 59
#define IPV6_RECVPATHMTU 60
#define IPV6_PATHMTU 61
#define IPV6_DONTFRAG 62
#define IPV6_RECVTCLASS 66 #define IPV6_RECVTCLASS 66
#define IPV6_TCLASS 67 #define IPV6_TCLASS 67
#define IPV6_ADDR_PREFERENCES 72
#define IPV6_MINHOPCOUNT 73
#define IPV6_ORIGDSTADDR 74
#define IPV6_RECVORIGDSTADDR IPV6_ORIGDSTADDR
#define IPV6_TRANSPARENT 75
#define IPV6_UNICAST_IF 76
#define IPV6_ADD_MEMBERSHIP IPV6_JOIN_GROUP #define IPV6_ADD_MEMBERSHIP IPV6_JOIN_GROUP
#define IPV6_DROP_MEMBERSHIP IPV6_LEAVE_GROUP #define IPV6_DROP_MEMBERSHIP IPV6_LEAVE_GROUP
@ -364,6 +374,16 @@ struct ip6_mtuinfo
#define IPV6_PMTUDISC_WANT 1 #define IPV6_PMTUDISC_WANT 1
#define IPV6_PMTUDISC_DO 2 #define IPV6_PMTUDISC_DO 2
#define IPV6_PMTUDISC_PROBE 3 #define IPV6_PMTUDISC_PROBE 3
#define IPV6_PMTUDISC_INTERFACE 4
#define IPV6_PMTUDISC_OMIT 5
#define IPV6_PREFER_SRC_TMP 0x0001
#define IPV6_PREFER_SRC_PUBLIC 0x0002
#define IPV6_PREFER_SRC_PUBTMP_DEFAULT 0x0100
#define IPV6_PREFER_SRC_COA 0x0004
#define IPV6_PREFER_SRC_HOME 0x0400
#define IPV6_PREFER_SRC_CGA 0x0008
#define IPV6_PREFER_SRC_NONCGA 0x0800
#define IPV6_RTHDR_LOOSE 0 #define IPV6_RTHDR_LOOSE 0
#define IPV6_RTHDR_STRICT 1 #define IPV6_RTHDR_STRICT 1