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
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
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
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
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
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
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
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
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
/*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