Add more IPV6_* macros to sysdeps/unix/sysv/linux/bits/in.h
Commit Message
Linux 4.10 adds IPV6_RECVFRAGSIZE to include/uapi/linux/in6.h, which
shows that several such IPV6_* macros are missing from glibc's
sysdeps/unix/sysv/linux/bits/in.h (while older ones are present). I
don't know whether any of these might be deliberately omitted, but
this patch adds what appear to be the missing more recent macros to
glibc.
Tested for x86_64.
2017-02-21 Joseph Myers <joseph@codesourcery.com>
* sysdeps/unix/sysv/linux/bits/in.h (IPV6_AUTOFLOWLABEL): New
macro.
(IPV6_ADDR_PREFERENCES): Likewise.
(IPV6_MINHOPCOUNT): Likewise.
(IPV6_ORIGDSTADDR): Likewise.
(IPV6_RECVORIGDSTADDR): Likewise.
(IPV6_TRANSPARENT): Likewise.
(IPV6_UNICAST_IF): Likewise.
(IPV6_RECVFRAGSIZE): Likewise.
Comments
Ping. This patch
<https://sourceware.org/ml/libc-alpha/2017-02/msg00397.html> is pending
review.
On Tue, 2017-02-21 at 23:19 +0000, Joseph Myers wrote:
> +#define IPV6_AUTOFLOWLABEL 70
> +
> +/* RFC5014. */
> +#define IPV6_ADDR_PREFERENCES 72
> +
> +/* RFC5082. */
> +#define IPV6_MINHOPCOUNT 73
> +
> +#define IPV6_ORIGDSTADDR 74
> +#define IPV6_RECVORIGDSTADDR IPV6_ORIGDSTADDR
> +#define IPV6_TRANSPARENT 75
> +#define IPV6_UNICAST_IF 76
> +#define IPV6_RECVFRAGSIZE 77
> +
> /* Obsolete synonyms for the above. */
>
I don't know of any particular reason for these to be omitted.
I'm not sure that IPV6_AUTOFLOWLABEL ever progressed beyond the status
of an Internet-Draft (back in 2001-ish) but the kernel does implement
it and it seems reasonable for glibc to expose that.
IPV6_ORIGDSTADDR etc are for the transparent proxy API which I think is
Linux specific.
IPV6_UNICAST_IF was apparently added for the Wine project and
presumably is also Linux specific.
All of these seem like fairly fringe interests, which probably explains
why nobody has missed them in the five years or so that the kernel has
had these options and glibc hasn't, but I think we should probably go
ahead and add them. For what that's worth.
p.
@@ -215,6 +215,20 @@ struct in_pktinfo
#define IPV6_RECVTCLASS 66
#define IPV6_TCLASS 67
+#define IPV6_AUTOFLOWLABEL 70
+
+/* RFC5014. */
+#define IPV6_ADDR_PREFERENCES 72
+
+/* RFC5082. */
+#define IPV6_MINHOPCOUNT 73
+
+#define IPV6_ORIGDSTADDR 74
+#define IPV6_RECVORIGDSTADDR IPV6_ORIGDSTADDR
+#define IPV6_TRANSPARENT 75
+#define IPV6_UNICAST_IF 76
+#define IPV6_RECVFRAGSIZE 77
+
/* Obsolete synonyms for the above. */
#if !__USE_KERNEL_IPV6_DEFS
# define IPV6_ADD_MEMBERSHIP IPV6_JOIN_GROUP