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 | #define RDS_TRANS_COUNT 3 | 69 | #define RDS_TRANS_COUNT 3 |
| 70 | #define RDS_TRANS_NONE (~0) | 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 | * Control message types for SOL_RDS. | 79 | * Control message types for SOL_RDS. |
| 74 | * | 80 | * |
| @@ -149,6 +155,7 @@ struct rds_info_connection { · 74 unmodified lines | |||
| 149 | __be32 faddr; | 155 | __be32 faddr; |
| 150 | __u8 transport[TRANSNAMSIZ]; /* null term ascii */ | 156 | __u8 transport[TRANSNAMSIZ]; /* null term ascii */ |
| 151 | __u8 flags; | 157 | __u8 flags; |
| 158 | __u8 tos; | ||
| 152 | } __attribute__((packed)); | 159 | } __attribute__((packed)); |
| 153 | 160 | ||
| 154 | struct rds6_info_connection { | 161 | struct rds6_info_connection { |
| @@ -171,6 +178,7 @@ struct rds_info_message { · 16 unmodified lines | |||
| 171 | __be16 lport; | 178 | __be16 lport; |
| 172 | __be16 fport; | 179 | __be16 fport; |
| 173 | __u8 flags; | 180 | __u8 flags; |
| 181 | __u8 tos; | ||
| 174 | } __attribute__((packed)); | 182 | } __attribute__((packed)); |
| 175 | 183 | ||
| 176 | struct rds6_info_message { | 184 | struct rds6_info_message { |
| @@ -214,6 +222,7 @@ struct rds_info_tcp_socket { · 37 unmodified lines | |||
| 214 | __u32 last_sent_nxt; | 222 | __u32 last_sent_nxt; |
| 215 | __u32 last_expected_una; | 223 | __u32 last_expected_una; |
| 216 | __u32 last_seen_una; | 224 | __u32 last_seen_una; |
| 225 | __u8 tos; | ||
| 217 | } __attribute__((packed)); | 226 | } __attribute__((packed)); |
| 218 | 227 | ||
| 219 | struct rds6_info_tcp_socket { | 228 | struct rds6_info_tcp_socket { |
| @@ -240,6 +249,7 @@ struct rds_info_rdma_connection { · 20 unmodified lines | |||
| 240 | __u32 max_send_sge; | 249 | __u32 max_send_sge; |
| 241 | __u32 rdma_mr_max; | 250 | __u32 rdma_mr_max; |
| 242 | __u32 rdma_mr_size; | 251 | __u32 rdma_mr_size; |
| 252 | __u8 tos; | ||
| 243 | }; | 253 | }; |
| 244 | 254 | ||
| 245 | struct rds6_info_rdma_connection { | 255 | struct rds6_info_rdma_connection { |
| @@ -253,6 +263,7 @@ struct rds6_info_rdma_connection { · 7 unmodified lines | |||
| 253 | __u32 max_send_sge; | 263 | __u32 max_send_sge; |
| 254 | __u32 rdma_mr_max; | 264 | __u32 rdma_mr_max; |
| 255 | __u32 rdma_mr_size; | 265 | __u32 rdma_mr_size; |
| 266 | __u8 tos; | ||
| 256 | }; | 267 | }; |
| 257 | 268 | ||
| 258 | /* RDS message Receive Path Latency points */ | 269 | /* RDS message Receive Path Latency points */ |