RDS Service type (TOS) is user-defined and needs to be configured via RDS IOCTL interface. It must be set before initiating any traffic and once set the TOS can not be changed. All out-going traffic from the socket will be associated with its TOS.
Showing the changes to include/uapi/linux (1 of 11 files). Show all
Unified · Split
| @@ -69,6 +69,12 @@ · 68 unmodified lines | ||
| 69 | 69 | #define RDS_TRANS_COUNT 3 |
| 70 | 70 | #define RDS_TRANS_NONE (~0) |
| 71 | 71 | |
| 72 | +/* IOCTLS commands for SOL_RDS */ | |
| 73 | +#define SIOCRDSSETTOS (SIOCPROTOPRIVATE) | |
| 74 | +#define SIOCRDSGETTOS (SIOCPROTOPRIVATE + 1) | |
| 75 | + | |
| 76 | +typedef __u8 rds_tos_t; | |
| 77 | + | |
| 72 | 78 | /* |
| 73 | 79 | * Control message types for SOL_RDS. |
| 74 | 80 | * |
| @@ -149,6 +155,7 @@ struct rds_info_connection { · 74 unmodified lines | ||
| 149 | 155 | __be32 faddr; |
| 150 | 156 | __u8 transport[TRANSNAMSIZ]; /* null term ascii */ |
| 151 | 157 | __u8 flags; |
| 158 | + __u8 tos; | |
| 152 | 159 | } __attribute__((packed)); |
| 153 | 160 | |
| 154 | 161 | struct rds6_info_connection { |
| @@ -171,6 +178,7 @@ struct rds_info_message { · 16 unmodified lines | ||
| 171 | 178 | __be16 lport; |
| 172 | 179 | __be16 fport; |
| 173 | 180 | __u8 flags; |
| 181 | + __u8 tos; | |
| 174 | 182 | } __attribute__((packed)); |
| 175 | 183 | |
| 176 | 184 | struct rds6_info_message { |
| @@ -214,6 +222,7 @@ struct rds_info_tcp_socket { · 37 unmodified lines | ||
| 214 | 222 | __u32 last_sent_nxt; |
| 215 | 223 | __u32 last_expected_una; |
| 216 | 224 | __u32 last_seen_una; |
| 225 | + __u8 tos; | |
| 217 | 226 | } __attribute__((packed)); |
| 218 | 227 | |
| 219 | 228 | struct rds6_info_tcp_socket { |
| @@ -240,6 +249,7 @@ struct rds_info_rdma_connection { · 20 unmodified lines | ||
| 240 | 249 | __u32 max_send_sge; |
| 241 | 250 | __u32 rdma_mr_max; |
| 242 | 251 | __u32 rdma_mr_size; |
| 252 | + __u8 tos; | |
| 243 | 253 | }; |
| 244 | 254 | |
| 245 | 255 | struct rds6_info_rdma_connection { |
| @@ -253,6 +263,7 @@ struct rds6_info_rdma_connection { · 7 unmodified lines | ||
| 253 | 263 | __u32 max_send_sge; |
| 254 | 264 | __u32 rdma_mr_max; |
| 255 | 265 | __u32 rdma_mr_size; |
| 266 | + __u8 tos; | |
| 256 | 267 | }; |
| 257 | 268 | |
| 258 | 269 | /* RDS message Receive Path Latency points */ |