diff options
author | Jose Luis Duran <jlduran@gmail.com> | 2023-10-28 02:50:18 +0000 |
---|---|---|
committer | Mark Johnston <markj@FreeBSD.org> | 2024-01-11 14:33:05 +0000 |
commit | c0563fd5fc322bc9948c5402cb28641fec53931c (patch) | |
tree | fa2575068e041bbae82e888f7cd7e4f18df746b6 | |
parent | 668e777b0a246b47c64274de118f0dfe59611173 (diff) |
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.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/netinet/ip6.h b/sys/netinet/ip6.h index faa6fc290ca1..37d2c1777c32 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 |