[ofa-general] [PATCH] OpenSM: update osmeventplugin example for the new TRAP event.
Eli Dorfman (Voltaire)
dorfman.eli at gmail.com
Thu Jan 1 03:22:11 PST 2009
Nicolas Morey Chaisemartin wrote:
> Hello,
>
> I was wondering if there is a doc somewhere with a list of the trap
> codes (for generic traps) and what is stored into the associated
> ib_mad_notice_attr_t structure?
It is documented in the IB spec "14.2.5.1 NOTICES AND TRAPS".
And in management/opensm/include/iba/ib_types.h
> I'm a writing a perf manager plugin for OpenSM (originally based on
> opensmskumme) and I'd like to handle TRAP events.
> The problem is without the list of trap IDs and their meaning, I'm not
> really sure how to handle them, and what to store in the database.
>
> Thanks
>
> Nicolas
> (and by the way Happy New Year to everyone)
>
> Ira Weiny wrote:
>> It turns out that I already was using the "OSM_EVENT_ID_TRAP" in the
>> example
>> plugin.
>>
>> This makes the use work,
>> Ira
>>
>>
>> >From 7b744c38fc2aad67586ade81d65326a139a85681 Mon Sep 17 00:00:00 2001
>> From: Ira Weiny <weiny2 at llnl.gov>
>> Date: Thu, 18 Dec 2008 16:16:37 -0800
>> Subject: [PATCH] OpenSM: update osmeventplugin example for the new
>> TRAP event.
>>
>>
>> Signed-off-by: Ira Weiny <weiny2 at llnl.gov>
>> ---
>> opensm/include/opensm/osm_event_plugin.h | 12 ------------
>> opensm/osmeventplugin/src/osmeventplugin.c | 28
>> ++++++++++++++++++++--------
>> 2 files changed, 20 insertions(+), 20 deletions(-)
>>
>> diff --git a/opensm/include/opensm/osm_event_plugin.h
>> b/opensm/include/opensm/osm_event_plugin.h
>> index 0922c65..41a5810 100644
>> --- a/opensm/include/opensm/osm_event_plugin.h
>> +++ b/opensm/include/opensm/osm_event_plugin.h
>> @@ -131,18 +131,6 @@ typedef struct osm_api_ps_event {
>> } osm_epi_ps_event_t;
>>
>> /**
>> =========================================================================
>> - * Trap events
>> - */
>> -typedef struct osm_epi_trap_event {
>> - osm_epi_port_id_t port_id;
>> - uint8_t type;
>> - uint32_t prod_type;
>> - uint16_t trap_num;
>> - uint16_t issuer_lid;
>> - time_t time;
>> -} osm_epi_trap_event_t;
>> -
>> -/**
>> =========================================================================
>> * Plugin creators should allocate an object of this type
>> * (named OSM_EVENT_PLUGIN_IMPL_NAME)
>> * The version should be set to OSM_EVENT_PLUGIN_INTERFACE_VER
>> diff --git a/opensm/osmeventplugin/src/osmeventplugin.c
>> b/opensm/osmeventplugin/src/osmeventplugin.c
>> index f0781eb..b4d9ce9 100644
>> --- a/opensm/osmeventplugin/src/osmeventplugin.c
>> +++ b/opensm/osmeventplugin/src/osmeventplugin.c
>> @@ -137,13 +137,21 @@ static void handle_port_select(_log_events_t *
>> log, osm_epi_ps_event_t * ps)
>>
>> /**
>> =========================================================================
>> */
>> -static void handle_trap_event(_log_events_t * log,
>> osm_epi_trap_event_t * trap)
>> +static void handle_trap_event(_log_events_t *log,
>> ib_mad_notice_attr_t *p_ntc)
>> {
>> - fprintf(log->log_file,
>> - "Trap event %d from 0x%" PRIx64 " (%s) port %d\n",
>> - trap->trap_num,
>> - trap->port_id.node_guid,
>> - trap->port_id.node_name, trap->port_id.port_num);
>> + if (ib_notice_is_generic(p_ntc)) {
>> + fprintf(log->log_file,
>> + "Generic trap type %d; event %d; from LID 0x%x\n",
>> + ib_notice_get_type(p_ntc),
>> + cl_ntoh16(p_ntc->g_or_v.generic.trap_num),
>> + cl_ntoh16(p_ntc->issuer_lid));
>> + } else {
>> + fprintf(log->log_file,
>> + "Vendor trap type %d; from LID 0x%x\n",
>> + ib_notice_get_type(p_ntc),
>> + cl_ntoh16(p_ntc->issuer_lid));
>> + }
>> +
>> }
>>
>> /**
>> =========================================================================
>> @@ -163,13 +171,17 @@ static void report(void *_log,
>> osm_epi_event_id_t event_id, void *event_data)
>> handle_port_select(log, (osm_epi_ps_event_t *) event_data);
>> break;
>> case OSM_EVENT_ID_TRAP:
>> - handle_trap_event(log, (osm_epi_trap_event_t *) event_data);
>> + handle_trap_event(log, (ib_mad_notice_attr_t *) event_data);
>> + break;
>> + case OSM_EVENT_ID_SUBNET_UP:
>> + fprintf(log->log_file, "Subnet up reported\n");
>> break;
>> case OSM_EVENT_ID_MAX:
>> default:
>> osm_log(log->osmlog, OSM_LOG_ERROR,
>> - "Unknown event reported to plugin\n");
>> + "Unknown event (%d) reported to plugin\n", event_id);
>> }
>> + fflush(log->log_file);
>> }
>>
>> /**
>> =========================================================================
>>
>
> _______________________________________________
> general mailing list
> general at lists.openfabrics.org
> http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general
>
> To unsubscribe, please visit
> http://openib.org/mailman/listinfo/openib-general
More information about the general
mailing list