Skip to content

Commit

Permalink
Merge pull request networkupstools#1674 from eric3873/add_apc_epdu
Browse files Browse the repository at this point in the history
Add SNMP apc easy pdu support
  • Loading branch information
jimklimov authored Oct 12, 2022
2 parents 9c1e920 + 4b950cd commit ad0aba0
Show file tree
Hide file tree
Showing 5 changed files with 259 additions and 5 deletions.
6 changes: 4 additions & 2 deletions NEWS
Original file line number Diff line number Diff line change
Expand Up @@ -95,8 +95,10 @@ https://github.com/networkupstools/nut/milestone/8
Linux/illumos/FreeBSD/OpenBSD/... on dedicated NUT CI farm on Fosshost,
and MacOS on CircleCI [#1552]

- snmp-ups IETF MIB mapping updated for data points where negative readings
are invalid [#1558]
- snmp-ups updates:
* IETF MIB mapping updated for data points where negative readings
are invalid [#1558]
* Added SNMP subdriver "apc-epdu-mib" for APC easy PDU support [#1674]

- Added support for `make install` of PyNUT module and NUT-Monitor desktop
application [#1462, #1504]
Expand Down
4 changes: 2 additions & 2 deletions drivers/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,7 @@ mge_shut_LDADD = $(LDADD) -lm
# Please keep the MIB table below sorted roughly alphabetically (incidentally
# by vendor too) to ease maintenance and codebase fork resynchronisations
snmp_ups_SOURCES = snmp-ups.c snmp-ups-helpers.c \
apc-mib.c apc-pdu-mib.c \
apc-mib.c apc-pdu-mib.c apc-epdu-mib.c \
baytech-mib.c bestpower-mib.c \
compaq-mib.c cyberpower-mib.c \
delta_ups-mib.c \
Expand Down Expand Up @@ -339,7 +339,7 @@ dist_noinst_HEADERS = apc-mib.h apc-iem-mib.h apc-hid.h arduino-hid.h baytech-mi
nutdrv_qx_megatec.h nutdrv_qx_megatec-old.h nutdrv_qx_mustek.h nutdrv_qx_q1.h nutdrv_qx_hunnox.h \
nutdrv_qx_voltronic.h nutdrv_qx_voltronic-qs.h nutdrv_qx_voltronic-qs-hex.h nutdrv_qx_zinto.h \
xppc-mib.h huawei-mib.h eaton-ats16-nmc-mib.h eaton-ats16-nm2-mib.h apc-ats-mib.h raritan-px2-mib.h eaton-ats30-mib.h \
apc-pdu-mib.h ever-hid.h eaton-pdu-genesis2-mib.h eaton-pdu-marlin-mib.h eaton-pdu-marlin-helpers.h \
apc-pdu-mib.h apc-epdu-mib.h ever-hid.h eaton-pdu-genesis2-mib.h eaton-pdu-marlin-mib.h eaton-pdu-marlin-helpers.h \
eaton-pdu-pulizzi-mib.h eaton-pdu-revelation-mib.h emerson-avocent-pdu-mib.h legrand-hid.h \
hpe-pdu-mib.h powervar-hid.h delta_ups-hid.h generic_modbus.h salicru-hid.h adelsystem_cbi.h

Expand Down
221 changes: 221 additions & 0 deletions drivers/apc-epdu-mib.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,221 @@
/* apc-epdu-mib.c - subdriver to monitor apc SNMP easy pdu with NUT
*
* Copyright (C)
* 2011 - 2022 Eric Clappier <[email protected]>
*
* Note: this subdriver was initially generated as a "stub" by the
* gen-snmp-subdriver script. It must be customized!
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* 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. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/

#include "apc-epdu-mib.h"

#define APC_EPDU_MIB_VERSION "0.1"

#define APC_EPDU_MIB_SYSOID ".1.3.6.1.4.1.318.1.3.4.9"

static info_lkp_t apc_epdu_sw_outlet_status_info[] = {
{ 1, "off", NULL, NULL },
{ 2, "on", NULL, NULL },
{ 0, NULL, NULL, NULL }
};

static info_lkp_t apc_epdu_sw_outlet_switchability_info[] = {
{ 1, "yes", NULL, NULL },
{ 2, "yes", NULL, NULL },
{ 0, NULL, NULL, NULL }
};

/* POWERNET-MIB Snmp2NUT lookup table */
static snmp_info_t apc_epdu_mib[] = {

/* Device page */
{ "device.mfr", ST_FLAG_STRING, SU_INFOSIZE, NULL, "APC", SU_FLAG_STATIC | SU_FLAG_ABSENT | SU_FLAG_OK, NULL },
/* ePDUDeviceStatusModelNumber.1 = STRING: "EPDU1016M" */
{ "device.model", ST_FLAG_STRING, SU_INFOSIZE, ".1.3.6.1.4.1.318.1.1.30.2.1.1.4.1", "Easy ePDU", SU_FLAG_STATIC | SU_FLAG_OK, NULL },
{ "device.type", ST_FLAG_STRING, SU_INFOSIZE, NULL, "pdu", SU_FLAG_STATIC | SU_FLAG_ABSENT | SU_FLAG_OK, NULL },
{ "device.contact", ST_FLAG_STRING, SU_INFOSIZE, ".1.3.6.1.2.1.1.4.0", NULL, SU_FLAG_STALE | SU_FLAG_OK, NULL },
{ "device.description", ST_FLAG_STRING, SU_INFOSIZE, ".1.3.6.1.2.1.1.5.0", NULL, SU_FLAG_STALE | SU_FLAG_OK, NULL },
{ "device.location", ST_FLAG_STRING, SU_INFOSIZE, ".1.3.6.1.2.1.1.6.0", NULL, SU_FLAG_STALE | SU_FLAG_OK, NULL },
/* FIXME: to be RFC'ed */
{ "device.uptime", 0, 1, ".1.3.6.1.2.1.1.3.0", NULL, SU_FLAG_OK | SU_FLAG_NEGINVALID, NULL },
/* ePDUDeviceStatusSerialNumber.1 = STRING: "506255604729" */
{ "device.serial", ST_FLAG_STRING, SU_INFOSIZE, " .1.3.6.1.4.1.318.1.1.30.2.1.1.5.1", NULL, SU_FLAG_STATIC | SU_FLAG_OK, NULL },
/* ePDUDeviceStatusModelNumber.1 = STRING: "EPDU1016M" */
{ "device.part", ST_FLAG_STRING, SU_INFOSIZE, ".1.3.6.1.4.1.318.1.1.30.2.1.1.4.1", NULL, SU_FLAG_STATIC | SU_FLAG_OK, NULL },
/* ePDUDeviceStatusVersion.1 = STRING: "Ver16.10" */
{ "device.version", ST_FLAG_STRING, SU_INFOSIZE, " .1.3.6.1.4.1.318.1.1.30.2.1.1.3.1", NULL, SU_FLAG_STATIC | SU_FLAG_OK, NULL },

/* Input */
/* ePDUDeviceStatusActivePower.1 = INTEGER: 785 */
{ "input.realpower", 0, 1, ".1.3.6.1.4.1.318.1.1.30.2.1.1.7.1", NULL, SU_FLAG_OK | SU_FLAG_NEGINVALID, NULL },
/* FIXME: Take first phase for global */
/* ePDUPhaseStatusVoltage.1 = INTEGER: 2304 */
{ "input.voltage", 0, 0.1, ".1.3.6.1.4.1.318.1.1.30.4.2.1.4.1", NULL, SU_FLAG_OK | SU_FLAG_NEGINVALID, NULL },
/* ePDUPhaseTableSize = INTEGER: 1 */
{ "input.phases", 0, 1, ".1.3.6.1.4.1.318.1.1.30.3.0", NULL, SU_FLAG_OK, NULL },
/* ePDUPhaseStatusVoltage.1 = INTEGER: 2304 */
{ "input.L1-N.voltage", 0, 0.1, ".1.3.6.1.4.1.318.1.1.30.4.2.1.4.1", NULL, SU_FLAG_OK | SU_FLAG_NEGINVALID, NULL },
/* ePDUPhaseStatusVoltage.2 = INTEGER: 2304 */
{ "input.L2-N.voltage", 0, 0.1, ".1.3.6.1.4.1.318.1.1.30.4.2.1.4.2", NULL, SU_FLAG_OK | SU_FLAG_NEGINVALID, NULL },
/* ePDUPhaseStatusVoltage.3 = INTEGER: 2304 */
{ "input.L3-N.voltage", 0, 0.1, ".1.3.6.1.4.1.318.1.1.30.4.2.1.4.3", NULL, SU_FLAG_OK | SU_FLAG_NEGINVALID, NULL },
/* ePDUPhaseStatusCurrent.1 = INTEGER: 355 */
{ "input.L1.current", 0, 0.01, ".1.3.6.1.4.1.318.1.1.30.4.2.1.5.1", NULL, SU_FLAG_OK | SU_FLAG_NEGINVALID, NULL },
/* ePDUPhaseStatusCurrent.2 = INTEGER: 355 */
{ "input.L2.current", 0, 0.01, ".1.3.6.1.4.1.318.1.1.30.4.2.1.5.2", NULL, SU_FLAG_OK | SU_FLAG_NEGINVALID, NULL },
/* ePDUPhaseStatusCurrent.3 = INTEGER: 355 */
{ "input.L3.current", 0, 0.01, ".1.3.6.1.4.1.318.1.1.30.4.2.1.5.3", NULL, SU_FLAG_OK | SU_FLAG_NEGINVALID, NULL },
/* ePDUPhaseStatusActivePower.1 = INTEGER: 785 */
{ "input.L1.realpower", 0, 1, ".1.3.6.1.4.1.318.1.1.30.4.2.1.6.1", NULL, SU_FLAG_OK | SU_FLAG_NEGINVALID, NULL },
/* ePDUPhaseStatusActivePower.2 = INTEGER: 785 */
{ "input.L2.realpower", 0, 1, ".1.3.6.1.4.1.318.1.1.30.4.2.1.6.2", NULL, SU_FLAG_OK | SU_FLAG_NEGINVALID, NULL },
/* ePDUPhaseStatusActivePower.3 = INTEGER: 785 */
{ "input.L3.realpower", 0, 1, ".1.3.6.1.4.1.318.1.1.30.4.2.1.6.3", NULL, SU_FLAG_OK | SU_FLAG_NEGINVALID, NULL },

/* Outlets */
/* ePDUOutletTableSize.0 = INTEGER: 1 */
{ "outlet.count", 0, 1, ".1.3.6.1.4.1.318.1.1.30.5.0", NULL, SU_FLAG_STATIC | SU_FLAG_OK, NULL },
/* ePDUOutletStatusIndex.%i = INTEGER: 1 */
{ "outlet.%i.id", 0, 1, ".1.3.6.1.4.1.318.1.1.30.6.1.1.1.%i", "%i", SU_FLAG_STATIC | SU_FLAG_OK | SU_FLAG_NEGINVALID | SU_OUTLET, NULL },
/* ePDUOutletStatusNumber.%i = INTEGER: 1 */
{ "outlet.%i.desc", ST_FLAG_RW | ST_FLAG_STRING, SU_INFOSIZE, ".1.3.6.1.4.1.318.1.1.30.6.1.1.3.%i", NULL, SU_FLAG_OK | SU_FLAG_NEGINVALID | SU_OUTLET, NULL },
/* ePDUOutletStatusState.%i = INTEGER: off(1) */
{ "outlet.%i.status", ST_FLAG_RW | ST_FLAG_STRING, SU_INFOSIZE, ".1.3.6.1.4.1.318.1.1.30.6.1.1.4.%i", NULL, SU_FLAG_OK | SU_FLAG_NEGINVALID | SU_OUTLET, &apc_epdu_sw_outlet_status_info[0] },
/* Also use this OID to determine switchability ; its presence means "yes" */
/* ePDUOutletStatusState.%i = INTEGER: off(1) */
{ "outlet.%i.switchable", ST_FLAG_STRING, SU_INFOSIZE, ".1.3.6.1.4.1.318.1.1.30.6.1.1.4.%i", "yes", SU_FLAG_STATIC | SU_FLAG_ABSENT | SU_FLAG_OK | SU_OUTLET, &apc_epdu_sw_outlet_switchability_info[0] },

#if 0 /* keep following scan for future development */
/* iso.3.6.1.4.1.318.1.1.30.1.0 = INTEGER: 1 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.1.0", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.2.1.1.1.1 = INTEGER: 1 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.2.1.1.1.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.2.1.1.2.1 = INTEGER: 1 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.2.1.1.2.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.2.1.1.3.1 = STRING: "Ver16.10" */
{ "unmapped.iso", ST_FLAG_STRING, SU_INFOSIZE, ".1.3.6.1.4.1.318.1.1.30.2.1.1.3.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.2.1.1.4.1 = STRING: "EPDU1016M" */
{ "unmapped.iso", ST_FLAG_STRING, SU_INFOSIZE, ".1.3.6.1.4.1.318.1.1.30.2.1.1.4.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.2.1.1.5.1 = STRING: "506255604717" */
{ "unmapped.iso", ST_FLAG_STRING, SU_INFOSIZE, ".1.3.6.1.4.1.318.1.1.30.2.1.1.5.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.2.1.1.6.1 = INTEGER: 1 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.2.1.1.6.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.2.1.1.7.1 = INTEGER: 785 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.2.1.1.7.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.2.1.1.8.1 = INTEGER: -1 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.2.1.1.8.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.2.1.1.9.1 = INTEGER: -1 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.2.1.1.9.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.2.1.1.10.1 = INTEGER: 965 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.2.1.1.10.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.2.1.1.11.1 = INTEGER: 9114157 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.2.1.1.11.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.2.1.1.12.1 = INTEGER: 49988 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.2.1.1.12.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.2.2.1.1.1 = INTEGER: 1 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.2.2.1.1.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.2.2.1.2.1 = INTEGER: 1 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.2.2.1.2.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.2.2.1.3.1 = INTEGER: 0 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.2.2.1.3.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.2.2.1.4.1 = INTEGER: 0 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.2.2.1.4.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.2.2.1.5.1 = INTEGER: 2 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.2.2.1.5.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.3.0 = INTEGER: 1 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.3.0", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.4.1.1.1.1 = INTEGER: 1 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.4.1.1.1.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.4.1.1.2.1 = INTEGER: 1 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.4.1.1.2.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.4.1.1.3.1 = INTEGER: 1 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.4.1.1.3.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.4.1.1.4.1 = INTEGER: 3000 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.4.1.1.4.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.4.1.1.5.1 = INTEGER: 0 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.4.1.1.5.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.4.1.1.6.1 = INTEGER: 3200 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.4.1.1.6.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.4.1.1.7.1 = INTEGER: 0 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.4.1.1.7.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.4.2.1.1.1 = INTEGER: 1 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.4.2.1.1.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.4.2.1.2.1 = INTEGER: 1 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.4.2.1.2.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.4.2.1.3.1 = INTEGER: 1 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.4.2.1.3.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.4.2.1.4.1 = INTEGER: 2304 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.4.2.1.4.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.4.2.1.5.1 = INTEGER: 353 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.4.2.1.5.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.4.2.1.6.1 = INTEGER: 785 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.4.2.1.6.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.4.2.1.7.1 = INTEGER: -1 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.4.2.1.7.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.4.2.1.8.1 = INTEGER: -1 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.4.2.1.8.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.4.2.1.9.1 = INTEGER: 965 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.4.2.1.9.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.4.2.1.10.1 = INTEGER: 9114157 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.4.2.1.10.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.5.0 = INTEGER: 0 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.5.0", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.6.1.1.1.1 = INTEGER: -1 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.6.1.1.1.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.6.1.1.2.1 = INTEGER: -1 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.6.1.1.2.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.6.1.1.3.1 = INTEGER: -1 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.6.1.1.3.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.6.1.1.4.1 = INTEGER: -1 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.6.1.1.4.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.6.2.1.1.1 = INTEGER: -1 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.6.2.1.1.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.6.2.1.2.1 = INTEGER: -1 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.6.2.1.2.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.6.2.1.3.1 = INTEGER: -1 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.6.2.1.3.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.6.2.1.4.1 = INTEGER: -1 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.6.2.1.4.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.7.0 = INTEGER: 1 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.7.0", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.8.1.1.1.1 = INTEGER: 1 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.8.1.1.1.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.8.1.1.2.1 = INTEGER: 1 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.8.1.1.2.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.8.1.1.3.1 = INTEGER: 900 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.8.1.1.3.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.8.1.1.4.1 = INTEGER: 0 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.8.1.1.4.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.8.1.1.5.1 = INTEGER: 900 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.8.1.1.5.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.8.1.1.6.1 = INTEGER: 0 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.8.1.1.6.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.8.2.1.1.1 = INTEGER: 1 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.8.2.1.1.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.8.2.1.2.1 = INTEGER: 1 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.8.2.1.2.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.8.2.1.3.1 = INTEGER: 0 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.8.2.1.3.1", NULL, SU_FLAG_OK, NULL },
/* iso.3.6.1.4.1.318.1.1.30.8.2.1.4.1 = INTEGER: 0 */
{ "unmapped.iso", 0, 1, ".1.3.6.1.4.1.318.1.1.30.8.2.1.4.1", NULL, SU_FLAG_OK, NULL },
#endif

/* end of structure. */
{ NULL, 0, 0, NULL, NULL, 0, NULL }
};

mib2nut_info_t apc_pdu_epdu = { "apc", APC_EPDU_MIB_VERSION, NULL, NULL, apc_epdu_mib, APC_EPDU_MIB_SYSOID, NULL };
29 changes: 29 additions & 0 deletions drivers/apc-epdu-mib.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
/* apc-epdu-mib.h - subdriver to monitor apc SNMP easy pdu with NUT
*
* Copyright (C)
* 2011 - 2022 Eric Clappier <[email protected]>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* 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. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/

#ifndef APC_EPDU_MIB_H
#define APC_EPDU_MIB_H

#include "main.h"
#include "snmp-ups.h"

extern mib2nut_info_t apc_pdu_epdu;

#endif /* APC_EPDU_MIB_H */
4 changes: 3 additions & 1 deletion drivers/snmp-ups.c
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@
#include "eaton-ats16-nm2-mib.h"
#include "apc-ats-mib.h"
#include "apc-pdu-mib.h"
#include "apc-epdu-mib.h"
#include "eaton-ats30-mib.h"
#include "emerson-avocent-pdu-mib.h"
#include "hpe-pdu-mib.h"
Expand Down Expand Up @@ -94,6 +95,7 @@ static mib2nut_info_t *mib2nut[] = {
&apc_pdu_rpdu, /* This struct comes from : apc-pdu-mib.c */
&apc_pdu_rpdu2, /* This struct comes from : apc-pdu-mib.c */
&apc_pdu_msp, /* This struct comes from : apc-pdu-mib.c */
&apc_pdu_epdu, /* This struct comes from : apc-epdu-mib.c */
&apc, /* This struct comes from : apc-mib.c */
&baytech, /* This struct comes from : baytech-mib.c */
&bestpower, /* This struct comes from : bestpower-mib.c */
Expand Down Expand Up @@ -166,7 +168,7 @@ static const char *mibname;
static const char *mibvers;

#define DRIVER_NAME "Generic SNMP UPS driver"
#define DRIVER_VERSION "1.22"
#define DRIVER_VERSION "1.23"

/* driver description structure */
upsdrv_info_t upsdrv_info = {
Expand Down

0 comments on commit ad0aba0

Please sign in to comment.