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. Reviewed-by: Sowmini Varadhan <sowmini.varadhan@oracle.com> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@oracle.com> [yanjun.zhu@oracle.com: Adapted original patch with ipv6 changes] Signed-off-by: Zhu Yanjun <yanjun.zhu@oracle.com>
This commit is contained in:
@@ -69,6 +69,12 @@
|
||||
#define RDS_TRANS_COUNT 3
|
||||
#define RDS_TRANS_NONE (~0)
|
||||
|
||||
/* IOCTLS commands for SOL_RDS */
|
||||
#define SIOCRDSSETTOS (SIOCPROTOPRIVATE)
|
||||
#define SIOCRDSGETTOS (SIOCPROTOPRIVATE + 1)
|
||||
|
||||
typedef __u8 rds_tos_t;
|
||||
|
||||
/*
|
||||
* Control message types for SOL_RDS.
|
||||
*
|
||||
@@ -149,6 +155,7 @@ struct rds_info_connection {
|
||||
__be32 faddr;
|
||||
__u8 transport[TRANSNAMSIZ]; /* null term ascii */
|
||||
__u8 flags;
|
||||
__u8 tos;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct rds6_info_connection {
|
||||
@@ -171,6 +178,7 @@ struct rds_info_message {
|
||||
__be16 lport;
|
||||
__be16 fport;
|
||||
__u8 flags;
|
||||
__u8 tos;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct rds6_info_message {
|
||||
@@ -214,6 +222,7 @@ struct rds_info_tcp_socket {
|
||||
__u32 last_sent_nxt;
|
||||
__u32 last_expected_una;
|
||||
__u32 last_seen_una;
|
||||
__u8 tos;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct rds6_info_tcp_socket {
|
||||
@@ -240,6 +249,7 @@ struct rds_info_rdma_connection {
|
||||
__u32 max_send_sge;
|
||||
__u32 rdma_mr_max;
|
||||
__u32 rdma_mr_size;
|
||||
__u8 tos;
|
||||
};
|
||||
|
||||
struct rds6_info_rdma_connection {
|
||||
@@ -253,6 +263,7 @@ struct rds6_info_rdma_connection {
|
||||
__u32 max_send_sge;
|
||||
__u32 rdma_mr_max;
|
||||
__u32 rdma_mr_size;
|
||||
__u8 tos;
|
||||
};
|
||||
|
||||
/* RDS message Receive Path Latency points */
|
||||
|
Reference in New Issue
Block a user