aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJose Luis Duran <jlduran@gmail.com>2023-10-28 02:50:18 +0000
committerMark Johnston <markj@FreeBSD.org>2024-01-11 14:18:12 +0000
commitd14bf9de60a879dd9fccfbe977b467e87c0d357d (patch)
tree4cb990e8804dedc8920334dada306c4e0510719c
parent8ac8b0b6aa17caa7166b634d1076d280e363ac95 (diff)
downloadsrc-d14bf9de60a879dd9fccfbe977b467e87c0d357d.tar.gz
src-d14bf9de60a879dd9fccfbe977b467e87c0d357d.zip
netinet: Define IPv6 ECN mask
Define a mask for the code point used for ECN in the Traffic Class field (2 bits) of an IPv6 header. BE: 0 0 3 0 0 0 0 0 Bit: 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Version| Traffic Class | Flow Label | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... | For BE (Big Endian), or network-byte order, this corresponds to 0x00300000. For Little Endian, it corresponds to 0x00003000. Reviewed by: imp, markj MFC after: 1 week Pull Request: https://github.com/freebsd/freebsd-src/pull/879 (cherry picked from commit b0e13f785b336670bdf39b83a78435b00d00f43c)
-rw-r--r--sys/netinet/ip6.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/netinet/ip6.h b/sys/netinet/ip6.h
index 8c3459339bbc..7b85fd5b4ddd 100644
--- a/sys/netinet/ip6.h
+++ b/sys/netinet/ip6.h
@@ -97,10 +97,12 @@ struct ip6_hdr {
#if BYTE_ORDER == BIG_ENDIAN
#define IPV6_FLOWINFO_MASK 0x0fffffff /* flow info (28 bits) */
#define IPV6_FLOWLABEL_MASK 0x000fffff /* flow label (20 bits) */
+#define IPV6_ECN_MASK 0x00300000 /* ECN code point (2 bits) */
#else
#if BYTE_ORDER == LITTLE_ENDIAN
#define IPV6_FLOWINFO_MASK 0xffffff0f /* flow info (28 bits) */
#define IPV6_FLOWLABEL_MASK 0xffff0f00 /* flow label (20 bits) */
+#define IPV6_ECN_MASK 0x00003000 /* ECN code point (2 bits) */
#endif /* LITTLE_ENDIAN */
#endif
#define IPV6_FLOWLABEL_LEN 20