rds: add transport specific tos_map hook
RDMA transport maps user tos to underline virtual lanes(VL) for IB or DSCP values. RDMA CM transport abstract thats for RDS. TCP transport makes use of default priority 0 and maps all user tos values to it. 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:
@@ -255,16 +255,18 @@ static __poll_t rds_poll(struct file *file, struct socket *sock,
|
||||
static int rds_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
|
||||
{
|
||||
struct rds_sock *rs = rds_sk_to_rs(sock->sk);
|
||||
rds_tos_t tos;
|
||||
rds_tos_t utos, tos = 0;
|
||||
|
||||
switch (cmd) {
|
||||
case SIOCRDSSETTOS:
|
||||
if (get_user(tos, (rds_tos_t __user *)arg))
|
||||
if (get_user(utos, (rds_tos_t __user *)arg))
|
||||
return -EFAULT;
|
||||
|
||||
if (rs->rs_transport &&
|
||||
rs->rs_transport->t_type == RDS_TRANS_TCP)
|
||||
tos = 0;
|
||||
rs->rs_transport->get_tos_map)
|
||||
tos = rs->rs_transport->get_tos_map(utos);
|
||||
else
|
||||
return -ENOIOCTLCMD;
|
||||
|
||||
spin_lock_bh(&rds_sock_lock);
|
||||
if (rs->rs_tos || rs->rs_conn) {
|
||||
|
Reference in New Issue
Block a user