From a34de2ef34a0b0faae5eb3116fe05b63373e174d Mon Sep 17 00:00:00 2001 From: tzachid Date: Sun, 14 Dec 2008 02:47:22 +0000 Subject: [PATCH] [IPoIB]: Fill in service level in MAC_TO_PATH output. signed off by: Fab Tillier [ftillier@windows.microsoft.com] git-svn-id: svn://openib.tc.cornell.edu/gen1@1788 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86 --- trunk/core/al/al_mad.c | 21 +++++++++++++++++++ trunk/ulp/ipoib/kernel/ipoib_port.c | 32 +++++++++++++++++++---------- 2 files changed, 42 insertions(+), 11 deletions(-) diff --git a/trunk/core/al/al_mad.c b/trunk/core/al/al_mad.c index 77641f33..5d52cfc1 100644 --- a/trunk/core/al/al_mad.c +++ b/trunk/core/al/al_mad.c @@ -1542,6 +1542,16 @@ __create_send_av( p_mad_element = h_send->p_send_mad; + AL_PRINT( TRACE_LEVEL_INFORMATION, AL_DBG_MAD_SVC, + ("class %d attr %d AV attr: port num %d, sl %d, dlid %d, path bits %d", + p_mad_element->p_mad_buf->mgmt_class, + p_mad_element->p_mad_buf->attr_id, + h_mad_svc->port_num, + p_mad_element->remote_sl, + p_mad_element->remote_lid, + p_mad_element->path_bits) + ); + av_attr.port_num = h_mad_svc->port_num; av_attr.sl = p_mad_element->remote_sl; @@ -1549,7 +1559,18 @@ __create_send_av( av_attr.grh_valid = p_mad_element->grh_valid; if( av_attr.grh_valid ) + { av_attr.grh = *p_mad_element->p_grh; + AL_PRINT( TRACE_LEVEL_INFORMATION, AL_DBG_MAD_SVC, + ("ver_class_flow %08x, hop lmt %d, src gid %16I64x%16I64x, dest gid %16I64x%16I64x", + av_attr.grh.ver_class_flow, + av_attr.grh.hop_limit, + cl_ntoh64( av_attr.grh.src_gid.unicast.prefix ), + cl_ntoh64( av_attr.grh.src_gid.unicast.interface_id ), + cl_ntoh64( av_attr.grh.dest_gid.unicast.prefix ), + cl_ntoh64( av_attr.grh.dest_gid.unicast.interface_id )) + ); + } av_attr.static_rate = IB_PATH_RECORD_RATE_10_GBS; av_attr.path_bits = p_mad_element->path_bits; diff --git a/trunk/ulp/ipoib/kernel/ipoib_port.c b/trunk/ulp/ipoib/kernel/ipoib_port.c index 21031b1e..3e075cce 100644 --- a/trunk/ulp/ipoib/kernel/ipoib_port.c +++ b/trunk/ulp/ipoib/kernel/ipoib_port.c @@ -4752,6 +4752,7 @@ ipoib_mac_to_path( uint8_t sl; net32_t flow_lbl; uint8_t hop_limit; + uint8_t pkt_life; IPOIB_ENTER( IPOIB_DBG_ENDPT ); @@ -4798,20 +4799,29 @@ ipoib_mac_to_path( &flow_lbl, &hop_limit ); - ib_path_rec_set_hop_flow_raw( p_path, hop_limit, flow_lbl, FALSE ); - p_path->tclass = p_port->ib_mgr.bcast_rec.tclass; - p_path->num_path = 1; - p_path->pkey = p_port->ib_mgr.bcast_rec.pkey; - p_path->mtu = p_port->ib_mgr.bcast_rec.mtu; - p_path->rate = p_port->ib_mgr.bcast_rec.rate; if( p_path->slid == p_path->dlid ) - p_path->pkt_life = 0; + pkt_life = 0; else - p_path->pkt_life = p_port->ib_mgr.bcast_rec.pkt_life; - p_path->preference = 0; - p_path->resv1 = 0; - p_path->resv2 = 0; + pkt_life = p_port->ib_mgr.bcast_rec.pkt_life; + + ib_path_rec_init_local( + p_path, + &p_endpt->dgid, + &p_port->p_local_endpt->dgid, + p_endpt->dlid, + p_port->p_local_endpt->dlid, + 1, + p_port->ib_mgr.bcast_rec.pkey, + sl, + 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, + 0 ); + + /* Set global routing information. */ + ib_path_rec_set_hop_flow_raw( p_path, hop_limit, flow_lbl, FALSE ); + p_path->tclass = p_port->ib_mgr.bcast_rec.tclass; cl_obj_unlock( &p_port->obj ); -- 2.41.0