History

tcp: extend TCP flags to allow AE bit/ACE field

With AccECN, there's one additional TCP flag to be used (AE) and ACE field that overloads the definition of AE, CWR, and ECE flags. As tcp_flags was previously only 1 byte, the byte-order stuff needs to be added to it's handling.

Ilpo Järvinen committed 1 year ago

Commit 2c2f08d1 parent 0114a916 files · +26 −14Browse files

Showing the changes to include/uapi/linux (1 of 6 files). Show all

Unified · Split

include/uapi/linux/tcp.h+6−3
@@ -28,7 +28,8 @@ struct tcphdr { · 27 unmodified lines
28 __be32 seq;28 __be32 seq;
29 __be32 ack_seq;29 __be32 ack_seq;
30#if defined(__LITTLE_ENDIAN_BITFIELD)30#if defined(__LITTLE_ENDIAN_BITFIELD)
31 __u16 res1:4,31 __u16 ae:1,
32 res1:3,
32 doff:4,33 doff:4,
33 fin:1,34 fin:1,
34 syn:1,35 syn:1,
@@ -40,7 +41,8 @@ struct tcphdr { · 5 unmodified lines
40 cwr:1;41 cwr:1;
41#elif defined(__BIG_ENDIAN_BITFIELD)42#elif defined(__BIG_ENDIAN_BITFIELD)
42 __u16 doff:4,43 __u16 doff:4,
43 res1:4,44 res1:3,
45 ae:1,
44 cwr:1,46 cwr:1,
45 ece:1,47 ece:1,
46 urg:1,48 urg:1,
@@ -70,6 +72,7 @@ union tcp_word_hdr { · 23 unmodified lines
70#define tcp_flag_word(tp) (((union tcp_word_hdr *)(tp))->words[3])72#define tcp_flag_word(tp) (((union tcp_word_hdr *)(tp))->words[3])
71 73
72enum {74enum {
75 TCP_FLAG_AE = __constant_cpu_to_be32(0x01000000),
73 TCP_FLAG_CWR = __constant_cpu_to_be32(0x00800000),76 TCP_FLAG_CWR = __constant_cpu_to_be32(0x00800000),
74 TCP_FLAG_ECE = __constant_cpu_to_be32(0x00400000),77 TCP_FLAG_ECE = __constant_cpu_to_be32(0x00400000),
75 TCP_FLAG_URG = __constant_cpu_to_be32(0x00200000),78 TCP_FLAG_URG = __constant_cpu_to_be32(0x00200000),
@@ -78,7 +81,7 @@ enum { · 2 unmodified lines
78 TCP_FLAG_RST = __constant_cpu_to_be32(0x00040000),81 TCP_FLAG_RST = __constant_cpu_to_be32(0x00040000),
79 TCP_FLAG_SYN = __constant_cpu_to_be32(0x00020000),82 TCP_FLAG_SYN = __constant_cpu_to_be32(0x00020000),
80 TCP_FLAG_FIN = __constant_cpu_to_be32(0x00010000),83 TCP_FLAG_FIN = __constant_cpu_to_be32(0x00010000),
81 TCP_RESERVED_BITS = __constant_cpu_to_be32(0x0F000000),84 TCP_RESERVED_BITS = __constant_cpu_to_be32(0x0E000000),
82 TCP_DATA_OFFSET = __constant_cpu_to_be32(0xF0000000)85 TCP_DATA_OFFSET = __constant_cpu_to_be32(0xF0000000)
83};86};
84 87