]> git.openfabrics.org - ~shefty/rdma-win.git/commitdiff
libibumad: report port rate in Gbps
authorSean Hefty <sean.hefty@intel.com>
Mon, 13 Sep 2010 17:45:42 +0000 (17:45 +0000)
committerSean Hefty <sean.hefty@intel.com>
Mon, 13 Sep 2010 17:45:42 +0000 (17:45 +0000)
Port rate is currently reported as port speed, rather than in Gbps.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1@2919 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86

trunk/ulp/libibumad/src/umad.cpp

index 3f4f13cfda6a3bdcc4e521ad7ca649cacedb715a..d4759c7a132f9726280d1e62c373c9df45d7f7f0 100644 (file)
@@ -124,6 +124,22 @@ static void umad_convert_ca_attr(umad_ca_t *ca, ibv_device_attr *attr)
        ca->system_guid = attr->sys_image_guid;\r
 }\r
 \r
+static float umad_width_mult(uint8_t active_width)\r
+{\r
+       switch (active_width) {\r
+       case 1:\r
+               return 2.5;\r
+       case 2:\r
+               return 10;\r
+       case 4:\r
+               return 20;\r
+       case 8:\r
+               return 30;\r
+       default:\r
+               return 0;\r
+       }\r
+}\r
+\r
 static int umad_query_port(struct ibv_context *context, umad_port_t *port)\r
 {\r
        ibv_port_attr   attr;\r
@@ -141,7 +157,7 @@ static int umad_query_port(struct ibv_context *context, umad_port_t *port)
        port->sm_sl = attr.sm_sl;\r
        port->state = attr.state;\r
        port->phys_state = attr.phys_state;\r
-       port->rate = attr.active_speed;\r
+       port->rate = (unsigned) umad_width_mult(attr.active_width) * attr.active_speed;\r
        port->capmask = attr.port_cap_flags;\r
 \r
        // Assume GID 0 contains port GUID and gid prefix\r