|
Packit |
e9ba0d |
/* -*- mode: c; c-file-style: "openbsd" -*- */
|
|
Packit |
e9ba0d |
/*
|
|
Packit |
e9ba0d |
* Copyright (c) 2015 Vincent Bernat <bernat@luffy.cx>
|
|
Packit |
e9ba0d |
*
|
|
Packit |
e9ba0d |
* Permission to use, copy, modify, and/or distribute this software for any
|
|
Packit |
e9ba0d |
* purpose with or without fee is hereby granted, provided that the above
|
|
Packit |
e9ba0d |
* copyright notice and this permission notice appear in all copies.
|
|
Packit |
e9ba0d |
*
|
|
Packit |
e9ba0d |
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
Packit |
e9ba0d |
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
Packit |
e9ba0d |
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
Packit |
e9ba0d |
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
Packit |
e9ba0d |
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
Packit |
e9ba0d |
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
Packit |
e9ba0d |
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
Packit |
e9ba0d |
*/
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
#include <check.h>
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
#include "../src/daemon/lldpd.h"
|
|
Packit |
e9ba0d |
#include "../src/daemon/agent.h"
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
#include <net-snmp/net-snmp-config.h>
|
|
Packit |
e9ba0d |
#include <net-snmp/net-snmp-includes.h>
|
|
Packit |
e9ba0d |
#include <net-snmp/agent/net-snmp-agent-includes.h>
|
|
Packit |
e9ba0d |
#include <net-snmp/agent/snmp_vars.h>
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
extern struct lldpd *agent_scfg;
|
|
Packit |
e9ba0d |
extern struct timeval starttime;
|
|
Packit |
e9ba0d |
extern struct variable8 agent_lldp_vars[];
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
/* Our test config */
|
|
Packit |
e9ba0d |
struct lldpd test_cfg = {
|
|
Packit |
e9ba0d |
.g_config = {
|
|
Packit |
e9ba0d |
.c_tx_interval = 30,
|
|
Packit |
e9ba0d |
.c_ttl = 60,
|
|
Packit |
e9ba0d |
.c_smart = 0
|
|
Packit |
e9ba0d |
}
|
|
Packit |
e9ba0d |
};
|
|
Packit |
e9ba0d |
struct timeval test_starttime = { .tv_sec = 100, .tv_usec = 0 };
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
/* First chassis */
|
|
Packit |
e9ba0d |
struct lldpd_mgmt mgmt1 = {
|
|
Packit |
e9ba0d |
.m_family = LLDPD_AF_IPV4,
|
|
Packit |
e9ba0d |
.m_addr = { .octets = { 0xc0, 0, 0x2, 0xf } }, /* 192.0.2.15 */
|
|
Packit |
e9ba0d |
.m_addrsize = sizeof(struct in_addr),
|
|
Packit |
e9ba0d |
.m_iface = 3
|
|
Packit |
e9ba0d |
};
|
|
Packit |
e9ba0d |
struct lldpd_chassis chassis1 = {
|
|
Packit |
e9ba0d |
.c_index = 1,
|
|
Packit |
e9ba0d |
.c_protocol = LLDPD_MODE_LLDP,
|
|
Packit |
e9ba0d |
.c_id_subtype = LLDP_CHASSISID_SUBTYPE_LLADDR,
|
|
Packit |
e9ba0d |
.c_id = "AAA012",
|
|
Packit |
e9ba0d |
.c_id_len = 6,
|
|
Packit |
e9ba0d |
.c_name = "chassis1.example.com",
|
|
Packit |
e9ba0d |
.c_descr = "First chassis",
|
|
Packit |
e9ba0d |
.c_cap_available = LLDP_CAP_BRIDGE | LLDP_CAP_WLAN | LLDP_CAP_ROUTER,
|
|
Packit |
e9ba0d |
.c_cap_enabled = LLDP_CAP_ROUTER,
|
|
Packit |
e9ba0d |
#ifdef ENABLE_LLDPMED
|
|
Packit |
e9ba0d |
.c_med_cap_available = LLDP_MED_CAP_CAP | LLDP_MED_CAP_IV | \
|
|
Packit |
e9ba0d |
LLDP_MED_CAP_LOCATION | LLDP_MED_CAP_POLICY | \
|
|
Packit |
e9ba0d |
LLDP_MED_CAP_MDI_PSE | LLDP_MED_CAP_MDI_PD,
|
|
Packit |
e9ba0d |
.c_med_type = LLDP_MED_CLASS_II,
|
|
Packit |
e9ba0d |
.c_med_hw = "Hardware 1",
|
|
Packit |
e9ba0d |
/* We skip c_med_fw */
|
|
Packit |
e9ba0d |
.c_med_sw = "Software 1",
|
|
Packit |
e9ba0d |
.c_med_sn = "00-00-0000-AAAA",
|
|
Packit |
e9ba0d |
.c_med_manuf = "Manufacturer 1",
|
|
Packit |
e9ba0d |
.c_med_model = "Model 1",
|
|
Packit |
e9ba0d |
.c_med_asset = "Asset 1",
|
|
Packit |
e9ba0d |
#endif
|
|
Packit |
e9ba0d |
};
|
|
Packit |
e9ba0d |
/* Second chassis */
|
|
Packit |
e9ba0d |
struct lldpd_mgmt mgmt2 = {
|
|
Packit |
e9ba0d |
.m_family = LLDPD_AF_IPV4,
|
|
Packit |
e9ba0d |
.m_addr = { .octets = { 0xc0, 0, 0x2, 0x11 } }, /* 192.0.2.17 */
|
|
Packit |
e9ba0d |
.m_addrsize = sizeof(struct in_addr),
|
|
Packit |
e9ba0d |
.m_iface = 5
|
|
Packit |
e9ba0d |
};
|
|
Packit |
e9ba0d |
struct lldpd_mgmt mgmt3 = {
|
|
Packit |
e9ba0d |
.m_family = LLDPD_AF_IPV6,
|
|
Packit |
e9ba0d |
.m_addr = { .octets = { 0x20, 0x01, 0x0d, 0xb8,
|
|
Packit |
e9ba0d |
0xca, 0xfe, 0x00, 0x00,
|
|
Packit |
e9ba0d |
0x00, 0x00, 0x00, 0x00,
|
|
Packit |
e9ba0d |
0x00, 0x00, 0x00, 0x17 } }, /* 2001:db8:cafe::17 */
|
|
Packit |
e9ba0d |
.m_addrsize = sizeof(struct in6_addr),
|
|
Packit |
e9ba0d |
.m_iface = 5
|
|
Packit |
e9ba0d |
};
|
|
Packit |
e9ba0d |
struct lldpd_chassis chassis2 = {
|
|
Packit |
e9ba0d |
.c_index = 4,
|
|
Packit |
e9ba0d |
.c_protocol = LLDPD_MODE_LLDP,
|
|
Packit |
e9ba0d |
.c_id_subtype = LLDP_CHASSISID_SUBTYPE_LOCAL,
|
|
Packit |
e9ba0d |
.c_id = "chassis2",
|
|
Packit |
e9ba0d |
.c_id_len = 6,
|
|
Packit |
e9ba0d |
.c_name = "chassis2.example.com",
|
|
Packit |
e9ba0d |
.c_descr = "Second chassis",
|
|
Packit |
e9ba0d |
.c_cap_available = LLDP_CAP_ROUTER,
|
|
Packit |
e9ba0d |
.c_cap_enabled = LLDP_CAP_ROUTER,
|
|
Packit |
e9ba0d |
#ifdef ENABLE_LLDPMED
|
|
Packit |
e9ba0d |
.c_med_hw = "Hardware 2",
|
|
Packit |
e9ba0d |
/* We skip c_med_fw */
|
|
Packit |
e9ba0d |
.c_med_sw = "Software 2",
|
|
Packit |
e9ba0d |
.c_med_sn = "00-00-0000-AAAC",
|
|
Packit |
e9ba0d |
.c_med_manuf = "Manufacturer 2",
|
|
Packit |
e9ba0d |
.c_med_model = "Model 2",
|
|
Packit |
e9ba0d |
.c_med_asset = "Asset 2",
|
|
Packit |
e9ba0d |
#endif
|
|
Packit |
e9ba0d |
};
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
/* First port of first chassis */
|
|
Packit |
e9ba0d |
struct lldpd_hardware hardware1 = {
|
|
Packit |
e9ba0d |
.h_ifindex = 3,
|
|
Packit |
e9ba0d |
.h_tx_cnt = 1352,
|
|
Packit |
e9ba0d |
.h_rx_cnt = 1458,
|
|
Packit |
e9ba0d |
.h_rx_discarded_cnt = 5,
|
|
Packit |
e9ba0d |
.h_rx_unrecognized_cnt = 4,
|
|
Packit |
e9ba0d |
.h_insert_cnt = 100,
|
|
Packit |
e9ba0d |
.h_delete_cnt = 5,
|
|
Packit |
e9ba0d |
.h_ageout_cnt = 20,
|
|
Packit |
e9ba0d |
.h_drop_cnt = 1,
|
|
Packit |
e9ba0d |
.h_lport = {
|
|
Packit |
e9ba0d |
.p_chassis = &chassis1,
|
|
Packit |
e9ba0d |
.p_lastchange = 200,
|
|
Packit |
e9ba0d |
.p_protocol = LLDPD_MODE_LLDP,
|
|
Packit |
e9ba0d |
.p_id_subtype = LLDP_PORTID_SUBTYPE_LLADDR,
|
|
Packit |
e9ba0d |
.p_id = "AAA012",
|
|
Packit |
e9ba0d |
.p_id_len = 6,
|
|
Packit |
e9ba0d |
.p_descr = "eth2",
|
|
Packit |
e9ba0d |
.p_mfs = 1600,
|
|
Packit |
e9ba0d |
#ifdef ENABLE_DOT3
|
|
Packit |
e9ba0d |
.p_aggregid = 0,
|
|
Packit |
e9ba0d |
.p_macphy = {
|
|
Packit |
e9ba0d |
.autoneg_support = 1,
|
|
Packit |
e9ba0d |
.autoneg_enabled = 1,
|
|
Packit |
e9ba0d |
.autoneg_advertised = LLDP_DOT3_LINK_AUTONEG_100BASE_TX | LLDP_DOT3_LINK_AUTONEG_100BASE_TXFD,
|
|
Packit |
e9ba0d |
.mau_type = LLDP_DOT3_MAU_100BASETXFD,
|
|
Packit |
e9ba0d |
},
|
|
Packit |
e9ba0d |
.p_power = {
|
|
Packit |
e9ba0d |
.devicetype = LLDP_DOT3_POWER_PD,
|
|
Packit |
e9ba0d |
.supported = 1,
|
|
Packit |
e9ba0d |
.enabled = 1,
|
|
Packit |
e9ba0d |
.paircontrol = 1,
|
|
Packit |
e9ba0d |
.pairs = 2,
|
|
Packit |
e9ba0d |
.class = 3,
|
|
Packit |
e9ba0d |
.powertype = LLDP_DOT3_POWER_8023AT_TYPE2,
|
|
Packit |
e9ba0d |
.source = LLDP_DOT3_POWER_SOURCE_BOTH,
|
|
Packit |
e9ba0d |
.priority = LLDP_DOT3_POWER_PRIO_LOW,
|
|
Packit |
e9ba0d |
.requested = 2000,
|
|
Packit |
e9ba0d |
.allocated = 2500,
|
|
Packit |
e9ba0d |
},
|
|
Packit |
e9ba0d |
#endif
|
|
Packit |
e9ba0d |
#ifdef ENABLE_LLDPMED
|
|
Packit |
e9ba0d |
.p_med_cap_enabled = LLDP_MED_CAP_CAP | LLDP_MED_CAP_IV | LLDP_MED_CAP_MDI_PD |
|
|
Packit |
e9ba0d |
LLDP_MED_CAP_POLICY | LLDP_MED_CAP_LOCATION,
|
|
Packit |
e9ba0d |
.p_med_policy = {
|
|
Packit |
e9ba0d |
{ .type = 0 }, { .type = 0 }, {
|
|
Packit |
e9ba0d |
.type = LLDP_MED_APPTYPE_GUESTVOICE,
|
|
Packit |
e9ba0d |
.unknown = 1,
|
|
Packit |
e9ba0d |
.tagged = 1,
|
|
Packit |
e9ba0d |
.vid = 475,
|
|
Packit |
e9ba0d |
.priority = 3,
|
|
Packit |
e9ba0d |
.dscp = 62
|
|
Packit |
e9ba0d |
}, { .type = 0 }, { .type = 0 }, { .type = 0 }, {
|
|
Packit |
e9ba0d |
.type = LLDP_MED_APPTYPE_VIDEOSTREAM,
|
|
Packit |
e9ba0d |
.unknown = 0,
|
|
Packit |
e9ba0d |
.tagged = 1,
|
|
Packit |
e9ba0d |
.vid = 472,
|
|
Packit |
e9ba0d |
.priority = 1,
|
|
Packit |
e9ba0d |
.dscp = 60
|
|
Packit |
e9ba0d |
}, { .type = 0 }
|
|
Packit |
e9ba0d |
},
|
|
Packit |
e9ba0d |
.p_med_location = {
|
|
Packit |
e9ba0d |
{ .format = 0 }, {
|
|
Packit |
e9ba0d |
.format = LLDP_MED_LOCFORMAT_CIVIC,
|
|
Packit |
e9ba0d |
/* 2:FR:6:Commercial Rd:19:4 */
|
|
Packit |
e9ba0d |
.data = "\x15" "\x02" "FR" "\x06" "\x0d" "Commercial Rd" "\x13" "\x01" "4",
|
|
Packit |
e9ba0d |
.data_len = 22,
|
|
Packit |
e9ba0d |
}, { .format = 0 }
|
|
Packit |
e9ba0d |
},
|
|
Packit |
e9ba0d |
.p_med_power = {
|
|
Packit |
e9ba0d |
.devicetype = LLDP_MED_POW_TYPE_PD,
|
|
Packit |
e9ba0d |
.source = LLDP_MED_POW_SOURCE_LOCAL,
|
|
Packit |
e9ba0d |
.priority = LLDP_MED_POW_PRIO_HIGH,
|
|
Packit |
e9ba0d |
.val = 100
|
|
Packit |
e9ba0d |
},
|
|
Packit |
e9ba0d |
#endif
|
|
Packit |
e9ba0d |
#ifdef ENABLE_DOT1
|
|
Packit |
e9ba0d |
.p_pvid = 47,
|
|
Packit |
e9ba0d |
/* Remaining is done is snmp_config */
|
|
Packit |
e9ba0d |
#endif
|
|
Packit |
e9ba0d |
}
|
|
Packit |
e9ba0d |
};
|
|
Packit |
e9ba0d |
/* Second port of first chassis */
|
|
Packit |
e9ba0d |
struct lldpd_hardware hardware2 = {
|
|
Packit |
e9ba0d |
.h_ifindex = 4,
|
|
Packit |
e9ba0d |
.h_tx_cnt = 11352,
|
|
Packit |
e9ba0d |
.h_rx_cnt = 11458,
|
|
Packit |
e9ba0d |
.h_rx_discarded_cnt = 55,
|
|
Packit |
e9ba0d |
.h_rx_unrecognized_cnt = 14,
|
|
Packit |
e9ba0d |
.h_insert_cnt = 1000,
|
|
Packit |
e9ba0d |
.h_delete_cnt = 51,
|
|
Packit |
e9ba0d |
.h_ageout_cnt = 210,
|
|
Packit |
e9ba0d |
.h_drop_cnt = 1,
|
|
Packit |
e9ba0d |
.h_lport = {
|
|
Packit |
e9ba0d |
.p_chassis = &chassis1,
|
|
Packit |
e9ba0d |
.p_lastchange = 50,
|
|
Packit |
e9ba0d |
.p_protocol = LLDPD_MODE_LLDP,
|
|
Packit |
e9ba0d |
.p_id_subtype = LLDP_PORTID_SUBTYPE_IFNAME,
|
|
Packit |
e9ba0d |
.p_id = "eth4",
|
|
Packit |
e9ba0d |
.p_id_len = 4,
|
|
Packit |
e9ba0d |
.p_descr = "Intel 1000 GE",
|
|
Packit |
e9ba0d |
.p_mfs = 9000,
|
|
Packit |
e9ba0d |
#ifdef ENABLE_DOT3
|
|
Packit |
e9ba0d |
.p_aggregid = 3,
|
|
Packit |
e9ba0d |
.p_macphy = {
|
|
Packit |
e9ba0d |
.autoneg_support = 1,
|
|
Packit |
e9ba0d |
.autoneg_enabled = 1,
|
|
Packit |
e9ba0d |
.autoneg_advertised = LLDP_DOT3_LINK_AUTONEG_100BASE_TXFD | LLDP_DOT3_LINK_AUTONEG_1000BASE_TFD,
|
|
Packit |
e9ba0d |
.mau_type = LLDP_DOT3_MAU_1000BASETFD,
|
|
Packit |
e9ba0d |
},
|
|
Packit |
e9ba0d |
#endif
|
|
Packit |
e9ba0d |
#ifdef ENABLE_LLDPMED
|
|
Packit |
e9ba0d |
.p_med_cap_enabled = LLDP_MED_CAP_CAP | LLDP_MED_CAP_IV | LLDP_MED_CAP_MDI_PD |
|
|
Packit |
e9ba0d |
LLDP_MED_CAP_MDI_PSE | LLDP_MED_CAP_POLICY | LLDP_MED_CAP_LOCATION,
|
|
Packit |
e9ba0d |
.p_med_policy = {
|
|
Packit |
e9ba0d |
{ .type = 0 }, { .type = 0 }, {
|
|
Packit |
e9ba0d |
.type = LLDP_MED_APPTYPE_GUESTVOICE,
|
|
Packit |
e9ba0d |
.unknown = 1,
|
|
Packit |
e9ba0d |
.tagged = 1,
|
|
Packit |
e9ba0d |
.vid = 475,
|
|
Packit |
e9ba0d |
.priority = 3,
|
|
Packit |
e9ba0d |
.dscp = 62
|
|
Packit |
e9ba0d |
}, { .type = 0 }, { .type = 0 }, {
|
|
Packit |
e9ba0d |
.type = LLDP_MED_APPTYPE_VIDEOCONFERENCE,
|
|
Packit |
e9ba0d |
.unknown = 0,
|
|
Packit |
e9ba0d |
.tagged = 0,
|
|
Packit |
e9ba0d |
.vid = 1007,
|
|
Packit |
e9ba0d |
.priority = 1,
|
|
Packit |
e9ba0d |
.dscp = 49
|
|
Packit |
e9ba0d |
}, { .type = 0 }, { .type = 0 }
|
|
Packit |
e9ba0d |
},
|
|
Packit |
e9ba0d |
.p_med_location = {
|
|
Packit |
e9ba0d |
{
|
|
Packit |
e9ba0d |
.format = LLDP_MED_LOCFORMAT_COORD,
|
|
Packit |
e9ba0d |
.data = "Not interpreted",
|
|
Packit |
e9ba0d |
.data_len = 15,
|
|
Packit |
e9ba0d |
}, { .format = 0 }, { .format = 0 },
|
|
Packit |
e9ba0d |
},
|
|
Packit |
e9ba0d |
#endif
|
|
Packit |
e9ba0d |
}
|
|
Packit |
e9ba0d |
};
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
#ifdef ENABLE_DOT1
|
|
Packit |
e9ba0d |
struct lldpd_vlan vlan47 = {
|
|
Packit |
e9ba0d |
.v_name = "VLAN #47",
|
|
Packit |
e9ba0d |
.v_vid = 47,
|
|
Packit |
e9ba0d |
};
|
|
Packit |
e9ba0d |
struct lldpd_vlan vlan49 = {
|
|
Packit |
e9ba0d |
.v_name = "VLAN #49",
|
|
Packit |
e9ba0d |
.v_vid = 49,
|
|
Packit |
e9ba0d |
};
|
|
Packit |
e9ba0d |
struct lldpd_vlan vlan1449 = {
|
|
Packit |
e9ba0d |
.v_name = "VLAN #1449",
|
|
Packit |
e9ba0d |
.v_vid = 1449,
|
|
Packit |
e9ba0d |
};
|
|
Packit |
e9ba0d |
struct lldpd_ppvid ppvid47 = {
|
|
Packit |
e9ba0d |
.p_cap_status = LLDP_PPVID_CAP_SUPPORTED | LLDP_PPVID_CAP_ENABLED,
|
|
Packit |
e9ba0d |
.p_ppvid = 47,
|
|
Packit |
e9ba0d |
};
|
|
Packit |
e9ba0d |
struct lldpd_ppvid ppvid118 = {
|
|
Packit |
e9ba0d |
.p_cap_status = LLDP_PPVID_CAP_SUPPORTED | LLDP_PPVID_CAP_ENABLED,
|
|
Packit |
e9ba0d |
.p_ppvid = 118,
|
|
Packit |
e9ba0d |
};
|
|
Packit |
e9ba0d |
struct lldpd_pi pi88cc = {
|
|
Packit |
e9ba0d |
.p_pi = "\x88\xcc",
|
|
Packit |
e9ba0d |
.p_pi_len = 2,
|
|
Packit |
e9ba0d |
};
|
|
Packit |
e9ba0d |
struct lldpd_pi pi888e01 = {
|
|
Packit |
e9ba0d |
.p_pi = "\x88\x8e\x01",
|
|
Packit |
e9ba0d |
.p_pi_len = 3,
|
|
Packit |
e9ba0d |
};
|
|
Packit |
e9ba0d |
#endif
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
/* First port of second chassis */
|
|
Packit |
e9ba0d |
struct lldpd_port port2 = {
|
|
Packit |
e9ba0d |
.p_chassis = &chassis2,
|
|
Packit |
e9ba0d |
.p_lastchange = 180,
|
|
Packit |
e9ba0d |
.p_protocol = LLDPD_MODE_LLDP,
|
|
Packit |
e9ba0d |
.p_id_subtype = LLDP_PORTID_SUBTYPE_IFALIAS,
|
|
Packit |
e9ba0d |
.p_id = "Giga1/7",
|
|
Packit |
e9ba0d |
.p_id_len = 7,
|
|
Packit |
e9ba0d |
.p_descr = "Gigabit Ethernet 1/7",
|
|
Packit |
e9ba0d |
};
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
void
|
|
Packit |
e9ba0d |
snmp_config()
|
|
Packit |
e9ba0d |
{
|
|
Packit |
e9ba0d |
starttime = test_starttime;
|
|
Packit |
e9ba0d |
agent_scfg = &test_cfg;
|
|
Packit |
e9ba0d |
TAILQ_INIT(&test_cfg.g_chassis);
|
|
Packit |
e9ba0d |
TAILQ_INIT(&chassis1.c_mgmt);
|
|
Packit |
e9ba0d |
TAILQ_INSERT_TAIL(&chassis1.c_mgmt, &mgmt1, m_entries);
|
|
Packit |
e9ba0d |
TAILQ_INSERT_TAIL(&test_cfg.g_chassis, &chassis1, c_entries);
|
|
Packit |
e9ba0d |
TAILQ_INIT(&chassis2.c_mgmt);
|
|
Packit |
e9ba0d |
TAILQ_INSERT_TAIL(&chassis2.c_mgmt, &mgmt2, m_entries);
|
|
Packit |
e9ba0d |
TAILQ_INSERT_TAIL(&chassis2.c_mgmt, &mgmt3, m_entries);
|
|
Packit |
e9ba0d |
TAILQ_INSERT_TAIL(&test_cfg.g_chassis, &chassis2, c_entries);
|
|
Packit |
e9ba0d |
TAILQ_INIT(&test_cfg.g_hardware);
|
|
Packit |
e9ba0d |
TAILQ_INSERT_TAIL(&test_cfg.g_hardware, &hardware1, h_entries);
|
|
Packit |
e9ba0d |
TAILQ_INSERT_TAIL(&test_cfg.g_hardware, &hardware2, h_entries);
|
|
Packit |
e9ba0d |
#ifdef ENABLE_DOT1
|
|
Packit |
e9ba0d |
TAILQ_INIT(&hardware1.h_lport.p_vlans);
|
|
Packit |
e9ba0d |
TAILQ_INSERT_TAIL(&hardware1.h_lport.p_vlans, &vlan47, v_entries);
|
|
Packit |
e9ba0d |
TAILQ_INSERT_TAIL(&hardware1.h_lport.p_vlans, &vlan49, v_entries);
|
|
Packit |
e9ba0d |
TAILQ_INSERT_TAIL(&hardware1.h_lport.p_vlans, &vlan1449, v_entries);
|
|
Packit |
e9ba0d |
TAILQ_INIT(&hardware1.h_lport.p_ppvids);
|
|
Packit |
e9ba0d |
TAILQ_INSERT_TAIL(&hardware1.h_lport.p_ppvids, &ppvid47, p_entries);
|
|
Packit |
e9ba0d |
TAILQ_INSERT_TAIL(&hardware1.h_lport.p_ppvids, &ppvid118, p_entries);
|
|
Packit |
e9ba0d |
TAILQ_INIT(&hardware1.h_lport.p_pids);
|
|
Packit |
e9ba0d |
TAILQ_INSERT_TAIL(&hardware1.h_lport.p_pids, &pi88cc, p_entries);
|
|
Packit |
e9ba0d |
TAILQ_INSERT_TAIL(&hardware1.h_lport.p_pids, &pi888e01, p_entries);
|
|
Packit |
e9ba0d |
TAILQ_INIT(&hardware2.h_lport.p_vlans);
|
|
Packit |
e9ba0d |
TAILQ_INIT(&hardware2.h_lport.p_ppvids);
|
|
Packit |
e9ba0d |
TAILQ_INIT(&hardware2.h_lport.p_pids);
|
|
Packit |
e9ba0d |
TAILQ_INIT(&port2.p_vlans);
|
|
Packit |
e9ba0d |
TAILQ_INIT(&port2.p_ppvids);
|
|
Packit |
e9ba0d |
TAILQ_INIT(&port2.p_pids);
|
|
Packit |
e9ba0d |
#endif
|
|
Packit |
e9ba0d |
TAILQ_INIT(&hardware1.h_rports);
|
|
Packit |
e9ba0d |
TAILQ_INSERT_TAIL(&hardware1.h_rports, &port2, p_entries);
|
|
Packit |
e9ba0d |
TAILQ_INSERT_TAIL(&hardware1.h_rports, &hardware2.h_lport, p_entries);
|
|
Packit |
e9ba0d |
TAILQ_INIT(&hardware2.h_rports);
|
|
Packit |
e9ba0d |
TAILQ_INSERT_TAIL(&hardware2.h_rports, &hardware1.h_lport, p_entries);
|
|
Packit |
e9ba0d |
}
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
/* Convert OID to a string. Static buffer. */
|
|
Packit |
e9ba0d |
char*
|
|
Packit |
e9ba0d |
snmp_oidrepr(oid *name, size_t namelen)
|
|
Packit |
e9ba0d |
{
|
|
Packit |
e9ba0d |
static char *buffer[4] = {NULL, NULL, NULL, NULL};
|
|
Packit |
e9ba0d |
static int current = 0;
|
|
Packit |
e9ba0d |
size_t i;
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
current = (current + 1)%4;
|
|
Packit |
e9ba0d |
free(buffer[current]); buffer[current] = NULL;
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
for (i = 0; i < namelen; i++) {
|
|
Packit |
e9ba0d |
/* Not very efficient... */
|
|
Packit |
e9ba0d |
char *newbuffer = NULL;
|
|
Packit |
e9ba0d |
if (asprintf(&newbuffer, "%s.%lu", buffer[current]?buffer[current]:"",
|
|
Packit |
e9ba0d |
(unsigned long)name[i]) == -1) {
|
|
Packit |
e9ba0d |
free(buffer[current]);
|
|
Packit |
e9ba0d |
buffer[current] = NULL;
|
|
Packit |
e9ba0d |
return NULL;
|
|
Packit |
e9ba0d |
}
|
|
Packit |
e9ba0d |
free(buffer[current]);
|
|
Packit |
e9ba0d |
buffer[current] = newbuffer;
|
|
Packit |
e9ba0d |
}
|
|
Packit |
e9ba0d |
return buffer[current++];
|
|
Packit |
e9ba0d |
}
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
struct tree_node {
|
|
Packit |
e9ba0d |
oid name[MAX_OID_LEN];
|
|
Packit |
e9ba0d |
size_t namelen;
|
|
Packit |
e9ba0d |
int type; /* ASN_* */
|
|
Packit |
e9ba0d |
union {
|
|
Packit |
e9ba0d |
unsigned long int integer;
|
|
Packit |
e9ba0d |
struct {
|
|
Packit |
e9ba0d |
char *octet;
|
|
Packit |
e9ba0d |
size_t len;
|
|
Packit |
e9ba0d |
} string;
|
|
Packit |
e9ba0d |
} value;
|
|
Packit |
e9ba0d |
};
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
static oid zeroDotZero[2] = {0, 0};
|
|
Packit |
e9ba0d |
struct tree_node snmp_tree[] = {
|
|
Packit |
e9ba0d |
{ {1, 1, 1, 0}, 4, ASN_INTEGER, { .integer = 30 } }, /* lldpMessageTxInterval */
|
|
Packit |
e9ba0d |
{ {1, 1, 2, 0}, 4, ASN_INTEGER, { .integer = 2 } }, /* lldpMessageTxHoldMultiplier */
|
|
Packit |
e9ba0d |
{ {1, 1, 3, 0}, 4, ASN_INTEGER, { .integer = 1 } }, /* lldpReinitDelay */
|
|
Packit |
e9ba0d |
{ {1, 1, 4, 0}, 4, ASN_INTEGER, { .integer = 1 } }, /* lldpTxDelay */
|
|
Packit |
e9ba0d |
{ {1, 1, 5, 0}, 4, ASN_INTEGER, { .integer = 5 } }, /* lldpNotificationInterval */
|
|
Packit |
e9ba0d |
{ {1, 2, 1, 0}, 4, ASN_TIMETICKS, { .integer = 10000 } },/* lldpStatsRemTablesLastChangeTime */
|
|
Packit |
e9ba0d |
{ {1, 2, 2, 0}, 4, ASN_GAUGE, { .integer = 1100 } }, /* lldpStatsRemTablesInserts */
|
|
Packit |
e9ba0d |
{ {1, 2, 3, 0}, 4, ASN_GAUGE, { .integer = 56 } }, /* lldpStatsRemTablesDeletes */
|
|
Packit |
e9ba0d |
{ {1, 2, 4, 0}, 4, ASN_GAUGE, { .integer = 2 } }, /* lldpStatsRemTablesDrops */
|
|
Packit |
e9ba0d |
{ {1, 2, 5, 0}, 4, ASN_GAUGE, { .integer = 230 } }, /* lldpStatsRemTablesAgeouts */
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
{ {1, 2, 6, 1, 2, 3}, 6, ASN_COUNTER, { .integer = 1352 } }, /* lldpStatsTxPortFramesTotal.3 */
|
|
Packit |
e9ba0d |
{ {1, 2, 6, 1, 2, 4}, 6, ASN_COUNTER, { .integer = 11352 } }, /* lldpStatsTxPortFramesTotal.4 */
|
|
Packit |
e9ba0d |
{ {1, 2, 7, 1, 2, 3}, 6, ASN_COUNTER, { .integer = 5 } }, /* lldpStatsRxPortFramesDiscardedTotal.3 */
|
|
Packit |
e9ba0d |
{ {1, 2, 7, 1, 2, 4}, 6, ASN_COUNTER, { .integer = 55 } }, /* lldpStatsRxPortFramesDiscardedTotal.4 */
|
|
Packit |
e9ba0d |
{ {1, 2, 7, 1, 3, 3}, 6, ASN_COUNTER, { .integer = 5 } }, /* lldpStatsRxPortFramesError.3 */
|
|
Packit |
e9ba0d |
{ {1, 2, 7, 1, 3, 4}, 6, ASN_COUNTER, { .integer = 55 } }, /* lldpStatsRxPortFramesError.4 */
|
|
Packit |
e9ba0d |
{ {1, 2, 7, 1, 4, 3}, 6, ASN_COUNTER, { .integer = 1458 } }, /* lldpStatsRxPortFramesTotal.3 */
|
|
Packit |
e9ba0d |
{ {1, 2, 7, 1, 4, 4}, 6, ASN_COUNTER, { .integer = 11458 } }, /* lldpStatsRxPortFramesTotal.4 */
|
|
Packit |
e9ba0d |
{ {1, 2, 7, 1, 5, 3}, 6, ASN_COUNTER, { .integer = 4 } }, /* lldpStatsRxPortTLVsDiscardedTotal.3 */
|
|
Packit |
e9ba0d |
{ {1, 2, 7, 1, 5, 4}, 6, ASN_COUNTER, { .integer = 14 } }, /* lldpStatsRxPortTLVsDiscardedTotal.4 */
|
|
Packit |
e9ba0d |
{ {1, 2, 7, 1, 6, 3}, 6, ASN_COUNTER, { .integer = 4 } }, /* lldpStatsRxPortTLVsUnrecognizedTotal.3 */
|
|
Packit |
e9ba0d |
{ {1, 2, 7, 1, 6, 4}, 6, ASN_COUNTER, { .integer = 14 } }, /* lldpStatsRxPortTLVsUnrecognizedTotal.4 */
|
|
Packit |
e9ba0d |
{ {1, 2, 7, 1, 7, 3}, 6, ASN_GAUGE, { .integer = 20 } }, /* lldpStatsRxPortAgeoutsTotal.3 */
|
|
Packit |
e9ba0d |
{ {1, 2, 7, 1, 7, 4}, 6, ASN_GAUGE, { .integer = 210 } }, /* lldpStatsRxPortAgeoutsTotal.4 */
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
{ {1, 3, 1, 0}, 4, ASN_INTEGER, { .integer = 4 } }, /* lldpLocChassisIdSubtype */
|
|
Packit |
e9ba0d |
/* lldpLocChassisId */
|
|
Packit |
e9ba0d |
{ {1, 3, 2, 0}, 4, ASN_OCTET_STR, { .string = { .octet = "AAA012",
|
|
Packit |
e9ba0d |
.len = 6 } }},
|
|
Packit |
e9ba0d |
/* lldpLocSysName */
|
|
Packit |
e9ba0d |
{ {1, 3, 3, 0}, 4, ASN_OCTET_STR, { .string = { .octet = "chassis1.example.com",
|
|
Packit |
e9ba0d |
.len = 20 } }},
|
|
Packit |
e9ba0d |
/* lldpLocSysDesc */
|
|
Packit |
e9ba0d |
{ {1, 3, 4, 0}, 4, ASN_OCTET_STR, { .string = { .octet = "First chassis",
|
|
Packit |
e9ba0d |
.len = 13 } }},
|
|
Packit |
e9ba0d |
/* lldpLocSysCapSupported */
|
|
Packit |
e9ba0d |
{ {1, 3, 5, 0}, 4, ASN_OCTET_STR, { .string = { .octet = "\x38",
|
|
Packit |
e9ba0d |
.len = 1 } }},
|
|
Packit |
e9ba0d |
/* lldpLocSysCapEnabled */
|
|
Packit |
e9ba0d |
{ {1, 3, 6, 0}, 4, ASN_OCTET_STR, { .string = { .octet = "\x8",
|
|
Packit |
e9ba0d |
.len = 1 } }},
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
{ {1, 3, 7, 1, 2, 3}, 6, ASN_INTEGER, { .integer = 3 } }, /* lldpLocPortIdSubtype.3 */
|
|
Packit |
e9ba0d |
{ {1, 3, 7, 1, 2, 4}, 6, ASN_INTEGER, { .integer = 5 } }, /* lldpLocPortIdSubtype.5 */
|
|
Packit |
e9ba0d |
/* lldpLocPortId.3 */
|
|
Packit |
e9ba0d |
{ {1, 3, 7, 1, 3, 3}, 6, ASN_OCTET_STR, { .string = { .octet = "AAA012",
|
|
Packit |
e9ba0d |
.len = 6 } }},
|
|
Packit |
e9ba0d |
/* lldpLocPortId.4 */
|
|
Packit |
e9ba0d |
{ {1, 3, 7, 1, 3, 4}, 6, ASN_OCTET_STR, { .string = { .octet = "eth4",
|
|
Packit |
e9ba0d |
.len = 4 } }},
|
|
Packit |
e9ba0d |
/* lldpLocPortDesc.3 */
|
|
Packit |
e9ba0d |
{ {1, 3, 7, 1, 4, 3}, 6, ASN_OCTET_STR, { .string = { .octet = "eth2",
|
|
Packit |
e9ba0d |
.len = 4 } }},
|
|
Packit |
e9ba0d |
/* lldpLocPortDesc.4 */
|
|
Packit |
e9ba0d |
{ {1, 3, 7, 1, 4, 4}, 6, ASN_OCTET_STR, { .string = { .octet = "Intel 1000 GE",
|
|
Packit |
e9ba0d |
.len = 13 } }},
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
{ {1, 3, 8, 1, 3, 1, 4, 192, 0, 2, 15}, 11, ASN_INTEGER, { .integer = 5 } }, /* lldpLocManAddrLen */
|
|
Packit |
e9ba0d |
{ {1, 3, 8, 1, 4, 1, 4, 192, 0, 2, 15}, 11, ASN_INTEGER, { .integer = 2 } }, /* lldpLocManAddrIfSubtype */
|
|
Packit |
e9ba0d |
{ {1, 3, 8, 1, 5, 1, 4, 192, 0, 2, 15}, 11, ASN_INTEGER, { .integer = 3 } }, /* lldpLocManAddrIfId */
|
|
Packit |
e9ba0d |
/* lldpLocManAddrOID */
|
|
Packit |
e9ba0d |
{ {1, 3, 8, 1, 6, 1, 4, 192, 0, 2, 15}, 11, ASN_OBJECT_ID,
|
|
Packit |
e9ba0d |
{ .string = { .octet = (char *)zeroDotZero,
|
|
Packit |
e9ba0d |
.len = sizeof(zeroDotZero) }} },
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
/* lldpRemChassisIdSubtype */
|
|
Packit |
e9ba0d |
{ {1, 4, 1, 1, 4, 0, 3, 1 }, 8, ASN_INTEGER, { .integer = 4 } },
|
|
Packit |
e9ba0d |
{ {1, 4, 1, 1, 4, 8000, 3, 4}, 8, ASN_INTEGER, { .integer = 7 } },
|
|
Packit |
e9ba0d |
{ {1, 4, 1, 1, 4, 10000, 4, 1}, 8, ASN_INTEGER, { .integer = 4 } },
|
|
Packit |
e9ba0d |
/* lldpRemChassisId */
|
|
Packit |
e9ba0d |
{ {1, 4, 1, 1, 5, 0, 3, 1 }, 8, ASN_OCTET_STR, { .string = { .octet = "AAA012", .len = 6 }} },
|
|
Packit |
e9ba0d |
{ {1, 4, 1, 1, 5, 8000, 3, 4}, 8, ASN_OCTET_STR, { .string =
|
|
Packit |
e9ba0d |
{ .octet = "chassis2",
|
|
Packit |
e9ba0d |
.len = 6 }} },
|
|
Packit |
e9ba0d |
{ {1, 4, 1, 1, 5, 10000, 4, 1}, 8, ASN_OCTET_STR, { .string = { .octet = "AAA012", .len = 6 }} },
|
|
Packit |
e9ba0d |
/* lldpRemPortIdSubtype */
|
|
Packit |
e9ba0d |
{ {1, 4, 1, 1, 6, 0, 3, 1 }, 8, ASN_INTEGER, { .integer = 5 } },
|
|
Packit |
e9ba0d |
{ {1, 4, 1, 1, 6, 8000, 3, 4}, 8, ASN_INTEGER, { .integer = 1 } },
|
|
Packit |
e9ba0d |
{ {1, 4, 1, 1, 6, 10000, 4, 1}, 8, ASN_INTEGER, { .integer = 3 } },
|
|
Packit |
e9ba0d |
/* lldpRemPortId */
|
|
Packit |
e9ba0d |
{ {1, 4, 1, 1, 7, 0, 3, 1 }, 8, ASN_OCTET_STR, { .string = { .octet = "eth4", .len = 4 }} },
|
|
Packit |
e9ba0d |
{ {1, 4, 1, 1, 7, 8000, 3, 4}, 8, ASN_OCTET_STR, { .string =
|
|
Packit |
e9ba0d |
{ .octet = "Giga1/7", .len = 7 }} },
|
|
Packit |
e9ba0d |
{ {1, 4, 1, 1, 7, 10000, 4, 1}, 8, ASN_OCTET_STR, { .string = { .octet = "AAA012", .len = 6 }} },
|
|
Packit |
e9ba0d |
/* lldpRemPortDesc */
|
|
Packit |
e9ba0d |
{ {1, 4, 1, 1, 8, 0, 3, 1 }, 8, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "Intel 1000 GE", .len = 13 }} },
|
|
Packit |
e9ba0d |
{ {1, 4, 1, 1, 8, 8000, 3, 4}, 8, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "Gigabit Ethernet 1/7", .len = 20 }} },
|
|
Packit |
e9ba0d |
{ {1, 4, 1, 1, 8, 10000, 4, 1}, 8, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "eth2", .len = 4 }} },
|
|
Packit |
e9ba0d |
/* lldpRemSysName */
|
|
Packit |
e9ba0d |
{ {1, 4, 1, 1, 9, 0, 3, 1 }, 8, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "chassis1.example.com", .len = 20 }} },
|
|
Packit |
e9ba0d |
{ {1, 4, 1, 1, 9, 8000, 3, 4}, 8, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "chassis2.example.com", .len = 20 }} },
|
|
Packit |
e9ba0d |
{ {1, 4, 1, 1, 9, 10000, 4, 1}, 8, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "chassis1.example.com", .len = 20 }} },
|
|
Packit |
e9ba0d |
/* lldpRemSysDesc */
|
|
Packit |
e9ba0d |
{ {1, 4, 1, 1, 10, 0, 3, 1 }, 8, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "First chassis", .len = 13 }} },
|
|
Packit |
e9ba0d |
{ {1, 4, 1, 1, 10, 8000, 3, 4}, 8, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "Second chassis", .len = 14 }} },
|
|
Packit |
e9ba0d |
{ {1, 4, 1, 1, 10, 10000, 4, 1}, 8, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "First chassis", .len = 13 }} },
|
|
Packit |
e9ba0d |
/* lldpRemSysCapSupported */
|
|
Packit |
e9ba0d |
{ {1, 4, 1, 1, 11, 0, 3, 1 }, 8, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "\x38", .len = 1 }} },
|
|
Packit |
e9ba0d |
{ {1, 4, 1, 1, 11, 8000, 3, 4}, 8, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "\x8", .len = 1 }} },
|
|
Packit |
e9ba0d |
{ {1, 4, 1, 1, 11, 10000, 4, 1}, 8, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "\x38", .len = 1 }} },
|
|
Packit |
e9ba0d |
/* lldpRemSysCapEnabled */
|
|
Packit |
e9ba0d |
{ {1, 4, 1, 1, 12, 0, 3, 1 }, 8, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "\x8", .len = 1 }} },
|
|
Packit |
e9ba0d |
{ {1, 4, 1, 1, 12, 8000, 3, 4}, 8, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "\x8", .len = 1 }} },
|
|
Packit |
e9ba0d |
{ {1, 4, 1, 1, 12, 10000, 4, 1}, 8, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "\x8", .len = 1 }} },
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
/* lldpRemManAddrIfSubtype */
|
|
Packit |
e9ba0d |
{ {1, 4, 2, 1, 3, 0, 3, 1, 1, 4, 192, 0, 2, 15 }, 14, ASN_INTEGER, { .integer = 2 } },
|
|
Packit |
e9ba0d |
{ {1, 4, 2, 1, 3, 8000, 3, 4, 1, 4, 192, 0, 2, 17 }, 14, ASN_INTEGER, { .integer = 2 } },
|
|
Packit |
e9ba0d |
{ {1, 4, 2, 1, 3, 8000, 3, 4, 2, 16,
|
|
Packit |
e9ba0d |
0x20, 0x01, 0x0d, 0xb8, 0xca, 0xfe, 0x00, 0x00,
|
|
Packit |
e9ba0d |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17 }, 26, ASN_INTEGER, { .integer = 2 } },
|
|
Packit |
e9ba0d |
{ {1, 4, 2, 1, 3, 10000, 4, 1, 1, 4, 192, 0, 2, 15 }, 14, ASN_INTEGER, { .integer = 2 } },
|
|
Packit |
e9ba0d |
/* lldpRemManAddrIfId */
|
|
Packit |
e9ba0d |
{ {1, 4, 2, 1, 4, 0, 3, 1, 1, 4, 192, 0, 2, 15 }, 14, ASN_INTEGER, { .integer = 3 } },
|
|
Packit |
e9ba0d |
{ {1, 4, 2, 1, 4, 8000, 3, 4, 1, 4, 192, 0, 2, 17 }, 14, ASN_INTEGER, { .integer = 5 } },
|
|
Packit |
e9ba0d |
{ {1, 4, 2, 1, 4, 8000, 3, 4, 2, 16,
|
|
Packit |
e9ba0d |
0x20, 0x01, 0x0d, 0xb8, 0xca, 0xfe, 0x00, 0x00,
|
|
Packit |
e9ba0d |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17 }, 26, ASN_INTEGER, { .integer = 5 } },
|
|
Packit |
e9ba0d |
{ {1, 4, 2, 1, 4, 10000, 4, 1, 1, 4, 192, 0, 2, 15 }, 14, ASN_INTEGER, { .integer = 3 } },
|
|
Packit |
e9ba0d |
/* lldpRemManAddrOID */
|
|
Packit |
e9ba0d |
{ {1, 4, 2, 1, 5, 0, 3, 1, 1, 4, 192, 0, 2, 15 }, 14, ASN_OBJECT_ID,
|
|
Packit |
e9ba0d |
{ .string = { .octet = (char *)zeroDotZero,
|
|
Packit |
e9ba0d |
.len = sizeof(zeroDotZero) }} },
|
|
Packit |
e9ba0d |
{ {1, 4, 2, 1, 5, 8000, 3, 4, 1, 4, 192, 0, 2, 17 }, 14, ASN_OBJECT_ID,
|
|
Packit |
e9ba0d |
{ .string = { .octet = (char *)zeroDotZero,
|
|
Packit |
e9ba0d |
.len = sizeof(zeroDotZero) }} },
|
|
Packit |
e9ba0d |
{ {1, 4, 2, 1, 5, 8000, 3, 4, 2, 16,
|
|
Packit |
e9ba0d |
0x20, 0x01, 0x0d, 0xb8, 0xca, 0xfe, 0x00, 0x00,
|
|
Packit |
e9ba0d |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17 }, 26, ASN_OBJECT_ID,
|
|
Packit |
e9ba0d |
{ .string = { .octet = (char *)zeroDotZero,
|
|
Packit |
e9ba0d |
.len = sizeof(zeroDotZero) }} },
|
|
Packit |
e9ba0d |
{ {1, 4, 2, 1, 5, 10000, 4, 1, 1, 4, 192, 0, 2, 15 }, 14, ASN_OBJECT_ID,
|
|
Packit |
e9ba0d |
{ .string = { .octet = (char *)zeroDotZero,
|
|
Packit |
e9ba0d |
.len = sizeof(zeroDotZero) }} },
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
#ifdef ENABLE_DOT3
|
|
Packit |
e9ba0d |
/* lldpXdot3LocPortAutoNegSupported */
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 2, 1, 1, 1, 3 }, 9, ASN_INTEGER, { .integer = 1 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 2, 1, 1, 1, 4 }, 9, ASN_INTEGER, { .integer = 1 }},
|
|
Packit |
e9ba0d |
/* lldpXdot3LocPortAutoNegEnabled */
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 2, 1, 1, 2, 3 }, 9, ASN_INTEGER, { .integer = 1 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 2, 1, 1, 2, 4 }, 9, ASN_INTEGER, { .integer = 1 }},
|
|
Packit |
e9ba0d |
/* lldpXdot3LocPortAutoNegAdvertisedCap */
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 2, 1, 1, 3, 3 }, 9, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "\x0c\x00", .len = 2 }} },
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 2, 1, 1, 3, 4 }, 9, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "\x04\x01", .len = 2 }} },
|
|
Packit |
e9ba0d |
/* lldpXdot3LocPortOperMauType */
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 2, 1, 1, 4, 3 }, 9, ASN_INTEGER, { .integer = 16 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 2, 1, 1, 4, 4 }, 9, ASN_INTEGER, { .integer = 30 }},
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
/* lldpXdot3LocPowerPortClass */
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 2, 2, 1, 1, 3 }, 9, ASN_INTEGER, { .integer = 2 }},
|
|
Packit |
e9ba0d |
/* lldpXdot3LocPowerMDISupported */
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 2, 2, 1, 2, 3 }, 9, ASN_INTEGER, { .integer = 1 }},
|
|
Packit |
e9ba0d |
/* lldpXdot3LocPowerMDIEnabled */
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 2, 2, 1, 3, 3 }, 9, ASN_INTEGER, { .integer = 1 }},
|
|
Packit |
e9ba0d |
/* lldpXdot3LocPowerPairControlable */
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 2, 2, 1, 4, 3 }, 9, ASN_INTEGER, { .integer = 1 }},
|
|
Packit |
e9ba0d |
/* lldpXdot3LocPowerPairs */
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 2, 2, 1, 5, 3 }, 9, ASN_INTEGER, { .integer = 2 }},
|
|
Packit |
e9ba0d |
/* lldpXdot3LocPowerClass */
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 2, 2, 1, 6, 3 }, 9, ASN_INTEGER, { .integer = 3 }},
|
|
Packit |
e9ba0d |
/* As per 802.3at-2009, not sure of the OID... */
|
|
Packit |
e9ba0d |
/* lldpXdot3LocPowerType */
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 2, 2, 1, 7, 3 }, 9, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "\xC0", .len = 1 } }},
|
|
Packit |
e9ba0d |
/* lldpXdot3LocPowerSource */
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 2, 2, 1, 8, 3 }, 9, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "\xC0", .len = 1 } }},
|
|
Packit |
e9ba0d |
/* lldpXdot3LocPowerPriority */
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 2, 2, 1, 9, 3 }, 9, ASN_INTEGER, { .integer = 1 }},
|
|
Packit |
e9ba0d |
/* lldpXdot3LocPDRequestedPowerValue */
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 2, 2, 1, 10, 3 }, 9, ASN_INTEGER, { .integer = 2000 }},
|
|
Packit |
e9ba0d |
/* lldpXdot3LocPSEAllocatedPowerValue */
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 2, 2, 1, 11, 3 }, 9, ASN_INTEGER, { .integer = 2500 }},
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
/* lldpXdot3LocLinkAggStatus */
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 2, 3, 1, 1, 3 }, 9, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "\x00", .len = 1 }} },
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 2, 3, 1, 1, 4 }, 9, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "\xC0", .len = 1 }} },
|
|
Packit |
e9ba0d |
/* lldpXdot3LocLinkAggPortId */
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 2, 3, 1, 2, 3 }, 9, ASN_INTEGER, { .integer = 0 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 2, 3, 1, 2, 4 }, 9, ASN_INTEGER, { .integer = 3 }},
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
/* lldpXdot3LocMaxFrameSize */
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 2, 4, 1, 1, 3 }, 9, ASN_INTEGER, { .integer = 1600 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 2, 4, 1, 1, 4 }, 9, ASN_INTEGER, { .integer = 9000 }},
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
/* lldpXdot3RemPortAutoNegSupported */
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 3, 1, 1, 1, 0, 3, 1 }, 11, ASN_INTEGER, { .integer = 1 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 3, 1, 1, 1, 8000, 3, 4 }, 11, ASN_INTEGER, { .integer = 2 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 3, 1, 1, 1, 10000, 4, 1 }, 11, ASN_INTEGER, { .integer = 1 }},
|
|
Packit |
e9ba0d |
/* lldpXdot3RemPortAutoNegEnabled */
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 3, 1, 1, 2, 0, 3, 1 }, 11, ASN_INTEGER, { .integer = 1 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 3, 1, 1, 2, 8000, 3, 4 }, 11, ASN_INTEGER, { .integer = 2 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 3, 1, 1, 2, 10000, 4, 1 }, 11, ASN_INTEGER, { .integer = 1 }},
|
|
Packit |
e9ba0d |
/* lldpXdot3RemPortAutoNegAdvertisedCap */
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 3, 1, 1, 3, 0, 3, 1 }, 11, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "\x04\x01", .len = 2 }} },
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 3, 1, 1, 3, 8000, 3, 4 }, 11, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "\x00\x00", .len = 2 }} },
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 3, 1, 1, 3, 10000, 4, 1 }, 11, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "\x0c\x00", .len = 2 }} },
|
|
Packit |
e9ba0d |
/* lldpXdot3RemPortOperMauType */
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 3, 1, 1, 4, 0, 3, 1 }, 11, ASN_INTEGER, { .integer = 30 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 3, 1, 1, 4, 8000, 3, 4 }, 11, ASN_INTEGER, { .integer = 0 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 3, 1, 1, 4, 10000, 4, 1 }, 11, ASN_INTEGER, { .integer = 16 }},
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
/* lldpXdot3RemPowerPortClass */
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 3, 2, 1, 1, 10000, 4, 1 }, 11, ASN_INTEGER, { .integer = 2 }},
|
|
Packit |
e9ba0d |
/* lldpXdot3RemPowerMDISupported */
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 3, 2, 1, 2, 10000, 4, 1 }, 11, ASN_INTEGER, { .integer = 1 }},
|
|
Packit |
e9ba0d |
/* lldpXdot3RemPowerMDIEnabled */
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 3, 2, 1, 3, 10000, 4, 1 }, 11, ASN_INTEGER, { .integer = 1 }},
|
|
Packit |
e9ba0d |
/* lldpXdot3RemPowerPairControlable */
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 3, 2, 1, 4, 10000, 4, 1 }, 11, ASN_INTEGER, { .integer = 1 }},
|
|
Packit |
e9ba0d |
/* lldpXdot3RemPowerPairs */
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 3, 2, 1, 5, 10000, 4, 1 }, 11, ASN_INTEGER, { .integer = 2 }},
|
|
Packit |
e9ba0d |
/* lldpXdot3RemPowerClass */
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 3, 2, 1, 6, 10000, 4, 1 }, 11, ASN_INTEGER, { .integer = 3 }},
|
|
Packit |
e9ba0d |
/* As per 802.3at-2009, not sure of the OID... */
|
|
Packit |
e9ba0d |
/* lldpXdot3RemPowerType */
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 3, 2, 1, 7, 10000, 4, 1 }, 11, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "\xC0", .len = 1 } }},
|
|
Packit |
e9ba0d |
/* lldpXdot3RemPowerSource */
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 3, 2, 1, 8, 10000, 4, 1 }, 11, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "\xC0", .len = 1 } }},
|
|
Packit |
e9ba0d |
/* lldpXdot3RemPowerPriority */
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 3, 2, 1, 9, 10000, 4, 1 }, 11, ASN_INTEGER, { .integer = 1 }},
|
|
Packit |
e9ba0d |
/* lldpXdot3RemPDRequestedPowerValue */
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 3, 2, 1, 10, 10000, 4, 1 }, 11, ASN_INTEGER, { .integer = 2000 }},
|
|
Packit |
e9ba0d |
/* lldpXdot3RemPSEAllocatedPowerValue */
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 3, 2, 1, 11, 10000, 4, 1 }, 11, ASN_INTEGER, { .integer = 2500 }},
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
/* lldpXdot3RemLinkAggStatus */
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 3, 3, 1, 1, 0, 3, 1 }, 11, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "\xC0", .len = 1 }} },
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 3, 3, 1, 1, 8000, 3, 4 }, 11, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "\x00", .len = 1 }} },
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 3, 3, 1, 1, 10000, 4, 1 }, 11, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "\x00", .len = 1 }} },
|
|
Packit |
e9ba0d |
/* lldpXdot3RemLinkAggPortId */
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 3, 3, 1, 2, 0, 3, 1 }, 11, ASN_INTEGER, { .integer = 3 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 3, 3, 1, 2, 8000, 3, 4 }, 11, ASN_INTEGER, { .integer = 0 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 3, 3, 1, 2, 10000, 4, 1 }, 11, ASN_INTEGER, { .integer = 0 }},
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
/* lldpXdot3RemMaxFrameSize */
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 3, 4, 1, 1, 0, 3, 1 }, 11, ASN_INTEGER, { .integer = 9000 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4623, 1, 3, 4, 1, 1, 10000, 4, 1 }, 11, ASN_INTEGER, { .integer = 1600 }},
|
|
Packit |
e9ba0d |
#endif
|
|
Packit |
e9ba0d |
#ifdef ENABLE_LLDPMED
|
|
Packit |
e9ba0d |
/* lldpXMedLocDeviceClass */
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 1, 1, 0 }, 7, ASN_INTEGER, { .integer = 2 }},
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
/* lldpXMedLocMediaPolicyVlanID */
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 2, 1, 1, 2, 3, 3 }, 10, ASN_INTEGER, { .integer = 475 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 2, 1, 1, 2, 3, 7 }, 10, ASN_INTEGER, { .integer = 472 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 2, 1, 1, 2, 4, 3 }, 10, ASN_INTEGER, { .integer = 475 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 2, 1, 1, 2, 4, 6 }, 10, ASN_INTEGER, { .integer = 1007 }},
|
|
Packit |
e9ba0d |
/* lldpXMedLocMediaPolicyPriority */
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 2, 1, 1, 3, 3, 3 }, 10, ASN_INTEGER, { .integer = 3 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 2, 1, 1, 3, 3, 7 }, 10, ASN_INTEGER, { .integer = 1 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 2, 1, 1, 3, 4, 3 }, 10, ASN_INTEGER, { .integer = 3 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 2, 1, 1, 3, 4, 6 }, 10, ASN_INTEGER, { .integer = 1 }},
|
|
Packit |
e9ba0d |
/* lldpXMedLocMediaPolicyDscp */
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 2, 1, 1, 4, 3, 3 }, 10, ASN_INTEGER, { .integer = 62 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 2, 1, 1, 4, 3, 7 }, 10, ASN_INTEGER, { .integer = 60 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 2, 1, 1, 4, 4, 3 }, 10, ASN_INTEGER, { .integer = 62 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 2, 1, 1, 4, 4, 6 }, 10, ASN_INTEGER, { .integer = 49 }},
|
|
Packit |
e9ba0d |
/* lldpXMedLocMediaPolicyUnknown */
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 2, 1, 1, 5, 3, 3 }, 10, ASN_INTEGER, { .integer = 1 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 2, 1, 1, 5, 3, 7 }, 10, ASN_INTEGER, { .integer = 2 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 2, 1, 1, 5, 4, 3 }, 10, ASN_INTEGER, { .integer = 1 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 2, 1, 1, 5, 4, 6 }, 10, ASN_INTEGER, { .integer = 2 }},
|
|
Packit |
e9ba0d |
/* lldpXMedLocMediaPolicyTagged */
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 2, 1, 1, 6, 3, 3 }, 10, ASN_INTEGER, { .integer = 1 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 2, 1, 1, 6, 3, 7 }, 10, ASN_INTEGER, { .integer = 1 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 2, 1, 1, 6, 4, 3 }, 10, ASN_INTEGER, { .integer = 1 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 2, 1, 1, 6, 4, 6 }, 10, ASN_INTEGER, { .integer = 2 }},
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
/* lldpXMedLocHardwareRev */
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 2, 2, 0 }, 7, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "Hardware 1", .len = 10 }} },
|
|
Packit |
e9ba0d |
/* lldpXMedLocSoftwareRev */
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 2, 4, 0 }, 7, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "Software 1", .len = 10 }} },
|
|
Packit |
e9ba0d |
/* lldpXMedLocSerialNum */
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 2, 5, 0 }, 7, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "00-00-0000-AAAA", .len = 15 }} },
|
|
Packit |
e9ba0d |
/* lldpXMedLocMfgName */
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 2, 6, 0 }, 7, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "Manufacturer 1", .len = 14 }} },
|
|
Packit |
e9ba0d |
/* lldpXMedLocModelName */
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 2, 7, 0 }, 7, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "Model 1", .len = 7 }} },
|
|
Packit |
e9ba0d |
/* lldpXMedLocAssetID */
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 2, 8, 0 }, 7, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "Asset 1", .len = 7 }} },
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
/* lldpXMedLocLocationInfo */
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 2, 9, 1, 2, 3, 3}, 10, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "\x15" "\x02" "FR" "\x06" "\x0d" "Commercial Rd" "\x13" "\x01" "4", .len = 22 }} },
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 2, 9, 1, 2, 4, 2}, 10, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "Not interpreted", .len = 15 }} },
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
/* lldpXMedLocXPoEDeviceType */
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 2, 10, 0 }, 7, ASN_INTEGER, { .integer = 3 }},
|
|
Packit |
e9ba0d |
/* lldpXMedLocXPoEPDPowerReq */
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 2, 13, 0 }, 7, ASN_GAUGE, { .integer = 100 }},
|
|
Packit |
e9ba0d |
/* lldpXMedLocXPoEPDPowerSource */
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 2, 14, 0 }, 7, ASN_INTEGER, { .integer = 3 }},
|
|
Packit |
e9ba0d |
/* lldpXMedLocXPoEPDPowerPriority */
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 2, 15, 0 }, 7, ASN_INTEGER, { .integer = 3 }},
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
/* lldpXMedRemCapSupported */
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 1, 1, 1, 0, 3, 1 }, 11, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "\xFC", .len = 1 }} },
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 1, 1, 1, 10000, 4, 1 }, 11, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "\xFC", .len = 1 }}},
|
|
Packit |
e9ba0d |
/* lldpXMedRemCapCurrent */
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 1, 1, 2, 0, 3, 1 }, 11, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "\xFC", .len = 1 }} },
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 1, 1, 2, 10000, 4, 1 }, 11, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "\xEC", .len = 1 }}},
|
|
Packit |
e9ba0d |
/* lldpXMedRemDeviceClass */
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 1, 1, 3, 0, 3, 1 }, 11, ASN_INTEGER, { .integer = 2 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 1, 1, 3, 10000, 4, 1 }, 11, ASN_INTEGER, { .integer = 2 }},
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
/* lldpXMedRemMediaPolicyVlanID */
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 2, 1, 2, 0, 3, 1, 3 }, 12, ASN_INTEGER, { .integer = 475 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 2, 1, 2, 0, 3, 1, 6 }, 12, ASN_INTEGER, { .integer = 1007 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 2, 1, 2, 10000, 4, 1, 3 }, 12, ASN_INTEGER, { .integer = 475 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 2, 1, 2, 10000, 4, 1, 7 }, 12, ASN_INTEGER, { .integer = 472 }},
|
|
Packit |
e9ba0d |
/* lldpXMedRemMediaPolicyPriority */
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 2, 1, 3, 0, 3, 1, 3 }, 12, ASN_INTEGER, { .integer = 3 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 2, 1, 3, 0, 3, 1, 6 }, 12, ASN_INTEGER, { .integer = 1 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 2, 1, 3, 10000, 4, 1, 3 }, 12, ASN_INTEGER, { .integer = 3 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 2, 1, 3, 10000, 4, 1, 7 }, 12, ASN_INTEGER, { .integer = 1 }},
|
|
Packit |
e9ba0d |
/* lldpXMedLocMediaPolicyDscp */
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 2, 1, 4, 0, 3, 1, 3 }, 12, ASN_INTEGER, { .integer = 62 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 2, 1, 4, 0, 3, 1, 6 }, 12, ASN_INTEGER, { .integer = 49 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 2, 1, 4, 10000, 4, 1, 3 }, 12, ASN_INTEGER, { .integer = 62 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 2, 1, 4, 10000, 4, 1, 7 }, 12, ASN_INTEGER, { .integer = 60 }},
|
|
Packit |
e9ba0d |
/* lldpXMedLocMediaPolicyUnknown */
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 2, 1, 5, 0, 3, 1, 3 }, 12, ASN_INTEGER, { .integer = 1 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 2, 1, 5, 0, 3, 1, 6 }, 12, ASN_INTEGER, { .integer = 2 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 2, 1, 5, 10000, 4, 1, 3 }, 12, ASN_INTEGER, { .integer = 1 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 2, 1, 5, 10000, 4, 1, 7 }, 12, ASN_INTEGER, { .integer = 2 }},
|
|
Packit |
e9ba0d |
/* lldpXMedLocMediaPolicyTagged */
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 2, 1, 6, 0, 3, 1, 3 }, 12, ASN_INTEGER, { .integer = 1 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 2, 1, 6, 0, 3, 1, 6 }, 12, ASN_INTEGER, { .integer = 2 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 2, 1, 6, 10000, 4, 1, 3 }, 12, ASN_INTEGER, { .integer = 1 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 2, 1, 6, 10000, 4, 1, 7 }, 12, ASN_INTEGER, { .integer = 1 }},
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
/* lldpXMedRemHardwareRev */
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 3, 1, 1, 0, 3, 1 }, 11, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "Hardware 1", .len = 10 }} },
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 3, 1, 1, 10000, 4, 1 }, 11, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "Hardware 1", .len = 10 }} },
|
|
Packit |
e9ba0d |
/* lldpXMedRemSoftwareRev */
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 3, 1, 3, 0, 3, 1 }, 11, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "Software 1", .len = 10 }} },
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 3, 1, 3, 10000, 4, 1 }, 11, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "Software 1", .len = 10 }} },
|
|
Packit |
e9ba0d |
/* lldpXMedRemSerialNum */
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 3, 1, 4, 0, 3, 1 }, 11, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "00-00-0000-AAAA", .len = 15 }} },
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 3, 1, 4, 10000, 4, 1 }, 11, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "00-00-0000-AAAA", .len = 15 }} },
|
|
Packit |
e9ba0d |
/* lldpXMedRemMfgName */
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 3, 1, 5, 0, 3, 1 }, 11, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "Manufacturer 1", .len = 14 }} },
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 3, 1, 5, 10000, 4, 1 }, 11, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "Manufacturer 1", .len = 14 }} },
|
|
Packit |
e9ba0d |
/* lldpXMedRemModelName */
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 3, 1, 6, 0, 3, 1 }, 11, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "Model 1", .len = 7 }} },
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 3, 1, 6, 10000, 4, 1 }, 11, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "Model 1", .len = 7 }} },
|
|
Packit |
e9ba0d |
/* lldpXMedRemAssetID */
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 3, 1, 7, 0, 3, 1 }, 11, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "Asset 1", .len = 7 }} },
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 3, 1, 7, 10000, 4, 1 }, 11, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "Asset 1", .len = 7 }} },
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
/* lldpXMedLocLocationInfo */
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 4, 1, 2, 0, 3, 1, 2}, 12, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "Not interpreted", .len = 15 }} },
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 4, 1, 2, 10000, 4, 1, 3}, 12, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "\x15" "\x02" "FR" "\x06" "\x0d" "Commercial Rd" "\x13" "\x01" "4", .len = 22 }} },
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
/* lldpXMedRemXPoEDeviceType */
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 5, 1, 1, 0, 3, 1}, 11, ASN_INTEGER, { .integer = 4 }},
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 5, 1, 1, 10000, 4, 1}, 11, ASN_INTEGER, { .integer = 3 }},
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
/* lldpXMedRemXPoEPDPowerReq */
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 7, 1, 1, 10000, 4, 1}, 11, ASN_GAUGE, { .integer = 100 }},
|
|
Packit |
e9ba0d |
/* lldpXMedRemXPoEPDPowerSource */
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 7, 1, 2, 10000, 4, 1}, 11, ASN_INTEGER, { .integer = 3 }},
|
|
Packit |
e9ba0d |
/* lldpXMedRemXPoEPDPowerPriority */
|
|
Packit |
e9ba0d |
{ {1, 5, 4795, 1, 3, 7, 1, 3, 10000, 4, 1}, 11, ASN_INTEGER, { .integer = 3 }},
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
#endif
|
|
Packit |
e9ba0d |
#ifdef ENABLE_DOT1
|
|
Packit |
e9ba0d |
/* lldpXdot1LocPortVlanId */
|
|
Packit |
e9ba0d |
{ { 1, 5, 32962, 1, 2, 1, 1, 1, 3}, 9, ASN_INTEGER, { .integer = 47 }},
|
|
Packit |
e9ba0d |
{ { 1, 5, 32962, 1, 2, 1, 1, 1, 4}, 9, ASN_INTEGER, { .integer = 0 }},
|
|
Packit |
e9ba0d |
/* lldpXdot1LocProtoVlanSupported */
|
|
Packit |
e9ba0d |
{ { 1, 5, 32962, 1, 2, 2, 1, 2, 3, 47}, 10, ASN_INTEGER, { .integer = 1 }},
|
|
Packit |
e9ba0d |
{ { 1, 5, 32962, 1, 2, 2, 1, 2, 3, 118}, 10, ASN_INTEGER, { .integer = 1 }},
|
|
Packit |
e9ba0d |
/* lldpXdot1LocProtoVlanEnabled */
|
|
Packit |
e9ba0d |
{ { 1, 5, 32962, 1, 2, 2, 1, 3, 3, 47}, 10, ASN_INTEGER, { .integer = 1 }},
|
|
Packit |
e9ba0d |
{ { 1, 5, 32962, 1, 2, 2, 1, 3, 3, 118}, 10, ASN_INTEGER, { .integer = 1 }},
|
|
Packit |
e9ba0d |
/* lldpXdot1LocVlanName */
|
|
Packit |
e9ba0d |
{ { 1, 5, 32962, 1, 2, 3, 1, 2, 3, 47}, 10, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "VLAN #47", .len = 8 }} },
|
|
Packit |
e9ba0d |
{ { 1, 5, 32962, 1, 2, 3, 1, 2, 3, 49}, 10, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "VLAN #49", .len = 8 }} },
|
|
Packit |
e9ba0d |
{ { 1, 5, 32962, 1, 2, 3, 1, 2, 3, 1449}, 10, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "VLAN #1449", .len = 10 }} },
|
|
Packit |
e9ba0d |
/* lldpXdot1LocProtocolId */
|
|
Packit |
e9ba0d |
{ { 1, 5, 32962, 1, 2, 4, 1, 2, 3, 30321}, 10, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "\x88\x8e\x01", .len = 3 } }},
|
|
Packit |
e9ba0d |
{ { 1, 5, 32962, 1, 2, 4, 1, 2, 3, 30515}, 10, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "\x88\xcc", .len = 2 } }},
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
/* lldpXdot1RemPortVlanId */
|
|
Packit |
e9ba0d |
{ { 1, 5, 32962, 1, 3, 1, 1, 1, 0, 3, 1}, 11, ASN_INTEGER, { .integer = 0 }},
|
|
Packit |
e9ba0d |
{ { 1, 5, 32962, 1, 3, 1, 1, 1, 8000, 3, 4}, 11, ASN_INTEGER, { .integer = 0 }},
|
|
Packit |
e9ba0d |
{ { 1, 5, 32962, 1, 3, 1, 1, 1, 10000, 4, 1}, 11, ASN_INTEGER, { .integer = 47 }},
|
|
Packit |
e9ba0d |
/* lldpXdot1RemProtoVlanSupported */
|
|
Packit |
e9ba0d |
{ { 1, 5, 32962, 1, 3, 2, 1, 2, 10000, 4, 1, 47}, 12, ASN_INTEGER, { .integer = 1 }},
|
|
Packit |
e9ba0d |
{ { 1, 5, 32962, 1, 3, 2, 1, 2, 10000, 4, 1, 118}, 12, ASN_INTEGER, { .integer = 1 }},
|
|
Packit |
e9ba0d |
/* lldpXdot1RemProtoVlanEnabled */
|
|
Packit |
e9ba0d |
{ { 1, 5, 32962, 1, 3, 2, 1, 3, 10000, 4, 1, 47}, 12, ASN_INTEGER, { .integer = 1 }},
|
|
Packit |
e9ba0d |
{ { 1, 5, 32962, 1, 3, 2, 1, 3, 10000, 4, 1, 118}, 12, ASN_INTEGER, { .integer = 1 }},
|
|
Packit |
e9ba0d |
/* lldpXdot1RemVlanName */
|
|
Packit |
e9ba0d |
{ { 1, 5, 32962, 1, 3, 3, 1, 2, 10000, 4, 1, 47}, 12, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "VLAN #47", .len = 8 }} },
|
|
Packit |
e9ba0d |
{ { 1, 5, 32962, 1, 3, 3, 1, 2, 10000, 4, 1, 49}, 12, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "VLAN #49", .len = 8 }} },
|
|
Packit |
e9ba0d |
{ { 1, 5, 32962, 1, 3, 3, 1, 2, 10000, 4, 1, 1449}, 12, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "VLAN #1449", .len = 10 }} },
|
|
Packit |
e9ba0d |
/* lldpXdot1RemProtocolId */
|
|
Packit |
e9ba0d |
{ { 1, 5, 32962, 1, 3, 4, 1, 2, 10000, 4, 1, 30321}, 12, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "\x88\x8e\x01", .len = 3 } }},
|
|
Packit |
e9ba0d |
{ { 1, 5, 32962, 1, 3, 4, 1, 2, 10000, 4, 1, 30515}, 12, ASN_OCTET_STR,
|
|
Packit |
e9ba0d |
{ .string = { .octet = "\x88\xcc", .len = 2 } }}
|
|
Packit |
e9ba0d |
#endif
|
|
Packit |
e9ba0d |
};
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
char*
|
|
Packit |
e9ba0d |
tohex(char *str, size_t len)
|
|
Packit |
e9ba0d |
{
|
|
Packit |
e9ba0d |
static char *hex[] = { NULL, NULL };
|
|
Packit |
e9ba0d |
static int which = 0;
|
|
Packit |
e9ba0d |
free(hex[which]); hex[which] = NULL;
|
|
Packit |
e9ba0d |
hex[which] = malloc(len * 3 + 1);
|
|
Packit |
e9ba0d |
fail_unless(hex[which] != NULL, "Not enough memory?");
|
|
Packit |
e9ba0d |
for (size_t i = 0; i < len; i++)
|
|
Packit |
e9ba0d |
snprintf(hex[which] + 3*i, 4, "%02X ", (unsigned char)str[i]);
|
|
Packit |
e9ba0d |
which = 1 - which;
|
|
Packit |
e9ba0d |
return hex[1 - which];
|
|
Packit |
e9ba0d |
}
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
int
|
|
Packit |
e9ba0d |
snmp_is_prefix_of(struct variable8 *vp, struct tree_node *n, char *repr)
|
|
Packit |
e9ba0d |
{
|
|
Packit |
e9ba0d |
if (n->namelen < vp->namelen) return 0;
|
|
Packit |
e9ba0d |
if (memcmp(n->name,
|
|
Packit |
e9ba0d |
vp->name,
|
|
Packit |
e9ba0d |
vp->namelen * sizeof(oid)))
|
|
Packit |
e9ba0d |
return 0;
|
|
Packit |
e9ba0d |
fail_unless(n->type == vp->type, "Inappropriate type for OID %s", repr);
|
|
Packit |
e9ba0d |
return 1;
|
|
Packit |
e9ba0d |
}
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
void
|
|
Packit |
e9ba0d |
snmp_merge(struct variable8 *v1, struct tree_node *n, struct variable *vp,
|
|
Packit |
e9ba0d |
oid *target, size_t *targetlen)
|
|
Packit |
e9ba0d |
{
|
|
Packit |
e9ba0d |
vp->magic = v1->magic;
|
|
Packit |
e9ba0d |
vp->type = v1->type;
|
|
Packit |
e9ba0d |
vp->acl = v1->acl;
|
|
Packit |
e9ba0d |
vp->findVar = v1->findVar;
|
|
Packit |
e9ba0d |
vp->namelen = v1->namelen +
|
|
Packit |
e9ba0d |
sizeof(lldp_oid)/sizeof(oid);
|
|
Packit |
e9ba0d |
memcpy(vp->name, lldp_oid, sizeof(lldp_oid));
|
|
Packit |
e9ba0d |
memcpy(vp->name + sizeof(lldp_oid)/sizeof(oid),
|
|
Packit |
e9ba0d |
v1->name,
|
|
Packit |
e9ba0d |
v1->namelen*sizeof(oid));
|
|
Packit |
e9ba0d |
*targetlen = n->namelen +
|
|
Packit |
e9ba0d |
sizeof(lldp_oid)/sizeof(oid);
|
|
Packit |
e9ba0d |
memcpy(target, lldp_oid, sizeof(lldp_oid));
|
|
Packit |
e9ba0d |
memcpy(target + sizeof(lldp_oid)/sizeof(oid),
|
|
Packit |
e9ba0d |
n->name,
|
|
Packit |
e9ba0d |
n->namelen * sizeof(oid));
|
|
Packit |
e9ba0d |
}
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
void
|
|
Packit |
e9ba0d |
snmp_compare(struct tree_node *n,
|
|
Packit |
e9ba0d |
u_char *result, size_t varlen,
|
|
Packit |
e9ba0d |
oid *target, size_t targetlen, char *repr)
|
|
Packit |
e9ba0d |
{
|
|
Packit |
e9ba0d |
unsigned long int value;
|
|
Packit |
e9ba0d |
fail_unless((targetlen == sizeof(lldp_oid)/sizeof(oid) + n->namelen) &&
|
|
Packit |
e9ba0d |
!memcmp(target, lldp_oid, sizeof(lldp_oid)) &&
|
|
Packit |
e9ba0d |
!memcmp(target + sizeof(lldp_oid)/sizeof(oid),
|
|
Packit |
e9ba0d |
n->name,
|
|
Packit |
e9ba0d |
n->namelen * sizeof(oid)),
|
|
Packit |
e9ba0d |
"Bad OID returned when querying %s: got %s", repr,
|
|
Packit |
e9ba0d |
snmp_oidrepr(target, targetlen));
|
|
Packit |
e9ba0d |
switch (n->type) {
|
|
Packit |
e9ba0d |
case ASN_INTEGER:
|
|
Packit |
e9ba0d |
case ASN_TIMETICKS:
|
|
Packit |
e9ba0d |
case ASN_GAUGE:
|
|
Packit |
e9ba0d |
case ASN_COUNTER:
|
|
Packit |
e9ba0d |
fail_unless(varlen == sizeof(unsigned long int),
|
|
Packit |
e9ba0d |
"Inappropriate length for integer type for OID %s",
|
|
Packit |
e9ba0d |
repr);
|
|
Packit |
e9ba0d |
memcpy(&value, result, sizeof(value));
|
|
Packit |
e9ba0d |
fail_unless(n->value.integer == value,
|
|
Packit |
e9ba0d |
"For OID %s, expected value %u but got %u instead",
|
|
Packit |
e9ba0d |
repr,
|
|
Packit |
e9ba0d |
n->value.integer,
|
|
Packit |
e9ba0d |
value);
|
|
Packit |
e9ba0d |
break;
|
|
Packit |
e9ba0d |
default:
|
|
Packit |
e9ba0d |
fail_unless(((n->value.string.len == varlen) &&
|
|
Packit |
e9ba0d |
!memcmp(n->value.string.octet,
|
|
Packit |
e9ba0d |
result, varlen)),
|
|
Packit |
e9ba0d |
"OID %s: wanted %s, got %s",
|
|
Packit |
e9ba0d |
repr,
|
|
Packit |
e9ba0d |
tohex(n->value.string.octet, n->value.string.len),
|
|
Packit |
e9ba0d |
tohex((char *)result, varlen));
|
|
Packit |
e9ba0d |
}
|
|
Packit |
e9ba0d |
}
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
START_TEST (test_variable_order)
|
|
Packit |
e9ba0d |
{
|
|
Packit |
e9ba0d |
size_t i;
|
|
Packit |
e9ba0d |
for (i = 0; i < agent_lldp_vars_size() - 1; i++) {
|
|
Packit |
e9ba0d |
fail_unless(snmp_oid_compare(agent_lldp_vars[i].name,
|
|
Packit |
e9ba0d |
agent_lldp_vars[i].namelen,
|
|
Packit |
e9ba0d |
agent_lldp_vars[i+1].name,
|
|
Packit |
e9ba0d |
agent_lldp_vars[i+1].namelen) < 0,
|
|
Packit |
e9ba0d |
"Registered OID are out of orders (see %s and next one)",
|
|
Packit |
e9ba0d |
snmp_oidrepr(agent_lldp_vars[i].name,
|
|
Packit |
e9ba0d |
agent_lldp_vars[i].namelen));
|
|
Packit |
e9ba0d |
}
|
|
Packit |
e9ba0d |
}
|
|
Packit |
e9ba0d |
END_TEST
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
START_TEST (test_get)
|
|
Packit |
e9ba0d |
{
|
|
Packit |
e9ba0d |
size_t j;
|
|
Packit |
e9ba0d |
for (j = 0;
|
|
Packit |
e9ba0d |
j < sizeof(snmp_tree)/sizeof(struct tree_node);
|
|
Packit |
e9ba0d |
j++) {
|
|
Packit |
e9ba0d |
size_t i;
|
|
Packit |
e9ba0d |
int found = 0;
|
|
Packit |
e9ba0d |
struct variable vp;
|
|
Packit |
e9ba0d |
oid target[MAX_OID_LEN];
|
|
Packit |
e9ba0d |
size_t targetlen;
|
|
Packit |
e9ba0d |
size_t varlen;
|
|
Packit |
e9ba0d |
u_char *result;
|
|
Packit |
e9ba0d |
WriteMethod *wmethod;
|
|
Packit |
e9ba0d |
char *repr = snmp_oidrepr(snmp_tree[j].name,
|
|
Packit |
e9ba0d |
snmp_tree[j].namelen);
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
for (i = 0; i < agent_lldp_vars_size(); i++) {
|
|
Packit |
e9ba0d |
/* Search for the appropriate prefix. */
|
|
Packit |
e9ba0d |
if (!snmp_is_prefix_of(&agent_lldp_vars[i], &snmp_tree[j],
|
|
Packit |
e9ba0d |
repr)) continue;
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
/* We have our prefix. Fill out the vp struct
|
|
Packit |
e9ba0d |
correctly. We need to complete OID with
|
|
Packit |
e9ba0d |
LLDP prefix. */
|
|
Packit |
e9ba0d |
snmp_merge(&agent_lldp_vars[i], &snmp_tree[j], &vp, target, &targetlen);
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
/* Invoke the function */
|
|
Packit |
e9ba0d |
result = vp.findVar(&vp, target, &targetlen, 1, &varlen, &wmethod);
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
/* Check the result */
|
|
Packit |
e9ba0d |
fail_unless(result != NULL,
|
|
Packit |
e9ba0d |
"No result when querying %s", repr);
|
|
Packit |
e9ba0d |
snmp_compare(&snmp_tree[j], result, varlen, target, targetlen, repr);
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
found = 1;
|
|
Packit |
e9ba0d |
break;
|
|
Packit |
e9ba0d |
}
|
|
Packit |
e9ba0d |
if (!found)
|
|
Packit |
e9ba0d |
fail("OID %s not found", repr);
|
|
Packit |
e9ba0d |
}
|
|
Packit |
e9ba0d |
}
|
|
Packit |
e9ba0d |
END_TEST
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
START_TEST (test_getnext)
|
|
Packit |
e9ba0d |
{
|
|
Packit |
e9ba0d |
size_t j;
|
|
Packit |
e9ba0d |
size_t end = sizeof(snmp_tree)/sizeof(struct tree_node);
|
|
Packit |
e9ba0d |
for (j = 0;
|
|
Packit |
e9ba0d |
j < end;
|
|
Packit |
e9ba0d |
j++) {
|
|
Packit |
e9ba0d |
size_t i;
|
|
Packit |
e9ba0d |
struct variable vp;
|
|
Packit |
e9ba0d |
oid target[MAX_OID_LEN];
|
|
Packit |
e9ba0d |
size_t targetlen;
|
|
Packit |
e9ba0d |
size_t varlen;
|
|
Packit |
e9ba0d |
u_char *result = NULL;
|
|
Packit |
e9ba0d |
WriteMethod *wmethod;
|
|
Packit |
e9ba0d |
char *repr = snmp_oidrepr(snmp_tree[j].name,
|
|
Packit |
e9ba0d |
snmp_tree[j].namelen);
|
|
Packit |
e9ba0d |
for (i = 0; i < agent_lldp_vars_size(); i++) {
|
|
Packit |
e9ba0d |
snmp_merge(&agent_lldp_vars[i], &snmp_tree[j], &vp, target, &targetlen);
|
|
Packit |
e9ba0d |
result = vp.findVar(&vp, target, &targetlen, 0, &varlen, &wmethod);
|
|
Packit |
e9ba0d |
if (result) /* Check next! */
|
|
Packit |
e9ba0d |
break;
|
|
Packit |
e9ba0d |
}
|
|
Packit |
e9ba0d |
if (!result) {
|
|
Packit |
e9ba0d |
fail_unless(j == end - 1,
|
|
Packit |
e9ba0d |
"No next result found for %s", repr);
|
|
Packit |
e9ba0d |
return;
|
|
Packit |
e9ba0d |
}
|
|
Packit |
e9ba0d |
fail_unless(j < end - 1,
|
|
Packit |
e9ba0d |
"More results after %s", repr);
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
/* For unknown reasons, snmp_compare can be executed
|
|
Packit |
e9ba0d |
even when the above test fails... */
|
|
Packit |
e9ba0d |
if (j < end - 1)
|
|
Packit |
e9ba0d |
snmp_compare(&snmp_tree[j+1], result, varlen, target, targetlen, repr);
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
}
|
|
Packit |
e9ba0d |
}
|
|
Packit |
e9ba0d |
END_TEST
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
Suite *
|
|
Packit |
e9ba0d |
snmp_suite(void)
|
|
Packit |
e9ba0d |
{
|
|
Packit |
e9ba0d |
Suite *s = suite_create("SNMP");
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
TCase *tc_snmp = tcase_create("SNMP");
|
|
Packit |
e9ba0d |
tcase_add_checked_fixture(tc_snmp, snmp_config, NULL);
|
|
Packit |
e9ba0d |
tcase_add_test(tc_snmp, test_variable_order);
|
|
Packit |
e9ba0d |
tcase_add_test(tc_snmp, test_get);
|
|
Packit |
e9ba0d |
tcase_add_test(tc_snmp, test_getnext);
|
|
Packit |
e9ba0d |
suite_add_tcase(s, tc_snmp);
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
return s;
|
|
Packit |
e9ba0d |
}
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
int
|
|
Packit |
e9ba0d |
main()
|
|
Packit |
e9ba0d |
{
|
|
Packit |
e9ba0d |
int number_failed;
|
|
Packit |
e9ba0d |
Suite *s = snmp_suite();
|
|
Packit |
e9ba0d |
SRunner *sr = srunner_create(s);
|
|
Packit |
e9ba0d |
srunner_run_all(sr, CK_ENV);
|
|
Packit |
e9ba0d |
number_failed = srunner_ntests_failed(sr);
|
|
Packit |
e9ba0d |
srunner_free(sr);
|
|
Packit |
e9ba0d |
return (number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
|
|
Packit |
e9ba0d |
}
|