You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(70) |
Jun
(57) |
Jul
(72) |
Aug
(111) |
Sep
(59) |
Oct
(38) |
Nov
(65) |
Dec
(104) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(48) |
Feb
(27) |
Mar
(3) |
Apr
(4) |
May
(36) |
Jun
(21) |
Jul
(7) |
Aug
(25) |
Sep
(33) |
Oct
(24) |
Nov
(27) |
Dec
(19) |
2008 |
Jan
(26) |
Feb
(22) |
Mar
(66) |
Apr
(65) |
May
(28) |
Jun
(5) |
Jul
(26) |
Aug
(5) |
Sep
(6) |
Oct
(25) |
Nov
(17) |
Dec
(6) |
2009 |
Jan
(20) |
Feb
(20) |
Mar
(5) |
Apr
(31) |
May
(6) |
Jun
(4) |
Jul
|
Aug
(3) |
Sep
(2) |
Oct
(6) |
Nov
(8) |
Dec
(2) |
2010 |
Jan
(7) |
Feb
(6) |
Mar
(16) |
Apr
(10) |
May
(11) |
Jun
(37) |
Jul
(14) |
Aug
(5) |
Sep
(9) |
Oct
(10) |
Nov
(25) |
Dec
(55) |
2011 |
Jan
(29) |
Feb
(24) |
Mar
(6) |
Apr
(9) |
May
(16) |
Jun
(19) |
Jul
(4) |
Aug
(4) |
Sep
(15) |
Oct
(15) |
Nov
(8) |
Dec
(4) |
2012 |
Jan
(8) |
Feb
(1) |
Mar
(11) |
Apr
(16) |
May
(25) |
Jun
(28) |
Jul
(10) |
Aug
(25) |
Sep
(5) |
Oct
(5) |
Nov
(1) |
Dec
(1) |
2013 |
Jan
(1) |
Feb
|
Mar
(3) |
Apr
(2) |
May
(14) |
Jun
(3) |
Jul
(5) |
Aug
(4) |
Sep
(3) |
Oct
(4) |
Nov
(7) |
Dec
(4) |
2014 |
Jan
(1) |
Feb
(3) |
Mar
|
Apr
(2) |
May
|
Jun
(3) |
Jul
(5) |
Aug
(2) |
Sep
(10) |
Oct
(11) |
Nov
(2) |
Dec
(1) |
2015 |
Jan
(2) |
Feb
(2) |
Mar
(2) |
Apr
(4) |
May
(4) |
Jun
(6) |
Jul
(13) |
Aug
(12) |
Sep
(7) |
Oct
|
Nov
|
Dec
|
2016 |
Jan
|
Feb
|
Mar
|
Apr
(5) |
May
(1) |
Jun
|
Jul
|
Aug
(2) |
Sep
(3) |
Oct
|
Nov
|
Dec
|
2017 |
Jan
|
Feb
|
Mar
|
Apr
(16) |
May
(16) |
Jun
(6) |
Jul
(3) |
Aug
|
Sep
(1) |
Oct
(5) |
Nov
(1) |
Dec
(4) |
2018 |
Jan
(15) |
Feb
(6) |
Mar
(9) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <re...@us...> - 2006-06-06 02:11:40
|
Revision: 5854 Author: renierm Date: 2006-06-04 21:20:33 -0700 (Sun, 04 Jun 2006) ViewCVS: http://svn.sourceforge.net/openhpi/?rev=5854&view=rev Log Message: ----------- Updating htdocs makefile to use svn commands Modified Paths: -------------- www/trunk/htdocs/Makefile Modified: www/trunk/htdocs/Makefile =================================================================== --- www/trunk/htdocs/Makefile 2006-06-05 04:19:36 UTC (rev 5853) +++ www/trunk/htdocs/Makefile 2006-06-05 04:20:33 UTC (rev 5854) @@ -25,8 +25,8 @@ $(CHMODD) uptodate: - cvs up -dP - cvs ci + svn up + svn ci $(SDIR)/$(SPROG): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <re...@us...> - 2006-06-06 02:11:38
|
Revision: 5853 Author: renierm Date: 2006-06-04 21:19:36 -0700 (Sun, 04 Jun 2006) ViewCVS: http://svn.sourceforge.net/openhpi/?rev=5853&view=rev Log Message: ----------- Updating HPI MIB link to SVN repository source Modified Paths: -------------- www/trunk/htdocs/sidebar.html Modified: www/trunk/htdocs/sidebar.html =================================================================== --- www/trunk/htdocs/sidebar.html 2006-06-04 06:54:12 UTC (rev 5852) +++ www/trunk/htdocs/sidebar.html 2006-06-05 04:19:36 UTC (rev 5853) @@ -42,7 +42,7 @@ <li><a href="http://openhpi.sourceforge.net/subagent-manual/book1.html">SNMP Subagent Manual</a></li> <li><a href="http://openhpi.sourceforge.net/test_spec/book1.html">Conformance Test</a></li> <li><a href="http://openhpi.sourceforge.net/func_test/book1.html">Functional Test</a></li> - <li><a href="http://cvs.sourceforge.net/viewcvs.py/openhpi/openhpi-subagent/mib/hpi-mib.mib?rev=HEAD">HPI MIB</a></li> + <li><a href="https://svn.sourceforge.net/svnroot/openhpi/snmp-subagent/trunk/mib/HPI-B0101-MIB.mib">HPI MIB</a></li> </ul> </div> <div class="navsegment"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <re...@us...> - 2006-06-06 01:49:38
|
Revision: 5852 Author: renierm Date: 2006-06-03 23:54:12 -0700 (Sat, 03 Jun 2006) ViewCVS: http://svn.sourceforge.net/openhpi/?rev=5852&view=rev Log Message: ----------- Merging changes from trunk 5831:5851 Modified Paths: -------------- openhpi/branches/renier-experimental/hpi_ui_lib/show.c openhpi/branches/renier-experimental/plugins/ipmi/ipmi_control_event.c openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc.c openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc.h openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_control.c openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_discover.c openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_discover.h openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_discover_bc.c openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_discover_bc.h openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_discover_rsa.c openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_event.c openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_event.map openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_inventory.c openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_power.c openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_reset.c openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_resources.c openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_resources.h openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_resources_rsa.c openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_sensor.c openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_sensor.h openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_utils.c openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_utils.h openhpi/branches/renier-experimental/utils/epath_utils.c openhpi/branches/renier-experimental/utils/epath_utils.h openhpi/branches/renier-experimental/utils/t/epath/ep_derive_001.c Modified: openhpi/branches/renier-experimental/hpi_ui_lib/show.c =================================================================== --- openhpi/branches/renier-experimental/hpi_ui_lib/show.c 2006-06-03 20:19:01 UTC (rev 5851) +++ openhpi/branches/renier-experimental/hpi_ui_lib/show.c 2006-06-04 06:54:12 UTC (rev 5852) @@ -27,6 +27,21 @@ extern SaErrorT decode1_proc(int num, int val, char *buf, int bufsize); extern SaErrorT thres_value(SaHpiSensorReadingT *item, char *buf, int size); +static int is_ATCA(SaHpiSessionIdT sessionid, SaHpiResourceIdT resourceid) +{ + SaHpiRptEntryT rpt_entry; + SaHpiEntityPathT *path; + int i; + + if (saHpiRptEntryGetByResourceId(sessionid, resourceid, &rpt_entry) != SA_OK) + return(0); + path = &(rpt_entry.ResourceEntity); + for (i = 0; i < SAHPI_MAX_ENTITY_PATH; i++) + if (path->Entry[i].EntityType == SAHPI_ENT_ADVANCEDTCA_CHASSIS) + return(1); + return(0); +} + SaErrorT sensor_list(SaHpiSessionIdT sessionid, hpi_ui_print_cb_t proc) { SaErrorT rv = SA_OK; @@ -350,9 +365,15 @@ return SA_OK; case SAHPI_CTRL_TYPE_OEM: oem = &(state.StateUnion.Oem); - snprintf(buf, SHOW_BUF_SZ, "MId = %d Body = ", oem->MId); + str = (char *)(oem->Body); + if (is_ATCA(sessionid, resourceid) && + (oem->MId == ATCAHPI_PICMG_MID)) + snprintf(buf, SHOW_BUF_SZ, + "MId = %d Color = %s Body = ", + oem->MId, oh_lookup_atcahpiledcolor(str[2])); + else + snprintf(buf, SHOW_BUF_SZ, "MId = %d Body = ", oem->MId); proc(buf); - str = (char *)(oem->Body); for (i = 0; i < oem->BodyLength; i++) sprintf(buf + i * 3, "%2.2X ", (unsigned char)(str[i])); strcat(buf, "\n"); Modified: openhpi/branches/renier-experimental/plugins/ipmi/ipmi_control_event.c =================================================================== --- openhpi/branches/renier-experimental/plugins/ipmi/ipmi_control_event.c 2006-06-03 20:19:01 UTC (rev 5851) +++ openhpi/branches/renier-experimental/plugins/ipmi/ipmi_control_event.c 2006-06-04 06:54:12 UTC (rev 5852) @@ -67,17 +67,17 @@ { switch (ipmi_color) { case IPMI_CONTROL_COLOR_WHITE: - return ATCAHPI_LED_WHITE; + return ATCAHPI_LED_COLOR_WHITE; case IPMI_CONTROL_COLOR_RED: - return ATCAHPI_LED_RED; + return ATCAHPI_LED_COLOR_RED; case IPMI_CONTROL_COLOR_GREEN: - return ATCAHPI_LED_GREEN; + return ATCAHPI_LED_COLOR_GREEN; case IPMI_CONTROL_COLOR_BLUE: - return ATCAHPI_LED_BLUE; + return ATCAHPI_LED_COLOR_BLUE; case IPMI_CONTROL_COLOR_YELLOW: - return ATCAHPI_LED_AMBER; + return ATCAHPI_LED_COLOR_AMBER; case IPMI_CONTROL_COLOR_ORANGE: - return ATCAHPI_LED_ORANGE; + return ATCAHPI_LED_COLOR_ORANGE; default: dbg("strange color %d, return WHITE", ipmi_color); return ATCAHPI_LED_WHITE; @@ -87,17 +87,17 @@ int ohoi_atca_led_to_ipmi_color(SaHpiUint8T c) { switch (c) { - case ATCAHPI_LED_WHITE: + case ATCAHPI_LED_COLOR_WHITE: return IPMI_CONTROL_COLOR_WHITE; - case ATCAHPI_LED_ORANGE: + case ATCAHPI_LED_COLOR_ORANGE: return IPMI_CONTROL_COLOR_ORANGE; - case ATCAHPI_LED_AMBER: + case ATCAHPI_LED_COLOR_AMBER: return IPMI_CONTROL_COLOR_YELLOW; - case ATCAHPI_LED_GREEN: + case ATCAHPI_LED_COLOR_GREEN: return IPMI_CONTROL_COLOR_GREEN; - case ATCAHPI_LED_RED: + case ATCAHPI_LED_COLOR_RED: return IPMI_CONTROL_COLOR_RED; - case ATCAHPI_LED_BLUE: + case ATCAHPI_LED_COLOR_BLUE: return IPMI_CONTROL_COLOR_BLUE; default: return 0; Modified: openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc.c =================================================================== --- openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc.c 2006-06-03 20:19:01 UTC (rev 5851) +++ openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc.c 2006-06-04 06:54:12 UTC (rev 5852) @@ -244,6 +244,7 @@ * snmp_bc_snmp_get: * @custom_handle: Plugin's data pointer. * @objid: SNMP OID. + * loc_offset: Offset to add to location in entity path * @value: Location to store returned SNMP value. * @retry: retry is requested on snmp timeout * @@ -317,6 +318,7 @@ * @custom_handle: Plugin's data pointer. * @ep: Entity path of the resource * @oidstr: raw SNMP OID. + * loc_offset: Offset to add to location in entity path * @value: Location to store returned SNMP value. * @retry: Retry requested on snmp timeout * @@ -331,15 +333,17 @@ * SA_OK - Normal case. **/ SaErrorT snmp_bc_oid_snmp_get(struct snmp_bc_hnd *custom_handle, - SaHpiEntityPathT *ep, const gchar *oidstr, - struct snmp_value *value, SaHpiBoolT retry) + SaHpiEntityPathT *ep, + SaHpiEntityLocationT loc_offset, + const gchar *oidstr, + struct snmp_value *value, SaHpiBoolT retry) { SaErrorT rv; gchar *oid; rv = SA_OK; - oid = oh_derive_string(ep, oidstr); + oid = oh_derive_string(ep, loc_offset, oidstr); if (oid == NULL) { dbg("Cannot derive %s.", oidstr); return(SA_ERR_HPI_INTERNAL_ERROR); @@ -397,6 +401,7 @@ * @custom_handle: Plugin's data pointer. * @ep: Entity path of the resource * @oidstr: raw SNMP OID. + * loc_offset: Offset to add to location in entity path * @value: SNMP value to set. * * Plugin wrapper for SNMP set call. If SNMP command times out, @@ -410,14 +415,16 @@ * SA_OK - Normal case. **/ SaErrorT snmp_bc_oid_snmp_set(struct snmp_bc_hnd *custom_handle, - SaHpiEntityPathT *ep, const gchar *oidstr, - struct snmp_value value) + SaHpiEntityPathT *ep, + SaHpiEntityLocationT loc_offset, + const gchar *oidstr, + struct snmp_value value) { SaErrorT rv; gchar *oid; rv = SA_OK; - oid = oh_derive_string(ep , oidstr); + oid = oh_derive_string(ep, loc_offset, oidstr); if (oid == NULL) { dbg("NULL SNMP OID returned for %s.", oidstr); return(SA_ERR_HPI_INTERNAL_ERROR); Modified: openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc.h =================================================================== --- openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc.h 2006-06-03 20:19:01 UTC (rev 5851) +++ openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc.h 2006-06-04 06:54:12 UTC (rev 5852) @@ -1,11 +1,11 @@ /* -*- linux-c -*- * - * (C) Copyright IBM Corp. 2003, 2005, 2006 + * (C) Copyright IBM Corp. 2003, 2006 * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This - * file and program are licensed under a BSD style license. See + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This + * file and program are licensed under a BSD style license. See * the Copying file included with the OpenHPI distribution for * full licensing terms. * @@ -45,10 +45,10 @@ RPTable *tmpcache; GSList *tmpqueue; ohpi_bc_lock snmp_bc_hlock; - guint max_pb_supported; /* pb - processor blade */ - guint max_blower_supported; /* blower - fan/blower */ - guint max_pm_supported; /* pm - power module */ - guint max_sm_supported; /* sm - switch module */ + guint max_pb_supported; /* pb - processor blade */ + guint max_blower_supported; /* blower - fan/blower */ + guint max_pm_supported; /* pm - power module */ + guint max_sm_supported; /* sm - i/o module */ guint max_mm_supported; /* mm - management module */ guint max_mt_supported; /* mt - media tray */ gchar installed_pb_mask[SNMP_BC_MAX_RESOURCES_MASK]; @@ -67,6 +67,7 @@ SaErrorT snmp_bc_oid_snmp_get(struct snmp_bc_hnd *custom_handle, SaHpiEntityPathT *ep, + SaHpiEntityLocationT loc_offset, const gchar *oidstr, struct snmp_value *value, SaHpiBoolT retry); @@ -77,6 +78,7 @@ SaErrorT snmp_bc_oid_snmp_set(struct snmp_bc_hnd *custom_handle, SaHpiEntityPathT *ep, + SaHpiEntityLocationT loc_offset, const gchar *oidstr, struct snmp_value value); @@ -88,12 +90,10 @@ SaHpiTextBufferT *tag); SaErrorT snmp_bc_set_resource_severity(void *hnd, - SaHpiResourceIdT rid, - SaHpiSeverityT sev); + SaHpiResourceIdT rid, + SaHpiSeverityT sev); SaErrorT snmp_bc_control_parm(void *hnd, - SaHpiResourceIdT rid, - SaHpiParmActionT act); - - + SaHpiResourceIdT rid, + SaHpiParmActionT act); #endif Modified: openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_control.c =================================================================== --- openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_control.c 2006-06-03 20:19:01 UTC (rev 5851) +++ openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_control.c 2006-06-04 06:54:12 UTC (rev 5852) @@ -113,7 +113,8 @@ /* Find control's state */ working_state.Type = rdr->RdrTypeUnion.CtrlRec.Type; - err = snmp_bc_oid_snmp_get(custom_handle, &(rdr->Entity), cinfo->mib.oid, &get_value, SAHPI_TRUE); + err = snmp_bc_oid_snmp_get(custom_handle, &(rdr->Entity), cinfo->mib.loc_offset, + cinfo->mib.oid, &get_value, SAHPI_TRUE); if (err || get_value.type != ASN_INTEGER) { dbg("Cannot read SNMP OID=%s; Type=%d.", cinfo->mib.oid, get_value.type); snmp_bc_unlock_handler(custom_handle); @@ -313,7 +314,8 @@ set_value.str_len = 1; set_value.integer = value; - err = snmp_bc_oid_snmp_set(custom_handle, &(rdr->Entity), cinfo->mib.oid, set_value); + err = snmp_bc_oid_snmp_set(custom_handle, &(rdr->Entity), cinfo->mib.loc_offset, + cinfo->mib.oid, set_value); if (err) { dbg("Cannot set SNMP OID=%s; Value=%d.", cinfo->mib.oid, (int)set_value.integer); @@ -326,7 +328,8 @@ set_value.str_len = 1; set_value.integer = state->StateUnion.Discrete; - err = snmp_bc_oid_snmp_set(custom_handle, &(rdr->Entity), cinfo->mib.oid, set_value); + err = snmp_bc_oid_snmp_set(custom_handle, &(rdr->Entity), cinfo->mib.loc_offset, + cinfo->mib.oid, set_value); if (err) { dbg("Cannot set SNMP OID=%s; Value=%d.", cinfo->mib.oid, (int)set_value.integer); Modified: openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_discover.c =================================================================== --- openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_discover.c 2006-06-03 20:19:01 UTC (rev 5851) +++ openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_discover.c 2006-06-04 06:54:12 UTC (rev 5852) @@ -310,6 +310,7 @@ if (sensor_array[i].sensor_info.mib.oid != NULL) { valid_sensor = rdr_exists(custom_handle, &(res_oh_event->u.res_event.entry.ResourceEntity), + sensor_array[i].sensor_info.mib.loc_offset, sensor_array[i].sensor_info.mib.oid, sensor_array[i].sensor_info.mib.not_avail_indicator_num, sensor_array[i].sensor_info.mib.write_only); @@ -395,6 +396,7 @@ valid_control = rdr_exists(custom_handle, &(res_oh_event->u.res_event.entry.ResourceEntity), + control_array[i].control_info.mib.loc_offset, control_array[i].control_info.mib.oid, control_array[i].control_info.mib.not_avail_indicator_num, control_array[i].control_info.mib.write_only); @@ -468,9 +470,9 @@ } valid_idr = rdr_exists(custom_handle, - &(res_oh_event->u.res_event.entry.ResourceEntity), - inventory_array[i].inventory_info.mib.oid.OidManufacturer, - 0, 0); + &(res_oh_event->u.res_event.entry.ResourceEntity), 0, + inventory_array[i].inventory_info.mib.oid.OidManufacturer, + 0, 0); /* Add inventory RDR, if inventory can be read */ if (valid_idr) { @@ -559,8 +561,10 @@ /** * rdr_exists: - * @ss: Pointer to SNMP session. - * @oid: SNMP OID string + * @custom_handle: Custom handler data pointer. + * @ep: Pointer to Entity Path + * @loc_offset: Entity Path location offset + * @oidstr: SNMP OID string * @na: Not available integer, if applicable * @write-only: SNMP OID write-only indicator * @@ -572,17 +576,18 @@ * SAHPI_FALSE - if OID's value cannot be read. **/ SaHpiBoolT rdr_exists(struct snmp_bc_hnd *custom_handle, - SaHpiEntityPathT *ep, - const gchar *oidstr, - unsigned int na, - SaHpiBoolT write_only) + SaHpiEntityPathT *ep, + SaHpiEntityLocationT loc_offset, + const gchar *oidstr, + unsigned int na, + SaHpiBoolT write_only) { SaErrorT err; struct snmp_value get_value; if (write_only == SAHPI_TRUE) { return(SAHPI_FALSE); }; /* Can't check it if its non-readable */ - err = snmp_bc_oid_snmp_get(custom_handle, ep, oidstr, &get_value, SAHPI_TRUE); + err = snmp_bc_oid_snmp_get(custom_handle, ep, loc_offset, oidstr, &get_value, SAHPI_TRUE); if (err || (get_value.type == ASN_INTEGER && na && na == get_value.integer)) { return(SAHPI_FALSE); } @@ -739,5 +744,3 @@ void * oh_discover_resources (void *) __attribute__ ((weak, alias("snmp_bc_discover_resources"))); - - Modified: openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_discover.h =================================================================== --- openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_discover.h 2006-06-03 20:19:01 UTC (rev 5851) +++ openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_discover.h 2006-06-04 06:54:12 UTC (rev 5852) @@ -1,11 +1,11 @@ /* -*- linux-c -*- * - * (C) Copyright IBM Corp. 2004, 2005, 2006 + * (C) Copyright IBM Corp. 2004, 2006 * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This - * file and program are licensed under a BSD style license. See + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This + * file and program are licensed under a BSD style license. See * the Copying file included with the OpenHPI distribution for * full licensing terms. * @@ -25,8 +25,8 @@ SaHpiEntityPathT *ep_root); SaErrorT snmp_bc_rediscover(struct oh_handler_state *handle, - SaHpiEventT *event, - LogSource2ResourceT *logsrc2res); + SaHpiEventT *event, + LogSource2ResourceT *logsrc2res); SaErrorT snmp_bc_discover_sensors(struct oh_handler_state *handle, struct snmp_bc_sensor *sensor_array, @@ -45,41 +45,51 @@ SaHpiEntityLocationT location); SaHpiBoolT rdr_exists(struct snmp_bc_hnd *custom_handle, - SaHpiEntityPathT *ep, - const gchar *oidstr, - unsigned int na, - SaHpiBoolT write_only); + SaHpiEntityPathT *ep, + SaHpiEntityLocationT loc_offset, + const gchar *oidstr, + unsigned int na, + SaHpiBoolT write_only); SaErrorT snmp_bc_validate_ep(SaHpiEntityPathT *org_ep, - SaHpiEntityPathT *val_ep); + SaHpiEntityPathT *val_ep); SaErrorT snmp_bc_mod_sensor_ep(struct oh_event *e, - void *sensor_array, - int index); + void *sensor_array, + int index); SaErrorT snmp_bc_add_ep(struct oh_event *e, SaHpiEntityPathT *ep_add); SaErrorT snmp_bc_discover_media_tray(struct oh_handler_state *handle, - SaHpiEntityPathT *ep_root, int media_tray_installed); + SaHpiEntityPathT *ep_root, int media_tray_installed); SaErrorT snmp_bc_discover_chassis(struct oh_handler_state *handle, - SaHpiEntityPathT *ep_root); + SaHpiEntityPathT *ep_root); SaErrorT snmp_bc_discover_blade(struct oh_handler_state *handle, - SaHpiEntityPathT *ep_root, char *blade_vector); + SaHpiEntityPathT *ep_root, char *blade_vector); SaErrorT snmp_bc_discover_fans(struct oh_handler_state *handle, - SaHpiEntityPathT *ep_root, char *fan_vector); + SaHpiEntityPathT *ep_root, char *fan_vector); SaErrorT snmp_bc_discover_power_module(struct oh_handler_state *handle, - SaHpiEntityPathT *ep_root, char *power_module_vector); + SaHpiEntityPathT *ep_root, char *power_module_vector); SaErrorT snmp_bc_discover_switch(struct oh_handler_state *handle, - SaHpiEntityPathT *ep_root, char *switch_vector); + SaHpiEntityPathT *ep_root, char *switch_vector); SaErrorT snmp_bc_discover_mm(struct oh_handler_state *handle, - SaHpiEntityPathT *ep_root, char *mm_vector); + SaHpiEntityPathT *ep_root, char *mm_vector); SaErrorT snmp_bc_update_chassis_topo(struct oh_handler_state *handle); + +SaErrorT snmp_bc_discover_all_slots(struct oh_handler_state *handle, + SaHpiEntityPathT *ep_root); + +SaErrorT snmp_bc_discover_slot(struct oh_handler_state *handle, + SaHpiEntityPathT *ep_root, + SaHpiEntityTypeT entitytype, + guint entitylocation); + #endif Modified: openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_discover_bc.c =================================================================== --- openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_discover_bc.c 2006-06-03 20:19:01 UTC (rev 5851) +++ openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_discover_bc.c 2006-06-04 06:54:12 UTC (rev 5852) @@ -512,6 +512,16 @@ ******************************/ err = snmp_bc_discover_chassis(handle, ep_root); if (err != SA_OK) return(err); + + /****************************** + * Discover ALL BladeCenter Slots + * Warning: + * Discovery of Physical Slots must come **before** discovery of sloted resources. + * Discovery of slots sets Slot State Sensor to empty. + * Subsequent resource discovery changes state of Slot State Sensor accordingly. + ******************************/ + err = snmp_bc_discover_all_slots(handle, ep_root); + if (err != SA_OK) return(err); /***************** * Discover Blades @@ -626,7 +636,9 @@ { SaErrorT err; + guint mt_width; struct oh_event *e; + struct snmp_value get_value; struct ResourceInfo *res_info_ptr; struct snmp_bc_hnd *custom_handle; @@ -704,6 +716,18 @@ snmp_bc_discover_sensors(handle, snmp_bc_mediatray_sensors, e); snmp_bc_discover_controls(handle, snmp_bc_mediatray_controls, e); snmp_bc_discover_inventories(handle, snmp_bc_mediatray_inventories, e); + + mt_width = 1; /* Default to 1-wide */ + if (res_info_ptr->mib.OidResourceWidth != NULL) { + err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), 0, + res_info_ptr->mib.OidResourceWidth, &get_value, SAHPI_TRUE); + if (!err && (get_value.type == ASN_INTEGER)) { + mt_width = get_value.integer; + } + } + + err = snmp_bc_set_resource_slot_state_sensor(handle, e, mt_width); + } return(SA_OK); @@ -851,6 +875,7 @@ int i; SaErrorT err; + guint blade_width; struct oh_event *e; struct snmp_value get_value, get_blade_resourcetag; struct ResourceInfo *res_info_ptr; @@ -913,9 +938,9 @@ while(1) { err = snmp_bc_oid_snmp_get(custom_handle, - &(e->u.res_event.entry.ResourceEntity), - snmp_bc_rpt_array[BC_RPT_ENTRY_BLADE].OidResourceTag, - &get_blade_resourcetag, SAHPI_TRUE); + &(e->u.res_event.entry.ResourceEntity), 0, + snmp_bc_rpt_array[BC_RPT_ENTRY_BLADE].OidResourceTag, + &get_blade_resourcetag, SAHPI_TRUE); if ( (get_blade_resourcetag.type == ASN_OCTET_STR) && ( strncmp(get_blade_resourcetag.string, LOG_DISCOVERING, sizeof(LOG_DISCOVERING)) == 0 ) ) @@ -942,7 +967,7 @@ res_info_ptr->cur_state = SAHPI_HS_STATE_ACTIVE; /* Default to ACTIVE */ if (res_info_ptr->mib.OidPowerState != NULL) { /* Read power state of resource */ - err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), + err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), 0, res_info_ptr->mib.OidPowerState, &get_value, SAHPI_TRUE); if (!err && (get_value.type == ASN_INTEGER)) { if (get_value.integer == 0) /* state = SAHPI_POWER_OFF */ @@ -971,6 +996,16 @@ snmp_bc_discover_controls(handle, snmp_bc_blade_controls, e); snmp_bc_discover_inventories(handle, snmp_bc_blade_inventories, e); + blade_width = 1; /* Default to 1-wide blade */ + if (res_info_ptr->mib.OidResourceWidth != NULL) { + err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), 0, + res_info_ptr->mib.OidResourceWidth, &get_value, SAHPI_TRUE); + if (!err && (get_value.type == ASN_INTEGER)) { + blade_width = get_value.integer; + } + } + + err = snmp_bc_set_resource_slot_state_sensor(handle, e, blade_width); /********************************** * Discover Blade Expansion Modules **********************************/ @@ -984,7 +1019,8 @@ oh_set_ep_location(&ep, SAHPI_ENT_SBC_BLADE, i + SNMP_BC_HPI_LOCATION_BASE); - err = snmp_bc_oid_snmp_get(custom_handle, &ep, SNMP_BC_BLADE_EXPANSION_VECTOR, &get_value, SAHPI_TRUE); + err = snmp_bc_oid_snmp_get(custom_handle, &ep, 0, + SNMP_BC_BLADE_EXPANSION_VECTOR, &get_value, SAHPI_TRUE); if (!err && get_value.integer != 0) { @@ -1064,9 +1100,11 @@ SaHpiEntityPathT *ep_root, char *fan_vector) { - int i; + guint i; + guint fan_width; SaErrorT err; struct oh_event *e; + struct snmp_value get_value; struct ResourceInfo *res_info_ptr; struct snmp_bc_hnd *custom_handle; @@ -1151,8 +1189,23 @@ /* Find resource's events, sensors, controls, etc. */ snmp_bc_discover_res_events(handle, &(e->u.res_event.entry.ResourceEntity), res_info_ptr); snmp_bc_discover_sensors(handle, snmp_bc_fan_sensors, e); + if (custom_handle->platform == SNMP_BC_PLATFORM_BCH) { + snmp_bc_discover_sensors(handle, snmp_bc_fan_sensors_bch, e); + } snmp_bc_discover_controls(handle, snmp_bc_fan_controls, e); snmp_bc_discover_inventories(handle, snmp_bc_fan_inventories, e); + + fan_width = 1; /* Default to 1-wide blade */ + if (res_info_ptr->mib.OidResourceWidth != NULL) { + err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), 0, + res_info_ptr->mib.OidResourceWidth, &get_value, SAHPI_TRUE); + if (!err && (get_value.type == ASN_INTEGER)) { + fan_width = get_value.integer; + } + } + + err = snmp_bc_set_resource_slot_state_sensor(handle, e, fan_width); + } } return(SA_OK); @@ -1176,8 +1229,10 @@ { int i; + guint pm_width; SaErrorT err; struct oh_event *e; + struct snmp_value get_value; struct ResourceInfo *res_info_ptr; struct snmp_bc_hnd *custom_handle; @@ -1268,6 +1323,18 @@ snmp_bc_discover_controls(handle, snmp_bc_power_controls, e); snmp_bc_discover_inventories(handle, snmp_bc_power_inventories, e); + + pm_width = 1; /* Default to 1-wide */ + if (res_info_ptr->mib.OidResourceWidth != NULL) { + err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), 0, + res_info_ptr->mib.OidResourceWidth, &get_value, SAHPI_TRUE); + if (!err && (get_value.type == ASN_INTEGER)) { + pm_width = get_value.integer; + } + } + + err = snmp_bc_set_resource_slot_state_sensor(handle, e, pm_width); + } } return(SA_OK); @@ -1291,6 +1358,7 @@ { int i; + guint sw_width; SaErrorT err; struct oh_event *e; struct ResourceInfo *res_info_ptr; @@ -1361,7 +1429,7 @@ res_info_ptr->cur_state = SAHPI_HS_STATE_ACTIVE; /* Default to ACTIVE */ if (res_info_ptr->mib.OidPowerState != NULL) { /* Read power state of resource */ - err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), + err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), 0, res_info_ptr->mib.OidPowerState, &get_value, SAHPI_TRUE); if (!err && (get_value.type == ASN_INTEGER)) { if (get_value.integer == 0) /* state = SAHPI_POWER_OFF */ @@ -1388,6 +1456,18 @@ snmp_bc_discover_sensors(handle, snmp_bc_switch_sensors, e); snmp_bc_discover_controls(handle, snmp_bc_switch_controls, e); snmp_bc_discover_inventories(handle, snmp_bc_switch_inventories, e); + + sw_width = 1; /* Default to 1-wide */ + if (res_info_ptr->mib.OidResourceWidth != NULL) { + err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), 0, + res_info_ptr->mib.OidResourceWidth, &get_value, SAHPI_TRUE); + if (!err && (get_value.type == ASN_INTEGER)) { + sw_width = get_value.integer; + } + } + + err = snmp_bc_set_resource_slot_state_sensor(handle, e, sw_width); + } } return(SA_OK); @@ -1411,6 +1491,7 @@ { int i; + guint mm_width; SaErrorT err; struct oh_event *e; struct snmp_value get_value, get_active; @@ -1482,7 +1563,7 @@ snmp_bc_discover_res_events(handle, &(e->u.res_event.entry.ResourceEntity), res_info_ptr); snmp_bc_discover_sensors(handle, snmp_bc_virtual_mgmnt_sensors, e); snmp_bc_discover_controls(handle, snmp_bc_virtual_mgmnt_controls, e); - snmp_bc_discover_inventories(handle, snmp_bc_virtual_mgmnt_inventories, e); + snmp_bc_discover_inventories(handle, snmp_bc_virtual_mgmnt_inventories, e); } /* Discover Physical MM */ @@ -1567,6 +1648,17 @@ snmp_bc_discover_sensors(handle, snmp_bc_mgmnt_sensors, e); snmp_bc_discover_controls(handle, snmp_bc_mgmnt_controls, e); snmp_bc_discover_inventories(handle, snmp_bc_mgmnt_inventories, e); + + mm_width = 1; /* Default to 1-wide */ + if (res_info_ptr->mib.OidResourceWidth != NULL) { + err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), 0, + res_info_ptr->mib.OidResourceWidth, &get_value, SAHPI_TRUE); + if (!err && (get_value.type == ASN_INTEGER)) { + mm_width = get_value.integer; + } + } + err = snmp_bc_set_resource_slot_state_sensor(handle, e, mm_width); + } } return(SA_OK); @@ -1600,7 +1692,7 @@ /* Check if this is an IPMI blade */ err = snmp_bc_oid_snmp_get(custom_handle, - &(res_oh_event->u.res_event.entry.ResourceEntity), + &(res_oh_event->u.res_event.entry.ResourceEntity), 0, SNMP_BC_IPMI_TEMP_BLADE_OID, &get_value, SAHPI_FALSE); if (err || get_value.type != ASN_INTEGER) { @@ -1627,7 +1719,7 @@ /* Find blade's defined temperature IPMI sensors */ for (i=0; i<SNMP_BC_MAX_IPMI_TEMP_SENSORS; i++) { err = snmp_bc_oid_snmp_get(custom_handle, - &(res_oh_event->u.res_event.entry.ResourceEntity), + &(res_oh_event->u.res_event.entry.ResourceEntity), 0, snmp_bc_ipmi_sensors_temp[i].oid, &get_value, SAHPI_FALSE); if (!err) { char *hash_existing_key, *hash_value; @@ -1676,7 +1768,7 @@ /* Find blade's voltage IPMI sensors */ for (i=0; i<SNMP_BC_MAX_IPMI_VOLTAGE_SENSORS; i++) { err = snmp_bc_oid_snmp_get(custom_handle, - &(res_oh_event->u.res_event.entry.ResourceEntity), + &(res_oh_event->u.res_event.entry.ResourceEntity), 0, snmp_bc_ipmi_sensors_voltage[i].oid, &get_value, SAHPI_FALSE); if (!err) { char *hash_existing_key, *hash_value; @@ -1878,6 +1970,7 @@ handle->eventq = g_slist_append(handle->eventq, e); } else { dbg("Out of memory."); } + err = snmp_bc_reset_resource_slot_state_sensor(handle, res); oh_remove_resource(handle->rptcache, res->ResourceId); } else dbg("No valid resource at hand. Could not remove resource."); @@ -2127,3 +2220,184 @@ } return(SA_OK); } + +/** + * snmp_bc_discover_all_slots + * @handler: Pointer to handler's data. + * @ep_root: Pointer to chassis Root Entity Path which comes from openhpi.conf. + * + * Discovers all BladeCenter physical slots. + * + * Return values: + * SA_OK - normal case. + * SA_ERR_HPI_OUT_OF_SPACE - Cannot allocate space for internal memory. + * SA_ERR_HPI_INVALID_PARAMS - Pointer parameter(s) NULL. + **/ +SaErrorT snmp_bc_discover_all_slots(struct oh_handler_state *handle, + SaHpiEntityPathT *ep_root) +{ + + guint i; + SaErrorT err; + struct snmp_bc_hnd *custom_handle; + + if (!handle || !ep_root) { + dbg("Invalid parameter."); + return(SA_ERR_HPI_INVALID_PARAMS); + } + + custom_handle = (struct snmp_bc_hnd *)handle->data; + if (!custom_handle) { + dbg("Invalid parameter."); + return(SA_ERR_HPI_INVALID_PARAMS); + } + + for (i = 0; i < custom_handle->max_pb_supported; i++) { + err = snmp_bc_discover_slot(handle, ep_root, SAHPI_ENT_PHYSICAL_SLOT,i); + } + + for (i = 0; i < custom_handle->max_blower_supported; i++) { + err = snmp_bc_discover_slot(handle, ep_root, BLADECENTER_FAN_SLOT,i); + } + for (i = 0; i < custom_handle->max_pm_supported; i++) { + err = snmp_bc_discover_slot(handle, ep_root, BLADECENTER_POWER_SUPPLY_SLOT,i); + } + + for (i = 0; i < custom_handle->max_sm_supported; i++) { + err = snmp_bc_discover_slot(handle, ep_root, BLADECENTER_INTERCONNECT_SLOT,i); + } + + for (i = 0; i < custom_handle->max_mm_supported; i++) { + err = snmp_bc_discover_slot(handle, ep_root, BLADECENTER_SYS_MGMNT_MODULE_SLOT,i); + } + + for (i = 0; i < custom_handle->max_mt_supported; i++) { + err = snmp_bc_discover_slot(handle, ep_root, BLADECENTER_PERIPHERAL_BAY_SLOT,i); + } + + return(SA_OK); +} + +/** + * snmp_bc_discovery_slot: + * @handler: Pointer to handler's data. + * @ep_root: Pointer to chassis Root Entity Path which comes from openhpi.conf. + * @entitytype: Resource type of the slot. + * @entitylocation: Slot location of the resource. + * + * Discovers slot resources and their RDRs. + * + * Return values: + * SA_OK - normal case. + * SA_ERR_HPI_OUT_OF_SPACE - Cannot allocate space for internal memory. + * SA_ERR_HPI_INVALID_PARAMS - Pointer parameter(s) NULL. + **/ +SaErrorT snmp_bc_discover_slot( struct oh_handler_state *handle, + SaHpiEntityPathT *ep_root, + SaHpiEntityTypeT entitytype, + guint entitylocation) +{ + + SaErrorT err; + char *comment; + struct oh_event *e; + struct snmp_bc_hnd *custom_handle; + struct ResourceInfo *res_info_ptr; + + if (!handle) { + dbg("Invalid parameter."); + return(SA_ERR_HPI_INVALID_PARAMS); + } + + custom_handle = (struct snmp_bc_hnd *)handle->data; + if (!custom_handle) { + dbg("Invalid parameter."); + return(SA_ERR_HPI_INVALID_PARAMS); + } + + e = NULL; + res_info_ptr = NULL; + + e = (struct oh_event *)g_malloc0(sizeof(struct oh_event)); + if (e == NULL) { + dbg("Out of memory."); + return(SA_ERR_HPI_OUT_OF_SPACE); + } + + e->type = OH_ET_RESOURCE; + e->did = oh_get_default_domain_id(); + e->u.res_event.entry = snmp_bc_rpt_array[BC_RPT_ENTRY_PHYSICAL_SLOT].rpt; + oh_concat_ep(&(e->u.res_event.entry.ResourceEntity), ep_root); + oh_set_ep_location(&(e->u.res_event.entry.ResourceEntity), + SAHPI_ENT_CHASSIS_SPECIFIC, entitylocation + SNMP_BC_HPI_LOCATION_BASE); + + + switch (entitytype) { + case SAHPI_ENT_PHYSICAL_SLOT: + e->u.res_event.entry.ResourceEntity.Entry[0].EntityType = SAHPI_ENT_PHYSICAL_SLOT; + comment = BC_PHYSICAL_SLOT; + break; + + case BLADECENTER_INTERCONNECT_SLOT: + e->u.res_event.entry.ResourceEntity.Entry[0].EntityType = BLADECENTER_INTERCONNECT_SLOT; + comment = BC_INTERCONNECT_SLOT; + break; + + case BLADECENTER_POWER_SUPPLY_SLOT: + e->u.res_event.entry.ResourceEntity.Entry[0].EntityType = BLADECENTER_POWER_SUPPLY_SLOT; + comment = BC_POWER_SUPPLY_SLOT; + break; + + case BLADECENTER_PERIPHERAL_BAY_SLOT: + e->u.res_event.entry.ResourceEntity.Entry[0].EntityType = BLADECENTER_PERIPHERAL_BAY_SLOT; + comment = BC_PERIPHERAL_BAY_SLOT; + break; + + case BLADECENTER_SYS_MGMNT_MODULE_SLOT: + e->u.res_event.entry.ResourceEntity.Entry[0].EntityType = BLADECENTER_SYS_MGMNT_MODULE_SLOT; + comment = BC_SYS_MGMNT_MODULE_SLOT; + break; + + case BLADECENTER_FAN_SLOT: + e->u.res_event.entry.ResourceEntity.Entry[0].EntityType = BLADECENTER_FAN_SLOT; + comment = BC_FAN_SLOT; + break; + + default: + dbg("Invalid slot resource type\n"); + return(SA_ERR_HPI_INVALID_PARAMS); + } + + + e->u.res_event.entry.ResourceId = + oh_uid_from_entity_path(&(e->u.res_event.entry.ResourceEntity)); + + snmp_bc_create_resourcetag(&(e->u.res_event.entry.ResourceTag), + comment, + entitylocation + SNMP_BC_HPI_LOCATION_BASE); + + res_info_ptr = g_memdup(&(snmp_bc_rpt_array[BC_RPT_ENTRY_PHYSICAL_SLOT].res_info), + sizeof(struct ResourceInfo)); + if (!res_info_ptr) { + dbg("Out of memory."); + g_free(e); + return(SA_ERR_HPI_OUT_OF_SPACE); + } + + err = oh_add_resource(custom_handle->tmpcache, + &(e->u.res_event.entry), + res_info_ptr, 0); + if (err) { + dbg("Failed to add resource. Error=%s.", oh_lookup_error(err)); + g_free(e); + return(err); + } + + custom_handle->tmpqueue = g_slist_append(custom_handle->tmpqueue, e); + snmp_bc_discover_res_events(handle, &(e->u.res_event.entry.ResourceEntity), res_info_ptr); + snmp_bc_discover_sensors(handle, snmp_bc_slot_sensors, e); + snmp_bc_discover_controls(handle, snmp_bc_slot_controls, e); + snmp_bc_discover_inventories(handle, snmp_bc_slot_inventories, e); + + return(SA_OK); +} Modified: openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_discover_bc.h =================================================================== --- openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_discover_bc.h 2006-06-03 20:19:01 UTC (rev 5851) +++ openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_discover_bc.h 2006-06-04 06:54:12 UTC (rev 5852) @@ -32,6 +32,8 @@ } \ } while(0) +#define get_string_object(maskOID, getvalue) get_installed_mask(maskOID, getvalue) + #define get_integer_object(maskOID, getintvalue) \ do { \ err = snmp_bc_snmp_get(custom_handle, maskOID, &getintvalue, SAHPI_TRUE); \ Modified: openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_discover_rsa.c =================================================================== --- openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_discover_rsa.c 2006-06-03 20:19:01 UTC (rev 5851) +++ openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_discover_rsa.c 2006-06-04 06:54:12 UTC (rev 5852) @@ -1,11 +1,11 @@ /* -*- linux-c -*- * - * (C) Copyright IBM Corp. 2004, 2005 + * (C) Copyright IBM Corp. 2004, 2006 * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This - * file and program are licensed under a BSD style license. See + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This + * file and program are licensed under a BSD style license. See * the Copying file included with the OpenHPI distribution for * full licensing terms. * @@ -118,7 +118,7 @@ SAHPI_ENT_PROCESSOR, i + SNMP_BC_HPI_LOCATION_BASE); /* See if CPU exists */ - if (!rdr_exists(custom_handle, &(e->u.res_event.entry.ResourceEntity), + if (!rdr_exists(custom_handle, &(e->u.res_event.entry.ResourceEntity), 0, SNMP_BC_CPU_OID_RSA, 0, 0 )) { g_free(e); continue; @@ -183,7 +183,7 @@ SAHPI_ENT_DISK_BAY, i + SNMP_BC_HPI_LOCATION_BASE); /* See if DASD exists */ - if (!rdr_exists(custom_handle, &(e->u.res_event.entry.ResourceEntity), + if (!rdr_exists(custom_handle, &(e->u.res_event.entry.ResourceEntity), 0, SNMP_BC_DASD_OID_RSA, 0, 0 )) { g_free(e); continue; @@ -248,7 +248,7 @@ SAHPI_ENT_FAN, i + SNMP_BC_HPI_LOCATION_BASE); /* See if fan exists */ - if (!rdr_exists(custom_handle, &(e->u.res_event.entry.ResourceEntity), + if (!rdr_exists(custom_handle, &(e->u.res_event.entry.ResourceEntity), 0, SNMP_BC_FAN_OID_RSA, 0, 0 )) { g_free(e); continue; Modified: openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_event.c =================================================================== --- openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_event.c 2006-06-03 20:19:01 UTC (rev 5851) +++ openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_event.c 2006-06-04 06:54:12 UTC (rev 5852) @@ -179,9 +179,9 @@ max = SNMP_BC_MAX_RESOURCE_EVENT_ARRAY_SIZE; for (i=0; resinfo->event_array[i].event != NULL && i < max; i++) { /* Normalized and convert event string */ - normalized_str = oh_derive_string(ep, resinfo->event_array[i].event); + normalized_str = oh_derive_string(ep, 0, resinfo->event_array[i].event); if (normalized_str == NULL) { - dbg(">>> Cannot derive %s.\n", resinfo->event_array[i].event); + dbg(">>> Cannot derive %s.", resinfo->event_array[i].event); return(SA_ERR_HPI_INTERNAL_ERROR); } @@ -276,7 +276,7 @@ for (i=0; sinfo->sensor_info.event_array[i].event != NULL && i < max; i++) { /* Normalized and convert event string */ - normalized_str = oh_derive_string(ep, sinfo->sensor_info.event_array[i].event); + normalized_str = oh_derive_string(ep, 0, sinfo->sensor_info.event_array[i].event); if (normalized_str == NULL) { dbg("Cannot derive %s.", sinfo->sensor_info.event_array[i].event); return(SA_ERR_HPI_INTERNAL_ERROR); @@ -790,7 +790,7 @@ /* Search entire sensor array for the duplicate string's event */ for (i=0; (logsrc2res->sensor_array_ptr + i)->sensor.Num != 0; i++) { for (j=0; (logsrc2res->sensor_array_ptr + i)->sensor_info.event_array[j].event != NULL; j++) { - normalized_event = oh_derive_string(&(logsrc2res->ep), + normalized_event = oh_derive_string(&(logsrc2res->ep), 0, (logsrc2res->sensor_array_ptr + i)->sensor_info.event_array[j].event); if (!strcmp(dupstr_hash_data->event, normalized_event)) { @@ -803,7 +803,7 @@ /* Search resource array for the duplicate string's event */ for (i=0; snmp_bc_rpt_array[logsrc2res->rpt].res_info.event_array[i].event != NULL; i++) { - normalized_event = oh_derive_string(&(logsrc2res->ep), + normalized_event = oh_derive_string(&(logsrc2res->ep), 0, snmp_bc_rpt_array[logsrc2res->rpt].res_info.event_array[i].event); if (!strcmp(dupstr_hash_data->event, normalized_event)) { g_free(normalized_event); Modified: openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_event.map =================================================================== --- openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_event.map 2006-06-03 20:19:01 UTC (rev 5851) +++ openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_event.map 2006-06-04 06:54:12 UTC (rev 5852) @@ -691,6 +691,10 @@ EN_FAULT_PS3_TEMP_WARN|0x0821C003|SAHPI_MAJOR|OVR_SEV,OVR_RID|"Power Supply 3 Temperature Warning" EN_FAULT_PS4_TEMP_WARN|0x0821C004|SAHPI_MAJOR|OVR_SEV,OVR_RID|"Power Supply 4 Temperature Warning" +# Power Module Fan Pack Average Speed (Percent of Max) Sensor + +# Power Module Fan Pack Average RPM Speed Sensor + ########################################### # Remote System Adapter (RSA) Unique Events ########################################### Modified: openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_inventory.c =================================================================== --- openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_inventory.c 2006-06-03 20:19:01 UTC (rev 5851) +++ openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_inventory.c 2006-06-04 06:54:12 UTC (rev 5852) @@ -1,35 +1,33 @@ /* -*- linux-c -*- * - * (C) Copyright IBM Corp. 2003, 2005 + * (C) Copyright IBM Corp. 2003, 2006 * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This - * file and program are licensed under a BSD style license. See + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This + * file and program are licensed under a BSD style license. See * the Copying file included with the OpenHPI distribution for * full licensing terms. * * Author(s): - * peter d phan <pd...@so...> + * Peter Phan <pd...@so...> * Renier Morales <re...@us...> - * - * 07/19/04 HPI-B Inventory */ #include <snmp_bc_plugin.h> static SaErrorT snmp_bc_build_idr( void *hnd, - SaHpiResourceIdT ResourceId, - SaHpiIdrIdT IdrId, - struct bc_inventory_record *i_record); + SaHpiResourceIdT ResourceId, + SaHpiIdrIdT IdrId, + struct bc_inventory_record *i_record); static SaErrorT snmp_bc_idr_build_field(struct snmp_bc_hnd *custom_handle, - SaHpiEntityPathT *ep, - const gchar *oidstr, - SaHpiIdrFieldT *thisField, - struct bc_idr_area *thisInventoryArea); + SaHpiEntityPathT *ep, + const gchar *oidstr, + SaHpiIdrFieldT *thisField, + struct bc_idr_area *thisInventoryArea); /************************************************************************/ /* Inventory functions */ @@ -70,7 +68,7 @@ i_record = (struct bc_inventory_record *)g_malloc0(sizeof(struct bc_inventory_record)); if (!i_record) { - dbg("Cannot allocate working buffer memory"); + dbg("Cannot allocate memory."); return(SA_ERR_HPI_OUT_OF_MEMORY); } @@ -138,7 +136,7 @@ i_record = (struct bc_inventory_record *)g_malloc0(sizeof(struct bc_inventory_record)); if (!i_record) { - dbg("Cannot allocate working buffer memory"); + dbg("Cannot allocate memory."); return(SA_ERR_HPI_OUT_OF_MEMORY); } @@ -257,7 +255,7 @@ i_record = (struct bc_inventory_record *)g_malloc0(sizeof(struct bc_inventory_record)); if (!i_record) { - dbg("Cannot allocate working buffer memory"); + dbg("Cannot allocate memory."); return(SA_ERR_HPI_OUT_OF_MEMORY); } @@ -305,7 +303,6 @@ return rv; } - /** * snmp_bc_add_idr_field: * @hnd: Pointer to handler's data @@ -326,7 +323,6 @@ return SA_ERR_HPI_READ_ONLY; } - /** * snmp_bc_set_idr_field: * @hnd: Pointer to handler's data @@ -347,7 +343,6 @@ return SA_ERR_HPI_READ_ONLY; } - /** * snmp_bc_del_idr_field: * @hnd: Pointer to handler's data @@ -383,7 +378,6 @@ * SA_OK - Normal * SA_ERR_HPI_INVALID_PARAMS - If any in pointer is NULL * SA_ERR_HPI_NOT_PRESENT - If Inventory RDR is not found in rptcache - * **/ static SaErrorT snmp_bc_build_idr( void *hnd, @@ -442,13 +436,10 @@ rv = snmp_bc_idr_build_field(custom_handle, &valEntity, s->mib.oid.OidChassisType, &thisField, &thisInventoryArea); if (rv != SA_OK) - dbg("Having problem building Chassis Idr Field, continue to next field.\n"); + dbg("Cannot build Chassis Idr Field, continue to next field."); } - /** - * - */ memset(thisField.Field.Data, 0, SAHPI_MAX_TEXT_BUFFER_LENGTH); thisField.FieldId = 2; thisField.Type = SAHPI_IDR_FIELDTYPE_MFG_DATETIME; @@ -460,26 +451,27 @@ strcpy((char *)thisField.Field.Data,"SAHPI_TIME_UNSPECIFIED"); } else { - rv = snmp_bc_oid_snmp_get(custom_handle, &valEntity,s->mib.oid.OidMfgDateTime, &get_value, SAHPI_TRUE); + rv = snmp_bc_oid_snmp_get(custom_handle, &valEntity, 0, + s->mib.oid.OidMfgDateTime, &get_value, SAHPI_TRUE); if(rv != SA_OK) { - dbg("SNMP could not read %s; Type=%d.\n",s->mib.oid.OidMfgDateTime,get_value.type); + dbg("SNMP could not read %s; Type=%d.", + s->mib.oid.OidMfgDateTime, get_value.type); return rv; } else if((rv == SA_OK) && (get_value.type == ASN_OCTET_STR )) { thisField.Field.DataLength = get_value.str_len; thisField.Field.DataType = SAHPI_TL_TYPE_TEXT; memcpy(thisField.Field.Data, get_value.string, get_value.str_len); } else - dbg("%s Invalid type for MfgDateTime inventory data\n",s->mib.oid.OidMfgDateTime); + dbg("%s Invalid type for MfgDateTime inventory data", + s->mib.oid.OidMfgDateTime); } if (thisField.Field.DataLength != 0) { - memcpy(&thisInventoryArea.field[thisInventoryArea.idrareas.NumFields], &thisField, sizeof(SaHpiIdrFieldT)); + memcpy(&thisInventoryArea.field[thisInventoryArea.idrareas.NumFields], + &thisField, sizeof(SaHpiIdrFieldT)); thisInventoryArea.idrareas.NumFields++; } - /** - * - */ thisField.FieldId = 3; thisField.Type = SAHPI_IDR_FIELDTYPE_MANUFACTURER; @@ -487,13 +479,9 @@ rv = snmp_bc_idr_build_field(custom_handle, &valEntity, s->mib.oid.OidManufacturer, &thisField, &thisInventoryArea); if (rv != SA_OK) - dbg("Having problem building ManufacturerId Idr Field, continue to next field.\n"); + dbg("Cannot build ManufacturerId Idr Field, continue to next field."); } - /** - * - */ - thisField.FieldId = 4; thisField.Type = SAHPI_IDR_FIELDTYPE_PRODUCT_NAME; @@ -501,13 +489,9 @@ rv = snmp_bc_idr_build_field(custom_handle, &valEntity, s->mib.oid.OidProductName, &thisField, &thisInventoryArea); if (rv != SA_OK) - dbg("Having problem building ProductName Idr Field, continue to next field.\n"); + dbg("Cannot build ProductName Idr Field, continue to next field."); } - /** - * - */ - thisField.FieldId = 5; thisField.Type = SAHPI_IDR_FIELDTYPE_PRODUCT_VERSION; @@ -515,13 +499,9 @@ rv = snmp_bc_idr_build_field(custom_handle, &valEntity, s->mib.oid.OidProductVersion, &thisField, &thisInventoryArea); if (rv != SA_OK) - dbg("Having problem building ProductVersion Idr Field, continue to next field.\n"); + dbg("Cannot build ProductVersion Idr Field, continue to next field."); } - /** - * - */ - thisField.FieldId = 6; thisField.Type = SAHPI_IDR_FIELDTYPE_SERIAL_NUMBER; @@ -529,13 +509,9 @@ rv = snmp_bc_idr_build_field(custom_handle, &valEntity, s->mib.oid.OidSerialNumber, &thisField, &thisInventoryArea); if (rv != SA_OK) - dbg("Having problem building SerialNumber Idr Field, continue to next field.\n"); + dbg("Cannot build SerialNumber Idr Field, continue to next field."); } - /** - * - */ - thisField.FieldId = 7; thisField.Type = SAHPI_IDR_FIELDTYPE_PART_NUMBER; @@ -543,13 +519,9 @@ rv = snmp_bc_idr_build_field(custom_handle, &valEntity, s->mib.oid.OidPartNumber, &thisField, &thisInventoryArea); if (rv != SA_OK) - dbg("Having problem building PartNumber Idr Field, continue to next field.\n"); + dbg("Cannot build PartNumber Idr Field, continue to next field."); } - /** - * - */ - thisField.FieldId = 8; thisField.Type = SAHPI_IDR_FIELDTYPE_FILE_ID; @@ -557,13 +529,9 @@ rv = snmp_bc_idr_build_field(custom_handle, &valEntity, s->mib.oid.OidFileId, &thisField, &thisInventoryArea); if (rv != SA_OK) - dbg("Having problem building FileID Idr Field, continue to next field.\n"); + dbg("Cannot build FileID Idr Field, continue to next field."); } - /** - * - */ - thisField.FieldId = 9; thisField.Type = SAHPI_IDR_FIELDTYPE_ASSET_TAG; @@ -571,7 +539,7 @@ rv = snmp_bc_idr_build_field(custom_handle, &valEntity, s->mib.oid.OidAssetTag, &thisField, &thisInventoryArea); if (rv != SA_OK) - dbg("Having problem building AssetTag Idr Field, continue ...\n"); + dbg("Cannot build AssetTag Idr Field, continue ..."); } memcpy( &(i_record->area[0]), &thisInventoryArea, sizeof(struct bc_idr_area)); @@ -596,7 +564,6 @@ * SA_OK - Normal * SA_ERR_HPI_INVALID_PARAMS - If any in pointer is NULL * SA_ERR_HPI_INTERNAL_ERROR - If can not process get_value.type from bc snmp agent - * **/ static @@ -613,15 +580,13 @@ return(SA_ERR_HPI_INVALID_PARAMS); rv = SA_OK; - /** - * - */ + memset(thisField->Field.Data, 0, SAHPI_MAX_TEXT_BUFFER_LENGTH); thisField->Field.DataLength = 0; /* SaHpiUint8T */ - rv = snmp_bc_oid_snmp_get(custom_handle, ep, oidstr, &get_value, SAHPI_TRUE); + rv = snmp_bc_oid_snmp_get(custom_handle, ep, 0, oidstr, &get_value, SAHPI_TRUE); if(rv != SA_OK) { - dbg("SNMP could not read %s; Type=%d.\n",oidstr ,get_value.type); + dbg("SNMP could not read %s; Type=%d.", oidstr, get_value.type); return(rv); } else { if( get_value.type == ASN_OCTET_STR ) { @@ -634,13 +599,13 @@ snprintf((char *)thisField->Field.Data, SAHPI_MAX_TEXT_BUFFER_LENGTH, "%ld",get_value.integer ); } else - dbg("%s Invalid data type for Chassis data\n",oidstr); + dbg("%s Invalid data type for Chassis data", oidstr); } if (thisField->Field.DataLength != 0) { memcpy(&thisInventoryArea->field[thisInventoryArea->idrareas.NumFields], - thisField, sizeof(SaHpiIdrFieldT)); + thisField, sizeof(SaHpiIdrFieldT)); thisInventoryArea->idrareas.NumFields++; } @@ -678,5 +643,3 @@ void * oh_del_idr_field (void *, SaHpiResourceIdT, SaHpiIdrIdT, SaHpiEntryIdT, SaHpiEntryIdT) __attribute__ ((weak, alias("snmp_bc_del_idr_field"))); - - Modified: openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_power.c =================================================================== --- openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_power.c 2006-06-03 20:19:01 UTC (rev 5851) +++ openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_power.c 2006-06-04 06:54:12 UTC (rev 5852) @@ -1,11 +1,11 @@ /* -*- linux-c -*- * - * (C) Copyright IBM Corp. 2004, 2005 + * (C) Copyright IBM Corp. 2004, 2006 * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This - * file and program are licensed under a BSD style license. See + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This + * file and program are licensed under a BSD style license. See * the Copying file included with the OpenHPI distribution for * full licensing terms. * @@ -81,7 +81,7 @@ } /* Read power state of resource */ - err = snmp_bc_oid_snmp_get(custom_handle, &(rpt->ResourceEntity), + err = snmp_bc_oid_snmp_get(custom_handle, &(rpt->ResourceEntity), 0, resinfo->mib.OidPowerState, &get_value, SAHPI_TRUE); if (!err && (get_value.type == ASN_INTEGER)) { switch (get_value.integer) { @@ -174,7 +174,7 @@ switch (state) { case SAHPI_POWER_OFF: set_value.integer = 0; - err = snmp_bc_oid_snmp_set(custom_handle, &(rpt->ResourceEntity), + err = snmp_bc_oid_snmp_set(custom_handle, &(rpt->ResourceEntity), 0, resinfo->mib.OidPowerOnOff, set_value); if (err) { dbg("Cannot set SNMP OID=%s; Type=%d.", @@ -184,7 +184,7 @@ break; case SAHPI_POWER_ON: set_value.integer = 1; - err = snmp_bc_oid_snmp_set(custom_handle, &(rpt->ResourceEntity), + err = snmp_bc_oid_snmp_set(custom_handle, &(rpt->ResourceEntity), 0, resinfo->mib.OidPowerOnOff, set_value); if (err) { dbg("Cannot set SNMP OID=%s; Type=%d.", @@ -213,5 +213,3 @@ void * oh_set_power_state (void *, SaHpiResourceIdT, SaHpiPowerStateT) __attribute__ ((weak, alias("snmp_bc_set_power_state"))); - - Modified: openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_reset.c =================================================================== --- openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_reset.c 2006-06-03 20:19:01 UTC (rev 5851) +++ openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_reset.c 2006-06-04 06:54:12 UTC (rev 5852) @@ -1,11 +1,11 @@ /* -*- linux-c -*- * - * (C) Copyright IBM Corp. 2004, 2005 + * (C) Copyright IBM Corp. 2004, 2006 * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This - * file and program are licensed under a BSD style license. See + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This + * file and program are licensed under a BSD style license. See * the Copying file included with the OpenHPI distribution for * full licensing terms. * @@ -148,8 +148,8 @@ set_value.str_len = 1; set_value.integer = 1; - err = snmp_bc_oid_snmp_set(custom_handle, &(rpt->ResourceEntity), - resinfo->mib.OidReset, set_value); + err = snmp_bc_oid_snmp_set(custom_handle, &(rpt->ResourceEntity), 0, + resinfo->mib.OidReset, set_value); if (err) { dbg("Cannot set SNMP OID=%s; Type=%d.", resinfo->mib.OidReset, set_value.type); snmp_bc_unlock_handler(custom_handle); Modified: openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_resources.c =================================================================== --- openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_resources.c 2006-06-03 20:19:01 UTC (rev 5851) +++ openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_resources.c 2006-06-04 06:54:12 UTC (rev 5852) @@ -657,6 +657,49 @@ }, .comment = "Power Module", }, + + /* Slot Resources */ + { + .rpt = { + .ResourceInfo = { + .ManufacturerId = IBM_MANUFACTURING_ID, + }, + .ResourceEntity = { + .Entry[0] = + { + .EntityType = SAHPI_ENT_CHASSIS_SPECIFIC, /* dummy setting - set during discovery */ + .EntityLocation = SNMP_BC_HPI_LOCATION_BASE, + }, + { + .EntityType = SAHPI_ENT_ROOT, + .EntityLocation = 0, + } + }, + + .ResourceCapabilities = SAHPI_CAPABILITY_RESOURCE | + SAHPI_CAPABILITY_RDR | + SAHPI_CAPABILITY_SENSOR, + .ResourceSeverity = SAHPI_MAJOR, + .ResourceFailed = SAHPI_FALSE, + }, + .res_info = { + .mib = { + .OidHealth = '\0', + .HealthyValue = 0, + .OidReset = '\0', + .OidPowerState = '\0', + .OidPowerOnOff = '\0', + .OidUuid = '\0', + .OidResourceWidth = '\0', + }, + .cur_state = SAHPI_HS_STATE_ACTIVE, + .prev_state = SAHPI_HS_STATE_ACTIVE, + .event_array = { + {}, + }, + }, + .comment = "Slot Resource", + }, {} /* Terminate array with a null element */ }; @@ -667,12 +710,17 @@ /************************************************************************* * WARNING - WARNING - WARNING - WARNING - * Most of the .sensor.num are arbitrary assigned. There are 4 hardcoded - * Sensor Numbers: - * SAHPI_DEFAGSENS_OPER - * BLADECENTER_SENSOR_NUM_MGMNT_REDUNDANCY - * BLADECENTER_SENSOR_NUM_MGMNT_ACTIVE - * BLADECENTER_SENSOR_NUM_MGMNT_STANDBY + * Most of the .sensor.num are arbitrary assigned. + * There are 8 hardcoded, specifically assigned Sensor Numbers: + * + * SAHPI_DEFAGSENS_OPER (SaHpiSensorNumT)0x00000100 + * BLADECENTER_SENSOR_NUM_MGMNT_REDUNDANCY (SaHpiSensorNumT) 0x1001 + * BLADECENTER_SENSOR_NUM_MGMNT_ACTIVE (SaHpiSensorNumT) 0x1002 + * BLADECENTER_SENSOR_NUM_MGMNT_STANDBY (SaHpiSensorNumT) 0x1003 + * BLADECENTER_SENSOR_NUM_SLOT_STATE (SaHpiSensorNumT) 0x1010 + * BLADECENTER_SENSOR_NUM_MAX_POWER (SaHpiSensorNumT) 0x1012 + * BLADECENTER_SENSOR_NUM_ASSIGNED_POWER (SaHpiSensorNumT) 0x1011 + * BLADECENTER_SENSOR_NUM_MIN_POWER (SaHpiSensorNumT) 0x1013 *************************************************************************/ /***************** @@ -728,8 +776,10 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = ".1.3.6.1.4.1.2.3.51.2.2.1.5.1.0", + .loc_offset = 0, }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_UPPER_MAJOR | SAHPI_ES_UPPER_CRIT | @@ -835,6 +885,7 @@ }, .sensor_info = { .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_REDUNDANCY_LOST, @@ -874,6 +925,7 @@ }, .sensor_info = { .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_REDUNDANCY_LOST, @@ -929,6 +981,7 @@ }, .sensor_info = { .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_REDUNDANCY_LOST, @@ -968,6 +1021,7 @@ }, .sensor_info = { .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_REDUNDANCY_LOST, @@ -987,11 +1041,153 @@ }, .comment = "Power Domain 2 Redundancy Sensor", ... [truncated message content] |
From: <re...@us...> - 2006-06-03 20:39:30
|
Revision: 5851 Author: renierm Date: 2006-06-03 13:19:01 -0700 (Sat, 03 Jun 2006) ViewCVS: http://svn.sourceforge.net/openhpi/?rev=5851&view=rev Log Message: ----------- Merging changes from trunk -r5841:5850 Modified Paths: -------------- openhpi/branches/2.5.x/hpi_ui_lib/show.c openhpi/branches/2.5.x/plugins/ipmi/ipmi_control_event.c openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc.c openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc.h openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_control.c openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_discover.c openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_discover.h openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_discover_bc.c openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_discover_bc.h openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_discover_rsa.c openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_event.c openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_event.map openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_inventory.c openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_power.c openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_reset.c openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_resources.c openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_resources.h openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_resources_rsa.c openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_sensor.c openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_sensor.h openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_utils.c openhpi/branches/2.5.x/utils/epath_utils.c openhpi/branches/2.5.x/utils/epath_utils.h openhpi/branches/2.5.x/utils/t/epath/ep_derive_001.c Modified: openhpi/branches/2.5.x/hpi_ui_lib/show.c =================================================================== --- openhpi/branches/2.5.x/hpi_ui_lib/show.c 2006-06-02 17:08:23 UTC (rev 5850) +++ openhpi/branches/2.5.x/hpi_ui_lib/show.c 2006-06-03 20:19:01 UTC (rev 5851) @@ -27,6 +27,21 @@ extern SaErrorT decode1_proc(int num, int val, char *buf, int bufsize); extern SaErrorT thres_value(SaHpiSensorReadingT *item, char *buf, int size); +static int is_ATCA(SaHpiSessionIdT sessionid, SaHpiResourceIdT resourceid) +{ + SaHpiRptEntryT rpt_entry; + SaHpiEntityPathT *path; + int i; + + if (saHpiRptEntryGetByResourceId(sessionid, resourceid, &rpt_entry) != SA_OK) + return(0); + path = &(rpt_entry.ResourceEntity); + for (i = 0; i < SAHPI_MAX_ENTITY_PATH; i++) + if (path->Entry[i].EntityType == SAHPI_ENT_ADVANCEDTCA_CHASSIS) + return(1); + return(0); +} + SaErrorT sensor_list(SaHpiSessionIdT sessionid, hpi_ui_print_cb_t proc) { SaErrorT rv = SA_OK; @@ -350,9 +365,15 @@ return SA_OK; case SAHPI_CTRL_TYPE_OEM: oem = &(state.StateUnion.Oem); - snprintf(buf, SHOW_BUF_SZ, "MId = %d Body = ", oem->MId); + str = (char *)(oem->Body); + if (is_ATCA(sessionid, resourceid) && + (oem->MId == ATCAHPI_PICMG_MID)) + snprintf(buf, SHOW_BUF_SZ, + "MId = %d Color = %s Body = ", + oem->MId, oh_lookup_atcahpiledcolor(str[2])); + else + snprintf(buf, SHOW_BUF_SZ, "MId = %d Body = ", oem->MId); proc(buf); - str = (char *)(oem->Body); for (i = 0; i < oem->BodyLength; i++) sprintf(buf + i * 3, "%2.2X ", (unsigned char)(str[i])); strcat(buf, "\n"); Modified: openhpi/branches/2.5.x/plugins/ipmi/ipmi_control_event.c =================================================================== --- openhpi/branches/2.5.x/plugins/ipmi/ipmi_control_event.c 2006-06-02 17:08:23 UTC (rev 5850) +++ openhpi/branches/2.5.x/plugins/ipmi/ipmi_control_event.c 2006-06-03 20:19:01 UTC (rev 5851) @@ -67,17 +67,17 @@ { switch (ipmi_color) { case IPMI_CONTROL_COLOR_WHITE: - return ATCAHPI_LED_WHITE; + return ATCAHPI_LED_COLOR_WHITE; case IPMI_CONTROL_COLOR_RED: - return ATCAHPI_LED_RED; + return ATCAHPI_LED_COLOR_RED; case IPMI_CONTROL_COLOR_GREEN: - return ATCAHPI_LED_GREEN; + return ATCAHPI_LED_COLOR_GREEN; case IPMI_CONTROL_COLOR_BLUE: - return ATCAHPI_LED_BLUE; + return ATCAHPI_LED_COLOR_BLUE; case IPMI_CONTROL_COLOR_YELLOW: - return ATCAHPI_LED_AMBER; + return ATCAHPI_LED_COLOR_AMBER; case IPMI_CONTROL_COLOR_ORANGE: - return ATCAHPI_LED_ORANGE; + return ATCAHPI_LED_COLOR_ORANGE; default: dbg("strange color %d, return WHITE", ipmi_color); return ATCAHPI_LED_WHITE; @@ -87,17 +87,17 @@ int ohoi_atca_led_to_ipmi_color(SaHpiUint8T c) { switch (c) { - case ATCAHPI_LED_WHITE: + case ATCAHPI_LED_COLOR_WHITE: return IPMI_CONTROL_COLOR_WHITE; - case ATCAHPI_LED_ORANGE: + case ATCAHPI_LED_COLOR_ORANGE: return IPMI_CONTROL_COLOR_ORANGE; - case ATCAHPI_LED_AMBER: + case ATCAHPI_LED_COLOR_AMBER: return IPMI_CONTROL_COLOR_YELLOW; - case ATCAHPI_LED_GREEN: + case ATCAHPI_LED_COLOR_GREEN: return IPMI_CONTROL_COLOR_GREEN; - case ATCAHPI_LED_RED: + case ATCAHPI_LED_COLOR_RED: return IPMI_CONTROL_COLOR_RED; - case ATCAHPI_LED_BLUE: + case ATCAHPI_LED_COLOR_BLUE: return IPMI_CONTROL_COLOR_BLUE; default: return 0; Modified: openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc.c =================================================================== --- openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc.c 2006-06-02 17:08:23 UTC (rev 5850) +++ openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc.c 2006-06-03 20:19:01 UTC (rev 5851) @@ -244,6 +244,7 @@ * snmp_bc_snmp_get: * @custom_handle: Plugin's data pointer. * @objid: SNMP OID. + * loc_offset: Offset to add to location in entity path * @value: Location to store returned SNMP value. * @retry: retry is requested on snmp timeout * @@ -317,6 +318,7 @@ * @custom_handle: Plugin's data pointer. * @ep: Entity path of the resource * @oidstr: raw SNMP OID. + * loc_offset: Offset to add to location in entity path * @value: Location to store returned SNMP value. * @retry: Retry requested on snmp timeout * @@ -331,15 +333,17 @@ * SA_OK - Normal case. **/ SaErrorT snmp_bc_oid_snmp_get(struct snmp_bc_hnd *custom_handle, - SaHpiEntityPathT *ep, const gchar *oidstr, - struct snmp_value *value, SaHpiBoolT retry) + SaHpiEntityPathT *ep, + SaHpiEntityLocationT loc_offset, + const gchar *oidstr, + struct snmp_value *value, SaHpiBoolT retry) { SaErrorT rv; gchar *oid; rv = SA_OK; - oid = oh_derive_string(ep, oidstr); + oid = oh_derive_string(ep, loc_offset, oidstr); if (oid == NULL) { dbg("Cannot derive %s.", oidstr); return(SA_ERR_HPI_INTERNAL_ERROR); @@ -397,6 +401,7 @@ * @custom_handle: Plugin's data pointer. * @ep: Entity path of the resource * @oidstr: raw SNMP OID. + * loc_offset: Offset to add to location in entity path * @value: SNMP value to set. * * Plugin wrapper for SNMP set call. If SNMP command times out, @@ -410,14 +415,16 @@ * SA_OK - Normal case. **/ SaErrorT snmp_bc_oid_snmp_set(struct snmp_bc_hnd *custom_handle, - SaHpiEntityPathT *ep, const gchar *oidstr, - struct snmp_value value) + SaHpiEntityPathT *ep, + SaHpiEntityLocationT loc_offset, + const gchar *oidstr, + struct snmp_value value) { SaErrorT rv; gchar *oid; rv = SA_OK; - oid = oh_derive_string(ep , oidstr); + oid = oh_derive_string(ep, loc_offset, oidstr); if (oid == NULL) { dbg("NULL SNMP OID returned for %s.", oidstr); return(SA_ERR_HPI_INTERNAL_ERROR); Modified: openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc.h =================================================================== --- openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc.h 2006-06-02 17:08:23 UTC (rev 5850) +++ openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc.h 2006-06-03 20:19:01 UTC (rev 5851) @@ -1,11 +1,11 @@ /* -*- linux-c -*- * - * (C) Copyright IBM Corp. 2003, 2005, 2006 + * (C) Copyright IBM Corp. 2003, 2006 * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This - * file and program are licensed under a BSD style license. See + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This + * file and program are licensed under a BSD style license. See * the Copying file included with the OpenHPI distribution for * full licensing terms. * @@ -45,10 +45,10 @@ RPTable *tmpcache; GSList *tmpqueue; ohpi_bc_lock snmp_bc_hlock; - guint max_pb_supported; /* pb - processor blade */ - guint max_blower_supported; /* blower - fan/blower */ - guint max_pm_supported; /* pm - power module */ - guint max_sm_supported; /* sm - switch module */ + guint max_pb_supported; /* pb - processor blade */ + guint max_blower_supported; /* blower - fan/blower */ + guint max_pm_supported; /* pm - power module */ + guint max_sm_supported; /* sm - i/o module */ guint max_mm_supported; /* mm - management module */ guint max_mt_supported; /* mt - media tray */ gchar installed_pb_mask[SNMP_BC_MAX_RESOURCES_MASK]; @@ -67,6 +67,7 @@ SaErrorT snmp_bc_oid_snmp_get(struct snmp_bc_hnd *custom_handle, SaHpiEntityPathT *ep, + SaHpiEntityLocationT loc_offset, const gchar *oidstr, struct snmp_value *value, SaHpiBoolT retry); @@ -77,6 +78,7 @@ SaErrorT snmp_bc_oid_snmp_set(struct snmp_bc_hnd *custom_handle, SaHpiEntityPathT *ep, + SaHpiEntityLocationT loc_offset, const gchar *oidstr, struct snmp_value value); @@ -88,12 +90,10 @@ SaHpiTextBufferT *tag); SaErrorT snmp_bc_set_resource_severity(void *hnd, - SaHpiResourceIdT rid, - SaHpiSeverityT sev); + SaHpiResourceIdT rid, + SaHpiSeverityT sev); SaErrorT snmp_bc_control_parm(void *hnd, - SaHpiResourceIdT rid, - SaHpiParmActionT act); - - + SaHpiResourceIdT rid, + SaHpiParmActionT act); #endif Modified: openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_control.c =================================================================== --- openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_control.c 2006-06-02 17:08:23 UTC (rev 5850) +++ openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_control.c 2006-06-03 20:19:01 UTC (rev 5851) @@ -113,7 +113,8 @@ /* Find control's state */ working_state.Type = rdr->RdrTypeUnion.CtrlRec.Type; - err = snmp_bc_oid_snmp_get(custom_handle, &(rdr->Entity), cinfo->mib.oid, &get_value, SAHPI_TRUE); + err = snmp_bc_oid_snmp_get(custom_handle, &(rdr->Entity), cinfo->mib.loc_offset, + cinfo->mib.oid, &get_value, SAHPI_TRUE); if (err || get_value.type != ASN_INTEGER) { dbg("Cannot read SNMP OID=%s; Type=%d.", cinfo->mib.oid, get_value.type); snmp_bc_unlock_handler(custom_handle); @@ -313,7 +314,8 @@ set_value.str_len = 1; set_value.integer = value; - err = snmp_bc_oid_snmp_set(custom_handle, &(rdr->Entity), cinfo->mib.oid, set_value); + err = snmp_bc_oid_snmp_set(custom_handle, &(rdr->Entity), cinfo->mib.loc_offset, + cinfo->mib.oid, set_value); if (err) { dbg("Cannot set SNMP OID=%s; Value=%d.", cinfo->mib.oid, (int)set_value.integer); @@ -326,7 +328,8 @@ set_value.str_len = 1; set_value.integer = state->StateUnion.Discrete; - err = snmp_bc_oid_snmp_set(custom_handle, &(rdr->Entity), cinfo->mib.oid, set_value); + err = snmp_bc_oid_snmp_set(custom_handle, &(rdr->Entity), cinfo->mib.loc_offset, + cinfo->mib.oid, set_value); if (err) { dbg("Cannot set SNMP OID=%s; Value=%d.", cinfo->mib.oid, (int)set_value.integer); Modified: openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_discover.c =================================================================== --- openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_discover.c 2006-06-02 17:08:23 UTC (rev 5850) +++ openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_discover.c 2006-06-03 20:19:01 UTC (rev 5851) @@ -310,6 +310,7 @@ if (sensor_array[i].sensor_info.mib.oid != NULL) { valid_sensor = rdr_exists(custom_handle, &(res_oh_event->u.res_event.entry.ResourceEntity), + sensor_array[i].sensor_info.mib.loc_offset, sensor_array[i].sensor_info.mib.oid, sensor_array[i].sensor_info.mib.not_avail_indicator_num, sensor_array[i].sensor_info.mib.write_only); @@ -395,6 +396,7 @@ valid_control = rdr_exists(custom_handle, &(res_oh_event->u.res_event.entry.ResourceEntity), + control_array[i].control_info.mib.loc_offset, control_array[i].control_info.mib.oid, control_array[i].control_info.mib.not_avail_indicator_num, control_array[i].control_info.mib.write_only); @@ -468,9 +470,9 @@ } valid_idr = rdr_exists(custom_handle, - &(res_oh_event->u.res_event.entry.ResourceEntity), - inventory_array[i].inventory_info.mib.oid.OidManufacturer, - 0, 0); + &(res_oh_event->u.res_event.entry.ResourceEntity), 0, + inventory_array[i].inventory_info.mib.oid.OidManufacturer, + 0, 0); /* Add inventory RDR, if inventory can be read */ if (valid_idr) { @@ -559,8 +561,10 @@ /** * rdr_exists: - * @ss: Pointer to SNMP session. - * @oid: SNMP OID string + * @custom_handle: Custom handler data pointer. + * @ep: Pointer to Entity Path + * @loc_offset: Entity Path location offset + * @oidstr: SNMP OID string * @na: Not available integer, if applicable * @write-only: SNMP OID write-only indicator * @@ -572,17 +576,18 @@ * SAHPI_FALSE - if OID's value cannot be read. **/ SaHpiBoolT rdr_exists(struct snmp_bc_hnd *custom_handle, - SaHpiEntityPathT *ep, - const gchar *oidstr, - unsigned int na, - SaHpiBoolT write_only) + SaHpiEntityPathT *ep, + SaHpiEntityLocationT loc_offset, + const gchar *oidstr, + unsigned int na, + SaHpiBoolT write_only) { SaErrorT err; struct snmp_value get_value; if (write_only == SAHPI_TRUE) { return(SAHPI_FALSE); }; /* Can't check it if its non-readable */ - err = snmp_bc_oid_snmp_get(custom_handle, ep, oidstr, &get_value, SAHPI_TRUE); + err = snmp_bc_oid_snmp_get(custom_handle, ep, loc_offset, oidstr, &get_value, SAHPI_TRUE); if (err || (get_value.type == ASN_INTEGER && na && na == get_value.integer)) { return(SAHPI_FALSE); } @@ -739,5 +744,3 @@ void * oh_discover_resources (void *) __attribute__ ((weak, alias("snmp_bc_discover_resources"))); - - Modified: openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_discover.h =================================================================== --- openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_discover.h 2006-06-02 17:08:23 UTC (rev 5850) +++ openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_discover.h 2006-06-03 20:19:01 UTC (rev 5851) @@ -1,11 +1,11 @@ /* -*- linux-c -*- * - * (C) Copyright IBM Corp. 2004, 2005, 2006 + * (C) Copyright IBM Corp. 2004, 2006 * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This - * file and program are licensed under a BSD style license. See + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This + * file and program are licensed under a BSD style license. See * the Copying file included with the OpenHPI distribution for * full licensing terms. * @@ -25,8 +25,8 @@ SaHpiEntityPathT *ep_root); SaErrorT snmp_bc_rediscover(struct oh_handler_state *handle, - SaHpiEventT *event, - LogSource2ResourceT *logsrc2res); + SaHpiEventT *event, + LogSource2ResourceT *logsrc2res); SaErrorT snmp_bc_discover_sensors(struct oh_handler_state *handle, struct snmp_bc_sensor *sensor_array, @@ -45,50 +45,51 @@ SaHpiEntityLocationT location); SaHpiBoolT rdr_exists(struct snmp_bc_hnd *custom_handle, - SaHpiEntityPathT *ep, - const gchar *oidstr, - unsigned int na, - SaHpiBoolT write_only); + SaHpiEntityPathT *ep, + SaHpiEntityLocationT loc_offset, + const gchar *oidstr, + unsigned int na, + SaHpiBoolT write_only); SaErrorT snmp_bc_validate_ep(SaHpiEntityPathT *org_ep, - SaHpiEntityPathT *val_ep); + SaHpiEntityPathT *val_ep); SaErrorT snmp_bc_mod_sensor_ep(struct oh_event *e, - void *sensor_array, - int index); + void *sensor_array, + int index); SaErrorT snmp_bc_add_ep(struct oh_event *e, SaHpiEntityPathT *ep_add); SaErrorT snmp_bc_discover_media_tray(struct oh_handler_state *handle, - SaHpiEntityPathT *ep_root, int media_tray_installed); + SaHpiEntityPathT *ep_root, int media_tray_installed); SaErrorT snmp_bc_discover_chassis(struct oh_handler_state *handle, - SaHpiEntityPathT *ep_root); + SaHpiEntityPathT *ep_root); SaErrorT snmp_bc_discover_blade(struct oh_handler_state *handle, - SaHpiEntityPathT *ep_root, char *blade_vector); + SaHpiEntityPathT *ep_root, char *blade_vector); SaErrorT snmp_bc_discover_fans(struct oh_handler_state *handle, - SaHpiEntityPathT *ep_root, char *fan_vector); + SaHpiEntityPathT *ep_root, char *fan_vector); SaErrorT snmp_bc_discover_power_module(struct oh_handler_state *handle, - SaHpiEntityPathT *ep_root, char *power_module_vector); + SaHpiEntityPathT *ep_root, char *power_module_vector); SaErrorT snmp_bc_discover_switch(struct oh_handler_state *handle, - SaHpiEntityPathT *ep_root, char *switch_vector); + SaHpiEntityPathT *ep_root, char *switch_vector); SaErrorT snmp_bc_discover_mm(struct oh_handler_state *handle, - SaHpiEntityPathT *ep_root, char *mm_vector); + SaHpiEntityPathT *ep_root, char *mm_vector); SaErrorT snmp_bc_update_chassis_topo(struct oh_handler_state *handle); SaErrorT snmp_bc_discover_all_slots(struct oh_handler_state *handle, SaHpiEntityPathT *ep_root); -SaErrorT snmp_bc_discover_slot( struct oh_handler_state *handle, - SaHpiEntityPathT *ep_root, - SaHpiEntityTypeT entitytype, - guint entitylocation); +SaErrorT snmp_bc_discover_slot(struct oh_handler_state *handle, + SaHpiEntityPathT *ep_root, + SaHpiEntityTypeT entitytype, + guint entitylocation); #endif Modified: openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_discover_bc.c =================================================================== --- openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_discover_bc.c 2006-06-02 17:08:23 UTC (rev 5850) +++ openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_discover_bc.c 2006-06-03 20:19:01 UTC (rev 5851) @@ -719,8 +719,8 @@ mt_width = 1; /* Default to 1-wide */ if (res_info_ptr->mib.OidResourceWidth != NULL) { - err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), - res_info_ptr->mib.OidResourceWidth, &get_value, SAHPI_TRUE); + err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), 0, + res_info_ptr->mib.OidResourceWidth, &get_value, SAHPI_TRUE); if (!err && (get_value.type == ASN_INTEGER)) { mt_width = get_value.integer; } @@ -938,9 +938,9 @@ while(1) { err = snmp_bc_oid_snmp_get(custom_handle, - &(e->u.res_event.entry.ResourceEntity), - snmp_bc_rpt_array[BC_RPT_ENTRY_BLADE].OidResourceTag, - &get_blade_resourcetag, SAHPI_TRUE); + &(e->u.res_event.entry.ResourceEntity), 0, + snmp_bc_rpt_array[BC_RPT_ENTRY_BLADE].OidResourceTag, + &get_blade_resourcetag, SAHPI_TRUE); if ( (get_blade_resourcetag.type == ASN_OCTET_STR) && ( strncmp(get_blade_resourcetag.string, LOG_DISCOVERING, sizeof(LOG_DISCOVERING)) == 0 ) ) @@ -967,7 +967,7 @@ res_info_ptr->cur_state = SAHPI_HS_STATE_ACTIVE; /* Default to ACTIVE */ if (res_info_ptr->mib.OidPowerState != NULL) { /* Read power state of resource */ - err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), + err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), 0, res_info_ptr->mib.OidPowerState, &get_value, SAHPI_TRUE); if (!err && (get_value.type == ASN_INTEGER)) { if (get_value.integer == 0) /* state = SAHPI_POWER_OFF */ @@ -998,7 +998,7 @@ blade_width = 1; /* Default to 1-wide blade */ if (res_info_ptr->mib.OidResourceWidth != NULL) { - err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), + err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), 0, res_info_ptr->mib.OidResourceWidth, &get_value, SAHPI_TRUE); if (!err && (get_value.type == ASN_INTEGER)) { blade_width = get_value.integer; @@ -1019,7 +1019,8 @@ oh_set_ep_location(&ep, SAHPI_ENT_SBC_BLADE, i + SNMP_BC_HPI_LOCATION_BASE); - err = snmp_bc_oid_snmp_get(custom_handle, &ep, SNMP_BC_BLADE_EXPANSION_VECTOR, &get_value, SAHPI_TRUE); + err = snmp_bc_oid_snmp_get(custom_handle, &ep, 0, + SNMP_BC_BLADE_EXPANSION_VECTOR, &get_value, SAHPI_TRUE); if (!err && get_value.integer != 0) { @@ -1188,12 +1189,15 @@ /* Find resource's events, sensors, controls, etc. */ snmp_bc_discover_res_events(handle, &(e->u.res_event.entry.ResourceEntity), res_info_ptr); snmp_bc_discover_sensors(handle, snmp_bc_fan_sensors, e); + if (custom_handle->platform == SNMP_BC_PLATFORM_BCH) { + snmp_bc_discover_sensors(handle, snmp_bc_fan_sensors_bch, e); + } snmp_bc_discover_controls(handle, snmp_bc_fan_controls, e); snmp_bc_discover_inventories(handle, snmp_bc_fan_inventories, e); fan_width = 1; /* Default to 1-wide blade */ if (res_info_ptr->mib.OidResourceWidth != NULL) { - err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), + err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), 0, res_info_ptr->mib.OidResourceWidth, &get_value, SAHPI_TRUE); if (!err && (get_value.type == ASN_INTEGER)) { fan_width = get_value.integer; @@ -1322,7 +1326,7 @@ pm_width = 1; /* Default to 1-wide */ if (res_info_ptr->mib.OidResourceWidth != NULL) { - err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), + err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), 0, res_info_ptr->mib.OidResourceWidth, &get_value, SAHPI_TRUE); if (!err && (get_value.type == ASN_INTEGER)) { pm_width = get_value.integer; @@ -1425,7 +1429,7 @@ res_info_ptr->cur_state = SAHPI_HS_STATE_ACTIVE; /* Default to ACTIVE */ if (res_info_ptr->mib.OidPowerState != NULL) { /* Read power state of resource */ - err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), + err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), 0, res_info_ptr->mib.OidPowerState, &get_value, SAHPI_TRUE); if (!err && (get_value.type == ASN_INTEGER)) { if (get_value.integer == 0) /* state = SAHPI_POWER_OFF */ @@ -1455,7 +1459,7 @@ sw_width = 1; /* Default to 1-wide */ if (res_info_ptr->mib.OidResourceWidth != NULL) { - err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), + err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), 0, res_info_ptr->mib.OidResourceWidth, &get_value, SAHPI_TRUE); if (!err && (get_value.type == ASN_INTEGER)) { sw_width = get_value.integer; @@ -1647,7 +1651,7 @@ mm_width = 1; /* Default to 1-wide */ if (res_info_ptr->mib.OidResourceWidth != NULL) { - err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), + err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), 0, res_info_ptr->mib.OidResourceWidth, &get_value, SAHPI_TRUE); if (!err && (get_value.type == ASN_INTEGER)) { mm_width = get_value.integer; @@ -1688,7 +1692,7 @@ /* Check if this is an IPMI blade */ err = snmp_bc_oid_snmp_get(custom_handle, - &(res_oh_event->u.res_event.entry.ResourceEntity), + &(res_oh_event->u.res_event.entry.ResourceEntity), 0, SNMP_BC_IPMI_TEMP_BLADE_OID, &get_value, SAHPI_FALSE); if (err || get_value.type != ASN_INTEGER) { @@ -1715,7 +1719,7 @@ /* Find blade's defined temperature IPMI sensors */ for (i=0; i<SNMP_BC_MAX_IPMI_TEMP_SENSORS; i++) { err = snmp_bc_oid_snmp_get(custom_handle, - &(res_oh_event->u.res_event.entry.ResourceEntity), + &(res_oh_event->u.res_event.entry.ResourceEntity), 0, snmp_bc_ipmi_sensors_temp[i].oid, &get_value, SAHPI_FALSE); if (!err) { char *hash_existing_key, *hash_value; @@ -1764,7 +1768,7 @@ /* Find blade's voltage IPMI sensors */ for (i=0; i<SNMP_BC_MAX_IPMI_VOLTAGE_SENSORS; i++) { err = snmp_bc_oid_snmp_get(custom_handle, - &(res_oh_event->u.res_event.entry.ResourceEntity), + &(res_oh_event->u.res_event.entry.ResourceEntity), 0, snmp_bc_ipmi_sensors_voltage[i].oid, &get_value, SAHPI_FALSE); if (!err) { char *hash_existing_key, *hash_value; @@ -1966,7 +1970,7 @@ handle->eventq = g_slist_append(handle->eventq, e); } else { dbg("Out of memory."); } - err = snnp_bc_reset_resource_slot_state_sensor(handle, res); + err = snmp_bc_reset_resource_slot_state_sensor(handle, res); oh_remove_resource(handle->rptcache, res->ResourceId); } else dbg("No valid resource at hand. Could not remove resource."); @@ -2397,5 +2401,3 @@ return(SA_OK); } - - Modified: openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_discover_bc.h =================================================================== --- openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_discover_bc.h 2006-06-02 17:08:23 UTC (rev 5850) +++ openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_discover_bc.h 2006-06-03 20:19:01 UTC (rev 5851) @@ -32,6 +32,8 @@ } \ } while(0) +#define get_string_object(maskOID, getvalue) get_installed_mask(maskOID, getvalue) + #define get_integer_object(maskOID, getintvalue) \ do { \ err = snmp_bc_snmp_get(custom_handle, maskOID, &getintvalue, SAHPI_TRUE); \ Modified: openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_discover_rsa.c =================================================================== --- openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_discover_rsa.c 2006-06-02 17:08:23 UTC (rev 5850) +++ openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_discover_rsa.c 2006-06-03 20:19:01 UTC (rev 5851) @@ -1,11 +1,11 @@ /* -*- linux-c -*- * - * (C) Copyright IBM Corp. 2004, 2005 + * (C) Copyright IBM Corp. 2004, 2006 * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This - * file and program are licensed under a BSD style license. See + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This + * file and program are licensed under a BSD style license. See * the Copying file included with the OpenHPI distribution for * full licensing terms. * @@ -118,7 +118,7 @@ SAHPI_ENT_PROCESSOR, i + SNMP_BC_HPI_LOCATION_BASE); /* See if CPU exists */ - if (!rdr_exists(custom_handle, &(e->u.res_event.entry.ResourceEntity), + if (!rdr_exists(custom_handle, &(e->u.res_event.entry.ResourceEntity), 0, SNMP_BC_CPU_OID_RSA, 0, 0 )) { g_free(e); continue; @@ -183,7 +183,7 @@ SAHPI_ENT_DISK_BAY, i + SNMP_BC_HPI_LOCATION_BASE); /* See if DASD exists */ - if (!rdr_exists(custom_handle, &(e->u.res_event.entry.ResourceEntity), + if (!rdr_exists(custom_handle, &(e->u.res_event.entry.ResourceEntity), 0, SNMP_BC_DASD_OID_RSA, 0, 0 )) { g_free(e); continue; @@ -248,7 +248,7 @@ SAHPI_ENT_FAN, i + SNMP_BC_HPI_LOCATION_BASE); /* See if fan exists */ - if (!rdr_exists(custom_handle, &(e->u.res_event.entry.ResourceEntity), + if (!rdr_exists(custom_handle, &(e->u.res_event.entry.ResourceEntity), 0, SNMP_BC_FAN_OID_RSA, 0, 0 )) { g_free(e); continue; Modified: openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_event.c =================================================================== --- openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_event.c 2006-06-02 17:08:23 UTC (rev 5850) +++ openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_event.c 2006-06-03 20:19:01 UTC (rev 5851) @@ -179,9 +179,9 @@ max = SNMP_BC_MAX_RESOURCE_EVENT_ARRAY_SIZE; for (i=0; resinfo->event_array[i].event != NULL && i < max; i++) { /* Normalized and convert event string */ - normalized_str = oh_derive_string(ep, resinfo->event_array[i].event); + normalized_str = oh_derive_string(ep, 0, resinfo->event_array[i].event); if (normalized_str == NULL) { - dbg(">>> Cannot derive %s.\n", resinfo->event_array[i].event); + dbg(">>> Cannot derive %s.", resinfo->event_array[i].event); return(SA_ERR_HPI_INTERNAL_ERROR); } @@ -276,7 +276,7 @@ for (i=0; sinfo->sensor_info.event_array[i].event != NULL && i < max; i++) { /* Normalized and convert event string */ - normalized_str = oh_derive_string(ep, sinfo->sensor_info.event_array[i].event); + normalized_str = oh_derive_string(ep, 0, sinfo->sensor_info.event_array[i].event); if (normalized_str == NULL) { dbg("Cannot derive %s.", sinfo->sensor_info.event_array[i].event); return(SA_ERR_HPI_INTERNAL_ERROR); @@ -790,7 +790,7 @@ /* Search entire sensor array for the duplicate string's event */ for (i=0; (logsrc2res->sensor_array_ptr + i)->sensor.Num != 0; i++) { for (j=0; (logsrc2res->sensor_array_ptr + i)->sensor_info.event_array[j].event != NULL; j++) { - normalized_event = oh_derive_string(&(logsrc2res->ep), + normalized_event = oh_derive_string(&(logsrc2res->ep), 0, (logsrc2res->sensor_array_ptr + i)->sensor_info.event_array[j].event); if (!strcmp(dupstr_hash_data->event, normalized_event)) { @@ -803,7 +803,7 @@ /* Search resource array for the duplicate string's event */ for (i=0; snmp_bc_rpt_array[logsrc2res->rpt].res_info.event_array[i].event != NULL; i++) { - normalized_event = oh_derive_string(&(logsrc2res->ep), + normalized_event = oh_derive_string(&(logsrc2res->ep), 0, snmp_bc_rpt_array[logsrc2res->rpt].res_info.event_array[i].event); if (!strcmp(dupstr_hash_data->event, normalized_event)) { g_free(normalized_event); Modified: openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_event.map =================================================================== --- openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_event.map 2006-06-02 17:08:23 UTC (rev 5850) +++ openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_event.map 2006-06-03 20:19:01 UTC (rev 5851) @@ -691,6 +691,10 @@ EN_FAULT_PS3_TEMP_WARN|0x0821C003|SAHPI_MAJOR|OVR_SEV,OVR_RID|"Power Supply 3 Temperature Warning" EN_FAULT_PS4_TEMP_WARN|0x0821C004|SAHPI_MAJOR|OVR_SEV,OVR_RID|"Power Supply 4 Temperature Warning" +# Power Module Fan Pack Average Speed (Percent of Max) Sensor + +# Power Module Fan Pack Average RPM Speed Sensor + ########################################### # Remote System Adapter (RSA) Unique Events ########################################### Modified: openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_inventory.c =================================================================== --- openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_inventory.c 2006-06-02 17:08:23 UTC (rev 5850) +++ openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_inventory.c 2006-06-03 20:19:01 UTC (rev 5851) @@ -1,35 +1,33 @@ /* -*- linux-c -*- * - * (C) Copyright IBM Corp. 2003, 2005 + * (C) Copyright IBM Corp. 2003, 2006 * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This - * file and program are licensed under a BSD style license. See + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This + * file and program are licensed under a BSD style license. See * the Copying file included with the OpenHPI distribution for * full licensing terms. * * Author(s): - * peter d phan <pd...@so...> + * Peter Phan <pd...@so...> * Renier Morales <re...@us...> - * - * 07/19/04 HPI-B Inventory */ #include <snmp_bc_plugin.h> static SaErrorT snmp_bc_build_idr( void *hnd, - SaHpiResourceIdT ResourceId, - SaHpiIdrIdT IdrId, - struct bc_inventory_record *i_record); + SaHpiResourceIdT ResourceId, + SaHpiIdrIdT IdrId, + struct bc_inventory_record *i_record); static SaErrorT snmp_bc_idr_build_field(struct snmp_bc_hnd *custom_handle, - SaHpiEntityPathT *ep, - const gchar *oidstr, - SaHpiIdrFieldT *thisField, - struct bc_idr_area *thisInventoryArea); + SaHpiEntityPathT *ep, + const gchar *oidstr, + SaHpiIdrFieldT *thisField, + struct bc_idr_area *thisInventoryArea); /************************************************************************/ /* Inventory functions */ @@ -70,7 +68,7 @@ i_record = (struct bc_inventory_record *)g_malloc0(sizeof(struct bc_inventory_record)); if (!i_record) { - dbg("Cannot allocate working buffer memory"); + dbg("Cannot allocate memory."); return(SA_ERR_HPI_OUT_OF_MEMORY); } @@ -138,7 +136,7 @@ i_record = (struct bc_inventory_record *)g_malloc0(sizeof(struct bc_inventory_record)); if (!i_record) { - dbg("Cannot allocate working buffer memory"); + dbg("Cannot allocate memory."); return(SA_ERR_HPI_OUT_OF_MEMORY); } @@ -257,7 +255,7 @@ i_record = (struct bc_inventory_record *)g_malloc0(sizeof(struct bc_inventory_record)); if (!i_record) { - dbg("Cannot allocate working buffer memory"); + dbg("Cannot allocate memory."); return(SA_ERR_HPI_OUT_OF_MEMORY); } @@ -305,7 +303,6 @@ return rv; } - /** * snmp_bc_add_idr_field: * @hnd: Pointer to handler's data @@ -326,7 +323,6 @@ return SA_ERR_HPI_READ_ONLY; } - /** * snmp_bc_set_idr_field: * @hnd: Pointer to handler's data @@ -347,7 +343,6 @@ return SA_ERR_HPI_READ_ONLY; } - /** * snmp_bc_del_idr_field: * @hnd: Pointer to handler's data @@ -383,7 +378,6 @@ * SA_OK - Normal * SA_ERR_HPI_INVALID_PARAMS - If any in pointer is NULL * SA_ERR_HPI_NOT_PRESENT - If Inventory RDR is not found in rptcache - * **/ static SaErrorT snmp_bc_build_idr( void *hnd, @@ -442,13 +436,10 @@ rv = snmp_bc_idr_build_field(custom_handle, &valEntity, s->mib.oid.OidChassisType, &thisField, &thisInventoryArea); if (rv != SA_OK) - dbg("Having problem building Chassis Idr Field, continue to next field.\n"); + dbg("Cannot build Chassis Idr Field, continue to next field."); } - /** - * - */ memset(thisField.Field.Data, 0, SAHPI_MAX_TEXT_BUFFER_LENGTH); thisField.FieldId = 2; thisField.Type = SAHPI_IDR_FIELDTYPE_MFG_DATETIME; @@ -460,26 +451,27 @@ strcpy((char *)thisField.Field.Data,"SAHPI_TIME_UNSPECIFIED"); } else { - rv = snmp_bc_oid_snmp_get(custom_handle, &valEntity,s->mib.oid.OidMfgDateTime, &get_value, SAHPI_TRUE); + rv = snmp_bc_oid_snmp_get(custom_handle, &valEntity, 0, + s->mib.oid.OidMfgDateTime, &get_value, SAHPI_TRUE); if(rv != SA_OK) { - dbg("SNMP could not read %s; Type=%d.\n",s->mib.oid.OidMfgDateTime,get_value.type); + dbg("SNMP could not read %s; Type=%d.", + s->mib.oid.OidMfgDateTime, get_value.type); return rv; } else if((rv == SA_OK) && (get_value.type == ASN_OCTET_STR )) { thisField.Field.DataLength = get_value.str_len; thisField.Field.DataType = SAHPI_TL_TYPE_TEXT; memcpy(thisField.Field.Data, get_value.string, get_value.str_len); } else - dbg("%s Invalid type for MfgDateTime inventory data\n",s->mib.oid.OidMfgDateTime); + dbg("%s Invalid type for MfgDateTime inventory data", + s->mib.oid.OidMfgDateTime); } if (thisField.Field.DataLength != 0) { - memcpy(&thisInventoryArea.field[thisInventoryArea.idrareas.NumFields], &thisField, sizeof(SaHpiIdrFieldT)); + memcpy(&thisInventoryArea.field[thisInventoryArea.idrareas.NumFields], + &thisField, sizeof(SaHpiIdrFieldT)); thisInventoryArea.idrareas.NumFields++; } - /** - * - */ thisField.FieldId = 3; thisField.Type = SAHPI_IDR_FIELDTYPE_MANUFACTURER; @@ -487,13 +479,9 @@ rv = snmp_bc_idr_build_field(custom_handle, &valEntity, s->mib.oid.OidManufacturer, &thisField, &thisInventoryArea); if (rv != SA_OK) - dbg("Having problem building ManufacturerId Idr Field, continue to next field.\n"); + dbg("Cannot build ManufacturerId Idr Field, continue to next field."); } - /** - * - */ - thisField.FieldId = 4; thisField.Type = SAHPI_IDR_FIELDTYPE_PRODUCT_NAME; @@ -501,13 +489,9 @@ rv = snmp_bc_idr_build_field(custom_handle, &valEntity, s->mib.oid.OidProductName, &thisField, &thisInventoryArea); if (rv != SA_OK) - dbg("Having problem building ProductName Idr Field, continue to next field.\n"); + dbg("Cannot build ProductName Idr Field, continue to next field."); } - /** - * - */ - thisField.FieldId = 5; thisField.Type = SAHPI_IDR_FIELDTYPE_PRODUCT_VERSION; @@ -515,13 +499,9 @@ rv = snmp_bc_idr_build_field(custom_handle, &valEntity, s->mib.oid.OidProductVersion, &thisField, &thisInventoryArea); if (rv != SA_OK) - dbg("Having problem building ProductVersion Idr Field, continue to next field.\n"); + dbg("Cannot build ProductVersion Idr Field, continue to next field."); } - /** - * - */ - thisField.FieldId = 6; thisField.Type = SAHPI_IDR_FIELDTYPE_SERIAL_NUMBER; @@ -529,13 +509,9 @@ rv = snmp_bc_idr_build_field(custom_handle, &valEntity, s->mib.oid.OidSerialNumber, &thisField, &thisInventoryArea); if (rv != SA_OK) - dbg("Having problem building SerialNumber Idr Field, continue to next field.\n"); + dbg("Cannot build SerialNumber Idr Field, continue to next field."); } - /** - * - */ - thisField.FieldId = 7; thisField.Type = SAHPI_IDR_FIELDTYPE_PART_NUMBER; @@ -543,13 +519,9 @@ rv = snmp_bc_idr_build_field(custom_handle, &valEntity, s->mib.oid.OidPartNumber, &thisField, &thisInventoryArea); if (rv != SA_OK) - dbg("Having problem building PartNumber Idr Field, continue to next field.\n"); + dbg("Cannot build PartNumber Idr Field, continue to next field."); } - /** - * - */ - thisField.FieldId = 8; thisField.Type = SAHPI_IDR_FIELDTYPE_FILE_ID; @@ -557,13 +529,9 @@ rv = snmp_bc_idr_build_field(custom_handle, &valEntity, s->mib.oid.OidFileId, &thisField, &thisInventoryArea); if (rv != SA_OK) - dbg("Having problem building FileID Idr Field, continue to next field.\n"); + dbg("Cannot build FileID Idr Field, continue to next field."); } - /** - * - */ - thisField.FieldId = 9; thisField.Type = SAHPI_IDR_FIELDTYPE_ASSET_TAG; @@ -571,7 +539,7 @@ rv = snmp_bc_idr_build_field(custom_handle, &valEntity, s->mib.oid.OidAssetTag, &thisField, &thisInventoryArea); if (rv != SA_OK) - dbg("Having problem building AssetTag Idr Field, continue ...\n"); + dbg("Cannot build AssetTag Idr Field, continue ..."); } memcpy( &(i_record->area[0]), &thisInventoryArea, sizeof(struct bc_idr_area)); @@ -596,7 +564,6 @@ * SA_OK - Normal * SA_ERR_HPI_INVALID_PARAMS - If any in pointer is NULL * SA_ERR_HPI_INTERNAL_ERROR - If can not process get_value.type from bc snmp agent - * **/ static @@ -613,15 +580,13 @@ return(SA_ERR_HPI_INVALID_PARAMS); rv = SA_OK; - /** - * - */ + memset(thisField->Field.Data, 0, SAHPI_MAX_TEXT_BUFFER_LENGTH); thisField->Field.DataLength = 0; /* SaHpiUint8T */ - rv = snmp_bc_oid_snmp_get(custom_handle, ep, oidstr, &get_value, SAHPI_TRUE); + rv = snmp_bc_oid_snmp_get(custom_handle, ep, 0, oidstr, &get_value, SAHPI_TRUE); if(rv != SA_OK) { - dbg("SNMP could not read %s; Type=%d.\n",oidstr ,get_value.type); + dbg("SNMP could not read %s; Type=%d.", oidstr, get_value.type); return(rv); } else { if( get_value.type == ASN_OCTET_STR ) { @@ -634,13 +599,13 @@ snprintf((char *)thisField->Field.Data, SAHPI_MAX_TEXT_BUFFER_LENGTH, "%ld",get_value.integer ); } else - dbg("%s Invalid data type for Chassis data\n",oidstr); + dbg("%s Invalid data type for Chassis data", oidstr); } if (thisField->Field.DataLength != 0) { memcpy(&thisInventoryArea->field[thisInventoryArea->idrareas.NumFields], - thisField, sizeof(SaHpiIdrFieldT)); + thisField, sizeof(SaHpiIdrFieldT)); thisInventoryArea->idrareas.NumFields++; } @@ -678,5 +643,3 @@ void * oh_del_idr_field (void *, SaHpiResourceIdT, SaHpiIdrIdT, SaHpiEntryIdT, SaHpiEntryIdT) __attribute__ ((weak, alias("snmp_bc_del_idr_field"))); - - Modified: openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_power.c =================================================================== --- openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_power.c 2006-06-02 17:08:23 UTC (rev 5850) +++ openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_power.c 2006-06-03 20:19:01 UTC (rev 5851) @@ -1,11 +1,11 @@ /* -*- linux-c -*- * - * (C) Copyright IBM Corp. 2004, 2005 + * (C) Copyright IBM Corp. 2004, 2006 * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This - * file and program are licensed under a BSD style license. See + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This + * file and program are licensed under a BSD style license. See * the Copying file included with the OpenHPI distribution for * full licensing terms. * @@ -81,7 +81,7 @@ } /* Read power state of resource */ - err = snmp_bc_oid_snmp_get(custom_handle, &(rpt->ResourceEntity), + err = snmp_bc_oid_snmp_get(custom_handle, &(rpt->ResourceEntity), 0, resinfo->mib.OidPowerState, &get_value, SAHPI_TRUE); if (!err && (get_value.type == ASN_INTEGER)) { switch (get_value.integer) { @@ -174,7 +174,7 @@ switch (state) { case SAHPI_POWER_OFF: set_value.integer = 0; - err = snmp_bc_oid_snmp_set(custom_handle, &(rpt->ResourceEntity), + err = snmp_bc_oid_snmp_set(custom_handle, &(rpt->ResourceEntity), 0, resinfo->mib.OidPowerOnOff, set_value); if (err) { dbg("Cannot set SNMP OID=%s; Type=%d.", @@ -184,7 +184,7 @@ break; case SAHPI_POWER_ON: set_value.integer = 1; - err = snmp_bc_oid_snmp_set(custom_handle, &(rpt->ResourceEntity), + err = snmp_bc_oid_snmp_set(custom_handle, &(rpt->ResourceEntity), 0, resinfo->mib.OidPowerOnOff, set_value); if (err) { dbg("Cannot set SNMP OID=%s; Type=%d.", @@ -213,5 +213,3 @@ void * oh_set_power_state (void *, SaHpiResourceIdT, SaHpiPowerStateT) __attribute__ ((weak, alias("snmp_bc_set_power_state"))); - - Modified: openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_reset.c =================================================================== --- openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_reset.c 2006-06-02 17:08:23 UTC (rev 5850) +++ openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_reset.c 2006-06-03 20:19:01 UTC (rev 5851) @@ -1,11 +1,11 @@ /* -*- linux-c -*- * - * (C) Copyright IBM Corp. 2004, 2005 + * (C) Copyright IBM Corp. 2004, 2006 * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This - * file and program are licensed under a BSD style license. See + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This + * file and program are licensed under a BSD style license. See * the Copying file included with the OpenHPI distribution for * full licensing terms. * @@ -148,8 +148,8 @@ set_value.str_len = 1; set_value.integer = 1; - err = snmp_bc_oid_snmp_set(custom_handle, &(rpt->ResourceEntity), - resinfo->mib.OidReset, set_value); + err = snmp_bc_oid_snmp_set(custom_handle, &(rpt->ResourceEntity), 0, + resinfo->mib.OidReset, set_value); if (err) { dbg("Cannot set SNMP OID=%s; Type=%d.", resinfo->mib.OidReset, set_value.type); snmp_bc_unlock_handler(custom_handle); Modified: openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_resources.c =================================================================== --- openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_resources.c 2006-06-02 17:08:23 UTC (rev 5850) +++ openhpi/branches/2.5.x/plugins/snmp_bc/snmp_bc_resources.c 2006-06-03 20:19:01 UTC (rev 5851) @@ -776,6 +776,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = ".1.3.6.1.4.1.2.3.51.2.2.1.5.1.0", + .loc_offset = 0, }, .cur_state = SAHPI_ES_UNSPECIFIED, .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, @@ -1040,11 +1041,153 @@ }, .comment = "Power Domain 2 Redundancy Sensor", }, + { + .index = 6, + .sensor = { + .Num = BLADECENTER_SENSOR_NUM_MAX_POWER, + .Type = SAHPI_OTHER_UNITS_BASED_SENSOR, + .Category = SAHPI_EC_THRESHOLD, + .EnableCtrl = SAHPI_FALSE, + .EventCtrl = SAHPI_SEC_READ_ONLY, + .Events = 0x00, /* No event state */ + .DataFormat = { + .IsSupported = SAHPI_TRUE, + .ReadingType = SAHPI_SENSOR_READING_TYPE_UINT64, + .BaseUnits = SAHPI_SU_WATTS, + .ModifierUnits = SAHPI_SU_UNSPECIFIED, + .ModifierUse = SAHPI_SMUU_NONE, + .Percentage = SAHPI_FALSE, + .Range = { + .Flags = 0x00, + }, + }, + .ThresholdDefn = { + .IsAccessible = SAHPI_FALSE, + }, + .Oem = 0, + }, + .sensor_info = { + .mib = { + .not_avail_indicator_num = 0, + .write_only = SAHPI_FALSE, + .oid = ".1.3.6.1.4.1.2.3.51.2.2.10.2.1.1.8.1", + .threshold_oids = {}, + .threshold_write_oids = {}, + }, + .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, + .sensor_enabled = SAHPI_TRUE, + .events_enabled = SAHPI_FALSE, + .assert_mask = 0x00, + .deassert_mask = 0x00, + .event_array = { + {}, + }, + .reading2event = {}, + }, + .comment = "Maximum Power Capability", + }, + { + .index = 7, + .sensor = { + .Num = BLADECENTER_SENSOR_NUM_ASSIGNED_POWER, + .Type = SAHPI_OTHER_UNITS_BASED_SENSOR, + .Category = SAHPI_EC_THRESHOLD, + .EnableCtrl = SAHPI_FALSE, + .EventCtrl = SAHPI_SEC_READ_ONLY, + .Events = 0, + .DataFormat = { + .IsSupported = SAHPI_TRUE, + .ReadingType = SAHPI_SENSOR_READING_TYPE_UINT64, + .BaseUnits = SAHPI_SU_WATTS, + .ModifierUnits = SAHPI_SU_UNSPECIFIED, + .ModifierUse = SAHPI_SMUU_NONE, + .Percentage = SAHPI_FALSE, + .Range = { + .Flags = 0x00, + }, + }, + .ThresholdDefn = { + .IsAccessible = SAHPI_FALSE, + .ReadThold = 0, + .WriteThold = 0, + }, + .Oem = 0, + }, + .sensor_info = { + .mib = { + .not_avail_indicator_num = 0, + .write_only = SAHPI_FALSE, + .oid = ".1.3.6.1.4.1.2.3.51.2.2.10.2.1.1.7.1", + .threshold_oids = {}, + .threshold_write_oids = {}, + }, + .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, + .sensor_enabled = SAHPI_TRUE, + .events_enabled = SAHPI_FALSE, + .assert_mask = 0x00, + .deassert_mask = 0x00, + .event_array = { + {}, + }, + .reading2event = {}, + }, + .comment = "Assigned Power Capability", + }, + + { + .index = 8, + .sensor = { + .Num = BLADECENTER_SENSOR_NUM_MIN_POWER, + .Type = SAHPI_OTHER_UNITS_BASED_SENSOR, + .Category = SAHPI_EC_THRESHOLD, + .EnableCtrl = SAHPI_FALSE, + .EventCtrl = SAHPI_SEC_READ_ONLY, + .Events = 0, + .DataFormat = { + .IsSupported = SAHPI_TRUE, + .ReadingType = SAHPI_SENSOR_READING_TYPE_UINT64, + .BaseUnits = SAHPI_SU_WATTS, + .ModifierUnits = SAHPI_SU_UNSPECIFIED, + .ModifierUse = SAHPI_SMUU_NONE, + .Percentage = SAHPI_FALSE, + .Range = {}, + }, + .ThresholdDefn = { + .IsAccessible = SAHPI_FALSE, + .ReadThold = 0, + .WriteThold = 0, + }, + .Oem = 0, + }, + .sensor_info = { + .mib = { + .not_avail_indicator_num = 0, + .write_only = SAHPI_FALSE, + .oid = ".1.3.6.1.4.1.2.3.51.2.2.10.2.1.1.9.1", + .threshold_oids = {}, + .threshold_write_oids = {}, + }, + .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, + .sensor_enabled = SAHPI_TRUE, + .events_enabled = SAHPI_FALSE, + .assert_mask = 0, + .deassert_mask = 0, + .event_array = { + {}, + }, + .reading2event = {}, + }, + .comment = "Minumum Power Capability", + }, + {} /* Terminate array with a null element */ }; -#define SNMP_BC_MAX_COMMON_CHASSIS_SENSORS 5 +#define SNMP_BC_MAX_COMMON_CHASSIS_SENSORS 8 struct snmp_bc_sensor snmp_bc_chassis_sensors_bct[] = { /* Chassis Filter Sensor - event only */ @@ -1178,6 +1321,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = ".1.3.6.1.4.1.2.3.51.2.2.1.1.2.0", + .loc_offset = 0, }, .cur_state = SAHPI_ES_UNSPECIFIED, .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, @@ -1322,7 +1466,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = ".1.3.6.1.4.1.2.3.51.2.2.2.1.8.0", - /* Default HDW thresholds: Warning 1.62<>1.89; Warning Reset 1.86<>1.74 */ + .loc_offset = 0, .threshold_oids = { .LowMajor = ".1.3.6.1.4.1.2.3.51.2.2.20.2.1.1.10.6", .UpMajor = ".1.3.6.1.4.1.2.3.51.2.2.20.2.1.1.6.6", @@ -1426,8 +1570,6 @@ .ReadThold = SAHPI_STM_LOW_MAJOR | SAHPI_STM_UP_MAJOR | SAHPI_STM_LOW_HYSTERESIS | SAHPI_STM_UP_HYSTERESIS, .WriteThold = 0, - /* Default HDW thresholds: - Warning 2.25<>2.63; Warning Reset 2.58<>2.42 */ }, .Oem = 0, }, @@ -1436,7 +1578,8 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = ".1.3.6.1.4.1.2.3.51.2.2.2.1.6.0", - .threshold_oids = { + .loc_offset = 0, + .threshold_oids = { .LowMajor = ".1.3.6.1.4.1.2.3.51.2.2.20.2.1.1.10.5", .UpMajor = ".1.3.6.1.4.1.2.3.51.2.2.20.2.1.1.6.5", .TotalPosThdHysteresis = ".1.3.6.1.4.1.2.3.51.2.2.20.2.1.1.7.5", @@ -1539,8 +1682,6 @@ .ReadThold = SAHPI_STM_LOW_MAJOR | SAHPI_STM_UP_MAJOR | SAHPI_STM_LOW_HYSTERESIS | SAHPI_STM_UP_HYSTERESIS, .WriteThold = 0, - /* Default HDW thresholds: - Warning 3.00<>3.47; Warning Reset 3.40<>3.20 */ }, .Oem = 0, }, @@ -1549,6 +1690,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = ".1.3.6.1.4.1.2.3.51.2.2.2.1.2.0", + .loc_offset = 0, .threshold_oids = { .LowMajor = ".1.3.6.1.4.1.2.3.51.2.2.20.2.1.1.10.2", .UpMajor = ".1.3.6.1.4.1.2.3.51.2.2.20.2.1.1.6.2", @@ -1652,8 +1794,6 @@ .ReadThold = SAHPI_STM_LOW_MAJOR | SAHPI_STM_UP_MAJOR | SAHPI_STM_LOW_HYSTERESIS | SAHPI_STM_UP_HYSTERESIS, .WriteThold = 0, - /* Default HDW thresholds: - Warning 4.50<>5.25; Warning Reset 5.15<>4.85 */ }, .Oem = 0, }, @@ -1662,7 +1802,8 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = ".1.3.6.1.4.1.2.3.51.2.2.2.1.1.0", - .threshold_oids = { + .loc_offset = 0, + .threshold_oids = { .LowMajor = ".1.3.6.1.4.1.2.3.51.2.2.20.2.1.1.10.1", .UpMajor = ".1.3.6.1.4.1.2.3.51.2.2.20.2.1.1.6.1", .TotalPosThdHysteresis = ".1.3.6.1.4.1.2.3.51.2.2.20.2.1.1.7.1", @@ -1765,8 +1906,6 @@ .ReadThold = SAHPI_STM_LOW_MAJOR | SAHPI_STM_UP_MAJOR | SAHPI_STM_LOW_HYSTERESIS | SAHPI_STM_UP_HYSTERESIS, .WriteThold = 0, - /* Default HDW thresholds: - Warning -5.50<>-4.75; Warning Reset -4.85<>-5.15 */ }, .Oem = 0, }, @@ -1775,6 +1914,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = ".1.3.6.1.4.1.2.3.51.2.2.2.1.5.0", + .loc_offset = 0, .threshold_oids = { .LowMajor = ".1.3.6.1.4.1.2.3.51.2.2.20.2.1.1.10.4", .UpMajor = ".1.3.6.1.4.1.2.3.51.2.2.20.2.1.1.6.4", @@ -1878,8 +2018,6 @@ .ReadThold = SAHPI_STM_LOW_MAJOR | SAHPI_STM_UP_MAJOR | SAHPI_STM_LOW_HYSTERESIS | SAHPI_STM_UP_HYSTERESIS, .WriteThold = 0, - /* Default HDW thresholds: - Warning 10.80<>12.60; Warning Reset 12.34<>11.64 */ }, .Oem = 0, }, @@ -1888,6 +2026,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = ".1.3.6.1.4.1.2.3.51.2.2.2.1.3.0", + .loc_offset = 0, .threshold_oids = { .LowMajor = ".1.3.6.1.4.1.2.3.51.2.2.20.2.1.1.10.3", .UpMajor = ".1.3.6.1.4.1.2.3.51.2.2.20.2.1.1.6.3", @@ -2217,6 +2356,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = ".1.3.6.1.4.1.2.3.51.2.22.4.34.0", + .loc_offset = 0, }, .cur_state = SAHPI_ES_UNSPECIFIED, .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, @@ -2261,6 +2401,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = ".1.3.6.1.4.1.2.3.51.2.22.4.34.0", + .loc_offset = 0, }, .cur_state = SAHPI_ES_UNSPECIFIED, .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, @@ -2274,7 +2415,149 @@ }, .comment = "Standby MM Sensor", }, + { + .index = 16, + .sensor = { + .Num = BLADECENTER_SENSOR_NUM_MAX_POWER, + .Type = SAHPI_OTHER_UNITS_BASED_SENSOR, + .Category = SAHPI_EC_THRESHOLD, + .EnableCtrl = SAHPI_FALSE, + .EventCtrl = SAHPI_SEC_READ_ONLY, + .Events = 0x00, /* No event state */ + .DataFormat = { + .IsSupported = SAHPI_TRUE, + .ReadingType = SAHPI_SENSOR_READING_TYPE_UINT64, + .BaseUnits = SAHPI_SU_WATTS, + .ModifierUnits = SAHPI_SU_UNSPECIFIED, + .ModifierUse = SAHPI_SMUU_NONE, + .Percentage = SAHPI_FALSE, + .Range = { + .Flags = 0x00, + }, + }, + .ThresholdDefn = { + .IsAccessible = SAHPI_FALSE, + }, + .Oem = 0, + }, + .sensor_info = { + .mib = { + .not_avail_indicator_num = 0, + .write_only = SAHPI_FALSE, + .oid = ".1.3.6.1.4.1.2.3.51.2.2.10.2.1.1.8.1", + .threshold_oids = {}, + .threshold_write_oids = {}, + }, + .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, + .sensor_enabled = SAHPI_TRUE, + .events_enabled = SAHPI_FALSE, + .assert_mask = 0x00, + .deassert_mask = 0x00, + .event_array = { + {}, + }, + .reading2event = {}, + }, + .comment = "Maximum Power Capability", + }, + { + .index = 17, + .sensor = { + .Num = BLADECENTER_SENSOR_NUM_ASSIGNED_POWER, + .Type = SAHPI... [truncated message content] |
From: <ses...@us...> - 2006-06-02 17:08:43
|
Revision: 5850 Author: sesherman Date: 2006-06-02 10:08:23 -0700 (Fri, 02 Jun 2006) ViewCVS: http://svn.sourceforge.net/openhpi/?rev=5850&view=rev Log Message: ----------- #1499578 Add offset to oh_derive_string Modified Paths: -------------- openhpi/trunk/plugins/snmp_bc/snmp_bc.c openhpi/trunk/plugins/snmp_bc/snmp_bc.h openhpi/trunk/plugins/snmp_bc/snmp_bc_control.c openhpi/trunk/plugins/snmp_bc/snmp_bc_discover.c openhpi/trunk/plugins/snmp_bc/snmp_bc_discover.h openhpi/trunk/plugins/snmp_bc/snmp_bc_discover_bc.c openhpi/trunk/plugins/snmp_bc/snmp_bc_discover_rsa.c openhpi/trunk/plugins/snmp_bc/snmp_bc_event.c openhpi/trunk/plugins/snmp_bc/snmp_bc_event.map openhpi/trunk/plugins/snmp_bc/snmp_bc_inventory.c openhpi/trunk/plugins/snmp_bc/snmp_bc_power.c openhpi/trunk/plugins/snmp_bc/snmp_bc_reset.c openhpi/trunk/plugins/snmp_bc/snmp_bc_resources.c openhpi/trunk/plugins/snmp_bc/snmp_bc_resources.h openhpi/trunk/plugins/snmp_bc/snmp_bc_resources_rsa.c openhpi/trunk/plugins/snmp_bc/snmp_bc_sensor.c openhpi/trunk/plugins/snmp_bc/snmp_bc_sensor.h openhpi/trunk/plugins/snmp_bc/snmp_bc_utils.c Modified: openhpi/trunk/plugins/snmp_bc/snmp_bc.c =================================================================== --- openhpi/trunk/plugins/snmp_bc/snmp_bc.c 2006-06-02 16:49:57 UTC (rev 5849) +++ openhpi/trunk/plugins/snmp_bc/snmp_bc.c 2006-06-02 17:08:23 UTC (rev 5850) @@ -244,6 +244,7 @@ * snmp_bc_snmp_get: * @custom_handle: Plugin's data pointer. * @objid: SNMP OID. + * loc_offset: Offset to add to location in entity path * @value: Location to store returned SNMP value. * @retry: retry is requested on snmp timeout * @@ -317,6 +318,7 @@ * @custom_handle: Plugin's data pointer. * @ep: Entity path of the resource * @oidstr: raw SNMP OID. + * loc_offset: Offset to add to location in entity path * @value: Location to store returned SNMP value. * @retry: Retry requested on snmp timeout * @@ -331,15 +333,17 @@ * SA_OK - Normal case. **/ SaErrorT snmp_bc_oid_snmp_get(struct snmp_bc_hnd *custom_handle, - SaHpiEntityPathT *ep, const gchar *oidstr, - struct snmp_value *value, SaHpiBoolT retry) + SaHpiEntityPathT *ep, + SaHpiEntityLocationT loc_offset, + const gchar *oidstr, + struct snmp_value *value, SaHpiBoolT retry) { SaErrorT rv; gchar *oid; rv = SA_OK; - oid = oh_derive_string(ep, oidstr); + oid = oh_derive_string(ep, loc_offset, oidstr); if (oid == NULL) { dbg("Cannot derive %s.", oidstr); return(SA_ERR_HPI_INTERNAL_ERROR); @@ -397,6 +401,7 @@ * @custom_handle: Plugin's data pointer. * @ep: Entity path of the resource * @oidstr: raw SNMP OID. + * loc_offset: Offset to add to location in entity path * @value: SNMP value to set. * * Plugin wrapper for SNMP set call. If SNMP command times out, @@ -410,14 +415,16 @@ * SA_OK - Normal case. **/ SaErrorT snmp_bc_oid_snmp_set(struct snmp_bc_hnd *custom_handle, - SaHpiEntityPathT *ep, const gchar *oidstr, - struct snmp_value value) + SaHpiEntityPathT *ep, + SaHpiEntityLocationT loc_offset, + const gchar *oidstr, + struct snmp_value value) { SaErrorT rv; gchar *oid; rv = SA_OK; - oid = oh_derive_string(ep , oidstr); + oid = oh_derive_string(ep, loc_offset, oidstr); if (oid == NULL) { dbg("NULL SNMP OID returned for %s.", oidstr); return(SA_ERR_HPI_INTERNAL_ERROR); Modified: openhpi/trunk/plugins/snmp_bc/snmp_bc.h =================================================================== --- openhpi/trunk/plugins/snmp_bc/snmp_bc.h 2006-06-02 16:49:57 UTC (rev 5849) +++ openhpi/trunk/plugins/snmp_bc/snmp_bc.h 2006-06-02 17:08:23 UTC (rev 5850) @@ -1,11 +1,11 @@ /* -*- linux-c -*- * - * (C) Copyright IBM Corp. 2003, 2005, 2006 + * (C) Copyright IBM Corp. 2003, 2006 * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This - * file and program are licensed under a BSD style license. See + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This + * file and program are licensed under a BSD style license. See * the Copying file included with the OpenHPI distribution for * full licensing terms. * @@ -45,10 +45,10 @@ RPTable *tmpcache; GSList *tmpqueue; ohpi_bc_lock snmp_bc_hlock; - guint max_pb_supported; /* pb - processor blade */ - guint max_blower_supported; /* blower - fan/blower */ - guint max_pm_supported; /* pm - power module */ - guint max_sm_supported; /* sm - switch module */ + guint max_pb_supported; /* pb - processor blade */ + guint max_blower_supported; /* blower - fan/blower */ + guint max_pm_supported; /* pm - power module */ + guint max_sm_supported; /* sm - i/o module */ guint max_mm_supported; /* mm - management module */ guint max_mt_supported; /* mt - media tray */ gchar installed_pb_mask[SNMP_BC_MAX_RESOURCES_MASK]; @@ -67,6 +67,7 @@ SaErrorT snmp_bc_oid_snmp_get(struct snmp_bc_hnd *custom_handle, SaHpiEntityPathT *ep, + SaHpiEntityLocationT loc_offset, const gchar *oidstr, struct snmp_value *value, SaHpiBoolT retry); @@ -77,6 +78,7 @@ SaErrorT snmp_bc_oid_snmp_set(struct snmp_bc_hnd *custom_handle, SaHpiEntityPathT *ep, + SaHpiEntityLocationT loc_offset, const gchar *oidstr, struct snmp_value value); @@ -88,12 +90,10 @@ SaHpiTextBufferT *tag); SaErrorT snmp_bc_set_resource_severity(void *hnd, - SaHpiResourceIdT rid, - SaHpiSeverityT sev); + SaHpiResourceIdT rid, + SaHpiSeverityT sev); SaErrorT snmp_bc_control_parm(void *hnd, - SaHpiResourceIdT rid, - SaHpiParmActionT act); - - + SaHpiResourceIdT rid, + SaHpiParmActionT act); #endif Modified: openhpi/trunk/plugins/snmp_bc/snmp_bc_control.c =================================================================== --- openhpi/trunk/plugins/snmp_bc/snmp_bc_control.c 2006-06-02 16:49:57 UTC (rev 5849) +++ openhpi/trunk/plugins/snmp_bc/snmp_bc_control.c 2006-06-02 17:08:23 UTC (rev 5850) @@ -113,7 +113,8 @@ /* Find control's state */ working_state.Type = rdr->RdrTypeUnion.CtrlRec.Type; - err = snmp_bc_oid_snmp_get(custom_handle, &(rdr->Entity), cinfo->mib.oid, &get_value, SAHPI_TRUE); + err = snmp_bc_oid_snmp_get(custom_handle, &(rdr->Entity), cinfo->mib.loc_offset, + cinfo->mib.oid, &get_value, SAHPI_TRUE); if (err || get_value.type != ASN_INTEGER) { dbg("Cannot read SNMP OID=%s; Type=%d.", cinfo->mib.oid, get_value.type); snmp_bc_unlock_handler(custom_handle); @@ -313,7 +314,8 @@ set_value.str_len = 1; set_value.integer = value; - err = snmp_bc_oid_snmp_set(custom_handle, &(rdr->Entity), cinfo->mib.oid, set_value); + err = snmp_bc_oid_snmp_set(custom_handle, &(rdr->Entity), cinfo->mib.loc_offset, + cinfo->mib.oid, set_value); if (err) { dbg("Cannot set SNMP OID=%s; Value=%d.", cinfo->mib.oid, (int)set_value.integer); @@ -326,7 +328,8 @@ set_value.str_len = 1; set_value.integer = state->StateUnion.Discrete; - err = snmp_bc_oid_snmp_set(custom_handle, &(rdr->Entity), cinfo->mib.oid, set_value); + err = snmp_bc_oid_snmp_set(custom_handle, &(rdr->Entity), cinfo->mib.loc_offset, + cinfo->mib.oid, set_value); if (err) { dbg("Cannot set SNMP OID=%s; Value=%d.", cinfo->mib.oid, (int)set_value.integer); Modified: openhpi/trunk/plugins/snmp_bc/snmp_bc_discover.c =================================================================== --- openhpi/trunk/plugins/snmp_bc/snmp_bc_discover.c 2006-06-02 16:49:57 UTC (rev 5849) +++ openhpi/trunk/plugins/snmp_bc/snmp_bc_discover.c 2006-06-02 17:08:23 UTC (rev 5850) @@ -310,6 +310,7 @@ if (sensor_array[i].sensor_info.mib.oid != NULL) { valid_sensor = rdr_exists(custom_handle, &(res_oh_event->u.res_event.entry.ResourceEntity), + sensor_array[i].sensor_info.mib.loc_offset, sensor_array[i].sensor_info.mib.oid, sensor_array[i].sensor_info.mib.not_avail_indicator_num, sensor_array[i].sensor_info.mib.write_only); @@ -395,6 +396,7 @@ valid_control = rdr_exists(custom_handle, &(res_oh_event->u.res_event.entry.ResourceEntity), + control_array[i].control_info.mib.loc_offset, control_array[i].control_info.mib.oid, control_array[i].control_info.mib.not_avail_indicator_num, control_array[i].control_info.mib.write_only); @@ -468,9 +470,9 @@ } valid_idr = rdr_exists(custom_handle, - &(res_oh_event->u.res_event.entry.ResourceEntity), - inventory_array[i].inventory_info.mib.oid.OidManufacturer, - 0, 0); + &(res_oh_event->u.res_event.entry.ResourceEntity), 0, + inventory_array[i].inventory_info.mib.oid.OidManufacturer, + 0, 0); /* Add inventory RDR, if inventory can be read */ if (valid_idr) { @@ -559,8 +561,10 @@ /** * rdr_exists: - * @ss: Pointer to SNMP session. - * @oid: SNMP OID string + * @custom_handle: Custom handler data pointer. + * @ep: Pointer to Entity Path + * @loc_offset: Entity Path location offset + * @oidstr: SNMP OID string * @na: Not available integer, if applicable * @write-only: SNMP OID write-only indicator * @@ -572,17 +576,18 @@ * SAHPI_FALSE - if OID's value cannot be read. **/ SaHpiBoolT rdr_exists(struct snmp_bc_hnd *custom_handle, - SaHpiEntityPathT *ep, - const gchar *oidstr, - unsigned int na, - SaHpiBoolT write_only) + SaHpiEntityPathT *ep, + SaHpiEntityLocationT loc_offset, + const gchar *oidstr, + unsigned int na, + SaHpiBoolT write_only) { SaErrorT err; struct snmp_value get_value; if (write_only == SAHPI_TRUE) { return(SAHPI_FALSE); }; /* Can't check it if its non-readable */ - err = snmp_bc_oid_snmp_get(custom_handle, ep, oidstr, &get_value, SAHPI_TRUE); + err = snmp_bc_oid_snmp_get(custom_handle, ep, loc_offset, oidstr, &get_value, SAHPI_TRUE); if (err || (get_value.type == ASN_INTEGER && na && na == get_value.integer)) { return(SAHPI_FALSE); } @@ -739,5 +744,3 @@ void * oh_discover_resources (void *) __attribute__ ((weak, alias("snmp_bc_discover_resources"))); - - Modified: openhpi/trunk/plugins/snmp_bc/snmp_bc_discover.h =================================================================== --- openhpi/trunk/plugins/snmp_bc/snmp_bc_discover.h 2006-06-02 16:49:57 UTC (rev 5849) +++ openhpi/trunk/plugins/snmp_bc/snmp_bc_discover.h 2006-06-02 17:08:23 UTC (rev 5850) @@ -1,11 +1,11 @@ /* -*- linux-c -*- * - * (C) Copyright IBM Corp. 2004, 2005, 2006 + * (C) Copyright IBM Corp. 2004, 2006 * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This - * file and program are licensed under a BSD style license. See + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This + * file and program are licensed under a BSD style license. See * the Copying file included with the OpenHPI distribution for * full licensing terms. * @@ -25,8 +25,8 @@ SaHpiEntityPathT *ep_root); SaErrorT snmp_bc_rediscover(struct oh_handler_state *handle, - SaHpiEventT *event, - LogSource2ResourceT *logsrc2res); + SaHpiEventT *event, + LogSource2ResourceT *logsrc2res); SaErrorT snmp_bc_discover_sensors(struct oh_handler_state *handle, struct snmp_bc_sensor *sensor_array, @@ -45,50 +45,51 @@ SaHpiEntityLocationT location); SaHpiBoolT rdr_exists(struct snmp_bc_hnd *custom_handle, - SaHpiEntityPathT *ep, - const gchar *oidstr, - unsigned int na, - SaHpiBoolT write_only); + SaHpiEntityPathT *ep, + SaHpiEntityLocationT loc_offset, + const gchar *oidstr, + unsigned int na, + SaHpiBoolT write_only); SaErrorT snmp_bc_validate_ep(SaHpiEntityPathT *org_ep, - SaHpiEntityPathT *val_ep); + SaHpiEntityPathT *val_ep); SaErrorT snmp_bc_mod_sensor_ep(struct oh_event *e, - void *sensor_array, - int index); + void *sensor_array, + int index); SaErrorT snmp_bc_add_ep(struct oh_event *e, SaHpiEntityPathT *ep_add); SaErrorT snmp_bc_discover_media_tray(struct oh_handler_state *handle, - SaHpiEntityPathT *ep_root, int media_tray_installed); + SaHpiEntityPathT *ep_root, int media_tray_installed); SaErrorT snmp_bc_discover_chassis(struct oh_handler_state *handle, - SaHpiEntityPathT *ep_root); + SaHpiEntityPathT *ep_root); SaErrorT snmp_bc_discover_blade(struct oh_handler_state *handle, - SaHpiEntityPathT *ep_root, char *blade_vector); + SaHpiEntityPathT *ep_root, char *blade_vector); SaErrorT snmp_bc_discover_fans(struct oh_handler_state *handle, - SaHpiEntityPathT *ep_root, char *fan_vector); + SaHpiEntityPathT *ep_root, char *fan_vector); SaErrorT snmp_bc_discover_power_module(struct oh_handler_state *handle, - SaHpiEntityPathT *ep_root, char *power_module_vector); + SaHpiEntityPathT *ep_root, char *power_module_vector); SaErrorT snmp_bc_discover_switch(struct oh_handler_state *handle, - SaHpiEntityPathT *ep_root, char *switch_vector); + SaHpiEntityPathT *ep_root, char *switch_vector); SaErrorT snmp_bc_discover_mm(struct oh_handler_state *handle, - SaHpiEntityPathT *ep_root, char *mm_vector); + SaHpiEntityPathT *ep_root, char *mm_vector); SaErrorT snmp_bc_update_chassis_topo(struct oh_handler_state *handle); SaErrorT snmp_bc_discover_all_slots(struct oh_handler_state *handle, SaHpiEntityPathT *ep_root); -SaErrorT snmp_bc_discover_slot( struct oh_handler_state *handle, - SaHpiEntityPathT *ep_root, - SaHpiEntityTypeT entitytype, - guint entitylocation); +SaErrorT snmp_bc_discover_slot(struct oh_handler_state *handle, + SaHpiEntityPathT *ep_root, + SaHpiEntityTypeT entitytype, + guint entitylocation); #endif Modified: openhpi/trunk/plugins/snmp_bc/snmp_bc_discover_bc.c =================================================================== --- openhpi/trunk/plugins/snmp_bc/snmp_bc_discover_bc.c 2006-06-02 16:49:57 UTC (rev 5849) +++ openhpi/trunk/plugins/snmp_bc/snmp_bc_discover_bc.c 2006-06-02 17:08:23 UTC (rev 5850) @@ -719,8 +719,8 @@ mt_width = 1; /* Default to 1-wide */ if (res_info_ptr->mib.OidResourceWidth != NULL) { - err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), - res_info_ptr->mib.OidResourceWidth, &get_value, SAHPI_TRUE); + err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), 0, + res_info_ptr->mib.OidResourceWidth, &get_value, SAHPI_TRUE); if (!err && (get_value.type == ASN_INTEGER)) { mt_width = get_value.integer; } @@ -938,9 +938,9 @@ while(1) { err = snmp_bc_oid_snmp_get(custom_handle, - &(e->u.res_event.entry.ResourceEntity), - snmp_bc_rpt_array[BC_RPT_ENTRY_BLADE].OidResourceTag, - &get_blade_resourcetag, SAHPI_TRUE); + &(e->u.res_event.entry.ResourceEntity), 0, + snmp_bc_rpt_array[BC_RPT_ENTRY_BLADE].OidResourceTag, + &get_blade_resourcetag, SAHPI_TRUE); if ( (get_blade_resourcetag.type == ASN_OCTET_STR) && ( strncmp(get_blade_resourcetag.string, LOG_DISCOVERING, sizeof(LOG_DISCOVERING)) == 0 ) ) @@ -967,7 +967,7 @@ res_info_ptr->cur_state = SAHPI_HS_STATE_ACTIVE; /* Default to ACTIVE */ if (res_info_ptr->mib.OidPowerState != NULL) { /* Read power state of resource */ - err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), + err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), 0, res_info_ptr->mib.OidPowerState, &get_value, SAHPI_TRUE); if (!err && (get_value.type == ASN_INTEGER)) { if (get_value.integer == 0) /* state = SAHPI_POWER_OFF */ @@ -998,7 +998,7 @@ blade_width = 1; /* Default to 1-wide blade */ if (res_info_ptr->mib.OidResourceWidth != NULL) { - err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), + err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), 0, res_info_ptr->mib.OidResourceWidth, &get_value, SAHPI_TRUE); if (!err && (get_value.type == ASN_INTEGER)) { blade_width = get_value.integer; @@ -1019,7 +1019,8 @@ oh_set_ep_location(&ep, SAHPI_ENT_SBC_BLADE, i + SNMP_BC_HPI_LOCATION_BASE); - err = snmp_bc_oid_snmp_get(custom_handle, &ep, SNMP_BC_BLADE_EXPANSION_VECTOR, &get_value, SAHPI_TRUE); + err = snmp_bc_oid_snmp_get(custom_handle, &ep, 0, + SNMP_BC_BLADE_EXPANSION_VECTOR, &get_value, SAHPI_TRUE); if (!err && get_value.integer != 0) { @@ -1188,12 +1189,15 @@ /* Find resource's events, sensors, controls, etc. */ snmp_bc_discover_res_events(handle, &(e->u.res_event.entry.ResourceEntity), res_info_ptr); snmp_bc_discover_sensors(handle, snmp_bc_fan_sensors, e); + if (custom_handle->platform == SNMP_BC_PLATFORM_BCH) { + snmp_bc_discover_sensors(handle, snmp_bc_fan_sensors_bch, e); + } snmp_bc_discover_controls(handle, snmp_bc_fan_controls, e); snmp_bc_discover_inventories(handle, snmp_bc_fan_inventories, e); fan_width = 1; /* Default to 1-wide blade */ if (res_info_ptr->mib.OidResourceWidth != NULL) { - err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), + err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), 0, res_info_ptr->mib.OidResourceWidth, &get_value, SAHPI_TRUE); if (!err && (get_value.type == ASN_INTEGER)) { fan_width = get_value.integer; @@ -1322,7 +1326,7 @@ pm_width = 1; /* Default to 1-wide */ if (res_info_ptr->mib.OidResourceWidth != NULL) { - err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), + err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), 0, res_info_ptr->mib.OidResourceWidth, &get_value, SAHPI_TRUE); if (!err && (get_value.type == ASN_INTEGER)) { pm_width = get_value.integer; @@ -1425,7 +1429,7 @@ res_info_ptr->cur_state = SAHPI_HS_STATE_ACTIVE; /* Default to ACTIVE */ if (res_info_ptr->mib.OidPowerState != NULL) { /* Read power state of resource */ - err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), + err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), 0, res_info_ptr->mib.OidPowerState, &get_value, SAHPI_TRUE); if (!err && (get_value.type == ASN_INTEGER)) { if (get_value.integer == 0) /* state = SAHPI_POWER_OFF */ @@ -1455,7 +1459,7 @@ sw_width = 1; /* Default to 1-wide */ if (res_info_ptr->mib.OidResourceWidth != NULL) { - err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), + err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), 0, res_info_ptr->mib.OidResourceWidth, &get_value, SAHPI_TRUE); if (!err && (get_value.type == ASN_INTEGER)) { sw_width = get_value.integer; @@ -1647,7 +1651,7 @@ mm_width = 1; /* Default to 1-wide */ if (res_info_ptr->mib.OidResourceWidth != NULL) { - err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), + err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), 0, res_info_ptr->mib.OidResourceWidth, &get_value, SAHPI_TRUE); if (!err && (get_value.type == ASN_INTEGER)) { mm_width = get_value.integer; @@ -1688,7 +1692,7 @@ /* Check if this is an IPMI blade */ err = snmp_bc_oid_snmp_get(custom_handle, - &(res_oh_event->u.res_event.entry.ResourceEntity), + &(res_oh_event->u.res_event.entry.ResourceEntity), 0, SNMP_BC_IPMI_TEMP_BLADE_OID, &get_value, SAHPI_FALSE); if (err || get_value.type != ASN_INTEGER) { @@ -1715,7 +1719,7 @@ /* Find blade's defined temperature IPMI sensors */ for (i=0; i<SNMP_BC_MAX_IPMI_TEMP_SENSORS; i++) { err = snmp_bc_oid_snmp_get(custom_handle, - &(res_oh_event->u.res_event.entry.ResourceEntity), + &(res_oh_event->u.res_event.entry.ResourceEntity), 0, snmp_bc_ipmi_sensors_temp[i].oid, &get_value, SAHPI_FALSE); if (!err) { char *hash_existing_key, *hash_value; @@ -1764,7 +1768,7 @@ /* Find blade's voltage IPMI sensors */ for (i=0; i<SNMP_BC_MAX_IPMI_VOLTAGE_SENSORS; i++) { err = snmp_bc_oid_snmp_get(custom_handle, - &(res_oh_event->u.res_event.entry.ResourceEntity), + &(res_oh_event->u.res_event.entry.ResourceEntity), 0, snmp_bc_ipmi_sensors_voltage[i].oid, &get_value, SAHPI_FALSE); if (!err) { char *hash_existing_key, *hash_value; @@ -1966,7 +1970,7 @@ handle->eventq = g_slist_append(handle->eventq, e); } else { dbg("Out of memory."); } - err = snnp_bc_reset_resource_slot_state_sensor(handle, res); + err = snmp_bc_reset_resource_slot_state_sensor(handle, res); oh_remove_resource(handle->rptcache, res->ResourceId); } else dbg("No valid resource at hand. Could not remove resource."); @@ -2397,5 +2401,3 @@ return(SA_OK); } - - Modified: openhpi/trunk/plugins/snmp_bc/snmp_bc_discover_rsa.c =================================================================== --- openhpi/trunk/plugins/snmp_bc/snmp_bc_discover_rsa.c 2006-06-02 16:49:57 UTC (rev 5849) +++ openhpi/trunk/plugins/snmp_bc/snmp_bc_discover_rsa.c 2006-06-02 17:08:23 UTC (rev 5850) @@ -1,11 +1,11 @@ /* -*- linux-c -*- * - * (C) Copyright IBM Corp. 2004, 2005 + * (C) Copyright IBM Corp. 2004, 2006 * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This - * file and program are licensed under a BSD style license. See + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This + * file and program are licensed under a BSD style license. See * the Copying file included with the OpenHPI distribution for * full licensing terms. * @@ -118,7 +118,7 @@ SAHPI_ENT_PROCESSOR, i + SNMP_BC_HPI_LOCATION_BASE); /* See if CPU exists */ - if (!rdr_exists(custom_handle, &(e->u.res_event.entry.ResourceEntity), + if (!rdr_exists(custom_handle, &(e->u.res_event.entry.ResourceEntity), 0, SNMP_BC_CPU_OID_RSA, 0, 0 )) { g_free(e); continue; @@ -183,7 +183,7 @@ SAHPI_ENT_DISK_BAY, i + SNMP_BC_HPI_LOCATION_BASE); /* See if DASD exists */ - if (!rdr_exists(custom_handle, &(e->u.res_event.entry.ResourceEntity), + if (!rdr_exists(custom_handle, &(e->u.res_event.entry.ResourceEntity), 0, SNMP_BC_DASD_OID_RSA, 0, 0 )) { g_free(e); continue; @@ -248,7 +248,7 @@ SAHPI_ENT_FAN, i + SNMP_BC_HPI_LOCATION_BASE); /* See if fan exists */ - if (!rdr_exists(custom_handle, &(e->u.res_event.entry.ResourceEntity), + if (!rdr_exists(custom_handle, &(e->u.res_event.entry.ResourceEntity), 0, SNMP_BC_FAN_OID_RSA, 0, 0 )) { g_free(e); continue; Modified: openhpi/trunk/plugins/snmp_bc/snmp_bc_event.c =================================================================== --- openhpi/trunk/plugins/snmp_bc/snmp_bc_event.c 2006-06-02 16:49:57 UTC (rev 5849) +++ openhpi/trunk/plugins/snmp_bc/snmp_bc_event.c 2006-06-02 17:08:23 UTC (rev 5850) @@ -179,9 +179,9 @@ max = SNMP_BC_MAX_RESOURCE_EVENT_ARRAY_SIZE; for (i=0; resinfo->event_array[i].event != NULL && i < max; i++) { /* Normalized and convert event string */ - normalized_str = oh_derive_string(ep, resinfo->event_array[i].event); + normalized_str = oh_derive_string(ep, 0, resinfo->event_array[i].event); if (normalized_str == NULL) { - dbg(">>> Cannot derive %s.\n", resinfo->event_array[i].event); + dbg(">>> Cannot derive %s.", resinfo->event_array[i].event); return(SA_ERR_HPI_INTERNAL_ERROR); } @@ -276,7 +276,7 @@ for (i=0; sinfo->sensor_info.event_array[i].event != NULL && i < max; i++) { /* Normalized and convert event string */ - normalized_str = oh_derive_string(ep, sinfo->sensor_info.event_array[i].event); + normalized_str = oh_derive_string(ep, 0, sinfo->sensor_info.event_array[i].event); if (normalized_str == NULL) { dbg("Cannot derive %s.", sinfo->sensor_info.event_array[i].event); return(SA_ERR_HPI_INTERNAL_ERROR); @@ -790,7 +790,7 @@ /* Search entire sensor array for the duplicate string's event */ for (i=0; (logsrc2res->sensor_array_ptr + i)->sensor.Num != 0; i++) { for (j=0; (logsrc2res->sensor_array_ptr + i)->sensor_info.event_array[j].event != NULL; j++) { - normalized_event = oh_derive_string(&(logsrc2res->ep), + normalized_event = oh_derive_string(&(logsrc2res->ep), 0, (logsrc2res->sensor_array_ptr + i)->sensor_info.event_array[j].event); if (!strcmp(dupstr_hash_data->event, normalized_event)) { @@ -803,7 +803,7 @@ /* Search resource array for the duplicate string's event */ for (i=0; snmp_bc_rpt_array[logsrc2res->rpt].res_info.event_array[i].event != NULL; i++) { - normalized_event = oh_derive_string(&(logsrc2res->ep), + normalized_event = oh_derive_string(&(logsrc2res->ep), 0, snmp_bc_rpt_array[logsrc2res->rpt].res_info.event_array[i].event); if (!strcmp(dupstr_hash_data->event, normalized_event)) { g_free(normalized_event); Modified: openhpi/trunk/plugins/snmp_bc/snmp_bc_event.map =================================================================== --- openhpi/trunk/plugins/snmp_bc/snmp_bc_event.map 2006-06-02 16:49:57 UTC (rev 5849) +++ openhpi/trunk/plugins/snmp_bc/snmp_bc_event.map 2006-06-02 17:08:23 UTC (rev 5850) @@ -691,6 +691,10 @@ EN_FAULT_PS3_TEMP_WARN|0x0821C003|SAHPI_MAJOR|OVR_SEV,OVR_RID|"Power Supply 3 Temperature Warning" EN_FAULT_PS4_TEMP_WARN|0x0821C004|SAHPI_MAJOR|OVR_SEV,OVR_RID|"Power Supply 4 Temperature Warning" +# Power Module Fan Pack Average Speed (Percent of Max) Sensor + +# Power Module Fan Pack Average RPM Speed Sensor + ########################################### # Remote System Adapter (RSA) Unique Events ########################################### Modified: openhpi/trunk/plugins/snmp_bc/snmp_bc_inventory.c =================================================================== --- openhpi/trunk/plugins/snmp_bc/snmp_bc_inventory.c 2006-06-02 16:49:57 UTC (rev 5849) +++ openhpi/trunk/plugins/snmp_bc/snmp_bc_inventory.c 2006-06-02 17:08:23 UTC (rev 5850) @@ -1,35 +1,33 @@ /* -*- linux-c -*- * - * (C) Copyright IBM Corp. 2003, 2005 + * (C) Copyright IBM Corp. 2003, 2006 * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This - * file and program are licensed under a BSD style license. See + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This + * file and program are licensed under a BSD style license. See * the Copying file included with the OpenHPI distribution for * full licensing terms. * * Author(s): - * peter d phan <pd...@so...> + * Peter Phan <pd...@so...> * Renier Morales <re...@us...> - * - * 07/19/04 HPI-B Inventory */ #include <snmp_bc_plugin.h> static SaErrorT snmp_bc_build_idr( void *hnd, - SaHpiResourceIdT ResourceId, - SaHpiIdrIdT IdrId, - struct bc_inventory_record *i_record); + SaHpiResourceIdT ResourceId, + SaHpiIdrIdT IdrId, + struct bc_inventory_record *i_record); static SaErrorT snmp_bc_idr_build_field(struct snmp_bc_hnd *custom_handle, - SaHpiEntityPathT *ep, - const gchar *oidstr, - SaHpiIdrFieldT *thisField, - struct bc_idr_area *thisInventoryArea); + SaHpiEntityPathT *ep, + const gchar *oidstr, + SaHpiIdrFieldT *thisField, + struct bc_idr_area *thisInventoryArea); /************************************************************************/ /* Inventory functions */ @@ -70,7 +68,7 @@ i_record = (struct bc_inventory_record *)g_malloc0(sizeof(struct bc_inventory_record)); if (!i_record) { - dbg("Cannot allocate working buffer memory"); + dbg("Cannot allocate memory."); return(SA_ERR_HPI_OUT_OF_MEMORY); } @@ -138,7 +136,7 @@ i_record = (struct bc_inventory_record *)g_malloc0(sizeof(struct bc_inventory_record)); if (!i_record) { - dbg("Cannot allocate working buffer memory"); + dbg("Cannot allocate memory."); return(SA_ERR_HPI_OUT_OF_MEMORY); } @@ -257,7 +255,7 @@ i_record = (struct bc_inventory_record *)g_malloc0(sizeof(struct bc_inventory_record)); if (!i_record) { - dbg("Cannot allocate working buffer memory"); + dbg("Cannot allocate memory."); return(SA_ERR_HPI_OUT_OF_MEMORY); } @@ -305,7 +303,6 @@ return rv; } - /** * snmp_bc_add_idr_field: * @hnd: Pointer to handler's data @@ -326,7 +323,6 @@ return SA_ERR_HPI_READ_ONLY; } - /** * snmp_bc_set_idr_field: * @hnd: Pointer to handler's data @@ -347,7 +343,6 @@ return SA_ERR_HPI_READ_ONLY; } - /** * snmp_bc_del_idr_field: * @hnd: Pointer to handler's data @@ -383,7 +378,6 @@ * SA_OK - Normal * SA_ERR_HPI_INVALID_PARAMS - If any in pointer is NULL * SA_ERR_HPI_NOT_PRESENT - If Inventory RDR is not found in rptcache - * **/ static SaErrorT snmp_bc_build_idr( void *hnd, @@ -442,13 +436,10 @@ rv = snmp_bc_idr_build_field(custom_handle, &valEntity, s->mib.oid.OidChassisType, &thisField, &thisInventoryArea); if (rv != SA_OK) - dbg("Having problem building Chassis Idr Field, continue to next field.\n"); + dbg("Cannot build Chassis Idr Field, continue to next field."); } - /** - * - */ memset(thisField.Field.Data, 0, SAHPI_MAX_TEXT_BUFFER_LENGTH); thisField.FieldId = 2; thisField.Type = SAHPI_IDR_FIELDTYPE_MFG_DATETIME; @@ -460,26 +451,27 @@ strcpy((char *)thisField.Field.Data,"SAHPI_TIME_UNSPECIFIED"); } else { - rv = snmp_bc_oid_snmp_get(custom_handle, &valEntity,s->mib.oid.OidMfgDateTime, &get_value, SAHPI_TRUE); + rv = snmp_bc_oid_snmp_get(custom_handle, &valEntity, 0, + s->mib.oid.OidMfgDateTime, &get_value, SAHPI_TRUE); if(rv != SA_OK) { - dbg("SNMP could not read %s; Type=%d.\n",s->mib.oid.OidMfgDateTime,get_value.type); + dbg("SNMP could not read %s; Type=%d.", + s->mib.oid.OidMfgDateTime, get_value.type); return rv; } else if((rv == SA_OK) && (get_value.type == ASN_OCTET_STR )) { thisField.Field.DataLength = get_value.str_len; thisField.Field.DataType = SAHPI_TL_TYPE_TEXT; memcpy(thisField.Field.Data, get_value.string, get_value.str_len); } else - dbg("%s Invalid type for MfgDateTime inventory data\n",s->mib.oid.OidMfgDateTime); + dbg("%s Invalid type for MfgDateTime inventory data", + s->mib.oid.OidMfgDateTime); } if (thisField.Field.DataLength != 0) { - memcpy(&thisInventoryArea.field[thisInventoryArea.idrareas.NumFields], &thisField, sizeof(SaHpiIdrFieldT)); + memcpy(&thisInventoryArea.field[thisInventoryArea.idrareas.NumFields], + &thisField, sizeof(SaHpiIdrFieldT)); thisInventoryArea.idrareas.NumFields++; } - /** - * - */ thisField.FieldId = 3; thisField.Type = SAHPI_IDR_FIELDTYPE_MANUFACTURER; @@ -487,13 +479,9 @@ rv = snmp_bc_idr_build_field(custom_handle, &valEntity, s->mib.oid.OidManufacturer, &thisField, &thisInventoryArea); if (rv != SA_OK) - dbg("Having problem building ManufacturerId Idr Field, continue to next field.\n"); + dbg("Cannot build ManufacturerId Idr Field, continue to next field."); } - /** - * - */ - thisField.FieldId = 4; thisField.Type = SAHPI_IDR_FIELDTYPE_PRODUCT_NAME; @@ -501,13 +489,9 @@ rv = snmp_bc_idr_build_field(custom_handle, &valEntity, s->mib.oid.OidProductName, &thisField, &thisInventoryArea); if (rv != SA_OK) - dbg("Having problem building ProductName Idr Field, continue to next field.\n"); + dbg("Cannot build ProductName Idr Field, continue to next field."); } - /** - * - */ - thisField.FieldId = 5; thisField.Type = SAHPI_IDR_FIELDTYPE_PRODUCT_VERSION; @@ -515,13 +499,9 @@ rv = snmp_bc_idr_build_field(custom_handle, &valEntity, s->mib.oid.OidProductVersion, &thisField, &thisInventoryArea); if (rv != SA_OK) - dbg("Having problem building ProductVersion Idr Field, continue to next field.\n"); + dbg("Cannot build ProductVersion Idr Field, continue to next field."); } - /** - * - */ - thisField.FieldId = 6; thisField.Type = SAHPI_IDR_FIELDTYPE_SERIAL_NUMBER; @@ -529,13 +509,9 @@ rv = snmp_bc_idr_build_field(custom_handle, &valEntity, s->mib.oid.OidSerialNumber, &thisField, &thisInventoryArea); if (rv != SA_OK) - dbg("Having problem building SerialNumber Idr Field, continue to next field.\n"); + dbg("Cannot build SerialNumber Idr Field, continue to next field."); } - /** - * - */ - thisField.FieldId = 7; thisField.Type = SAHPI_IDR_FIELDTYPE_PART_NUMBER; @@ -543,13 +519,9 @@ rv = snmp_bc_idr_build_field(custom_handle, &valEntity, s->mib.oid.OidPartNumber, &thisField, &thisInventoryArea); if (rv != SA_OK) - dbg("Having problem building PartNumber Idr Field, continue to next field.\n"); + dbg("Cannot build PartNumber Idr Field, continue to next field."); } - /** - * - */ - thisField.FieldId = 8; thisField.Type = SAHPI_IDR_FIELDTYPE_FILE_ID; @@ -557,13 +529,9 @@ rv = snmp_bc_idr_build_field(custom_handle, &valEntity, s->mib.oid.OidFileId, &thisField, &thisInventoryArea); if (rv != SA_OK) - dbg("Having problem building FileID Idr Field, continue to next field.\n"); + dbg("Cannot build FileID Idr Field, continue to next field."); } - /** - * - */ - thisField.FieldId = 9; thisField.Type = SAHPI_IDR_FIELDTYPE_ASSET_TAG; @@ -571,7 +539,7 @@ rv = snmp_bc_idr_build_field(custom_handle, &valEntity, s->mib.oid.OidAssetTag, &thisField, &thisInventoryArea); if (rv != SA_OK) - dbg("Having problem building AssetTag Idr Field, continue ...\n"); + dbg("Cannot build AssetTag Idr Field, continue ..."); } memcpy( &(i_record->area[0]), &thisInventoryArea, sizeof(struct bc_idr_area)); @@ -596,7 +564,6 @@ * SA_OK - Normal * SA_ERR_HPI_INVALID_PARAMS - If any in pointer is NULL * SA_ERR_HPI_INTERNAL_ERROR - If can not process get_value.type from bc snmp agent - * **/ static @@ -613,15 +580,13 @@ return(SA_ERR_HPI_INVALID_PARAMS); rv = SA_OK; - /** - * - */ + memset(thisField->Field.Data, 0, SAHPI_MAX_TEXT_BUFFER_LENGTH); thisField->Field.DataLength = 0; /* SaHpiUint8T */ - rv = snmp_bc_oid_snmp_get(custom_handle, ep, oidstr, &get_value, SAHPI_TRUE); + rv = snmp_bc_oid_snmp_get(custom_handle, ep, 0, oidstr, &get_value, SAHPI_TRUE); if(rv != SA_OK) { - dbg("SNMP could not read %s; Type=%d.\n",oidstr ,get_value.type); + dbg("SNMP could not read %s; Type=%d.", oidstr, get_value.type); return(rv); } else { if( get_value.type == ASN_OCTET_STR ) { @@ -634,13 +599,13 @@ snprintf((char *)thisField->Field.Data, SAHPI_MAX_TEXT_BUFFER_LENGTH, "%ld",get_value.integer ); } else - dbg("%s Invalid data type for Chassis data\n",oidstr); + dbg("%s Invalid data type for Chassis data", oidstr); } if (thisField->Field.DataLength != 0) { memcpy(&thisInventoryArea->field[thisInventoryArea->idrareas.NumFields], - thisField, sizeof(SaHpiIdrFieldT)); + thisField, sizeof(SaHpiIdrFieldT)); thisInventoryArea->idrareas.NumFields++; } @@ -678,5 +643,3 @@ void * oh_del_idr_field (void *, SaHpiResourceIdT, SaHpiIdrIdT, SaHpiEntryIdT, SaHpiEntryIdT) __attribute__ ((weak, alias("snmp_bc_del_idr_field"))); - - Modified: openhpi/trunk/plugins/snmp_bc/snmp_bc_power.c =================================================================== --- openhpi/trunk/plugins/snmp_bc/snmp_bc_power.c 2006-06-02 16:49:57 UTC (rev 5849) +++ openhpi/trunk/plugins/snmp_bc/snmp_bc_power.c 2006-06-02 17:08:23 UTC (rev 5850) @@ -1,11 +1,11 @@ /* -*- linux-c -*- * - * (C) Copyright IBM Corp. 2004, 2005 + * (C) Copyright IBM Corp. 2004, 2006 * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This - * file and program are licensed under a BSD style license. See + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This + * file and program are licensed under a BSD style license. See * the Copying file included with the OpenHPI distribution for * full licensing terms. * @@ -81,7 +81,7 @@ } /* Read power state of resource */ - err = snmp_bc_oid_snmp_get(custom_handle, &(rpt->ResourceEntity), + err = snmp_bc_oid_snmp_get(custom_handle, &(rpt->ResourceEntity), 0, resinfo->mib.OidPowerState, &get_value, SAHPI_TRUE); if (!err && (get_value.type == ASN_INTEGER)) { switch (get_value.integer) { @@ -174,7 +174,7 @@ switch (state) { case SAHPI_POWER_OFF: set_value.integer = 0; - err = snmp_bc_oid_snmp_set(custom_handle, &(rpt->ResourceEntity), + err = snmp_bc_oid_snmp_set(custom_handle, &(rpt->ResourceEntity), 0, resinfo->mib.OidPowerOnOff, set_value); if (err) { dbg("Cannot set SNMP OID=%s; Type=%d.", @@ -184,7 +184,7 @@ break; case SAHPI_POWER_ON: set_value.integer = 1; - err = snmp_bc_oid_snmp_set(custom_handle, &(rpt->ResourceEntity), + err = snmp_bc_oid_snmp_set(custom_handle, &(rpt->ResourceEntity), 0, resinfo->mib.OidPowerOnOff, set_value); if (err) { dbg("Cannot set SNMP OID=%s; Type=%d.", @@ -213,5 +213,3 @@ void * oh_set_power_state (void *, SaHpiResourceIdT, SaHpiPowerStateT) __attribute__ ((weak, alias("snmp_bc_set_power_state"))); - - Modified: openhpi/trunk/plugins/snmp_bc/snmp_bc_reset.c =================================================================== --- openhpi/trunk/plugins/snmp_bc/snmp_bc_reset.c 2006-06-02 16:49:57 UTC (rev 5849) +++ openhpi/trunk/plugins/snmp_bc/snmp_bc_reset.c 2006-06-02 17:08:23 UTC (rev 5850) @@ -1,11 +1,11 @@ /* -*- linux-c -*- * - * (C) Copyright IBM Corp. 2004, 2005 + * (C) Copyright IBM Corp. 2004, 2006 * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This - * file and program are licensed under a BSD style license. See + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This + * file and program are licensed under a BSD style license. See * the Copying file included with the OpenHPI distribution for * full licensing terms. * @@ -148,8 +148,8 @@ set_value.str_len = 1; set_value.integer = 1; - err = snmp_bc_oid_snmp_set(custom_handle, &(rpt->ResourceEntity), - resinfo->mib.OidReset, set_value); + err = snmp_bc_oid_snmp_set(custom_handle, &(rpt->ResourceEntity), 0, + resinfo->mib.OidReset, set_value); if (err) { dbg("Cannot set SNMP OID=%s; Type=%d.", resinfo->mib.OidReset, set_value.type); snmp_bc_unlock_handler(custom_handle); Modified: openhpi/trunk/plugins/snmp_bc/snmp_bc_resources.c =================================================================== --- openhpi/trunk/plugins/snmp_bc/snmp_bc_resources.c 2006-06-02 16:49:57 UTC (rev 5849) +++ openhpi/trunk/plugins/snmp_bc/snmp_bc_resources.c 2006-06-02 17:08:23 UTC (rev 5850) @@ -776,6 +776,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = ".1.3.6.1.4.1.2.3.51.2.2.1.5.1.0", + .loc_offset = 0, }, .cur_state = SAHPI_ES_UNSPECIFIED, .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, @@ -1320,6 +1321,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = ".1.3.6.1.4.1.2.3.51.2.2.1.1.2.0", + .loc_offset = 0, }, .cur_state = SAHPI_ES_UNSPECIFIED, .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, @@ -1464,7 +1466,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = ".1.3.6.1.4.1.2.3.51.2.2.2.1.8.0", - /* Default HDW thresholds: Warning 1.62<>1.89; Warning Reset 1.86<>1.74 */ + .loc_offset = 0, .threshold_oids = { .LowMajor = ".1.3.6.1.4.1.2.3.51.2.2.20.2.1.1.10.6", .UpMajor = ".1.3.6.1.4.1.2.3.51.2.2.20.2.1.1.6.6", @@ -1568,8 +1570,6 @@ .ReadThold = SAHPI_STM_LOW_MAJOR | SAHPI_STM_UP_MAJOR | SAHPI_STM_LOW_HYSTERESIS | SAHPI_STM_UP_HYSTERESIS, .WriteThold = 0, - /* Default HDW thresholds: - Warning 2.25<>2.63; Warning Reset 2.58<>2.42 */ }, .Oem = 0, }, @@ -1578,7 +1578,8 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = ".1.3.6.1.4.1.2.3.51.2.2.2.1.6.0", - .threshold_oids = { + .loc_offset = 0, + .threshold_oids = { .LowMajor = ".1.3.6.1.4.1.2.3.51.2.2.20.2.1.1.10.5", .UpMajor = ".1.3.6.1.4.1.2.3.51.2.2.20.2.1.1.6.5", .TotalPosThdHysteresis = ".1.3.6.1.4.1.2.3.51.2.2.20.2.1.1.7.5", @@ -1681,8 +1682,6 @@ .ReadThold = SAHPI_STM_LOW_MAJOR | SAHPI_STM_UP_MAJOR | SAHPI_STM_LOW_HYSTERESIS | SAHPI_STM_UP_HYSTERESIS, .WriteThold = 0, - /* Default HDW thresholds: - Warning 3.00<>3.47; Warning Reset 3.40<>3.20 */ }, .Oem = 0, }, @@ -1691,6 +1690,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = ".1.3.6.1.4.1.2.3.51.2.2.2.1.2.0", + .loc_offset = 0, .threshold_oids = { .LowMajor = ".1.3.6.1.4.1.2.3.51.2.2.20.2.1.1.10.2", .UpMajor = ".1.3.6.1.4.1.2.3.51.2.2.20.2.1.1.6.2", @@ -1794,8 +1794,6 @@ .ReadThold = SAHPI_STM_LOW_MAJOR | SAHPI_STM_UP_MAJOR | SAHPI_STM_LOW_HYSTERESIS | SAHPI_STM_UP_HYSTERESIS, .WriteThold = 0, - /* Default HDW thresholds: - Warning 4.50<>5.25; Warning Reset 5.15<>4.85 */ }, .Oem = 0, }, @@ -1804,7 +1802,8 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = ".1.3.6.1.4.1.2.3.51.2.2.2.1.1.0", - .threshold_oids = { + .loc_offset = 0, + .threshold_oids = { .LowMajor = ".1.3.6.1.4.1.2.3.51.2.2.20.2.1.1.10.1", .UpMajor = ".1.3.6.1.4.1.2.3.51.2.2.20.2.1.1.6.1", .TotalPosThdHysteresis = ".1.3.6.1.4.1.2.3.51.2.2.20.2.1.1.7.1", @@ -1907,8 +1906,6 @@ .ReadThold = SAHPI_STM_LOW_MAJOR | SAHPI_STM_UP_MAJOR | SAHPI_STM_LOW_HYSTERESIS | SAHPI_STM_UP_HYSTERESIS, .WriteThold = 0, - /* Default HDW thresholds: - Warning -5.50<>-4.75; Warning Reset -4.85<>-5.15 */ }, .Oem = 0, }, @@ -1917,6 +1914,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = ".1.3.6.1.4.1.2.3.51.2.2.2.1.5.0", + .loc_offset = 0, .threshold_oids = { .LowMajor = ".1.3.6.1.4.1.2.3.51.2.2.20.2.1.1.10.4", .UpMajor = ".1.3.6.1.4.1.2.3.51.2.2.20.2.1.1.6.4", @@ -2020,8 +2018,6 @@ .ReadThold = SAHPI_STM_LOW_MAJOR | SAHPI_STM_UP_MAJOR | SAHPI_STM_LOW_HYSTERESIS | SAHPI_STM_UP_HYSTERESIS, .WriteThold = 0, - /* Default HDW thresholds: - Warning 10.80<>12.60; Warning Reset 12.34<>11.64 */ }, .Oem = 0, }, @@ -2030,6 +2026,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = ".1.3.6.1.4.1.2.3.51.2.2.2.1.3.0", + .loc_offset = 0, .threshold_oids = { .LowMajor = ".1.3.6.1.4.1.2.3.51.2.2.20.2.1.1.10.3", .UpMajor = ".1.3.6.1.4.1.2.3.51.2.2.20.2.1.1.6.3", @@ -2359,6 +2356,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = ".1.3.6.1.4.1.2.3.51.2.22.4.34.0", + .loc_offset = 0, }, .cur_state = SAHPI_ES_UNSPECIFIED, .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, @@ -2403,6 +2401,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = ".1.3.6.1.4.1.2.3.51.2.22.4.34.0", + .loc_offset = 0, }, .cur_state = SAHPI_ES_UNSPECIFIED, .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, @@ -2623,6 +2622,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = ".1.3.6.1.4.1.2.3.51.2.22.1.5.3.1.6.x", + .loc_offset = 0, .threshold_oids = { .UpCritical = ".1.3.6.1.4.1.2.3.51.2.22.1.5.4.1.6.x", .UpMajor = ".1.3.6.1.4.1.2.3.51.2.22.1.5.4.1.7.x", @@ -2721,6 +2721,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = ".1.3.6.1.4.1.2.3.51.2.22.1.5.3.1.7.x", + .loc_offset = 0, .threshold_oids = { .UpCritical = ".1.3.6.1.4.1.2.3.51.2.22.1.5.4.1.9.x", .UpMajor = ".1.3.6.1.4.1.2.3.51.2.22.1.5.4.1.10.x", @@ -2819,6 +2820,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = ".1.3.6.1.4.1.2.3.51.2.22.1.5.3.1.8.x", + .loc_offset = 0, .threshold_oids = { .UpCritical = ".1.3.6.1.4.1.2.3.51.2.22.1.5.4.1.12.x", .UpMajor = ".1.3.6.1.4.1.2.3.51.2.22.1.5.4.1.13.x", @@ -2917,6 +2919,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = ".1.3.6.1.4.1.2.3.51.2.22.1.5.3.1.9.x", + .loc_offset = 0, .threshold_oids = { .UpCritical = ".1.3.6.1.4.1.2.3.51.2.22.1.5.4.1.15.x", .UpMajor = ".1.3.6.1.4.1.2.3.51.2.22.1.5.4.1.16.x", @@ -3023,6 +3026,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = ".1.3.6.1.4.1.2.3.51.2.22.1.5.5.1.12.x", + .loc_offset = 0, .threshold_oids = { .UpMajor = ".1.3.6.1.4.1.2.3.51.2.22.1.5.6.1.18.x", .LowMajor = ".1.3.6.1.4.1.2.3.51.2.22.1.5.6.1.19.x", @@ -3114,6 +3118,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = ".1.3.6.1.4.1.2.3.51.2.22.1.5.5.1.11.x", + .loc_offset = 0, .threshold_oids = { .UpMajor = ".1.3.6.1.4.1.2.3.51.2.22.1.5.6.1.16.x", .LowMajor = ".1.3.6.1.4.1.2.3.51.2.22.1.5.6.1.17.x", @@ -3223,6 +3228,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = ".1.3.6.1.4.1.2.3.51.2.22.1.5.5.1.10.x", + .loc_offset = 0, .threshold_oids = { .UpMajor = ".1.3.6.1.4.1.2.3.51.2.22.1.5.6.1.14.x", .LowMajor = ".1.3.6.1.4.1.2.3.51.2.22.1.5.6.1.15.x", @@ -3332,6 +3338,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = ".1.3.6.1.4.1.2.3.51.2.22.1.5.5.1.7.x", + .loc_offset = 0, .threshold_oids = { .UpMajor = ".1.3.6.1.4.1.2.3.51.2.22.1.5.6.1.8.x", .LowMajor = ".1.3.6.1.4.1.2.3.51.2.22.1.5.6.1.9.x", @@ -3441,6 +3448,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = ".1.3.6.1.4.1.2.3.51.2.22.1.5.5.1.6.x", + .loc_offset = 0, .threshold_oids = { .UpMajor = ".1.3.6.1.4.1.2.3.51.2.22.1.5.6.1.6.x", .LowMajor = ".1.3.6.1.4.1.2.3.51.2.22.1.5.6.1.7.x", @@ -3550,6 +3558,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = ".1.3.6.1.4.1.2.3.51.2.22.1.5.5.1.8.x", + .loc_offset = 0, .threshold_oids = { .UpMajor = ".1.3.6.1.4.1.2.3.51.2.22.1.5.6.1.10.x", .LowMajor = ".1.3.6.1.4.1.2.3.51.2.22.1.5.6.1.11.x", @@ -3650,6 +3659,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = ".1.3.6.1.4.1.2.3.51.2.22.1.5.5.1.13.x", + .loc_offset = 0, }, .cur_state = SAHPI_ES_UNSPECIFIED, .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, @@ -3970,6 +3980,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = "discovered", + .loc_offset = 0, .threshold_oids = { .UpCritical = "discovered", .UpMajor = "discovered", @@ -4071,6 +4082,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = "discovered", + .loc_offset = 0, .threshold_oids = { .UpCritical = "discovered", .UpMajor = "discovered", @@ -4172,6 +4184,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = "discovered", + .loc_offset = 0, .threshold_oids = { .UpCritical = "discovered", .UpMajor = "discovered", @@ -4273,6 +4286,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = "discovered", + .loc_offset = 0, .threshold_oids = { .UpCritical = "discovered", .UpMajor = "discovered", @@ -4383,6 +4397,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = "discovered", + .loc_offset = 0, .threshold_oids = { .UpMajor = "discovered", .LowMajor = "discovered", @@ -4494,6 +4509,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = "discovered", + .loc_offset = 0, .threshold_oids = { .UpMajor = "discovered", .LowMajor = "discovered", @@ -4588,6 +4604,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = "discovered", + .loc_offset = 0, .threshold_oids = { .UpMajor = "discovered", .LowMajor = "discovered", @@ -4699,6 +4716,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = "discovered", + .loc_offset = 0, .threshold_oids = { .UpMajor = "discovered", .LowMajor = "discovered", @@ -4792,7 +4810,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = "discovered", - /* Default HDW thresholds: Warning 1.62<>1.89; Warning Reset 1.86<>1.74 */ + .loc_offset = 0, .threshold_oids = { .LowMajor = "discovered", .UpMajor = "discovered", @@ -4903,7 +4921,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = "discovered", - /* Default HDW thresholds: Warning 1.62<>1.89; Warning Reset 1.86<>1.74 */ + .loc_offset = 0, .threshold_oids = { .LowMajor = "discovered", .UpMajor = "discovered", @@ -4998,6 +5016,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = "discovered", + .loc_offset = 0, .threshold_oids = { .UpMajor = "discovered", .LowMajor = "discovered", @@ -5109,6 +5128,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = "discovered", + .loc_offset = 0, .threshold_oids = { .UpMajor = "discovered", .LowMajor = "discovered", @@ -5203,6 +5223,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = "discovered", + .loc_offset = 0, .threshold_oids = { .UpMajor = "discovered", .LowMajor = "discovered", @@ -5314,6 +5335,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = "discovered", + .loc_offset = 0, .threshold_oids = { .UpMajor = "discovered", .LowMajor = "discovered", @@ -5408,6 +5430,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = "discovered", + .loc_offset = 0, .threshold_oids = { .UpMajor = "discovered", .LowMajor = "discovered", @@ -5519,6 +5542,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = "discovered", + .loc_offset = 0, .threshold_oids = { .UpMajor = "discovered", .LowMajor = "discovered", @@ -5613,6 +5637,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = "discovered", + .loc_offset = 0, .threshold_oids = { .UpMajor = "discovered", .LowMajor = "discovered", @@ -5725,6 +5750,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = "discovered", + .loc_offset = 0, .threshold_oids = { .UpMajor = "discovered", .LowMajor = "discovered", @@ -5836,6 +5862,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = "discovered", + .loc_offset = 0, .threshold_oids = { .UpMajor = "discovered", .LowMajor = "discovered", @@ -5922,6 +5949,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = "discovered", + .loc_offset = 0, .threshold_oids = { .UpMajor = "discovered", .LowMajor = "discovered", @@ -6008,6 +6036,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = "discovered", + .loc_offset = 0, .threshold_oids = { .UpMajor = "discovered", .LowMajor = "discovered", @@ -6102,6 +6131,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = "discovered", + .loc_offset = 0, .threshold_oids = { .UpMajor = "discovered", .LowMajor = "discovered", @@ -6180,6 +6210,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = ".1.3.6.1.4.1.2.3.51.2.22.1.5.3.1.10.x", + .loc_offset = 0, .threshold_oids = { .UpCritical = ".1.3.6.1.4.1.2.3.51.2.22.1.5.4.1.18.x", .UpMajor = ".1.3.6.1.4.1.2.3.51.2.22.1.5.4.1.19.x", @@ -6585,6 +6616,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = "discovered", + .loc_offset = 0, .threshold_oids = { .UpCritical = "discovered", .UpMajor = "discovered", @@ -6655,6 +6687,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = "discovered", + .loc_offset = 0, .threshold_oids = { .UpCritical = "discovered", .UpMajor = "discovered", @@ -6733,6 +6766,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = "discovered", + .loc_offset = 0, .threshold_oids = { .UpMajor = "discovered", .LowMajor = "discovered", @@ -6811,6 +6845,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = "discovered", + .loc_offset = 0, .threshold_oids = { .UpMajor = "discovered", .LowMajor = "discovered", @@ -6976,6 +7011,7 @@ .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, .oid = ".1.3.6.1.4.1.2.3.51.2.2.3.x.0", + .loc_offset = 0, }, .cur_state = SAHPI_ES_UNSPECIFIED, .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, @@ -7002,6 +7038,76 @@ {} /* Terminate array with a null element */ }; +/* BladeCenter H specific fan sensors */ +#define SNMP_BC_LAST_COMMON_FAN_SENSOR 2 +struct snmp_bc_sensor snmp_bc_fan_sensors_bch[] = { + /* Fan RPM Speed Sensor */ + { + .index = 1, + .sensor = { + .Num = SNMP_BC_LAST_COMMON_FAN_SENSOR + 1, + .Type = SAHPI_FAN, + .Category = SAHPI_EC_PRED_FAIL, + .EnableCtrl = SAHPI_FALSE, + .EventCtrl = SAHPI_SEC_READ_ONLY, + .Events = SAHPI_ES_PRED_FAILURE_ASSERT | SAHPI_ES_PRED_FAILURE_DEASSERT, + .DataFormat = { + .IsSupported = SAHPI_TRUE, + .ReadingType = SAHPI_SENSOR_READING_TYPE_FLOAT64, + .BaseUnits = SAHPI_SU_RPM, + .ModifierUnits = SAHPI_SU_UNSPECIFIED, + .ModifierUse = SAHPI_SMUU_NONE, + .Percentage = SAHPI_FALSE, + .Range = { + .Flags = SAHPI_SRF_MAX | SAHPI_SRF_MIN, + .Max = { + .IsSupported = SAHPI_TRUE, + .Type = SAHPI_SENSOR_READING_TYPE_FLOAT64, + .Value = { + .SensorFloat64 = 4000, + }, + }, + .Min = { + .IsSupported = SAHPI_TRUE, + .Type = SAHPI_SENSOR_READING_TYPE_FLOA... [truncated message content] |
From: <ses...@us...> - 2006-06-02 16:50:04
|
Revision: 5849 Author: sesherman Date: 2006-06-02 09:49:57 -0700 (Fri, 02 Jun 2006) ViewCVS: http://svn.sourceforge.net/openhpi/?rev=5849&view=rev Log Message: ----------- #1499578 Add offset to oh_derive_string Modified Paths: -------------- openhpi/trunk/utils/epath_utils.c openhpi/trunk/utils/epath_utils.h openhpi/trunk/utils/t/epath/ep_derive_001.c Modified: openhpi/trunk/utils/epath_utils.c =================================================================== --- openhpi/trunk/utils/epath_utils.c 2006-06-02 15:45:28 UTC (rev 5848) +++ openhpi/trunk/utils/epath_utils.c 2006-06-02 16:49:57 UTC (rev 5849) @@ -1,11 +1,11 @@ /* -*- linux-c -*- * - * (C) Copyright IBM Corp. 2003, 2004 + * (C) Copyright IBM Corp. 2003, 2006 * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This - * file and program are licensed under a BSD style license. See + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This + * file and program are licensed under a BSD style license. See * the Copying file included with the OpenHPI distribution for * full licensing terms. * @@ -13,7 +13,6 @@ * Steve Sherman <st...@us...> * Renier Morales <re...@us...> * Thomas Kanngieser <tho...@fc...> - * Chris Chia <cc...@us...> */ #include <glib.h> @@ -210,15 +209,6 @@ err = oh_init_bigtext(&tmpbuf); if (err) return(err); -#if 0 - /* Turn off strict HPI EP validation, for IPMI Direct - numeric entity type support */ - if (!oh_valid_ep(ep)) { - dbg("Invalid entity path"); - return(SA_ERR_HPI_INVALID_DATA); - } -#endif - locstr = (gchar *)g_malloc0(OH_MAX_LOCATION_DIGITS + 1); if (locstr == NULL) { dbg("No memory."); @@ -521,6 +511,7 @@ /********************************************************************** * oh_derive_string: * @ep - Pointer to entity's HPI SaHpiEntityPathT. + * @offset - Offset to add to Entity Path location. * @str - Un-normalized character string. * * This function "normalizes" a string (such as an SNMP OID) @@ -534,6 +525,15 @@ * * Returns a normalized string of ".1.3.6.1.4.1.2.3.51.2.22.1.5.1.1.5.3". * + * An offset is also supported and is added to all substituted numbers. + * For example, + * + * offset = 3 + * @str = ".1.3.6.1.4.1.2.3.x.2.22.1.5.1.1.5.x" + * @ep = {SAHPI_ENT_CHASSIS, 51}{SAHPI_ENT_SBC_BLADE, 3} + * + * Returns a normalized string of ".1.3.6.1.4.1.2.3.54.2.22.1.5.1.1.5.6". + * * If @str does not contain any 'x' characters, this routine still * allocates memory and returns a "normalized" string. In this case, * the normalized string is identical to @str. @@ -546,7 +546,7 @@ * Pointer to normalize string - Normal case. * NULL - Error. **********************************************************************/ -gchar * oh_derive_string(SaHpiEntityPathT *ep, const gchar *str) +gchar * oh_derive_string(SaHpiEntityPathT *ep, SaHpiEntityLocationT offset, const gchar *str) { gchar *new_str = NULL, *str_walker = NULL; gchar **fragments = NULL, **str_nodes = NULL; @@ -558,6 +558,11 @@ return(NULL); } + if (offset < 0) { + dbg("Invalid location offset."); + return(NULL); + } + for (num_epe = 0; ep->Entry[num_epe].EntityType != SAHPI_ENT_ROOT && num_epe < SAHPI_MAX_ENTITY_PATH; num_epe++); @@ -575,7 +580,7 @@ } /* trace("Number of blanks in str: %d, %s", num_blanks, str); */ if (num_blanks > num_epe) { - dbg("Number of replacments=%d > entity path elements=%d", num_blanks, num_epe); + dbg("Number of replacements=%d > entity path elements=%d", num_blanks, num_epe); return(NULL); } @@ -586,12 +591,13 @@ total_num_digits = 0; for (i=0; i<num_blanks; i++) { work_location_num = ep->Entry[num_blanks-1-i].EntityLocation; + if (offset) { work_location_num = work_location_num + offset; } for (num_digits = 1; (work_location_num = work_location_num/10) > 0; num_digits++); str_nodes[i] = g_malloc0((num_digits+1) * sizeof(gchar)); if (!str_nodes[i]) {dbg("Out of memory."); goto CLEANUP;} snprintf(str_nodes[i], (num_digits + 1) * sizeof(gchar), "%d", - ep->Entry[num_blanks - 1 - i].EntityLocation); + ep->Entry[num_blanks - 1 - i].EntityLocation + offset); /* trace("Location number: %s", str_nodes[i]); */ total_num_digits = total_num_digits + num_digits; } Modified: openhpi/trunk/utils/epath_utils.h =================================================================== --- openhpi/trunk/utils/epath_utils.h 2006-06-02 15:45:28 UTC (rev 5848) +++ openhpi/trunk/utils/epath_utils.h 2006-06-02 16:49:57 UTC (rev 5849) @@ -1,18 +1,17 @@ /* -*- linux-c -*- * - * (C) Copyright IBM Corp. 2003, 2004 + * (C) Copyright IBM Corp. 2003, 2006 * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This - * file and program are licensed under a BSD style license. See + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This + * file and program are licensed under a BSD style license. See * the Copying file included with the OpenHPI distribution for * full licensing terms. * * Author(s): * Steve Sherman <st...@us...> * Renier Morales <re...@us...> - * Chris Chia <cc...@us...> */ #ifndef __EPATH_UTILS_H @@ -66,7 +65,7 @@ SaHpiBoolT oh_valid_ep(const SaHpiEntityPathT *ep); -gchar * oh_derive_string(SaHpiEntityPathT *ep, const gchar *str); +gchar * oh_derive_string(SaHpiEntityPathT *ep, SaHpiEntityLocationT offset, const gchar *str); #ifdef __cplusplus } Modified: openhpi/trunk/utils/t/epath/ep_derive_001.c =================================================================== --- openhpi/trunk/utils/t/epath/ep_derive_001.c 2006-06-02 15:45:28 UTC (rev 5848) +++ openhpi/trunk/utils/t/epath/ep_derive_001.c 2006-06-02 16:49:57 UTC (rev 5849) @@ -49,7 +49,7 @@ in_oid = "1.x.3.x"; expected_oid = "1.99.3.100"; - oid = oh_derive_string(&ep, in_oid); + oid = oh_derive_string(&ep, 0, in_oid); if (strcmp(expected_oid, oid)) { g_free(oid); printf(" Error! Testcase failed. Line=%d\n", __LINE__); @@ -58,11 +58,27 @@ } g_free(oid); + + /* location offset testcase */ + in_oid = "1.x.3.x"; + expected_oid = "1.109.3.110"; + + oid = oh_derive_string(&ep, 10, in_oid); + if (strcmp(expected_oid, oid)) { + g_free(oid); + printf(" Error! Testcase failed. Line=%d\n", __LINE__); + printf(" Received OID=%s; Expected OID=%s\n", oid, expected_oid); + return -1; + } + + g_free(oid); + + /* No expansion testcase */ in_oid = "1.99.3.100"; expected_oid = "1.99.3.100"; - oid = oh_derive_string(&ep, in_oid); + oid = oh_derive_string(&ep, 0, in_oid); if (strcmp(expected_oid, oid)) { g_free(oid); printf(" Error! Testcase failed. Line=%d\n", __LINE__); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pd...@us...> - 2006-06-02 15:45:39
|
Revision: 5848 Author: pdphan Date: 2006-06-02 08:45:28 -0700 (Fri, 02 Jun 2006) ViewCVS: http://svn.sourceforge.net/openhpi/?rev=5848&view=rev Log Message: ----------- Add Slot Resources and their associated RDRs , Feature 1497740 Modified Paths: -------------- openhpi/trunk/plugins/snmp_bc/snmp_bc_resources.c Modified: openhpi/trunk/plugins/snmp_bc/snmp_bc_resources.c =================================================================== --- openhpi/trunk/plugins/snmp_bc/snmp_bc_resources.c 2006-06-02 15:45:10 UTC (rev 5847) +++ openhpi/trunk/plugins/snmp_bc/snmp_bc_resources.c 2006-06-02 15:45:28 UTC (rev 5848) @@ -1040,11 +1040,153 @@ }, .comment = "Power Domain 2 Redundancy Sensor", }, + { + .index = 6, + .sensor = { + .Num = BLADECENTER_SENSOR_NUM_MAX_POWER, + .Type = SAHPI_OTHER_UNITS_BASED_SENSOR, + .Category = SAHPI_EC_THRESHOLD, + .EnableCtrl = SAHPI_FALSE, + .EventCtrl = SAHPI_SEC_READ_ONLY, + .Events = 0x00, /* No event state */ + .DataFormat = { + .IsSupported = SAHPI_TRUE, + .ReadingType = SAHPI_SENSOR_READING_TYPE_UINT64, + .BaseUnits = SAHPI_SU_WATTS, + .ModifierUnits = SAHPI_SU_UNSPECIFIED, + .ModifierUse = SAHPI_SMUU_NONE, + .Percentage = SAHPI_FALSE, + .Range = { + .Flags = 0x00, + }, + }, + .ThresholdDefn = { + .IsAccessible = SAHPI_FALSE, + }, + .Oem = 0, + }, + .sensor_info = { + .mib = { + .not_avail_indicator_num = 0, + .write_only = SAHPI_FALSE, + .oid = ".1.3.6.1.4.1.2.3.51.2.2.10.2.1.1.8.1", + .threshold_oids = {}, + .threshold_write_oids = {}, + }, + .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, + .sensor_enabled = SAHPI_TRUE, + .events_enabled = SAHPI_FALSE, + .assert_mask = 0x00, + .deassert_mask = 0x00, + .event_array = { + {}, + }, + .reading2event = {}, + }, + .comment = "Maximum Power Capability", + }, + { + .index = 7, + .sensor = { + .Num = BLADECENTER_SENSOR_NUM_ASSIGNED_POWER, + .Type = SAHPI_OTHER_UNITS_BASED_SENSOR, + .Category = SAHPI_EC_THRESHOLD, + .EnableCtrl = SAHPI_FALSE, + .EventCtrl = SAHPI_SEC_READ_ONLY, + .Events = 0, + .DataFormat = { + .IsSupported = SAHPI_TRUE, + .ReadingType = SAHPI_SENSOR_READING_TYPE_UINT64, + .BaseUnits = SAHPI_SU_WATTS, + .ModifierUnits = SAHPI_SU_UNSPECIFIED, + .ModifierUse = SAHPI_SMUU_NONE, + .Percentage = SAHPI_FALSE, + .Range = { + .Flags = 0x00, + }, + }, + .ThresholdDefn = { + .IsAccessible = SAHPI_FALSE, + .ReadThold = 0, + .WriteThold = 0, + }, + .Oem = 0, + }, + .sensor_info = { + .mib = { + .not_avail_indicator_num = 0, + .write_only = SAHPI_FALSE, + .oid = ".1.3.6.1.4.1.2.3.51.2.2.10.2.1.1.7.1", + .threshold_oids = {}, + .threshold_write_oids = {}, + }, + .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, + .sensor_enabled = SAHPI_TRUE, + .events_enabled = SAHPI_FALSE, + .assert_mask = 0x00, + .deassert_mask = 0x00, + .event_array = { + {}, + }, + .reading2event = {}, + }, + .comment = "Assigned Power Capability", + }, + + { + .index = 8, + .sensor = { + .Num = BLADECENTER_SENSOR_NUM_MIN_POWER, + .Type = SAHPI_OTHER_UNITS_BASED_SENSOR, + .Category = SAHPI_EC_THRESHOLD, + .EnableCtrl = SAHPI_FALSE, + .EventCtrl = SAHPI_SEC_READ_ONLY, + .Events = 0, + .DataFormat = { + .IsSupported = SAHPI_TRUE, + .ReadingType = SAHPI_SENSOR_READING_TYPE_UINT64, + .BaseUnits = SAHPI_SU_WATTS, + .ModifierUnits = SAHPI_SU_UNSPECIFIED, + .ModifierUse = SAHPI_SMUU_NONE, + .Percentage = SAHPI_FALSE, + .Range = {}, + }, + .ThresholdDefn = { + .IsAccessible = SAHPI_FALSE, + .ReadThold = 0, + .WriteThold = 0, + }, + .Oem = 0, + }, + .sensor_info = { + .mib = { + .not_avail_indicator_num = 0, + .write_only = SAHPI_FALSE, + .oid = ".1.3.6.1.4.1.2.3.51.2.2.10.2.1.1.9.1", + .threshold_oids = {}, + .threshold_write_oids = {}, + }, + .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, + .sensor_enabled = SAHPI_TRUE, + .events_enabled = SAHPI_FALSE, + .assert_mask = 0, + .deassert_mask = 0, + .event_array = { + {}, + }, + .reading2event = {}, + }, + .comment = "Minumum Power Capability", + }, + {} /* Terminate array with a null element */ }; -#define SNMP_BC_MAX_COMMON_CHASSIS_SENSORS 5 +#define SNMP_BC_MAX_COMMON_CHASSIS_SENSORS 8 struct snmp_bc_sensor snmp_bc_chassis_sensors_bct[] = { /* Chassis Filter Sensor - event only */ @@ -2274,7 +2416,149 @@ }, .comment = "Standby MM Sensor", }, + { + .index = 16, + .sensor = { + .Num = BLADECENTER_SENSOR_NUM_MAX_POWER, + .Type = SAHPI_OTHER_UNITS_BASED_SENSOR, + .Category = SAHPI_EC_THRESHOLD, + .EnableCtrl = SAHPI_FALSE, + .EventCtrl = SAHPI_SEC_READ_ONLY, + .Events = 0x00, /* No event state */ + .DataFormat = { + .IsSupported = SAHPI_TRUE, + .ReadingType = SAHPI_SENSOR_READING_TYPE_UINT64, + .BaseUnits = SAHPI_SU_WATTS, + .ModifierUnits = SAHPI_SU_UNSPECIFIED, + .ModifierUse = SAHPI_SMUU_NONE, + .Percentage = SAHPI_FALSE, + .Range = { + .Flags = 0x00, + }, + }, + .ThresholdDefn = { + .IsAccessible = SAHPI_FALSE, + }, + .Oem = 0, + }, + .sensor_info = { + .mib = { + .not_avail_indicator_num = 0, + .write_only = SAHPI_FALSE, + .oid = ".1.3.6.1.4.1.2.3.51.2.2.10.2.1.1.8.1", + .threshold_oids = {}, + .threshold_write_oids = {}, + }, + .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, + .sensor_enabled = SAHPI_TRUE, + .events_enabled = SAHPI_FALSE, + .assert_mask = 0x00, + .deassert_mask = 0x00, + .event_array = { + {}, + }, + .reading2event = {}, + }, + .comment = "Maximum Power Capability", + }, + { + .index = 17, + .sensor = { + .Num = BLADECENTER_SENSOR_NUM_ASSIGNED_POWER, + .Type = SAHPI_OTHER_UNITS_BASED_SENSOR, + .Category = SAHPI_EC_THRESHOLD, + .EnableCtrl = SAHPI_FALSE, + .EventCtrl = SAHPI_SEC_READ_ONLY, + .Events = 0, + .DataFormat = { + .IsSupported = SAHPI_TRUE, + .ReadingType = SAHPI_SENSOR_READING_TYPE_UINT64, + .BaseUnits = SAHPI_SU_WATTS, + .ModifierUnits = SAHPI_SU_UNSPECIFIED, + .ModifierUse = SAHPI_SMUU_NONE, + .Percentage = SAHPI_FALSE, + .Range = { + .Flags = 0x00, + }, + }, + .ThresholdDefn = { + .IsAccessible = SAHPI_FALSE, + .ReadThold = 0, + .WriteThold = 0, + }, + .Oem = 0, + }, + .sensor_info = { + .mib = { + .not_avail_indicator_num = 0, + .write_only = SAHPI_FALSE, + .oid = ".1.3.6.1.4.1.2.3.51.2.2.10.2.1.1.7.1", + .threshold_oids = {}, + .threshold_write_oids = {}, + }, + .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, + .sensor_enabled = SAHPI_TRUE, + .events_enabled = SAHPI_FALSE, + .assert_mask = 0x00, + .deassert_mask = 0x00, + .event_array = { + {}, + }, + .reading2event = {}, + }, + .comment = "Assigned Power Capability", + }, + + { + .index = 18, + .sensor = { + .Num = BLADECENTER_SENSOR_NUM_MIN_POWER, + .Type = SAHPI_OTHER_UNITS_BASED_SENSOR, + .Category = SAHPI_EC_THRESHOLD, + .EnableCtrl = SAHPI_FALSE, + .EventCtrl = SAHPI_SEC_READ_ONLY, + .Events = 0, + .DataFormat = { + .IsSupported = SAHPI_TRUE, + .ReadingType = SAHPI_SENSOR_READING_TYPE_UINT64, + .BaseUnits = SAHPI_SU_WATTS, + .ModifierUnits = SAHPI_SU_UNSPECIFIED, + .ModifierUse = SAHPI_SMUU_NONE, + .Percentage = SAHPI_FALSE, + .Range = {}, + }, + .ThresholdDefn = { + .IsAccessible = SAHPI_FALSE, + .ReadThold = 0, + .WriteThold = 0, + }, + .Oem = 0, + }, + .sensor_info = { + .mib = { + .not_avail_indicator_num = 0, + .write_only = SAHPI_FALSE, + .oid = ".1.3.6.1.4.1.2.3.51.2.2.10.2.1.1.9.1", + .threshold_oids = {}, + .threshold_write_oids = {}, + }, + .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, + .sensor_enabled = SAHPI_TRUE, + .events_enabled = SAHPI_FALSE, + .assert_mask = 0, + .deassert_mask = 0, + .event_array = { + {}, + }, + .reading2event = {}, + }, + .comment = "Minumum Power Capability", + }, + {} /* Terminate array with a null element */ }; @@ -7172,8 +7456,8 @@ .sensor_info = { .mib = { .not_avail_indicator_num = 0, - .write_only = SAHPI_FALSE, - .oid = ".1.3.6.1.4.1.2.3.51.2.2.10.2.1.1.8.1", + .write_only = SAHPI_FALSE, + .oid = ".1.3.6.1.4.1.2.3.51.2.2.10.2.1.1.8.1", /* Dummy OID to bypass test */ }, .cur_state = SAHPI_ES_ABSENT, .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, @@ -7217,9 +7501,7 @@ .mib = { .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, - .oid = ".1.3.6.1.4.1.2.3.51.2.2.10.2.1.1.8.1", /* pd1ModuleAllocatedPowerMax .2.1.1.8 - * pd2ModuleAllocatedPowerMax .3.1.1.8 - */ + .oid = ".1.3.6.1.4.1.2.3.51.2.2.10.2.1.1.8.1", .threshold_oids = {}, .threshold_write_oids = {}, }, @@ -7268,9 +7550,7 @@ .mib = { .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, - .oid = ".1.3.6.1.4.1.2.3.51.2.2.10.2.1.1.7.1", /* pd1ModuleAllocatedPowerCurrent .2.1.1.7 - * pd2ModuleAllocatedPowerCurrent .3.1.1.7 - */ + .oid = ".1.3.6.1.4.1.2.3.51.2.2.10.2.1.1.7.1", .threshold_oids = {}, .threshold_write_oids = {}, }, @@ -7317,9 +7597,7 @@ .mib = { .not_avail_indicator_num = 0, .write_only = SAHPI_FALSE, - .oid = ".1.3.6.1.4.1.2.3.51.2.2.10.2.1.1.9.1", /* pd1ModuleAllocatedPowerMin .2.1.1.9 - * pd2ModuleAllocatedPowerMin .3.1.1.9 - */ + .oid = ".1.3.6.1.4.1.2.3.51.2.2.10.2.1.1.9.1", .threshold_oids = {}, .threshold_write_oids = {}, }, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pd...@us...> - 2006-06-02 15:45:13
|
Revision: 5847 Author: pdphan Date: 2006-06-02 08:45:10 -0700 (Fri, 02 Jun 2006) ViewCVS: http://svn.sourceforge.net/openhpi/?rev=5847&view=rev Log Message: ----------- Add Slot Resources and their associated RDRs , Feature 1497740 Modified Paths: -------------- openhpi/trunk/plugins/snmp_bc/snmp_bc_sensor.c Modified: openhpi/trunk/plugins/snmp_bc/snmp_bc_sensor.c =================================================================== --- openhpi/trunk/plugins/snmp_bc/snmp_bc_sensor.c 2006-06-02 15:44:57 UTC (rev 5846) +++ openhpi/trunk/plugins/snmp_bc/snmp_bc_sensor.c 2006-06-02 15:45:10 UTC (rev 5847) @@ -1923,6 +1923,8 @@ SaHpiSensorNumT sid, SaHpiSensorReadingT *reading) { + +#define totalPower 0xEE guint slotnum; guint oidIndex; SaErrorT err; @@ -1933,19 +1935,19 @@ SaHpiRptEntryT *res; struct snmp_value get_value; struct snmp_value pm3_state, pm4_state; - struct oh_handler_state *handler; - struct snmp_bc_hnd *custom_handler; + struct oh_handler_state *handle; + struct snmp_bc_hnd *custom_handle; if (!hnd || !reading ) return(SA_ERR_HPI_INVALID_PARAMS); - handler = (struct oh_handler_state *) hnd; - custom_handler = (struct snmp_bc_hnd *)handler->data; + handle = (struct oh_handler_state *) hnd; + custom_handle = (struct snmp_bc_hnd *)handle->data; - res = oh_get_resource_by_id(handler->rptcache, rid); + res = oh_get_resource_by_id(handle->rptcache, rid); slotnum = res->ResourceEntity.Entry[0].EntityLocation; - rdr = oh_get_rdr_by_type(handler->rptcache, rid, SAHPI_SENSOR_RDR, sid); + rdr = oh_get_rdr_by_type(handle->rptcache, rid, SAHPI_SENSOR_RDR, sid); if (rdr == NULL) return(SA_ERR_HPI_NOT_PRESENT); oidIndex = SNMP_BC_NOT_VALID; @@ -1959,7 +1961,7 @@ break; case BLADECENTER_INTERCONNECT_SLOT: - if (custom_handler->platform == SNMP_BC_PLATFORM_BCT) { + if (custom_handle->platform == SNMP_BC_PLATFORM_BCT) { switch (slotnum) { case 1: oidIndex = 9; @@ -1982,7 +1984,7 @@ usepowerdomain1; - } else if (custom_handler->platform == SNMP_BC_PLATFORM_BC) { + } else if (custom_handle->platform == SNMP_BC_PLATFORM_BC) { switch (slotnum) { case 1: oidIndex = 7; @@ -2004,7 +2006,7 @@ } usepowerdomain1; - } else if (custom_handler->platform == SNMP_BC_PLATFORM_BCH) { + } else if (custom_handle->platform == SNMP_BC_PLATFORM_BCH) { switch (slotnum) { case 1: oidIndex = 9; @@ -2054,7 +2056,7 @@ break; case BLADECENTER_SYS_MGMNT_MODULE_SLOT: - if (custom_handler->platform == SNMP_BC_PLATFORM_BCT) { + if (custom_handle->platform == SNMP_BC_PLATFORM_BCT) { switch (slotnum) { case 1: oidIndex = 7; @@ -2070,7 +2072,7 @@ usepowerdomain1; - } else if (custom_handler->platform == SNMP_BC_PLATFORM_BC) { + } else if (custom_handle->platform == SNMP_BC_PLATFORM_BC) { switch (slotnum) { case 1: oidIndex = 5; @@ -2086,7 +2088,7 @@ usepowerdomain1; - } else if (custom_handler->platform == SNMP_BC_PLATFORM_BCH) { + } else if (custom_handle->platform == SNMP_BC_PLATFORM_BCH) { switch (slotnum) { case 1: oidIndex = 7; @@ -2108,27 +2110,15 @@ break; case BLADECENTER_FAN_SLOT: - if (custom_handler->platform == SNMP_BC_PLATFORM_BCT) { + if (custom_handle->platform == SNMP_BC_PLATFORM_BCT) { if ( (slotnum == 3) || (slotnum == 4)) { snprintf(oid, SNMP_BC_MAX_OID_LENGTH, "%s.%d", SNMP_BC_PMSTATE, 3); - err = snmp_bc_snmp_get(custom_handler, oid, &pm3_state, SAHPI_TRUE); - if (err != SA_OK) { - dbg("Not able to read OID %s\n", oid); - return(err); - } else if ((err == SA_OK) && (pm3_state.type != ASN_INTEGER)) { - dbg("Cannot get Power Reading %s\n", oid); - return(SA_ERR_HPI_INTERNAL_ERROR); - } + get_integer_object(oid, pm3_state); + // getsnmpvalue(pm3_state); snprintf(oid, SNMP_BC_MAX_OID_LENGTH, "%s.%d", SNMP_BC_PMSTATE, 4); - err = snmp_bc_snmp_get(custom_handler, oid, &pm4_state, SAHPI_TRUE); - if (err != SA_OK) { - dbg("Not able to read OID %s\n", oid); - return(err); - } else if ((err == SA_OK) && (pm4_state.type != ASN_INTEGER)) { - dbg("Cannot get Power Reading %s\n", oid); - return(SA_ERR_HPI_INTERNAL_ERROR); - } + get_integer_object(oid, pm4_state); + // getsnmpvalue(pm4_state); } switch (slotnum) { @@ -2168,7 +2158,7 @@ else usepowerdomain2; } - } else if (custom_handler->platform == SNMP_BC_PLATFORM_BC) { + } else if (custom_handle->platform == SNMP_BC_PLATFORM_BC) { switch (slotnum) { case 1: oidIndex = 3; @@ -2184,27 +2174,11 @@ usepowerdomain1; - } else if (custom_handler->platform == SNMP_BC_PLATFORM_BCH) { - switch (slotnum) { - case 1: - oidIndex = 3; - break; - case 2: - oidIndex = 4; - break; - case 3: - oidIndex = 5; - break; - - case 4: - oidIndex = 6; - break; - default: - dbg("Not one of the valid BC H Fan Slots.\n"); - return(SA_ERR_HPI_INTERNAL_ERROR); - break; - } - usepowerdomain1; + } else if (custom_handle->platform == SNMP_BC_PLATFORM_BCH) { + + /* Reading is not supported on BC-H */ + oidIndex = SNMP_BC_NOT_VALID; + thisOID = NULL; } else { dbg("Not one of the supported platform.\n"); @@ -2212,7 +2186,7 @@ } break; case SAHPI_ENT_PHYSICAL_SLOT: - if (custom_handler->platform == SNMP_BC_PLATFORM_BCT) { + if (custom_handle->platform == SNMP_BC_PLATFORM_BCT) { switch (slotnum) { case 1: oidIndex = 13; @@ -2251,7 +2225,7 @@ usepowerdomain2; } - } else if (custom_handler->platform == SNMP_BC_PLATFORM_BC) { + } else if (custom_handle->platform == SNMP_BC_PLATFORM_BC) { switch (slotnum) { case 1: oidIndex = 11; @@ -2308,7 +2282,7 @@ } else { usepowerdomain2; } - } else if (custom_handler->platform == SNMP_BC_PLATFORM_BCH) { + } else if (custom_handle->platform == SNMP_BC_PLATFORM_BCH) { switch (slotnum) { case 1: case 8: @@ -2355,7 +2329,55 @@ return(SA_ERR_HPI_INTERNAL_ERROR); } break; - case BLADECENTER_POWER_SUPPLY_SLOT: + case BLADECENTER_POWER_SUPPLY_SLOT: + if ((custom_handle->platform == SNMP_BC_PLATFORM_BCT) || + (custom_handle->platform == SNMP_BC_PLATFORM_BC)) { + /* Reading is not supported on BC and BC-T */ + oidIndex = SNMP_BC_NOT_VALID; + thisOID = NULL; + + } else if (custom_handle->platform == SNMP_BC_PLATFORM_BCH) { + switch (slotnum) { + case 1: + oidIndex = 3; + break; + case 2: + oidIndex = 4; + break; + case 3: + oidIndex = 5; + break; + + case 4: + oidIndex = 6; + break; + default: + dbg("Not one of the valid BC H Power Module Slots.\n"); + return(SA_ERR_HPI_INTERNAL_ERROR); + break; + } + usepowerdomain1; + } else { + dbg("Not one of the supported platform.\n"); + return(SA_ERR_HPI_INTERNAL_ERROR); + } + break; + case SAHPI_ENT_SYS_MGMNT_MODULE: + switch (slotnum) { + case 0: + oidIndex = 1; + break; + default: + dbg("Not one of the valid resources.\n"); + return(SA_ERR_HPI_INTERNAL_ERROR); + break; + } + usepowerdomain1; + break; + case SAHPI_ENT_SYSTEM_CHASSIS: + usepowerdomain1; + oidIndex = totalPower; + break; default: thisOID = NULL; oidIndex = SNMP_BC_NOT_VALID; @@ -2366,35 +2388,71 @@ if ( (thisOID == NULL) || (oidIndex == SNMP_BC_NOT_VALID)) { reading->IsSupported = SAHPI_FALSE; return(SA_OK); - } + } else if (oidIndex == totalPower) { + if (custom_handle->platform == SNMP_BC_PLATFORM_BCT) { + usepowerdomain1; + snprintf(oid, SNMP_BC_MAX_OID_LENGTH, "%s.%d", thisOID, 17); + get_string_object(oid, pm3_state); - snprintf(oid, SNMP_BC_MAX_OID_LENGTH, "%s.%d", thisOID, oidIndex); - - err = snmp_bc_snmp_get(custom_handler, oid, &get_value, SAHPI_TRUE); - if (err != SA_OK) { - dbg(" >>> not able to read OID %s\n", oid); - return(err); - } else if ((err == SA_OK) && (get_value.type != ASN_OCTET_STR)) { - dbg("Cannot get Power Reading %s\n", oid); - return(SA_ERR_HPI_INTERNAL_ERROR); + usepowerdomain2; + snprintf(oid, SNMP_BC_MAX_OID_LENGTH, "%s.%d", thisOID, 7); + get_string_object(oid, pm4_state); + + } else if (custom_handle->platform == SNMP_BC_PLATFORM_BC) { + usepowerdomain1; + snprintf(oid, SNMP_BC_MAX_OID_LENGTH, "%s.%d", thisOID, 17); + get_string_object(oid, pm3_state); + + usepowerdomain2; + snprintf(oid, SNMP_BC_MAX_OID_LENGTH, "%s.%d", thisOID, 9); + get_string_object(oid, pm4_state); + + } else if (custom_handle->platform == SNMP_BC_PLATFORM_BCH) { + usepowerdomain1; + snprintf(oid, SNMP_BC_MAX_OID_LENGTH, "%s.%d", thisOID, 24); + get_string_object(oid, pm3_state); + + usepowerdomain2; + snprintf(oid, SNMP_BC_MAX_OID_LENGTH, "%s.%d", thisOID, 24); + get_string_object(oid, pm4_state); + } else { + dbg("Not one of the supported platform.\n"); + return(SA_ERR_HPI_INTERNAL_ERROR); + } + power_substrs = g_strsplit(pm3_state.string, " ", -1); + if (power_substrs[0] == NULL) + return(SA_ERR_HPI_INTERNAL_ERROR); + + reading->Value.SensorUint64 = g_strtod(power_substrs[0], NULL); + + power_substrs = g_strsplit(pm4_state.string, " ", -1); + if (power_substrs[0] == NULL) + return(SA_ERR_HPI_INTERNAL_ERROR); + + reading->Value.SensorUint64 = reading->Value.SensorUint64 + g_strtod(power_substrs[0], NULL); + /* Set SensorReading structure */ + reading->IsSupported = rdr->RdrTypeUnion.SensorRec.DataFormat.IsSupported; + reading->Type = rdr->RdrTypeUnion.SensorRec.DataFormat.ReadingType; + return(SA_OK); } + snprintf(oid, SNMP_BC_MAX_OID_LENGTH, "%s.%d", thisOID, oidIndex); + get_string_object(oid, get_value); - /* Set SensorReading structure */ - reading->IsSupported = rdr->RdrTypeUnion.SensorRec.DataFormat.IsSupported; - reading->Type = rdr->RdrTypeUnion.SensorRec.DataFormat.ReadingType; - + /* Set SensorReading structure */ if ( strncmp(get_value.string, "N/A", sizeof("N/A")) == 0) { reading->Value.SensorUint64 = 0; } else { power_substrs = g_strsplit(get_value.string, " ", -1); if (power_substrs[0] == NULL) return(SA_ERR_HPI_INTERNAL_ERROR); - - + reading->Value.SensorUint64 = g_strtod(power_substrs[0], NULL); } + reading->IsSupported = rdr->RdrTypeUnion.SensorRec.DataFormat.IsSupported; + reading->Type = rdr->RdrTypeUnion.SensorRec.DataFormat.ReadingType; + return(SA_OK); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pd...@us...> - 2006-06-02 15:45:02
|
Revision: 5846 Author: pdphan Date: 2006-06-02 08:44:57 -0700 (Fri, 02 Jun 2006) ViewCVS: http://svn.sourceforge.net/openhpi/?rev=5846&view=rev Log Message: ----------- Add Slot Resources and their associated RDRs , Feature 1497740 Modified Paths: -------------- openhpi/trunk/plugins/snmp_bc/snmp_bc_discover_bc.h Modified: openhpi/trunk/plugins/snmp_bc/snmp_bc_discover_bc.h =================================================================== --- openhpi/trunk/plugins/snmp_bc/snmp_bc_discover_bc.h 2006-06-01 13:52:17 UTC (rev 5845) +++ openhpi/trunk/plugins/snmp_bc/snmp_bc_discover_bc.h 2006-06-02 15:44:57 UTC (rev 5846) @@ -32,6 +32,8 @@ } \ } while(0) +#define get_string_object(maskOID, getvalue) get_installed_mask(maskOID, getvalue) + #define get_integer_object(maskOID, getintvalue) \ do { \ err = snmp_bc_snmp_get(custom_handle, maskOID, &getintvalue, SAHPI_TRUE); \ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pd...@us...> - 2006-06-01 13:52:22
|
Revision: 5845 Author: pdphan Date: 2006-06-01 06:52:17 -0700 (Thu, 01 Jun 2006) ViewCVS: http://svn.sourceforge.net/openhpi/?rev=5845&view=rev Log Message: ----------- Add Slot Resources and their associated RDRs , Feature 1497740 Modified Paths: -------------- openhpi/trunk/plugins/snmp_bc/snmp_bc_resources.h Modified: openhpi/trunk/plugins/snmp_bc/snmp_bc_resources.h =================================================================== --- openhpi/trunk/plugins/snmp_bc/snmp_bc_resources.h 2006-06-01 13:51:58 UTC (rev 5844) +++ openhpi/trunk/plugins/snmp_bc/snmp_bc_resources.h 2006-06-01 13:52:17 UTC (rev 5845) @@ -197,8 +197,10 @@ #define SNMP_BC_PD2POWERCURRENT ".1.3.6.1.4.1.2.3.51.2.2.10.3.1.1.7" /* pd2ModuleAllocatedPowerCurrent */ #define SNMP_BC_PD2POWERMAX ".1.3.6.1.4.1.2.3.51.2.2.10.3.1.1.8" /* pd2ModuleAllocatedPowerMax */ #define SNMP_BC_PD2POWERMIN ".1.3.6.1.4.1.2.3.51.2.2.10.3.1.1.9" /* pd2ModuleAllocatedPowerMin */ +#define SNMP_BC_PD1STATE ".1.3.6.1.4.1.2.3.51.2.2.10.2.1.1.6" /* pd1ModuleState */ +#define SNMP_BC_PD2STATE ".1.3.6.1.4.1.2.3.51.2.2.10.3.1.1.6" /* pd2ModuleState: standby(0), on(1), notPresent(2),notApplicable(255)*/ +#define SNMP_BC_PMSTATE ".1.3.6.1.4.1.2.3.51.2.2.4.1.1.3" /* powerModuleState: unknown(0), good(1), warning(2), not available(3) */ - /* Sensor and Control Numbers defined for Redundancy MM Implementation */ #define BLADECENTER_SENSOR_NUM_MGMNT_REDUNDANCY (SaHpiSensorNumT) 0x1001 #define BLADECENTER_SENSOR_NUM_MGMNT_ACTIVE (SaHpiSensorNumT) 0x1002 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pd...@us...> - 2006-06-01 13:52:10
|
Revision: 5844 Author: pdphan Date: 2006-06-01 06:51:58 -0700 (Thu, 01 Jun 2006) ViewCVS: http://svn.sourceforge.net/openhpi/?rev=5844&view=rev Log Message: ----------- Add Slot Resources and their associated RDRs , Feature 1497740 Modified Paths: -------------- openhpi/trunk/plugins/snmp_bc/snmp_bc_sensor.c Modified: openhpi/trunk/plugins/snmp_bc/snmp_bc_sensor.c =================================================================== --- openhpi/trunk/plugins/snmp_bc/snmp_bc_sensor.c 2006-06-01 12:18:18 UTC (rev 5843) +++ openhpi/trunk/plugins/snmp_bc/snmp_bc_sensor.c 2006-06-01 13:51:58 UTC (rev 5844) @@ -1932,6 +1932,7 @@ char oid[SNMP_BC_MAX_OID_LENGTH]; SaHpiRptEntryT *res; struct snmp_value get_value; + struct snmp_value pm3_state, pm4_state; struct oh_handler_state *handler; struct snmp_bc_hnd *custom_handler; @@ -2094,7 +2095,7 @@ oidIndex = 8; break; default: - dbg("Not one of the valid BC H Switch Slots.\n"); + dbg("Not one of the valid BC H MM Slots.\n"); return(SA_ERR_HPI_INTERNAL_ERROR); break; } @@ -2108,7 +2109,29 @@ case BLADECENTER_FAN_SLOT: if (custom_handler->platform == SNMP_BC_PLATFORM_BCT) { - switch (slotnum) { + + if ( (slotnum == 3) || (slotnum == 4)) { + snprintf(oid, SNMP_BC_MAX_OID_LENGTH, "%s.%d", SNMP_BC_PMSTATE, 3); + err = snmp_bc_snmp_get(custom_handler, oid, &pm3_state, SAHPI_TRUE); + if (err != SA_OK) { + dbg("Not able to read OID %s\n", oid); + return(err); + } else if ((err == SA_OK) && (pm3_state.type != ASN_INTEGER)) { + dbg("Cannot get Power Reading %s\n", oid); + return(SA_ERR_HPI_INTERNAL_ERROR); + } + snprintf(oid, SNMP_BC_MAX_OID_LENGTH, "%s.%d", SNMP_BC_PMSTATE, 4); + err = snmp_bc_snmp_get(custom_handler, oid, &pm4_state, SAHPI_TRUE); + if (err != SA_OK) { + dbg("Not able to read OID %s\n", oid); + return(err); + } else if ((err == SA_OK) && (pm4_state.type != ASN_INTEGER)) { + dbg("Cannot get Power Reading %s\n", oid); + return(SA_ERR_HPI_INTERNAL_ERROR); + } + } + + switch (slotnum) { case 1: oidIndex = 3; break; @@ -2116,11 +2139,19 @@ oidIndex = 4; break; case 3: - oidIndex = 1; + if ((pm3_state.integer == 3) && + (pm4_state.integer == 3)) + oidIndex = 5; + else + oidIndex = 1; break; case 4: - oidIndex = 2; + if ((pm3_state.integer == 3) && + (pm4_state.integer == 3)) + oidIndex = 6; + else + oidIndex = 2; break; default: dbg("Not one of the valid BC-T Fan Slots.\n"); @@ -2131,7 +2162,10 @@ if ( slotnum < 3) { usepowerdomain1; } else { - usepowerdomain2; + if ((pm3_state.integer == 3) && + (pm4_state.integer == 3)) + usepowerdomain1; + else usepowerdomain2; } } else if (custom_handler->platform == SNMP_BC_PLATFORM_BC) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kou...@us...> - 2006-06-01 12:18:35
|
Revision: 5843 Author: kouzmich Date: 2006-06-01 05:18:18 -0700 (Thu, 01 Jun 2006) ViewCVS: http://svn.sourceforge.net/openhpi/?rev=5843&view=rev Log Message: ----------- ArtifactID:1496906 Comment: Hpi_Shell does not show led colors Modified Paths: -------------- openhpi/trunk/hpi_ui_lib/show.c Modified: openhpi/trunk/hpi_ui_lib/show.c =================================================================== --- openhpi/trunk/hpi_ui_lib/show.c 2006-06-01 12:14:53 UTC (rev 5842) +++ openhpi/trunk/hpi_ui_lib/show.c 2006-06-01 12:18:18 UTC (rev 5843) @@ -27,6 +27,21 @@ extern SaErrorT decode1_proc(int num, int val, char *buf, int bufsize); extern SaErrorT thres_value(SaHpiSensorReadingT *item, char *buf, int size); +static int is_ATCA(SaHpiSessionIdT sessionid, SaHpiResourceIdT resourceid) +{ + SaHpiRptEntryT rpt_entry; + SaHpiEntityPathT *path; + int i; + + if (saHpiRptEntryGetByResourceId(sessionid, resourceid, &rpt_entry) != SA_OK) + return(0); + path = &(rpt_entry.ResourceEntity); + for (i = 0; i < SAHPI_MAX_ENTITY_PATH; i++) + if (path->Entry[i].EntityType == SAHPI_ENT_ADVANCEDTCA_CHASSIS) + return(1); + return(0); +} + SaErrorT sensor_list(SaHpiSessionIdT sessionid, hpi_ui_print_cb_t proc) { SaErrorT rv = SA_OK; @@ -350,9 +365,15 @@ return SA_OK; case SAHPI_CTRL_TYPE_OEM: oem = &(state.StateUnion.Oem); - snprintf(buf, SHOW_BUF_SZ, "MId = %d Body = ", oem->MId); + str = (char *)(oem->Body); + if (is_ATCA(sessionid, resourceid) && + (oem->MId == ATCAHPI_PICMG_MID)) + snprintf(buf, SHOW_BUF_SZ, + "MId = %d Color = %s Body = ", + oem->MId, oh_lookup_atcahpiledcolor(str[2])); + else + snprintf(buf, SHOW_BUF_SZ, "MId = %d Body = ", oem->MId); proc(buf); - str = (char *)(oem->Body); for (i = 0; i < oem->BodyLength; i++) sprintf(buf + i * 3, "%2.2X ", (unsigned char)(str[i])); strcat(buf, "\n"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kou...@us...> - 2006-06-01 12:15:18
|
Revision: 5842 Author: kouzmich Date: 2006-06-01 05:14:53 -0700 (Thu, 01 Jun 2006) ViewCVS: http://svn.sourceforge.net/openhpi/?rev=5842&view=rev Log Message: ----------- ArtifactID:1496908 Comment: Invalid color numbers for led Modified Paths: -------------- openhpi/trunk/plugins/ipmi/ipmi_control_event.c Modified: openhpi/trunk/plugins/ipmi/ipmi_control_event.c =================================================================== --- openhpi/trunk/plugins/ipmi/ipmi_control_event.c 2006-05-31 01:54:22 UTC (rev 5841) +++ openhpi/trunk/plugins/ipmi/ipmi_control_event.c 2006-06-01 12:14:53 UTC (rev 5842) @@ -67,17 +67,17 @@ { switch (ipmi_color) { case IPMI_CONTROL_COLOR_WHITE: - return ATCAHPI_LED_WHITE; + return ATCAHPI_LED_COLOR_WHITE; case IPMI_CONTROL_COLOR_RED: - return ATCAHPI_LED_RED; + return ATCAHPI_LED_COLOR_RED; case IPMI_CONTROL_COLOR_GREEN: - return ATCAHPI_LED_GREEN; + return ATCAHPI_LED_COLOR_GREEN; case IPMI_CONTROL_COLOR_BLUE: - return ATCAHPI_LED_BLUE; + return ATCAHPI_LED_COLOR_BLUE; case IPMI_CONTROL_COLOR_YELLOW: - return ATCAHPI_LED_AMBER; + return ATCAHPI_LED_COLOR_AMBER; case IPMI_CONTROL_COLOR_ORANGE: - return ATCAHPI_LED_ORANGE; + return ATCAHPI_LED_COLOR_ORANGE; default: dbg("strange color %d, return WHITE", ipmi_color); return ATCAHPI_LED_WHITE; @@ -87,17 +87,17 @@ int ohoi_atca_led_to_ipmi_color(SaHpiUint8T c) { switch (c) { - case ATCAHPI_LED_WHITE: + case ATCAHPI_LED_COLOR_WHITE: return IPMI_CONTROL_COLOR_WHITE; - case ATCAHPI_LED_ORANGE: + case ATCAHPI_LED_COLOR_ORANGE: return IPMI_CONTROL_COLOR_ORANGE; - case ATCAHPI_LED_AMBER: + case ATCAHPI_LED_COLOR_AMBER: return IPMI_CONTROL_COLOR_YELLOW; - case ATCAHPI_LED_GREEN: + case ATCAHPI_LED_COLOR_GREEN: return IPMI_CONTROL_COLOR_GREEN; - case ATCAHPI_LED_RED: + case ATCAHPI_LED_COLOR_RED: return IPMI_CONTROL_COLOR_RED; - case ATCAHPI_LED_BLUE: + case ATCAHPI_LED_COLOR_BLUE: return IPMI_CONTROL_COLOR_BLUE; default: return 0; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <re...@us...> - 2006-05-31 01:54:29
|
Revision: 5841 Author: renierm Date: 2006-05-30 18:54:22 -0700 (Tue, 30 May 2006) ViewCVS: http://svn.sourceforge.net/openhpi/?rev=5841&view=rev Log Message: ----------- Creating 2.5.x branch for 2.5.2 release Added Paths: ----------- openhpi/branches/2.5.x/ Copied: openhpi/branches/2.5.x (from rev 5840, openhpi/trunk) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pd...@us...> - 2006-05-30 19:59:16
|
Revision: 5840 Author: pdphan Date: 2006-05-30 12:59:06 -0700 (Tue, 30 May 2006) ViewCVS: http://svn.sourceforge.net/openhpi/?rev=5840&view=rev Log Message: ----------- Add Slot Resources and their associated RDRs, Feature 1497740 Modified Paths: -------------- openhpi/trunk/plugins/snmp_bc/snmp_bc_sensor.c Modified: openhpi/trunk/plugins/snmp_bc/snmp_bc_sensor.c =================================================================== --- openhpi/trunk/plugins/snmp_bc/snmp_bc_sensor.c 2006-05-30 19:46:29 UTC (rev 5839) +++ openhpi/trunk/plugins/snmp_bc/snmp_bc_sensor.c 2006-05-30 19:59:06 UTC (rev 5840) @@ -2336,10 +2336,9 @@ snprintf(oid, SNMP_BC_MAX_OID_LENGTH, "%s.%d", thisOID, oidIndex); - printf(" >>> Attempt to read OID %s\n", oid); err = snmp_bc_snmp_get(custom_handler, oid, &get_value, SAHPI_TRUE); if (err != SA_OK) { - printf(" >>> not able to read OID %s\n", oid); + dbg(" >>> not able to read OID %s\n", oid); return(err); } else if ((err == SA_OK) && (get_value.type != ASN_OCTET_STR)) { dbg("Cannot get Power Reading %s\n", oid); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pd...@us...> - 2006-05-30 19:46:34
|
Revision: 5839 Author: pdphan Date: 2006-05-30 12:46:29 -0700 (Tue, 30 May 2006) ViewCVS: http://svn.sourceforge.net/openhpi/?rev=5839&view=rev Log Message: ----------- Add Slot Resources and their associated RDRs , Feature 1497740 Modified Paths: -------------- openhpi/trunk/plugins/snmp_bc/snmp_bc_discover_bc.c Modified: openhpi/trunk/plugins/snmp_bc/snmp_bc_discover_bc.c =================================================================== --- openhpi/trunk/plugins/snmp_bc/snmp_bc_discover_bc.c 2006-05-30 19:46:17 UTC (rev 5838) +++ openhpi/trunk/plugins/snmp_bc/snmp_bc_discover_bc.c 2006-05-30 19:46:29 UTC (rev 5839) @@ -512,6 +512,16 @@ ******************************/ err = snmp_bc_discover_chassis(handle, ep_root); if (err != SA_OK) return(err); + + /****************************** + * Discover ALL BladeCenter Slots + * Warning: + * Discovery of Physical Slots must come **before** discovery of sloted resources. + * Discovery of slots sets Slot State Sensor to empty. + * Subsequent resource discovery changes state of Slot State Sensor accordingly. + ******************************/ + err = snmp_bc_discover_all_slots(handle, ep_root); + if (err != SA_OK) return(err); /***************** * Discover Blades @@ -626,7 +636,9 @@ { SaErrorT err; + guint mt_width; struct oh_event *e; + struct snmp_value get_value; struct ResourceInfo *res_info_ptr; struct snmp_bc_hnd *custom_handle; @@ -704,6 +716,18 @@ snmp_bc_discover_sensors(handle, snmp_bc_mediatray_sensors, e); snmp_bc_discover_controls(handle, snmp_bc_mediatray_controls, e); snmp_bc_discover_inventories(handle, snmp_bc_mediatray_inventories, e); + + mt_width = 1; /* Default to 1-wide */ + if (res_info_ptr->mib.OidResourceWidth != NULL) { + err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), + res_info_ptr->mib.OidResourceWidth, &get_value, SAHPI_TRUE); + if (!err && (get_value.type == ASN_INTEGER)) { + mt_width = get_value.integer; + } + } + + err = snmp_bc_set_resource_slot_state_sensor(handle, e, mt_width); + } return(SA_OK); @@ -851,6 +875,7 @@ int i; SaErrorT err; + guint blade_width; struct oh_event *e; struct snmp_value get_value, get_blade_resourcetag; struct ResourceInfo *res_info_ptr; @@ -971,6 +996,16 @@ snmp_bc_discover_controls(handle, snmp_bc_blade_controls, e); snmp_bc_discover_inventories(handle, snmp_bc_blade_inventories, e); + blade_width = 1; /* Default to 1-wide blade */ + if (res_info_ptr->mib.OidResourceWidth != NULL) { + err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), + res_info_ptr->mib.OidResourceWidth, &get_value, SAHPI_TRUE); + if (!err && (get_value.type == ASN_INTEGER)) { + blade_width = get_value.integer; + } + } + + err = snmp_bc_set_resource_slot_state_sensor(handle, e, blade_width); /********************************** * Discover Blade Expansion Modules **********************************/ @@ -1064,9 +1099,11 @@ SaHpiEntityPathT *ep_root, char *fan_vector) { - int i; + guint i; + guint fan_width; SaErrorT err; struct oh_event *e; + struct snmp_value get_value; struct ResourceInfo *res_info_ptr; struct snmp_bc_hnd *custom_handle; @@ -1153,6 +1190,18 @@ snmp_bc_discover_sensors(handle, snmp_bc_fan_sensors, e); snmp_bc_discover_controls(handle, snmp_bc_fan_controls, e); snmp_bc_discover_inventories(handle, snmp_bc_fan_inventories, e); + + fan_width = 1; /* Default to 1-wide blade */ + if (res_info_ptr->mib.OidResourceWidth != NULL) { + err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), + res_info_ptr->mib.OidResourceWidth, &get_value, SAHPI_TRUE); + if (!err && (get_value.type == ASN_INTEGER)) { + fan_width = get_value.integer; + } + } + + err = snmp_bc_set_resource_slot_state_sensor(handle, e, fan_width); + } } return(SA_OK); @@ -1176,8 +1225,10 @@ { int i; + guint pm_width; SaErrorT err; struct oh_event *e; + struct snmp_value get_value; struct ResourceInfo *res_info_ptr; struct snmp_bc_hnd *custom_handle; @@ -1268,6 +1319,18 @@ snmp_bc_discover_controls(handle, snmp_bc_power_controls, e); snmp_bc_discover_inventories(handle, snmp_bc_power_inventories, e); + + pm_width = 1; /* Default to 1-wide */ + if (res_info_ptr->mib.OidResourceWidth != NULL) { + err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), + res_info_ptr->mib.OidResourceWidth, &get_value, SAHPI_TRUE); + if (!err && (get_value.type == ASN_INTEGER)) { + pm_width = get_value.integer; + } + } + + err = snmp_bc_set_resource_slot_state_sensor(handle, e, pm_width); + } } return(SA_OK); @@ -1291,6 +1354,7 @@ { int i; + guint sw_width; SaErrorT err; struct oh_event *e; struct ResourceInfo *res_info_ptr; @@ -1388,6 +1452,18 @@ snmp_bc_discover_sensors(handle, snmp_bc_switch_sensors, e); snmp_bc_discover_controls(handle, snmp_bc_switch_controls, e); snmp_bc_discover_inventories(handle, snmp_bc_switch_inventories, e); + + sw_width = 1; /* Default to 1-wide */ + if (res_info_ptr->mib.OidResourceWidth != NULL) { + err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), + res_info_ptr->mib.OidResourceWidth, &get_value, SAHPI_TRUE); + if (!err && (get_value.type == ASN_INTEGER)) { + sw_width = get_value.integer; + } + } + + err = snmp_bc_set_resource_slot_state_sensor(handle, e, sw_width); + } } return(SA_OK); @@ -1411,6 +1487,7 @@ { int i; + guint mm_width; SaErrorT err; struct oh_event *e; struct snmp_value get_value, get_active; @@ -1482,7 +1559,7 @@ snmp_bc_discover_res_events(handle, &(e->u.res_event.entry.ResourceEntity), res_info_ptr); snmp_bc_discover_sensors(handle, snmp_bc_virtual_mgmnt_sensors, e); snmp_bc_discover_controls(handle, snmp_bc_virtual_mgmnt_controls, e); - snmp_bc_discover_inventories(handle, snmp_bc_virtual_mgmnt_inventories, e); + snmp_bc_discover_inventories(handle, snmp_bc_virtual_mgmnt_inventories, e); } /* Discover Physical MM */ @@ -1567,6 +1644,17 @@ snmp_bc_discover_sensors(handle, snmp_bc_mgmnt_sensors, e); snmp_bc_discover_controls(handle, snmp_bc_mgmnt_controls, e); snmp_bc_discover_inventories(handle, snmp_bc_mgmnt_inventories, e); + + mm_width = 1; /* Default to 1-wide */ + if (res_info_ptr->mib.OidResourceWidth != NULL) { + err = snmp_bc_oid_snmp_get(custom_handle, &(e->u.res_event.entry.ResourceEntity), + res_info_ptr->mib.OidResourceWidth, &get_value, SAHPI_TRUE); + if (!err && (get_value.type == ASN_INTEGER)) { + mm_width = get_value.integer; + } + } + err = snmp_bc_set_resource_slot_state_sensor(handle, e, mm_width); + } } return(SA_OK); @@ -1878,6 +1966,7 @@ handle->eventq = g_slist_append(handle->eventq, e); } else { dbg("Out of memory."); } + err = snnp_bc_reset_resource_slot_state_sensor(handle, res); oh_remove_resource(handle->rptcache, res->ResourceId); } else dbg("No valid resource at hand. Could not remove resource."); @@ -2127,3 +2216,186 @@ } return(SA_OK); } + +/** + * snmp_bc_discover_all_slots + * @handler: Pointer to handler's data. + * @ep_root: Pointer to chassis Root Entity Path which comes from openhpi.conf. + * + * Discovers all BladeCenter physical slots. + * + * Return values: + * SA_OK - normal case. + * SA_ERR_HPI_OUT_OF_SPACE - Cannot allocate space for internal memory. + * SA_ERR_HPI_INVALID_PARAMS - Pointer parameter(s) NULL. + **/ +SaErrorT snmp_bc_discover_all_slots(struct oh_handler_state *handle, + SaHpiEntityPathT *ep_root) +{ + + guint i; + SaErrorT err; + struct snmp_bc_hnd *custom_handle; + + if (!handle || !ep_root) { + dbg("Invalid parameter."); + return(SA_ERR_HPI_INVALID_PARAMS); + } + + custom_handle = (struct snmp_bc_hnd *)handle->data; + if (!custom_handle) { + dbg("Invalid parameter."); + return(SA_ERR_HPI_INVALID_PARAMS); + } + + for (i = 0; i < custom_handle->max_pb_supported; i++) { + err = snmp_bc_discover_slot(handle, ep_root, SAHPI_ENT_PHYSICAL_SLOT,i); + } + + for (i = 0; i < custom_handle->max_blower_supported; i++) { + err = snmp_bc_discover_slot(handle, ep_root, BLADECENTER_FAN_SLOT,i); + } + for (i = 0; i < custom_handle->max_pm_supported; i++) { + err = snmp_bc_discover_slot(handle, ep_root, BLADECENTER_POWER_SUPPLY_SLOT,i); + } + + for (i = 0; i < custom_handle->max_sm_supported; i++) { + err = snmp_bc_discover_slot(handle, ep_root, BLADECENTER_INTERCONNECT_SLOT,i); + } + + for (i = 0; i < custom_handle->max_mm_supported; i++) { + err = snmp_bc_discover_slot(handle, ep_root, BLADECENTER_SYS_MGMNT_MODULE_SLOT,i); + } + + for (i = 0; i < custom_handle->max_mt_supported; i++) { + err = snmp_bc_discover_slot(handle, ep_root, BLADECENTER_PERIPHERAL_BAY_SLOT,i); + } + + return(SA_OK); +} + +/** + * snmp_bc_discovery_slot: + * @handler: Pointer to handler's data. + * @ep_root: Pointer to chassis Root Entity Path which comes from openhpi.conf. + * @entitytype: Resource type of the slot. + * @entitylocation: Slot location of the resource. + * + * Discovers slot resources and their RDRs. + * + * Return values: + * SA_OK - normal case. + * SA_ERR_HPI_OUT_OF_SPACE - Cannot allocate space for internal memory. + * SA_ERR_HPI_INVALID_PARAMS - Pointer parameter(s) NULL. + **/ +SaErrorT snmp_bc_discover_slot( struct oh_handler_state *handle, + SaHpiEntityPathT *ep_root, + SaHpiEntityTypeT entitytype, + guint entitylocation) +{ + + SaErrorT err; + char *comment; + struct oh_event *e; + struct snmp_bc_hnd *custom_handle; + struct ResourceInfo *res_info_ptr; + + if (!handle) { + dbg("Invalid parameter."); + return(SA_ERR_HPI_INVALID_PARAMS); + } + + custom_handle = (struct snmp_bc_hnd *)handle->data; + if (!custom_handle) { + dbg("Invalid parameter."); + return(SA_ERR_HPI_INVALID_PARAMS); + } + + e = NULL; + res_info_ptr = NULL; + + e = (struct oh_event *)g_malloc0(sizeof(struct oh_event)); + if (e == NULL) { + dbg("Out of memory."); + return(SA_ERR_HPI_OUT_OF_SPACE); + } + + e->type = OH_ET_RESOURCE; + e->did = oh_get_default_domain_id(); + e->u.res_event.entry = snmp_bc_rpt_array[BC_RPT_ENTRY_PHYSICAL_SLOT].rpt; + oh_concat_ep(&(e->u.res_event.entry.ResourceEntity), ep_root); + oh_set_ep_location(&(e->u.res_event.entry.ResourceEntity), + SAHPI_ENT_CHASSIS_SPECIFIC, entitylocation + SNMP_BC_HPI_LOCATION_BASE); + + + switch (entitytype) { + case SAHPI_ENT_PHYSICAL_SLOT: + e->u.res_event.entry.ResourceEntity.Entry[0].EntityType = SAHPI_ENT_PHYSICAL_SLOT; + comment = BC_PHYSICAL_SLOT; + break; + + case BLADECENTER_INTERCONNECT_SLOT: + e->u.res_event.entry.ResourceEntity.Entry[0].EntityType = BLADECENTER_INTERCONNECT_SLOT; + comment = BC_INTERCONNECT_SLOT; + break; + + case BLADECENTER_POWER_SUPPLY_SLOT: + e->u.res_event.entry.ResourceEntity.Entry[0].EntityType = BLADECENTER_POWER_SUPPLY_SLOT; + comment = BC_POWER_SUPPLY_SLOT; + break; + + case BLADECENTER_PERIPHERAL_BAY_SLOT: + e->u.res_event.entry.ResourceEntity.Entry[0].EntityType = BLADECENTER_PERIPHERAL_BAY_SLOT; + comment = BC_PERIPHERAL_BAY_SLOT; + break; + + case BLADECENTER_SYS_MGMNT_MODULE_SLOT: + e->u.res_event.entry.ResourceEntity.Entry[0].EntityType = BLADECENTER_SYS_MGMNT_MODULE_SLOT; + comment = BC_SYS_MGMNT_MODULE_SLOT; + break; + + case BLADECENTER_FAN_SLOT: + e->u.res_event.entry.ResourceEntity.Entry[0].EntityType = BLADECENTER_FAN_SLOT; + comment = BC_FAN_SLOT; + break; + + default: + dbg("Invalid slot resource type\n"); + return(SA_ERR_HPI_INVALID_PARAMS); + } + + + e->u.res_event.entry.ResourceId = + oh_uid_from_entity_path(&(e->u.res_event.entry.ResourceEntity)); + + snmp_bc_create_resourcetag(&(e->u.res_event.entry.ResourceTag), + comment, + entitylocation + SNMP_BC_HPI_LOCATION_BASE); + + res_info_ptr = g_memdup(&(snmp_bc_rpt_array[BC_RPT_ENTRY_PHYSICAL_SLOT].res_info), + sizeof(struct ResourceInfo)); + if (!res_info_ptr) { + dbg("Out of memory."); + g_free(e); + return(SA_ERR_HPI_OUT_OF_SPACE); + } + + err = oh_add_resource(custom_handle->tmpcache, + &(e->u.res_event.entry), + res_info_ptr, 0); + if (err) { + dbg("Failed to add resource. Error=%s.", oh_lookup_error(err)); + g_free(e); + return(err); + } + + custom_handle->tmpqueue = g_slist_append(custom_handle->tmpqueue, e); + snmp_bc_discover_res_events(handle, &(e->u.res_event.entry.ResourceEntity), res_info_ptr); + snmp_bc_discover_sensors(handle, snmp_bc_slot_sensors, e); + snmp_bc_discover_controls(handle, snmp_bc_slot_controls, e); + snmp_bc_discover_inventories(handle, snmp_bc_slot_inventories, e); + + return(SA_OK); +} + + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pd...@us...> - 2006-05-30 19:46:22
|
Revision: 5838 Author: pdphan Date: 2006-05-30 12:46:17 -0700 (Tue, 30 May 2006) ViewCVS: http://svn.sourceforge.net/openhpi/?rev=5838&view=rev Log Message: ----------- Add Slot Resources and their associated RDRs , Feature 1497740 Modified Paths: -------------- openhpi/trunk/plugins/snmp_bc/snmp_bc_resources.h Modified: openhpi/trunk/plugins/snmp_bc/snmp_bc_resources.h =================================================================== --- openhpi/trunk/plugins/snmp_bc/snmp_bc_resources.h 2006-05-30 19:44:59 UTC (rev 5837) +++ openhpi/trunk/plugins/snmp_bc/snmp_bc_resources.h 2006-05-30 19:46:17 UTC (rev 5838) @@ -105,7 +105,8 @@ BC_RPT_ENTRY_BLADE_EXPANSION_CARD, BC_RPT_ENTRY_MEDIA_TRAY, BC_RPT_ENTRY_BLOWER_MODULE, - BC_RPT_ENTRY_POWER_MODULE + BC_RPT_ENTRY_POWER_MODULE, + BC_RPT_ENTRY_PHYSICAL_SLOT } BCRptEntryT; typedef enum { @@ -175,6 +176,29 @@ #define BLADECENTER_SYS_MGMNT_MODULE_SLOT SAHPI_ENT_CHASSIS_SPECIFIC + 0x13 #define BLADECENTER_FAN_SLOT SAHPI_ENT_CHASSIS_SPECIFIC + 0x14 +/* Sensor Numbers defined for Blade Center Physical Slot resource */ +#define BLADECENTER_SENSOR_NUM_SLOT_STATE (SaHpiSensorNumT) 0x1010 +#define BLADECENTER_SENSOR_NUM_MAX_POWER (SaHpiSensorNumT) 0x1012 +#define BLADECENTER_SENSOR_NUM_ASSIGNED_POWER (SaHpiSensorNumT) 0x1011 +#define BLADECENTER_SENSOR_NUM_MIN_POWER (SaHpiSensorNumT) 0x1013 + +/* Slot ResourceTag */ +#define BC_PHYSICAL_SLOT "Blade Center - Processor Blade Slot" +#define BC_INTERCONNECT_SLOT "Blade Center - Interconnect Slot" +#define BC_POWER_SUPPLY_SLOT "Blade Center - Power Supply Slot" +#define BC_PERIPHERAL_BAY_SLOT "Blade Center - Peripheral Bay Slot" +#define BC_SYS_MGMNT_MODULE_SLOT "Blade Center - Management Module Slot" +#define BC_FAN_SLOT "Blade Center - Blower/Fan Slot" + +/* Slot Power OIDs */ +#define SNMP_BC_PD1POWERCURRENT ".1.3.6.1.4.1.2.3.51.2.2.10.2.1.1.7" /* pd1ModuleAllocatedPowerCurrent */ +#define SNMP_BC_PD1POWERMAX ".1.3.6.1.4.1.2.3.51.2.2.10.2.1.1.8" /* pd1ModuleAllocatedPowerMax */ +#define SNMP_BC_PD1POWERMIN ".1.3.6.1.4.1.2.3.51.2.2.10.2.1.1.9" /* pd1ModuleAllocatedPowerMin */ +#define SNMP_BC_PD2POWERCURRENT ".1.3.6.1.4.1.2.3.51.2.2.10.3.1.1.7" /* pd2ModuleAllocatedPowerCurrent */ +#define SNMP_BC_PD2POWERMAX ".1.3.6.1.4.1.2.3.51.2.2.10.3.1.1.8" /* pd2ModuleAllocatedPowerMax */ +#define SNMP_BC_PD2POWERMIN ".1.3.6.1.4.1.2.3.51.2.2.10.3.1.1.9" /* pd2ModuleAllocatedPowerMin */ + + /* Sensor and Control Numbers defined for Redundancy MM Implementation */ #define BLADECENTER_SENSOR_NUM_MGMNT_REDUNDANCY (SaHpiSensorNumT) 0x1001 #define BLADECENTER_SENSOR_NUM_MGMNT_ACTIVE (SaHpiSensorNumT) 0x1002 @@ -299,6 +323,7 @@ struct SensorMibInfo mib; SaHpiEventStateT cur_state; /* This really records the last state read from the SEL */ /* Which may not be the current state of the sensor */ + SaHpiResourceIdT cur_child_rid; SaHpiBoolT sensor_enabled; SaHpiBoolT events_enabled; SaHpiEventStateT assert_mask; @@ -336,6 +361,7 @@ extern struct snmp_bc_sensor snmp_bc_power_sensors[]; extern struct snmp_bc_sensor snmp_bc_power_sensors_bch[]; extern struct snmp_bc_sensor snmp_bc_switch_sensors[]; +extern struct snmp_bc_sensor snmp_bc_slot_sensors[]; extern struct snmp_bc_sensor snmp_bc_chassis_sensors_rsa[]; extern struct snmp_bc_sensor snmp_bc_cpu_sensors_rsa[]; @@ -384,6 +410,7 @@ extern struct snmp_bc_control snmp_bc_fan_controls[]; extern struct snmp_bc_control snmp_bc_power_controls[]; extern struct snmp_bc_control snmp_bc_switch_controls[]; +extern struct snmp_bc_control snmp_bc_slot_controls[]; extern struct snmp_bc_control snmp_bc_chassis_controls_rsa[]; extern struct snmp_bc_control snmp_bc_cpu_controls_rsa[]; @@ -432,6 +459,7 @@ extern struct snmp_bc_inventory snmp_bc_bem_inventories[]; extern struct snmp_bc_inventory snmp_bc_mediatray_inventories[]; extern struct snmp_bc_inventory snmp_bc_power_inventories[]; +extern struct snmp_bc_inventory snmp_bc_slot_inventories[]; extern struct snmp_bc_inventory snmp_bc_chassis_inventories_rsa[]; extern struct snmp_bc_inventory snmp_bc_cpu_inventories_rsa[]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pd...@us...> - 2006-05-30 19:45:07
|
Revision: 5837 Author: pdphan Date: 2006-05-30 12:44:59 -0700 (Tue, 30 May 2006) ViewCVS: http://svn.sourceforge.net/openhpi/?rev=5837&view=rev Log Message: ----------- Add Slot Resources and their associated RDRs , Feature 1497740 Modified Paths: -------------- openhpi/trunk/plugins/snmp_bc/snmp_bc_sensor.h Modified: openhpi/trunk/plugins/snmp_bc/snmp_bc_sensor.h =================================================================== --- openhpi/trunk/plugins/snmp_bc/snmp_bc_sensor.h 2006-05-30 19:44:18 UTC (rev 5836) +++ openhpi/trunk/plugins/snmp_bc/snmp_bc_sensor.h 2006-05-30 19:44:59 UTC (rev 5837) @@ -88,4 +88,29 @@ SaHpiSensorNumT sid, SaHpiSensorReadingT *reading); +SaErrorT snmp_bc_set_slot_state_sensor(void *hnd, + struct oh_event *e, + SaHpiEntityPathT *slot_ep); + +SaErrorT snmp_bc_reset_slot_state_sensor(void *hnd, + SaHpiEntityPathT *slot_ep); + +SaErrorT snmp_bc_set_resource_slot_state_sensor(void *hnd, + struct oh_event *e, + guint resourcewidth); + +SaErrorT snnp_bc_reset_resource_slot_state_sensor(void *hnd, + SaHpiRptEntryT *res); + +SaErrorT snmp_bc_get_slot_state_sensor(void *hnd, + SaHpiResourceIdT rid, + SaHpiSensorNumT sid, + SaHpiSensorReadingT *reading); + +SaErrorT snmp_bc_get_slot_power_sensor(void *hnd, + SaHpiResourceIdT rid, + SaHpiSensorNumT sid, + SaHpiSensorReadingT *reading); + + #endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pd...@us...> - 2006-05-30 19:44:33
|
Revision: 5836 Author: pdphan Date: 2006-05-30 12:44:18 -0700 (Tue, 30 May 2006) ViewCVS: http://svn.sourceforge.net/openhpi/?rev=5836&view=rev Log Message: ----------- Add Slot Resources and their associated RDRs , Feature 1497740 Modified Paths: -------------- openhpi/trunk/plugins/snmp_bc/snmp_bc_resources.c Modified: openhpi/trunk/plugins/snmp_bc/snmp_bc_resources.c =================================================================== --- openhpi/trunk/plugins/snmp_bc/snmp_bc_resources.c 2006-05-30 19:44:00 UTC (rev 5835) +++ openhpi/trunk/plugins/snmp_bc/snmp_bc_resources.c 2006-05-30 19:44:18 UTC (rev 5836) @@ -657,6 +657,49 @@ }, .comment = "Power Module", }, + + /* Slot Resources */ + { + .rpt = { + .ResourceInfo = { + .ManufacturerId = IBM_MANUFACTURING_ID, + }, + .ResourceEntity = { + .Entry[0] = + { + .EntityType = SAHPI_ENT_CHASSIS_SPECIFIC, /* dummy setting - set during discovery */ + .EntityLocation = SNMP_BC_HPI_LOCATION_BASE, + }, + { + .EntityType = SAHPI_ENT_ROOT, + .EntityLocation = 0, + } + }, + + .ResourceCapabilities = SAHPI_CAPABILITY_RESOURCE | + SAHPI_CAPABILITY_RDR | + SAHPI_CAPABILITY_SENSOR, + .ResourceSeverity = SAHPI_MAJOR, + .ResourceFailed = SAHPI_FALSE, + }, + .res_info = { + .mib = { + .OidHealth = '\0', + .HealthyValue = 0, + .OidReset = '\0', + .OidPowerState = '\0', + .OidPowerOnOff = '\0', + .OidUuid = '\0', + .OidResourceWidth = '\0', + }, + .cur_state = SAHPI_HS_STATE_ACTIVE, + .prev_state = SAHPI_HS_STATE_ACTIVE, + .event_array = { + {}, + }, + }, + .comment = "Slot Resource", + }, {} /* Terminate array with a null element */ }; @@ -667,12 +710,17 @@ /************************************************************************* * WARNING - WARNING - WARNING - WARNING - * Most of the .sensor.num are arbitrary assigned. There are 4 hardcoded - * Sensor Numbers: - * SAHPI_DEFAGSENS_OPER - * BLADECENTER_SENSOR_NUM_MGMNT_REDUNDANCY - * BLADECENTER_SENSOR_NUM_MGMNT_ACTIVE - * BLADECENTER_SENSOR_NUM_MGMNT_STANDBY + * Most of the .sensor.num are arbitrary assigned. + * There are 8 hardcoded, specifically assigned Sensor Numbers: + * + * SAHPI_DEFAGSENS_OPER (SaHpiSensorNumT)0x00000100 + * BLADECENTER_SENSOR_NUM_MGMNT_REDUNDANCY (SaHpiSensorNumT) 0x1001 + * BLADECENTER_SENSOR_NUM_MGMNT_ACTIVE (SaHpiSensorNumT) 0x1002 + * BLADECENTER_SENSOR_NUM_MGMNT_STANDBY (SaHpiSensorNumT) 0x1003 + * BLADECENTER_SENSOR_NUM_SLOT_STATE (SaHpiSensorNumT) 0x1010 + * BLADECENTER_SENSOR_NUM_MAX_POWER (SaHpiSensorNumT) 0x1012 + * BLADECENTER_SENSOR_NUM_ASSIGNED_POWER (SaHpiSensorNumT) 0x1011 + * BLADECENTER_SENSOR_NUM_MIN_POWER (SaHpiSensorNumT) 0x1013 *************************************************************************/ /***************** @@ -730,6 +778,7 @@ .oid = ".1.3.6.1.4.1.2.3.51.2.2.1.5.1.0", }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_UPPER_MAJOR | SAHPI_ES_UPPER_CRIT | @@ -835,6 +884,7 @@ }, .sensor_info = { .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_REDUNDANCY_LOST, @@ -874,6 +924,7 @@ }, .sensor_info = { .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_REDUNDANCY_LOST, @@ -929,6 +980,7 @@ }, .sensor_info = { .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_REDUNDANCY_LOST, @@ -968,6 +1020,7 @@ }, .sensor_info = { .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_REDUNDANCY_LOST, @@ -1015,6 +1068,7 @@ }, .sensor_info = { .cur_state = SAHPI_ES_OK, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_OK | SAHPI_ES_MINOR_FROM_OK | @@ -1126,6 +1180,7 @@ .oid = ".1.3.6.1.4.1.2.3.51.2.2.1.1.2.0", }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_UPPER_MAJOR | SAHPI_ES_UPPER_CRIT | @@ -1277,6 +1332,7 @@ .threshold_write_oids = {}, }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_LOWER_CRIT | @@ -1389,6 +1445,7 @@ .threshold_write_oids = {}, }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_LOWER_CRIT | @@ -1501,6 +1558,7 @@ .threshold_write_oids = {}, }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_LOWER_CRIT | @@ -1613,6 +1671,7 @@ .threshold_write_oids = {}, }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_LOWER_CRIT | @@ -1725,6 +1784,7 @@ .threshold_write_oids = {}, }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_LOWER_CRIT | @@ -1837,6 +1897,7 @@ .threshold_write_oids = {}, }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_LOWER_CRIT | @@ -1902,6 +1963,7 @@ }, .sensor_info = { .cur_state = SAHPI_ES_RUNNING, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_OFF_LINE, @@ -1941,6 +2003,7 @@ }, .sensor_info = { .cur_state = SAHPI_ES_RUNNING, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_OFF_LINE, @@ -1980,6 +2043,7 @@ }, .sensor_info = { .cur_state = SAHPI_ES_RUNNING, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_OFF_LINE, @@ -2019,6 +2083,7 @@ }, .sensor_info = { .cur_state = SAHPI_ES_RUNNING, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_OFF_LINE, @@ -2058,6 +2123,7 @@ }, .sensor_info = { .cur_state = SAHPI_ES_RUNNING, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_OFF_LINE, @@ -2098,6 +2164,7 @@ }, .sensor_info = { .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_NON_REDUNDANT_SUFFICIENT_RESOURCES | @@ -2152,6 +2219,7 @@ .oid = ".1.3.6.1.4.1.2.3.51.2.22.4.34.0", }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_FALSE, .assert_mask = 0, @@ -2195,6 +2263,7 @@ .oid = ".1.3.6.1.4.1.2.3.51.2.22.4.34.0", }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_FALSE, .assert_mask = 0, @@ -2277,6 +2346,7 @@ .threshold_write_oids = {}, }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_UPPER_MAJOR | SAHPI_ES_UPPER_CRIT, @@ -2374,6 +2444,7 @@ .threshold_write_oids = {}, }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_UPPER_MAJOR | SAHPI_ES_UPPER_CRIT, @@ -2471,6 +2542,7 @@ .threshold_write_oids = {}, }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_UPPER_MAJOR | SAHPI_ES_UPPER_CRIT, @@ -2568,6 +2640,7 @@ .threshold_write_oids = {}, }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_UPPER_MAJOR | SAHPI_ES_UPPER_CRIT, @@ -2673,6 +2746,7 @@ .threshold_write_oids = {}, }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_UPPER_MAJOR, @@ -2763,6 +2837,7 @@ .threshold_write_oids = {}, }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_LOWER_CRIT | @@ -2871,6 +2946,7 @@ .threshold_write_oids = {}, }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_LOWER_CRIT | @@ -2979,6 +3055,7 @@ .threshold_write_oids = {}, }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_LOWER_CRIT | @@ -3087,6 +3164,7 @@ .threshold_write_oids = {}, }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_LOWER_CRIT | @@ -3195,6 +3273,7 @@ .threshold_write_oids = {}, }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_LOWER_CRIT | @@ -3289,6 +3368,7 @@ .oid = ".1.3.6.1.4.1.2.3.51.2.22.1.5.5.1.13.x", }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_UPPER_CRIT, @@ -3329,6 +3409,7 @@ }, .sensor_info = { .cur_state = SAHPI_ES_RUNNING, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_DEGRADED | SAHPI_ES_OFF_LINE | SAHPI_ES_INSTALL_ERROR, @@ -3488,6 +3569,7 @@ }, .sensor_info = { .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_DEGRADED, @@ -3527,6 +3609,7 @@ }, .sensor_info = { .cur_state = SAHPI_ES_STATE_DEASSERTED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_STATE_ASSERTED, @@ -3610,6 +3693,7 @@ .threshold_write_oids = {}, }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_UPPER_MAJOR | SAHPI_ES_UPPER_CRIT, @@ -3710,6 +3794,7 @@ .threshold_write_oids = {}, }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_UPPER_MAJOR | SAHPI_ES_UPPER_CRIT, @@ -3810,6 +3895,7 @@ .threshold_write_oids = {}, }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_UPPER_MAJOR | SAHPI_ES_UPPER_CRIT, @@ -3910,6 +3996,7 @@ .threshold_write_oids = {}, }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_UPPER_MAJOR | SAHPI_ES_UPPER_CRIT, @@ -4019,6 +4106,7 @@ .threshold_write_oids = {}, }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_LOWER_CRIT | @@ -4129,6 +4217,7 @@ .threshold_write_oids = {}, }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_UPPER_MAJOR, @@ -4222,6 +4311,7 @@ .threshold_write_oids = {}, }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_LOWER_CRIT | @@ -4332,6 +4422,7 @@ .threshold_write_oids = {}, }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_UPPER_MAJOR, @@ -4425,6 +4516,7 @@ .threshold_write_oids = {}, }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_LOWER_CRIT | @@ -4535,6 +4627,7 @@ .threshold_write_oids = {}, }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_UPPER_MAJOR, @@ -4628,6 +4721,7 @@ .threshold_write_oids = {}, }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_LOWER_CRIT | @@ -4738,6 +4832,7 @@ .threshold_write_oids = {}, }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_UPPER_MAJOR, @@ -4831,6 +4926,7 @@ .threshold_write_oids = {}, }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_LOWER_CRIT | @@ -4941,6 +5037,7 @@ .threshold_write_oids = {}, }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_UPPER_MAJOR, @@ -5034,6 +5131,7 @@ .threshold_write_oids = {}, }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_LOWER_CRIT | @@ -5144,6 +5242,7 @@ .threshold_write_oids = {}, }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_UPPER_MAJOR, @@ -5237,6 +5336,7 @@ .threshold_write_oids = {}, }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_LOWER_CRIT | @@ -5348,6 +5448,7 @@ .threshold_write_oids = {}, }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_LOWER_CRIT | @@ -5458,6 +5559,7 @@ .threshold_write_oids = {}, }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_UPPER_MAJOR, @@ -5543,6 +5645,7 @@ .threshold_write_oids = {}, }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_UPPER_MAJOR, @@ -5628,6 +5731,7 @@ .threshold_write_oids = {}, }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_UPPER_MAJOR, @@ -5721,6 +5825,7 @@ .threshold_write_oids = {}, }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_LOWER_CRIT | @@ -5798,6 +5903,7 @@ .threshold_write_oids = {}, }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_UPPER_MAJOR | SAHPI_ES_UPPER_CRIT, @@ -5869,6 +5975,7 @@ }, .sensor_info = { .cur_state = SAHPI_ES_OK, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_MAJOR_FROM_LESS, @@ -6076,6 +6183,7 @@ }, .sensor_info = { .cur_state = SAHPI_ES_RUNNING, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_OFF_LINE, @@ -6115,6 +6223,7 @@ }, .sensor_info = { .cur_state = SAHPI_ES_RUNNING, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_OFF_LINE, @@ -6469,6 +6578,7 @@ }, .sensor_info = { .cur_state = SAHPI_ES_RUNNING, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_DEGRADED, @@ -6517,6 +6627,7 @@ }, .sensor_info = { .cur_state = SAHPI_ES_RUNNING, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_OFF_LINE, @@ -6583,6 +6694,7 @@ .oid = ".1.3.6.1.4.1.2.3.51.2.2.3.x.0", }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_PRED_FAILURE_ASSERT, @@ -6643,6 +6755,7 @@ }, .sensor_info = { .cur_state = SAHPI_ES_RUNNING, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_OFF_LINE, @@ -6730,6 +6843,7 @@ }, .sensor_info = { .cur_state = SAHPI_ES_OK, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_MAJOR_FROM_LESS | SAHPI_ES_CRITICAL, @@ -6812,6 +6926,7 @@ .oid = ".1.3.6.1.4.1.2.3.51.2.2.6.1.1.5.x", }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_PRED_FAILURE_ASSERT, @@ -6872,6 +6987,7 @@ .oid = ".1.3.6.1.4.1.2.3.51.2.2.6.1.1.6.x", }, .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_PRED_FAILURE_ASSERT, @@ -6916,6 +7032,7 @@ }, .sensor_info = { .cur_state = SAHPI_ES_RUNNING, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_DEGRADED | SAHPI_ES_INSTALL_ERROR, @@ -6987,6 +7104,7 @@ }, .sensor_info = { .cur_state = SAHPI_ES_OK, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_MAJOR_FROM_LESS | SAHPI_ES_CRITICAL, @@ -7018,6 +7136,210 @@ {} /* Terminate array with a null element */ }; +/*************************** + * Blade Center Physical Slot Sensors + ***************************/ + +struct snmp_bc_sensor snmp_bc_slot_sensors[] = { + + { + .index = 1, + .sensor = { + .Num = BLADECENTER_SENSOR_NUM_SLOT_STATE, + .Type = SAHPI_ENTITY_PRESENCE, + .Category = SAHPI_EC_PRESENCE, + .EnableCtrl = SAHPI_FALSE, + .EventCtrl = SAHPI_SEC_READ_ONLY | + SAHPI_SEC_READ_ONLY_MASKS | + SAHPI_SEC_PER_EVENT, + .Events = SAHPI_ES_PRESENT | SAHPI_ES_ABSENT, + .DataFormat = { + .IsSupported = SAHPI_TRUE, + .ReadingType = SAHPI_SENSOR_READING_TYPE_UINT64, + .BaseUnits = SAHPI_SU_UNSPECIFIED, + .ModifierUnits = SAHPI_SU_UNSPECIFIED, + .ModifierUse = SAHPI_SMUU_NONE, + .Percentage = SAHPI_FALSE, + .Range = { + .Flags = 0x00, + } + }, + .ThresholdDefn = { + .IsAccessible = SAHPI_FALSE, + }, + .Oem = 0, + }, + .sensor_info = { + .mib = { + .not_avail_indicator_num = 0, + .write_only = SAHPI_FALSE, + .oid = ".1.3.6.1.4.1.2.3.51.2.2.10.2.1.1.8.1", + }, + .cur_state = SAHPI_ES_ABSENT, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, + .sensor_enabled = SAHPI_TRUE, + .events_enabled = SAHPI_FALSE, + .assert_mask = 0, + .deassert_mask = 0, + .event_array = {}, + + .reading2event = {}, + }, + .comment = "Slot State Sensor", + }, + + { + .index = 2, + .sensor = { + .Num = BLADECENTER_SENSOR_NUM_MAX_POWER, + .Type = SAHPI_OTHER_UNITS_BASED_SENSOR, + .Category = SAHPI_EC_THRESHOLD, + .EnableCtrl = SAHPI_FALSE, + .EventCtrl = SAHPI_SEC_READ_ONLY, + .Events = 0x00, /* No event state */ + .DataFormat = { + .IsSupported = SAHPI_TRUE, + .ReadingType = SAHPI_SENSOR_READING_TYPE_UINT64, + .BaseUnits = SAHPI_SU_WATTS, + .ModifierUnits = SAHPI_SU_UNSPECIFIED, + .ModifierUse = SAHPI_SMUU_NONE, + .Percentage = SAHPI_FALSE, + .Range = { + .Flags = 0x00, + }, + }, + .ThresholdDefn = { + .IsAccessible = SAHPI_FALSE, + }, + .Oem = 0, + }, + .sensor_info = { + .mib = { + .not_avail_indicator_num = 0, + .write_only = SAHPI_FALSE, + .oid = ".1.3.6.1.4.1.2.3.51.2.2.10.2.1.1.8.1", /* pd1ModuleAllocatedPowerMax .2.1.1.8 + * pd2ModuleAllocatedPowerMax .3.1.1.8 + */ + .threshold_oids = {}, + .threshold_write_oids = {}, + }, + .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, + .sensor_enabled = SAHPI_TRUE, + .events_enabled = SAHPI_FALSE, + .assert_mask = 0x00, + .deassert_mask = 0x00, + .event_array = { + {}, + }, + .reading2event = {}, + }, + .comment = "Maximum Power Capability", + }, + + { + .index = 3, + .sensor = { + .Num = BLADECENTER_SENSOR_NUM_ASSIGNED_POWER, + .Type = SAHPI_OTHER_UNITS_BASED_SENSOR, + .Category = SAHPI_EC_THRESHOLD, + .EnableCtrl = SAHPI_FALSE, + .EventCtrl = SAHPI_SEC_READ_ONLY, + .Events = 0, + .DataFormat = { + .IsSupported = SAHPI_TRUE, + .ReadingType = SAHPI_SENSOR_READING_TYPE_UINT64, + .BaseUnits = SAHPI_SU_WATTS, + .ModifierUnits = SAHPI_SU_UNSPECIFIED, + .ModifierUse = SAHPI_SMUU_NONE, + .Percentage = SAHPI_FALSE, + .Range = { + .Flags = 0x00, + }, + }, + .ThresholdDefn = { + .IsAccessible = SAHPI_FALSE, + .ReadThold = 0, + .WriteThold = 0, + }, + .Oem = 0, + }, + .sensor_info = { + .mib = { + .not_avail_indicator_num = 0, + .write_only = SAHPI_FALSE, + .oid = ".1.3.6.1.4.1.2.3.51.2.2.10.2.1.1.7.1", /* pd1ModuleAllocatedPowerCurrent .2.1.1.7 + * pd2ModuleAllocatedPowerCurrent .3.1.1.7 + */ + .threshold_oids = {}, + .threshold_write_oids = {}, + }, + .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, + .sensor_enabled = SAHPI_TRUE, + .events_enabled = SAHPI_FALSE, + .assert_mask = 0x00, + .deassert_mask = 0x00, + .event_array = { + {}, + }, + .reading2event = {}, + }, + .comment = "Assigned Power Capability", + }, + + { + .index = 4, + .sensor = { + .Num = BLADECENTER_SENSOR_NUM_MIN_POWER, + .Type = SAHPI_OTHER_UNITS_BASED_SENSOR, + .Category = SAHPI_EC_THRESHOLD, + .EnableCtrl = SAHPI_FALSE, + .EventCtrl = SAHPI_SEC_READ_ONLY, + .Events = 0, + .DataFormat = { + .IsSupported = SAHPI_TRUE, + .ReadingType = SAHPI_SENSOR_READING_TYPE_UINT64, + .BaseUnits = SAHPI_SU_WATTS, + .ModifierUnits = SAHPI_SU_UNSPECIFIED, + .ModifierUse = SAHPI_SMUU_NONE, + .Percentage = SAHPI_FALSE, + .Range = {}, + }, + .ThresholdDefn = { + .IsAccessible = SAHPI_FALSE, + .ReadThold = 0, + .WriteThold = 0, + }, + .Oem = 0, + }, + .sensor_info = { + .mib = { + .not_avail_indicator_num = 0, + .write_only = SAHPI_FALSE, + .oid = ".1.3.6.1.4.1.2.3.51.2.2.10.2.1.1.9.1", /* pd1ModuleAllocatedPowerMin .2.1.1.9 + * pd2ModuleAllocatedPowerMin .3.1.1.9 + */ + .threshold_oids = {}, + .threshold_write_oids = {}, + }, + .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID, + .sensor_enabled = SAHPI_TRUE, + .events_enabled = SAHPI_FALSE, + .assert_mask = 0, + .deassert_mask = 0, + .event_array = { + {}, + }, + .reading2event = {}, + }, + .comment = "Minumum Power Capability", + }, + {} /* Terminate array with a null element */ +}; + + /************************************************************************* * Control Definitions *************************************************************************/ @@ -7235,6 +7557,16 @@ {} /* Terminate array with a null element */ }; + +/*********************** + * Physical Slot Controls + ***********************/ + +struct snmp_bc_control snmp_bc_slot_controls[] = { + + {} /* Terminate array with a null element */ +}; + /************************************************************************* * Inventory Definitions *************************************************************************/ @@ -7469,3 +7801,14 @@ {} /* Terminate array with a null element */ }; + +/**************************** + * Physical Slot VPD + ****************************/ + +struct snmp_bc_inventory snmp_bc_slot_inventories[] = { + + {} /* Terminate array with a null element */ +}; + + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pd...@us...> - 2006-05-30 19:44:07
|
Revision: 5835 Author: pdphan Date: 2006-05-30 12:44:00 -0700 (Tue, 30 May 2006) ViewCVS: http://svn.sourceforge.net/openhpi/?rev=5835&view=rev Log Message: ----------- Add Slot Resources and their associated RDRs , Feature 1497740 Modified Paths: -------------- openhpi/trunk/plugins/snmp_bc/snmp_bc_sensor.c Modified: openhpi/trunk/plugins/snmp_bc/snmp_bc_sensor.c =================================================================== --- openhpi/trunk/plugins/snmp_bc/snmp_bc_sensor.c 2006-05-30 19:43:37 UTC (rev 5834) +++ openhpi/trunk/plugins/snmp_bc/snmp_bc_sensor.c 2006-05-30 19:44:00 UTC (rev 5835) @@ -107,10 +107,25 @@ if (rdr->RdrTypeUnion.SensorRec.DataFormat.IsSupported == SAHPI_TRUE) { err = SA_OK; if ((sid == BLADECENTER_SENSOR_NUM_MGMNT_ACTIVE) || - (sid == BLADECENTER_SENSOR_NUM_MGMNT_STANDBY)) + (sid == BLADECENTER_SENSOR_NUM_MGMNT_STANDBY)) + { err = snmp_bc_get_logical_sensors(hnd, rid, sid, &working_reading); - else + + } + else if (sid == BLADECENTER_SENSOR_NUM_SLOT_STATE) + { + err = snmp_bc_get_slot_state_sensor(hnd, rid, sid, &working_reading); + } + else if ( (sid == BLADECENTER_SENSOR_NUM_MAX_POWER) || + (sid == BLADECENTER_SENSOR_NUM_ASSIGNED_POWER) || + (sid == BLADECENTER_SENSOR_NUM_MIN_POWER) ) + { + err = snmp_bc_get_slot_power_sensor(hnd, rid, sid, &working_reading); + } + else /* Normal sensors */ + { err = snmp_bc_get_sensor_oid_reading(hnd, rid, sid, sinfo->mib.oid, &working_reading); + } if (err) { dbg("Cannot determine sensor's reading. Error=%s", oh_lookup_error(err)); @@ -364,7 +379,7 @@ * @sid: Sensor ID. * @reading: Location of sensor's reading * - * Translates and sensor's reading into an event state(s). + * Re-direct and read sensors from real physical MM for Virtual MM.. * * Return values: * SA_OK - Normal case. @@ -1573,6 +1588,789 @@ } +/** + * snmp_bc_set_slot_state_sensor: + * @hnd: Handler data pointer. + * @e: Pointer to struct oh_event of the resource + * @slot_ep: Pointer to Slot Entity Path of the resource. + * + * Sets Slot State Sensor values. + * + * Return values: + * SA_OK - Normal case. + * SA_ERR_HPI_INVALID_PARAMS - Resource doesn't have SAHPI_CAPABILITY_SENSOR. + **/ +SaErrorT snmp_bc_set_slot_state_sensor(void *hnd, struct oh_event *e, SaHpiEntityPathT *slot_ep) +{ + + SaErrorT err; + SaHpiRptEntryT *res; + SaHpiRdrT *rdr; + struct SensorInfo *sinfo; + struct oh_handler_state *handle; + struct snmp_bc_hnd *custom_handle; + + + if (!e || !hnd || !slot_ep ) + return(SA_ERR_HPI_INVALID_PARAMS); + + handle = (struct oh_handler_state *) hnd; + custom_handle = (struct snmp_bc_hnd *)handle->data; + + // res = oh_get_resource_by_ep(handle->rptcache, slot_ep); + res = oh_get_resource_by_ep(custom_handle->tmpcache, slot_ep); + if (!res) { + dbg("No valid resource or rdr at hand. Could not process new rdr."); + return(SA_ERR_HPI_INVALID_DATA); + } + + // rdr = oh_get_rdr_next(handle->rptcache, res->ResourceId, SAHPI_FIRST_ENTRY); + rdr = oh_get_rdr_next(custom_handle->tmpcache, res->ResourceId, SAHPI_FIRST_ENTRY); + while (rdr) { + if ((rdr->RdrType == SAHPI_SENSOR_RDR) && + (rdr->RdrTypeUnion.SensorRec.Num == BLADECENTER_SENSOR_NUM_SLOT_STATE)) + { + // sinfo = (struct SensorInfo *)oh_get_rdr_data(handle->rptcache, res->ResourceId, rdr->RecordId); + sinfo = (struct SensorInfo *)oh_get_rdr_data(custom_handle->tmpcache, res->ResourceId, rdr->RecordId); + sinfo->cur_state = SAHPI_ES_PRESENT; + sinfo->cur_child_rid = e->u.res_event.entry.ResourceId; + + //err = oh_add_rdr(handle->rptcache, + err = oh_add_rdr(custom_handle->tmpcache, + res->ResourceId, + rdr, + sinfo, 0); + + break; + } + // rdr = oh_get_rdr_next(handle->rptcache, res->ResourceId, rdr->RecordId); + rdr = oh_get_rdr_next(custom_handle->tmpcache, res->ResourceId, rdr->RecordId); + } + + + return(SA_OK); +} + + +/** + * snmp_bc_reset_slot_state_sensor: + * @hnd: Handler data pointer. + * @slot_ep: Pointer to Slot Entity Path of the resource. + * + * REsets Slot State Sensor values. + * + * Return values: + * SA_OK - Normal case. + * SA_ERR_HPI_INVALID_PARAMS - Resource doesn't have SAHPI_CAPABILITY_SENSOR. + **/ +SaErrorT snmp_bc_reset_slot_state_sensor(void *hnd, SaHpiEntityPathT *slot_ep) +{ + + SaErrorT err; + SaHpiRptEntryT *res; + SaHpiRdrT *rdr; + struct SensorInfo *sinfo; + struct oh_handler_state *handle; + struct snmp_bc_hnd *custom_handle; + + + if (!hnd || !slot_ep ) + return(SA_ERR_HPI_INVALID_PARAMS); + + handle = (struct oh_handler_state *) hnd; + custom_handle = (struct snmp_bc_hnd *)handle->data; + + res = oh_get_resource_by_ep(handle->rptcache, slot_ep); + + if (!res) { + dbg("No valid resource or rdr at hand. Could not process new rdr."); + return(SA_ERR_HPI_INVALID_DATA); + } + + rdr = oh_get_rdr_next(handle->rptcache, res->ResourceId, SAHPI_FIRST_ENTRY); + while (rdr) { + if ((rdr->RdrType == SAHPI_SENSOR_RDR) && + (rdr->RdrTypeUnion.SensorRec.Num == BLADECENTER_SENSOR_NUM_SLOT_STATE)) + { + sinfo = (struct SensorInfo *)oh_get_rdr_data(handle->rptcache, res->ResourceId, rdr->RecordId); + sinfo->cur_state = SAHPI_ES_ABSENT; + sinfo->cur_child_rid = SAHPI_UNSPECIFIED_RESOURCE_ID; + + err = oh_add_rdr(handle->rptcache, + res->ResourceId, + rdr, + sinfo, 0); + + break; + } + rdr = oh_get_rdr_next(handle->rptcache, res->ResourceId, rdr->RecordId); + } + + + return(SA_OK); +} + +/** + * snmp_bc_set_resource_slot_state_sensor: + * @hnd: Handler data pointer. + * @e: Pointer to struct oh_event of the resource + * @resourcewidth: Number of physical slot this resource occupies + * + * Setting Slot State Sensor values for all slots occupied by this resource. + * + * Return values: + * SA_OK - Normal case. + * SA_ERR_HPI_INVALID_PARAMS - Resource doesn't have SAHPI_CAPABILITY_SENSOR. + **/ + +SaErrorT snmp_bc_set_resource_slot_state_sensor(void *hnd, struct oh_event *e, guint resourcewidth) +{ + guint i, j; + SaErrorT err; + SaHpiEntityPathT slot_ep; + struct oh_handler_state *handle; + struct snmp_bc_hnd *custom_handle; + + if (!e || (e->type != OH_ET_RESOURCE) ) + return(SA_ERR_HPI_INVALID_PARAMS); + + handle = (struct oh_handler_state *) hnd; + custom_handle = (struct snmp_bc_hnd *)handle->data; + err = snmp_bc_extract_slot_ep( &(e->u.res_event.entry.ResourceEntity), &slot_ep); + + j = slot_ep.Entry[0].EntityLocation; + if ( (custom_handle->platform == SNMP_BC_PLATFORM_BC) || (custom_handle->platform == SNMP_BC_PLATFORM_BCH)) + { + for (i = 0; i < resourcewidth; i++) { + oh_set_ep_location(&slot_ep, + slot_ep.Entry[0].EntityType, j+i); + + err = snmp_bc_set_slot_state_sensor(handle, e, &slot_ep); + } + } else if (custom_handle->platform == SNMP_BC_PLATFORM_BCT){ + for (i = 0; i < resourcewidth; i++) { + oh_set_ep_location(&slot_ep, + slot_ep.Entry[0].EntityType, j - i); + + err = snmp_bc_set_slot_state_sensor(handle, e, &slot_ep); + } + } + return(SA_OK); +} + +/** + * snmp_bc_get_slot_state_sensor: + * @hnd: Handler data pointer. + * @rid: Resource ID. + * @sid: Sensor ID. + * @reading: Location of sensor's reading + * + * + * Return values: + * SA_OK - Normal case. + * SA_ERR_HPI_INVALID_PARAMS - Resource doesn't have SAHPI_CAPABILITY_SENSOR. + **/ +SaErrorT snmp_bc_get_slot_state_sensor(void *hnd, + SaHpiResourceIdT rid, + SaHpiSensorNumT sid, + SaHpiSensorReadingT *reading) +{ + SaHpiRdrT *rdr; + struct SensorInfo *sinfo; + struct oh_handler_state *handle; + struct snmp_bc_hnd *custom_handle; + + if (!hnd || !reading) + return(SA_ERR_HPI_INVALID_PARAMS); + + handle = (struct oh_handler_state *) hnd; + custom_handle = (struct snmp_bc_hnd *)handle->data; + + rdr = oh_get_rdr_by_type(handle->rptcache, rid, SAHPI_SENSOR_RDR, sid); + if (rdr == NULL) return(SA_ERR_HPI_NOT_PRESENT); + sinfo = (struct SensorInfo *)oh_get_rdr_data(handle->rptcache, rid, rdr->RecordId); + if (sinfo == NULL) { + dbg("No sensor data. Sensor=%s", rdr->IdString.Data); + return(SA_ERR_HPI_INTERNAL_ERROR); + } + + /* Set SensorReading structure using data stored in rptcache */ + reading->IsSupported = rdr->RdrTypeUnion.SensorRec.DataFormat.IsSupported; + reading->Type = rdr->RdrTypeUnion.SensorRec.DataFormat.ReadingType; + reading->Value.SensorUint64 = (SaHpiUint64T) sinfo->cur_child_rid; + + return(SA_OK); +} + +/** + * snnp_bc_clear_resource_slot_state_sensor: + * @hnd: Handler data pointer. + * @rid: Resource ID. + * @sid: Sensor ID. + * @reading: Location of sensor's reading + * + * + * Return values: + * SA_OK - Normal case. + * SA_ERR_HPI_INVALID_PARAMS - Resource doesn't have SAHPI_CAPABILITY_SENSOR. + **/ +SaErrorT snnp_bc_reset_resource_slot_state_sensor(void *hnd, SaHpiRptEntryT *res) +{ + + guint i, j; + SaErrorT err; + guint resourcewidth; + SaHpiEntityPathT slot_ep; + struct snmp_value get_value; + struct oh_handler_state *handler; + struct snmp_bc_hnd *custom_handler; + struct ResourceInfo *res_info_ptr; + + + if (!hnd || !res ) + return(SA_ERR_HPI_INVALID_PARAMS); + + handler = (struct oh_handler_state *) hnd; + custom_handler = (struct snmp_bc_hnd *)handler->data; + err = snmp_bc_extract_slot_ep( &(res->ResourceEntity), &slot_ep); + res_info_ptr = (struct ResourceInfo *)oh_get_resource_data(handler->rptcache, res->ResourceId); + + resourcewidth = 1; + if (res_info_ptr->mib.OidResourceWidth != NULL) { + err = snmp_bc_oid_snmp_get(custom_handler, &(res->ResourceEntity), + res_info_ptr->mib.OidResourceWidth, &get_value, SAHPI_TRUE); + if (!err && (get_value.type == ASN_INTEGER)) { + resourcewidth = get_value.integer; + } + } + + j = slot_ep.Entry[0].EntityLocation; + if ( (custom_handler->platform == SNMP_BC_PLATFORM_BC) || (custom_handler->platform == SNMP_BC_PLATFORM_BCH)) + { + for (i = 0; i < resourcewidth; i++) { + oh_set_ep_location(&slot_ep, + slot_ep.Entry[0].EntityType, j+i); + + err = snmp_bc_reset_slot_state_sensor(handler, &slot_ep); + } + } else if (custom_handler->platform == SNMP_BC_PLATFORM_BCT){ + for (i = 0; i < resourcewidth; i++) { + oh_set_ep_location(&slot_ep, + slot_ep.Entry[0].EntityType, j - i); + + err = snmp_bc_reset_slot_state_sensor(handler, &slot_ep); + } + } + + return(SA_OK); + +} + + +#define usepowerdomain1 \ +do { \ + switch(sid) { \ + case BLADECENTER_SENSOR_NUM_MAX_POWER: \ + thisOID = SNMP_BC_PD1POWERMAX; \ + break; \ + case BLADECENTER_SENSOR_NUM_ASSIGNED_POWER: \ + thisOID = SNMP_BC_PD1POWERCURRENT; \ + break; \ + case BLADECENTER_SENSOR_NUM_MIN_POWER: \ + thisOID = SNMP_BC_PD1POWERMIN; \ + break; \ + default: \ + dbg("Not one of the Slot Power Sensors.\n"); \ + return(SA_ERR_HPI_INTERNAL_ERROR); \ + break; \ + } \ +} while(0) + + +#define usepowerdomain2 \ +do { \ + switch(sid) { \ + case BLADECENTER_SENSOR_NUM_MAX_POWER: \ + thisOID = SNMP_BC_PD2POWERMAX; \ + break; \ + case BLADECENTER_SENSOR_NUM_ASSIGNED_POWER: \ + thisOID = SNMP_BC_PD2POWERCURRENT; \ + break; \ + case BLADECENTER_SENSOR_NUM_MIN_POWER: \ + thisOID = SNMP_BC_PD2POWERMIN; \ + break; \ + default: \ + dbg("Not one of the Slot Power Sensors.\n"); \ + return(SA_ERR_HPI_INTERNAL_ERROR); \ + break; \ + } \ +} while(0) + +/** + * snmp_bc_get_slot_power_sensor: + * @hnd: Handler data pointer. + * @rid: Resource ID. + * @sid: Sensor ID. + * @reading: Location of sensor's reading + * + * + * Return values: + * SA_OK - Normal case. + * SA_ERR_HPI_INVALID_PARAMS. + **/ +SaErrorT snmp_bc_get_slot_power_sensor(void *hnd, + SaHpiResourceIdT rid, + SaHpiSensorNumT sid, + SaHpiSensorReadingT *reading) +{ + guint slotnum; + guint oidIndex; + SaErrorT err; + char *thisOID; + SaHpiRdrT *rdr; + gchar **power_substrs; + char oid[SNMP_BC_MAX_OID_LENGTH]; + SaHpiRptEntryT *res; + struct snmp_value get_value; + struct oh_handler_state *handler; + struct snmp_bc_hnd *custom_handler; + + if (!hnd || !reading ) + return(SA_ERR_HPI_INVALID_PARAMS); + + handler = (struct oh_handler_state *) hnd; + custom_handler = (struct snmp_bc_hnd *)handler->data; + + res = oh_get_resource_by_id(handler->rptcache, rid); + slotnum = res->ResourceEntity.Entry[0].EntityLocation; + + rdr = oh_get_rdr_by_type(handler->rptcache, rid, SAHPI_SENSOR_RDR, sid); + if (rdr == NULL) return(SA_ERR_HPI_NOT_PRESENT); + + oidIndex = SNMP_BC_NOT_VALID; + thisOID = NULL; + + switch (res->ResourceEntity.Entry[0].EntityType) + { + case BLADECENTER_PERIPHERAL_BAY_SLOT: + oidIndex = 2; + usepowerdomain1; + break; + + case BLADECENTER_INTERCONNECT_SLOT: + if (custom_handler->platform == SNMP_BC_PLATFORM_BCT) { + switch (slotnum) { + case 1: + oidIndex = 9; + break; + case 2: + oidIndex = 10; + break; + case 3: + oidIndex = 11; + break; + + case 4: + oidIndex = 12; + break; + default: + dbg("Not one of the valid BC-T Swich Slots.\n"); + return(SA_ERR_HPI_INTERNAL_ERROR); + break; + } + + usepowerdomain1; + + } else if (custom_handler->platform == SNMP_BC_PLATFORM_BC) { + switch (slotnum) { + case 1: + oidIndex = 7; + break; + case 2: + oidIndex = 8; + break; + case 3: + oidIndex = 9; + break; + + case 4: + oidIndex = 10; + break; + default: + dbg("Not one of the valid BC Switch Slots.\n"); + return(SA_ERR_HPI_INTERNAL_ERROR); + break; + } + + usepowerdomain1; + } else if (custom_handler->platform == SNMP_BC_PLATFORM_BCH) { + switch (slotnum) { + case 1: + oidIndex = 9; + break; + case 2: + oidIndex = 10; + break; + case 3: + oidIndex = 11; + break; + + case 4: + oidIndex = 12; + break; + case 5: + oidIndex = 11; + break; + case 6: + oidIndex = 12; + break; + case 7: + oidIndex = 13; + break; + case 8: + oidIndex = 14; + break; + case 9: + oidIndex = 15; + break; + case 10: + oidIndex = 16; + break; + default: + dbg("Not one of the valid BC H Switch Slots.\n"); + return(SA_ERR_HPI_INTERNAL_ERROR); + break; + } + if ( (slotnum == 5) || (slotnum == 6)){ + usepowerdomain2; + } else { + usepowerdomain1; + } + } else { + dbg("Not one of the supported platform.\n"); + return(SA_ERR_HPI_INTERNAL_ERROR); + } + break; + + case BLADECENTER_SYS_MGMNT_MODULE_SLOT: + if (custom_handler->platform == SNMP_BC_PLATFORM_BCT) { + switch (slotnum) { + case 1: + oidIndex = 7; + break; + case 2: + oidIndex = 8; + break; + default: + dbg("Not one of the valid BC-T MM Slots.\n"); + return(SA_ERR_HPI_INTERNAL_ERROR); + break; + } + + usepowerdomain1; + + } else if (custom_handler->platform == SNMP_BC_PLATFORM_BC) { + switch (slotnum) { + case 1: + oidIndex = 5; + break; + case 2: + oidIndex = 6; + break; + default: + dbg("Not one of the valid BC MM Slots.\n"); + return(SA_ERR_HPI_INTERNAL_ERROR); + break; + } + + usepowerdomain1; + + } else if (custom_handler->platform == SNMP_BC_PLATFORM_BCH) { + switch (slotnum) { + case 1: + oidIndex = 7; + break; + case 2: + oidIndex = 8; + break; + default: + dbg("Not one of the valid BC H Switch Slots.\n"); + return(SA_ERR_HPI_INTERNAL_ERROR); + break; + } + + usepowerdomain1; + } else { + dbg("Not one of the supported platform.\n"); + return(SA_ERR_HPI_INTERNAL_ERROR); + } + break; + + case BLADECENTER_FAN_SLOT: + if (custom_handler->platform == SNMP_BC_PLATFORM_BCT) { + switch (slotnum) { + case 1: + oidIndex = 3; + break; + case 2: + oidIndex = 4; + break; + case 3: + oidIndex = 1; + break; + + case 4: + oidIndex = 2; + break; + default: + dbg("Not one of the valid BC-T Fan Slots.\n"); + return(SA_ERR_HPI_INTERNAL_ERROR); + break; + } + + if ( slotnum < 3) { + usepowerdomain1; + } else { + usepowerdomain2; + } + + } else if (custom_handler->platform == SNMP_BC_PLATFORM_BC) { + switch (slotnum) { + case 1: + oidIndex = 3; + break; + case 2: + oidIndex = 4; + break; + default: + dbg("Not one of the valid BC Fan Slots.\n"); + return(SA_ERR_HPI_INTERNAL_ERROR); + break; + } + + usepowerdomain1; + + } else if (custom_handler->platform == SNMP_BC_PLATFORM_BCH) { + switch (slotnum) { + case 1: + oidIndex = 3; + break; + case 2: + oidIndex = 4; + break; + case 3: + oidIndex = 5; + break; + + case 4: + oidIndex = 6; + break; + default: + dbg("Not one of the valid BC H Fan Slots.\n"); + return(SA_ERR_HPI_INTERNAL_ERROR); + break; + } + usepowerdomain1; + + } else { + dbg("Not one of the supported platform.\n"); + return(SA_ERR_HPI_INTERNAL_ERROR); + } + break; + case SAHPI_ENT_PHYSICAL_SLOT: + if (custom_handler->platform == SNMP_BC_PLATFORM_BCT) { + switch (slotnum) { + case 1: + oidIndex = 13; + break; + case 2: + oidIndex = 14; + break; + case 3: + oidIndex = 15; + break; + + case 4: + oidIndex = 16; + break; + case 5: + oidIndex = 3; + break; + case 6: + oidIndex = 4; + break; + case 7: + oidIndex = 5; + break; + case 8: + oidIndex = 6; + break; + default: + dbg("Not one of the valid BC-T Blade Slots.\n"); + return(SA_ERR_HPI_INTERNAL_ERROR); + break; + } + + if (slotnum < 5) { + usepowerdomain1; + } else { + usepowerdomain2; + } + + } else if (custom_handler->platform == SNMP_BC_PLATFORM_BC) { + switch (slotnum) { + case 1: + oidIndex = 11; + break; + case 2: + oidIndex = 12; + break; + case 3: + oidIndex = 13; + break; + + case 4: + oidIndex = 14; + break; + case 5: + oidIndex = 15; + break; + case 6: + oidIndex = 16; + break; + case 7: + oidIndex = 1; + break; + case 8: + oidIndex = 2; + break; + case 9: + oidIndex = 3; + break; + case 10: + oidIndex = 4; + break; + case 11: + oidIndex = 5; + break; + case 12: + oidIndex = 6; + break; + case 13: + oidIndex = 7; + break; + case 14: + oidIndex = 8; + break; + default: + dbg("Not one of the valid BC Blade Slots.\n"); + return(SA_ERR_HPI_INTERNAL_ERROR); + break; + } + + + if (slotnum < 7) { + usepowerdomain1; + } else { + usepowerdomain2; + } + } else if (custom_handler->platform == SNMP_BC_PLATFORM_BCH) { + switch (slotnum) { + case 1: + case 8: + oidIndex = 17; + break; + case 2: + case 9: + oidIndex = 18; + break; + case 3: + case 10: + oidIndex = 19; + break; + + case 4: + case 11: + oidIndex = 20; + break; + case 5: + case 12: + oidIndex = 21; + break; + case 6: + case 13: + oidIndex = 22; + break; + case 7: + case 14: + oidIndex = 23; + break; + default: + dbg("Not one of the valid BC H Switch Slots.\n"); + return(SA_ERR_HPI_INTERNAL_ERROR); + break; + } + if ( slotnum > 7){ + + usepowerdomain2; + } else { + usepowerdomain1; + } + } else { + dbg("Not one of the supported platform.\n"); + return(SA_ERR_HPI_INTERNAL_ERROR); + } + break; + case BLADECENTER_POWER_SUPPLY_SLOT: + default: + thisOID = NULL; + oidIndex = SNMP_BC_NOT_VALID; + break; + + } + + if ( (thisOID == NULL) || (oidIndex == SNMP_BC_NOT_VALID)) { + reading->IsSupported = SAHPI_FALSE; + return(SA_OK); + } + + snprintf(oid, SNMP_BC_MAX_OID_LENGTH, "%s.%d", thisOID, oidIndex); + + printf(" >>> Attempt to read OID %s\n", oid); + err = snmp_bc_snmp_get(custom_handler, oid, &get_value, SAHPI_TRUE); + if (err != SA_OK) { + printf(" >>> not able to read OID %s\n", oid); + return(err); + } else if ((err == SA_OK) && (get_value.type != ASN_OCTET_STR)) { + dbg("Cannot get Power Reading %s\n", oid); + return(SA_ERR_HPI_INTERNAL_ERROR); + } + + + /* Set SensorReading structure */ + reading->IsSupported = rdr->RdrTypeUnion.SensorRec.DataFormat.IsSupported; + reading->Type = rdr->RdrTypeUnion.SensorRec.DataFormat.ReadingType; + + if ( strncmp(get_value.string, "N/A", sizeof("N/A")) == 0) { + reading->Value.SensorUint64 = 0; + } else { + power_substrs = g_strsplit(get_value.string, " ", -1); + if (power_substrs[0] == NULL) + return(SA_ERR_HPI_INTERNAL_ERROR); + + + reading->Value.SensorUint64 = g_strtod(power_substrs[0], NULL); + } + + return(SA_OK); +} + + +/** + * + * Intrastructure to Plugin APIs + * + **/ void * oh_get_sensor_reading (void *, SaHpiResourceIdT, SaHpiSensorNumT, SaHpiSensorReadingT *, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pd...@us...> - 2006-05-30 19:43:41
|
Revision: 5834 Author: pdphan Date: 2006-05-30 12:43:37 -0700 (Tue, 30 May 2006) ViewCVS: http://svn.sourceforge.net/openhpi/?rev=5834&view=rev Log Message: ----------- Add Slot Resources and their associated RDRs , Feature 1497740 Modified Paths: -------------- openhpi/trunk/plugins/snmp_bc/snmp_bc_utils.h Modified: openhpi/trunk/plugins/snmp_bc/snmp_bc_utils.h =================================================================== --- openhpi/trunk/plugins/snmp_bc/snmp_bc_utils.h 2006-05-30 19:43:29 UTC (rev 5833) +++ openhpi/trunk/plugins/snmp_bc/snmp_bc_utils.h 2006-05-30 19:43:37 UTC (rev 5834) @@ -22,5 +22,8 @@ SaErrorT snmp_bc_get_guid(struct snmp_bc_hnd *custom_handle, struct oh_event *e, struct ResourceInfo *res_info_ptr); + +SaErrorT snmp_bc_extract_slot_ep(SaHpiEntityPathT *resource_ep, + SaHpiEntityPathT *slot_ep); #endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pd...@us...> - 2006-05-30 19:43:32
|
Revision: 5833 Author: pdphan Date: 2006-05-30 12:43:29 -0700 (Tue, 30 May 2006) ViewCVS: http://svn.sourceforge.net/openhpi/?rev=5833&view=rev Log Message: ----------- Add Slot Resources and their associated RDRs , Feature 1497740 Modified Paths: -------------- openhpi/trunk/plugins/snmp_bc/snmp_bc_utils.c Modified: openhpi/trunk/plugins/snmp_bc/snmp_bc_utils.c =================================================================== --- openhpi/trunk/plugins/snmp_bc/snmp_bc_utils.c 2006-05-30 19:43:09 UTC (rev 5832) +++ openhpi/trunk/plugins/snmp_bc/snmp_bc_utils.c 2006-05-30 19:43:29 UTC (rev 5833) @@ -171,3 +171,51 @@ /* trace("get_guid exit status %d.", status); */ return(status); } + + +/** + * snmp_bc_discover_resources: + * @resource_ep: Pointer to full FRU Resource Entity Path. + * @slot_ep : Pointer to Slot Entity Path extracted from resource_ep + * + * Extract Slot Entity Path portion from the full FRU Entity Path + * + * Return values: + * Slot Entity Path - normal operation. + * SA_ERR_HPI_INVALID_PARAMS - Invalid input pointer or data + **/ +SaErrorT snmp_bc_extract_slot_ep(SaHpiEntityPathT *resource_ep, SaHpiEntityPathT *slot_ep) +{ + + guint i,j; + + if (!resource_ep || !slot_ep) { + dbg("Invalid parameter."); + return(SA_ERR_HPI_INVALID_PARAMS); + } + + + for (i = 0; i < SAHPI_MAX_ENTITY_PATH ; i++) { + if ( (resource_ep->Entry[i].EntityType == SAHPI_ENT_PHYSICAL_SLOT) || + (resource_ep->Entry[i].EntityType == BLADECENTER_INTERCONNECT_SLOT) || + (resource_ep->Entry[i].EntityType == BLADECENTER_POWER_SUPPLY_SLOT) || + (resource_ep->Entry[i].EntityType == BLADECENTER_PERIPHERAL_BAY_SLOT) || + (resource_ep->Entry[i].EntityType == BLADECENTER_SYS_MGMNT_MODULE_SLOT) || + (resource_ep->Entry[i].EntityType == BLADECENTER_FAN_SLOT) ) + break; + } + + /* There must alway be a SAHPI_ENT_ROOT, so xx_SLOT entry index must always be less than SAHPI_MAX_ENTITY_PATH */ + if ( i == SAHPI_MAX_ENTITY_PATH) return(SA_ERR_HPI_INVALID_PARAMS); + + + for ( j = 0; i < SAHPI_MAX_ENTITY_PATH; i++) { + slot_ep->Entry[j].EntityType = resource_ep->Entry[i].EntityType; + slot_ep->Entry[j].EntityLocation = resource_ep->Entry[i].EntityLocation; + + if (resource_ep->Entry[i].EntityType == SAHPI_ENT_ROOT) break; + j++; + } + + return(SA_OK); +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pd...@us...> - 2006-05-30 19:43:22
|
Revision: 5832 Author: pdphan Date: 2006-05-30 12:43:09 -0700 (Tue, 30 May 2006) ViewCVS: http://svn.sourceforge.net/openhpi/?rev=5832&view=rev Log Message: ----------- Add Slot Resources and their associated RDRs , Feature 1497740 Modified Paths: -------------- openhpi/trunk/plugins/snmp_bc/snmp_bc_discover.h Modified: openhpi/trunk/plugins/snmp_bc/snmp_bc_discover.h =================================================================== --- openhpi/trunk/plugins/snmp_bc/snmp_bc_discover.h 2006-05-27 03:33:12 UTC (rev 5831) +++ openhpi/trunk/plugins/snmp_bc/snmp_bc_discover.h 2006-05-30 19:43:09 UTC (rev 5832) @@ -81,5 +81,14 @@ SaHpiEntityPathT *ep_root, char *mm_vector); SaErrorT snmp_bc_update_chassis_topo(struct oh_handler_state *handle); + +SaErrorT snmp_bc_discover_all_slots(struct oh_handler_state *handle, + SaHpiEntityPathT *ep_root); + +SaErrorT snmp_bc_discover_slot( struct oh_handler_state *handle, + SaHpiEntityPathT *ep_root, + SaHpiEntityTypeT entitytype, + guint entitylocation); + #endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <re...@us...> - 2006-05-27 03:33:27
|
Revision: 5831 Author: renierm Date: 2006-05-26 20:33:12 -0700 (Fri, 26 May 2006) ViewCVS: http://svn.sourceforge.net/openhpi/?rev=5831&view=rev Log Message: ----------- Merging changes in trunk 5818 to 5830 Modified Paths: -------------- openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc.c openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_discover_bc.c openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_discover_bc.h openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_event.c openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_resources.c openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_resources.h openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_sensor.c openhpi/branches/renier-experimental/plugins/snmp_bc/t/sim_resources.c openhpi/branches/renier-experimental/utils/sahpi_struct_utils.c openhpi/branches/renier-experimental/utils/uid_utils.c Modified: openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc.c =================================================================== --- openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc.c 2006-05-25 19:36:35 UTC (rev 5830) +++ openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc.c 2006-05-27 03:33:12 UTC (rev 5831) @@ -1,11 +1,11 @@ /* -*- linux-c -*- * - * (C) Copyright IBM Corp. 2003, 2005 + * (C) Copyright IBM Corp. 2003, 2006 * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This - * file and program are licensed under a BSD style license. See + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This + * file and program are licensed under a BSD style license. See * the Copying file included with the OpenHPI distribution for * full licensing terms. * @@ -240,7 +240,6 @@ continue; \ } - /** * snmp_bc_snmp_get: * @custom_handle: Plugin's data pointer. @@ -284,13 +283,22 @@ } else { custom_handle->handler_retries = 0; if ((err == SA_OK) && (value->type == ASN_OCTET_STR)) { +#if 0 if ( (strncmp(value->string,"(No temperature)", sizeof("(No temperature)")) == 0) || (strncmp(value->string,"(No voltage)", sizeof("(No voltage)")) == 0) ) { snmp_bc_internal_retry(); - } else if (strncmp(value->string,"Not Readable!", sizeof("Not Readable!")) == 0) { - custom_handle->handler_retries = 0; - trace("Not Readable! reading from OID=%s.", objid); + } + else +#endif + if ((strncmp(value->string,"Not Readable!", sizeof("Not Readable!")) == 0) || + (strncmp(value->string,"Not Readable", sizeof("Not Readable")) == 0) || + (strncmp(value->string,"(No temperature)", sizeof("(No temperature)")) == 0) || + (strncmp(value->string,"NO_TEMPERATURE", sizeof("NO_TEMPERATURE")) == 0) || + (!value->string) || + (value->string[0] == '\0')) { + custom_handle->handler_retries = 0; + trace("Not readable reading from OID=%s.", objid); err = SA_ERR_HPI_NO_RESPONSE; break; } else { @@ -304,7 +312,6 @@ return(err); } - /** * snmp_bc_oid_snmp_get: * @custom_handle: Plugin's data pointer. @@ -344,7 +351,6 @@ return(rv); } - /** * snmp_bc_snmp_set: * @custom_handle: Plugin's data pointer. @@ -386,7 +392,6 @@ return(err); } - /** * snmp_bc_oid_snmp_set: * @custom_handle: Plugin's data pointer. Modified: openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_discover_bc.c =================================================================== --- openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_discover_bc.c 2006-05-25 19:36:35 UTC (rev 5830) +++ openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_discover_bc.c 2006-05-27 03:33:12 UTC (rev 5831) @@ -335,6 +335,56 @@ }, .threshold_write_oids = {}, }, + { /* Generic IPMI Voltage Sensor 26 */ + .not_avail_indicator_num = 0, + .write_only = SAHPI_FALSE, + .oid = ".1.3.6.1.4.1.2.3.51.2.22.1.5.5.1.40.x", + .threshold_oids = { + .UpMajor = ".1.3.6.1.4.1.2.3.51.2.22.1.5.6.1.73.x", + .LowMajor = ".1.3.6.1.4.1.2.3.51.2.22.1.5.6.1.74.x", + }, + .threshold_write_oids = {}, + }, + { /* Generic IPMI Voltage Sensor 27 */ + .not_avail_indicator_num = 0, + .write_only = SAHPI_FALSE, + .oid = ".1.3.6.1.4.1.2.3.51.2.22.1.5.5.1.41.x", + .threshold_oids = { + .UpMajor = ".1.3.6.1.4.1.2.3.51.2.22.1.5.6.1.75.x", + .LowMajor = ".1.3.6.1.4.1.2.3.51.2.22.1.5.6.1.76.x", + }, + .threshold_write_oids = {}, + }, + { /* Generic IPMI Voltage Sensor 28 */ + .not_avail_indicator_num = 0, + .write_only = SAHPI_FALSE, + .oid = ".1.3.6.1.4.1.2.3.51.2.22.1.5.5.1.42.x", + .threshold_oids = { + .UpMajor = ".1.3.6.1.4.1.2.3.51.2.22.1.5.6.1.77.x", + .LowMajor = ".1.3.6.1.4.1.2.3.51.2.22.1.5.6.1.78.x", + }, + .threshold_write_oids = {}, + }, + { /* Generic IPMI Voltage Sensor 29 */ + .not_avail_indicator_num = 0, + .write_only = SAHPI_FALSE, + .oid = ".1.3.6.1.4.1.2.3.51.2.22.1.5.5.1.43.x", + .threshold_oids = { + .UpMajor = ".1.3.6.1.4.1.2.3.51.2.22.1.5.6.1.79.x", + .LowMajor = ".1.3.6.1.4.1.2.3.51.2.22.1.5.6.1.80.x", + }, + .threshold_write_oids = {}, + }, + { /* Generic IPMI Voltage Sensor 30 */ + .not_avail_indicator_num = 0, + .write_only = SAHPI_FALSE, + .oid = ".1.3.6.1.4.1.2.3.51.2.22.1.5.5.1.44.x", + .threshold_oids = { + .UpMajor = ".1.3.6.1.4.1.2.3.51.2.22.1.5.6.1.81.x", + .LowMajor = ".1.3.6.1.4.1.2.3.51.2.22.1.5.6.1.82.x", + }, + .threshold_write_oids = {}, + }, }; static SaErrorT snmp_bc_discover_ipmi_sensors(struct oh_handler_state *handle, @@ -456,7 +506,7 @@ strcpy(custom_handle->installed_mm_mask, get_value_mm.string); custom_handle->installed_mt_mask = get_value_media.integer; } - + /****************************** * Discover BladeCenter Chassis ******************************/ @@ -548,7 +598,7 @@ get_integer_object(SNMP_BC_NOS_MT_SUPPORTED, get_value); custom_handle->max_mt_supported = get_value.integer; /* mt - media tray */ - + get_integer_object(SNMP_BC_NOS_BLOWER_SUPPORTED, get_value); custom_handle->max_blower_supported = get_value.integer; /* blower - fan/blower */ } @@ -558,7 +608,6 @@ } - /** * snmp_bc_discover_media_tray: * @handler: Pointer to handler's data. @@ -659,6 +708,7 @@ return(SA_OK); } + /** * snmp_bc_discover_chassis: * @handler: Pointer to handler's data. @@ -670,7 +720,7 @@ * SA_OK - normal case. * SA_ERR_HPI_OUT_OF_SPACE - Cannot allocate space for internal memory. * SA_ERR_HPI_INVALID_PARAMS - Pointer parameter(s) NULL. - **/ + **/ SaErrorT snmp_bc_discover_chassis(struct oh_handler_state *handle, SaHpiEntityPathT *ep_root) { @@ -794,7 +844,7 @@ * SA_OK - normal case. * SA_ERR_HPI_OUT_OF_SPACE - Cannot allocate space for internal memory. * SA_ERR_HPI_INVALID_PARAMS - Pointer parameter(s) NULL. - **/ + **/ SaErrorT snmp_bc_discover_blade(struct oh_handler_state *handle, SaHpiEntityPathT *ep_root, char *blade_vector) { @@ -874,20 +924,16 @@ } else break; } - + snmp_bc_create_resourcetag(&(e->u.res_event.entry.ResourceTag), + snmp_bc_rpt_array[BC_RPT_ENTRY_BLADE].comment, + i + SNMP_BC_HPI_LOCATION_BASE); + + /* Tack on MM's defined blade name */ if (!err && (get_blade_resourcetag.type == ASN_OCTET_STR)) { - snmp_bc_create_resourcetag(&(e->u.res_event.entry.ResourceTag), - get_blade_resourcetag.string, - SNMP_BC_NOT_VALID); - - } else { - snmp_bc_create_resourcetag(&(e->u.res_event.entry.ResourceTag), - snmp_bc_rpt_array[BC_RPT_ENTRY_BLADE].comment, - i + SNMP_BC_HPI_LOCATION_BASE); + oh_append_textbuffer(&(e->u.res_event.entry.ResourceTag)," - "); + oh_append_textbuffer(&(e->u.res_event.entry.ResourceTag), get_blade_resourcetag.string); } - - trace("Discovered resource=%s; ID=%d", e->u.res_event.entry.ResourceTag.Data, e->u.res_event.entry.ResourceId); @@ -989,9 +1035,10 @@ /* Find resource's events, sensors, controls, etc. */ snmp_bc_discover_res_events(handle, &(e->u.res_event.entry.ResourceEntity), res_info_ptr); - snmp_bc_discover_sensors(handle, snmp_bc_blade_expansion_sensors, e); - snmp_bc_discover_controls(handle, snmp_bc_blade_expansion_controls, e); - snmp_bc_discover_inventories(handle, snmp_bc_blade_expansion_inventories, e); + snmp_bc_discover_sensors(handle, snmp_bc_bem_sensors, e); + snmp_bc_discover_ipmi_sensors(handle, snmp_bc_bem_ipmi_sensors, e); + snmp_bc_discover_controls(handle, snmp_bc_bem_controls, e); + snmp_bc_discover_inventories(handle, snmp_bc_bem_inventories, e); } } } @@ -1012,7 +1059,7 @@ * SA_OK - normal case. * SA_ERR_HPI_OUT_OF_SPACE - Cannot allocate space for internal memory. * SA_ERR_HPI_INVALID_PARAMS - Pointer paramter(s) NULL. - **/ + **/ SaErrorT snmp_bc_discover_fans(struct oh_handler_state *handle, SaHpiEntityPathT *ep_root, char *fan_vector) { @@ -1123,7 +1170,7 @@ * SA_OK - normal case. * SA_ERR_HPI_OUT_OF_SPACE - Cannot allocate space for internal memory. * SA_ERR_HPI_INVALID_PARAMS - Pointer parameter(s) NULL. - **/ + **/ SaErrorT snmp_bc_discover_power_module(struct oh_handler_state *handle, SaHpiEntityPathT *ep_root, char *power_module_vector) { @@ -1214,6 +1261,11 @@ /* Find resource's events, sensors, controls, etc. */ snmp_bc_discover_res_events(handle, &(e->u.res_event.entry.ResourceEntity), res_info_ptr); snmp_bc_discover_sensors(handle, snmp_bc_power_sensors, e); + + if (custom_handle->platform == SNMP_BC_PLATFORM_BCH) { + snmp_bc_discover_sensors(handle, snmp_bc_power_sensors_bch, e); + } + snmp_bc_discover_controls(handle, snmp_bc_power_controls, e); snmp_bc_discover_inventories(handle, snmp_bc_power_inventories, e); } @@ -1233,7 +1285,7 @@ * SA_OK - normal case. * SA_ERR_HPI_OUT_OF_SPACE - Cannot allocate space for internal memory. * SA_ERR_HPI_INVALID_PARAMS - Pointer parameter(s) NULL. - **/ + **/ SaErrorT snmp_bc_discover_switch(struct oh_handler_state *handle, SaHpiEntityPathT *ep_root, char *switch_vector) { @@ -1353,7 +1405,7 @@ * SA_OK - normal case. * SA_ERR_HPI_OUT_OF_SPACE - Cannot allocate space for internal memory. * SA_ERR_HPI_INVALID_PARAMS - Pointer parameter(s) NULL. - **/ + **/ SaErrorT snmp_bc_discover_mm(struct oh_handler_state *handle, SaHpiEntityPathT *ep_root, char *mm_vector) { @@ -1532,7 +1584,7 @@ * Return values: * Adds sensor RDRs to internal Infra-structure queues - normal case * SA_ERR_HPI_OUT_OF_SPACE - Cannot allocate space for internal memory - **/ + **/ static SaErrorT snmp_bc_discover_ipmi_sensors(struct oh_handler_state *handle, struct snmp_bc_ipmi_sensor *sensor_array, struct oh_event *res_oh_event) @@ -1562,27 +1614,22 @@ /* Create an temporary hash table and populate with all of the blade's active IPMI sensors */ ipmi_sensor_hash = g_hash_table_new(g_str_hash, g_str_equal); + if (ipmi_sensor_hash == NULL) { dbg("Out of memory."); return(SA_ERR_HPI_OUT_OF_SPACE); } - /* Search for all the defined IPMI sensors. - * Generic IPMI SNMP OID values are populated sequentially. There will not be any valid - * sensors after the first "Not Readable!", "(No temperature)", or "(No voltage)" reading. - */ + /***************************************** + * Search for all the defined IPMI sensors + *****************************************/ /* Find blade's defined temperature IPMI sensors */ for (i=0; i<SNMP_BC_MAX_IPMI_TEMP_SENSORS; i++) { err = snmp_bc_oid_snmp_get(custom_handle, &(res_oh_event->u.res_event.entry.ResourceEntity), snmp_bc_ipmi_sensors_temp[i].oid, &get_value, SAHPI_FALSE); - if (err || - (strncmp(get_value.string, "(No temperature)", sizeof("(No temperature)")) == 0) || - (strncmp(get_value.string, "Not Readable!", sizeof("Not Readable!")) == 0)) { - break; - } - else { + if (!err) { char *hash_existing_key, *hash_value; gchar **strparts = NULL; gchar *ipmi_tag; @@ -1590,7 +1637,7 @@ /* Find IPMI tag in returned value */ strparts = g_strsplit(get_value.string, SNMP_BC_IPMI_STRING_DELIMITER, -1); if (strparts == NULL || strparts[0] == '\0') { - dbg("Cannot split IPMI returned value=%s.", get_value.string); + dbg("Cannot split IPMI temp returned value=%s.", get_value.string); g_strfreev(strparts); continue; } @@ -1602,7 +1649,7 @@ continue; } - trace("Found OID IPMI Sensor=%s", ipmi_tag); + trace("Found OID IPMI sensor=%s", ipmi_tag); /* Insert tag and OID info in temporary hash */ if (!g_hash_table_lookup_extended(ipmi_sensor_hash, @@ -1620,24 +1667,18 @@ g_hash_table_insert(ipmi_sensor_hash, ipmi_tag, mib_info); } else { /* Already exists */ - dbg("IPMI OID ERROR=%s.", snmp_bc_ipmi_sensors_temp[i].oid); + dbg("Duplicate IPMI OID=%s.", snmp_bc_ipmi_sensors_temp[i].oid); g_free(ipmi_tag); } } } - /* FIXME:: Make voltage and temperature search into a single routine */ /* Find blade's voltage IPMI sensors */ for (i=0; i<SNMP_BC_MAX_IPMI_VOLTAGE_SENSORS; i++) { err = snmp_bc_oid_snmp_get(custom_handle, &(res_oh_event->u.res_event.entry.ResourceEntity), snmp_bc_ipmi_sensors_voltage[i].oid, &get_value, SAHPI_FALSE); - if (err || - (strncmp(get_value.string, "(No voltage)", sizeof("(No voltage)")) == 0) || - (strncmp(get_value.string, "Not Readable!", sizeof("Not Readable!")) == 0)) { - break; - } - else { + if (!err) { char *hash_existing_key, *hash_value; gchar **strparts = NULL; gchar *ipmi_tag; @@ -1645,7 +1686,7 @@ /* Find IPMI tag in returned value */ strparts = g_strsplit(get_value.string, SNMP_BC_IPMI_STRING_DELIMITER, -1); if (strparts == NULL || strparts[0] == '\0') { - dbg("Cannot split IPMI returned value=%s.", get_value.string); + dbg("Cannot split IPMI voltage returned value=%s.", get_value.string); g_strfreev(strparts); continue; } @@ -1657,7 +1698,7 @@ continue; } - trace("Found OID IPMI Sensor=%s", ipmi_tag); + trace("Found OID IPMI sensor=%s", ipmi_tag); /* Insert tag and OID info in temporary hash */ if (!g_hash_table_lookup_extended(ipmi_sensor_hash, @@ -1675,7 +1716,7 @@ g_hash_table_insert(ipmi_sensor_hash, ipmi_tag, mib_info); } else { /* Already exists */ - dbg("IPMI OID ERROR=%s.", snmp_bc_ipmi_sensors_voltage[i].oid); + dbg("Duplicate IPMI OID=%s.", snmp_bc_ipmi_sensors_voltage[i].oid); g_free(ipmi_tag); } } @@ -1704,6 +1745,8 @@ err = snmp_bc_mod_sensor_ep(e, sensor_array, i); e->u.rdr_event.rdr.RdrTypeUnion.SensorRec = sensor_array[i].ipmi.sensor; + trace("Blade Found IPMI Sensor=%s", sensor_array[i].ipmi.comment); + oh_init_textbuffer(&(e->u.rdr_event.rdr.IdString)); oh_append_textbuffer(&(e->u.rdr_event.rdr.IdString), sensor_array[i].ipmi.comment); @@ -2083,6 +2126,4 @@ } } return(SA_OK); - } - Modified: openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_discover_bc.h =================================================================== --- openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_discover_bc.h 2006-05-25 19:36:35 UTC (rev 5830) +++ openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_discover_bc.h 2006-05-27 03:33:12 UTC (rev 5831) @@ -4,8 +4,8 @@ * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This - * file and program are licensed under a BSD style license. See + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This + * file and program are licensed under a BSD style license. See * the Copying file included with the OpenHPI distribution for * full licensing terms. */ @@ -16,7 +16,7 @@ #define SNMP_BC_IPMI_STRING_DELIMITER "=" #define SNMP_BC_MAX_IPMI_TEMP_SENSORS 6 -#define SNMP_BC_MAX_IPMI_VOLTAGE_SENSORS 25 +#define SNMP_BC_MAX_IPMI_VOLTAGE_SENSORS 30 #define SNMP_BC_IPMI_TEMP_BLADE_OID ".1.3.6.1.4.1.2.3.51.2.22.1.5.3.1.11.x" #define SNMP_BC_IPMI_VOLTAGE_BLADE_OID ".1.3.6.1.4.1.2.3.51.2.22.1.5.5.1.14.x" Modified: openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_event.c =================================================================== --- openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_event.c 2006-05-25 19:36:35 UTC (rev 5830) +++ openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_event.c 2006-05-27 03:33:12 UTC (rev 5831) @@ -1321,7 +1321,7 @@ loc = strtoul(src_parts[1], &endptr, 10); if (isexpansioncard == SAHPI_TRUE) { rpt_index = BC_RPT_ENTRY_BLADE_EXPANSION_CARD; - array_ptr = &snmp_bc_blade_expansion_sensors[0]; + array_ptr = &snmp_bc_bem_sensors[0]; } else { if (isblade == SAHPI_TRUE) { Modified: openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_resources.c =================================================================== --- openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_resources.c 2006-05-25 19:36:35 UTC (rev 5830) +++ openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_resources.c 2006-05-27 03:33:12 UTC (rev 5831) @@ -432,7 +432,7 @@ .comment = "Blade", .OidResourceTag = ".1.3.6.1.4.1.2.3.51.2.2.8.2.1.1.6.x" }, - /* Blade Expansion Module */ + /* Blade Expansion Module (BEM) */ { .rpt = { .ResourceInfo = { @@ -3328,7 +3328,7 @@ .Oem = 0, }, .sensor_info = { - .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_state = SAHPI_ES_RUNNING, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_DEGRADED | SAHPI_ES_OFF_LINE | SAHPI_ES_INSTALL_ERROR, @@ -3551,12 +3551,8 @@ }; +/* Blade IPMI Sensors */ #define SNMP_BC_LAST_NON_IPMI_BLADE_SENSOR 14 - -/******************** - * Blade IPMI Sensors - ********************/ - struct snmp_bc_ipmi_sensor snmp_bc_blade_ipmi_sensors[] = { /* Blade CPU 1 Temperature Sensor */ { @@ -5743,11 +5739,11 @@ {} /* Terminate array with a null element */ }; -/******************************** - * Blade Expansion Module Sensors - ********************************/ +/************************************** + * Blade Expansion Module (BEM) Sensors + **************************************/ -struct snmp_bc_sensor snmp_bc_blade_expansion_sensors[] = { +struct snmp_bc_sensor snmp_bc_bem_sensors[] = { /* BEM Temperature Sensor */ { .index = 1, @@ -6142,6 +6138,312 @@ {} /* Terminate array with a null element */ }; +/* FIXME:: Add Events - can we delete the voltage sensor above */ + +/* BEM IPMI Sensors */ +#define SNMP_BC_LAST_NON_IPMI_BEM_SENSOR 4 +struct snmp_bc_ipmi_sensor snmp_bc_bem_ipmi_sensors[] = { + /* PEU2 Temperature Sensor */ + { + .ipmi_tag = "PEU2 Temp Sense", + .ipmi = { + .index = 1, + .sensor = { + .Num = SNMP_BC_LAST_NON_IPMI_BEM_SENSOR + 1, + .Type = SAHPI_TEMPERATURE, + .Category = SAHPI_EC_THRESHOLD, + .EnableCtrl = SAHPI_FALSE, + .EventCtrl = SAHPI_SEC_READ_ONLY, + .Events = SAHPI_ES_UPPER_MAJOR | SAHPI_ES_UPPER_CRIT, + .DataFormat = { + .IsSupported = SAHPI_TRUE, + .ReadingType = SAHPI_SENSOR_READING_TYPE_FLOAT64, + .BaseUnits = SAHPI_SU_DEGREES_C, + .ModifierUnits = SAHPI_SU_UNSPECIFIED, + .ModifierUse = SAHPI_SMUU_NONE, + .Percentage = SAHPI_FALSE, + .Range = { + .Flags = SAHPI_SRF_MAX | SAHPI_SRF_MIN, + .Max = { + .IsSupported = SAHPI_TRUE, + .Type = SAHPI_SENSOR_READING_TYPE_FLOAT64, + .Value = { + .SensorFloat64 = 125, + }, + }, + .Min = { + .IsSupported = SAHPI_TRUE, + .Type = SAHPI_SENSOR_READING_TYPE_FLOAT64, + .Value = { + .SensorFloat64 = 0, + }, + }, + }, + }, + .ThresholdDefn = { + .IsAccessible = SAHPI_TRUE, + .ReadThold = SAHPI_STM_UP_MAJOR | SAHPI_STM_UP_CRIT, + .WriteThold = 0, + }, + .Oem = 0, + }, + .sensor_info = { + .mib = { + .not_avail_indicator_num = 0, + .write_only = SAHPI_FALSE, + .oid = "discovered", + .threshold_oids = { + .UpCritical = "discovered", + .UpMajor = "discovered", + }, + .threshold_write_oids = {}, + }, + .cur_state = SAHPI_ES_UNSPECIFIED, + .sensor_enabled = SAHPI_TRUE, + .events_enabled = SAHPI_TRUE, + .assert_mask = SAHPI_ES_UPPER_MAJOR | SAHPI_ES_UPPER_CRIT, + .deassert_mask = SAHPI_ES_UPPER_MAJOR | SAHPI_ES_UPPER_CRIT, + .event_array = { + /* FIXME:: Add events */ + + {}, + }, + .reading2event = {}, + }, + .comment = "PEU2 Temperature Sensor", + }, + }, + /* BSE Temperature Sensor */ + { + .ipmi_tag = "BSE Temp Sense", + .ipmi = { + .index = 2, + .sensor = { + .Num = SNMP_BC_LAST_NON_IPMI_BEM_SENSOR + 2, + .Type = SAHPI_TEMPERATURE, + .Category = SAHPI_EC_THRESHOLD, + .EnableCtrl = SAHPI_FALSE, + .EventCtrl = SAHPI_SEC_READ_ONLY, + .Events = SAHPI_ES_UPPER_MAJOR | SAHPI_ES_UPPER_CRIT, + .DataFormat = { + .IsSupported = SAHPI_TRUE, + .ReadingType = SAHPI_SENSOR_READING_TYPE_FLOAT64, + .BaseUnits = SAHPI_SU_DEGREES_C, + .ModifierUnits = SAHPI_SU_UNSPECIFIED, + .ModifierUse = SAHPI_SMUU_NONE, + .Percentage = SAHPI_FALSE, + .Range = { + .Flags = SAHPI_SRF_MAX | SAHPI_SRF_MIN, + .Max = { + .IsSupported = SAHPI_TRUE, + .Type = SAHPI_SENSOR_READING_TYPE_FLOAT64, + .Value = { + .SensorFloat64 = 125, + }, + }, + .Min = { + .IsSupported = SAHPI_TRUE, + .Type = SAHPI_SENSOR_READING_TYPE_FLOAT64, + .Value = { + .SensorFloat64 = 0, + }, + }, + }, + }, + .ThresholdDefn = { + .IsAccessible = SAHPI_TRUE, + .ReadThold = SAHPI_STM_UP_MAJOR | SAHPI_STM_UP_CRIT, + .WriteThold = 0, + }, + .Oem = 0, + }, + .sensor_info = { + .mib = { + .not_avail_indicator_num = 0, + .write_only = SAHPI_FALSE, + .oid = "discovered", + .threshold_oids = { + .UpCritical = "discovered", + .UpMajor = "discovered", + }, + .threshold_write_oids = {}, + }, + .cur_state = SAHPI_ES_UNSPECIFIED, + .sensor_enabled = SAHPI_TRUE, + .events_enabled = SAHPI_TRUE, + .assert_mask = SAHPI_ES_UPPER_MAJOR | SAHPI_ES_UPPER_CRIT, + .deassert_mask = SAHPI_ES_UPPER_MAJOR | SAHPI_ES_UPPER_CRIT, + .event_array = { + /* FIXME:: Add events */ + + {}, + }, + .reading2event = {}, + }, + .comment = "BSE Temperature Sensor", + }, + }, + /* BSE 1.5 Volt Sensor */ + { + .ipmi_tag = "BSE 1.5V Sense", + .ipmi = { + .index = 3, + .sensor = { + .Num = SNMP_BC_LAST_NON_IPMI_BEM_SENSOR + 3, + .Type = SAHPI_VOLTAGE, + .Category = SAHPI_EC_THRESHOLD, + .EnableCtrl = SAHPI_FALSE, + .EventCtrl = SAHPI_SEC_READ_ONLY, + .Events = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_UPPER_MAJOR, + .DataFormat = { + .IsSupported = SAHPI_TRUE, + .ReadingType = SAHPI_SENSOR_READING_TYPE_FLOAT64, + .BaseUnits = SAHPI_SU_VOLTS, + .ModifierUnits = SAHPI_SU_UNSPECIFIED, + .ModifierUse = SAHPI_SMUU_NONE, + .Percentage = SAHPI_FALSE, + .Range = { + .Flags = SAHPI_SRF_MAX | SAHPI_SRF_MIN | SAHPI_SRF_NOMINAL, + .Max = { + .IsSupported = SAHPI_TRUE, + .Type = SAHPI_SENSOR_READING_TYPE_FLOAT64, + .Value = { + .SensorFloat64 = 4.4, + }, + }, + .Nominal = { + .IsSupported = SAHPI_TRUE, + .Type = SAHPI_SENSOR_READING_TYPE_FLOAT64, + .Value = { + .SensorFloat64 = 1.5, + }, + }, + .Min = { + .IsSupported = SAHPI_TRUE, + .Type = SAHPI_SENSOR_READING_TYPE_FLOAT64, + .Value = { + .SensorFloat64 = 0, + }, + }, + }, + }, + .ThresholdDefn = { + .IsAccessible = SAHPI_TRUE, + .ReadThold = SAHPI_STM_LOW_MAJOR | SAHPI_STM_UP_MAJOR, + .WriteThold = 0, + /* Default HDW thresholds: Warning 1.32<>1.68 */ + }, + .Oem = 0, + }, + .sensor_info = { + .mib = { + .not_avail_indicator_num = 0, + .write_only = SAHPI_FALSE, + .oid = "discovered", + .threshold_oids = { + .UpMajor = "discovered", + .LowMajor = "discovered", + }, + .threshold_write_oids = {}, + }, + .cur_state = SAHPI_ES_UNSPECIFIED, + .sensor_enabled = SAHPI_TRUE, + .events_enabled = SAHPI_TRUE, + .assert_mask = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_UPPER_MAJOR, + .deassert_mask = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_UPPER_MAJOR, + .event_array = { + /* FIXME:: Add events */ + + {}, + }, + .reading2event = {}, + }, + .comment = "BSE 1.5 Volt Sensor", + }, + }, + /* BSE 12 Volt Sensor */ + { + .ipmi_tag = "BSE 12V Sense", + .ipmi = { + .index = 4, + .sensor = { + .Num = SNMP_BC_LAST_NON_IPMI_BEM_SENSOR + 4, + .Type = SAHPI_VOLTAGE, + .Category = SAHPI_EC_THRESHOLD, + .EnableCtrl = SAHPI_FALSE, + .EventCtrl = SAHPI_SEC_READ_ONLY, + .Events = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_UPPER_MAJOR, + .DataFormat = { + .IsSupported = SAHPI_TRUE, + .ReadingType = SAHPI_SENSOR_READING_TYPE_FLOAT64, + .BaseUnits = SAHPI_SU_VOLTS, + .ModifierUnits = SAHPI_SU_UNSPECIFIED, + .ModifierUse = SAHPI_SMUU_NONE, + .Percentage = SAHPI_FALSE, + .Range = { + .Flags = SAHPI_SRF_MAX | SAHPI_SRF_MIN | SAHPI_SRF_NOMINAL, + .Max = { + .IsSupported = SAHPI_TRUE, + .Type = SAHPI_SENSOR_READING_TYPE_FLOAT64, + .Value = { + .SensorFloat64 = 16, + }, + }, + .Nominal = { + .IsSupported = SAHPI_TRUE, + .Type = SAHPI_SENSOR_READING_TYPE_FLOAT64, + .Value = { + .SensorFloat64 = 12, + }, + }, + .Min = { + .IsSupported = SAHPI_TRUE, + .Type = SAHPI_SENSOR_READING_TYPE_FLOAT64, + .Value = { + .SensorFloat64 = 0, + }, + }, + }, + }, + .ThresholdDefn = { + .IsAccessible = SAHPI_TRUE, + .ReadThold = SAHPI_STM_LOW_MAJOR | SAHPI_STM_UP_MAJOR, + .WriteThold = 0, + /* Default HDW thresholds: Warning 1.32<>1.68 */ + }, + .Oem = 0, + }, + .sensor_info = { + .mib = { + .not_avail_indicator_num = 0, + .write_only = SAHPI_FALSE, + .oid = "discovered", + .threshold_oids = { + .UpMajor = "discovered", + .LowMajor = "discovered", + }, + .threshold_write_oids = {}, + }, + .cur_state = SAHPI_ES_UNSPECIFIED, + .sensor_enabled = SAHPI_TRUE, + .events_enabled = SAHPI_TRUE, + .assert_mask = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_UPPER_MAJOR, + .deassert_mask = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_UPPER_MAJOR, + .event_array = { + /* FIXME:: Add events */ + + {}, + }, + .reading2event = {}, + }, + .comment = "BSE 12 Volt Sensor", + }, + }, + + {} /* Terminate array with a null element */ +}; + + /******************** * Media Tray Sensors ********************/ @@ -6166,7 +6468,7 @@ .Oem = 0, }, .sensor_info = { - .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_state = SAHPI_ES_RUNNING, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_DEGRADED, @@ -6214,7 +6516,7 @@ .Oem = 0, }, .sensor_info = { - .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_state = SAHPI_ES_RUNNING, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_OFF_LINE, @@ -6234,7 +6536,7 @@ }, .comment = "Fan Operational Status Sensor", }, - /* Fan Speed Percentage Sensor */ + /* Fan Speed (Percent of Max) Sensor */ { .index = 2, .sensor = { @@ -6298,12 +6600,24 @@ }, .reading2event = {}, }, - .comment = "Fan Speed Percentage Sensor", + .comment = "Fan Speed (Percent of Max) Sensor", }, {} /* Terminate array with a null element */ }; +#if 0 +.1.3.6.1.4.1.2.3.51.2.2.3.10.0 = 1 Blower Status +.1.3.6.1.4.1.2.3.51.2.2.3.11.0 = 1 +.1.3.6.1.4.1.2.3.51.2.2.3.13.0 = 1 +.1.3.6.1.4.1.2.3.51.2.2.3.14.0 = 1 +.1.3.6.1.4.1.2.3.51.2.2.3.20.0 = "2992" BCH Blower RPM +.1.3.6.1.4.1.2.3.51.2.2.3.21.0 = "2992" +.1.3.6.1.4.1.2.3.51.2.2.3.30.0 = 0 BCH Blower Controller Status +.1.3.6.1.4.1.2.3.51.2.2.3.31.0 = 0 +#endif + + /*************** * Power Sensors ***************/ @@ -6328,7 +6642,7 @@ .Oem = 0, }, .sensor_info = { - .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_state = SAHPI_ES_RUNNING, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_OFF_LINE, @@ -6447,6 +6761,135 @@ {} /* Terminate array with a null element */ }; +#define SNMP_BC_LAST_COMMON_POWER_MODULE_SENSOR 2 + +/* BladeCenter H specific power module sensors */ +struct snmp_bc_sensor snmp_bc_power_sensors_bch[] = { + /* Power Module Fan Pack Average Speed (Percent of Max) Sensor */ + { + .index = 1, + .sensor = { + .Num = SNMP_BC_LAST_COMMON_POWER_MODULE_SENSOR + 1, + .Type = SAHPI_FAN, + .Category = SAHPI_EC_PRED_FAIL, + .EnableCtrl = SAHPI_FALSE, + .EventCtrl = SAHPI_SEC_READ_ONLY, + .Events = SAHPI_ES_PRED_FAILURE_ASSERT | SAHPI_ES_PRED_FAILURE_DEASSERT, + .DataFormat = { + .IsSupported = SAHPI_TRUE, + .ReadingType = SAHPI_SENSOR_READING_TYPE_FLOAT64, + .BaseUnits = SAHPI_SU_RPM, + .ModifierUnits = SAHPI_SU_UNSPECIFIED, + .ModifierUse = SAHPI_SMUU_NONE, + .Percentage = SAHPI_TRUE, + .Range = { + .Flags = SAHPI_SRF_MAX | SAHPI_SRF_MIN, + .Max = { + .IsSupported = SAHPI_TRUE, + .Type = SAHPI_SENSOR_READING_TYPE_FLOAT64, + .Value = { + .SensorFloat64 = 100, + }, + }, + .Min = { + .IsSupported = SAHPI_TRUE, + .Type = SAHPI_SENSOR_READING_TYPE_FLOAT64, + .Value = { + .SensorFloat64 = 0, + }, + }, + }, + }, + .ThresholdDefn = { + .IsAccessible = SAHPI_FALSE, + }, + .Oem = 0, + }, + .sensor_info = { + .mib = { + .not_avail_indicator_num = 0, + .write_only = SAHPI_FALSE, + .oid = ".1.3.6.1.4.1.2.3.51.2.2.6.1.1.5.x", + }, + .cur_state = SAHPI_ES_UNSPECIFIED, + .sensor_enabled = SAHPI_TRUE, + .events_enabled = SAHPI_TRUE, + .assert_mask = SAHPI_ES_PRED_FAILURE_ASSERT, + .deassert_mask = SAHPI_ES_PRED_FAILURE_ASSERT, + .event_array = { + +/* FIXME:: Need to add events */ + {}, + }, + .reading2event = {}, + }, + .comment = "Power Module Fan Pack Average Speed (Percent of Max) Sensor", + }, + /* Power Module Fan Pack Average RPM Speed Sensor */ + { + .index = 2, + .sensor = { + .Num = SNMP_BC_LAST_COMMON_POWER_MODULE_SENSOR + 2, + .Type = SAHPI_FAN, + .Category = SAHPI_EC_PRED_FAIL, + .EnableCtrl = SAHPI_FALSE, + .EventCtrl = SAHPI_SEC_READ_ONLY, + .Events = SAHPI_ES_PRED_FAILURE_ASSERT | SAHPI_ES_PRED_FAILURE_DEASSERT, + .DataFormat = { + .IsSupported = SAHPI_TRUE, + .ReadingType = SAHPI_SENSOR_READING_TYPE_FLOAT64, + .BaseUnits = SAHPI_SU_RPM, + .ModifierUnits = SAHPI_SU_UNSPECIFIED, + .ModifierUse = SAHPI_SMUU_NONE, + .Percentage = SAHPI_FALSE, + .Range = { + .Flags = SAHPI_SRF_MAX | SAHPI_SRF_MIN, + .Max = { + .IsSupported = SAHPI_TRUE, + .Type = SAHPI_SENSOR_READING_TYPE_FLOAT64, + .Value = { + .SensorFloat64 = 13000, + }, + }, + .Min = { + .IsSupported = SAHPI_TRUE, + .Type = SAHPI_SENSOR_READING_TYPE_FLOAT64, + .Value = { + .SensorFloat64 = 0, + }, + }, + }, + }, + .ThresholdDefn = { + .IsAccessible = SAHPI_FALSE, + }, + .Oem = 0, + }, + .sensor_info = { + .mib = { + .not_avail_indicator_num = 0, + .write_only = SAHPI_FALSE, + .oid = ".1.3.6.1.4.1.2.3.51.2.2.6.1.1.6.x", + }, + .cur_state = SAHPI_ES_UNSPECIFIED, + .sensor_enabled = SAHPI_TRUE, + .events_enabled = SAHPI_TRUE, + .assert_mask = SAHPI_ES_PRED_FAILURE_ASSERT, + .deassert_mask = SAHPI_ES_PRED_FAILURE_ASSERT, + .event_array = { + +/* FIXME:: Need to add events */ + + {}, + }, + .reading2event = {}, + }, + .comment = "Power Module Fan Pack Average RPM Speed Sensor", + }, + + {} /* Terminate array with a null element */ +}; + /******************** * I/O Module Sensors ********************/ @@ -6472,7 +6915,7 @@ .Oem = 0, }, .sensor_info = { - .cur_state = SAHPI_ES_UNSPECIFIED, + .cur_state = SAHPI_ES_RUNNING, .sensor_enabled = SAHPI_TRUE, .events_enabled = SAHPI_TRUE, .assert_mask = SAHPI_ES_DEGRADED | SAHPI_ES_INSTALL_ERROR, @@ -6691,11 +7134,11 @@ {} /* Terminate array with a null element */ }; -/*********************** - * Blade Add In Controls - ***********************/ +/*************************************** + * Blade Expansion Module (BEM) Controls + ***************************************/ -struct snmp_bc_control snmp_bc_blade_expansion_controls[] = { +struct snmp_bc_control snmp_bc_bem_controls[] = { {} /* Terminate array with a null element */ }; @@ -6950,11 +7393,11 @@ {} /* Terminate array with a null element */ }; -/**************************** - * Blade Expansion Module VPD - ****************************/ +/********************************** + * Blade Expansion Module (BEM) VPD + **********************************/ -struct snmp_bc_inventory snmp_bc_blade_expansion_inventories[] = { +struct snmp_bc_inventory snmp_bc_bem_inventories[] = { {} /* Terminate array with a null element */ }; Modified: openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_resources.h =================================================================== --- openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_resources.h 2006-05-25 19:36:35 UTC (rev 5830) +++ openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_resources.h 2006-05-27 03:33:12 UTC (rev 5831) @@ -124,30 +124,33 @@ #define BC_EL_MAX_SIZE 768 /* 512 */ /* OIDs definitions for Blade Center Chassis Topology */ -#define SNMP_BC_NOS_FP_SUPPORTED "1.3.6.1.4.1.2.3.51.2.22.4.18.0" /* mmblade.mib - chassisNoOfFPsSupported, FanPack */ -#define SNMP_BC_NOS_PB_SUPPORTED "1.3.6.1.4.1.2.3.51.2.22.4.19.0" /* mmblade.mib - chassisNoOfPBsSupported, ProcessorBlade */ -#define SNMP_BC_NOS_SM_SUPPORTED "1.3.6.1.4.1.2.3.51.2.22.4.20.0" /* mmblade.mib - chassisNoOfSMsSupported, SwitchModule */ -#define SNMP_BC_NOS_MM_SUPPORTED "1.3.6.1.4.1.2.3.51.2.22.4.21.0" /* mmblade.mib - chassisNoOfMMsSupported, ManagementModule */ -#define SNMP_BC_NOS_PM_SUPPORTED "1.3.6.1.4.1.2.3.51.2.22.4.22.0" /* mmblade.mib - chassisNoOfPMsSupported, PowerModule */ -#define SNMP_BC_NOS_MT_SUPPORTED "1.3.6.1.4.1.2.3.51.2.22.4.23.0" /* mmblade.mib - chassisNoOfMTsSupported, MediaTray */ -#define SNMP_BC_NOS_BLOWER_SUPPORTED "1.3.6.1.4.1.2.3.51.2.22.4.24.0" /* mmblade.mib - chassisNoOfBlowersSupported, Blower */ -#define SNMP_BC_PB_INSTALLED "1.3.6.1.4.1.2.3.51.2.22.4.25.0" /* mmblade.mib - chassisPBsInstalled, ProcessorBlade */ -#define SNMP_BC_SM_INSTALLED "1.3.6.1.4.1.2.3.51.2.22.4.29.0" /* mmblade.mib - chassisSMsInstalled, SwitchModule */ -#define SNMP_BC_MM_INSTALLED "1.3.6.1.4.1.2.3.51.2.22.4.30.0" /* mmblade.mib - chassisMMsInstalled, ManagementModule */ -#define SNMP_BC_PM_INSTALLED "1.3.6.1.4.1.2.3.51.2.22.4.31.0" /* mmblade.mib - chassisPMsInstalled, PowerModule */ -#define SNMP_BC_MT_INSTALLED "1.3.6.1.4.1.2.3.51.2.22.4.32.0" /* mmblade.mib - chassisMTsInstalled, MediaTray */ -#define SNMP_BC_BLOWER_INSTALLED "1.3.6.1.4.1.2.3.51.2.22.4.33.0" /* mmblade.mib - chassisBlowersInstalled, Blower */ -#define SNMP_BC_FP_INSTALLED "1.3.6.1.4.1.2.3.51.2.22.4.37.0" /* mmblade.mib - chassisFPsinstalled, FanPack */ +#define SNMP_BC_NOS_FP_SUPPORTED ".1.3.6.1.4.1.2.3.51.2.22.4.18.0" /* mmblade.mib - chassisNoOfFPsSupported, FanPack */ +#define SNMP_BC_NOS_PB_SUPPORTED ".1.3.6.1.4.1.2.3.51.2.22.4.19.0" /* mmblade.mib - chassisNoOfPBsSupported, ProcessorBlade */ +#define SNMP_BC_NOS_SM_SUPPORTED ".1.3.6.1.4.1.2.3.51.2.22.4.20.0" /* mmblade.mib - chassisNoOfSMsSupported, SwitchModule */ +#define SNMP_BC_NOS_MM_SUPPORTED ".1.3.6.1.4.1.2.3.51.2.22.4.21.0" /* mmblade.mib - chassisNoOfMMsSupported, ManagementModule */ +#define SNMP_BC_NOS_PM_SUPPORTED ".1.3.6.1.4.1.2.3.51.2.22.4.22.0" /* mmblade.mib - chassisNoOfPMsSupported, PowerModule */ +#define SNMP_BC_NOS_MT_SUPPORTED ".1.3.6.1.4.1.2.3.51.2.22.4.23.0" /* mmblade.mib - chassisNoOfMTsSupported, MediaTray */ +#define SNMP_BC_NOS_BLOWER_SUPPORTED ".1.3.6.1.4.1.2.3.51.2.22.4.24.0" /* mmblade.mib - chassisNoOfBlowersSupported, Blower */ +#define SNMP_BC_PB_INSTALLED ".1.3.6.1.4.1.2.3.51.2.22.4.25.0" /* mmblade.mib - chassisPBsInstalled, ProcessorBlade */ +#define SNMP_BC_SM_INSTALLED ".1.3.6.1.4.1.2.3.51.2.22.4.29.0" /* mmblade.mib - chassisSMsInstalled, SwitchModule */ +#define SNMP_BC_MM_INSTALLED ".1.3.6.1.4.1.2.3.51.2.22.4.30.0" /* mmblade.mib - chassisMMsInstalled, ManagementModule */ +#define SNMP_BC_PM_INSTALLED ".1.3.6.1.4.1.2.3.51.2.22.4.31.0" /* mmblade.mib - chassisPMsInstalled, PowerModule */ +#define SNMP_BC_MT_INSTALLED ".1.3.6.1.4.1.2.3.51.2.22.4.32.0" /* mmblade.mib - chassisMTsInstalled, MediaTray */ +#define SNMP_BC_BLOWER_INSTALLED ".1.3.6.1.4.1.2.3.51.2.22.4.33.0" /* mmblade.mib - chassisBlowersInstalled, Blower */ +#define SNMP_BC_FP_INSTALLED ".1.3.6.1.4.1.2.3.51.2.22.4.37.0" /* mmblade.mib - chassisFPsinstalled, FanPack */ /* OID definitions for discovering resources.*/ -#define SNMP_BC_BLADE_EXPANSION_VECTOR ".1.3.6.1.4.1.2.3.51.2.22.1.5.1.1.14.x" +#if 0 #define SNMP_BC_BLADE_VECTOR ".1.3.6.1.4.1.2.3.51.2.22.4.25.0" #define SNMP_BC_FAN_VECTOR ".1.3.6.1.4.1.2.3.51.2.22.4.33.0" #define SNMP_BC_MEDIA_TRAY_EXISTS ".1.3.6.1.4.1.2.3.51.2.22.4.32.0" #define SNMP_BC_MGMNT_VECTOR ".1.3.6.1.4.1.2.3.51.2.22.4.30.0" -#define SNMP_BC_MGMNT_ACTIVE ".1.3.6.1.4.1.2.3.51.2.22.4.34.0" /* mmblade.mib - chassisActiveMM */ #define SNMP_BC_POWER_VECTOR ".1.3.6.1.4.1.2.3.51.2.22.4.31.0" #define SNMP_BC_SWITCH_VECTOR ".1.3.6.1.4.1.2.3.51.2.22.4.29.0" +#endif + +#define SNMP_BC_BLADE_EXPANSION_VECTOR ".1.3.6.1.4.1.2.3.51.2.22.1.5.1.1.14.x" +#define SNMP_BC_MGMNT_ACTIVE ".1.3.6.1.4.1.2.3.51.2.22.4.34.0" /* mmblade.mib - chassisActiveMM */ #define SNMP_BC_DST ".1.3.6.1.4.1.2.3.51.2.4.4.2.0" #define SNMP_BC_DST_RSA ".1.3.6.1.4.1.2.3.51.1.4.4.2.0" @@ -324,12 +327,14 @@ extern struct snmp_bc_sensor snmp_bc_chassis_sensors_bct[]; extern struct snmp_bc_sensor snmp_bc_blade_sensors[]; extern struct snmp_bc_ipmi_sensor snmp_bc_blade_ipmi_sensors[]; -extern struct snmp_bc_sensor snmp_bc_blade_expansion_sensors[]; +extern struct snmp_bc_sensor snmp_bc_bem_sensors[]; +extern struct snmp_bc_ipmi_sensor snmp_bc_bem_ipmi_sensors[]; extern struct snmp_bc_sensor snmp_bc_mgmnt_sensors[]; extern struct snmp_bc_sensor snmp_bc_virtual_mgmnt_sensors[]; extern struct snmp_bc_sensor snmp_bc_mediatray_sensors[]; extern struct snmp_bc_sensor snmp_bc_fan_sensors[]; extern struct snmp_bc_sensor snmp_bc_power_sensors[]; +extern struct snmp_bc_sensor snmp_bc_power_sensors_bch[]; extern struct snmp_bc_sensor snmp_bc_switch_sensors[]; extern struct snmp_bc_sensor snmp_bc_chassis_sensors_rsa[]; @@ -372,7 +377,7 @@ extern struct snmp_bc_control snmp_bc_chassis_controls_bc[]; extern struct snmp_bc_control snmp_bc_chassis_controls_bct[]; extern struct snmp_bc_control snmp_bc_blade_controls[]; -extern struct snmp_bc_control snmp_bc_blade_expansion_controls[]; +extern struct snmp_bc_control snmp_bc_bem_controls[]; extern struct snmp_bc_control snmp_bc_mgmnt_controls[]; extern struct snmp_bc_control snmp_bc_virtual_mgmnt_controls[]; extern struct snmp_bc_control snmp_bc_mediatray_controls[]; @@ -424,7 +429,7 @@ extern struct snmp_bc_inventory snmp_bc_virtual_mgmnt_inventories[]; extern struct snmp_bc_inventory snmp_bc_switch_inventories[]; extern struct snmp_bc_inventory snmp_bc_blade_inventories[]; -extern struct snmp_bc_inventory snmp_bc_blade_expansion_inventories[]; +extern struct snmp_bc_inventory snmp_bc_bem_inventories[]; extern struct snmp_bc_inventory snmp_bc_mediatray_inventories[]; extern struct snmp_bc_inventory snmp_bc_power_inventories[]; Modified: openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_sensor.c =================================================================== --- openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_sensor.c 2006-05-25 19:36:35 UTC (rev 5830) +++ openhpi/branches/renier-experimental/plugins/snmp_bc/snmp_bc_sensor.c 2006-05-27 03:33:12 UTC (rev 5831) @@ -404,7 +404,7 @@ } /* Fetch MMs installed vector */ - get_installed_mask(SNMP_BC_MGMNT_VECTOR, mm_install_mask); + get_installed_mask(SNMP_BC_MM_INSTALLED, mm_install_mask); /* Fetch Active MM ID */ err = snmp_bc_snmp_get(custom_handle, SNMP_BC_MGMNT_ACTIVE, &active_mm_id, SAHPI_TRUE); Modified: openhpi/branches/renier-experimental/plugins/snmp_bc/t/sim_resources.c =================================================================== --- openhpi/branches/renier-experimental/plugins/snmp_bc/t/sim_resources.c 2006-05-25 19:36:35 UTC (rev 5830) +++ openhpi/branches/renier-experimental/plugins/snmp_bc/t/sim_resources.c 2006-05-27 03:33:12 UTC (rev 5831) @@ -117,6 +117,150 @@ }, }, }, + + /* + * OIDs definitions for Blade Center Chassis Topology + */ + { + /* SNMP_BC_NOS_FP_SUPPORTED mmblade.mib - chassisNoOfFPsSupported, FanPack */ + .oid = ".1.3.6.1.4.1.2.3.51.2.22.4.18.0", + .mib = { + .type = ASN_INTEGER, + .value = { + .integer = 2, + }, + }, + }, + { + /* SNMP_BC_NOS_PB_SUPPORTED mmblade.mib - chassisNoOfPBsSupported, ProcessorBlade */ + .oid = ".1.3.6.1.4.1.2.3.51.2.22.4.19.0", + .mib = { + .type = ASN_INTEGER, + .value = { + .integer = 14, + }, + }, + }, + { + /* SNMP_BC_NOS_SM_SUPPORTED mmblade.mib - chassisNoOfSMsSupported, SwitchModule */ + .oid = ".1.3.6.1.4.1.2.3.51.2.22.4.20.0", + .mib = { + .type = ASN_INTEGER, + .value = { + .integer = 4, + }, + }, + }, + { + /* SNMP_BC_NOS_MM_SUPPORTED mmblade.mib - chassisNoOfMMsSupported, ManagementModule */ + .oid = ".1.3.6.1.4.1.2.3.51.2.22.4.21.0", + .mib = { + .type = ASN_INTEGER, + .value = { + .integer = 2, + }, + }, + }, + { + /* SNMP_BC_NOS_PM_SUPPORTED mmblade.mib - chassisNoOfPMsSupported, PowerModule */ + .oid = ".1.3.6.1.4.1.2.3.51.2.22.4.22.0", + .mib = { + .type = ASN_INTEGER, + .value = { + .integer = 4, + }, + }, + }, + { + /* SNMP_BC_NOS_MT_SUPPORTED mmblade.mib - chassisNoOfMTsSupported, MediaTray */ + .oid = ".1.3.6.1.4.1.2.3.51.2.22.4.23.0", + .mib = { + .type = ASN_INTEGER, + .value = { + .integer = 1, + }, + }, + }, + { + /* SNMP_BC_NOS_BLOWER_SUPPORTED mmblade.mib - chassisNoOfBlowersSupported, Blower */ + .oid = ".1.3.6.1.4.1.2.3.51.2.22.4.24.0", + .mib = { + .type = ASN_INTEGER, + .value = { + .integer = 4, + }, + }, + }, + { + /* SNMP_BC_PB_INSTALLED mmblade.mib - chassisPBsInstalled, ProcessorBlade */ + .oid = ".1.3.6.1.4.1.2.3.51.2.22.4.25.0", + .mib = { + .type = ASN_OCTET_STR, + .value = { + .string = "10101010101010", + }, + }, + }, + { + /* SNMP_BC_SM_INSTALLED mmblade.mib - chassisSMsInstalled, SwitchModule */ + .oid = ".1.3.6.1.4.1.2.3.51.2.22.4.29.0", + .mib = { + .type = ASN_OCTET_STR, + .value = { + .string = "1111", + }, + }, + }, + { + /* SNMP_BC_MM_INSTALLED mmblade.mib - chassisMMsInstalled, ManagementModule */ + .oid = ".1.3.6.1.4.1.2.3.51.2.22.4.30.0", + .mib = { + .type = ASN_OCTET_STR, + .value = { + .string = "11", + }, + }, + }, + { + /* SNMP_BC_PM_INSTALLED mmblade.mib - chassisPMsInstalled, PowerModule */ + .oid = ".1.3.6.1.4.1.2.3.51.2.22.4.31.0", + .mib = { + .type = ASN_OCTET_STR, + .value = { + .string = "1111", + }, + }, + }, + { + /* SNMP_BC_MT_INSTALLED mmblade.mib - chassisMTsInstalled, MediaTray */ + .oid = ",1.3.6.1.4.1.2.3.51.2.22.4.32.0", + .mib = { + .type = ASN_INTEGER, + .value = { + .integer = 1, + }, + }, + }, + { + /* SNMP_BC_BLOWER_INSTALLED mmblade.mib - chassisBlowersInstalled, Blower */ + .oid = ".1.3.6.1.4.1.2.3.51.2.22.4.33.0", + .mib = { + .type = ASN_OCTET_STR, + .value = { + .string = "1111", + }, + }, + }, + { + /* SNMP_BC_FP_INSTALLED mmblade.mib - chassisFPsinstalled, FanPack */ + .oid = ".1.3.6.1.4.1.2.3.51.2.22.4.37.0", + .mib = { + .type = ASN_OCTET_STR, + .value = { + .string = "11", + }, + }, + }, /* NOTE:: Must have one plus the END of Log Entry for each event in the simulator's event log */ { Modified: openhpi/branches/renier-experimental/utils/sahpi_struct_utils.c =================================================================== --- openhpi/branches/renier-experimental/utils/sahpi_struct_utils.c 2006-05-25 19:36:35 UTC (rev 5830) +++ openhpi/branches/renier-experimental/utils/sahpi_struct_utils.c 2006-05-27 03:33:12 UTC (rev 5831) @@ -72,58 +72,58 @@ * Converts @value into a string based on @value's enum definition * in http://www.iana.org/assignments/enterprise-numbers. * String is stored in an SaHpiTextBufferT data structure. - * + * * Only a few of the manufacturers in that list have been defined. * For all others, this routine returns "Unknown Manufacturer". * Feel free to add your own favorite manufacturer to this routine. - * + * * Returns: * SA_OK - Normal operation. * SA_ERR_HPI_INVALID_PARAMS - @buffer is NULL. **/ -SaErrorT oh_decode_manufacturerid(SaHpiManufacturerIdT value, SaHpiTextBufferT *buffer) +SaErrorT oh_decode_manufacturerid(SaHpiManufacturerIdT value, SaHpiTextBufferT *buffer) { - SaErrorT err; - SaHpiTextBufferT working; + SaErrorT err; + SaHpiTextBufferT working; - if (!buffer) { - dbg("Invalid parameters."); - return(SA_ERR_HPI_INVALID_PARAMS); - } + if (!buffer) { + dbg("Invalid parameters."); + return(SA_ERR_HPI_INVALID_PARAMS); + } - err = oh_init_textbuffer(&working); - if (err) { return(err); } + err = oh_init_textbuffer(&working); + if (err) { return(err); } - switch(value) { - case SAHPI_MANUFACTURER_ID_UNSPECIFIED: - err = oh_append_textbuffer(&working, "UNSPECIFIED Manufacturer"); - if (err) { return(err); } - break; - case 2: /* 2 is IANA number */ - case 20944: /* 20944 is IANA code for Modular Blade Server */ - err = oh_append_textbuffer(&working,"IBM"); - if (err) { return(err); } - break; - default: - err = oh_append_textbuffer(&working, "Unknown Manufacturer"); - if (err) { return(err); } - } + switch(value) { + case SAHPI_MANUFACTURER_ID_UNSPECIFIED: + err = oh_append_textbuffer(&working, "UNSPECIFIED Manufacturer"); + if (err) { return(err); } + break; + case 2: /* 2 is IANA number */ + case 20944: /* 20944 is IANA code for Modular Blade Server */ + err = oh_append_textbuffer(&working,"IBM"); + if (err) { return(err); } + break; + default: + err = oh_append_textbuffer(&working, "Unknown Manufacturer"); + if (err) { return(err); } + } - oh_copy_textbuffer(buffer, &working); + oh_copy_textbuffer(buffer, &working); - return(SA_OK); + return(SA_OK); } /** - * oh_decode_sensorreading: + * oh_decode_sensorreading: * @reading: SaHpiSensorReadingT to convert. * @format: SaHpiDataFormatT for the sensor reading. * @buffer: Location to store the converted string. * - * Converts an HPI sensor reading and format into a string. + * Converts an HPI sensor reading and format into a string. * String is stored in an SaHpiTextBufferT data structure. - * - * Returns: + * + * Returns: * SA_OK - Normal operation. * SA_ERR_HPI_INVALID_CMD - @format or @reading have IsSupported == FALSE. * SA_ERR_HPI_INVALID_DATA - @format and @reading types don't match. @@ -131,121 +131,121 @@ * SA_ERR_HPI_OUT_OF_SPACE - @buffer not big enough to accomodate appended string **/ SaErrorT oh_decode_sensorreading(SaHpiSensorReadingT reading, - SaHpiSensorDataFormatT format, - SaHpiTextBufferT *buffer) + SaHpiSensorDataFormatT format, + SaHpiTextBufferT *buffer) { char text[SAHPI_MAX_TEXT_BUFFER_LENGTH]; - SaErrorT err; - SaHpiTextBufferT working; - char str[SAHPI_SENSOR_BUFFER_LENGTH + 1]; + SaErrorT err; + SaHpiTextBufferT working; + char str[SAHPI_SENSOR_BUFFER_LENGTH + 1]; - if (!buffer) { - dbg("Invalid parameter."); - return(SA_ERR_HPI_INVALID_PARAMS); - } + if (!buffer) { + dbg("Invalid parameter."); + return(SA_ERR_HPI_INVALID_PARAMS); + } if (!reading.IsSupported || !format.IsSupported) { - dbg("Invalid Command."); + dbg("Invalid Command."); return(SA_ERR_HPI_INVALID_CMD); } - if (reading.Type != format.ReadingType) { - dbg("Invalid Data."); - return(SA_ERR_HPI_INVALID_DATA); - } + if (reading.Type != format.ReadingType) { + dbg("Invalid Data."); + return(SA_ERR_HPI_INVALID_DATA); + } - oh_init_textbuffer(&working); - memset(text, 0, SAHPI_MAX_TEXT_BUFFER_LENGTH); + oh_init_textbuffer(&working); + memset(text, 0, SAHPI_MAX_TEXT_BUFFER_LENGTH); switch(reading.Type) { case SAHPI_SENSOR_READING_TYPE_INT64: snprintf(text, SAHPI_MAX_TEXT_BUFFER_LENGTH, - "%lld", reading.Value.SensorInt64); - err = oh_append_textbuffer(&working, text); - if (err) { return(err); } + "%lld", reading.Value.SensorInt64); + err = oh_append_textbuffer(&working, text); + if (err) { return(err); } break; case SAHPI_SENSOR_READING_TYPE_UINT64: - snprintf(text, SAHPI_MAX_TEXT_BUFFER_LENGTH, - "%llu", reading.Value.SensorUint64); - err = oh_append_textbuffer(&working, text); - if (err) { return(err); } + snprintf(text, SAHPI_MAX_TEXT_BUFFER_LENGTH, + "%llu", reading.Value.SensorUint64); + err = oh_append_textbuffer(&working, text); + if (err) { return(err); } break; - case SAHPI_SENSOR_READING_TYPE_FLOAT64: - snprintf(text, SAHPI_MAX_TEXT_BUFFER_LENGTH, - "%5.3lf", reading.Value.SensorFloat64); - err = oh_append_textbuffer(&working, text); - if (err) { return(err); } - break; + case SAHPI_SENSOR_READING_TYPE_FLOAT64: + snprintf(text, SAHPI_MAX_TEXT_BUFFER_LENGTH, + "%5.3lf", reading.Value.SensorFloat64); + err = oh_append_textbuffer(&working, text); + if (err) { return(err); } + break; case SAHPI_SENSOR_READING_TYPE_BUFFER: - /* In case Sensor Buffer contains no end of string deliminter */ - memset(str, 0, SAHPI_SENSOR_BUFFER_LENGTH + 1); - strncpy(str, (char *)reading.Value.SensorBuffer, SAHPI_SENSOR_BUFFER_LENGTH); - err = oh_append_textbuffer(&working, str); - if (err) { return(err); } + /* In case Sensor Buffer contains no end of string deliminter */ + memset(str, 0, SAHPI_SENSOR_BUFFER_LENGTH + 1); + strncpy(str, (char *)reading.Value.SensorBuffer, SAHPI_SENSOR_BUFFER_LENGTH); + err = oh_append_textbuffer(&working, str); + if (err) { return(err); } break; - default: - return(SA_ERR_HPI_INVALID_PARAMS); + default: + return(SA_ERR_HPI_INVALID_PARAMS); } - + if (format.Percentage) { - err = oh_append_textbuffer(&working, "%"); - if (err) { return(err); } + err = oh_append_textbuffer(&working, "%"); + if (err) { return(err); } } - else { - /* Add units */ - if (format.BaseUnits != SAHPI_SU_UNSPECIFIED) { - char *str; + else { + /* Add units */ + if (format.BaseUnits != SAHPI_SU_UNSPECIFIED) { + char *str; - err = oh_append_textbuffer(&working, " "); - if (err) { return(err); } - str = oh_lookup_sensorunits(format.BaseUnits); - if (str == NULL) { return(SA_ERR_HPI_INVALID_PARAMS); } - err = oh_append_textbuffer(&working, str); - if (err) { return(err); } - } - - /* Add modifier units, if appropriate */ - if (format.BaseUnits != SAHPI_SU_UNSPECIFIED && - format.ModifierUse != SAHPI_SMUU_NONE) { - char *str; + err = oh_append_textbuffer(&working, " "); + if (err) { return(err); } + str = oh_lookup_sensorunits(format.BaseUnits); + if (str == NULL) { return(SA_ERR_HPI_INVALID_PARAMS); } + err = oh_append_textbuffer(&working, str); + if (err) { return(err); } + } - switch(format.ModifierUse) { - case SAHPI_SMUU_BASIC_OVER_MODIFIER: - err = oh_append_textbuffer(&working, " / "); - if (err) { return(err); } - break; - case SAHPI_SMUU_BASIC_TIMES_MODIFIER: - err = oh_append_textbuffer(&working, " * "); - if (err) { return(err); } - break; - default: - return(SA_ERR_HPI_INVALID_PARAMS); - } - str = oh_lookup_sensorunits(format.ModifierUnits); - if (str == NULL) { return(SA_ERR_HPI_INVALID_PARAMS); } - err = oh_append_textbuffer(&working, str); - if (err) { return(err); } - } - } + /* Add modifier units, if appropriate */ + if (format.BaseUnits != SAHPI_SU_UNSPECIFIED && + format.ModifierUse != SAHPI_SMUU_NONE) { + char *str; - oh_copy_textbuffer(buffer, &working); + switch(format.ModifierUse) { + case SAHPI_SMUU_BASIC_OVER_MODIFIER: + err = oh_append_textbuffer(&working, " / "); + if (err) { return(err); } + break; + case SAHPI_SMUU_BASIC_TIMES_MODIFIER: + err = oh_append_textbuffer(&working, " * "); + if (err) { return(err); } + break; + default: + return(SA_ERR_HPI_INVALID_PARAMS); + } + str = oh_lookup_sensorunits(format.ModifierUnits); + if (str == NULL) { return(SA_ERR_HPI_INVALID_PARAMS); } + err = oh_append_textbuffer(&working, str); + if (err) { return(err); } + } + } + oh_copy_textbuffer(buffer, &working); + return(SA_OK); } /** * oh_encode_sens... [truncated message content] |
From: <ses...@us...> - 2006-05-25 19:36:45
|
Revision: 5830 Author: sesherman Date: 2006-05-25 12:36:35 -0700 (Thu, 25 May 2006) ViewCVS: http://svn.sourceforge.net/openhpi/?rev=5830&view=rev Log Message: ----------- #1494321 Add BEM sensors for IPMI blades Modified Paths: -------------- openhpi/trunk/plugins/snmp_bc/snmp_bc_discover_bc.c openhpi/trunk/plugins/snmp_bc/snmp_bc_event.c openhpi/trunk/plugins/snmp_bc/snmp_bc_resources.c openhpi/trunk/plugins/snmp_bc/snmp_bc_resources.h Modified: openhpi/trunk/plugins/snmp_bc/snmp_bc_discover_bc.c =================================================================== --- openhpi/trunk/plugins/snmp_bc/snmp_bc_discover_bc.c 2006-05-24 21:08:09 UTC (rev 5829) +++ openhpi/trunk/plugins/snmp_bc/snmp_bc_discover_bc.c 2006-05-25 19:36:35 UTC (rev 5830) @@ -1035,9 +1035,10 @@ /* Find resource's events, sensors, controls, etc. */ snmp_bc_discover_res_events(handle, &(e->u.res_event.entry.ResourceEntity), res_info_ptr); - snmp_bc_discover_sensors(handle, snmp_bc_blade_expansion_sensors, e); - snmp_bc_discover_controls(handle, snmp_bc_blade_expansion_controls, e); - snmp_bc_discover_inventories(handle, snmp_bc_blade_expansion_inventories, e); + snmp_bc_discover_sensors(handle, snmp_bc_bem_sensors, e); + snmp_bc_discover_ipmi_sensors(handle, snmp_bc_bem_ipmi_sensors, e); + snmp_bc_discover_controls(handle, snmp_bc_bem_controls, e); + snmp_bc_discover_inventories(handle, snmp_bc_bem_inventories, e); } } } Modified: openhpi/trunk/plugins/snmp_bc/snmp_bc_event.c =================================================================== --- openhpi/trunk/plugins/snmp_bc/snmp_bc_event.c 2006-05-24 21:08:09 UTC (rev 5829) +++ openhpi/trunk/plugins/snmp_bc/snmp_bc_event.c 2006-05-25 19:36:35 UTC (rev 5830) @@ -1321,7 +1321,7 @@ loc = strtoul(src_parts[1], &endptr, 10); if (isexpansioncard == SAHPI_TRUE) { rpt_index = BC_RPT_ENTRY_BLADE_EXPANSION_CARD; - array_ptr = &snmp_bc_blade_expansion_sensors[0]; + array_ptr = &snmp_bc_bem_sensors[0]; } else { if (isblade == SAHPI_TRUE) { Modified: openhpi/trunk/plugins/snmp_bc/snmp_bc_resources.c =================================================================== --- openhpi/trunk/plugins/snmp_bc/snmp_bc_resources.c 2006-05-24 21:08:09 UTC (rev 5829) +++ openhpi/trunk/plugins/snmp_bc/snmp_bc_resources.c 2006-05-25 19:36:35 UTC (rev 5830) @@ -432,7 +432,7 @@ .comment = "Blade", .OidResourceTag = ".1.3.6.1.4.1.2.3.51.2.2.8.2.1.1.6.x" }, - /* Blade Expansion Module */ + /* Blade Expansion Module (BEM) */ { .rpt = { .ResourceInfo = { @@ -3551,12 +3551,8 @@ }; +/* Blade IPMI Sensors */ #define SNMP_BC_LAST_NON_IPMI_BLADE_SENSOR 14 - -/******************** - * Blade IPMI Sensors - ********************/ - struct snmp_bc_ipmi_sensor snmp_bc_blade_ipmi_sensors[] = { /* Blade CPU 1 Temperature Sensor */ { @@ -5743,11 +5739,11 @@ {} /* Terminate array with a null element */ }; -/******************************** - * Blade Expansion Module Sensors - ********************************/ +/************************************** + * Blade Expansion Module (BEM) Sensors + **************************************/ -struct snmp_bc_sensor snmp_bc_blade_expansion_sensors[] = { +struct snmp_bc_sensor snmp_bc_bem_sensors[] = { /* BEM Temperature Sensor */ { .index = 1, @@ -6142,6 +6138,312 @@ {} /* Terminate array with a null element */ }; +/* FIXME:: Add Events - can we delete the voltage sensor above */ + +/* BEM IPMI Sensors */ +#define SNMP_BC_LAST_NON_IPMI_BEM_SENSOR 4 +struct snmp_bc_ipmi_sensor snmp_bc_bem_ipmi_sensors[] = { + /* PEU2 Temperature Sensor */ + { + .ipmi_tag = "PEU2 Temp Sense", + .ipmi = { + .index = 1, + .sensor = { + .Num = SNMP_BC_LAST_NON_IPMI_BEM_SENSOR + 1, + .Type = SAHPI_TEMPERATURE, + .Category = SAHPI_EC_THRESHOLD, + .EnableCtrl = SAHPI_FALSE, + .EventCtrl = SAHPI_SEC_READ_ONLY, + .Events = SAHPI_ES_UPPER_MAJOR | SAHPI_ES_UPPER_CRIT, + .DataFormat = { + .IsSupported = SAHPI_TRUE, + .ReadingType = SAHPI_SENSOR_READING_TYPE_FLOAT64, + .BaseUnits = SAHPI_SU_DEGREES_C, + .ModifierUnits = SAHPI_SU_UNSPECIFIED, + .ModifierUse = SAHPI_SMUU_NONE, + .Percentage = SAHPI_FALSE, + .Range = { + .Flags = SAHPI_SRF_MAX | SAHPI_SRF_MIN, + .Max = { + .IsSupported = SAHPI_TRUE, + .Type = SAHPI_SENSOR_READING_TYPE_FLOAT64, + .Value = { + .SensorFloat64 = 125, + }, + }, + .Min = { + .IsSupported = SAHPI_TRUE, + .Type = SAHPI_SENSOR_READING_TYPE_FLOAT64, + .Value = { + .SensorFloat64 = 0, + }, + }, + }, + }, + .ThresholdDefn = { + .IsAccessible = SAHPI_TRUE, + .ReadThold = SAHPI_STM_UP_MAJOR | SAHPI_STM_UP_CRIT, + .WriteThold = 0, + }, + .Oem = 0, + }, + .sensor_info = { + .mib = { + .not_avail_indicator_num = 0, + .write_only = SAHPI_FALSE, + .oid = "discovered", + .threshold_oids = { + .UpCritical = "discovered", + .UpMajor = "discovered", + }, + .threshold_write_oids = {}, + }, + .cur_state = SAHPI_ES_UNSPECIFIED, + .sensor_enabled = SAHPI_TRUE, + .events_enabled = SAHPI_TRUE, + .assert_mask = SAHPI_ES_UPPER_MAJOR | SAHPI_ES_UPPER_CRIT, + .deassert_mask = SAHPI_ES_UPPER_MAJOR | SAHPI_ES_UPPER_CRIT, + .event_array = { + /* FIXME:: Add events */ + + {}, + }, + .reading2event = {}, + }, + .comment = "PEU2 Temperature Sensor", + }, + }, + /* BSE Temperature Sensor */ + { + .ipmi_tag = "BSE Temp Sense", + .ipmi = { + .index = 2, + .sensor = { + .Num = SNMP_BC_LAST_NON_IPMI_BEM_SENSOR + 2, + .Type = SAHPI_TEMPERATURE, + .Category = SAHPI_EC_THRESHOLD, + .EnableCtrl = SAHPI_FALSE, + .EventCtrl = SAHPI_SEC_READ_ONLY, + .Events = SAHPI_ES_UPPER_MAJOR | SAHPI_ES_UPPER_CRIT, + .DataFormat = { + .IsSupported = SAHPI_TRUE, + .ReadingType = SAHPI_SENSOR_READING_TYPE_FLOAT64, + .BaseUnits = SAHPI_SU_DEGREES_C, + .ModifierUnits = SAHPI_SU_UNSPECIFIED, + .ModifierUse = SAHPI_SMUU_NONE, + .Percentage = SAHPI_FALSE, + .Range = { + .Flags = SAHPI_SRF_MAX | SAHPI_SRF_MIN, + .Max = { + .IsSupported = SAHPI_TRUE, + .Type = SAHPI_SENSOR_READING_TYPE_FLOAT64, + .Value = { + .SensorFloat64 = 125, + }, + }, + .Min = { + .IsSupported = SAHPI_TRUE, + .Type = SAHPI_SENSOR_READING_TYPE_FLOAT64, + .Value = { + .SensorFloat64 = 0, + }, + }, + }, + }, + .ThresholdDefn = { + .IsAccessible = SAHPI_TRUE, + .ReadThold = SAHPI_STM_UP_MAJOR | SAHPI_STM_UP_CRIT, + .WriteThold = 0, + }, + .Oem = 0, + }, + .sensor_info = { + .mib = { + .not_avail_indicator_num = 0, + .write_only = SAHPI_FALSE, + .oid = "discovered", + .threshold_oids = { + .UpCritical = "discovered", + .UpMajor = "discovered", + }, + .threshold_write_oids = {}, + }, + .cur_state = SAHPI_ES_UNSPECIFIED, + .sensor_enabled = SAHPI_TRUE, + .events_enabled = SAHPI_TRUE, + .assert_mask = SAHPI_ES_UPPER_MAJOR | SAHPI_ES_UPPER_CRIT, + .deassert_mask = SAHPI_ES_UPPER_MAJOR | SAHPI_ES_UPPER_CRIT, + .event_array = { + /* FIXME:: Add events */ + + {}, + }, + .reading2event = {}, + }, + .comment = "BSE Temperature Sensor", + }, + }, + /* BSE 1.5 Volt Sensor */ + { + .ipmi_tag = "BSE 1.5V Sense", + .ipmi = { + .index = 3, + .sensor = { + .Num = SNMP_BC_LAST_NON_IPMI_BEM_SENSOR + 3, + .Type = SAHPI_VOLTAGE, + .Category = SAHPI_EC_THRESHOLD, + .EnableCtrl = SAHPI_FALSE, + .EventCtrl = SAHPI_SEC_READ_ONLY, + .Events = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_UPPER_MAJOR, + .DataFormat = { + .IsSupported = SAHPI_TRUE, + .ReadingType = SAHPI_SENSOR_READING_TYPE_FLOAT64, + .BaseUnits = SAHPI_SU_VOLTS, + .ModifierUnits = SAHPI_SU_UNSPECIFIED, + .ModifierUse = SAHPI_SMUU_NONE, + .Percentage = SAHPI_FALSE, + .Range = { + .Flags = SAHPI_SRF_MAX | SAHPI_SRF_MIN | SAHPI_SRF_NOMINAL, + .Max = { + .IsSupported = SAHPI_TRUE, + .Type = SAHPI_SENSOR_READING_TYPE_FLOAT64, + .Value = { + .SensorFloat64 = 4.4, + }, + }, + .Nominal = { + .IsSupported = SAHPI_TRUE, + .Type = SAHPI_SENSOR_READING_TYPE_FLOAT64, + .Value = { + .SensorFloat64 = 1.5, + }, + }, + .Min = { + .IsSupported = SAHPI_TRUE, + .Type = SAHPI_SENSOR_READING_TYPE_FLOAT64, + .Value = { + .SensorFloat64 = 0, + }, + }, + }, + }, + .ThresholdDefn = { + .IsAccessible = SAHPI_TRUE, + .ReadThold = SAHPI_STM_LOW_MAJOR | SAHPI_STM_UP_MAJOR, + .WriteThold = 0, + /* Default HDW thresholds: Warning 1.32<>1.68 */ + }, + .Oem = 0, + }, + .sensor_info = { + .mib = { + .not_avail_indicator_num = 0, + .write_only = SAHPI_FALSE, + .oid = "discovered", + .threshold_oids = { + .UpMajor = "discovered", + .LowMajor = "discovered", + }, + .threshold_write_oids = {}, + }, + .cur_state = SAHPI_ES_UNSPECIFIED, + .sensor_enabled = SAHPI_TRUE, + .events_enabled = SAHPI_TRUE, + .assert_mask = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_UPPER_MAJOR, + .deassert_mask = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_UPPER_MAJOR, + .event_array = { + /* FIXME:: Add events */ + + {}, + }, + .reading2event = {}, + }, + .comment = "BSE 1.5 Volt Sensor", + }, + }, + /* BSE 12 Volt Sensor */ + { + .ipmi_tag = "BSE 12V Sense", + .ipmi = { + .index = 4, + .sensor = { + .Num = SNMP_BC_LAST_NON_IPMI_BEM_SENSOR + 4, + .Type = SAHPI_VOLTAGE, + .Category = SAHPI_EC_THRESHOLD, + .EnableCtrl = SAHPI_FALSE, + .EventCtrl = SAHPI_SEC_READ_ONLY, + .Events = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_UPPER_MAJOR, + .DataFormat = { + .IsSupported = SAHPI_TRUE, + .ReadingType = SAHPI_SENSOR_READING_TYPE_FLOAT64, + .BaseUnits = SAHPI_SU_VOLTS, + .ModifierUnits = SAHPI_SU_UNSPECIFIED, + .ModifierUse = SAHPI_SMUU_NONE, + .Percentage = SAHPI_FALSE, + .Range = { + .Flags = SAHPI_SRF_MAX | SAHPI_SRF_MIN | SAHPI_SRF_NOMINAL, + .Max = { + .IsSupported = SAHPI_TRUE, + .Type = SAHPI_SENSOR_READING_TYPE_FLOAT64, + .Value = { + .SensorFloat64 = 16, + }, + }, + .Nominal = { + .IsSupported = SAHPI_TRUE, + .Type = SAHPI_SENSOR_READING_TYPE_FLOAT64, + .Value = { + .SensorFloat64 = 12, + }, + }, + .Min = { + .IsSupported = SAHPI_TRUE, + .Type = SAHPI_SENSOR_READING_TYPE_FLOAT64, + .Value = { + .SensorFloat64 = 0, + }, + }, + }, + }, + .ThresholdDefn = { + .IsAccessible = SAHPI_TRUE, + .ReadThold = SAHPI_STM_LOW_MAJOR | SAHPI_STM_UP_MAJOR, + .WriteThold = 0, + /* Default HDW thresholds: Warning 1.32<>1.68 */ + }, + .Oem = 0, + }, + .sensor_info = { + .mib = { + .not_avail_indicator_num = 0, + .write_only = SAHPI_FALSE, + .oid = "discovered", + .threshold_oids = { + .UpMajor = "discovered", + .LowMajor = "discovered", + }, + .threshold_write_oids = {}, + }, + .cur_state = SAHPI_ES_UNSPECIFIED, + .sensor_enabled = SAHPI_TRUE, + .events_enabled = SAHPI_TRUE, + .assert_mask = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_UPPER_MAJOR, + .deassert_mask = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_UPPER_MAJOR, + .event_array = { + /* FIXME:: Add events */ + + {}, + }, + .reading2event = {}, + }, + .comment = "BSE 12 Volt Sensor", + }, + }, + + {} /* Terminate array with a null element */ +}; + + /******************** * Media Tray Sensors ********************/ @@ -6832,11 +7134,11 @@ {} /* Terminate array with a null element */ }; -/*********************** - * Blade Add In Controls - ***********************/ +/*************************************** + * Blade Expansion Module (BEM) Controls + ***************************************/ -struct snmp_bc_control snmp_bc_blade_expansion_controls[] = { +struct snmp_bc_control snmp_bc_bem_controls[] = { {} /* Terminate array with a null element */ }; @@ -7091,11 +7393,11 @@ {} /* Terminate array with a null element */ }; -/**************************** - * Blade Expansion Module VPD - ****************************/ +/********************************** + * Blade Expansion Module (BEM) VPD + **********************************/ -struct snmp_bc_inventory snmp_bc_blade_expansion_inventories[] = { +struct snmp_bc_inventory snmp_bc_bem_inventories[] = { {} /* Terminate array with a null element */ }; Modified: openhpi/trunk/plugins/snmp_bc/snmp_bc_resources.h =================================================================== --- openhpi/trunk/plugins/snmp_bc/snmp_bc_resources.h 2006-05-24 21:08:09 UTC (rev 5829) +++ openhpi/trunk/plugins/snmp_bc/snmp_bc_resources.h 2006-05-25 19:36:35 UTC (rev 5830) @@ -327,7 +327,8 @@ extern struct snmp_bc_sensor snmp_bc_chassis_sensors_bct[]; extern struct snmp_bc_sensor snmp_bc_blade_sensors[]; extern struct snmp_bc_ipmi_sensor snmp_bc_blade_ipmi_sensors[]; -extern struct snmp_bc_sensor snmp_bc_blade_expansion_sensors[]; +extern struct snmp_bc_sensor snmp_bc_bem_sensors[]; +extern struct snmp_bc_ipmi_sensor snmp_bc_bem_ipmi_sensors[]; extern struct snmp_bc_sensor snmp_bc_mgmnt_sensors[]; extern struct snmp_bc_sensor snmp_bc_virtual_mgmnt_sensors[]; extern struct snmp_bc_sensor snmp_bc_mediatray_sensors[]; @@ -376,7 +377,7 @@ extern struct snmp_bc_control snmp_bc_chassis_controls_bc[]; extern struct snmp_bc_control snmp_bc_chassis_controls_bct[]; extern struct snmp_bc_control snmp_bc_blade_controls[]; -extern struct snmp_bc_control snmp_bc_blade_expansion_controls[]; +extern struct snmp_bc_control snmp_bc_bem_controls[]; extern struct snmp_bc_control snmp_bc_mgmnt_controls[]; extern struct snmp_bc_control snmp_bc_virtual_mgmnt_controls[]; extern struct snmp_bc_control snmp_bc_mediatray_controls[]; @@ -428,7 +429,7 @@ extern struct snmp_bc_inventory snmp_bc_virtual_mgmnt_inventories[]; extern struct snmp_bc_inventory snmp_bc_switch_inventories[]; extern struct snmp_bc_inventory snmp_bc_blade_inventories[]; -extern struct snmp_bc_inventory snmp_bc_blade_expansion_inventories[]; +extern struct snmp_bc_inventory snmp_bc_bem_inventories[]; extern struct snmp_bc_inventory snmp_bc_mediatray_inventories[]; extern struct snmp_bc_inventory snmp_bc_power_inventories[]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |