IB/rdma_cm: TOS <=> UP mapping for IBoE
authorAmir Vadai <amirv@mellanox.com>
Wed, 4 Apr 2012 21:33:29 +0000 (21:33 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 5 Apr 2012 09:08:04 +0000 (05:08 -0400)
Both tagged traffic and untagged traffic use tc tool mapping.
Treat RDMA TOS same as IP TOS when mapping to SL

Signed-off-by: Amir Vadai <amirv@mellanox.com>
CC: Sean Hefty <sean.hefty@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/infiniband/core/cma.c

index e3e470fecaa99499835b80d53b83dda3b5f50350..59fbd704a1eca60a06ce7ec7e833e73bf86b5fc2 100644 (file)
@@ -42,6 +42,7 @@
 #include <linux/inetdevice.h>
 #include <linux/slab.h>
 #include <linux/module.h>
+#include <net/route.h>
 
 #include <net/tcp.h>
 #include <net/ipv6.h>
@@ -1826,7 +1827,10 @@ static int cma_resolve_iboe_route(struct rdma_id_private *id_priv)
        route->path_rec->reversible = 1;
        route->path_rec->pkey = cpu_to_be16(0xffff);
        route->path_rec->mtu_selector = IB_SA_EQ;
-       route->path_rec->sl = id_priv->tos >> 5;
+       route->path_rec->sl = netdev_get_prio_tc_map(
+                       ndev->priv_flags & IFF_802_1Q_VLAN ?
+                               vlan_dev_real_dev(ndev) : ndev,
+                       rt_tos2priority(id_priv->tos));
 
        route->path_rec->mtu = iboe_get_mtu(ndev->mtu);
        route->path_rec->rate_selector = IB_SA_EQ;