History

rds: add type of service(tos) infrastructure

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.

Santosh Shilimkar committed 8 years ago

Commit 3eb45031 parent d021fab11 files · +72 −17Browse files

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

Unified · Split

include/uapi/linux/rds.h+11−0
@@ -69,6 +69,12 @@ · 68 unmodified lines
69#define RDS_TRANS_COUNT 369#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
76typedef __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
154struct rds6_info_connection {161struct 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
176struct rds6_info_message {184struct 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
219struct rds6_info_tcp_socket {228struct 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
245struct rds6_info_rdma_connection {255struct 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 */