Signed-off-by: Hal Rosenstock <[email protected]> --- diff --git a/opensm/opensm/osm_trap_rcv.c b/opensm/opensm/osm_trap_rcv.c index bf39926..925cb27 100644 --- a/opensm/opensm/osm_trap_rcv.c +++ b/opensm/opensm/osm_trap_rcv.c @@ -2,6 +2,7 @@ * Copyright (c) 2004-2008 Voltaire, Inc. All rights reserved. * Copyright (c) 2002-2006 Mellanox Technologies LTD. All rights reserved. * Copyright (c) 1996-2003 Intel Corporation. All rights reserved. + * Copyright (c) 2009 HNR Consulting. 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 @@ -546,42 +547,47 @@ trap_rcv_process_request(IN osm_sm_t * sm, } } - /* Check for node description update. IB Spec v1.2.1 pg 823 */ - if (p_ntci->data_details.ntc_144.local_changes & TRAP_144_MASK_OTHER_LOCAL_CHANGES && - p_ntci->data_details.ntc_144.change_flgs & TRAP_144_MASK_NODE_DESCRIPTION_CHANGE) { - OSM_LOG(sm->p_log, OSM_LOG_INFO, "Trap 144 Node description update\n"); - - if (p_physp) { - CL_PLOCK_ACQUIRE(sm->p_lock); - osm_req_get_node_desc(sm, p_physp); - CL_PLOCK_RELEASE(sm->p_lock); - } else { - OSM_LOG(sm->p_log, OSM_LOG_ERROR, - "ERR 3812: No physical port found for " - "trap 144: \"node description update\"\n"); + if (ib_notice_is_generic(p_ntci)) { + /* Check for node description update. IB Spec v1.2.1 pg 823 */ + if (cl_ntoh16(p_ntci->g_or_v.generic.trap_num) == 144) { + if (p_ntci->data_details.ntc_144.local_changes & TRAP_144_MASK_OTHER_LOCAL_CHANGES && + p_ntci->data_details.ntc_144.change_flgs & TRAP_144_MASK_NODE_DESCRIPTION_CHANGE) { + OSM_LOG(sm->p_log, OSM_LOG_INFO, + "Trap 144 Node description update\n"); + + if (p_physp) { + CL_PLOCK_ACQUIRE(sm->p_lock); + osm_req_get_node_desc(sm, p_physp); + CL_PLOCK_RELEASE(sm->p_lock); + } else + OSM_LOG(sm->p_log, OSM_LOG_ERROR, + "ERR 3812: No physical port found for " + "trap 144: \"node description update\"\n"); + } } - } - /* do a sweep if we received a trap */ - if (sm->p_subn->opt.sweep_on_trap) { - /* if this is trap number 128 or run_heavy_sweep is TRUE - - update the force_heavy_sweep flag of the subnet. - Sweep also on traps 144/145 - these traps signal a change of - certain port capabilities/system image guid. - TODO: In the future this can be changed to just getting - PortInfo on this port instead of sweeping the entire subnet. */ - if (ib_notice_is_generic(p_ntci) && - (cl_ntoh16(p_ntci->g_or_v.generic.trap_num) == 128 || - cl_ntoh16(p_ntci->g_or_v.generic.trap_num) == 144 || - cl_ntoh16(p_ntci->g_or_v.generic.trap_num) == 145 || - run_heavy_sweep)) { - OSM_LOG(sm->p_log, OSM_LOG_VERBOSE, - "Forcing heavy sweep. Received trap:%u\n", - cl_ntoh16(p_ntci->g_or_v.generic.trap_num)); + /* do a sweep if we received a trap */ + if (sm->p_subn->opt.sweep_on_trap) { + /* if this is trap number 128 or run_heavy_sweep is + TRUE - update the force_heavy_sweep flag of the + subnet. Also, sweep also on traps 144/145 - + these traps signal a change of certain port + capabilities/system image guid. + TODO: In the future this can be changed to just + getting PortInfo on this port instead of sweeping + the entire subnet. */ + if (cl_ntoh16(p_ntci->g_or_v.generic.trap_num) == 128 || + cl_ntoh16(p_ntci->g_or_v.generic.trap_num) == 144 || + cl_ntoh16(p_ntci->g_or_v.generic.trap_num) == 145 || + run_heavy_sweep) { + OSM_LOG(sm->p_log, OSM_LOG_VERBOSE, + "Forcing heavy sweep. Received trap:%u\n", + cl_ntoh16(p_ntci->g_or_v.generic.trap_num)); - sm->p_subn->force_heavy_sweep = TRUE; + sm->p_subn->force_heavy_sweep = TRUE; + } + osm_sm_signal(sm, OSM_SIGNAL_SWEEP); } - osm_sm_signal(sm, OSM_SIGNAL_SWEEP); } /* If we reached here due to trap 129/130/131 - do not need to do _______________________________________________ general mailing list [email protected] http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general
To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
