glibc/inet
Dan Luedtke 72dfba1be4 inet: Add common IPv6 packet header macros
Adds commonly used IPv6 packet header macros similar to what is available
on NetBSD and FreeBSD in sys/netinet/ip6.h and Android in
libc/include/netinet/ip6.h

Usage example IPV6_VERSION_MASK and IPV6_VERSION:

    if ((ip6->ip6_vfc & IPV6_VERSION_MASK) == IPV6_VERSION)
        return true;

Usage example IPV6_FLOWINFO_MASK:

    ip6->ip6_flow = (flow & IPV6_FLOWINFO_MASK);

The relevant standard is RFC2460 (Internet Protocol, Version 6
Specification). It defines the Internet Protocol version (IPV6_VERSION)
and reduced the size of the flow label field from 24 to 20 bits
(IPV6_FLOWLABEL_MASK). The traffic class and flow label fields together
make up the flow information (IPV6_FLOWINFO_MASK).

Tested on x86_64 GNU/Linux

Signed-off-by: Dan Luedtke <danrl@google.com>
Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
2025-01-13 10:54:38 -03:00
..
arpa
netinet
protocols
rpc
Makefile
Versions
bindresvport.c
bug-if1.c
check_native.c
check_pf.c
deadline.c
etc.rpc
ether_aton.c
ether_aton_r.c
ether_line.c
ether_ntoa.c
ether_ntoa_r.c
getipv4sourcefilter.c
getsourcefilter.c
herrno-loc.c
herrno.c
htonl.c
htons.c
htontest.c
idna.c
idna_name_classify.c
if_index.c
ifaddrs.c
ifaddrs.h
ifreq.c
in6_addr.c
inet6_opt.c
inet6_option.c
inet6_rth.c
inet6_scopeid_pton.c
inet_lnaof.c
inet_mkadr.c
inet_net.c
inet_netof.c
inet_ntoa.c
net-internal.h
rcmd.c
rexec.c
ruserpass.c
setipv4sourcefilter.c
setsourcefilter.c
test-hnto-types.c
test-ifaddrs.c
test-inet6_opt.c
test_ifindex.c
tst-checks-posix.c
tst-checks.c
tst-deadline.c
tst-ether_aton.c
tst-ether_line.c
tst-getni1.c
tst-getni2.c
tst-idna_name_classify.c
tst-if_index-long.c
tst-if_nameindex.c
tst-inet6_rth.c
tst-inet6_scopeid_pton.c
tst-network.c
tst-ntoa.c
tst-sockaddr.c