Hi Hal

DDR Ports are not supported by the current implementation of 
the ib_type.h: ib_port_info_compute_rate

This patch fixes that issue (had to change order of functions too).

I tested the patch on :
2.6.12.3-smp SuSE Linux 9.3 (i586)

Signed-off-by:  Eitan Zahavi <[EMAIL PROTECTED]>

Index: include/iba/ib_types.h
===================================================================
--- include/iba/ib_types.h      (revision 3103)
+++ include/iba/ib_types.h      (working copy)
@@ -4164,6 +4164,37 @@ ib_port_info_get_link_down_def_state(
 *
 * SEE ALSO
 *********/
+
+/****f* IBA Base: Types/ib_port_info_get_link_speed_active
+* NAME
+*      ib_port_info_get_link_speed_active
+*
+* DESCRIPTION
+*      Returns the Link Speed Active value assigned to this port.
+*
+* SYNOPSIS
+*/
+static inline uint8_t
+ib_port_info_get_link_speed_active(
+       IN              const   ib_port_info_t* const           p_pi )
+{
+  return( (uint8_t)((p_pi->link_speed &
+                     IB_PORT_LINK_SPEED_ACTIVE_MASK) >>
+                    IB_PORT_LINK_SPEED_SHIFT) );
+}
+/*
+* PARAMETERS
+*      p_pi
+*              [in] Pointer to a PortInfo attribute.
+*
+* RETURN VALUES
+*      Returns the link speed active value assigned to this port.
+*
+* NOTES
+*
+* SEE ALSO
+*********/
+
 /****f* IBA Base: Types/ib_port_info_set_link_down_def_state
 * NAME
 *      ib_port_info_set_link_down_def_state
@@ -4196,13 +4227,24 @@ ib_port_info_set_link_down_def_state(
 * SEE ALSO
 *********/
 
-#define IB_LINK_WIDTH_ACTIVE_1X                        1
-#define IB_LINK_WIDTH_ACTIVE_4X                        2
-#define IB_LINK_WIDTH_ACTIVE_12X               8
-
-#define IB_PATH_RECORD_RATE_2_5_GBS            2
-#define IB_PATH_RECORD_RATE_10_GBS             3
-#define IB_PATH_RECORD_RATE_30_GBS             4
+#define IB_LINK_WIDTH_ACTIVE_1X        1
+#define IB_LINK_WIDTH_ACTIVE_4X        2
+#define IB_LINK_WIDTH_ACTIVE_12X       8
+#define IB_LINK_SPEED_ACTIVE_2_5       1
+#define IB_LINK_SPEED_ACTIVE_5         2
+#define IB_LINK_SPEED_ACTIVE_10        4
+
+/* following v1 ver1.2 p901 */
+#define IB_MAX_RATE                    10
+#define IB_PATH_RECORD_RATE_2_5_GBS    2
+#define IB_PATH_RECORD_RATE_10_GBS     3
+#define IB_PATH_RECORD_RATE_30_GBS     4
+#define IB_PATH_RECORD_RATE_5_GBS      5
+#define IB_PATH_RECORD_RATE_20_GBS     6
+#define IB_PATH_RECORD_RATE_40_GBS     7
+#define IB_PATH_RECORD_RATE_60_GBS     8
+#define IB_PATH_RECORD_RATE_80_GBS     9
+#define IB_PATH_RECORD_RATE_120_GBS    10
 
 /****f* IBA Base: Types/ib_port_info_compute_rate
 * NAME
@@ -4218,22 +4260,60 @@ static inline uint8_t
 ib_port_info_compute_rate(
        IN              const   ib_port_info_t* const           p_pi )
 {
-       switch(p_pi->link_width_active)
-       {
-               case IB_LINK_WIDTH_ACTIVE_1X:
-                        return IB_PATH_RECORD_RATE_2_5_GBS;
-
-               case IB_LINK_WIDTH_ACTIVE_4X:
-                       return IB_PATH_RECORD_RATE_10_GBS;
-
-               case IB_LINK_WIDTH_ACTIVE_12X:
-                       return IB_PATH_RECORD_RATE_30_GBS;
-
-               default:
-                       return IB_PATH_RECORD_RATE_2_5_GBS;
-       }
+  switch (ib_port_info_get_link_speed_active(p_pi))
+  {
+  case IB_LINK_SPEED_ACTIVE_2_5:
+    switch (p_pi->link_width_active)
+    {
+    case IB_LINK_WIDTH_ACTIVE_1X:
+      return IB_PATH_RECORD_RATE_2_5_GBS;
+      
+    case IB_LINK_WIDTH_ACTIVE_4X:
+      return IB_PATH_RECORD_RATE_10_GBS;
+      
+    case IB_LINK_WIDTH_ACTIVE_12X:
+      return IB_PATH_RECORD_RATE_30_GBS;
+      
+    default:
+      return IB_PATH_RECORD_RATE_2_5_GBS;
+    }
+    break;
+  case IB_LINK_SPEED_ACTIVE_5:
+    switch (p_pi->link_width_active)
+    {
+    case IB_LINK_WIDTH_ACTIVE_1X:
+      return IB_PATH_RECORD_RATE_5_GBS;
+      
+    case IB_LINK_WIDTH_ACTIVE_4X:
+      return IB_PATH_RECORD_RATE_20_GBS;
+      
+    case IB_LINK_WIDTH_ACTIVE_12X:
+      return IB_PATH_RECORD_RATE_60_GBS;
+      
+    default:
+      return IB_PATH_RECORD_RATE_5_GBS;
+    }
+    break;
+  case IB_LINK_SPEED_ACTIVE_10:
+    switch (p_pi->link_width_active)
+    {
+    case IB_LINK_WIDTH_ACTIVE_1X:
+      return IB_PATH_RECORD_RATE_10_GBS;
+      
+    case IB_LINK_WIDTH_ACTIVE_4X:
+      return IB_PATH_RECORD_RATE_40_GBS;
+      
+    case IB_LINK_WIDTH_ACTIVE_12X:
+      return IB_PATH_RECORD_RATE_120_GBS;
+      
+    default:
+      return IB_PATH_RECORD_RATE_10_GBS;
+    }
+    break;
+  default:
+    return IB_PATH_RECORD_RATE_2_5_GBS;
+  }
 }
-
 /*
 * PARAMETERS
 *      p_pi
@@ -4658,36 +4738,6 @@ ib_port_info_set_lmc(
 *
 * NOTES
 *
-* SEE ALSO
-*********/
-
-/****f* IBA Base: Types/ib_port_info_get_link_speed_active
-* NAME
-*      ib_port_info_get_link_speed_active
-*
-* DESCRIPTION
-*      Returns the Link Speed Active value assigned to this port.
-*
-* SYNOPSIS
-*/
-static inline uint8_t
-ib_port_info_get_link_speed_active(
-       IN              const   ib_port_info_t* const           p_pi )
-{
-  return( (uint8_t)((p_pi->link_speed &
-                     IB_PORT_LINK_SPEED_ACTIVE_MASK) >>
-                    IB_PORT_LINK_SPEED_SHIFT) );
-}
-/*
-* PARAMETERS
-*      p_pi
-*              [in] Pointer to a PortInfo attribute.
-*
-* RETURN VALUES
-*      Returns the link speed active value assigned to this port.
-*
-* NOTES
-*
 * SEE ALSO
 *********/
 

_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to