p_path->local_lid,\r
p_path->remote_lid,\r
1, p_req->pkey,\r
- conn_req_path_get_svc_lvl( p_path ),\r
+ conn_req_path_get_svc_lvl( p_path ), 0,\r
IB_PATH_SELECTOR_EXACTLY, conn_req_get_mtu( p_req ),\r
IB_PATH_SELECTOR_EXACTLY,\r
conn_req_path_get_pkt_rate( p_path ),\r
(uint8_t)( conn_req_path_get_lcl_ack_timeout( p_path ) - 1 ),\r
0 );\r
\r
- p_path_rec->hop_flow_raw.val = 0;\r
/* Add global routing info as necessary. */\r
if( !conn_req_path_get_subn_lcl( p_path ) )\r
{\r
p_lap->alternate_path.local_lid,\r
p_lap->alternate_path.remote_lid,\r
1, IB_DEFAULT_PKEY,\r
- conn_lap_path_get_svc_lvl( &p_lap->alternate_path ),\r
+ conn_lap_path_get_svc_lvl( &p_lap->alternate_path ), 0,\r
IB_PATH_SELECTOR_EXACTLY,\r
IB_MTU_LEN_2048,\r
IB_PATH_SELECTOR_EXACTLY,\r
(uint8_t)( conn_lap_path_get_lcl_ack_timeout( p_path ) - 1 ),\r
0 );\r
\r
- lap_rec.alt_path.hop_flow_raw.val = 0;\r
/* Add global routing info as necessary. */\r
if( !conn_lap_path_get_subn_lcl( &p_lap->alternate_path ) )\r
{\r
\r
p_class_port_info->base_ver = 1;\r
p_class_port_info->class_ver = 1;\r
- p_class_port_info->resp_time_val = CL_HTON32( DM_CLASS_RESP_TIME_VALUE );\r
+ p_class_port_info->cap_mask2_resp_time = CL_HTON32( DM_CLASS_RESP_TIME_VALUE );\r
}\r
\r
\r
__format_path(ib_path_rec_t *p_path, req_path_info_t *p_info,\r
ib_net16_t pkey, uint8_t mtu)\r
{\r
- p_path->resv0 = 0;\r
+ p_path->service_id = 0;\r
p_path->dgid = p_info->local_gid;\r
p_path->sgid = p_info->remote_gid;\r
p_path->dlid = p_info->local_lid;\r
p_path->tclass = p_info->traffic_class;\r
p_path->num_path = 0;\r
p_path->pkey = pkey;\r
- p_path->sl = conn_req_path_get_svc_lvl(p_info);\r
+ ib_path_rec_set_sl(p_path, conn_req_path_get_svc_lvl(p_info));\r
+ ib_path_rec_set_qos_class(p_path, 0);\r
p_path->mtu = mtu;\r
p_path->rate = conn_req_path_get_pkt_rate(p_info);\r
p_path->pkt_life = conn_req_path_get_lcl_ack_timeout(p_info);\r
* Clear reserved fields in case they were set to prevent undue path\r
* thrashing.\r
*/\r
- p_path->rec.resv0 = 0;\r
p_path->rec.resv1 = 0;\r
p_path->rec.resv2 = 0;\r
\r
ib_gid_set_default\r
ib_grh_get_ver_class_flow\r
ib_grh_set_ver_class_flow\r
-ib_inform_get_dev_id\r
-ib_inform_get_prod_type\r
-ib_inform_get_qpn\r
-ib_inform_get_resp_time_val\r
-ib_inform_get_trap_num\r
-ib_inform_get_vend_id\r
-ib_inform_set_dev_id\r
-ib_inform_set_prod_type\r
-ib_inform_set_qpn\r
-ib_inform_set_resp_time_val\r
-ib_inform_set_trap_num\r
-ib_inform_set_vend_id\r
ib_init_dgrm_svc\r
ib_ioc_profile_get_subsys_vend_id\r
ib_ioc_profile_get_vend_id\r
ib_modify_qp\r
ib_node_info_get_local_port_num\r
ib_node_info_get_vendor_id\r
-ib_notice_get_count\r
-ib_notice_get_dev_id\r
-ib_notice_get_generic\r
-ib_notice_get_prod_type\r
-ib_notice_get_toggle\r
-ib_notice_get_trap_num\r
-ib_notice_get_type\r
-ib_notice_get_vend_id\r
-ib_notice_set_count\r
-ib_notice_set_dev_id\r
-ib_notice_set_generic\r
-ib_notice_set_prod_type\r
-ib_notice_set_toggle\r
-ib_notice_set_trap_num\r
-ib_notice_set_type\r
-ib_notice_set_vend_id\r
ib_open_al\r
ib_open_ca\r
ib_path_get_ipd\r
cl_waitobj_signal\r
cl_waitobj_reset\r
cl_waitobj_wait_on\r
+clean_nodedesc\r
open_node_name_map\r
close_node_name_map\r
remap_node_name\r
#include <complib/cl_qmap.h>\r
\r
/* NOTE: this may modify the parameter "nodedesc". */\r
-char *clean_nodedesc(char *nodedesc);\r
+CL_EXPORT char *clean_nodedesc(char *nodedesc);\r
\r
typedef struct _name_map_item {\r
cl_map_item_t item;\r
#define IB_SMINFO_STATE_MASTER 3\r
/**********/\r
\r
+/****d* IBA Base: Constants/IB_PATH_REC_SL_MASK\r
+* NAME\r
+* IB_PATH_REC_SL_MASK\r
+*\r
+* DESCRIPTION\r
+* Mask for the sl field for path record\r
+*\r
+* SOURCE\r
+*/\r
+#define IB_PATH_REC_SL_MASK 0x000F\r
+\r
+/****d* IBA Base: Constants/IB_PATH_REC_QOS_CLASS_MASK\r
+* NAME\r
+* IB_PATH_REC_QOS_CLASS_MASK\r
+*\r
+* DESCRIPTION\r
+* Mask for the QoS class field for path record\r
+*\r
+* SOURCE\r
+*/\r
+#define IB_PATH_REC_QOS_CLASS_MASK 0xFFF0\r
+\r
/****d* IBA Base: Constants/IB_PATH_REC_SELECTOR_MASK\r
* NAME\r
* IB_PATH_REC_SELECTOR_MASK\r
#include <complib/cl_packon.h>\r
typedef __declspec(align(8)) struct _ib_path_rec\r
{\r
- uint64_t resv0;\r
+ ib_net64_t service_id;\r
ib_gid_t dgid;\r
ib_gid_t sgid;\r
ib_net16_t dlid;\r
ib_net16_t slid;\r
- ib_field32_t hop_flow_raw;\r
+ ib_net32_t hop_flow_raw;\r
uint8_t tclass;\r
uint8_t num_path;\r
ib_net16_t pkey;\r
- ib_net16_t sl;\r
+ ib_net16_t qos_class_sl;\r
uint8_t mtu;\r
uint8_t rate;\r
uint8_t pkt_life;\r
*********/\r
\r
/* Path Record Component Masks */\r
+#define IB_PR_COMPMASK_SERVICEID_MSB (CL_HTON64(((uint64_t)1)<<0))\r
+#define IB_PR_COMPMASK_SERVICEID_LSB (CL_HTON64(((uint64_t)1)<<1))\r
#define IB_PR_COMPMASK_DGID (CL_HTON64(((uint64_t)1)<<2))\r
#define IB_PR_COMPMASK_SGID (CL_HTON64(((uint64_t)1)<<3))\r
#define IB_PR_COMPMASK_DLID (CL_HTON64(((uint64_t)1)<<4))\r
#define IB_PR_COMPMASK_TCLASS (CL_HTON64(((uint64_t)1)<<10))\r
#define IB_PR_COMPMASK_REVERSIBLE (CL_HTON64(((uint64_t)1)<<11))\r
#define IB_PR_COMPMASK_NUM_PATH (CL_HTON64(((uint64_t)1)<<12))\r
+#define IB_PR_COMPMASK_NUMBPATH (CL_HTON64(((uint64_t)1)<<12))\r
#define IB_PR_COMPMASK_PKEY (CL_HTON64(((uint64_t)1)<<13))\r
+#define IB_PR_COMPMASK_QOS_CLASS (CL_HTON64(((uint64_t)1)<<14))\r
#define IB_PR_COMPMASK_RESV1 (CL_HTON64(((uint64_t)1)<<14))\r
#define IB_PR_COMPMASK_SL (CL_HTON64(((uint64_t)1)<<15))\r
#define IB_PR_COMPMASK_MTUSELEC (CL_HTON64(((uint64_t)1)<<16))\r
#define IB_MPR_COMPMASK_REVERSIBLE (CL_HTON64(((uint64_t)1)<<5))\r
#define IB_MPR_COMPMASK_NUMBPATH (CL_HTON64(((uint64_t)1)<<6))\r
#define IB_MPR_COMPMASK_PKEY (CL_HTON64(((uint64_t)1)<<7))\r
-#define IB_MPR_COMPMASK_RESV1 (CL_HTON64(((uint64_t)1)<<8))\r
+#define IB_MPR_COMPMASK_QOS_CLASS (CL_HTON64(((uint64_t)1)<<8))\r
#define IB_MPR_COMPMASK_SL (CL_HTON64(((uint64_t)1)<<9))\r
#define IB_MPR_COMPMASK_MTUSELEC (CL_HTON64(((uint64_t)1)<<10))\r
#define IB_MPR_COMPMASK_MTU (CL_HTON64(((uint64_t)1)<<11))\r
IN const uint8_t num_path,\r
IN const ib_net16_t pkey,\r
IN const uint8_t sl,\r
+ IN const uint16_t qos_class,\r
IN const uint8_t mtu_selector,\r
IN const uint8_t mtu,\r
IN const uint8_t rate_selector,\r
p_rec->slid = slid;\r
p_rec->num_path = num_path;\r
p_rec->pkey = pkey;\r
- /* Lower 4 bits of path rec's SL are reserved. */\r
- p_rec->sl = cl_ntoh16( sl );\r
+ p_rec->qos_class_sl = cl_hton16((sl & IB_PATH_REC_SL_MASK) |\r
+ (qos_class << 4));\r
p_rec->mtu = (uint8_t)((mtu & IB_PATH_REC_BASE_MASK) |\r
(uint8_t)(mtu_selector << 6));\r
p_rec->rate = (uint8_t)((rate & IB_PATH_REC_BASE_MASK) |\r
p_rec->preference = preference;\r
\r
/* Clear global routing fields for local path records */\r
- p_rec->hop_flow_raw.val = 0;\r
+ p_rec->hop_flow_raw = 0;\r
p_rec->tclass = 0;\r
+ p_rec->service_id = 0;\r
\r
- p_rec->resv0 = 0;\r
p_rec->resv1 = 0;\r
p_rec->resv2 = 0;\r
}\r
* ib_path_rec_t\r
*********/\r
\r
+/****f* IBA Base: Types/ib_path_rec_set_sl\r
+* NAME\r
+* ib_path_rec_set_sl\r
+*\r
+* DESCRIPTION\r
+* Set path service level.\r
+*\r
+* SYNOPSIS\r
+*/\r
+AL_INLINE void AL_API\r
+ib_path_rec_set_sl(IN ib_path_rec_t * const p_rec, IN const uint8_t sl)\r
+{\r
+ p_rec->qos_class_sl =\r
+ (p_rec->qos_class_sl & CL_HTON16(IB_PATH_REC_QOS_CLASS_MASK)) |\r
+ cl_hton16(sl & IB_PATH_REC_SL_MASK);\r
+}\r
+\r
/****f* IBA Base: Types/ib_path_rec_sl\r
* NAME\r
* ib_path_rec_sl\r
ib_path_rec_sl(\r
IN const ib_path_rec_t* const p_rec )\r
{\r
- return( (uint8_t)((cl_ntoh16( p_rec->sl )) & 0xF) );\r
+ return (uint8_t)(cl_ntoh16(p_rec->qos_class_sl) & IB_PATH_REC_SL_MASK);\r
}\r
/*\r
* PARAMETERS\r
* ib_path_rec_t\r
*********/\r
\r
+/****f* IBA Base: Types/ib_path_rec_set_qos_class\r
+* NAME\r
+* ib_path_rec_set_qos_class\r
+*\r
+* DESCRIPTION\r
+* Set path QoS class.\r
+*\r
+* SYNOPSIS\r
+*/\r
+AL_INLINE void AL_API\r
+ib_path_rec_set_qos_class(IN ib_path_rec_t * const p_rec,\r
+ IN const uint16_t qos_class)\r
+{\r
+ p_rec->qos_class_sl =\r
+ (p_rec->qos_class_sl & CL_HTON16(IB_PATH_REC_SL_MASK)) |\r
+ cl_hton16(qos_class << 4);\r
+}\r
+/*\r
+* PARAMETERS\r
+* p_rec\r
+* [in] Pointer to the path record object.\r
+*\r
+* qos_class\r
+* [in] QoS class to set.\r
+*\r
+* RETURN VALUES\r
+* None\r
+*\r
+* NOTES\r
+*\r
+* SEE ALSO\r
+* ib_path_rec_t\r
+*********/\r
+\r
+/****f* IBA Base: Types/ib_path_rec_qos_class\r
+* NAME\r
+* ib_path_rec_qos_class\r
+*\r
+* DESCRIPTION\r
+* Get QoS class.\r
+*\r
+* SYNOPSIS\r
+*/\r
+AL_INLINE uint16_t AL_API\r
+ib_path_rec_qos_class(IN const ib_path_rec_t * const p_rec)\r
+{\r
+ return (cl_ntoh16(p_rec->qos_class_sl) >> 4);\r
+}\r
+/*\r
+* PARAMETERS\r
+* p_rec\r
+* [in] Pointer to the path record object.\r
+*\r
+* RETURN VALUES\r
+* QoS class of the path record.\r
+*\r
+* NOTES\r
+*\r
+* SEE ALSO\r
+* ib_path_rec_t\r
+*********/\r
+\r
/****f* IBA Base: Types/ib_path_rec_mtu\r
* NAME\r
* ib_path_rec_mtu\r
ib_path_rec_flow_lbl(\r
IN const ib_path_rec_t* const p_rec )\r
{\r
- return( cl_hton32( (cl_ntoh32(p_rec->hop_flow_raw.val) >> 8) & 0x000FFFFF ) );\r
+ return( cl_hton32( (cl_ntoh32(p_rec->hop_flow_raw) >> 8) & 0x000FFFFF ) );\r
}\r
/*\r
* PARAMETERS\r
ib_path_rec_hop_limit(\r
IN const ib_path_rec_t* const p_rec )\r
{\r
- return( p_rec->hop_flow_raw.bytes[3] );\r
+ return ((uint8_t) (cl_ntoh32(p_rec->hop_flow_raw) & 0x000000FF));\r
}\r
/*\r
* PARAMETERS\r
IN const net32_t flow_lbl,\r
IN const boolean_t raw )\r
{\r
- p_rec->hop_flow_raw.val = (cl_ntoh32( flow_lbl ) & 0x000FFFFF) << 8;\r
- if( raw )\r
- p_rec->hop_flow_raw.val |= 0x80000000;\r
- p_rec->hop_flow_raw.val = cl_hton32( p_rec->hop_flow_raw.val );\r
- p_rec->hop_flow_raw.bytes[3] = hop_limit;\r
+ p_rec->hop_flow_raw = raw ? 0x80000000 : 0;\r
+ p_rec->hop_flow_raw |= (cl_ntoh32( flow_lbl ) & 0x000FFFFF) << 8;\r
+ p_rec->hop_flow_raw |= hop_limit;\r
+ p_rec->hop_flow_raw = cl_hton32( p_rec->hop_flow_raw );\r
}\r
/*\r
* PARAMETERS\r
uint8_t base_ver;\r
uint8_t class_ver;\r
ib_net16_t cap_mask;\r
- ib_net32_t resp_time_val;\r
+ ib_net32_t cap_mask2_resp_time;\r
ib_gid_t redir_gid;\r
ib_net32_t redir_tc_sl_fl;\r
ib_net16_t redir_lid;\r
*\r
*********/\r
\r
+/****f* IBA Base: Types/ib_class_set_resp_time_val\r
+* NAME\r
+* ib_class_set_resp_time_val\r
+*\r
+* DESCRIPTION\r
+* Set maximum expected response time.\r
+*\r
+* SYNOPSIS\r
+*/\r
+AL_INLINE void AL_API\r
+ib_class_set_resp_time_val(IN ib_class_port_info_t * const p_cpi,\r
+ IN const uint8_t val)\r
+{\r
+ p_cpi->cap_mask2_resp_time =\r
+ (p_cpi->cap_mask2_resp_time & CL_HTON32(~IB_CLASS_RESP_TIME_MASK)) |\r
+ cl_hton32(val & IB_CLASS_RESP_TIME_MASK);\r
+}\r
+\r
+/*\r
+* PARAMETERS\r
+* p_cpi\r
+* [in] Pointer to the class port info object.\r
+*\r
+* val\r
+* [in] Response time value to set.\r
+*\r
+* RETURN VALUES\r
+* None\r
+*\r
+* NOTES\r
+*\r
+* SEE ALSO\r
+* ib_class_port_info_t\r
+*********/\r
+\r
+/****f* IBA Base: Types/ib_class_resp_time_val\r
+* NAME\r
+* ib_class_resp_time_val\r
+*\r
+* DESCRIPTION\r
+* Get response time value.\r
+*\r
+* SYNOPSIS\r
+*/\r
+AL_INLINE uint8_t AL_API\r
+ib_class_resp_time_val(IN ib_class_port_info_t * const p_cpi)\r
+{\r
+ return (uint8_t)(cl_ntoh32(p_cpi->cap_mask2_resp_time) &\r
+ IB_CLASS_RESP_TIME_MASK);\r
+}\r
+\r
+/*\r
+* PARAMETERS\r
+* p_cpi\r
+* [in] Pointer to the class port info object.\r
+*\r
+* RETURN VALUES\r
+* Response time value.\r
+*\r
+* NOTES\r
+*\r
+* SEE ALSO\r
+* ib_class_port_info_t\r
+*********/\r
+\r
+/****f* IBA Base: Types/ib_class_set_cap_mask2\r
+* NAME\r
+* ib_class_set_cap_mask2\r
+*\r
+* DESCRIPTION\r
+* Set ClassPortInfo:CapabilityMask2.\r
+*\r
+* SYNOPSIS\r
+*/\r
+AL_INLINE void AL_API\r
+ib_class_set_cap_mask2(IN ib_class_port_info_t * const p_cpi,\r
+ IN const uint32_t cap_mask2)\r
+{\r
+ p_cpi->cap_mask2_resp_time = (p_cpi->cap_mask2_resp_time &\r
+ CL_HTON32(IB_CLASS_RESP_TIME_MASK)) |\r
+ cl_hton32(cap_mask2 << 5);\r
+}\r
+\r
+/*\r
+* PARAMETERS\r
+* p_cpi\r
+* [in] Pointer to the class port info object.\r
+*\r
+* cap_mask2\r
+* [in] CapabilityMask2 value to set.\r
+*\r
+* RETURN VALUES\r
+* None\r
+*\r
+* NOTES\r
+*\r
+* SEE ALSO\r
+* ib_class_port_info_t\r
+*********/\r
+\r
+/****f* IBA Base: Types/ib_class_cap_mask2\r
+* NAME\r
+* ib_class_cap_mask2\r
+*\r
+* DESCRIPTION\r
+* Get ClassPortInfo:CapabilityMask2.\r
+*\r
+* SYNOPSIS\r
+*/\r
+AL_INLINE uint32_t AL_API\r
+ib_class_cap_mask2(IN const ib_class_port_info_t * const p_cpi)\r
+{\r
+ return (cl_ntoh32(p_cpi->cap_mask2_resp_time) >> 5);\r
+}\r
+\r
+/*\r
+* PARAMETERS\r
+* p_cpi\r
+* [in] Pointer to the class port info object.\r
+*\r
+* RETURN VALUES\r
+* CapabilityMask2 of the ClassPortInfo.\r
+*\r
+* NOTES\r
+*\r
+* SEE ALSO\r
+* ib_class_port_info_t\r
+*********/\r
+\r
/****s* IBA Base: Types/ib_sm_info_t\r
* NAME\r
* ib_sm_info_t\r
#include <complib/cl_packon.h>\r
typedef struct _ib_vl_arb_element\r
{\r
- uint8_t res_vl;\r
+ uint8_t vl;\r
uint8_t weight;\r
} PACK_SUFFIX ib_vl_arb_element_t;\r
#include <complib/cl_packoff.h>\r
ib_vl_arb_element_get_vl(\r
IN const ib_vl_arb_element_t vl_arb_element )\r
{\r
- return (vl_arb_element.res_vl >> 4);\r
+ return (vl_arb_element.vl >> 4);\r
}\r
/*\r
* PARAMETERS\r
IN OUT ib_vl_arb_element_t* const p_vl_arb_element,\r
IN const uint8_t vl )\r
{\r
- p_vl_arb_element->res_vl = vl << 4;\r
+ p_vl_arb_element->vl = vl << 4;\r
}\r
/*\r
* PARAMETERS\r
#define IB_NOTICE_TYPE_EMPTY 0x7F\r
\r
#include <complib/cl_packon.h>\r
-typedef struct _ib_mad_notice_attr\r
-{\r
- /* is_generic:1, type:7, producer type or vendor id:24 */\r
- net32_t combo1;\r
- /* trap number or device id, depending on is_generic. */\r
- net16_t combo2;\r
-\r
- net16_t issuer_lid;\r
- /* notice toggle:1, notice_count:15 */\r
- net16_t combo3;\r
-\r
- uint8_t data_details[54];\r
- ib_gid_t issuer_gid;\r
+typedef struct _ib_mad_notice_attr // Total Size calc Accumulated\r
+{\r
+ uint8_t generic_type; // 1 1\r
+ \r
+ union _notice_g_or_v\r
+ {\r
+ struct _notice_generic // 5 6\r
+ {\r
+ uint8_t prod_type_msb;\r
+ ib_net16_t prod_type_lsb;\r
+ ib_net16_t trap_num;\r
+ } PACK_SUFFIX generic;\r
+ \r
+ struct _notice_vend\r
+ {\r
+ uint8_t vend_id_msb;\r
+ ib_net16_t vend_id_lsb;\r
+ ib_net16_t dev_id;\r
+ } PACK_SUFFIX vend;\r
+ } g_or_v;\r
+ \r
+ ib_net16_t issuer_lid; // 2 8\r
+ ib_net16_t toggle_count; // 2 10\r
+ \r
+ union _data_details // 54 64\r
+ {\r
+ struct _raw_data\r
+ {\r
+ uint8_t details[54];\r
+ } PACK_SUFFIX raw_data;\r
+\r
+ struct _ntc_64_67\r
+ {\r
+ uint8_t res[6];\r
+ ib_gid_t gid; // the Node or Multicast Group that came in/out\r
+ } PACK_SUFFIX ntc_64_67;\r
+\r
+ struct _ntc_128 {\r
+ ib_net16_t sw_lid; // the sw lid of which link state changed\r
+ } PACK_SUFFIX ntc_128;\r
+ \r
+ struct _ntc_129_131 {\r
+ ib_net16_t pad;\r
+ ib_net16_t lid; // lid and port number of the violation\r
+ uint8_t port_num;\r
+ } PACK_SUFFIX ntc_129_131;\r
+ \r
+ struct _ntc_144 {\r
+ ib_net16_t pad1;\r
+ ib_net16_t lid; // lid where capability mask changed\r
+ uint8_t pad2;\r
+ uint8_t local_changes;\r
+ ib_net32_t new_cap_mask; // new capability mask\r
+ ib_net16_t change_flgs;\r
+ } PACK_SUFFIX ntc_144;\r
+\r
+ struct _ntc_145 {\r
+ ib_net16_t pad1;\r
+ ib_net16_t lid; // lid where sys guid changed\r
+ ib_net16_t pad2;\r
+ ib_net64_t new_sys_guid; // new system image guid\r
+ } PACK_SUFFIX ntc_145;\r
+\r
+ struct _ntc_256 { // total: 54\r
+ ib_net16_t pad1; // 2\r
+ ib_net16_t lid; // 2\r
+ ib_net16_t pad2; // 2\r
+ uint8_t method; // 1\r
+ uint8_t pad3; // 1\r
+ ib_net16_t attr_id; // 2\r
+ ib_net32_t attr_mod; // 4\r
+ ib_net64_t mkey; // 8\r
+ uint8_t dr_slid; // 1\r
+ uint8_t dr_trunc_hop; // 1\r
+ uint8_t dr_rtn_path[30]; // 30\r
+ } PACK_SUFFIX ntc_256;\r
+\r
+ struct _ntc_257_258 // violation of p/q_key // 49\r
+ {\r
+ ib_net16_t pad1; // 2\r
+ ib_net16_t lid1; // 2\r
+ ib_net16_t lid2; // 2\r
+ ib_net32_t key; // 2\r
+ uint8_t sl; // 1\r
+ ib_net32_t qp1; // 4\r
+ ib_net32_t qp2; // 4\r
+ ib_gid_t gid1; // 16\r
+ ib_gid_t gid2; // 16\r
+ } PACK_SUFFIX ntc_257_258;\r
+\r
+ struct _ntc_259 // p/q_key violation with sw info 53\r
+ {\r
+ ib_net16_t data_valid; // 2\r
+ ib_net16_t lid1; // 2\r
+ ib_net16_t lid2; // 2\r
+ ib_net32_t key; // 4\r
+ uint8_t sl; // 1\r
+ ib_net32_t qp1; // 4\r
+ uint8_t qp2_msb; // 1\r
+ ib_net16_t qp2_lsb; // 2\r
+ ib_gid_t gid1; // 16\r
+ ib_gid_t gid2; // 16\r
+ ib_net16_t sw_lid; // 2\r
+ uint8_t port_no; // 1\r
+ } PACK_SUFFIX ntc_259;\r
+\r
+ } data_details;\r
+\r
+ ib_gid_t issuer_gid; // 16 80\r
\r
} PACK_SUFFIX ib_mad_notice_attr_t;\r
#include <complib/cl_packoff.h>\r
\r
-/****f* IBA Base: Types/ib_notice_get_generic\r
-* NAME\r
-* ib_notice_get_generic\r
-*\r
-* DESCRIPTION\r
-* Retrieves whether a notice trap is generic.\r
-*\r
-* SYNOPSIS\r
-*/\r
-AL_INLINE boolean_t AL_API\r
-ib_notice_get_generic(\r
- IN const ib_mad_notice_attr_t* const p_notice_attr )\r
+/**\r
+ * Trap 259 masks\r
+ */\r
+#define TRAP_259_MASK_SL (CL_HTON32(0xF0000000))\r
+#define TRAP_259_MASK_QP (CL_HTON32(0x00FFFFFF))\r
+\r
+/**\r
+ * Trap 144 masks\r
+ */\r
+#define TRAP_144_MASK_OTHER_LOCAL_CHANGES 0x01\r
+#define TRAP_144_MASK_SM_PRIORITY_CHANGE (CL_HTON16(0x0008))\r
+#define TRAP_144_MASK_LINK_SPEED_ENABLE_CHANGE (CL_HTON16(0x0004))\r
+#define TRAP_144_MASK_LINK_WIDTH_ENABLE_CHANGE (CL_HTON16(0x0002))\r
+#define TRAP_144_MASK_NODE_DESCRIPTION_CHANGE (CL_HTON16(0x0001))\r
+\r
+#include <complib/cl_packon.h>\r
+typedef struct _ib_inform_info\r
{\r
- if( cl_ntoh32( p_notice_attr->combo1 ) & 0x00000001 )\r
- return TRUE;\r
- return FALSE;\r
-}\r
-/*\r
-* PARAMETERS\r
-* p_notice_attr\r
-* [in] Pointer to the notice attribute structure for which to return\r
-* whether it is generic or not.\r
-*\r
-* RETURN VALUES\r
-* Returns TRUE if the notice is generic.\r
-*\r
-* Returns FALSE if the notice is vendor specific.\r
-*\r
-* SEE ALSO\r
-* ib_mad_notice_attr_t, ib_notice_set_generic\r
-*********/\r
+ ib_gid_t gid;\r
+ ib_net16_t lid_range_begin;\r
+ ib_net16_t lid_range_end;\r
+ ib_net16_t reserved1;\r
+ uint8_t is_generic;\r
+ uint8_t subscribe;\r
+ ib_net16_t trap_type;\r
+ union _inform_g_or_v {\r
+ struct _inform_generic {\r
+ ib_net16_t trap_num;\r
+ ib_net32_t qpn_resp_time_val;\r
+ uint8_t reserved2;\r
+ uint8_t node_type_msb;\r
+ ib_net16_t node_type_lsb;\r
+ } PACK_SUFFIX generic;\r
+ struct _inform_vend {\r
+ ib_net16_t dev_id;\r
+ ib_net32_t qpn_resp_time_val;\r
+ uint8_t reserved2;\r
+ uint8_t vendor_id_msb;\r
+ ib_net16_t vendor_id_lsb;\r
+ } PACK_SUFFIX vend;\r
+ } PACK_SUFFIX g_or_v;\r
+} PACK_SUFFIX ib_inform_info_t;\r
+#include <complib/cl_packoff.h>\r
\r
-/****f* IBA Base: Types/ib_notice_set_generic\r
+/****f* IBA Base: Types/ib_inform_info_get_qpn_resp_time\r
* NAME\r
-* ib_notice_set_generic\r
+* ib_inform_info_get_qpn_resp_time\r
*\r
* DESCRIPTION\r
-* Sets whether a notice trap is generic.\r
+* Get QPN of the inform info\r
*\r
* SYNOPSIS\r
*/\r
AL_INLINE void AL_API\r
-ib_notice_set_generic(\r
- IN OUT ib_mad_notice_attr_t* const p_notice_attr,\r
- IN const boolean_t is_generic )\r
+ib_inform_info_get_qpn_resp_time(IN const ib_net32_t qpn_resp_time_val,\r
+ OUT ib_net32_t * const p_qpn,\r
+ OUT uint8_t * const p_resp_time_val)\r
{\r
- uint32_t val;\r
+ uint32_t tmp = cl_ntoh32(qpn_resp_time_val);\r
\r
- val = cl_ntoh32( p_notice_attr->combo1 );\r
- if( is_generic )\r
- val |= 0x00000001;\r
- else\r
- val &= 0xFFFFFFFE;\r
- p_notice_attr->combo1 = cl_hton32( val );\r
+ if (p_qpn)\r
+ *p_qpn = cl_hton32((tmp & 0xffffff00) >> 8);\r
+ if (p_resp_time_val)\r
+ *p_resp_time_val = (uint8_t) (tmp & 0x0000001f);\r
}\r
+\r
/*\r
* PARAMETERS\r
-* p_notice_attr\r
-* [in/out] Pointer to the notice attribute structure for which to set\r
-* the generic bit.\r
-*\r
-* is_generic\r
-* [in] TRUE if the notice is generic, FALSE if vendor specific.\r
+* qpn_resp_time_val\r
+* [in] the qpn and resp time val from the mad\r
*\r
* RETURN VALUES\r
-* This function does not return a value.\r
-*\r
-* SEE ALSO\r
-* ib_mad_notice_attr_t, ib_notice_get_generic\r
-*********/\r
-\r
-/****f* IBA Base: Types/ib_notice_get_type\r
-* NAME\r
-* ib_notice_get_type\r
+* p_qpn\r
+* [out] pointer to the qpn\r
*\r
-* DESCRIPTION\r
-* Retrieves the type of a notice trap.\r
-*\r
-* SYNOPSIS\r
-*/\r
-AL_INLINE uint8_t AL_API\r
-ib_notice_get_type(\r
- IN const ib_mad_notice_attr_t* const p_notice_attr )\r
-{\r
- return (uint8_t)((cl_ntoh32( p_notice_attr->combo1 ) >> 1) & 0x0000007F);\r
-}\r
-/*\r
-* PARAMETERS\r
-* p_notice_attr\r
-* [in] Pointer to the notice attribute structure whose type to return.\r
+* p_state\r
+* [out] pointer to the resp time val\r
*\r
-* RETURN VALUES\r
-* Returns the type of the notice.\r
+* NOTES\r
*\r
* SEE ALSO\r
-* ib_mad_notice_attr_t, ib_notice_set_type\r
+* ib_inform_info_t\r
*********/\r
\r
-/****f* IBA Base: Types/ib_notice_set_type\r
+/****f* IBA Base: Types/ib_inform_info_set_qpn\r
* NAME\r
-* ib_notice_set_type\r
+* ib_inform_info_set_qpn\r
*\r
* DESCRIPTION\r
-* Sets the type of a notice trap.\r
+* Set the QPN of the inform info\r
*\r
* SYNOPSIS\r
*/\r
AL_INLINE void AL_API\r
-ib_notice_set_type(\r
- IN OUT ib_mad_notice_attr_t* const p_notice_attr,\r
- IN const uint8_t type )\r
+ib_inform_info_set_qpn(IN ib_inform_info_t * p_ii, IN ib_net32_t const qpn)\r
{\r
- uint32_t val;\r
+ uint32_t tmp = cl_ntoh32(p_ii->g_or_v.generic.qpn_resp_time_val);\r
\r
- val = cl_ntoh32( p_notice_attr->combo1 );\r
- /* Clear the type. */\r
- val &= 0xFFFFFF01;\r
- /* Set new value. */\r
- val |= (((uint32_t)(type & 0x7F)) << 1);\r
- p_notice_attr->combo1 = cl_hton32( val );\r
+ p_ii->g_or_v.generic.qpn_resp_time_val =\r
+ cl_hton32((tmp & 0x000000ff) | ((cl_ntoh32(qpn) << 8) & 0xffffff00)\r
+ );\r
}\r
-/*\r
-* PARAMETERS\r
-* p_notice_attr\r
-* [in/out] Pointer to the notice attribute structure whose type to set.\r
-*\r
-* type\r
-* [in] Type of notice trap.\r
-*\r
-* RETURN VALUES\r
-* This function does not return a value.\r
-*\r
-* SEE ALSO\r
-* ib_mad_notice_attr_t, ib_notice_get_type\r
-*********/\r
\r
-/****f* IBA Base: Types/ib_notice_get_prod_type\r
-* NAME\r
-* ib_notice_get_prod_type\r
-*\r
-* DESCRIPTION\r
-* Retrieves the producer type from a generic notice trap.\r
-*\r
-* SYNOPSIS\r
-*/\r
-AL_INLINE uint32_t AL_API\r
-ib_notice_get_prod_type(\r
- IN const ib_mad_notice_attr_t* const p_notice_attr )\r
-{\r
- return (cl_ntoh32( p_notice_attr->combo1 ) >> 8);\r
-}\r
/*\r
* PARAMETERS\r
-* p_notice_attr\r
-* [in] Pointer to the notice attribute structure whose\r
-* prducer type to return.\r
*\r
-* RETURN VALUES\r
-* Returns the producer type of the notice, in host byte order.\r
+* NOTES\r
*\r
* SEE ALSO\r
-* ib_mad_notice_attr_t, ib_notice_set_prod_type\r
+* ib_inform_info_t\r
*********/\r
\r
-/****f* IBA Base: Types/ib_notice_set_prod_type\r
+/****f* IBA Base: Types/ib_inform_info_get_prod_type\r
* NAME\r
-* ib_notice_set_prod_type\r
+* ib_inform_info_get_prod_type\r
*\r
* DESCRIPTION\r
-* Sets the producer type of a generic notice trap.\r
+* Get Producer Type of the Inform Info\r
+* 13.4.8.3 InformInfo\r
*\r
* SYNOPSIS\r
*/\r
-AL_INLINE void AL_API\r
-ib_notice_set_prod_type(\r
- IN OUT ib_mad_notice_attr_t* const p_notice_attr,\r
- IN const uint32_t prod_type )\r
+AL_INLINE ib_net32_t AL_API\r
+ib_inform_info_get_prod_type(IN const ib_inform_info_t * p_inf)\r
{\r
- uint32_t val;\r
+ uint32_t nt;\r
\r
- val = cl_ntoh32( p_notice_attr->combo1 );\r
- /* Clear the type. */\r
- val &= 0x000000FF;\r
- /* Set new value. */\r
- val |= (prod_type << 8);\r
- p_notice_attr->combo1 = cl_hton32( val );\r
+ nt = cl_ntoh16(p_inf->g_or_v.generic.node_type_lsb) |\r
+ (p_inf->g_or_v.generic.node_type_msb << 16);\r
+ return cl_hton32(nt);\r
}\r
+\r
/*\r
* PARAMETERS\r
-* p_notice_attr\r
-* [in/out] Pointer to the notice attribute structure\r
-* whose producer type to set.\r
-*\r
-* prod_type\r
-* [in] Producer type of notice trap.\r
+* p_inf\r
+* [in] pointer to an inform info\r
*\r
* RETURN VALUES\r
-* This function does not return a value.\r
+* The producer type\r
+*\r
+* NOTES\r
*\r
* SEE ALSO\r
-* ib_mad_notice_attr_t, ib_notice_get_prod_type\r
+* ib_inform_info_t\r
*********/\r
\r
-/****f* IBA Base: Types/ib_notice_get_vend_id\r
+/****f* IBA Base: Types/ib_inform_info_get_vend_id\r
* NAME\r
-* ib_notice_get_vend_id\r
+* ib_inform_info_get_vend_id\r
*\r
* DESCRIPTION\r
-* Retrieves the vendor ID from a vendor specific notice trap.\r
+* Get Node Type of the Inform Info\r
*\r
* SYNOPSIS\r
*/\r
-AL_INLINE uint32_t AL_API\r
-ib_notice_get_vend_id(\r
- IN const ib_mad_notice_attr_t* const p_notice_attr )\r
+AL_INLINE ib_net32_t AL_API\r
+ib_inform_info_get_vend_id(IN const ib_inform_info_t * p_inf)\r
{\r
- return ib_notice_get_prod_type( p_notice_attr );\r
+ uint32_t vi;\r
+\r
+ vi = cl_ntoh16(p_inf->g_or_v.vend.vendor_id_lsb) |\r
+ (p_inf->g_or_v.vend.vendor_id_msb << 16);\r
+ return cl_hton32(vi);\r
}\r
+\r
/*\r
* PARAMETERS\r
-* p_notice_attr\r
-* [in] Pointer to the notice attribute structure whose\r
-* vendor ID to return.\r
+* p_inf\r
+* [in] pointer to an inform info\r
*\r
* RETURN VALUES\r
-* Returns the vendor ID of the notice, in host byte order.\r
+* The node type\r
+*\r
+* NOTES\r
*\r
* SEE ALSO\r
-* ib_mad_notice_attr_t, ib_notice_set_vend_id\r
+* ib_inform_info_t\r
*********/\r
\r
-/****f* IBA Base: Types/ib_notice_set_vend_id\r
+/****s* IBA Base: Types/ib_inform_info_record_t\r
* NAME\r
-* ib_notice_set_vend_id\r
+* ib_inform_info_record_t\r
*\r
* DESCRIPTION\r
-* Sets the vendor ID of a vendor specific notice trap.\r
+* IBA defined InformInfo Record. (15.2.5.12)\r
*\r
* SYNOPSIS\r
*/\r
-AL_INLINE void AL_API\r
-ib_notice_set_vend_id(\r
- IN OUT ib_mad_notice_attr_t* const p_notice_attr,\r
- IN const uint32_t vend_id )\r
-{\r
- ib_notice_set_prod_type( p_notice_attr, vend_id );\r
-}\r
-/*\r
-* PARAMETERS\r
-* p_notice_attr\r
-* [in/out] Pointer to the notice attribute structure\r
-* whose vendor ID to set.\r
-*\r
-* vend_id\r
-* [in] Vendor ID of notice trap.\r
-*\r
-* RETURN VALUES\r
-* This function does not return a value.\r
-*\r
-* SEE ALSO\r
-* ib_mad_notice_attr_t, ib_notice_get_vend_id\r
-*********/\r
-\r
-/****f* IBA Base: Types/ib_notice_get_trap_num\r
-* NAME\r
-* ib_notice_get_trap_num\r
-*\r
-* DESCRIPTION\r
-* Retrieves the trap number from a generic notice trap.\r
-*\r
-* SYNOPSIS\r
-*/\r
-AL_INLINE uint16_t AL_API\r
-ib_notice_get_trap_num(\r
- IN const ib_mad_notice_attr_t* const p_notice_attr )\r
-{\r
- return cl_ntoh16( p_notice_attr->combo2 );\r
-}\r
-/*\r
-* PARAMETERS\r
-* p_notice_attr\r
-* [in] Pointer to the notice attribute structure whose\r
-* trap number to return.\r
-*\r
-* RETURN VALUES\r
-* Returns the vendor ID of the notice, in host byte order.\r
-*\r
-* SEE ALSO\r
-* ib_mad_notice_attr_t, ib_notice_set_trap_num\r
-*********/\r
-\r
-/****f* IBA Base: Types/ib_notice_set_trap_num\r
-* NAME\r
-* ib_notice_set_trap_num\r
-*\r
-* DESCRIPTION\r
-* Sets the trap number of a generic notice trap.\r
-*\r
-* SYNOPSIS\r
-*/\r
-AL_INLINE void AL_API\r
-ib_notice_set_trap_num(\r
- IN OUT ib_mad_notice_attr_t* const p_notice_attr,\r
- IN const uint16_t trap_num )\r
-{\r
- p_notice_attr->combo2 = cl_hton16( trap_num );\r
-}\r
-/*\r
-* PARAMETERS\r
-* p_notice_attr\r
-* [in/out] Pointer to the notice attribute structure\r
-* whose trap number to set.\r
-*\r
-* trap_num\r
-* [in] Trap number to set.\r
-*\r
-* RETURN VALUES\r
-* This function does not return a value.\r
-*\r
-* SEE ALSO\r
-* ib_mad_notice_attr_t, ib_notice_get_trap_num\r
-*********/\r
-\r
-/****f* IBA Base: Types/ib_notice_get_dev_id\r
-* NAME\r
-* ib_notice_get_dev_id\r
-*\r
-* DESCRIPTION\r
-* Retrieves the device ID from a vendor specific notice trap.\r
-*\r
-* SYNOPSIS\r
-*/\r
-AL_INLINE uint16_t AL_API\r
-ib_notice_get_dev_id(\r
- IN const ib_mad_notice_attr_t* const p_notice_attr )\r
-{\r
- return ib_notice_get_trap_num( p_notice_attr );\r
-}\r
-/*\r
-* PARAMETERS\r
-* p_notice_attr\r
-* [in] Pointer to the notice attribute structure whose\r
-* device ID to return.\r
-*\r
-* RETURN VALUES\r
-* Returns the vendor ID of the notice, in host byte order.\r
-*\r
-* SEE ALSO\r
-* ib_mad_notice_attr_t, ib_notice_set_dev_id\r
-*********/\r
-\r
-/****f* IBA Base: Types/ib_notice_set_dev_id\r
-* NAME\r
-* ib_notice_set_dev_id\r
-*\r
-* DESCRIPTION\r
-* Sets the producer type of a vendor specific notice trap.\r
-*\r
-* SYNOPSIS\r
-*/\r
-AL_INLINE void AL_API\r
-ib_notice_set_dev_id(\r
- IN OUT ib_mad_notice_attr_t* const p_notice_attr,\r
- IN const uint16_t dev_id )\r
-{\r
- ib_notice_set_trap_num( p_notice_attr, dev_id );\r
-}\r
-/*\r
-* PARAMETERS\r
-* p_notice_attr\r
-* [in/out] Pointer to the notice attribute structure\r
-* whose device ID to set.\r
-*\r
-* dev_id\r
-* [in] Device ID of notice trap.\r
-*\r
-* RETURN VALUES\r
-* This function does not return a value.\r
-*\r
-* SEE ALSO\r
-* ib_mad_notice_attr_t, ib_notice_get_dev_id\r
-*********/\r
-\r
-/****f* IBA Base: Types/ib_notice_get_toggle\r
-* NAME\r
-* ib_notice_get_toggle\r
-*\r
-* DESCRIPTION\r
-* Retrieves the notice toggle bit from a notice trap.\r
-*\r
-* SYNOPSIS\r
-*/\r
-AL_INLINE boolean_t AL_API\r
-ib_notice_get_toggle(\r
- IN const ib_mad_notice_attr_t* const p_notice_attr )\r
-{\r
- return (cl_ntoh16( p_notice_attr->combo3 ) & 0x0001);\r
-}\r
-/*\r
-* PARAMETERS\r
-* p_notice_attr\r
-* [in] Pointer to the notice attribute structure whose\r
-* notice toggle bit value to return.\r
-*\r
-* RETURN VALUES\r
-* Returns TRUE if the notice toggle bit of the notice is set.\r
-*\r
-* Returns FALSE otherwise.\r
-*\r
-* SEE ALSO\r
-* ib_mad_notice_attr_t, ib_notice_set_toggle\r
-*********/\r
-\r
-/****f* IBA Base: Types/ib_notice_set_toggle\r
-* NAME\r
-* ib_notice_set_toggle\r
-*\r
-* DESCRIPTION\r
-* Sets the notice toggle bit of a notice trap.\r
-*\r
-* SYNOPSIS\r
-*/\r
-AL_INLINE void AL_API\r
-ib_notice_set_toggle(\r
- IN OUT ib_mad_notice_attr_t* const p_notice_attr,\r
- IN const boolean_t toggle_val )\r
-{\r
- uint16_t val;\r
- val = cl_ntoh16( p_notice_attr->combo3 );\r
- if( toggle_val )\r
- val |= 0x0001;\r
- else\r
- val &= 0xFFFE;\r
- p_notice_attr->combo3 = cl_hton16( val );\r
-}\r
-/*\r
-* PARAMETERS\r
-* p_notice_attr\r
-* [in/out] Pointer to the notice attribute structure\r
-* whose notice toggle bit to set or clear.\r
-*\r
-* toggle_val\r
-* [in] Boolean value indicating whether the toggle bit of the notice\r
-* should be set or cleared.\r
-*\r
-* RETURN VALUES\r
-* This function does not return a value.\r
-*\r
-* SEE ALSO\r
-* ib_mad_notice_attr_t, ib_notice_get_toggle\r
-*********/\r
-\r
-/****f* IBA Base: Types/ib_notice_get_count\r
-* NAME\r
-* ib_notice_get_count\r
-*\r
-* DESCRIPTION\r
-* Retrieves the notice toggle count from a notice trap.\r
-*\r
-* SYNOPSIS\r
-*/\r
-AL_INLINE boolean_t AL_API\r
-ib_notice_get_count(\r
- IN const ib_mad_notice_attr_t* const p_notice_attr )\r
-{\r
- return ((cl_ntoh16( p_notice_attr->combo3 ) & 0xFFFE) >> 1);\r
-}\r
-/*\r
-* PARAMETERS\r
-* p_notice_attr\r
-* [in] Pointer to the notice attribute structure whose\r
-* notice toggle count to return.\r
-*\r
-* RETURN VALUES\r
-* Returns the notice toggle count of the notice.\r
-*\r
-* SEE ALSO\r
-* ib_mad_notice_attr_t, ib_notice_set_count\r
-*********/\r
-\r
-/****f* IBA Base: Types/ib_notice_set_count\r
-* NAME\r
-* ib_notice_set_count\r
-*\r
-* DESCRIPTION\r
-* Sets the toggle count of a notice trap.\r
-*\r
-* SYNOPSIS\r
-*/\r
-AL_INLINE void AL_API\r
-ib_notice_set_count(\r
- IN OUT ib_mad_notice_attr_t* const p_notice_attr,\r
- IN const uint16_t toggle_cnt )\r
-{\r
- uint16_t val;\r
- val = cl_ntoh16( p_notice_attr->combo3 );\r
- val &= 0x0001;\r
- val |= (toggle_cnt << 1);\r
- p_notice_attr->combo3 = cl_hton16( val );\r
-}\r
-/*\r
-* PARAMETERS\r
-* p_notice_attr\r
-* [in/out] Pointer to the notice attribute structure\r
-* whose device ID to set.\r
-*\r
-* toggle_cnt\r
-* [in] Toggle count value of the notice.\r
-*\r
-* RETURN VALUES\r
-* This function does not return a value.\r
-*\r
-* SEE ALSO\r
-* ib_mad_notice_attr_t, ib_notice_get_count\r
-*********/\r
-\r
-#include <complib/cl_packon.h>\r
-typedef struct _ib_inform_info\r
-{\r
- ib_gid_t gid;\r
-\r
- ib_net16_t lid_range_begin;\r
- ib_net16_t lid_range_end;\r
- // EZ: not v1.1 ib_net16_t pkey;\r
- ib_net16_t reserved;\r
- uint8_t is_generic;\r
- uint8_t subscribe;\r
- // EZ: not v1.1 ib_net16_t class_range;\r
- ib_net16_t trap_type;\r
-\r
- /* trap num or dev_id */\r
- ib_net16_t combo1;\r
- /* QPN:24, resv:3, resp_time_val:5 */\r
- ib_net32_t combo2;\r
- /* resv:8, producer type or vendor id:24 */\r
- ib_net32_t combo3;\r
-\r
-} PACK_SUFFIX ib_inform_info_t;\r
-#include <complib/cl_packoff.h>\r
-\r
-/****f* IBA Base: Types/ib_inform_get_trap_num\r
-* NAME\r
-* ib_inform_get_trap_num\r
-*\r
-* DESCRIPTION\r
-* Retrieves the trap number from an inform info structure.\r
-*\r
-* SYNOPSIS\r
-*/\r
-AL_INLINE uint16_t AL_API\r
-ib_inform_get_trap_num(\r
- IN const ib_inform_info_t* const p_inform_info )\r
-{\r
- return cl_ntoh16( p_inform_info->combo1 );\r
-}\r
-/*\r
-* PARAMETERS\r
-* p_inform_info\r
-* [in] Pointer to the inform info structure whose\r
-* trap number to return.\r
-*\r
-* RETURN VALUES\r
-* Returns the trap number of the infrom info, in host byte order.\r
-*\r
-* SEE ALSO\r
-* ib_inform_info_t, ib_inform_set_trap_num\r
-*********/\r
-\r
-/****f* IBA Base: Types/ib_inform_set_trap_num\r
-* NAME\r
-* ib_inform_set_trap_num\r
-*\r
-* DESCRIPTION\r
-* Sets the trap number of an inform info structure.\r
-*\r
-* SYNOPSIS\r
-*/\r
-AL_INLINE void AL_API\r
-ib_inform_set_trap_num(\r
- IN OUT ib_inform_info_t* const p_inform_info,\r
- IN const uint16_t trap_num )\r
-{\r
- p_inform_info->combo1 = cl_hton16( trap_num );\r
-}\r
-/*\r
-* PARAMETERS\r
-* p_inform_info\r
-* [in/out] Pointer to the inform info structure\r
-* whose trap number to set.\r
-*\r
-* trap_num\r
-* [in] Trap number to set.\r
-*\r
-* RETURN VALUES\r
-* This function does not return a value.\r
-*\r
-* SEE ALSO\r
-* ib_inform_info_t, ib_inform_get_trap_num\r
-*********/\r
-\r
-/****f* IBA Base: Types/ib_inform_get_dev_id\r
-* NAME\r
-* ib_inform_get_dev_id\r
-*\r
-* DESCRIPTION\r
-* Retrieves the device ID from a vendor specific inform trap.\r
-*\r
-* SYNOPSIS\r
-*/\r
-AL_INLINE uint16_t AL_API\r
-ib_inform_get_dev_id(\r
- IN const ib_inform_info_t* const p_inform_info )\r
-{\r
- return ib_inform_get_trap_num( p_inform_info );\r
-}\r
-/*\r
-* PARAMETERS\r
-* p_inform_info\r
-* [in] Pointer to the inform info structure whose\r
-* device ID to return.\r
-*\r
-* RETURN VALUES\r
-* Returns the vendor ID of the inform info, in host byte order.\r
-*\r
-* SEE ALSO\r
-* ib_inform_info_t, ib_inform_set_dev_id\r
-*********/\r
-\r
-/****f* IBA Base: Types/ib_inform_set_dev_id\r
-* NAME\r
-* ib_inform_set_dev_id\r
-*\r
-* DESCRIPTION\r
-* Sets the producer type of a vendor specific inform trap.\r
-*\r
-* SYNOPSIS\r
-*/\r
-AL_INLINE void AL_API\r
-ib_inform_set_dev_id(\r
- IN OUT ib_inform_info_t* const p_inform_info,\r
- IN const uint16_t dev_id )\r
-{\r
- ib_inform_set_trap_num( p_inform_info, dev_id );\r
-}\r
-/*\r
-* PARAMETERS\r
-* p_inform_info\r
-* [in/out] Pointer to the inform info structure\r
-* whose device ID to set.\r
-*\r
-* dev_id\r
-* [in] Device ID of inform trap.\r
-*\r
-* RETURN VALUES\r
-* This function does not return a value.\r
-*\r
-* SEE ALSO\r
-* ib_inform_info_t, ib_inform_get_dev_id\r
-*********/\r
-\r
-/****f* IBA Base: Types/ib_inform_get_qpn\r
-* NAME\r
-* ib_inform_get_qpn\r
-*\r
-* DESCRIPTION\r
-* Retrieves the QPN from an inform info structure.\r
-*\r
-* SYNOPSIS\r
-*/\r
-AL_INLINE net32_t AL_API\r
-ib_inform_get_qpn(\r
- IN const ib_inform_info_t* const p_inform_info )\r
-{\r
- return (p_inform_info->combo2 & CL_NTOH32( 0x00FFFFFF ));\r
-}\r
-/*\r
-* PARAMETERS\r
-* p_inform_info\r
-* [in] Pointer to the inform info structure whose\r
-* QPN to return.\r
-*\r
-* RETURN VALUES\r
-* Returns the QPN of the infrom info.\r
-*\r
-* SEE ALSO\r
-* ib_inform_info_t, ib_inform_set_qpn\r
-*********/\r
-\r
-/****f* IBA Base: Types/ib_inform_set_qpn\r
-* NAME\r
-* ib_inform_set_qpn\r
-*\r
-* DESCRIPTION\r
-* Sets the QPN of an inform info structure.\r
-*\r
-* SYNOPSIS\r
-*/\r
-AL_INLINE void AL_API\r
-ib_inform_set_qpn(\r
- IN OUT ib_inform_info_t* const p_inform_info,\r
- IN const net32_t qpn )\r
-{\r
- p_inform_info->combo2 &= CL_NTOH32( 0xFF000000 );\r
- p_inform_info->combo2 |= (qpn & CL_NTOH32( 0x00FFFFFF ));\r
-}\r
-/*\r
-* PARAMETERS\r
-* p_inform_info\r
-* [in/out] Pointer to the inform info structure\r
-* whose QPN to set.\r
-*\r
-* qpn\r
-* [in] QPN of the inform info.\r
-*\r
-* RETURN VALUES\r
-* This function does not return a value.\r
-*\r
-* SEE ALSO\r
-* ib_inform_info_t, ib_inform_get_qpn\r
-*********/\r
-\r
-/****f* IBA Base: Types/ib_inform_get_resp_time_val\r
-* NAME\r
-* ib_inform_get_resp_time_val\r
-*\r
-* DESCRIPTION\r
-* Retrieves the response time value from an inform info structure.\r
-*\r
-* SYNOPSIS\r
-*/\r
-AL_INLINE uint8_t AL_API\r
-ib_inform_get_resp_time_val(\r
- IN const ib_inform_info_t* const p_inform_info )\r
-{\r
- return (uint8_t)(cl_ntoh32( p_inform_info->combo2 ) >> 27);\r
-}\r
-/*\r
-* PARAMETERS\r
-* p_inform_info\r
-* [in] Pointer to the inform info structure whose\r
-* response time value to return.\r
-*\r
-* RETURN VALUES\r
-* Returns the response time value of the infrom info.\r
-*\r
-* SEE ALSO\r
-* ib_inform_info_t, ib_inform_set_resp_time_val\r
-*********/\r
-\r
-/****f* IBA Base: Types/ib_inform_set_resp_time_val\r
-* NAME\r
-* ib_inform_set_resp_time_val\r
-*\r
-* DESCRIPTION\r
-* Sets the response time value of an inform info structure.\r
-*\r
-* SYNOPSIS\r
-*/\r
-AL_INLINE void AL_API\r
-ib_inform_set_resp_time_val(\r
- IN OUT ib_inform_info_t* const p_inform_info,\r
- IN const uint8_t resp_time_val )\r
-{\r
- uint32_t val;\r
-\r
- val = cl_ntoh32( p_inform_info->combo2 );\r
- val &= 0x07FFFFFF;\r
- val |= (resp_time_val << 27);\r
- p_inform_info->combo2 = cl_hton32( val );\r
-}\r
-/*\r
-* PARAMETERS\r
-* p_inform_info\r
-* [in/out] Pointer to the inform info structure\r
-* whose response time value to set.\r
-*\r
-* resp_time_val\r
-* [in] Response time value of the inform info.\r
-*\r
-* RETURN VALUES\r
-* This function does not return a value.\r
-*\r
-* SEE ALSO\r
-* ib_inform_info_t, ib_inform_get_resp_time_val\r
-*********/\r
-\r
-/****f* IBA Base: Types/ib_inform_get_prod_type\r
-* NAME\r
-* ib_inform_get_prod_type\r
-*\r
-* DESCRIPTION\r
-* Retrieves the producer type from an inform info structure.\r
-*\r
-* SYNOPSIS\r
-*/\r
-AL_INLINE uint32_t AL_API\r
-ib_inform_get_prod_type(\r
- IN const ib_inform_info_t* const p_inform_info )\r
-{\r
- return (cl_ntoh32( p_inform_info->combo3 ) >> 8);\r
-}\r
-/*\r
-* PARAMETERS\r
-* p_inform_info\r
-* [in] Pointer to the inform info structure whose\r
-* prducer type to return.\r
-*\r
-* RETURN VALUES\r
-* Returns the producer type of the infrom info, in host byte order.\r
-*\r
-* SEE ALSO\r
-* ib_inform_info_t, ib_inform_set_prod_type\r
-*********/\r
-\r
-/****f* IBA Base: Types/ib_inform_set_prod_type\r
-* NAME\r
-* ib_inform_set_prod_type\r
-*\r
-* DESCRIPTION\r
-* Sets the producer type of an inform info structure.\r
-*\r
-* SYNOPSIS\r
-*/\r
-AL_INLINE void AL_API\r
-ib_inform_set_prod_type(\r
- IN OUT ib_inform_info_t* const p_inform_info,\r
- IN const uint32_t prod_type )\r
-{\r
- p_inform_info->combo3 = cl_hton32( prod_type << 8 );\r
-}\r
-/*\r
-* PARAMETERS\r
-* p_inform_info\r
-* [in/out] Pointer to the inform info structure\r
-* whose producer type to set.\r
-*\r
-* prod_type\r
-* [in] Producer type of inform trap.\r
-*\r
-* RETURN VALUES\r
-* This function does not return a value.\r
-*\r
-* SEE ALSO\r
-* ib_inform_info_t, ib_inform_get_prod_type\r
-*********/\r
-\r
-/****f* IBA Base: Types/ib_inform_get_vend_id\r
-* NAME\r
-* ib_inform_get_vend_id\r
-*\r
-* DESCRIPTION\r
-* Retrieves the vendor ID from an inform info structure.\r
-*\r
-* SYNOPSIS\r
-*/\r
-AL_INLINE uint32_t AL_API\r
-ib_inform_get_vend_id(\r
- IN const ib_inform_info_t* const p_inform_info )\r
-{\r
- return ib_inform_get_prod_type( p_inform_info );\r
-}\r
-/*\r
-* PARAMETERS\r
-* p_inform_info\r
-* [in] Pointer to the inform info structure whose\r
-* vendor ID to return.\r
-*\r
-* RETURN VALUES\r
-* Returns the vendor ID of the infrom info, in host byte order.\r
-*\r
-* SEE ALSO\r
-* ib_inform_info_t, ib_inform_set_vend_id\r
-*********/\r
-\r
-/****f* IBA Base: Types/ib_inform_set_vend_id\r
-* NAME\r
-* ib_inform_set_vend_id\r
-*\r
-* DESCRIPTION\r
-* Sets the vendor ID of an inform info structure.\r
-*\r
-* SYNOPSIS\r
-*/\r
-AL_INLINE void AL_API\r
-ib_inform_set_vend_id(\r
- IN OUT ib_inform_info_t* const p_inform_info,\r
- IN const uint32_t vend_id )\r
-{\r
- ib_inform_set_prod_type( p_inform_info, vend_id );\r
-}\r
-/*\r
-* PARAMETERS\r
-* p_inform_info\r
-* [in/out] Pointer to the inform info structure\r
-* whose vendor ID to set.\r
-*\r
-* vend_id\r
-* [in] Vendor ID of inform trap.\r
-*\r
-* RETURN VALUES\r
-* This function does not return a value.\r
-*\r
-* SEE ALSO\r
-* ib_mad_inform_info_t, ib_inform_get_vend_id\r
-*********/\r
-\r
-/****s* IBA Base: Types/ib_inform_info_record_t\r
-* NAME\r
-* ib_inform_info_record_t\r
-*\r
-* DESCRIPTION\r
-* IBA defined InformInfo Record. (15.2.5.12)\r
-*\r
-* SYNOPSIS\r
-*/\r
-#include <complib/cl_packon.h>\r
-typedef struct _ib_inform_info_record\r
+#include <complib/cl_packon.h>\r
+typedef struct _ib_inform_info_record\r
{\r
ib_gid_t subscriber_gid;\r
net16_t subscriber_enum;\r
uint16_t reserved[3];\r
ib_inform_info_t inform_info;\r
+ uint8_t pad[4];\r
\r
} PACK_SUFFIX ib_inform_info_record_t;\r
#include <complib/cl_packoff.h>\r
#define strdupa _strdup\r
#define strncasecmp _strnicmp\r
\r
-void __cdecl report(int sig);
-\r
#endif /* _CONFIG_H_ */\r
+++ /dev/null
-/*
- * Copyright (c) 2009 Intel Corp, Inc. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following
- * disclaimer.
- *
- * - Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- */
-
-#ifndef _INTTYPES_H_
-#define _INTTYPES_H_
-
-#endif /* _INTTYPES_H_ */
+++ /dev/null
-/*
- * Copyright (c) 2009 Intel Corp, Inc. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following
- * disclaimer.
- *
- * - Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- */
-
-#ifndef _IN_H_
-#define _IN_H_
-
-#endif /* _IN_H_ */
+++ /dev/null
-/*
- * Copyright (c) 2009 Intel Corp, Inc. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following
- * disclaimer.
- *
- * - Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- */
-
-#ifndef _UNISTD_H_
-#define _UNISTD_H_
-
-#define sleep(s) Sleep(s * 1000)
-
-static int getdomainname(char *name, size_t len)
-{
- return -1;
-}
-
-#endif /* _UNISTD_H_ */
DIRS = \\r
ibaddr \\r
+ ibnetdiscover \\r
ibping \\r
ibportstate \\r
+ ibroute \\r
+ ibsendtrap \\r
ibstat \\r
+ ibsysstat \\r
+ ibtracert \\r
+ mcm_rereg_test \\r
perfquery \\r
+ saquery \\r
sminfo \\r
smpdump \\r
smpquery \\r
}
/* these structs help find Line (Anafa) slot number while using spine portnum */
-int line_slot_2_sfb4[25] = { 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4 };
-int anafa_line_slot_2_sfb4[25] = { 0, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2 };
-int line_slot_2_sfb12[25] = { 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,10, 10, 11, 11, 12, 12 };
-int anafa_line_slot_2_sfb12[25] = { 0, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2 };
+char line_slot_2_sfb4[25] = { 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4 };
+char anafa_line_slot_2_sfb4[25] = { 0, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2 };
+char line_slot_2_sfb12[25] = { 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,10, 10, 11, 11, 12, 12 };
+char anafa_line_slot_2_sfb12[25] = { 0, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2 };
/* IPR FCR modules connectivity while using sFB4 port as reference */
-int ipr_slot_2_sfb4_port[25] = { 0, 3, 2, 1, 3, 2, 1, 3, 2, 1, 3, 2, 1, 3, 2, 1, 3, 2, 1, 3, 2, 1, 3, 2, 1 };
+char ipr_slot_2_sfb4_port[25] = { 0, 3, 2, 1, 3, 2, 1, 3, 2, 1, 3, 2, 1, 3, 2, 1, 3, 2, 1, 3, 2, 1, 3, 2, 1 };
/* these structs help find Spine (Anafa) slot number while using spine portnum */
-int spine12_slot_2_slb[25] = { 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-int anafa_spine12_slot_2_slb[25]= { 0, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-int spine4_slot_2_slb[25] = { 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-int anafa_spine4_slot_2_slb[25] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-/* reference { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24 }; */
+char spine12_slot_2_slb[25] = { 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
+char anafa_spine12_slot_2_slb[25]= { 0, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
+char spine4_slot_2_slb[25] = { 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
+char anafa_spine4_slot_2_slb[25] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
+/* reference { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24 }; */
static void get_sfb_slot(Node *node, Port *lineport)
{
static void get_router_slot(Node *node, Port *spineport)
{
ChassisRecord *ch = node->chrecord;
- int guessnum = 0;
+ uint64_t guessnum = 0;
if (!ch) {
if (!(node->chrecord = calloc(1, sizeof(ChassisRecord))))
return; /* already filled slot */
chassislist->linenode[i] = node;
- node->chrecord->chassisnum = chassislist->chassisnum;
+ node->chrecord->chassisnum = (unsigned char) chassislist->chassisnum;
}
static void insert_spine(Node *node, ChassisList *chassislist)
return; /* already filled slot */
chassislist->spinenode[i] = node;
- node->chrecord->chassisnum = chassislist->chassisnum;
+ node->chrecord->chassisnum = (unsigned char) chassislist->chassisnum;
}
static void pass_on_lines_catch_spines(ChassisList *chassislist)
if (!node->chrecord) {
if (!(node->chrecord = calloc(1, sizeof(ChassisRecord))))
IBPANIC("out of mem");
- node->chrecord->chassisnum = chassis->chassisnum;
+ node->chrecord->chassisnum = (unsigned char) chassis->chassisnum;
}
}
}
INCLUDES = ..\..\include;..\..\include\windows;\\r
..\..\..\..\ulp\libibmad\include;\\r
..\..\..\..\ulp\libibumad\include;\\r
- ..\..\..\..\inc;..\..\..\..\inc\user;\r
+ ..\..\..\..\inc;..\..\..\..\inc\user;\\r
+ ..\..\..\..\inc\user\linux;\r
\r
C_DEFINES = $(C_DEFINES) /DHAVE_CONFIG_H\r
\r
*/\r
\r
#include "..\..\..\..\etc\user\getopt.c"\r
+\r
+#if USE_INET\r
+#if WINVER < 0x600\r
+#include "..\..\..\..\etc\user\inet.c"\r
+#endif\r
+#endif
\ No newline at end of file
#include <infiniband/umad.h>
#include <infiniband/mad.h>
-#include <infiniband/complib/cl_nodenamemap.h>
+#include <complib/cl_nodenamemap.h>
#include "ibnetdiscover.h"
#include "grouping.h"
++path->cnt;
if (path->cnt > maxhops_discovered)
maxhops_discovered = path->cnt;
- path->p[path->cnt] = nextport;
+ path->p[path->cnt] = (uint8_t) nextport;
return path->cnt;
}
uint64_t guid;
fprintf(f, "\nChassis %d", chassisnum);
- guid = get_chassis_guid(chassisnum);
+ guid = get_chassis_guid((unsigned char) chassisnum);
if (guid)
fprintf(f, " (guid 0x%" PRIx64 ")", guid);
fprintf(f, "\n");
{ "Router_list", 'R', 0, NULL, "list of connected routers" },
{ "node-name-map", 1, 1, "<file>", "node name map file" },
{ "ports", 'p', 0, NULL, "obtain a ports report" },
- { }
+ { 0 }
};
char usage_args[] = "[topology-file]";
--- /dev/null
+TARGETNAME = ibnetdiscover\r
+TARGETPATH = ..\..\..\..\bin\user\obj$(BUILD_ALT_DIR)\r
+TARGETTYPE = PROGRAM\r
+\r
+UMTYPE = console\r
+UMENTRY = main\r
+\r
+USE_MSVCRT = 1\r
+\r
+SOURCES = ..\ibnetdiscover.c ..\grouping.c ..\ibdiag_common.c ..\ibdiag_windows.c\\r
+ ibnetdiscover.rc\r
+ \r
+INCLUDES = ..\..\include;..\..\include\windows;\\r
+ ..\..\..\..\ulp\libibmad\include;\\r
+ ..\..\..\..\ulp\libibumad\include;\\r
+ ..\..\..\..\inc;..\..\..\..\inc\user;\\r
+ ..\..\..\..\inc\user\linux;\r
+\r
+C_DEFINES = $(C_DEFINES) /DHAVE_CONFIG_H\r
+\r
+TARGETLIBS = \\r
+ $(SDK_LIB_PATH)\kernel32.lib \\r
+!if $(FREEBUILD)\r
+ $(TARGETPATH)\*\complib.lib \\r
+ $(TARGETPATH)\*\libibmad.lib \\r
+ $(TARGETPATH)\*\libibumad.lib \r
+!else\r
+ $(TARGETPATH)\*\complibd.lib \\r
+ $(TARGETPATH)\*\libibmadd.lib \\r
+ $(TARGETPATH)\*\libibumadd.lib \r
+!endif\r
+\r
+MSC_WARNING_LEVEL = /W3 /WX /wd4007
\ No newline at end of file
--- /dev/null
+/*\r
+ * Copyright (c) 2009 Intel Corporation. All rights reserved.\r
+ *\r
+ * This software is available to you under the OpenIB.org BSD license\r
+ * below:\r
+ *\r
+ * Redistribution and use in source and binary forms, with or\r
+ * without modification, are permitted provided that the following\r
+ * conditions are met:\r
+ *\r
+ * - Redistributions of source code must retain the above\r
+ * copyright notice, this list of conditions and the following\r
+ * disclaimer.\r
+ *\r
+ * - Redistributions in binary form must reproduce the above\r
+ * copyright notice, this list of conditions and the following\r
+ * disclaimer in the documentation and/or other materials\r
+ * provided with the distribution.\r
+ *\r
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\r
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\r
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
+ * SOFTWARE.\r
+ *\r
+ * $Id$\r
+ */\r
+\r
+\r
+#include <oib_ver.h>\r
+\r
+#define VER_FILETYPE VFT_APP\r
+#define VER_FILESUBTYPE VFT2_UNKNOWN\r
+\r
+#ifdef DBG\r
+#define VER_FILEDESCRIPTION_STR "InfiniBand Network Topology Discovery (Debug)"\r
+#else\r
+#define VER_FILEDESCRIPTION_STR "InfiniBand Network Topology Discovery"\r
+#endif\r
+\r
+#define VER_INTERNALNAME_STR "ibnetdiscover.exe"\r
+#define VER_ORIGINALFILENAME_STR "ibnetdiscover.exe"\r
+\r
+#include <common.ver>\r
--- /dev/null
+#\r
+# DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source\r
+# file to this component. This file merely indirects to the real make file\r
+# that is shared by all the driver components of the OpenIB Windows project.\r
+#\r
+\r
+!INCLUDE ..\..\..\..\inc\openib.def\r
INCLUDES = ..\..\include;..\..\include\windows;\\r
..\..\..\..\ulp\libibmad\include;\\r
..\..\..\..\ulp\libibumad\include;\\r
- ..\..\..\..\inc;..\..\..\..\inc\user;\r
+ ..\..\..\..\inc;..\..\..\..\inc\user;\\r
+ ..\..\..\..\inc\user\linux;\r
\r
C_DEFINES = $(C_DEFINES) /DHAVE_CONFIG_H\r
\r
INCLUDES = ..\..\include;..\..\include\windows;\\r
..\..\..\..\ulp\libibmad\include;\\r
..\..\..\..\ulp\libibumad\include;\\r
- ..\..\..\..\inc;..\..\..\..\inc\user;\r
+ ..\..\..\..\inc;..\..\..\..\inc\user;\\r
+ ..\..\..\..\inc\user\linux;\r
\r
C_DEFINES = $(C_DEFINES) /DHAVE_CONFIG_H\r
\r
#include <infiniband/umad.h>
#include <infiniband/mad.h>
-#include <infiniband/complib/cl_nodenamemap.h>
+#include <complib/cl_nodenamemap.h>
#include "ibdiag_common.h"
for (;i < e; i++) {
unsigned outport = lft[i % IB_SMP_DATA_SIZE];
- unsigned valid = (outport <= nports);
+ unsigned valid = (outport <= (unsigned) nports);
if (!valid && !dump_all)
continue;
{ "all", 'a', 0, NULL, "show all lids, even invalid entries" },
{ "no_dests", 'n', 0, NULL, "do not try to resolve destinations" },
{ "Multicast", 'M', 0, NULL, "show multicast forwarding tables" },
- { }
+ { 0 }
};
char usage_args[] = "[<dest dr_path|lid|guid> [<startlid> [<endlid>]]]";
const char *usage_examples[] = {
--- /dev/null
+TARGETNAME = ibroute\r
+TARGETPATH = ..\..\..\..\bin\user\obj$(BUILD_ALT_DIR)\r
+TARGETTYPE = PROGRAM\r
+\r
+UMTYPE = console\r
+UMENTRY = main\r
+\r
+USE_MSVCRT = 1\r
+\r
+SOURCES = ..\ibroute.c ..\ibdiag_common.c ..\ibdiag_windows.c ibroute.rc\r
+ \r
+INCLUDES = ..\..\include;..\..\include\windows;\\r
+ ..\..\..\..\ulp\libibmad\include;\\r
+ ..\..\..\..\ulp\libibumad\include;\\r
+ ..\..\..\..\inc;..\..\..\..\inc\user;\\r
+ ..\..\..\..\inc\user\linux;\r
+\r
+C_DEFINES = $(C_DEFINES) /DHAVE_CONFIG_H\r
+\r
+TARGETLIBS = \\r
+ $(SDK_LIB_PATH)\kernel32.lib \\r
+ $(SDK_LIB_PATH)\ws2_32.lib \\r
+!if $(FREEBUILD)\r
+ $(TARGETPATH)\*\complib.lib \\r
+ $(TARGETPATH)\*\libibmad.lib \\r
+ $(TARGETPATH)\*\libibumad.lib \r
+!else\r
+ $(TARGETPATH)\*\complibd.lib \\r
+ $(TARGETPATH)\*\libibmadd.lib \\r
+ $(TARGETPATH)\*\libibumadd.lib \r
+!endif\r
+\r
+MSC_WARNING_LEVEL = /W3 /WX /wd4007
\ No newline at end of file
--- /dev/null
+/*\r
+ * Copyright (c) 2009 Intel Corporation. All rights reserved.\r
+ *\r
+ * This software is available to you under the OpenIB.org BSD license\r
+ * below:\r
+ *\r
+ * Redistribution and use in source and binary forms, with or\r
+ * without modification, are permitted provided that the following\r
+ * conditions are met:\r
+ *\r
+ * - Redistributions of source code must retain the above\r
+ * copyright notice, this list of conditions and the following\r
+ * disclaimer.\r
+ *\r
+ * - Redistributions in binary form must reproduce the above\r
+ * copyright notice, this list of conditions and the following\r
+ * disclaimer in the documentation and/or other materials\r
+ * provided with the distribution.\r
+ *\r
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\r
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\r
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
+ * SOFTWARE.\r
+ *\r
+ * $Id$\r
+ */\r
+\r
+\r
+#include <oib_ver.h>\r
+\r
+#define VER_FILETYPE VFT_APP\r
+#define VER_FILESUBTYPE VFT2_UNKNOWN\r
+\r
+#ifdef DBG\r
+#define VER_FILEDESCRIPTION_STR "Query InfiniBand Switch Forwarding Tables (Debug)"\r
+#else\r
+#define VER_FILEDESCRIPTION_STR "Query InfiniBand Switch Forwarding Tables"\r
+#endif\r
+\r
+#define VER_INTERNALNAME_STR "ibroute.exe"\r
+#define VER_ORIGINALFILENAME_STR "ibroute.exe"\r
+\r
+#include <common.ver>\r
--- /dev/null
+#\r
+# DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source\r
+# file to this component. This file merely indirects to the real make file\r
+# that is shared by all the driver components of the OpenIB Windows project.\r
+#\r
+\r
+!INCLUDE ..\..\..\..\inc\openib.def\r
#include <getopt.h>
#include <infiniband/mad.h>
-#include <infiniband/iba/ib_types.h>
+#include <iba/ib_types.h>
#include "ibdiag_common.h"
notice.generic_type = 0x80 | IB_NOTICE_TYPE_INFO;
notice.g_or_v.generic.prod_type_lsb = cl_hton16(IB_NODE_TYPE_CA);
notice.g_or_v.generic.trap_num = cl_hton16(144);
- notice.issuer_lid = cl_hton16(selfportid.lid);
- notice.data_details.ntc_144.lid = cl_hton16(selfportid.lid);
+ notice.issuer_lid = cl_hton16((uint16_t) selfportid.lid);
+ notice.data_details.ntc_144.lid = cl_hton16((uint16_t) selfportid.lid);
notice.data_details.ntc_144.local_changes =
TRAP_144_MASK_OTHER_LOCAL_CHANGES;
notice.data_details.ntc_144.change_flgs =
--- /dev/null
+TARGETNAME = ibsendtrap\r
+TARGETPATH = ..\..\..\..\bin\user\obj$(BUILD_ALT_DIR)\r
+TARGETTYPE = PROGRAM\r
+\r
+UMTYPE = console\r
+UMENTRY = main\r
+\r
+USE_MSVCRT = 1\r
+\r
+SOURCES = ..\ibsendtrap.c ..\ibdiag_common.c ..\ibdiag_windows.c ibsendtrap.rc\r
+ \r
+INCLUDES = ..\..\include;..\..\include\windows;\\r
+ ..\..\..\..\ulp\libibmad\include;\\r
+ ..\..\..\..\ulp\libibumad\include;\\r
+ ..\..\..\..\inc;..\..\..\..\inc\user;\\r
+ ..\..\..\..\inc\user\linux;\r
+\r
+C_DEFINES = $(C_DEFINES) /DHAVE_CONFIG_H\r
+\r
+TARGETLIBS = \\r
+ $(SDK_LIB_PATH)\kernel32.lib \\r
+!if $(FREEBUILD)\r
+ $(TARGETPATH)\*\libibmad.lib \\r
+ $(TARGETPATH)\*\libibumad.lib \r
+!else\r
+ $(TARGETPATH)\*\libibmadd.lib \\r
+ $(TARGETPATH)\*\libibumadd.lib \r
+!endif\r
+\r
+MSC_WARNING_LEVEL = /W3 /WX /wd4007
\ No newline at end of file
--- /dev/null
+/*\r
+ * Copyright (c) 2009 Intel Corporation. All rights reserved.\r
+ *\r
+ * This software is available to you under the OpenIB.org BSD license\r
+ * below:\r
+ *\r
+ * Redistribution and use in source and binary forms, with or\r
+ * without modification, are permitted provided that the following\r
+ * conditions are met:\r
+ *\r
+ * - Redistributions of source code must retain the above\r
+ * copyright notice, this list of conditions and the following\r
+ * disclaimer.\r
+ *\r
+ * - Redistributions in binary form must reproduce the above\r
+ * copyright notice, this list of conditions and the following\r
+ * disclaimer in the documentation and/or other materials\r
+ * provided with the distribution.\r
+ *\r
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\r
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\r
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
+ * SOFTWARE.\r
+ *\r
+ * $Id$\r
+ */\r
+\r
+\r
+#include <oib_ver.h>\r
+\r
+#define VER_FILETYPE VFT_APP\r
+#define VER_FILESUBTYPE VFT2_UNKNOWN\r
+\r
+#ifdef DBG\r
+#define VER_FILEDESCRIPTION_STR "Send InfiniBand Traps (Debug)"\r
+#else\r
+#define VER_FILEDESCRIPTION_STR "Send InfiniBand Traps"\r
+#endif\r
+\r
+#define VER_INTERNALNAME_STR "ibsendtrap.exe"\r
+#define VER_ORIGINALFILENAME_STR "ibsendtrap.exe"\r
+\r
+#include <common.ver>\r
--- /dev/null
+#\r
+# DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source\r
+# file to this component. This file merely indirects to the real make file\r
+# that is shared by all the driver components of the OpenIB Windows project.\r
+#\r
+\r
+!INCLUDE ..\..\..\..\inc\openib.def\r
INCLUDES = ..\..\include;..\..\include\windows;\\r
..\..\..\..\ulp\libibmad\include;\\r
..\..\..\..\ulp\libibumad\include;\\r
- ..\..\..\..\inc;..\..\..\..\inc\user;\r
+ ..\..\..\..\inc;..\..\..\..\inc\user;\\r
+ ..\..\..\..\inc\user\linux;\r
\r
C_DEFINES = $(C_DEFINES) /DHAVE_CONFIG_H\r
\r
DEBUG("got packet: attr 0x%x mod 0x%x", attr, mod);
- size = mk_reply(attr, mad + IB_VENDOR_RANGE2_DATA_OFFS,
+ size = mk_reply(attr, (char *) mad + IB_VENDOR_RANGE2_DATA_OFFS,
sizeof(buf) - umad_size() - IB_VENDOR_RANGE2_DATA_OFFS);
if (server_respond(umad, IB_VENDOR_RANGE2_DATA_OFFS + size) < 0)
{
ib_rpc_t rpc = { 0 };
int fd, agent, timeout, len;
- void *data = umad_get_mad(buf) + IB_VENDOR_RANGE2_DATA_OFFS;
+ void *data = (char *) umad_get_mad(buf) + IB_VENDOR_RANGE2_DATA_OFFS;
DEBUG("Sysstat ping..");
const struct ibdiag_opt opts[] = {
{ "oui", 'o', 1, NULL, "use specified OUI number" },
{ "Server", 'S', 0, NULL, "start in server mode" },
- { }
+ { 0 }
};
char usage_args[] = "<dest lid|guid> [<op>]";
--- /dev/null
+TARGETNAME = ibsysstat\r
+TARGETPATH = ..\..\..\..\bin\user\obj$(BUILD_ALT_DIR)\r
+TARGETTYPE = PROGRAM\r
+\r
+UMTYPE = console\r
+UMENTRY = main\r
+\r
+USE_MSVCRT = 1\r
+\r
+SOURCES = ..\ibsysstat.c ..\ibdiag_common.c ..\ibdiag_windows.c ibsysstat.rc\r
+ \r
+INCLUDES = ..\..\include;..\..\include\windows;\\r
+ ..\..\..\..\ulp\libibmad\include;\\r
+ ..\..\..\..\ulp\libibumad\include;\\r
+ ..\..\..\..\inc;..\..\..\..\inc\user;\\r
+ ..\..\..\..\inc\user\linux;\r
+\r
+C_DEFINES = $(C_DEFINES) /DHAVE_CONFIG_H\r
+\r
+TARGETLIBS = \\r
+ $(SDK_LIB_PATH)\kernel32.lib \\r
+ $(SDK_LIB_PATH)\ws2_32.lib \\r
+!if $(FREEBUILD)\r
+ $(TARGETPATH)\*\libibmad.lib \\r
+ $(TARGETPATH)\*\libibumad.lib \r
+!else\r
+ $(TARGETPATH)\*\libibmadd.lib \\r
+ $(TARGETPATH)\*\libibumadd.lib \r
+!endif\r
+\r
+MSC_WARNING_LEVEL = /W3 /WX /wd4007
\ No newline at end of file
--- /dev/null
+/*\r
+ * Copyright (c) 2009 Intel Corporation. All rights reserved.\r
+ *\r
+ * This software is available to you under the OpenIB.org BSD license\r
+ * below:\r
+ *\r
+ * Redistribution and use in source and binary forms, with or\r
+ * without modification, are permitted provided that the following\r
+ * conditions are met:\r
+ *\r
+ * - Redistributions of source code must retain the above\r
+ * copyright notice, this list of conditions and the following\r
+ * disclaimer.\r
+ *\r
+ * - Redistributions in binary form must reproduce the above\r
+ * copyright notice, this list of conditions and the following\r
+ * disclaimer in the documentation and/or other materials\r
+ * provided with the distribution.\r
+ *\r
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\r
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\r
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
+ * SOFTWARE.\r
+ *\r
+ * $Id$\r
+ */\r
+\r
+\r
+#include <oib_ver.h>\r
+\r
+#define VER_FILETYPE VFT_APP\r
+#define VER_FILESUBTYPE VFT2_UNKNOWN\r
+\r
+#ifdef DBG\r
+#define VER_FILEDESCRIPTION_STR "InfiniBand SM Information (Debug)"\r
+#else\r
+#define VER_FILEDESCRIPTION_STR "InfiniBand SM Information"\r
+#endif\r
+\r
+#define VER_INTERNALNAME_STR "sminfo.exe"\r
+#define VER_ORIGINALFILENAME_STR "sminfo.exe"\r
+\r
+#include <common.ver>\r
--- /dev/null
+#\r
+# DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source\r
+# file to this component. This file merely indirects to the real make file\r
+# that is shared by all the driver components of the OpenIB Windows project.\r
+#\r
+\r
+!INCLUDE ..\..\..\..\inc\openib.def\r
#include <infiniband/umad.h>
#include <infiniband/mad.h>
-#include <infiniband/complib/cl_nodenamemap.h>
+#include <complib/cl_nodenamemap.h>
#include "ibdiag_common.h"
if (path->cnt+2 >= sizeof(path->p))
return -1;
++path->cnt;
- path->p[path->cnt] = nextport;
+ path->p[path->cnt] = (uint8_t) nextport;
return path->cnt;
}
{ "no_info", 'n', 0, NULL, "simple format" },
{ "mlid", 'm', 1, "<mlid>", "multicast trace of the mlid" },
{ "node-name-map", 1, 1, "<file>", "node name map file" },
- { }
+ { 0 }
};
char usage_args[] = "<src-addr> <dest-addr>";
const char *usage_examples[] = {
--- /dev/null
+TARGETNAME = ibtracert\r
+TARGETPATH = ..\..\..\..\bin\user\obj$(BUILD_ALT_DIR)\r
+TARGETTYPE = PROGRAM\r
+\r
+UMTYPE = console\r
+UMENTRY = main\r
+\r
+USE_MSVCRT = 1\r
+\r
+SOURCES = ..\ibtracert.c ..\ibdiag_common.c ..\ibdiag_windows.c ibtracert.rc\r
+ \r
+INCLUDES = ..\..\include;..\..\include\windows;\\r
+ ..\..\..\..\ulp\libibmad\include;\\r
+ ..\..\..\..\ulp\libibumad\include;\\r
+ ..\..\..\..\inc;..\..\..\..\inc\user;\\r
+ ..\..\..\..\inc\user\linux;\r
+\r
+C_DEFINES = $(C_DEFINES) /DHAVE_CONFIG_H\r
+\r
+TARGETLIBS = \\r
+ $(SDK_LIB_PATH)\kernel32.lib \\r
+ $(SDK_LIB_PATH)\ws2_32.lib \\r
+!if $(FREEBUILD)\r
+ $(TARGETPATH)\*\complib.lib \\r
+ $(TARGETPATH)\*\libibmad.lib \\r
+ $(TARGETPATH)\*\libibumad.lib \r
+!else\r
+ $(TARGETPATH)\*\complibd.lib \\r
+ $(TARGETPATH)\*\libibmadd.lib \\r
+ $(TARGETPATH)\*\libibumadd.lib \r
+!endif\r
+\r
+MSC_WARNING_LEVEL = /W3 /WX /wd4007
\ No newline at end of file
--- /dev/null
+/*\r
+ * Copyright (c) 2009 Intel Corporation. All rights reserved.\r
+ *\r
+ * This software is available to you under the OpenIB.org BSD license\r
+ * below:\r
+ *\r
+ * Redistribution and use in source and binary forms, with or\r
+ * without modification, are permitted provided that the following\r
+ * conditions are met:\r
+ *\r
+ * - Redistributions of source code must retain the above\r
+ * copyright notice, this list of conditions and the following\r
+ * disclaimer.\r
+ *\r
+ * - Redistributions in binary form must reproduce the above\r
+ * copyright notice, this list of conditions and the following\r
+ * disclaimer in the documentation and/or other materials\r
+ * provided with the distribution.\r
+ *\r
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\r
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\r
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
+ * SOFTWARE.\r
+ *\r
+ * $Id$\r
+ */\r
+\r
+\r
+#include <oib_ver.h>\r
+\r
+#define VER_FILETYPE VFT_APP\r
+#define VER_FILESUBTYPE VFT2_UNKNOWN\r
+\r
+#ifdef DBG\r
+#define VER_FILEDESCRIPTION_STR "Trace InfiniBand Path (Debug)"\r
+#else\r
+#define VER_FILEDESCRIPTION_STR "Trace InfiniBand Path"\r
+#endif\r
+\r
+#define VER_INTERNALNAME_STR "ibtracert.exe"\r
+#define VER_ORIGINALFILENAME_STR "ibtracert.exe"\r
+\r
+#include <common.ver>\r
--- /dev/null
+#\r
+# DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source\r
+# file to this component. This file merely indirects to the real make file\r
+# that is shared by all the driver components of the OpenIB Windows project.\r
+#\r
+\r
+!INCLUDE ..\..\..\..\inc\openib.def\r
*
*/
+#if HAVE_CONFIG_H
+# include <config.h>
+#endif /* HAVE_CONFIG_H */
+
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <infiniband/umad.h>
#include <infiniband/mad.h>
-#define info(fmt, arg...) fprintf(stderr, "INFO: " fmt, ##arg )
-#define err(fmt, arg...) fprintf(stderr, "ERR: " fmt, ##arg )
+#define info(fmt, ...) fprintf(stderr, "INFO: " fmt, ## __VA_ARGS__ )
+#define err(fmt, ...) fprintf(stderr, "ERR: " fmt, ## __VA_ARGS__ )
#ifdef NOISY_DEBUG
-#define dbg(fmt, arg...) fprintf(stderr, "DBG: " fmt, ##arg )
+#define dbg(fmt, ...) fprintf(stderr, "DBG: " fmt, ## __VA_ARGS__ )
#else
-#define dbg(fmt, arg...)
+#define dbg(fmt, ...)
#endif
#define TMO 100
{
uint8_t *umad;
int len = umad_size() + 256;
- int i, ret;
+ unsigned i;
+ int ret;
info("rereg_send_all... cnt = %u\n", cnt);
int len = umad_size() + 256;
uint64_t trid;
unsigned n, method, status;
- int i;
+ unsigned i;
info("rereg_recv_all...\n");
uint8_t *umad, *mad;
int len = umad_size() + 256;
unsigned method, status;
- int i, ret;
+ unsigned i;
+ int ret;
info("rereg_query_all...\n");
char line[256];
FILE *f;
ibmad_gid_t port_gid;
- uint64_t prefix = htonll(0xfe80000000000000llu);
- uint64_t guid = htonll(0x0002c90200223825llu);
+ uint64_t prefix = htonll(0xfe80000000000000ull);
+ uint64_t guid = htonll(0x0002c90200223825ull);
struct guid_trid *list;
int i = 0;
--- /dev/null
+TARGETNAME = mcm_rereg_test\r
+TARGETPATH = ..\..\..\..\bin\user\obj$(BUILD_ALT_DIR)\r
+TARGETTYPE = PROGRAM\r
+\r
+UMTYPE = console\r
+UMENTRY = main\r
+\r
+USE_MSVCRT = 1\r
+\r
+SOURCES = ..\mcm_rereg_test.c ..\ibdiag_common.c ..\ibdiag_windows.c mcm_rereg_test.rc\r
+ \r
+INCLUDES = ..\..\include;..\..\include\windows;\\r
+ ..\..\..\..\ulp\libibmad\include;\\r
+ ..\..\..\..\ulp\libibumad\include;\\r
+ ..\..\..\..\inc;..\..\..\..\inc\user;\\r
+ ..\..\..\..\inc\user\linux;\r
+\r
+C_DEFINES = $(C_DEFINES) /DHAVE_CONFIG_H\r
+\r
+TARGETLIBS = \\r
+ $(SDK_LIB_PATH)\kernel32.lib \\r
+!if $(FREEBUILD)\r
+ $(TARGETPATH)\*\libibmad.lib \\r
+ $(TARGETPATH)\*\libibumad.lib \r
+!else\r
+ $(TARGETPATH)\*\libibmadd.lib \\r
+ $(TARGETPATH)\*\libibumadd.lib \r
+!endif\r
+\r
+MSC_WARNING_LEVEL = /W3 /WX /wd4007
\ No newline at end of file
--- /dev/null
+#\r
+# DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source\r
+# file to this component. This file merely indirects to the real make file\r
+# that is shared by all the driver components of the OpenIB Windows project.\r
+#\r
+\r
+!INCLUDE ..\..\..\..\inc\openib.def\r
--- /dev/null
+/*\r
+ * Copyright (c) 2009 Intel Corporation. All rights reserved.\r
+ *\r
+ * This software is available to you under the OpenIB.org BSD license\r
+ * below:\r
+ *\r
+ * Redistribution and use in source and binary forms, with or\r
+ * without modification, are permitted provided that the following\r
+ * conditions are met:\r
+ *\r
+ * - Redistributions of source code must retain the above\r
+ * copyright notice, this list of conditions and the following\r
+ * disclaimer.\r
+ *\r
+ * - Redistributions in binary form must reproduce the above\r
+ * copyright notice, this list of conditions and the following\r
+ * disclaimer in the documentation and/or other materials\r
+ * provided with the distribution.\r
+ *\r
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\r
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\r
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
+ * SOFTWARE.\r
+ *\r
+ * $Id$\r
+ */\r
+\r
+\r
+#include <oib_ver.h>\r
+\r
+#define VER_FILETYPE VFT_APP\r
+#define VER_FILESUBTYPE VFT2_UNKNOWN\r
+\r
+#ifdef DBG\r
+#define VER_FILEDESCRIPTION_STR "InfiniBand Multicase Registration Test (Debug)"\r
+#else\r
+#define VER_FILEDESCRIPTION_STR "InfiniBand Multicase Registration Test"\r
+#endif\r
+\r
+#define VER_INTERNALNAME_STR "mcm_rereg_test.exe"\r
+#define VER_ORIGINALFILENAME_STR "mcm_rereg_test.exe"\r
+\r
+#include <common.ver>\r
INCLUDES = ..\..\include;..\..\include\windows;\\r
..\..\..\..\ulp\libibmad\include;\\r
..\..\..\..\ulp\libibumad\include;\\r
- ..\..\..\..\inc;..\..\..\..\inc\user;\r
+ ..\..\..\..\inc;..\..\..\..\inc\user;\\r
+ ..\..\..\..\inc\user\linux;\r
\r
C_DEFINES = $(C_DEFINES) /DHAVE_CONFIG_H\r
\r
*
*/
+#if HAVE_CONFIG_H
+# include <config.h>
+#endif /* HAVE_CONFIG_H */
+
#include <unistd.h>
#include <stdio.h>
#include <arpa/inet.h>
#include <ctype.h>
#include <string.h>
#include <errno.h>
+#include <assert.h>
#define _GNU_SOURCE
#include <getopt.h>
#include <infiniband/umad.h>
#include <infiniband/mad.h>
-#include <infiniband/iba/ib_types.h>
-#include <infiniband/complib/cl_nodenamemap.h>
+#include <iba/ib_types.h>
+#include <complib/cl_nodenamemap.h>
#include "ibdiag_common.h"
if (ibdebug > 1)
xdump(stdout, "SA Response:\n", mad, len);
- method = mad_get_field(mad, 0, IB_MAD_METHOD_F);
+ method = (uint8_t) mad_get_field(mad, 0, IB_MAD_METHOD_F);
offset = mad_get_field(mad, 0, IB_SA_ATTROFFS_F);
result.status = mad_get_field(mad, 0, IB_MAD_STATUS_F);
result.p_result_madw = mad;
static void *get_query_rec(void *mad, unsigned i)
{
int offset = mad_get_field(mad, 0, IB_SA_ATTROFFS_F);
- return mad + IB_SA_DATA_OFFS + i * (offset << 3);
+ return (char *) mad + IB_SA_DATA_OFFS + i * (offset << 3);
}
static unsigned valid_gid(ib_gid_t *gid)
{
- ib_gid_t zero_gid = { };
+ ib_gid_t zero_gid = { 0 };
return memcmp(&zero_gid, gid, sizeof(*gid));
}
char gid_str2[INET6_ADDRSTRLEN];
ib_member_rec_t *p_mcmr = data;
uint16_t mlid = cl_ntoh16(p_mcmr->mlid);
- int i = 0;
+ unsigned i = 0;
char *node_name = "<unknown>";
/* go through the node records searching for a port guid which matches
static void dump_results(struct query_res *r, void (*dump_func) (void *))
{
- int i;
+ unsigned i;
for (i = 0; i < r->result_cnt; i++) {
void *data = get_query_rec(r->p_result_madw, i);
dump_func(data);
static void return_mad(void)
{
if (result.p_result_madw) {
- free(result.p_result_madw - umad_size());
+ free((char *) result.p_result_madw - umad_size());
result.p_result_madw = NULL;
}
}
{
ib_node_record_t *node_record = NULL;
ib_node_info_t *p_ni = NULL;
- int i = 0, ret;
+ unsigned i;
+ int ret;
ret = get_all_records(h, IB_SA_ATTR_NODERECORD, 0);
if (ret)
if (isalpha(name[0]))
assert(get_lid_from_name(h, name, &rc_lid) == IB_SUCCESS);
else
- rc_lid = atoi(name);
+ rc_lid = (uint16_t) atoi(name);
if (rc_lid == 0)
fprintf(stderr, "Failed to find lid for \"%s\"\n", name);
return rc_lid;
#define cl_hton8(x) (x)
#define CHECK_AND_SET_VAL(val, size, comp_with, target, name, mask) \
- if (val > comp_with) { \
- target = cl_hton##size(val); \
+ if ((uint##size##_t) val > (uint##size##_t) comp_with) { \
+ target = cl_hton##size((uint##size##_t) val); \
comp_mask |= IB_##name##_COMPMASK_##mask; \
}
static int print_node_records(bind_handle_t h)
{
- int i = 0, ret;
+ unsigned i;
+ int ret;
ret = get_all_records(h, IB_SA_ATTR_NODERECORD, 0);
if (ret)
CHECK_AND_SET_VAL(p->dlid, 16, 0, pr.dlid, PR, DLID);
CHECK_AND_SET_VAL(p->hop_limit, 32, -1, pr.hop_flow_raw, PR, HOPLIMIT);
CHECK_AND_SET_VAL(p->flow_label, 8, 0, flow, PR, FLOWLABEL);
- pr.hop_flow_raw |= cl_hton32(flow << 8);
+ pr.hop_flow_raw |= (uint8_t) cl_hton32(flow << 8);
CHECK_AND_SET_VAL(p->tclass, 8, 0, pr.tclass, PR, TCLASS);
CHECK_AND_SET_VAL(p->reversible, 8, -1, reversible, PR, REVERSIBLE);
CHECK_AND_SET_VAL(p->numb_path, 8, -1, pr.num_path, PR, NUMBPATH);
return_mc:
if (mc_group_result.p_result_madw)
- free(mc_group_result.p_result_madw - umad_size());
+ free((char *) mc_group_result.p_result_madw - umad_size());
return ret;
}
memset(&pktr, 0, sizeof(pktr));
CHECK_AND_SET_VAL(lid, 16, 0, pktr.lid, PKEY, LID);
CHECK_AND_SET_VAL(port, 8, -1, pktr.port_num, PKEY, PORT);
- CHECK_AND_SET_VAL(block, 16, -1, pktr.port_num, PKEY, BLOCK);
+ CHECK_AND_SET_VAL(block, 16, -1, pktr.block_num, PKEY, BLOCK);
return get_and_dump_any_records(h, IB_SA_ATTR_PKEYTABLERECORD, 0,
comp_mask, &pktr, smkey,
query_type = IB_SA_ATTR_LINKRECORD;
break;
case 5:
- p->slid = strtoul(optarg, NULL, 0);
+ p->slid = (uint16_t) strtoul(optarg, NULL, 0);
break;
case 6:
- p->dlid = strtoul(optarg, NULL, 0);
+ p->dlid = (uint16_t) strtoul(optarg, NULL, 0);
break;
case 7:
- p->mlid = strtoul(optarg, NULL, 0);
+ p->mlid = (uint16_t) strtoul(optarg, NULL, 0);
break;
case 14:
if (inet_pton(AF_INET6, optarg, &p->sgid) <= 0)
p->numb_path = strtoul(optarg, NULL, 0);
break;
case 18:
- p->pkey = strtoul(optarg, NULL, 0);
+ p->pkey = (uint16_t) strtoul(optarg, NULL, 0);
break;
case 'Q':
p->qos_class = strtoul(optarg, NULL, 0);
p->sl = strtoul(optarg, NULL, 0);
break;
case 'M':
- p->mtu = strtoul(optarg, NULL, 0);
+ p->mtu = (uint8_t) strtoul(optarg, NULL, 0);
break;
case 'R':
- p->rate = strtoul(optarg, NULL, 0);
+ p->rate = (uint8_t) strtoul(optarg, NULL, 0);
break;
case 20:
- p->pkt_life = strtoul(optarg, NULL, 0);
+ p->pkt_life = (uint8_t) strtoul(optarg, NULL, 0);
break;
case 'q':
p->qkey = strtoul(optarg, NULL, 0);
break;
case 'T':
- p->tclass = strtoul(optarg, NULL, 0);
+ p->tclass = (uint8_t) strtoul(optarg, NULL, 0);
break;
case 'F':
p->flow_label = strtoul(optarg, NULL, 0);
p->hop_limit = strtoul(optarg, NULL, 0);
break;
case 21:
- p->scope = strtoul(optarg, NULL, 0);
+ p->scope = (uint8_t) strtoul(optarg, NULL, 0);
break;
case 'J':
- p->join_state = strtoul(optarg, NULL, 0);
+ p->join_state = (uint8_t) strtoul(optarg, NULL, 0);
break;
case 'X':
p->proxy_join = strtoul(optarg, NULL, 0);
{
char usage_args[1024];
bind_handle_t h;
- struct query_params params = {
- .hop_limit = -1,
- .reversible = -1,
- .numb_path = -1,
- .qos_class = -1,
- .sl = -1,
- .proxy_join = -1,
- };
+ struct query_params params;
const struct query_cmd *q;
ib_api_status_t status;
int n;
{ "scope", 21, 1, NULL, "Scope (MCMemberRecord)" },
{ "join_state", 'J', 1, NULL, "Join state (MCMemberRecord)" },
{ "proxy_join", 'X', 1, NULL, "Proxy join (MCMemberRecord)" },
- {}
+ { 0 }
};
+ memset(¶ms, 0, sizeof params);
+ params.hop_limit = -1;
+ params.reversible = -1;
+ params.numb_path = -1;
+ params.qos_class = -1;
+ params.sl = -1;
+ params.proxy_join = -1;
+
n = sprintf(usage_args, "[query-name] [<name> | <lid> | <guid>]\n"
"\nSupported query names (and aliases):\n");
for (q = query_cmds; q->name; q++) {
if (argc) {
if (node_print_desc == NAME_OF_LID) {
- requested_lid = strtoul(argv[0], NULL, 0);
+ requested_lid = (uint16_t) strtoul(argv[0], NULL, 0);
requested_lid_flag++;
} else if (node_print_desc == NAME_OF_GUID) {
requested_guid = strtoul(argv[0], NULL, 0);
INCLUDES = ..\..\include;..\..\include\windows;\\r
..\..\..\..\ulp\libibmad\include;\\r
..\..\..\..\ulp\libibumad\include;\\r
- ..\..\..\..\inc;..\..\..\..\inc\user;\r
+ ..\..\..\..\inc;..\..\..\..\inc\user;\\r
+ ..\..\..\..\inc\user\linux;\r
\r
C_DEFINES = $(C_DEFINES) /DHAVE_CONFIG_H\r
\r
INCLUDES = ..\..\include;..\..\include\windows;\\r
..\..\..\..\ulp\libibmad\include;\\r
..\..\..\..\ulp\libibumad\include;\\r
- ..\..\..\..\inc;..\..\..\..\inc\user;\r
+ ..\..\..\..\inc;..\..\..\..\inc\user;\\r
+ ..\..\..\..\inc\user\linux;\r
\r
C_DEFINES = $(C_DEFINES) /DHAVE_CONFIG_H\r
\r
INCLUDES = ..\..\include;..\..\include\windows;\\r
..\..\..\..\ulp\libibmad\include;\\r
..\..\..\..\ulp\libibumad\include;\\r
- ..\..\..\..\inc;..\..\..\..\inc\user;\r
+ ..\..\..\..\inc;..\..\..\..\inc\user;\\r
+ ..\..\..\..\inc\user\linux;\r
\r
C_DEFINES = $(C_DEFINES) /DHAVE_CONFIG_H\r
\r
INCLUDES = ..\..\include;..\..\include\windows;\\r
..\..\..\..\ulp\libibmad\include;\\r
..\..\..\..\ulp\libibumad\include;\\r
- ..\..\..\..\inc;..\..\..\..\inc\user;\r
+ ..\..\..\..\inc;..\..\..\..\inc\user;\\r
+ ..\..\..\..\inc\user\linux;\r
\r
C_DEFINES = $(C_DEFINES) /DHAVE_CONFIG_H\r
\r
USE_MSVCRT=1\r
\r
INCLUDES=..\..\..\inc;\\r
- ..\..\..\inc\user;\r
+ ..\..\..\inc\user;\\r
+ $(PLATFORM_SDK_PATH)\include;\r
\r
SOURCES= \\r
installsp.rc \\r
p_endpt = PARENT_STRUCT( p_item, ipoib_endpt_t, mac_item );\r
}\r
\r
- p_path->resv0 = 0;\r
+ p_path->service_id = 0;\r
p_path->dgid = p_endpt->dgid;\r
p_path->sgid = p_port->p_local_endpt->dgid;\r
p_path->dlid = p_endpt->dlid;\r
p_port->p_local_endpt->dlid,\r
1,\r
p_port->ib_mgr.bcast_rec.pkey,\r
- sl,\r
+ sl, 0,\r
IB_PATH_SELECTOR_EXACTLY, p_port->ib_mgr.bcast_rec.mtu,\r
IB_PATH_SELECTOR_EXACTLY, p_port->ib_mgr.bcast_rec.rate,\r
IB_PATH_SELECTOR_EXACTLY, pkt_life,\r
enum SA_ATTR_ID {
IB_SA_ATTR_NOTICE = 0x02,
IB_SA_ATTR_INFORMINFO = 0x03,
+ IB_SA_ATTR_NODERECORD = 0x11,
IB_SA_ATTR_PORTINFORECORD = 0x12,
+ IB_SA_ATTR_SL2VLTABLERECORD = 0x13,
+ IB_SA_ATTR_SWITCHINFORECORD = 0x14,
+ IB_SA_ATTR_LFTRECORD = 0x15,
+ IB_SA_ATTR_RFTRECORD = 0x16,
+ IB_SA_ATTR_MFTRECORD = 0x17,
+ IB_SA_ATTR_SMINFORECORD = 0x18,
IB_SA_ATTR_LINKRECORD = 0x20,
+ IB_SA_ATTR_GUIDINFORECORD = 0x30,
IB_SA_ATTR_SERVICERECORD = 0x31,
+ IB_SA_ATTR_PKEYTABLERECORD = 0x33,
IB_SA_ATTR_PATHRECORD = 0x35,
+ IB_SA_ATTR_VLARBTABLERECORD = 0x36,
IB_SA_ATTR_MCRECORD = 0x38,
IB_SA_ATTR_MULTIPATH = 0x3a,
+ IB_SA_ATTR_INFORMINFORECORD = 0xf3,
IB_SA_ATTR_LAST
};
\r
#define MAD_EXPORT __declspec(dllexport)\r
\r
+#define __attribute__(X)\r
+\r
#if !defined( __cplusplus )\r
#define inline __inline\r
#endif\r
{BE_OFFS(272, 16), "DrSmpSLID", mad_dump_hex},
/* word 10,11 (36-43 bytes) */
- {0, 0}, /* IB_SA_MKEY_F - reserved as invalid */
+ {288, 64, "SaSMkey", mad_dump_hex},
/* word 12 (44-47 bytes) */
{BE_OFFS(46 * 8, 16), "SaAttrOffs", mad_dump_uint},
struct _ntc_144 {\r
ib_net16_t pad1;\r
ib_net16_t lid; // lid where capability mask changed\r
- ib_net16_t pad2;\r
+ uint8_t pad2;\r
+ uint8_t local_changes;\r
ib_net32_t new_cap_mask; // new capability mask\r
+ ib_net16_t change_flgs;\r
} PACK_SUFFIX ntc_144;\r
\r
struct _ntc_145 {\r
} PACK_SUFFIX ib_mad_notice_attr_t;\r
#include <complib/cl_packoff.h>\r
\r
+/**\r
+ * Trap 259 masks\r
+ */\r
+#define TRAP_259_MASK_SL (CL_HTON32(0xF0000000))\r
+#define TRAP_259_MASK_QP (CL_HTON32(0x00FFFFFF))\r
+\r
+/**\r
+ * Trap 144 masks\r
+ */\r
+#define TRAP_144_MASK_OTHER_LOCAL_CHANGES 0x01\r
+#define TRAP_144_MASK_SM_PRIORITY_CHANGE (CL_HTON16(0x0008))\r
+#define TRAP_144_MASK_LINK_SPEED_ENABLE_CHANGE (CL_HTON16(0x0004))\r
+#define TRAP_144_MASK_LINK_WIDTH_ENABLE_CHANGE (CL_HTON16(0x0002))\r
+#define TRAP_144_MASK_NODE_DESCRIPTION_CHANGE (CL_HTON16(0x0001))\r
+\r
/****f* IBA Base: Types/ib_notice_is_generic\r
* NAME\r
* ib_notice_is_generic\r
return FALSE;\r
if( p_path1->rate != p_path2->rate )\r
return FALSE;\r
- if( p_path1->sl != p_path2->sl )\r
+ if( ib_path_rec_sl(p_path1) != ib_path_rec_sl(p_path2) )\r
return FALSE;\r
if( p_path1->tclass != p_path2->tclass )\r
return FALSE;\r
if ( p_path_rec_1->slid != p_path_rec_2->slid )\r
return ( FALSE );\r
\r
- if ( p_path_rec_1->hop_flow_raw.val != p_path_rec_2->hop_flow_raw.val )\r
+ if ( p_path_rec_1->hop_flow_raw != p_path_rec_2->hop_flow_raw )\r
{\r
SRP_PRINT( TRACE_LEVEL_INFORMATION, SRP_DBG_DEBUG,\r
("hop_flow_raw.val does not match.\n") );\r
return ( FALSE );\r
}\r
\r
- if ( p_path_rec_1->sl != p_path_rec_2->sl )\r
+ if ( ib_path_rec_sl(p_path_rec_1) != ib_path_rec_sl(p_path_rec_2) )\r
{\r
SRP_PRINT( TRACE_LEVEL_INFORMATION, SRP_DBG_DEBUG,\r
("sl does not match.\n") );\r
\r
#if defined( _DEBUG_ )\r
\r
- if ( p_path_rec_1->resv0 != p_path_rec_2->resv0 )\r
- {\r
- SRP_PRINT( TRACE_LEVEL_INFORMATION, SRP_DBG_DEBUG,\r
- ("resv0 does not match.\n") );\r
- }\r
-\r
if ( p_path_rec_1->resv1 != p_path_rec_2->resv1 )\r
{\r
SRP_PRINT( TRACE_LEVEL_INFORMATION, SRP_DBG_DEBUG,\r