[ofw] [PATCH] ib_types: update SA attribute definitions
Reuven Amitai
reuven at mellanox.co.il
Wed Feb 25 02:30:53 PST 2009
Hi Sean,
The patch below delete IB_PR_COMPMASK_NUM_PATH, IB_PR_COMPMASK_RESV1 and
change the affected (4 lines) code.
Could you incorporate these changes into your patch?
Thanks, Reuven.
>>>>>>>>>>>>>>>>>>>>>>>>>
Index: core/al/al_query.c
===================================================================
--- core/al/al_query.c (revision 4019)
+++ core/al/al_query.c (working copy)
@@ -241,7 +241,7 @@
sa_req.attr_id = IB_MAD_ATTR_PATH_RECORD;
sa_req.attr_size = sizeof( ib_path_rec_t );
sa_req.comp_mask = (IB_PR_COMPMASK_DGID |
- IB_PR_COMPMASK_SGID | IB_PR_COMPMASK_NUM_PATH);
+ IB_PR_COMPMASK_SGID | IB_PR_COMPMASK_NUMBPATH);
sa_req.p_attr = &rec.path;
ib_gid_set_default( &rec.path.dgid, ((ib_guid_pair_t*)
(p_query_req->p_query_input))->dest_guid );
@@ -255,7 +255,7 @@
sa_req.attr_id = IB_MAD_ATTR_PATH_RECORD;
sa_req.attr_size = sizeof( ib_path_rec_t );
sa_req.comp_mask = (IB_PR_COMPMASK_DGID |
- IB_PR_COMPMASK_SGID | IB_PR_COMPMASK_NUM_PATH);
+ IB_PR_COMPMASK_SGID | IB_PR_COMPMASK_NUMBPATH);
sa_req.p_attr = &rec.path;
cl_memcpy( &rec.path.dgid, &((ib_gid_pair_t*)
(p_query_req->p_query_input))->dest_gid, sizeof(
ib_gid_t ) );
Index: core/al/kernel/al_ioc_pnp.c
===================================================================
--- core/al/kernel/al_ioc_pnp.c (revision 4019)
+++ core/al/kernel/al_ioc_pnp.c (working copy)
@@ -1570,8 +1570,8 @@
info.method = IB_MAD_METHOD_GETTABLE;
info.attr_id = IB_MAD_ATTR_PATH_RECORD;
info.attr_size = sizeof(ib_path_rec_t);
- info.comp_mask = IB_PR_COMPMASK_SGID | IB_PR_COMPMASK_NUM_PATH;
- info.comp_mask = IB_PR_COMPMASK_SGID | IB_PR_COMPMASK_NUM_PATH |
+ info.comp_mask = IB_PR_COMPMASK_SGID | IB_PR_COMPMASK_NUMBPATH;
+ info.comp_mask = IB_PR_COMPMASK_SGID | IB_PR_COMPMASK_NUMBPATH |
IB_PR_COMPMASK_PKEY;
info.p_attr = &u.path_rec;
Index: inc/iba/ib_types.h
===================================================================
--- inc/iba/ib_types.h (revision 4019)
+++ inc/iba/ib_types.h (working copy)
@@ -2410,9 +2410,8 @@
#define IB_PR_COMPMASK_HOPLIMIT (CL_HTON64(((uint64_t)1)<<9))
#define IB_PR_COMPMASK_TCLASS
(CL_HTON64(((uint64_t)1)<<10))
#define IB_PR_COMPMASK_REVERSIBLE
(CL_HTON64(((uint64_t)1)<<11))
-#define IB_PR_COMPMASK_NUM_PATH
(CL_HTON64(((uint64_t)1)<<12))
+#define IB_PR_COMPMASK_NUMBPATH
(CL_HTON64(((uint64_t)1)<<12))
#define IB_PR_COMPMASK_PKEY
(CL_HTON64(((uint64_t)1)<<13))
-#define IB_PR_COMPMASK_RESV1
(CL_HTON64(((uint64_t)1)<<14))
#define IB_PR_COMPMASK_SL
(CL_HTON64(((uint64_t)1)<<15))
#define IB_PR_COMPMASK_MTUSELEC
(CL_HTON64(((uint64_t)1)<<16))
#define IB_PR_COMPMASK_MTU
(CL_HTON64(((uint64_t)1)<<17))
-----Original Message-----
From: ofw-bounces at lists.openfabrics.org
[mailto:ofw-bounces at lists.openfabrics.org] On Behalf Of Sean Hefty
Sent: Tuesday, February 24, 2009 11:38 PM
To: ofw at lists.openfabrics.org
Subject: [ofw] [PATCH] ib_types: update SA attribute definitions
To support a direct port of the ib-diags (and eventually opensm), update
ib_types.h so that the relevant definitions used by the diags match
between OFED and WinOF. The affected attributes are:
ib_path_rec
ib_vl_arb_element
ib_mad_notice_attr
ib_inform_info
ib_inform_info_record
Users of the attributes are updated accordingly. In several cases,
static inline accessor functions were provided in the ib_types.h header
files that were not called by anything. Rather than update all 29 of
those functions, I simply deleted them.
Signed-off-by: Sean Hefty <sean.hefty at intel.com>
---
If there's a strong reason to keep the 29 deleted functions, I can
migrate all of them to the new structure definitions. But nothing in
the tree is using them.
diff -up -r -X trunk\docs\dontdiff.txt -I '\$Id:'
trunk/core/al/al_cm_qp.c branches\winverbs/core/al/al_cm_qp.c
--- trunk/core/al/al_cm_qp.c 2008-07-16 08:53:58.219125000 -0700
+++ branches\winverbs/core/al/al_cm_qp.c 2009-02-21
22:15:12.328125000 -0800
@@ -162,7 +162,7 @@ __format_req_path_rec(
p_path->local_lid,
p_path->remote_lid,
1, p_req->pkey,
- conn_req_path_get_svc_lvl( p_path ),
+ conn_req_path_get_svc_lvl( p_path ), 0,
IB_PATH_SELECTOR_EXACTLY, conn_req_get_mtu( p_req ),
IB_PATH_SELECTOR_EXACTLY,
conn_req_path_get_pkt_rate( p_path ), @@ -170,7 +170,6
@@ __format_req_path_rec(
(uint8_t)( conn_req_path_get_lcl_ack_timeout( p_path ) -
1 ),
0 );
- p_path_rec->hop_flow_raw.val = 0;
/* Add global routing info as necessary. */
if( !conn_req_path_get_subn_lcl( p_path ) )
{
@@ -645,7 +644,7 @@ __proc_lap(
p_lap->alternate_path.local_lid,
p_lap->alternate_path.remote_lid,
1, IB_DEFAULT_PKEY,
- conn_lap_path_get_svc_lvl( &p_lap->alternate_path ),
+ conn_lap_path_get_svc_lvl( &p_lap->alternate_path ), 0,
IB_PATH_SELECTOR_EXACTLY,
IB_MTU_LEN_2048,
IB_PATH_SELECTOR_EXACTLY,
@@ -654,7 +653,6 @@ __proc_lap(
(uint8_t)( conn_lap_path_get_lcl_ack_timeout( p_path ) -
1 ),
0 );
- lap_rec.alt_path.hop_flow_raw.val = 0;
/* Add global routing info as necessary. */
if( !conn_lap_path_get_subn_lcl( &p_lap->alternate_path ) )
{
diff -up -r -X trunk\docs\dontdiff.txt -I '\$Id:' trunk/core/al/al_dm.c
branches\winverbs/core/al/al_dm.c
--- trunk/core/al/al_dm.c 2008-07-07 09:59:47.343625000 -0700
+++ branches\winverbs/core/al/al_dm.c 2009-02-21 22:15:12.328125000
-0800
@@ -1583,7 +1583,7 @@ get_class_port_info(
p_class_port_info->base_ver = 1;
p_class_port_info->class_ver = 1;
- p_class_port_info->resp_time_val = CL_HTON32(
DM_CLASS_RESP_TIME_VALUE );
+ p_class_port_info->cap_mask2_resp_time = CL_HTON32(
+DM_CLASS_RESP_TIME_VALUE );
}
diff -up -r -X trunk\docs\dontdiff.txt -I '\$Id:'
trunk/core/al/kernel/al_cm_cep.c
branches\winverbs/core/al/kernel/al_cm_cep.c
--- trunk/core/al/kernel/al_cm_cep.c 2009-01-24 11:15:06.140625000
-0800
+++ branches\winverbs/core/al/kernel/al_cm_cep.c 2009-02-21
22:15:12.187500000 -0800
@@ -6037,7 +6037,7 @@ static void
__format_path(ib_path_rec_t *p_path, req_path_info_t *p_info,
ib_net16_t pkey, uint8_t mtu)
{
- p_path->resv0 = 0;
+ p_path->service_id = 0;
p_path->dgid = p_info->local_gid;
p_path->sgid = p_info->remote_gid;
p_path->dlid = p_info->local_lid;
@@ -6047,7 +6047,8 @@ __format_path(ib_path_rec_t *p_path, req
p_path->tclass = p_info->traffic_class;
p_path->num_path = 0;
p_path->pkey = pkey;
- p_path->sl = conn_req_path_get_svc_lvl(p_info);
+ ib_path_rec_set_sl(p_path, conn_req_path_get_svc_lvl(p_info));
+ ib_path_rec_set_qos_class(p_path, 0);
p_path->mtu = mtu;
p_path->rate = conn_req_path_get_pkt_rate(p_info);
p_path->pkt_life = conn_req_path_get_lcl_ack_timeout(p_info);
diff -up -r -X trunk\docs\dontdiff.txt -I '\$Id:'
trunk/core/al/kernel/al_ioc_pnp.c
branches\winverbs/core/al/kernel/al_ioc_pnp.c
--- trunk/core/al/kernel/al_ioc_pnp.c 2008-07-07 09:59:43.718625000
-0700
+++ branches\winverbs/core/al/kernel/al_ioc_pnp.c 2009-02-21
22:15:12.187500000 -0800
@@ -979,7 +979,6 @@ __get_path(
* Clear reserved fields in case they were set to prevent undue
path
* thrashing.
*/
- p_path->rec.resv0 = 0;
p_path->rec.resv1 = 0;
p_path->rec.resv2 = 0;
diff -up -r -X trunk\docs\dontdiff.txt -I '\$Id:'
trunk/core/al/user/al_exports.src
branches\winverbs/core/al/user/al_exports.src
--- trunk/core/al/user/al_exports.src 2008-02-21 00:45:57.971482000
-0800
+++ branches\winverbs/core/al/user/al_exports.src 2009-02-21
20:39:31.500000000 -0800
@@ -77,18 +77,6 @@ ib_gid_is_multicast
ib_gid_set_default
ib_grh_get_ver_class_flow
ib_grh_set_ver_class_flow
-ib_inform_get_dev_id
-ib_inform_get_prod_type
-ib_inform_get_qpn
-ib_inform_get_resp_time_val
-ib_inform_get_trap_num
-ib_inform_get_vend_id
-ib_inform_set_dev_id
-ib_inform_set_prod_type
-ib_inform_set_qpn
-ib_inform_set_resp_time_val
-ib_inform_set_trap_num
-ib_inform_set_vend_id
ib_init_dgrm_svc
ib_ioc_profile_get_subsys_vend_id
ib_ioc_profile_get_vend_id
@@ -117,22 +105,6 @@ ib_modify_cq
ib_modify_qp
ib_node_info_get_local_port_num
ib_node_info_get_vendor_id
-ib_notice_get_count
-ib_notice_get_dev_id
-ib_notice_get_generic
-ib_notice_get_prod_type
-ib_notice_get_toggle
-ib_notice_get_trap_num
-ib_notice_get_type
-ib_notice_get_vend_id
-ib_notice_set_count
-ib_notice_set_dev_id
-ib_notice_set_generic
-ib_notice_set_prod_type
-ib_notice_set_toggle
-ib_notice_set_trap_num
-ib_notice_set_type
-ib_notice_set_vend_id
ib_open_al
ib_open_ca
ib_path_get_ipd
diff -up -r -X trunk\docs\dontdiff.txt -I '\$Id:'
trunk/inc/iba/ib_types.h branches\winverbs/inc/iba/ib_types.h
--- trunk/inc/iba/ib_types.h 2009-01-19 23:58:00.281250000 -0800
+++ branches\winverbs/inc/iba/ib_types.h 2009-02-21
22:15:12.156250000 -0800
@@ -1681,6 +1681,28 @@ ib_class_is_rmpp(
#define IB_SMINFO_STATE_MASTER 3
/**********/
+/****d* IBA Base: Constants/IB_PATH_REC_SL_MASK
+* NAME
+* IB_PATH_REC_SL_MASK
+*
+* DESCRIPTION
+* Mask for the sl field for path record
+*
+* SOURCE
+*/
+#define IB_PATH_REC_SL_MASK 0x000F
+
+/****d* IBA Base: Constants/IB_PATH_REC_QOS_CLASS_MASK
+* NAME
+* IB_PATH_REC_QOS_CLASS_MASK
+*
+* DESCRIPTION
+* Mask for the QoS class field for path record
+*
+* SOURCE
+*/
+#define IB_PATH_REC_QOS_CLASS_MASK 0xFFF0
+
/****d* IBA Base: Constants/IB_PATH_REC_SELECTOR_MASK
* NAME
* IB_PATH_REC_SELECTOR_MASK
@@ -2322,16 +2344,16 @@ typedef union _ib_field32_t #include
<complib/cl_packon.h> typedef __declspec(align(8)) struct _ib_path_rec
{
- uint64_t resv0;
+ ib_net64_t service_id;
ib_gid_t dgid;
ib_gid_t sgid;
ib_net16_t dlid;
ib_net16_t slid;
- ib_field32_t hop_flow_raw;
+ ib_net32_t hop_flow_raw;
uint8_t tclass;
uint8_t num_path;
ib_net16_t pkey;
- ib_net16_t sl;
+ ib_net16_t qos_class_sl;
uint8_t mtu;
uint8_t rate;
uint8_t pkt_life;
@@ -2400,6 +2422,8 @@ typedef __declspec(align(8)) struct _ib_
*********/
/* Path Record Component Masks */
+#define IB_PR_COMPMASK_SERVICEID_MSB (CL_HTON64(((uint64_t)1)<<0))
+#define IB_PR_COMPMASK_SERVICEID_LSB (CL_HTON64(((uint64_t)1)<<1))
#define IB_PR_COMPMASK_DGID (CL_HTON64(((uint64_t)1)<<2))
#define IB_PR_COMPMASK_SGID (CL_HTON64(((uint64_t)1)<<3))
#define IB_PR_COMPMASK_DLID (CL_HTON64(((uint64_t)1)<<4))
@@ -2411,7 +2435,9 @@ typedef __declspec(align(8)) struct _ib_
#define IB_PR_COMPMASK_TCLASS
(CL_HTON64(((uint64_t)1)<<10))
#define IB_PR_COMPMASK_REVERSIBLE
(CL_HTON64(((uint64_t)1)<<11))
#define IB_PR_COMPMASK_NUM_PATH
(CL_HTON64(((uint64_t)1)<<12))
+#define IB_PR_COMPMASK_NUMBPATH
(CL_HTON64(((uint64_t)1)<<12))
#define IB_PR_COMPMASK_PKEY
(CL_HTON64(((uint64_t)1)<<13))
+#define IB_PR_COMPMASK_QOS_CLASS
(CL_HTON64(((uint64_t)1)<<14))
#define IB_PR_COMPMASK_RESV1
(CL_HTON64(((uint64_t)1)<<14))
#define IB_PR_COMPMASK_SL
(CL_HTON64(((uint64_t)1)<<15))
#define IB_PR_COMPMASK_MTUSELEC
(CL_HTON64(((uint64_t)1)<<16))
@@ -2608,7 +2634,7 @@ typedef __declspec(align(8)) struct _ib_
#define IB_MPR_COMPMASK_REVERSIBLE (CL_HTON64(((uint64_t)1)<<5))
#define IB_MPR_COMPMASK_NUMBPATH (CL_HTON64(((uint64_t)1)<<6))
#define IB_MPR_COMPMASK_PKEY (CL_HTON64(((uint64_t)1)<<7))
-#define IB_MPR_COMPMASK_RESV1 (CL_HTON64(((uint64_t)1)<<8))
+#define IB_MPR_COMPMASK_QOS_CLASS (CL_HTON64(((uint64_t)1)<<8))
#define IB_MPR_COMPMASK_SL (CL_HTON64(((uint64_t)1)<<9))
#define IB_MPR_COMPMASK_MTUSELEC (CL_HTON64(((uint64_t)1)<<10))
#define IB_MPR_COMPMASK_MTU (CL_HTON64(((uint64_t)1)<<11))
@@ -2671,6 +2697,7 @@ ib_path_rec_init_local(
IN const uint8_t
num_path,
IN const ib_net16_t
pkey,
IN const uint8_t
sl,
+ IN const uint16_t
qos_class,
IN const uint8_t
mtu_selector,
IN const uint8_t
mtu,
IN const uint8_t
rate_selector,
@@ -2685,8 +2712,8 @@ ib_path_rec_init_local(
p_rec->slid = slid;
p_rec->num_path = num_path;
p_rec->pkey = pkey;
- /* Lower 4 bits of path rec's SL are reserved. */
- p_rec->sl = cl_ntoh16( sl );
+ p_rec->qos_class_sl = cl_hton16((sl & IB_PATH_REC_SL_MASK) |
+ (qos_class << 4));
p_rec->mtu = (uint8_t)((mtu & IB_PATH_REC_BASE_MASK) |
(uint8_t)(mtu_selector << 6));
p_rec->rate = (uint8_t)((rate & IB_PATH_REC_BASE_MASK) | @@
-2696,10 +2723,10 @@ ib_path_rec_init_local(
p_rec->preference = preference;
/* Clear global routing fields for local path records */
- p_rec->hop_flow_raw.val = 0;
+ p_rec->hop_flow_raw = 0;
p_rec->tclass = 0;
+ p_rec->service_id = 0;
- p_rec->resv0 = 0;
p_rec->resv1 = 0;
p_rec->resv2 = 0;
}
@@ -2791,6 +2818,23 @@ ib_path_rec_num_path(
* ib_path_rec_t
*********/
+/****f* IBA Base: Types/ib_path_rec_set_sl
+* NAME
+* ib_path_rec_set_sl
+*
+* DESCRIPTION
+* Set path service level.
+*
+* SYNOPSIS
+*/
+AL_INLINE void AL_API
+ib_path_rec_set_sl(IN ib_path_rec_t * const p_rec, IN const uint8_t sl)
+{
+ p_rec->qos_class_sl =
+ (p_rec->qos_class_sl &
CL_HTON16(IB_PATH_REC_QOS_CLASS_MASK)) |
+ cl_hton16(sl & IB_PATH_REC_SL_MASK); }
+
/****f* IBA Base: Types/ib_path_rec_sl
* NAME
* ib_path_rec_sl
@@ -2804,7 +2848,7 @@ AL_INLINE uint8_t AL_API ib_path_rec_sl(
IN const ib_path_rec_t* const p_rec )
{
- return( (uint8_t)((cl_ntoh16( p_rec->sl )) & 0xF) );
+ return (uint8_t)(cl_ntoh16(p_rec->qos_class_sl) &
+IB_PATH_REC_SL_MASK);
}
/*
* PARAMETERS
@@ -2820,6 +2864,68 @@ ib_path_rec_sl(
* ib_path_rec_t
*********/
+/****f* IBA Base: Types/ib_path_rec_set_qos_class
+* NAME
+* ib_path_rec_set_qos_class
+*
+* DESCRIPTION
+* Set path QoS class.
+*
+* SYNOPSIS
+*/
+AL_INLINE void AL_API
+ib_path_rec_set_qos_class(IN ib_path_rec_t * const p_rec,
+ IN const uint16_t qos_class)
+{
+ p_rec->qos_class_sl =
+ (p_rec->qos_class_sl & CL_HTON16(IB_PATH_REC_SL_MASK)) |
+ cl_hton16(qos_class << 4);
+}
+/*
+* PARAMETERS
+* p_rec
+* [in] Pointer to the path record object.
+*
+* qos_class
+* [in] QoS class to set.
+*
+* RETURN VALUES
+* None
+*
+* NOTES
+*
+* SEE ALSO
+* ib_path_rec_t
+*********/
+
+/****f* IBA Base: Types/ib_path_rec_qos_class
+* NAME
+* ib_path_rec_qos_class
+*
+* DESCRIPTION
+* Get QoS class.
+*
+* SYNOPSIS
+*/
+AL_INLINE uint16_t AL_API
+ib_path_rec_qos_class(IN const ib_path_rec_t * const p_rec) {
+ return (cl_ntoh16(p_rec->qos_class_sl) >> 4); }
+/*
+* PARAMETERS
+* p_rec
+* [in] Pointer to the path record object.
+*
+* RETURN VALUES
+* QoS class of the path record.
+*
+* NOTES
+*
+* SEE ALSO
+* ib_path_rec_t
+*********/
+
/****f* IBA Base: Types/ib_path_rec_mtu
* NAME
* ib_path_rec_mtu
@@ -3035,7 +3141,7 @@ AL_INLINE net32_t AL_API ib_path_rec_flow_lbl(
IN const ib_path_rec_t* const p_rec )
{
- return( cl_hton32( (cl_ntoh32(p_rec->hop_flow_raw.val) >> 8) &
0x000FFFFF ) );
+ return( cl_hton32( (cl_ntoh32(p_rec->hop_flow_raw) >> 8) &
0x000FFFFF
+) );
}
/*
* PARAMETERS
@@ -3064,7 +3170,7 @@ AL_INLINE uint8_t AL_API ib_path_rec_hop_limit(
IN const ib_path_rec_t* const p_rec )
{
- return( p_rec->hop_flow_raw.bytes[3] );
+ return ((uint8_t) (cl_ntoh32(p_rec->hop_flow_raw) &
0x000000FF));
}
/*
* PARAMETERS
@@ -3096,11 +3202,10 @@ ib_path_rec_set_hop_flow_raw(
IN const net32_t
flow_lbl,
IN const boolean_t
raw )
{
- p_rec->hop_flow_raw.val = (cl_ntoh32( flow_lbl ) & 0x000FFFFF)
<< 8;
- if( raw )
- p_rec->hop_flow_raw.val |= 0x80000000;
- p_rec->hop_flow_raw.val = cl_hton32( p_rec->hop_flow_raw.val );
- p_rec->hop_flow_raw.bytes[3] = hop_limit;
+ p_rec->hop_flow_raw = raw ? 0x80000000 : 0;
+ p_rec->hop_flow_raw |= (cl_ntoh32( flow_lbl ) & 0x000FFFFF) <<
8;
+ p_rec->hop_flow_raw |= hop_limit;
+ p_rec->hop_flow_raw = cl_hton32( p_rec->hop_flow_raw );
}
/*
* PARAMETERS
@@ -3185,7 +3290,7 @@ typedef struct _ib_class_port_info
uint8_t base_ver;
uint8_t class_ver;
ib_net16_t cap_mask;
- ib_net32_t resp_time_val;
+ ib_net32_t cap_mask2_resp_time;
ib_gid_t redir_gid;
ib_net32_t redir_tc_sl_fl;
ib_net16_t redir_lid;
@@ -3259,6 +3364,135 @@ typedef struct _ib_class_port_info
*
*********/
+/****f* IBA Base: Types/ib_class_set_resp_time_val
+* NAME
+* ib_class_set_resp_time_val
+*
+* DESCRIPTION
+* Set maximum expected response time.
+*
+* SYNOPSIS
+*/
+AL_INLINE void AL_API
+ib_class_set_resp_time_val(IN ib_class_port_info_t * const p_cpi,
+ IN const uint8_t val)
+{
+ p_cpi->cap_mask2_resp_time =
+ (p_cpi->cap_mask2_resp_time &
CL_HTON32(~IB_CLASS_RESP_TIME_MASK)) |
+ cl_hton32(val & IB_CLASS_RESP_TIME_MASK); }
+
+/*
+* PARAMETERS
+* p_cpi
+* [in] Pointer to the class port info object.
+*
+* val
+* [in] Response time value to set.
+*
+* RETURN VALUES
+* None
+*
+* NOTES
+*
+* SEE ALSO
+* ib_class_port_info_t
+*********/
+
+/****f* IBA Base: Types/ib_class_resp_time_val
+* NAME
+* ib_class_resp_time_val
+*
+* DESCRIPTION
+* Get response time value.
+*
+* SYNOPSIS
+*/
+AL_INLINE uint8_t AL_API
+ib_class_resp_time_val(IN ib_class_port_info_t * const p_cpi) {
+ return (uint8_t)(cl_ntoh32(p_cpi->cap_mask2_resp_time) &
+ IB_CLASS_RESP_TIME_MASK);
+}
+
+/*
+* PARAMETERS
+* p_cpi
+* [in] Pointer to the class port info object.
+*
+* RETURN VALUES
+* Response time value.
+*
+* NOTES
+*
+* SEE ALSO
+* ib_class_port_info_t
+*********/
+
+/****f* IBA Base: Types/ib_class_set_cap_mask2
+* NAME
+* ib_class_set_cap_mask2
+*
+* DESCRIPTION
+* Set ClassPortInfo:CapabilityMask2.
+*
+* SYNOPSIS
+*/
+AL_INLINE void AL_API
+ib_class_set_cap_mask2(IN ib_class_port_info_t * const p_cpi,
+ IN const uint32_t cap_mask2)
+{
+ p_cpi->cap_mask2_resp_time = (p_cpi->cap_mask2_resp_time &
+ CL_HTON32(IB_CLASS_RESP_TIME_MASK)) |
+ cl_hton32(cap_mask2 << 5);
+}
+
+/*
+* PARAMETERS
+* p_cpi
+* [in] Pointer to the class port info object.
+*
+* cap_mask2
+* [in] CapabilityMask2 value to set.
+*
+* RETURN VALUES
+* None
+*
+* NOTES
+*
+* SEE ALSO
+* ib_class_port_info_t
+*********/
+
+/****f* IBA Base: Types/ib_class_cap_mask2
+* NAME
+* ib_class_cap_mask2
+*
+* DESCRIPTION
+* Get ClassPortInfo:CapabilityMask2.
+*
+* SYNOPSIS
+*/
+AL_INLINE uint32_t AL_API
+ib_class_cap_mask2(IN const ib_class_port_info_t * const p_cpi) {
+ return (cl_ntoh32(p_cpi->cap_mask2_resp_time) >> 5); }
+
+/*
+* PARAMETERS
+* p_cpi
+* [in] Pointer to the class port info object.
+*
+* RETURN VALUES
+* CapabilityMask2 of the ClassPortInfo.
+*
+* NOTES
+*
+* SEE ALSO
+* ib_class_port_info_t
+*********/
+
/****s* IBA Base: Types/ib_sm_info_t
* NAME
* ib_sm_info_t
@@ -6344,7 +6578,7 @@ IN const uint8_t sl_index
)
#include <complib/cl_packon.h>
typedef struct _ib_vl_arb_element
{
- uint8_t res_vl;
+ uint8_t vl;
uint8_t weight;
} PACK_SUFFIX ib_vl_arb_element_t;
#include <complib/cl_packoff.h>
@@ -6363,7 +6597,7 @@ AL_INLINE uint8_t AL_API
ib_vl_arb_element_get_vl(
IN const ib_vl_arb_element_t
vl_arb_element )
{
- return (vl_arb_element.res_vl >> 4);
+ return (vl_arb_element.vl >> 4);
}
/*
* PARAMETERS
@@ -6391,7 +6625,7 @@ ib_vl_arb_element_set_vl(
IN OUT ib_vl_arb_element_t* const
p_vl_arb_element,
IN const uint8_t
vl )
{
- p_vl_arb_element->res_vl = vl << 4;
+ p_vl_arb_element->vl = vl << 4;
}
/*
* PARAMETERS
@@ -6981,945 +7215,315 @@ ib_member_set_join_state(
#define IB_NOTICE_TYPE_EMPTY 0x7F
#include <complib/cl_packon.h>
-typedef struct _ib_mad_notice_attr
+typedef struct _ib_mad_notice_attr // Total Size calc Accumulated
{
- /* is_generic:1, type:7, producer type or vendor id:24 */
- net32_t combo1;
- /* trap number or device id, depending on is_generic. */
- net16_t combo2;
-
- net16_t issuer_lid;
- /* notice toggle:1, notice_count:15 */
- net16_t combo3;
+ uint8_t generic_type; // 1 1
+
+ union _notice_g_or_v
+ {
+ struct _notice_generic // 5 6
+ {
+ uint8_t prod_type_msb;
+ ib_net16_t prod_type_lsb;
+ ib_net16_t trap_num;
+ } PACK_SUFFIX generic;
+
+ struct _notice_vend
+ {
+ uint8_t vend_id_msb;
+ ib_net16_t vend_id_lsb;
+ ib_net16_t dev_id;
+ } PACK_SUFFIX vend;
+ } g_or_v;
+
+ ib_net16_t issuer_lid; // 2 8
+ ib_net16_t toggle_count; // 2 10
+
+ union _data_details // 54 64
+ {
+ struct _raw_data
+ {
+ uint8_t details[54];
+ } PACK_SUFFIX raw_data;
+
+ struct _ntc_64_67
+ {
+ uint8_t res[6];
+ ib_gid_t gid; // the Node or Multicast Group
that came in/out
+ } PACK_SUFFIX ntc_64_67;
+
+ struct _ntc_128 {
+ ib_net16_t sw_lid; // the sw lid of which link state
changed
+ } PACK_SUFFIX ntc_128;
+
+ struct _ntc_129_131 {
+ ib_net16_t pad;
+ ib_net16_t lid; // lid and port number
of the violation
+ uint8_t port_num;
+ } PACK_SUFFIX ntc_129_131;
+
+ struct _ntc_144 {
+ ib_net16_t pad1;
+ ib_net16_t lid; // lid where capability
mask changed
+ uint8_t pad2;
+ uint8_t local_changes;
+ ib_net32_t new_cap_mask; // new capability mask
+ ib_net16_t change_flgs;
+ } PACK_SUFFIX ntc_144;
+
+ struct _ntc_145 {
+ ib_net16_t pad1;
+ ib_net16_t lid; // lid where sys guid
changed
+ ib_net16_t pad2;
+ ib_net64_t new_sys_guid; // new system image guid
+ } PACK_SUFFIX ntc_145;
+
+ struct _ntc_256 { // total: 54
+ ib_net16_t pad1; // 2
+ ib_net16_t lid; // 2
+ ib_net16_t pad2; // 2
+ uint8_t method; // 1
+ uint8_t pad3; // 1
+ ib_net16_t attr_id; // 2
+ ib_net32_t attr_mod; // 4
+ ib_net64_t mkey; // 8
+ uint8_t dr_slid; // 1
+ uint8_t dr_trunc_hop; // 1
+ uint8_t dr_rtn_path[30]; // 30
+ } PACK_SUFFIX ntc_256;
+
+ struct _ntc_257_258 // violation of p/q_key // 49
+ {
+ ib_net16_t pad1; // 2
+ ib_net16_t lid1; // 2
+ ib_net16_t lid2; // 2
+ ib_net32_t key; // 2
+ uint8_t sl; // 1
+ ib_net32_t qp1; // 4
+ ib_net32_t qp2; // 4
+ ib_gid_t gid1; // 16
+ ib_gid_t gid2; // 16
+ } PACK_SUFFIX ntc_257_258;
+
+ struct _ntc_259 // p/q_key violation with sw info 53
+ {
+ ib_net16_t data_valid; // 2
+ ib_net16_t lid1; // 2
+ ib_net16_t lid2; // 2
+ ib_net32_t key; // 4
+ uint8_t sl; // 1
+ ib_net32_t qp1; // 4
+ uint8_t qp2_msb; // 1
+ ib_net16_t qp2_lsb; // 2
+ ib_gid_t gid1; // 16
+ ib_gid_t gid2; // 16
+ ib_net16_t sw_lid; // 2
+ uint8_t port_no; // 1
+ } PACK_SUFFIX ntc_259;
- uint8_t data_details[54];
- ib_gid_t issuer_gid;
+ } data_details;
+
+ ib_gid_t issuer_gid; // 16 80
} PACK_SUFFIX ib_mad_notice_attr_t;
#include <complib/cl_packoff.h>
-/****f* IBA Base: Types/ib_notice_get_generic
-* NAME
-* ib_notice_get_generic
-*
-* DESCRIPTION
-* Retrieves whether a notice trap is generic.
-*
-* SYNOPSIS
-*/
-AL_INLINE boolean_t AL_API
-ib_notice_get_generic(
- IN const ib_mad_notice_attr_t* const
p_notice_attr )
+/**
+ * Trap 259 masks
+ */
+#define TRAP_259_MASK_SL (CL_HTON32(0xF0000000)) #define
+TRAP_259_MASK_QP (CL_HTON32(0x00FFFFFF))
+
+/**
+ * Trap 144 masks
+ */
+#define TRAP_144_MASK_OTHER_LOCAL_CHANGES 0x01
+#define TRAP_144_MASK_SM_PRIORITY_CHANGE (CL_HTON16(0x0008))
+#define TRAP_144_MASK_LINK_SPEED_ENABLE_CHANGE (CL_HTON16(0x0004))
+#define TRAP_144_MASK_LINK_WIDTH_ENABLE_CHANGE (CL_HTON16(0x0002))
+#define TRAP_144_MASK_NODE_DESCRIPTION_CHANGE (CL_HTON16(0x0001))
+
+#include <complib/cl_packon.h>
+typedef struct _ib_inform_info
{
- if( cl_ntoh32( p_notice_attr->combo1 ) & 0x00000001 )
- return TRUE;
- return FALSE;
-}
-/*
-* PARAMETERS
-* p_notice_attr
-* [in] Pointer to the notice attribute structure for which
to return
-* whether it is generic or not.
-*
-* RETURN VALUES
-* Returns TRUE if the notice is generic.
-*
-* Returns FALSE if the notice is vendor specific.
-*
-* SEE ALSO
-* ib_mad_notice_attr_t, ib_notice_set_generic
-*********/
+ ib_gid_t gid;
+ ib_net16_t lid_range_begin;
+ ib_net16_t lid_range_end;
+ ib_net16_t reserved1;
+ uint8_t is_generic;
+ uint8_t subscribe;
+ ib_net16_t trap_type;
+ union _inform_g_or_v {
+ struct _inform_generic {
+ ib_net16_t trap_num;
+ ib_net32_t qpn_resp_time_val;
+ uint8_t reserved2;
+ uint8_t node_type_msb;
+ ib_net16_t node_type_lsb;
+ } PACK_SUFFIX generic;
+ struct _inform_vend {
+ ib_net16_t dev_id;
+ ib_net32_t qpn_resp_time_val;
+ uint8_t reserved2;
+ uint8_t vendor_id_msb;
+ ib_net16_t vendor_id_lsb;
+ } PACK_SUFFIX vend;
+ } PACK_SUFFIX g_or_v;
+} PACK_SUFFIX ib_inform_info_t;
+#include <complib/cl_packoff.h>
-/****f* IBA Base: Types/ib_notice_set_generic
+/****f* IBA Base: Types/ib_inform_info_get_qpn_resp_time
* NAME
-* ib_notice_set_generic
+* ib_inform_info_get_qpn_resp_time
*
* DESCRIPTION
-* Sets whether a notice trap is generic.
+* Get QPN of the inform info
*
* SYNOPSIS
*/
AL_INLINE void AL_API
-ib_notice_set_generic(
- IN OUT ib_mad_notice_attr_t* const
p_notice_attr,
- IN const boolean_t
is_generic )
+ib_inform_info_get_qpn_resp_time(IN const ib_net32_t qpn_resp_time_val,
+ OUT ib_net32_t * const p_qpn,
+ OUT uint8_t * const p_resp_time_val)
{
- uint32_t val;
+ uint32_t tmp = cl_ntoh32(qpn_resp_time_val);
- val = cl_ntoh32( p_notice_attr->combo1 );
- if( is_generic )
- val |= 0x00000001;
- else
- val &= 0xFFFFFFFE;
- p_notice_attr->combo1 = cl_hton32( val );
+ if (p_qpn)
+ *p_qpn = cl_hton32((tmp & 0xffffff00) >> 8);
+ if (p_resp_time_val)
+ *p_resp_time_val = (uint8_t) (tmp & 0x0000001f);
}
+
/*
* PARAMETERS
-* p_notice_attr
-* [in/out] Pointer to the notice attribute structure for
which to set
-* the generic bit.
-*
-* is_generic
-* [in] TRUE if the notice is generic, FALSE if vendor
specific.
+* qpn_resp_time_val
+* [in] the qpn and resp time val from the mad
*
* RETURN VALUES
-* This function does not return a value.
-*
-* SEE ALSO
-* ib_mad_notice_attr_t, ib_notice_get_generic
-*********/
-
-/****f* IBA Base: Types/ib_notice_get_type
-* NAME
-* ib_notice_get_type
-*
-* DESCRIPTION
-* Retrieves the type of a notice trap.
+* p_qpn
+* [out] pointer to the qpn
*
-* SYNOPSIS
-*/
-AL_INLINE uint8_t AL_API
-ib_notice_get_type(
- IN const ib_mad_notice_attr_t* const
p_notice_attr )
-{
- return (uint8_t)((cl_ntoh32( p_notice_attr->combo1 ) >> 1) &
0x0000007F);
-}
-/*
-* PARAMETERS
-* p_notice_attr
-* [in] Pointer to the notice attribute structure whose
type to return.
+* p_state
+* [out] pointer to the resp time val
*
-* RETURN VALUES
-* Returns the type of the notice.
+* NOTES
*
* SEE ALSO
-* ib_mad_notice_attr_t, ib_notice_set_type
+* ib_inform_info_t
*********/
-/****f* IBA Base: Types/ib_notice_set_type
+/****f* IBA Base: Types/ib_inform_info_set_qpn
* NAME
-* ib_notice_set_type
+* ib_inform_info_set_qpn
*
* DESCRIPTION
-* Sets the type of a notice trap.
+* Set the QPN of the inform info
*
* SYNOPSIS
*/
AL_INLINE void AL_API
-ib_notice_set_type(
- IN OUT ib_mad_notice_attr_t* const
p_notice_attr,
- IN const uint8_t
type )
+ib_inform_info_set_qpn(IN ib_inform_info_t * p_ii, IN ib_net32_t const
+qpn)
{
- uint32_t val;
+ uint32_t tmp =
cl_ntoh32(p_ii->g_or_v.generic.qpn_resp_time_val);
- val = cl_ntoh32( p_notice_attr->combo1 );
- /* Clear the type. */
- val &= 0xFFFFFF01;
- /* Set new value. */
- val |= (((uint32_t)(type & 0x7F)) << 1);
- p_notice_attr->combo1 = cl_hton32( val );
+ p_ii->g_or_v.generic.qpn_resp_time_val =
+ cl_hton32((tmp & 0x000000ff) | ((cl_ntoh32(qpn) << 8) &
0xffffff00)
+ );
}
-/*
-* PARAMETERS
-* p_notice_attr
-* [in/out] Pointer to the notice attribute structure whose
type to set.
-*
-* type
-* [in] Type of notice trap.
-*
-* RETURN VALUES
-* This function does not return a value.
-*
-* SEE ALSO
-* ib_mad_notice_attr_t, ib_notice_get_type
-*********/
-/****f* IBA Base: Types/ib_notice_get_prod_type
-* NAME
-* ib_notice_get_prod_type
-*
-* DESCRIPTION
-* Retrieves the producer type from a generic notice trap.
-*
-* SYNOPSIS
-*/
-AL_INLINE uint32_t AL_API
-ib_notice_get_prod_type(
- IN const ib_mad_notice_attr_t* const
p_notice_attr )
-{
- return (cl_ntoh32( p_notice_attr->combo1 ) >> 8);
-}
/*
* PARAMETERS
-* p_notice_attr
-* [in] Pointer to the notice attribute structure whose
-* prducer type to return.
*
-* RETURN VALUES
-* Returns the producer type of the notice, in host byte order.
+* NOTES
*
* SEE ALSO
-* ib_mad_notice_attr_t, ib_notice_set_prod_type
+* ib_inform_info_t
*********/
-/****f* IBA Base: Types/ib_notice_set_prod_type
+/****f* IBA Base: Types/ib_inform_info_get_prod_type
* NAME
-* ib_notice_set_prod_type
+* ib_inform_info_get_prod_type
*
* DESCRIPTION
-* Sets the producer type of a generic notice trap.
+* Get Producer Type of the Inform Info
+* 13.4.8.3 InformInfo
*
* SYNOPSIS
*/
-AL_INLINE void AL_API
-ib_notice_set_prod_type(
- IN OUT ib_mad_notice_attr_t* const
p_notice_attr,
- IN const uint32_t
prod_type )
+AL_INLINE ib_net32_t AL_API
+ib_inform_info_get_prod_type(IN const ib_inform_info_t * p_inf)
{
- uint32_t val;
+ uint32_t nt;
- val = cl_ntoh32( p_notice_attr->combo1 );
- /* Clear the type. */
- val &= 0x000000FF;
- /* Set new value. */
- val |= (prod_type << 8);
- p_notice_attr->combo1 = cl_hton32( val );
+ nt = cl_ntoh16(p_inf->g_or_v.generic.node_type_lsb) |
+ (p_inf->g_or_v.generic.node_type_msb << 16);
+ return cl_hton32(nt);
}
+
/*
* PARAMETERS
-* p_notice_attr
-* [in/out] Pointer to the notice attribute structure
-* whose producer type to set.
-*
-* prod_type
-* [in] Producer type of notice trap.
+* p_inf
+* [in] pointer to an inform info
*
* RETURN VALUES
-* This function does not return a value.
+* The producer type
+*
+* NOTES
*
* SEE ALSO
-* ib_mad_notice_attr_t, ib_notice_get_prod_type
+* ib_inform_info_t
*********/
-/****f* IBA Base: Types/ib_notice_get_vend_id
+/****f* IBA Base: Types/ib_inform_info_get_vend_id
* NAME
-* ib_notice_get_vend_id
+* ib_inform_info_get_vend_id
*
* DESCRIPTION
-* Retrieves the vendor ID from a vendor specific notice trap.
+* Get Node Type of the Inform Info
*
* SYNOPSIS
*/
-AL_INLINE uint32_t AL_API
-ib_notice_get_vend_id(
- IN const ib_mad_notice_attr_t* const
p_notice_attr )
+AL_INLINE ib_net32_t AL_API
+ib_inform_info_get_vend_id(IN const ib_inform_info_t * p_inf)
{
- return ib_notice_get_prod_type( p_notice_attr );
+ uint32_t vi;
+
+ vi = cl_ntoh16(p_inf->g_or_v.vend.vendor_id_lsb) |
+ (p_inf->g_or_v.vend.vendor_id_msb << 16);
+ return cl_hton32(vi);
}
+
/*
* PARAMETERS
-* p_notice_attr
-* [in] Pointer to the notice attribute structure whose
-* vendor ID to return.
+* p_inf
+* [in] pointer to an inform info
*
* RETURN VALUES
-* Returns the vendor ID of the notice, in host byte order.
+* The node type
+*
+* NOTES
*
* SEE ALSO
-* ib_mad_notice_attr_t, ib_notice_set_vend_id
+* ib_inform_info_t
*********/
-/****f* IBA Base: Types/ib_notice_set_vend_id
+/****s* IBA Base: Types/ib_inform_info_record_t
* NAME
-* ib_notice_set_vend_id
+* ib_inform_info_record_t
*
* DESCRIPTION
-* Sets the vendor ID of a vendor specific notice trap.
+* IBA defined InformInfo Record. (15.2.5.12)
*
* SYNOPSIS
*/
-AL_INLINE void AL_API
-ib_notice_set_vend_id(
- IN OUT ib_mad_notice_attr_t* const
p_notice_attr,
- IN const uint32_t
vend_id )
-{
- ib_notice_set_prod_type( p_notice_attr, vend_id );
-}
-/*
-* PARAMETERS
-* p_notice_attr
-* [in/out] Pointer to the notice attribute structure
-* whose vendor ID to set.
-*
-* vend_id
-* [in] Vendor ID of notice trap.
-*
-* RETURN VALUES
-* This function does not return a value.
-*
-* SEE ALSO
-* ib_mad_notice_attr_t, ib_notice_get_vend_id
-*********/
-
-/****f* IBA Base: Types/ib_notice_get_trap_num
-* NAME
-* ib_notice_get_trap_num
-*
-* DESCRIPTION
-* Retrieves the trap number from a generic notice trap.
-*
-* SYNOPSIS
-*/
-AL_INLINE uint16_t AL_API
-ib_notice_get_trap_num(
- IN const ib_mad_notice_attr_t* const
p_notice_attr )
-{
- return cl_ntoh16( p_notice_attr->combo2 );
-}
-/*
-* PARAMETERS
-* p_notice_attr
-* [in] Pointer to the notice attribute structure whose
-* trap number to return.
-*
-* RETURN VALUES
-* Returns the vendor ID of the notice, in host byte order.
-*
-* SEE ALSO
-* ib_mad_notice_attr_t, ib_notice_set_trap_num
-*********/
-
-/****f* IBA Base: Types/ib_notice_set_trap_num
-* NAME
-* ib_notice_set_trap_num
-*
-* DESCRIPTION
-* Sets the trap number of a generic notice trap.
-*
-* SYNOPSIS
-*/
-AL_INLINE void AL_API
-ib_notice_set_trap_num(
- IN OUT ib_mad_notice_attr_t* const
p_notice_attr,
- IN const uint16_t
trap_num )
-{
- p_notice_attr->combo2 = cl_hton16( trap_num );
-}
-/*
-* PARAMETERS
-* p_notice_attr
-* [in/out] Pointer to the notice attribute structure
-* whose trap number to set.
-*
-* trap_num
-* [in] Trap number to set.
-*
-* RETURN VALUES
-* This function does not return a value.
-*
-* SEE ALSO
-* ib_mad_notice_attr_t, ib_notice_get_trap_num
-*********/
-
-/****f* IBA Base: Types/ib_notice_get_dev_id
-* NAME
-* ib_notice_get_dev_id
-*
-* DESCRIPTION
-* Retrieves the device ID from a vendor specific notice trap.
-*
-* SYNOPSIS
-*/
-AL_INLINE uint16_t AL_API
-ib_notice_get_dev_id(
- IN const ib_mad_notice_attr_t* const
p_notice_attr )
-{
- return ib_notice_get_trap_num( p_notice_attr );
-}
-/*
-* PARAMETERS
-* p_notice_attr
-* [in] Pointer to the notice attribute structure whose
-* device ID to return.
-*
-* RETURN VALUES
-* Returns the vendor ID of the notice, in host byte order.
-*
-* SEE ALSO
-* ib_mad_notice_attr_t, ib_notice_set_dev_id
-*********/
-
-/****f* IBA Base: Types/ib_notice_set_dev_id
-* NAME
-* ib_notice_set_dev_id
-*
-* DESCRIPTION
-* Sets the producer type of a vendor specific notice trap.
-*
-* SYNOPSIS
-*/
-AL_INLINE void AL_API
-ib_notice_set_dev_id(
- IN OUT ib_mad_notice_attr_t* const
p_notice_attr,
- IN const uint16_t
dev_id )
-{
- ib_notice_set_trap_num( p_notice_attr, dev_id );
-}
-/*
-* PARAMETERS
-* p_notice_attr
-* [in/out] Pointer to the notice attribute structure
-* whose device ID to set.
-*
-* dev_id
-* [in] Device ID of notice trap.
-*
-* RETURN VALUES
-* This function does not return a value.
-*
-* SEE ALSO
-* ib_mad_notice_attr_t, ib_notice_get_dev_id
-*********/
-
-/****f* IBA Base: Types/ib_notice_get_toggle
-* NAME
-* ib_notice_get_toggle
-*
-* DESCRIPTION
-* Retrieves the notice toggle bit from a notice trap.
-*
-* SYNOPSIS
-*/
-AL_INLINE boolean_t AL_API
-ib_notice_get_toggle(
- IN const ib_mad_notice_attr_t* const
p_notice_attr )
-{
- return (cl_ntoh16( p_notice_attr->combo3 ) & 0x0001);
-}
-/*
-* PARAMETERS
-* p_notice_attr
-* [in] Pointer to the notice attribute structure whose
-* notice toggle bit value to return.
-*
-* RETURN VALUES
-* Returns TRUE if the notice toggle bit of the notice is set.
-*
-* Returns FALSE otherwise.
-*
-* SEE ALSO
-* ib_mad_notice_attr_t, ib_notice_set_toggle
-*********/
-
-/****f* IBA Base: Types/ib_notice_set_toggle
-* NAME
-* ib_notice_set_toggle
-*
-* DESCRIPTION
-* Sets the notice toggle bit of a notice trap.
-*
-* SYNOPSIS
-*/
-AL_INLINE void AL_API
-ib_notice_set_toggle(
- IN OUT ib_mad_notice_attr_t* const
p_notice_attr,
- IN const boolean_t
toggle_val )
-{
- uint16_t val;
- val = cl_ntoh16( p_notice_attr->combo3 );
- if( toggle_val )
- val |= 0x0001;
- else
- val &= 0xFFFE;
- p_notice_attr->combo3 = cl_hton16( val );
-}
-/*
-* PARAMETERS
-* p_notice_attr
-* [in/out] Pointer to the notice attribute structure
-* whose notice toggle bit to set or clear.
-*
-* toggle_val
-* [in] Boolean value indicating whether the toggle bit of
the notice
-* should be set or cleared.
-*
-* RETURN VALUES
-* This function does not return a value.
-*
-* SEE ALSO
-* ib_mad_notice_attr_t, ib_notice_get_toggle
-*********/
-
-/****f* IBA Base: Types/ib_notice_get_count
-* NAME
-* ib_notice_get_count
-*
-* DESCRIPTION
-* Retrieves the notice toggle count from a notice trap.
-*
-* SYNOPSIS
-*/
-AL_INLINE boolean_t AL_API
-ib_notice_get_count(
- IN const ib_mad_notice_attr_t* const
p_notice_attr )
-{
- return ((cl_ntoh16( p_notice_attr->combo3 ) & 0xFFFE) >> 1);
-}
-/*
-* PARAMETERS
-* p_notice_attr
-* [in] Pointer to the notice attribute structure whose
-* notice toggle count to return.
-*
-* RETURN VALUES
-* Returns the notice toggle count of the notice.
-*
-* SEE ALSO
-* ib_mad_notice_attr_t, ib_notice_set_count
-*********/
-
-/****f* IBA Base: Types/ib_notice_set_count
-* NAME
-* ib_notice_set_count
-*
-* DESCRIPTION
-* Sets the toggle count of a notice trap.
-*
-* SYNOPSIS
-*/
-AL_INLINE void AL_API
-ib_notice_set_count(
- IN OUT ib_mad_notice_attr_t* const
p_notice_attr,
- IN const uint16_t
toggle_cnt )
-{
- uint16_t val;
- val = cl_ntoh16( p_notice_attr->combo3 );
- val &= 0x0001;
- val |= (toggle_cnt << 1);
- p_notice_attr->combo3 = cl_hton16( val );
-}
-/*
-* PARAMETERS
-* p_notice_attr
-* [in/out] Pointer to the notice attribute structure
-* whose device ID to set.
-*
-* toggle_cnt
-* [in] Toggle count value of the notice.
-*
-* RETURN VALUES
-* This function does not return a value.
-*
-* SEE ALSO
-* ib_mad_notice_attr_t, ib_notice_get_count
-*********/
-
-#include <complib/cl_packon.h>
-typedef struct _ib_inform_info
-{
- ib_gid_t gid;
-
- ib_net16_t lid_range_begin;
- ib_net16_t lid_range_end;
- // EZ: not v1.1 ib_net16_t pkey;
- ib_net16_t reserved;
- uint8_t is_generic;
- uint8_t subscribe;
- // EZ: not v1.1 ib_net16_t
class_range;
- ib_net16_t trap_type;
-
- /* trap num or dev_id */
- ib_net16_t combo1;
- /* QPN:24, resv:3, resp_time_val:5 */
- ib_net32_t combo2;
- /* resv:8, producer type or vendor id:24 */
- ib_net32_t combo3;
-
-} PACK_SUFFIX ib_inform_info_t;
-#include <complib/cl_packoff.h>
-
-/****f* IBA Base: Types/ib_inform_get_trap_num
-* NAME
-* ib_inform_get_trap_num
-*
-* DESCRIPTION
-* Retrieves the trap number from an inform info structure.
-*
-* SYNOPSIS
-*/
-AL_INLINE uint16_t AL_API
-ib_inform_get_trap_num(
- IN const ib_inform_info_t* const
p_inform_info )
-{
- return cl_ntoh16( p_inform_info->combo1 );
-}
-/*
-* PARAMETERS
-* p_inform_info
-* [in] Pointer to the inform info structure whose
-* trap number to return.
-*
-* RETURN VALUES
-* Returns the trap number of the infrom info, in host byte order.
-*
-* SEE ALSO
-* ib_inform_info_t, ib_inform_set_trap_num
-*********/
-
-/****f* IBA Base: Types/ib_inform_set_trap_num
-* NAME
-* ib_inform_set_trap_num
-*
-* DESCRIPTION
-* Sets the trap number of an inform info structure.
-*
-* SYNOPSIS
-*/
-AL_INLINE void AL_API
-ib_inform_set_trap_num(
- IN OUT ib_inform_info_t* const
p_inform_info,
- IN const uint16_t
trap_num )
-{
- p_inform_info->combo1 = cl_hton16( trap_num );
-}
-/*
-* PARAMETERS
-* p_inform_info
-* [in/out] Pointer to the inform info structure
-* whose trap number to set.
-*
-* trap_num
-* [in] Trap number to set.
-*
-* RETURN VALUES
-* This function does not return a value.
-*
-* SEE ALSO
-* ib_inform_info_t, ib_inform_get_trap_num
-*********/
-
-/****f* IBA Base: Types/ib_inform_get_dev_id
-* NAME
-* ib_inform_get_dev_id
-*
-* DESCRIPTION
-* Retrieves the device ID from a vendor specific inform trap.
-*
-* SYNOPSIS
-*/
-AL_INLINE uint16_t AL_API
-ib_inform_get_dev_id(
- IN const ib_inform_info_t* const
p_inform_info )
-{
- return ib_inform_get_trap_num( p_inform_info );
-}
-/*
-* PARAMETERS
-* p_inform_info
-* [in] Pointer to the inform info structure whose
-* device ID to return.
-*
-* RETURN VALUES
-* Returns the vendor ID of the inform info, in host byte order.
-*
-* SEE ALSO
-* ib_inform_info_t, ib_inform_set_dev_id
-*********/
-
-/****f* IBA Base: Types/ib_inform_set_dev_id
-* NAME
-* ib_inform_set_dev_id
-*
-* DESCRIPTION
-* Sets the producer type of a vendor specific inform trap.
-*
-* SYNOPSIS
-*/
-AL_INLINE void AL_API
-ib_inform_set_dev_id(
- IN OUT ib_inform_info_t* const
p_inform_info,
- IN const uint16_t
dev_id )
-{
- ib_inform_set_trap_num( p_inform_info, dev_id );
-}
-/*
-* PARAMETERS
-* p_inform_info
-* [in/out] Pointer to the inform info structure
-* whose device ID to set.
-*
-* dev_id
-* [in] Device ID of inform trap.
-*
-* RETURN VALUES
-* This function does not return a value.
-*
-* SEE ALSO
-* ib_inform_info_t, ib_inform_get_dev_id
-*********/
-
-/****f* IBA Base: Types/ib_inform_get_qpn
-* NAME
-* ib_inform_get_qpn
-*
-* DESCRIPTION
-* Retrieves the QPN from an inform info structure.
-*
-* SYNOPSIS
-*/
-AL_INLINE net32_t AL_API
-ib_inform_get_qpn(
- IN const ib_inform_info_t* const
p_inform_info )
-{
- return (p_inform_info->combo2 & CL_NTOH32( 0x00FFFFFF ));
-}
-/*
-* PARAMETERS
-* p_inform_info
-* [in] Pointer to the inform info structure whose
-* QPN to return.
-*
-* RETURN VALUES
-* Returns the QPN of the infrom info.
-*
-* SEE ALSO
-* ib_inform_info_t, ib_inform_set_qpn
-*********/
-
-/****f* IBA Base: Types/ib_inform_set_qpn
-* NAME
-* ib_inform_set_qpn
-*
-* DESCRIPTION
-* Sets the QPN of an inform info structure.
-*
-* SYNOPSIS
-*/
-AL_INLINE void AL_API
-ib_inform_set_qpn(
- IN OUT ib_inform_info_t* const
p_inform_info,
- IN const net32_t
qpn )
-{
- p_inform_info->combo2 &= CL_NTOH32( 0xFF000000 );
- p_inform_info->combo2 |= (qpn & CL_NTOH32( 0x00FFFFFF ));
-}
-/*
-* PARAMETERS
-* p_inform_info
-* [in/out] Pointer to the inform info structure
-* whose QPN to set.
-*
-* qpn
-* [in] QPN of the inform info.
-*
-* RETURN VALUES
-* This function does not return a value.
-*
-* SEE ALSO
-* ib_inform_info_t, ib_inform_get_qpn
-*********/
-
-/****f* IBA Base: Types/ib_inform_get_resp_time_val
-* NAME
-* ib_inform_get_resp_time_val
-*
-* DESCRIPTION
-* Retrieves the response time value from an inform info structure.
-*
-* SYNOPSIS
-*/
-AL_INLINE uint8_t AL_API
-ib_inform_get_resp_time_val(
- IN const ib_inform_info_t* const
p_inform_info )
-{
- return (uint8_t)(cl_ntoh32( p_inform_info->combo2 ) >> 27);
-}
-/*
-* PARAMETERS
-* p_inform_info
-* [in] Pointer to the inform info structure whose
-* response time value to return.
-*
-* RETURN VALUES
-* Returns the response time value of the infrom info.
-*
-* SEE ALSO
-* ib_inform_info_t, ib_inform_set_resp_time_val
-*********/
-
-/****f* IBA Base: Types/ib_inform_set_resp_time_val
-* NAME
-* ib_inform_set_resp_time_val
-*
-* DESCRIPTION
-* Sets the response time value of an inform info structure.
-*
-* SYNOPSIS
-*/
-AL_INLINE void AL_API
-ib_inform_set_resp_time_val(
- IN OUT ib_inform_info_t* const
p_inform_info,
- IN const uint8_t
resp_time_val )
-{
- uint32_t val;
-
- val = cl_ntoh32( p_inform_info->combo2 );
- val &= 0x07FFFFFF;
- val |= (resp_time_val << 27);
- p_inform_info->combo2 = cl_hton32( val );
-}
-/*
-* PARAMETERS
-* p_inform_info
-* [in/out] Pointer to the inform info structure
-* whose response time value to set.
-*
-* resp_time_val
-* [in] Response time value of the inform info.
-*
-* RETURN VALUES
-* This function does not return a value.
-*
-* SEE ALSO
-* ib_inform_info_t, ib_inform_get_resp_time_val
-*********/
-
-/****f* IBA Base: Types/ib_inform_get_prod_type
-* NAME
-* ib_inform_get_prod_type
-*
-* DESCRIPTION
-* Retrieves the producer type from an inform info structure.
-*
-* SYNOPSIS
-*/
-AL_INLINE uint32_t AL_API
-ib_inform_get_prod_type(
- IN const ib_inform_info_t* const
p_inform_info )
-{
- return (cl_ntoh32( p_inform_info->combo3 ) >> 8);
-}
-/*
-* PARAMETERS
-* p_inform_info
-* [in] Pointer to the inform info structure whose
-* prducer type to return.
-*
-* RETURN VALUES
-* Returns the producer type of the infrom info, in host byte
order.
-*
-* SEE ALSO
-* ib_inform_info_t, ib_inform_set_prod_type
-*********/
-
-/****f* IBA Base: Types/ib_inform_set_prod_type
-* NAME
-* ib_inform_set_prod_type
-*
-* DESCRIPTION
-* Sets the producer type of an inform info structure.
-*
-* SYNOPSIS
-*/
-AL_INLINE void AL_API
-ib_inform_set_prod_type(
- IN OUT ib_inform_info_t* const
p_inform_info,
- IN const uint32_t
prod_type )
-{
- p_inform_info->combo3 = cl_hton32( prod_type << 8 );
-}
-/*
-* PARAMETERS
-* p_inform_info
-* [in/out] Pointer to the inform info structure
-* whose producer type to set.
-*
-* prod_type
-* [in] Producer type of inform trap.
-*
-* RETURN VALUES
-* This function does not return a value.
-*
-* SEE ALSO
-* ib_inform_info_t, ib_inform_get_prod_type
-*********/
-
-/****f* IBA Base: Types/ib_inform_get_vend_id
-* NAME
-* ib_inform_get_vend_id
-*
-* DESCRIPTION
-* Retrieves the vendor ID from an inform info structure.
-*
-* SYNOPSIS
-*/
-AL_INLINE uint32_t AL_API
-ib_inform_get_vend_id(
- IN const ib_inform_info_t* const
p_inform_info )
-{
- return ib_inform_get_prod_type( p_inform_info );
-}
-/*
-* PARAMETERS
-* p_inform_info
-* [in] Pointer to the inform info structure whose
-* vendor ID to return.
-*
-* RETURN VALUES
-* Returns the vendor ID of the infrom info, in host byte order.
-*
-* SEE ALSO
-* ib_inform_info_t, ib_inform_set_vend_id
-*********/
-
-/****f* IBA Base: Types/ib_inform_set_vend_id
-* NAME
-* ib_inform_set_vend_id
-*
-* DESCRIPTION
-* Sets the vendor ID of an inform info structure.
-*
-* SYNOPSIS
-*/
-AL_INLINE void AL_API
-ib_inform_set_vend_id(
- IN OUT ib_inform_info_t* const
p_inform_info,
- IN const uint32_t
vend_id )
-{
- ib_inform_set_prod_type( p_inform_info, vend_id );
-}
-/*
-* PARAMETERS
-* p_inform_info
-* [in/out] Pointer to the inform info structure
-* whose vendor ID to set.
-*
-* vend_id
-* [in] Vendor ID of inform trap.
-*
-* RETURN VALUES
-* This function does not return a value.
-*
-* SEE ALSO
-* ib_mad_inform_info_t, ib_inform_get_vend_id
-*********/
-
-/****s* IBA Base: Types/ib_inform_info_record_t
-* NAME
-* ib_inform_info_record_t
-*
-* DESCRIPTION
-* IBA defined InformInfo Record. (15.2.5.12)
-*
-* SYNOPSIS
-*/
-#include <complib/cl_packon.h>
-typedef struct _ib_inform_info_record
+#include <complib/cl_packon.h>
+typedef struct _ib_inform_info_record
{
ib_gid_t subscriber_gid;
net16_t subscriber_enum;
uint16_t reserved[3];
ib_inform_info_t inform_info;
+ uint8_t pad[4];
} PACK_SUFFIX ib_inform_info_record_t;
#include <complib/cl_packoff.h>
diff -up -r -X trunk\docs\dontdiff.txt -I '\$Id:'
trunk/ulp/ipoib/kernel/ipoib_port.c
branches\winverbs/ulp/ipoib/kernel/ipoib_port.c
--- trunk/ulp/ipoib/kernel/ipoib_port.c 2009-02-11 05:28:31.852625000
-0800
+++ branches\winverbs/ulp/ipoib/kernel/ipoib_port.c 2009-02-21
22:15:12.328125000 -0800
@@ -4800,7 +4800,7 @@ ipoib_mac_to_path(
p_endpt = PARENT_STRUCT( p_item, ipoib_endpt_t, mac_item
);
}
- p_path->resv0 = 0;
+ p_path->service_id = 0;
p_path->dgid = p_endpt->dgid;
p_path->sgid = p_port->p_local_endpt->dgid;
p_path->dlid = p_endpt->dlid;
@@ -4826,7 +4826,7 @@ ipoib_mac_to_path(
p_port->p_local_endpt->dlid,
1,
p_port->ib_mgr.bcast_rec.pkey,
- sl,
+ sl, 0,
IB_PATH_SELECTOR_EXACTLY, p_port->ib_mgr.bcast_rec.mtu,
IB_PATH_SELECTOR_EXACTLY, p_port->ib_mgr.bcast_rec.rate,
IB_PATH_SELECTOR_EXACTLY, pkt_life,
diff -up -r -X trunk\docs\dontdiff.txt -I '\$Id:'
trunk/ulp/qlgcvnic/kernel/vnic_adapter.c
branches\winverbs/ulp/qlgcvnic/kernel/vnic_adapter.c
--- trunk/ulp/qlgcvnic/kernel/vnic_adapter.c 2008-07-16
08:53:54.078500000 -0700
+++ branches\winverbs/ulp/qlgcvnic/kernel/vnic_adapter.c
2009-02-21 22:15:12.359375000 -0800
@@ -767,7 +767,7 @@ __path_records_match(
return FALSE;
if( p_path1->rate != p_path2->rate )
return FALSE;
- if( p_path1->sl != p_path2->sl )
+ if( ib_path_rec_sl(p_path1) != ib_path_rec_sl(p_path2) )
return FALSE;
if( p_path1->tclass != p_path2->tclass )
return FALSE;
diff -up -r -X trunk\docs\dontdiff.txt -I '\$Id:'
trunk/ulp/srp/kernel/srp_hba.c
branches\winverbs/ulp/srp/kernel/srp_hba.c
--- trunk/ulp/srp/kernel/srp_hba.c 2008-07-07 09:59:36.234250000
-0700
+++ branches\winverbs/ulp/srp/kernel/srp_hba.c 2009-02-21
22:15:12.343750000 -0800
@@ -461,7 +461,7 @@ __srp_path_rec_equal(
if ( p_path_rec_1->slid != p_path_rec_2->slid )
return ( FALSE );
- if ( p_path_rec_1->hop_flow_raw.val !=
p_path_rec_2->hop_flow_raw.val )
+ if ( p_path_rec_1->hop_flow_raw != p_path_rec_2->hop_flow_raw )
{
SRP_PRINT( TRACE_LEVEL_INFORMATION, SRP_DBG_DEBUG,
("hop_flow_raw.val does not match.\n") ); @@
-492,7 +492,7 @@ __srp_path_rec_equal(
return ( FALSE );
}
- if ( p_path_rec_1->sl != p_path_rec_2->sl )
+ if ( ib_path_rec_sl(p_path_rec_1) !=
ib_path_rec_sl(p_path_rec_2) )
{
SRP_PRINT( TRACE_LEVEL_INFORMATION, SRP_DBG_DEBUG,
("sl does not match.\n") );
@@ -532,12 +532,6 @@ __srp_path_rec_equal(
#if defined( _DEBUG_ )
- if ( p_path_rec_1->resv0 != p_path_rec_2->resv0 )
- {
- SRP_PRINT( TRACE_LEVEL_INFORMATION, SRP_DBG_DEBUG,
- ("resv0 does not match.\n") );
- }
-
if ( p_path_rec_1->resv1 != p_path_rec_2->resv1 )
{
SRP_PRINT( TRACE_LEVEL_INFORMATION, SRP_DBG_DEBUG,
_______________________________________________
ofw mailing list
ofw at lists.openfabrics.org
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw
More information about the ofw
mailing list