]> git.openfabrics.org - ~shefty/rdma-win.git/commitdiff
[HCA] Add client reregister support.
authorftillier <ftillier@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Thu, 15 Sep 2005 16:31:31 +0000 (16:31 +0000)
committerftillier <ftillier@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Thu, 15 Sep 2005 16:31:31 +0000 (16:31 +0000)
Signed-off-by: Yossi Leybovich (sleybo@mellanox.co.il)
git-svn-id: svn://openib.tc.cornell.edu/gen1@68 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86

trunk/hw/mt23108/kernel/hca_data.c
trunk/hw/mt23108/kernel/hca_verbs.c
trunk/hw/mt23108/vapi/Hca/hcahal/tavor/thh_hob/thh_hob.c
trunk/hw/mt23108/vapi/Hca/verbs/common/vapi_common.c
trunk/hw/mt23108/vapi/Hca/verbs/vapi_types.h
trunk/hw/mt23108/vapi/mlxsys/mtl_types/ib_defs.h

index f7228c92bfc0f12fed0be24a6cbd3ee7042dbe5c..029813bd545091c69eafc3760cbc7487cf702bfb 100644 (file)
@@ -693,6 +693,10 @@ mlnx_map_vapi_event_type(
                if (event_class_p) *event_class_p = E_EV_CA;\r
                return IB_AE_PORT_ACTIVE; /* ACTIVE STATE */\r
 \r
+       case VAPI_CLIENT_REREGISTER:\r
+               if (event_class_p) *event_class_p = E_EV_CA;\r
+               return IB_AE_CLIENT_REREGISTER; /* ACTIVE STATE */\r
+\r
        default:\r
                CL_TRACE(MLNX_DBG_INFO, g_mlnx_dbg_lvl, ("FAIL to map %d (last known %d) returning %d\n",\r
                        event_id, VAPI_PORT_ACTIVE, IB_AE_LOCAL_FATAL));\r
@@ -2046,6 +2050,8 @@ vapi_port_cap_to_ibal(
                ibal_port_cap_p->sm_disable = TRUE;\r
        if (vapi_port_cap & IB_CAP_MASK_IS_SM)\r
                ibal_port_cap_p->sm = TRUE;\r
+       if (vapi_port_cap & IB_CAP_MASK_IS_CLIENT_REREGISTRATION_SUP)\r
+               ibal_port_cap_p->client_reregister= TRUE;\r
 }\r
 \r
 /////////////////////////////////////////////////////////\r
index 993fdbaf89e61cbf85ec89099f1aa6604cee7ea9..63625b2255a56db9316ace40fe035f54631e4866 100644 (file)
@@ -414,6 +414,10 @@ mlnx_modify_ca (
                hca_attr_mask |= HCA_ATTR_IS_VENDOR_CLS_SUP;\r
                hca_attr.is_vendor_cls_sup = (MT_bool)p_port_attr->cap.vend;\r
        }\r
+       if (modca_cmd & IB_CA_MOD_IS_CLIENT_REREGISTER_SUPPORTED) {\r
+               hca_attr_mask |= HCA_ATTR_IS_CLIENT_REREGISTRATION_SUP;\r
+               hca_attr.is_client_reregister_sup= (MT_bool)p_port_attr->cap.client_reregister;\r
+       }\r
        if (modca_cmd & IB_CA_MOD_QKEY_CTR) {\r
                if (p_port_attr->qkey_ctr == 0)\r
                        hca_attr.reset_qkey_counter = TRUE;\r
index ef80816d4ff3a48ca79519d3962c76c65e9638c3..0484cf9fa2f6bc70bb1ba7f486ec219cc2f0ef2a 100644 (file)
@@ -2732,6 +2732,13 @@ HH_ret_t THH_hob_modify(
               IB_CAP_MASK_CLR(capabilities, IB_CAP_MASK_IS_VENDOR_CLS_SUP);\r
           }\r
       }\r
+     if(HCA_ATTR_IS_SET(*hca_attr_mask_p, HCA_ATTR_IS_CLIENT_REREGISTRATION_SUP) ) {\r
+          if (hca_attr_p->is_client_reregister_sup) {\r
+              IB_CAP_MASK_SET(capabilities, IB_CAP_MASK_IS_CLIENT_REREGISTRATION_SUP);\r
+          } else {\r
+              IB_CAP_MASK_CLR(capabilities, IB_CAP_MASK_IS_CLIENT_REREGISTRATION_SUP);\r
+          }\r
+      }          \r
   }\r
 \r
   set_ib_props.capability_mask = capabilities;\r
index 40c7b01380c291627ebe7b7f141a09e3dd47abc6..e2fe827e22f17012c924e27c52f85a0a122476a2 100644 (file)
@@ -146,6 +146,7 @@ const char* VAPI_hca_attr_mask_sym(char* buf, int bufsz, u_int32_t mask)
   SAFE_APPEND(HCA_ATTR_IS_SNMP_TUN_SUP)\r
   SAFE_APPEND(HCA_ATTR_IS_DEV_MGT_SUP)\r
   SAFE_APPEND(HCA_ATTR_IS_VENDOR_CLS_SUP)\r
+   SAFE_APPEND(HCA_ATTR_IS_CLIENT_REREGISTRATION_SUP)\r
   SAFE_APPEND(HCA_ATTR_MAX)\r
   end_mask_sym(buf, cbuf, bufsz);\r
   return buf;\r
index 75db39d3ba08521fba1a583362308b327e39694a..b1bcb62c9907b8287358dc1768359c9fb5c47e0e 100644 (file)
@@ -111,7 +111,8 @@ typedef enum {
   HCA_ATTR_IS_SNMP_TUN_SUP    = 2,\r
   HCA_ATTR_IS_DEV_MGT_SUP     = 4,\r
   HCA_ATTR_IS_VENDOR_CLS_SUP  = 8,\r
-  HCA_ATTR_MAX                = 16 /*Dummy enum entry: always keep it the last one */\r
+  HCA_ATTR_IS_CLIENT_REREGISTRATION_SUP  = 16,\r
+  HCA_ATTR_MAX                = 32 /*Dummy enum entry: always keep it the last one */\r
 } VAPI_hca_attr_mask_enum_t;\r
 \r
 \r
@@ -126,7 +127,8 @@ typedef u_int32_t VAPI_hca_attr_mask_t;
         HCA_ATTR_IS_SM|\\r
         HCA_ATTR_IS_SNMP_TUN_SUP|\\r
         HCA_ATTR_IS_DEV_MGT_SUP|\\r
-        HCA_ATTR_IS_VENDOR_CLS_SUP))!=0)\r
+        HCA_ATTR_IS_VENDOR_CLS_SUP|\\r
+        HCA_ATTR_IS_CLIENT_REREGISTRATION_SUP))!=0)\r
 #define HCA_ATTR_IS_SET(mask,attr)    (((mask)&(attr))!=0)\r
 \r
 /* QP attributes mask enumeration */\r
@@ -385,7 +387,8 @@ typedef enum {
   VAPI_LOCAL_EEC_CATASTROPHIC_ERROR, /*EEC*/\r
   VAPI_LOCAL_CATASTROPHIC_ERROR,     /*none*/\r
   VAPI_PORT_ERROR,                   /*PORT*/\r
-  VAPI_PORT_ACTIVE                   /*PORT*/\r
+  VAPI_PORT_ACTIVE,                   /*PORT*/\r
+  VAPI_CLIENT_REREGISTER\r
 } VAPI_event_record_type_t;\r
 \r
 \r
@@ -586,6 +589,7 @@ typedef struct {
   MT_bool      is_snmp_tun_sup;\r
   MT_bool      is_dev_mgt_sup;\r
   MT_bool      is_vendor_cls_sup;\r
+  MT_bool      is_client_reregister_sup;\r
 } VAPI_hca_attr_t;  \r
 \r
 \r
index ac724a91110949fa4aa30a5cc8170648c5d1aac9..32ee2f4b9607e947c6b384ec277f3edf57b99e1e 100644 (file)
@@ -187,8 +187,11 @@ typedef enum {
 /*20: */  IB_CAP_MASK_IS_VENDOR_CLS_SUP   = (1<<20),\r
 /*21: */  IB_CAP_MASK_IS_DR_NOTICE_SUP    = (1<<21),\r
 /*22: */  IB_CAP_MASK_IS_CAP_MASK_NOTICE_SUP = (1<<22),\r
-/*23: */  IB_CAP_MASK_IS_BOOT_MGMT_SUP    = (1<<23)\r
-/*24 - 31: RESERVED */\r
+/*23: */  IB_CAP_MASK_IS_BOOT_MGMT_SUP    = (1<<23),\r
+/*24: */  IB_CAP_MASK_IS_LINK_ROUND_TRIP_LATENCY_SUP    = (1<<24), //???? NEW\r
+/*25: */  IB_CAP_MASK_IS_CLIENT_REREGISTRATION_SUP    = (1<<25)\r
+/*26 - 31: RESERVED */\r
+\r
 } IB_capability_mask_bits_t;\r
 \r
 \r