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.
Showing the changes to include/uapi/linux (1 of 6 files). Show all
Unified · Split
| @@ -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 | ||
| 72 | enum { | 74 | enum { |
| 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 | ||