Compare commits

...

88 Commits
135 ... 3.83

Author SHA1 Message Date
Oliver Gorwits
ef2500dcc7 release 3.83 2022-07-04 16:33:01 +01:00
Oliver Gorwits
70379aaf6e add HW Group STE temp monitor class 2022-07-04 16:29:39 +01:00
Oliver Gorwits
4d471b38fb release 3.82 2022-03-16 17:32:41 +00:00
Alexander Hartmaier
895b8ed373 rename parse_cisco_bgp_peer2_peer2entry_index to parse_cisco_bgp_peer2_entry_index 2022-03-16 09:29:10 +01:00
Alexander Hartmaier
efb32ac10d add Cisco BGP MIB support to all Cisco Layer 3 devices (#451)
This also adds a munge_inetaddress function which can be used to parse a 
binary IP address as defined by the SNMP InetAddress type.
2022-03-14 21:37:27 +00:00
Oliver Gorwits
7f3028cbdb more tolerant of weird subname calls in autoload 2022-03-02 22:11:56 +00:00
Oliver Gorwits
1c1dbe6464 remove custom CPAN::Uploader 2021-11-14 19:37:12 +00:00
Oliver Gorwits
b98b68c718 avoid error on macOS(?) with netmask of 64 or 128 on v4 addr 2021-10-23 22:38:33 +01:00
Oliver Gorwits
f55edced32 release 3.81 2021-10-07 17:16:42 +01:00
Oliver Gorwits
0d7b482edd only substr if layers returns 2021-10-07 17:09:50 +01:00
Oliver Gorwits
933766120f fix sprintf to printf 2021-10-07 16:52:33 +01:00
nick n
fbfa2ec154 i/if_ignore cleanup (#377)
* does not have an i_ignore function, don't mention it in the docs

* these interfaces don't even exist on oneaccess

remove i_ignore, mark tests as complete now

* don't see a reason for a function, so remove it:

sub i_ignore {return;}
2021-10-07 13:19:32 +01:00
Oliver Gorwits
0e75c44cb8 #401 add DLink layers always 2+3 2021-10-07 12:01:02 +01:00
Oliver Gorwits
bce84023ca #374 undefined error from H3C class 2021-10-07 11:41:38 +01:00
Oliver Gorwits
a0cd7c57e2 #378 fix several uninitialized vars 2021-10-07 10:19:28 +01:00
Oliver Gorwits
d535cea7db #394 Recognise hyphenated cumulus version strings 2021-10-07 09:15:40 +01:00
Oliver Gorwits
21f3b2b199 #400 change IPv6 decode warning to be debug-only 2021-10-07 09:01:45 +01:00
nick n
9f12bcf676 trapeze and nws deep recursion fix (#443)
* trapeze serial deep recursion

* NWSS2300 has the same problem

* same workaround as trapeze

* return empty if not found
2021-10-07 08:52:45 +01:00
Oliver Gorwits
dd1688a587 Update release.yml 2021-09-27 10:14:51 +01:00
Oliver Gorwits
8c50ef81af Update test_and_publish.yml 2021-09-27 10:14:38 +01:00
Oliver Gorwits
8b753c83af Update release.yml 2021-09-27 10:09:09 +01:00
Oliver Gorwits
7e3300552d if: github.repository == ‘netdisco/snmp-info’ 2021-09-27 10:08:54 +01:00
Oliver Gorwits
a3be7337bb if: github.repository == ‘netdisco/netdisco’ 2021-09-27 10:08:04 +01:00
Oliver Gorwits
1bf87a4cb2 release 3.80 2021-09-22 22:40:21 +01:00
Oliver Gorwits
d4269ad79b fix test for Layer3::Cisco.pm 2021-09-22 22:33:59 +01:00
Oliver Gorwits
807cd20da0 release 3.79 2021-09-22 22:14:43 +01:00
Oliver Gorwits
23a247c048 change default class for Cisco from Layer3::Cisco to Layer3::CiscoSwitch 2021-09-22 22:13:38 +01:00
Ambroise
2b3674dcae Add support for Riverbed SteelheadEx and Steelfusion (#438)
* Retrieve Serial Number and device type for CheckPoint devices at right place in MIB

* Add support for SteelheadEx and Steelfusion

* Update Info.pm

* fix tests

Co-authored-by: Oliver Gorwits <ollyg@users.noreply.github.com>
Co-authored-by: Oliver Gorwits <oliver@cpan.org>
2021-09-21 15:51:10 +01:00
Oliver Gorwits
86e120ea5f do not squawk to irc on pull_request test failure 2021-09-21 15:50:37 +01:00
Oliver Gorwits
48725546a2 fix error in pull_request event spec 2021-09-21 09:07:50 +01:00
Florian Schlichting
4731bbfe2f Fix typo in Whiterabbit.pm (#439) 2021-09-21 05:17:27 +02:00
nick n
6dc369efbc add link aggregation for fortios (#437)
* lag support for fortigate

* a few more tests

* mention fortinet lag
2021-09-12 21:01:11 +02:00
Oliver Gorwits
afc8eefaf1 release 3.78 2021-09-09 06:15:52 +01:00
Oliver Gorwits
d8a532febe Fix undefined value error in Bridge.pm i_vlan 2021-09-08 20:23:13 +01:00
Oliver Gorwits
fe39d38897 release 3.77 2021-09-04 06:28:03 +01:00
Oliver Gorwits
44cb254ee0 release 3.76 2021-09-03 21:10:54 +01:00
Oliver Gorwits
72d6d87bf9 working around flaky ruckus kit 2021-09-03 21:07:52 +01:00
Oliver Gorwits
81b8082fd4 release 3.75 2021-09-02 20:41:43 +01:00
Oliver Gorwits
948d96ed28 remove weird char breaking test 2021-09-02 19:57:13 +01:00
Oliver Gorwits
765a6417b2 set_i_vlan support for Ruckus/Brocade/Foundry 2021-09-02 19:04:33 +01:00
Oliver Gorwits
5a895a09ca release 3.74 2021-08-24 12:29:56 +01:00
Christoph Handel
2773594274 CH: patch H3C broken node-vlan mapping (#416)
* CH: patch H3C broken node-vlan mapping

see https://github.com/netdisco/snmp-info/issues/218

--+ qb_fw_vlan

qb_fw_vlan is called to figure out in which vlan a mac is located.

fetch qb_fw_port. This is a hash

  fdb_id.mac => fdb_port

for each key split of fdb_id

try to look it up in qb_fdb_ids to translate it to vlan
otherwise use it directly as vlan.

--+ qb_fw_port

qb_fw_port fetchs snmp dot1qTpFdbPort, oid 1.3.6.1.2.1.17.7.1.2.2.1.2

This snmp table returns

  fdb_id.mac => fdb_port

as an example data fetched from a HP switch (Layer2::HP)

  SNMPv2-SMI::mib-2.17.7.1.2.2.1.2.3.52.20.95.80.231.59 = INTEGER: 9

fdb_id: 3
mac: 34:14:5f:50:e7:3b
fdb_port: 9
and an expample for a H3C (Layer3::H3C)

  SNMPv2-SMI::mib-2.17.7.1.2.2.1.2.1.0.17.17.117.83.217 = INTEGER: 891

fdb_id: 1
mac: 0:11:11:75:53:d9
fdb_port: 891

snmp looks got. Verified with netdisco

/opt/netdisco/bin/netdisco-do show -d <SWITCH> -e Layer3::H3C::qb_fw_port
/opt/netdisco/bin/netdisco-do show -d <SWITCH> -e Layer2::HP::qb_fw_port

result looks good.

--+ qb_fdb_index

qb_fdb_index fetches snmp dot1qVlanFdbId which is oid 1.3.6.1.2.1.17.7.1.4.2.1.3

This snmp table returns

  timestamp.vlan => fdb_id

netdisco will strip the timestamp and build a hash

  fdb_id => vlan

for a HP switch i get snmp data

  SNMPv2-SMI::mib-2.17.7.1.4.2.1.3.0.64 = Gauge32: 6

vlan: 64
fdb_id: 6
for a H3C i get

  SNMPv2-SMI::mib-2.17.7.1.4.2.1.3.3330.64 = Gauge32: 1

vlan: 64
fdb_id: 1

and there are the issues.

not all vlans are listed
every line has fdb_id 1
as in all H3C switches i checked, the fdb_id is equal to the vlan i patched out
qb_fdb_index to return an empty hash.

* CH: H3C fix pod caverage test

Co-authored-by: Christoph Handel <c.handel@gsi.de>
2021-08-23 22:27:42 +01:00
Oliver Gorwits
846bb46e33 fix version 2021-08-23 16:22:45 +01:00
Oliver Gorwits
33d69e8dea Merge branch 'master' of github.com:netdisco/snmp-info 2021-08-23 16:20:44 +01:00
Oliver Gorwits
bbf5a5a570 also test on PR 2021-08-23 16:20:33 +01:00
Christoph Handel
651169f726 Whiterabbit (#417)
* CH: add white rabbit

* CH: .

* CH: better version field

* CH: whiterabbit fix version and pod documentation

* fix mib links

and a few wihtespace cleanups

* map enterprises.96

map enterprises.96 to whiterabbit.

this is the id of cern, only layer3::whiterabbit uses it

* removed inherited modules

remove modules that get pulled in via snmp::info::layer3
use SNMP::Info::LLDP;
use SNMP::Info::Bridge;

remove module that doesn't seems to be used
use Socket;

Co-authored-by: Christoph Handel <c.handel@gsi.de>
Co-authored-by: nick n <39005454+inphobia@users.noreply.github.com>
2021-08-23 16:13:28 +01:00
Jeroen van Ingen Schenau
9b8dc0916c Support PVID (vlan) change on Arista (#432) 2021-08-23 16:08:17 +01:00
Oliver Gorwits
f7ca5dfde2 github action: fix version format 2021-08-23 16:02:42 +01:00
Oliver Gorwits
80b88fbbb4 github action: update for latest ways from netdisco 2021-08-23 15:58:40 +01:00
Oliver Gorwits
98281e7df6 Update runtests.yml 2021-08-19 10:45:04 +01:00
Oliver Gorwits
470aca5c68 annoying typo 2021-08-18 20:35:13 +01:00
Oliver Gorwits
8f0183eeb8 add cpan upload to release 2021-08-18 20:30:23 +01:00
Oliver Gorwits
b5d88076a8 add release for SNMP::Info why not 2021-08-18 08:33:45 +01:00
Oliver Gorwits
56ceb86f97 Delete .travis.yml.disabled 2021-08-17 13:42:24 +01:00
Oliver Gorwits
abbc3d4a63 Update runtests.yml 2021-08-17 12:23:18 +01:00
Oliver Gorwits
d0609781e8 Update runtests.yml 2021-08-17 12:20:11 +01:00
Oliver Gorwits
2ff3021eae Update runtests.yml 2021-08-17 12:03:17 +01:00
Oliver Gorwits
31c286ca57 add github action to replace travis testing 2021-08-17 11:59:42 +01:00
nick n
dd982373a7 fix tests (#428)
* add arubacx, replace unicode backtick

* fix pod

* remove undef, is implicit in scalar context. fixes tests

* mention IEEE802_Bridge
2021-07-06 21:49:50 +02:00
Oliver Gorwits
42d3df0e9c release 3.73 2021-06-28 15:13:17 +01:00
Oliver Gorwits
774339e98f release 3.72 2021-06-28 08:38:06 +01:00
nick n
b0c1c7e2a7 CiscoPower, not Power 2021-06-27 07:08:49 +02:00
nick n
36f882d916 add bridge again
should fix netdisco#708
2021-06-18 04:36:41 +02:00
Jeroen van Ingen Schenau
b1225583cd Merge pull request #422 from netdisco/jvi-aoscx
Aruba CX support
2021-06-17 10:14:45 +02:00
nick n
b491a6921c remove non breaking space (#424)
only changed in comments.
2021-06-17 02:57:15 +02:00
nick n
63fedc6a41 mention ieee802_bridge in info.pm (#425)
* add ieee802_bridge to info.pm, fixes tests

* aerohive comes before airespace
2021-06-17 02:56:29 +02:00
nick n
aefd0364fb move to libera chat 2021-06-15 07:57:19 +02:00
Jeroen van Ingen
3ae7073198 Small Bridge.pm fix
This change will make sure that the internal _vlan_hoa() function will strip
any additional index levels that may be present in input data. Not only applies
to Q-BRIDGE-MIB tables with a TimeFilter index, but also to tables where part
of the data comes from IEEE8021-Q-BRIDGE-MIB with both TimeFilter and PBB ID.
2021-06-11 15:15:01 +02:00
Jeroen van Ingen
9c306812f9 Add support for Aruba CX switches 2021-06-11 15:15:01 +02:00
Jeroen van Ingen
3790a2fcb2 Add IEEE802_Bridge module
Initial version of module to fetch data from IEEE8021-Q-BRIDGE-MIB
2021-06-11 13:21:39 +02:00
nick n
0b86645a63 aerohive version support higher as 9 (#421)
* allow aerohive hiveos version numbers above 9
* aerohive is now owned by extreme
2021-06-04 18:38:13 +02:00
nick n
fa206be639 libera irc 2021-05-28 02:21:31 +02:00
nick n
350ee49293 libera irc 2021-05-28 02:21:05 +02:00
nick n
210d4d48a7 libera irc 2021-05-28 02:16:08 +02:00
nick n
ad8224bcec aerohive, not aironet
typos
2021-05-12 05:51:02 +02:00
nick n
9943dff277 mention #403 2021-04-29 09:20:51 +02:00
nick n
bf0b7d989f dont flip between dell and aruba
should fix #403
2021-04-29 09:18:27 +02:00
nick n
6ec90b3b9b sort a few things 2021-04-29 07:57:20 +02:00
nick n
2a2214a0ac ignore .vscode directory (#418) 2021-03-13 17:36:12 +01:00
Oliver Gorwits
31b231804f release 3.71 2020-11-27 09:46:24 +00:00
Jeroen van Ingen Schenau
a4c66663c1 Don't add AUTOLOAD generated methods in symbol table (#409) (#410)
When a method is resolved via AUTOLOAD (eg for objects defined in %FUNCS),
adding the method to the symbol table leads to skipping AUTOLOAD on subsequent
calls to the method. The method table however is global to the interpreter,
so even when a new SNMP::Info instance is created for a different device, all
methods created by a previous device are just "carried over" to the new one
if they are put into the symbol table. This breaks a method like "v_name",
which may resolve differently in different device classes, in the use case
where devices from different classes are polled one after another (even if
new SNMP::Info object instances are used every time).
2020-11-18 11:36:13 +00:00
nick n
b9e054093a a few things that got imported or fixed 2020-11-15 21:19:24 +01:00
nick n
1c7320ce1e some doc cleanup in ubiquiti (#411) 2020-11-15 20:04:41 +01:00
LBegnaud
50841b5109 UBNT adjustments - Add ER-12 (#398)
merging this for now so we don't forget about this, but ubiquiti seems to have expanded into switches & routers as well.
so in the future this class will either needs to be expanded or split into different ones (wifi/switch/router).


* Clean up EdgeOS and EdgeSwitch verion reporting

* Fixes EdgeOS hotfix versioning

* Also clean up AirOS firmware

* Support ER-12

* lowercase vendorname
2020-11-15 18:35:49 +01:00
nick n
babbbb4e57 clean scalance
a few typos
info::bridge & info::lldp get pulled in via info::layer3
use Socket could be dropped in favor of resolve_desthost(), but needs testing.

(not tested waiting for what travis says)
2020-11-14 20:13:47 +01:00
nick n
e2544129bc nxos6 lldp fixes 2020-10-28 11:56:03 +01:00
nick n
39b5b3af9f lldp fix for nxos6 #372 (#375)
* first part of fix for #372

makes lldp stop using lldpLocPortDesc directly but maps it to a function

start framework to allow nexus.pm to overwrite that function for nx-os6

* second part of fix for #372

make nx-os 6 return lldpLocPortId for lldp_lport_desc

* munge_null and whitespace nits
2020-10-28 11:54:25 +01:00
Jeroen van Ingen Schenau
a263f54744 Add initial support for Teltonika RUT9xx routers (#386)
Note that Teltonika routers run the net-snmp agent and can present the net-snmp enterprise ID; if so, configure the following through the router CLI to be identified as Teltonika and to be picked up by this device class:

uci set snmpd.@system[0].sysObjectID=.1.3.6.1.4.1.48690
uci commit
ubus call uci commit '{"config":"snmpd"}'
2020-10-28 09:00:18 +01:00
162 changed files with 3271 additions and 682 deletions

19
.github/workflows/release.yml vendored Normal file
View File

@@ -0,0 +1,19 @@
name: GitHub Release on Tag
on:
push:
tags:
- '[0-9].[0-9][0-9]'
jobs:
release_snmp_info:
if: github.repository == 'netdisco/snmp-info'
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Get the Tag
id: get_tag
run: echo ::set-output name=TAGVALUE::${GITHUB_REF#refs/tags/}
- name: Release
uses: softprops/action-gh-release@v1
with:
name: SNMP::Info ${{ steps.get_tag.outputs.TAGVALUE }}

122
.github/workflows/test_and_publish.yml vendored Normal file
View File

@@ -0,0 +1,122 @@
name: Test and Publish SNMP::Info
on:
workflow_dispatch:
inputs:
success_irc_squawk:
description: 'Squawk to IRC on successful tests'
required: false
default: false
debug_test_enabled:
description: 'With build and test debug'
required: false
default: false
push:
branches:
- master
tags:
- '[0-9].[0-9][0-9]'
pull_request:
types: [opened, synchronize, reopened]
jobs:
test_snmp_info:
name: Test and CPAN Upload
if: github.repository == 'netdisco/snmp-info'
runs-on: ubuntu-latest
container:
image: 'netdisco/netdisco:latest-do'
options: '--user root --entrypoint /bin/ash'
volumes:
- '/home/runner/work:/github/workspace'
defaults:
run:
working-directory: /github/workspace/snmp-info/snmp-info
steps:
- name: Get the Tag or Branch
run: echo "GH_REF_SHORT=$(echo ${GITHUB_REF##*/})" >> $GITHUB_ENV
- name: Install packages
run: apk add openssh xz tmux bash curl sudo gcc make musl-dev perl-dev unzip jq
- name: Install fake apt-get
run: echo 'if [ "$1" == "update" ]; then exec apk update; else exec apk add openssh xz; fi' > /usr/local/bin/apt-get && chmod +x /usr/local/bin/apt-get
- name: Check out latest code
uses: actions/checkout@v1
- name: Fix owner of checkout
run: chown -R netdisco:netdisco /github/workspace/snmp-info/snmp-info
- name: Install Perl deps
run: |
sudo -u netdisco /home/netdisco/bin/localenv cpanm --notest Hook::LexWrap Test::Class::Most Test::Distribution Test::MockObject::Extends PPI Class::ISA Module::Info File::Slurp Test::Perl::Critic Test::Spelling CPAN::Uploader
- name: Run Tests
id: build_and_run_tests
run: |
sudo -u netdisco /home/netdisco/bin/localenv perl ./Build.PL
sudo -u netdisco /home/netdisco/bin/localenv ./Build test --test_files t/ --test_files xt/
continue-on-error: true
- name: IRC test failure notification
if: (steps.build_and_run_tests.outcome == 'failure') && (github.event_name != 'workflow_dispatch') && (github.event_name != 'pull_request')
uses: Gottox/irc-message-action@v2
with:
channel: '#netdisco'
nickname: github-actions
message: |-
🤖 ${{ github.actor }} pushed to ${{ env.GH_REF_SHORT }}: https://github.com/${{ github.repository }}/commit/${{ github.sha }}
😭 TESTS have FAILED! 👀 https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}
- name: IRC test success notification
if: (steps.build_and_run_tests.outcome == 'success') && github.event.inputs.success_irc_squawk
uses: Gottox/irc-message-action@v2
with:
channel: '#netdisco'
nickname: github-actions
message: |-
🤖 ${{ github.actor }} pushed to ${{ env.GH_REF_SHORT }}: https://github.com/${{ github.repository }}/commit/${{ github.sha }} (tests PASSED 🎉)
- name: Make release
if: steps.build_and_run_tests.outcome == 'success'
run: |
sudo -u netdisco /home/netdisco/bin/localenv rm ./MANIFEST
sudo -u netdisco /home/netdisco/bin/localenv ./Build manifest
sudo -u netdisco /home/netdisco/bin/localenv ./Build distmeta
sudo -u netdisco /home/netdisco/bin/localenv ./Build dist
- name: Upload to CPAN
id: upload_to_cpan
if: success() && startsWith(github.ref, 'refs/tags/')
env:
PAUSE_USERNAME: ${{ secrets.PAUSE_USERNAME }}
PAUSE_PASSWORD: ${{ secrets.PAUSE_PASSWORD }}
run: |
bash -c 'RELEASENAME=(SNMP-Info-*.tar.gz) && ! curl -LI --fail https://cpan.metacpan.org/authors/id/O/OL/OLIVER/${RELEASENAME}'
sudo -u netdisco /home/netdisco/bin/localenv cpan-upload -u '${{ env.PAUSE_USERNAME }}' -p '${{ env.PAUSE_PASSWORD }}' SNMP-Info-*.tar.gz
continue-on-error: true
- name: IRC upload failure notification
if: steps.upload_to_cpan.outcome == 'failure'
uses: Gottox/irc-message-action@v2
with:
channel: '#netdisco'
nickname: github-actions
message: |-
🤖 Failed to upload SNMP::Info release ${{ env.GH_REF_SHORT }} to CPAN! 😭
👀 https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}
- name: IRC upload success notification
if: steps.upload_to_cpan.outcome == 'success'
uses: Gottox/irc-message-action@v2
with:
channel: '#netdisco'
nickname: github-actions
message: |-
🤖 Uploaded SNMP::Info release ${{ env.GH_REF_SHORT }} to CPAN 🎉
- name: Setup tmate session
uses: mxschmitt/action-tmate@v3
if: always() && github.event.inputs.debug_test_enabled
with:
sudo: true
- name: Preserve status from tests
if: always() && (steps.build_and_run_tests.outcome == 'failure')
run: exit 1

1
.gitignore vendored
View File

@@ -11,3 +11,4 @@ _build
blib
cover_db
.idea
.vscode

View File

@@ -1,39 +0,0 @@
language: perl
perl:
- "5.30"
- "5.10"
os: linux
dist: trusty
addons:
apt:
packages:
- jq
- libsnmp-dev
branches:
only:
- /^3\.\d{2}$/
- 'master'
before_install:
- mkdir ~/netdisco-mibs
- cd ~/netdisco-mibs
install:
- curl -sL https://api.github.com/repos/netdisco/netdisco-mibs/releases/latest | jq -r '.tarball_url' | xargs -n1 curl -sL | tar --strip-components=1 -zxf -
- cpanm --quiet --notest PkgConfig Test::CChecker Alien::zlib::Static Alien::OpenSSL::Static Alien::SNMP
before_script:
- 'cd ${TRAVIS_BUILD_DIR}'
script:
- >
perl Build.PL &&
PERL_MM_USE_DEFAULT=1 ./Build installdeps --cpan_client 'cpanm --quiet --notest' &&
./Build test --test_files t/ --test_files xt/
notifications:
irc:
on_success: change
on_failure: change
channels:
- 'chat.freenode.net#netdisco'
# email:
# on_success: always
# on_failure: always
# recipients:
# - 'snmp-info-cvs@lists.sourceforge.net'

View File

@@ -6,13 +6,13 @@ Module::Build->new(
module_name => 'SNMP::Info',
license => 'bsd',
dist_author => 'Eric A. Miller <emiller@cpan.org>',
# dynamic_config => 1,
# dynamic_config => 1,
create_readme => 1,
configure_requires => {
'Module::Build' => '0.42',
},
# build_requires => {
# },
# build_requires => {
# },
requires => {
'SNMP' => '0',
'Math::BigInt' => '0',
@@ -39,16 +39,16 @@ Module::Build->new(
'Module::Find' => '0',
'Hook::LexWrap' => '0',
},
# script_files => [
# ],
# share_dir => 'share',
# script_files => [
# ],
# share_dir => 'share',
meta_merge => {
resources => {
homepage => 'http://netdisco.org/',
bugtracker => 'https://github.com/netdisco/snmp-info/issues',
repository => 'https://github.com/netdisco/snmp-info',
MailingList => 'https://lists.sourceforge.net/lists/listinfo/snmp-info-users',
IRC => 'irc://irc.freenode.org/#netdisco',
IRC => 'irc://irc.libera.chat/#netdisco',
},
},
)->create_build_script;

92
Changes
View File

@@ -1,3 +1,95 @@
Version 3.82 (2022-03-16)
[NEW FEATURES]
* add Cisco BGP MIB support to all Cisco Layer 3 devices
Version 3.81 (2021-10-07)
[ENHANCEMENTS]
* #400 change IPv6 decode warning to be debug-only
* #394 Recognise hyphenated cumulus version strings
* #401 add DLink layers always 2+3
* #377 i/if_ignore cleanup
[BUG FIXES]
* #443 trapeze and nws deep recursion fix
* #378 fix several uninitialized vars
* #374 undefined error from H3C class
Version 3.80 (2021-09-22)
[NEW FEATURES]
* layer3::fortinet now supports link aggregation mapping
* Add support for Riverbed SteelheadEx and Steelfusion (#438)
[ENHANCEMENTS]
* change default class for Cisco from Layer3::Cisco to Layer3::CiscoSwitch
[BUG FIXES]
* Fix typo in Whiterabbit.pm (#439)
Version 3.78 (2021-09-08)
[BUG FIXES]
* Fix undefined value error in Bridge.pm i_vlan
Version 3.77 (2021-09-04)
[ENHANCEMENTS]
* set_i_vlan support for Ruckus/Brocade/Foundry
Version 3.74 (2021-08-24)
[NEW FEATURES]
* Support changing PVID on Arista switches (#429)
* Support for Whiterabbit devices
[ENHANCEMENTS]
* Patch H3C broken node-vlan mapping
Version 3.73 (2021-06-28)
[BUG FIXES]
* fix packaging error
Version 3.72 (2021-06-28)
[NEW FEATURES]
* Support for Aruba CX switches
* IEEE802_Bridge module
[BUG FIXES]
* #403 don't use layer3::dell for layer3::aruba devices
* layer2::aerohive supports version numbers above 9
Version 3.71 (2020-11-27)
[NEW FEATURES]
* #386 Teltonika RUT9XX support (jeroenvis)
[ENHANCEMENTS]
* #398, 411 more ubiquiti cleanup and support for er-12 (lbegnaud & inphobia)
[BUG FIXES]
* #409, 410 Don't add AUTOLOAD generated methods in symbol table
* #372, 375 fix lldp on nx-os6 (inphobia)
Version 3.70 (2019-10-15)
[NEW FEATURES]

View File

@@ -17,6 +17,7 @@ lib/SNMP/Info/AMAP.pm
lib/SNMP/Info/Bridge.pm
lib/SNMP/Info/CDP.pm
lib/SNMP/Info/CiscoAgg.pm
lib/SNMP/Info/CiscoBGP.pm
lib/SNMP/Info/CiscoConfig.pm
lib/SNMP/Info/CiscoPortSecurity.pm
lib/SNMP/Info/CiscoPower.pm
@@ -32,6 +33,7 @@ lib/SNMP/Info/EDP.pm
lib/SNMP/Info/Entity.pm
lib/SNMP/Info/EtherLike.pm
lib/SNMP/Info/FDP.pm
lib/SNMP/Info/IEEE802_Bridge.pm
lib/SNMP/Info/IEEE802dot11.pm
lib/SNMP/Info/IEEE802dot3ad.pm
lib/SNMP/Info/IPv6.pm
@@ -78,6 +80,7 @@ lib/SNMP/Info/Layer3/AlteonAD.pm
lib/SNMP/Info/Layer3/Altiga.pm
lib/SNMP/Info/Layer3/Arista.pm
lib/SNMP/Info/Layer3/Aruba.pm
lib/SNMP/Info/Layer3/ArubaCX.pm
lib/SNMP/Info/Layer3/BayRS.pm
lib/SNMP/Info/Layer3/BlueCoatSG.pm
lib/SNMP/Info/Layer3/C3550.pm
@@ -123,17 +126,22 @@ lib/SNMP/Info/Layer3/Pica8.pm
lib/SNMP/Info/Layer3/Redlion.pm
lib/SNMP/Info/Layer3/Scalance.pm
lib/SNMP/Info/Layer3/SonicWALL.pm
lib/SNMP/Info/Layer3/Steelfusion.pm
lib/SNMP/Info/Layer3/Steelhead.pm
lib/SNMP/Info/Layer3/SteelheadEx.pm
lib/SNMP/Info/Layer3/Sun.pm
lib/SNMP/Info/Layer3/Tasman.pm
lib/SNMP/Info/Layer3/Teltonika.pm
lib/SNMP/Info/Layer3/Timetra.pm
lib/SNMP/Info/Layer3/VMware.pm
lib/SNMP/Info/Layer3/VyOS.pm
lib/SNMP/Info/Layer3/Whiterabbit.pm
lib/SNMP/Info/Layer7.pm
lib/SNMP/Info/Layer7/APC.pm
lib/SNMP/Info/Layer7/Arbor.pm
lib/SNMP/Info/Layer7/CiscoIPS.pm
lib/SNMP/Info/Layer7/Gigamon.pm
lib/SNMP/Info/Layer7/HWGroup.pm
lib/SNMP/Info/Layer7/Liebert.pm
lib/SNMP/Info/Layer7/Neoteris.pm
lib/SNMP/Info/Layer7/Netscaler.pm
@@ -274,6 +282,7 @@ xt/lib/Test/SNMP/Info/Layer3/SonicWALL.pm
xt/lib/Test/SNMP/Info/Layer3/Steelhead.pm
xt/lib/Test/SNMP/Info/Layer3/Sun.pm
xt/lib/Test/SNMP/Info/Layer3/Tasman.pm
xt/lib/Test/SNMP/Info/Layer3/Teltonika.pm
xt/lib/Test/SNMP/Info/Layer3/Timetra.pm
xt/lib/Test/SNMP/Info/Layer3/VMware.pm
xt/lib/Test/SNMP/Info/Layer3/VyOS.pm

310
META.json
View File

@@ -4,7 +4,7 @@
"Eric A. Miller <emiller@cpan.org>"
],
"dynamic_config" : 1,
"generated_by" : "Module::Build version 0.4224",
"generated_by" : "Module::Build version 0.4231",
"license" : [
"bsd"
],
@@ -53,543 +53,575 @@
"provides" : {
"SNMP::Info" : {
"file" : "lib/SNMP/Info.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::AMAP" : {
"file" : "lib/SNMP/Info/AMAP.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::AdslLine" : {
"file" : "lib/SNMP/Info/AdslLine.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Aggregate" : {
"file" : "lib/SNMP/Info/Aggregate.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Airespace" : {
"file" : "lib/SNMP/Info/Airespace.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Bridge" : {
"file" : "lib/SNMP/Info/Bridge.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::CDP" : {
"file" : "lib/SNMP/Info/CDP.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::CiscoAgg" : {
"file" : "lib/SNMP/Info/CiscoAgg.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::CiscoBGP" : {
"file" : "lib/SNMP/Info/CiscoBGP.pm",
"version" : "3.83"
},
"SNMP::Info::CiscoConfig" : {
"file" : "lib/SNMP/Info/CiscoConfig.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::CiscoPortSecurity" : {
"file" : "lib/SNMP/Info/CiscoPortSecurity.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::CiscoPower" : {
"file" : "lib/SNMP/Info/CiscoPower.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::CiscoQOS" : {
"file" : "lib/SNMP/Info/CiscoQOS.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::CiscoRTT" : {
"file" : "lib/SNMP/Info/CiscoRTT.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::CiscoStack" : {
"file" : "lib/SNMP/Info/CiscoStack.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::CiscoStats" : {
"file" : "lib/SNMP/Info/CiscoStats.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::CiscoStpExtensions" : {
"file" : "lib/SNMP/Info/CiscoStpExtensions.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::CiscoVTP" : {
"file" : "lib/SNMP/Info/CiscoVTP.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::DocsisCM" : {
"file" : "lib/SNMP/Info/DocsisCM.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::DocsisHE" : {
"file" : "lib/SNMP/Info/DocsisHE.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::EDP" : {
"file" : "lib/SNMP/Info/EDP.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Entity" : {
"file" : "lib/SNMP/Info/Entity.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::EtherLike" : {
"file" : "lib/SNMP/Info/EtherLike.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::FDP" : {
"file" : "lib/SNMP/Info/FDP.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::IEEE802_Bridge" : {
"file" : "lib/SNMP/Info/IEEE802_Bridge.pm",
"version" : "3.83"
},
"SNMP::Info::IEEE802dot11" : {
"file" : "lib/SNMP/Info/IEEE802dot11.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::IEEE802dot3ad" : {
"file" : "lib/SNMP/Info/IEEE802dot3ad.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::IPv6" : {
"file" : "lib/SNMP/Info/IPv6.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::LLDP" : {
"file" : "lib/SNMP/Info/LLDP.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer1" : {
"file" : "lib/SNMP/Info/Layer1.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer1::Allied" : {
"file" : "lib/SNMP/Info/Layer1/Allied.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer1::Asante" : {
"file" : "lib/SNMP/Info/Layer1/Asante.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer1::Bayhub" : {
"file" : "lib/SNMP/Info/Layer1/Bayhub.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer1::Cyclades" : {
"file" : "lib/SNMP/Info/Layer1/Cyclades.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer1::S3000" : {
"file" : "lib/SNMP/Info/Layer1/S3000.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer2" : {
"file" : "lib/SNMP/Info/Layer2.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer2::3Com" : {
"file" : "lib/SNMP/Info/Layer2/3Com.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer2::Adtran" : {
"file" : "lib/SNMP/Info/Layer2/Adtran.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer2::Aerohive" : {
"file" : "lib/SNMP/Info/Layer2/Aerohive.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer2::Airespace" : {
"file" : "lib/SNMP/Info/Layer2/Airespace.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer2::Aironet" : {
"file" : "lib/SNMP/Info/Layer2/Aironet.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer2::Allied" : {
"file" : "lib/SNMP/Info/Layer2/Allied.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer2::Atmedia" : {
"file" : "lib/SNMP/Info/Layer2/Atmedia.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer2::Baystack" : {
"file" : "lib/SNMP/Info/Layer2/Baystack.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer2::C1900" : {
"file" : "lib/SNMP/Info/Layer2/C1900.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer2::C2900" : {
"file" : "lib/SNMP/Info/Layer2/C2900.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer2::Catalyst" : {
"file" : "lib/SNMP/Info/Layer2/Catalyst.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer2::Centillion" : {
"file" : "lib/SNMP/Info/Layer2/Centillion.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer2::Cisco" : {
"file" : "lib/SNMP/Info/Layer2/Cisco.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer2::CiscoSB" : {
"file" : "lib/SNMP/Info/Layer2/CiscoSB.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer2::Exinda" : {
"file" : "lib/SNMP/Info/Layer2/Exinda.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer2::HP" : {
"file" : "lib/SNMP/Info/Layer2/HP.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer2::HP4000" : {
"file" : "lib/SNMP/Info/Layer2/HP4000.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer2::HPVC" : {
"file" : "lib/SNMP/Info/Layer2/HPVC.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer2::Kentrox" : {
"file" : "lib/SNMP/Info/Layer2/Kentrox.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer2::N2270" : {
"file" : "lib/SNMP/Info/Layer2/N2270.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer2::NAP222x" : {
"file" : "lib/SNMP/Info/Layer2/NAP222x.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer2::NWSS2300" : {
"file" : "lib/SNMP/Info/Layer2/NWSS2300.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer2::Netgear" : {
"file" : "lib/SNMP/Info/Layer2/Netgear.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer2::Nexans" : {
"file" : "lib/SNMP/Info/Layer2/Nexans.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer2::Orinoco" : {
"file" : "lib/SNMP/Info/Layer2/Orinoco.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer2::Sixnet" : {
"file" : "lib/SNMP/Info/Layer2/Sixnet.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer2::Trapeze" : {
"file" : "lib/SNMP/Info/Layer2/Trapeze.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer2::Ubiquiti" : {
"file" : "lib/SNMP/Info/Layer2/Ubiquiti.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer2::ZyXEL_DSLAM" : {
"file" : "lib/SNMP/Info/Layer2/ZyXEL_DSLAM.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3" : {
"file" : "lib/SNMP/Info/Layer3.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::Aironet" : {
"file" : "lib/SNMP/Info/Layer3/Aironet.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::AlcatelLucent" : {
"file" : "lib/SNMP/Info/Layer3/AlcatelLucent.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::AlteonAD" : {
"file" : "lib/SNMP/Info/Layer3/AlteonAD.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::Altiga" : {
"file" : "lib/SNMP/Info/Layer3/Altiga.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::Arista" : {
"file" : "lib/SNMP/Info/Layer3/Arista.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::Aruba" : {
"file" : "lib/SNMP/Info/Layer3/Aruba.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::ArubaCX" : {
"file" : "lib/SNMP/Info/Layer3/ArubaCX.pm",
"version" : "3.83"
},
"SNMP::Info::Layer3::BayRS" : {
"file" : "lib/SNMP/Info/Layer3/BayRS.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::BlueCoatSG" : {
"file" : "lib/SNMP/Info/Layer3/BlueCoatSG.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::C3550" : {
"file" : "lib/SNMP/Info/Layer3/C3550.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::C4000" : {
"file" : "lib/SNMP/Info/Layer3/C4000.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::C6500" : {
"file" : "lib/SNMP/Info/Layer3/C6500.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::CheckPoint" : {
"file" : "lib/SNMP/Info/Layer3/CheckPoint.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::Ciena" : {
"file" : "lib/SNMP/Info/Layer3/Ciena.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::Cisco" : {
"file" : "lib/SNMP/Info/Layer3/Cisco.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::CiscoASA" : {
"file" : "lib/SNMP/Info/Layer3/CiscoASA.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::CiscoFWSM" : {
"file" : "lib/SNMP/Info/Layer3/CiscoFWSM.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::CiscoSwitch" : {
"file" : "lib/SNMP/Info/Layer3/CiscoSwitch.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::Contivity" : {
"file" : "lib/SNMP/Info/Layer3/Contivity.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::Cumulus" : {
"file" : "lib/SNMP/Info/Layer3/Cumulus.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::DLink" : {
"file" : "lib/SNMP/Info/Layer3/DLink.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::Dell" : {
"file" : "lib/SNMP/Info/Layer3/Dell.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::ERX" : {
"file" : "lib/SNMP/Info/Layer3/ERX.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::Enterasys" : {
"file" : "lib/SNMP/Info/Layer3/Enterasys.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::Extreme" : {
"file" : "lib/SNMP/Info/Layer3/Extreme.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::F5" : {
"file" : "lib/SNMP/Info/Layer3/F5.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::Force10" : {
"file" : "lib/SNMP/Info/Layer3/Force10.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::Fortinet" : {
"file" : "lib/SNMP/Info/Layer3/Fortinet.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::Foundry" : {
"file" : "lib/SNMP/Info/Layer3/Foundry.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::Genua" : {
"file" : "lib/SNMP/Info/Layer3/Genua.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::H3C" : {
"file" : "lib/SNMP/Info/Layer3/H3C.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::HP9300" : {
"file" : "lib/SNMP/Info/Layer3/HP9300.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::Huawei" : {
"file" : "lib/SNMP/Info/Layer3/Huawei.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::IBMGbTor" : {
"file" : "lib/SNMP/Info/Layer3/IBMGbTor.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::Juniper" : {
"file" : "lib/SNMP/Info/Layer3/Juniper.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::Lantronix" : {
"file" : "lib/SNMP/Info/Layer3/Lantronix.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::Lenovo" : {
"file" : "lib/SNMP/Info/Layer3/Lenovo.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::Microsoft" : {
"file" : "lib/SNMP/Info/Layer3/Microsoft.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::Mikrotik" : {
"file" : "lib/SNMP/Info/Layer3/Mikrotik.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::N1600" : {
"file" : "lib/SNMP/Info/Layer3/N1600.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::NetSNMP" : {
"file" : "lib/SNMP/Info/Layer3/NetSNMP.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::Netscreen" : {
"file" : "lib/SNMP/Info/Layer3/Netscreen.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::Nexus" : {
"file" : "lib/SNMP/Info/Layer3/Nexus.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::OneAccess" : {
"file" : "lib/SNMP/Info/Layer3/OneAccess.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::PacketFront" : {
"file" : "lib/SNMP/Info/Layer3/PacketFront.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::PaloAlto" : {
"file" : "lib/SNMP/Info/Layer3/PaloAlto.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::Passport" : {
"file" : "lib/SNMP/Info/Layer3/Passport.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::Pf" : {
"file" : "lib/SNMP/Info/Layer3/Pf.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::Pica8" : {
"file" : "lib/SNMP/Info/Layer3/Pica8.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::Redlion" : {
"file" : "lib/SNMP/Info/Layer3/Redlion.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::Scalance" : {
"file" : "lib/SNMP/Info/Layer3/Scalance.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::SonicWALL" : {
"file" : "lib/SNMP/Info/Layer3/SonicWALL.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::Steelfusion" : {
"file" : "lib/SNMP/Info/Layer3/Steelfusion.pm",
"version" : "3.83"
},
"SNMP::Info::Layer3::Steelhead" : {
"file" : "lib/SNMP/Info/Layer3/Steelhead.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::SteelheadEx" : {
"file" : "lib/SNMP/Info/Layer3/SteelheadEx.pm",
"version" : "3.83"
},
"SNMP::Info::Layer3::Sun" : {
"file" : "lib/SNMP/Info/Layer3/Sun.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::Tasman" : {
"file" : "lib/SNMP/Info/Layer3/Tasman.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::Teltonika" : {
"file" : "lib/SNMP/Info/Layer3/Teltonika.pm",
"version" : "3.83"
},
"SNMP::Info::Layer3::Timetra" : {
"file" : "lib/SNMP/Info/Layer3/Timetra.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::VMware" : {
"file" : "lib/SNMP/Info/Layer3/VMware.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::VyOS" : {
"file" : "lib/SNMP/Info/Layer3/VyOS.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer3::Whiterabbit" : {
"file" : "lib/SNMP/Info/Layer3/Whiterabbit.pm",
"version" : "3.83"
},
"SNMP::Info::Layer7" : {
"file" : "lib/SNMP/Info/Layer7.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer7::APC" : {
"file" : "lib/SNMP/Info/Layer7/APC.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer7::Arbor" : {
"file" : "lib/SNMP/Info/Layer7/Arbor.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer7::CiscoIPS" : {
"file" : "lib/SNMP/Info/Layer7/CiscoIPS.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer7::Gigamon" : {
"file" : "lib/SNMP/Info/Layer7/Gigamon.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer7::HWGroup" : {
"file" : "lib/SNMP/Info/Layer7/HWGroup.pm",
"version" : "3.83"
},
"SNMP::Info::Layer7::Liebert" : {
"file" : "lib/SNMP/Info/Layer7/Liebert.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer7::Neoteris" : {
"file" : "lib/SNMP/Info/Layer7/Neoteris.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::Layer7::Netscaler" : {
"file" : "lib/SNMP/Info/Layer7/Netscaler.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::MAU" : {
"file" : "lib/SNMP/Info/MAU.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::MRO" : {
"file" : "lib/SNMP/Info/MRO.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::NortelStack" : {
"file" : "lib/SNMP/Info/NortelStack.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::PowerEthernet" : {
"file" : "lib/SNMP/Info/PowerEthernet.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::RapidCity" : {
"file" : "lib/SNMP/Info/RapidCity.pm",
"version" : "3.70"
"version" : "3.83"
},
"SNMP::Info::SONMP" : {
"file" : "lib/SNMP/Info/SONMP.pm",
"version" : "3.70"
"version" : "3.83"
}
},
"release_status" : "stable",
@@ -604,9 +636,9 @@
"repository" : {
"url" : "https://github.com/netdisco/snmp-info"
},
"x_IRC" : "irc://irc.freenode.org/#netdisco",
"x_IRC" : "irc://irc.libera.chat/#netdisco",
"x_MailingList" : "https://lists.sourceforge.net/lists/listinfo/snmp-info-users"
},
"version" : "3.70",
"x_serialization_backend" : "JSON::PP version 2.97001"
"version" : "3.83",
"x_serialization_backend" : "JSON::PP version 4.06"
}

300
META.yml
View File

@@ -18,7 +18,7 @@ build_requires:
configure_requires:
Module::Build: '0.42'
dynamic_config: 1
generated_by: 'Module::Build version 0.4224, CPAN::Meta::Converter version 2.150010'
generated_by: 'Module::Build version 0.4231, CPAN::Meta::Converter version 2.150010'
license: bsd
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -27,409 +27,433 @@ name: SNMP-Info
provides:
SNMP::Info:
file: lib/SNMP/Info.pm
version: '3.70'
version: '3.83'
SNMP::Info::AMAP:
file: lib/SNMP/Info/AMAP.pm
version: '3.70'
version: '3.83'
SNMP::Info::AdslLine:
file: lib/SNMP/Info/AdslLine.pm
version: '3.70'
version: '3.83'
SNMP::Info::Aggregate:
file: lib/SNMP/Info/Aggregate.pm
version: '3.70'
version: '3.83'
SNMP::Info::Airespace:
file: lib/SNMP/Info/Airespace.pm
version: '3.70'
version: '3.83'
SNMP::Info::Bridge:
file: lib/SNMP/Info/Bridge.pm
version: '3.70'
version: '3.83'
SNMP::Info::CDP:
file: lib/SNMP/Info/CDP.pm
version: '3.70'
version: '3.83'
SNMP::Info::CiscoAgg:
file: lib/SNMP/Info/CiscoAgg.pm
version: '3.70'
version: '3.83'
SNMP::Info::CiscoBGP:
file: lib/SNMP/Info/CiscoBGP.pm
version: '3.83'
SNMP::Info::CiscoConfig:
file: lib/SNMP/Info/CiscoConfig.pm
version: '3.70'
version: '3.83'
SNMP::Info::CiscoPortSecurity:
file: lib/SNMP/Info/CiscoPortSecurity.pm
version: '3.70'
version: '3.83'
SNMP::Info::CiscoPower:
file: lib/SNMP/Info/CiscoPower.pm
version: '3.70'
version: '3.83'
SNMP::Info::CiscoQOS:
file: lib/SNMP/Info/CiscoQOS.pm
version: '3.70'
version: '3.83'
SNMP::Info::CiscoRTT:
file: lib/SNMP/Info/CiscoRTT.pm
version: '3.70'
version: '3.83'
SNMP::Info::CiscoStack:
file: lib/SNMP/Info/CiscoStack.pm
version: '3.70'
version: '3.83'
SNMP::Info::CiscoStats:
file: lib/SNMP/Info/CiscoStats.pm
version: '3.70'
version: '3.83'
SNMP::Info::CiscoStpExtensions:
file: lib/SNMP/Info/CiscoStpExtensions.pm
version: '3.70'
version: '3.83'
SNMP::Info::CiscoVTP:
file: lib/SNMP/Info/CiscoVTP.pm
version: '3.70'
version: '3.83'
SNMP::Info::DocsisCM:
file: lib/SNMP/Info/DocsisCM.pm
version: '3.70'
version: '3.83'
SNMP::Info::DocsisHE:
file: lib/SNMP/Info/DocsisHE.pm
version: '3.70'
version: '3.83'
SNMP::Info::EDP:
file: lib/SNMP/Info/EDP.pm
version: '3.70'
version: '3.83'
SNMP::Info::Entity:
file: lib/SNMP/Info/Entity.pm
version: '3.70'
version: '3.83'
SNMP::Info::EtherLike:
file: lib/SNMP/Info/EtherLike.pm
version: '3.70'
version: '3.83'
SNMP::Info::FDP:
file: lib/SNMP/Info/FDP.pm
version: '3.70'
version: '3.83'
SNMP::Info::IEEE802_Bridge:
file: lib/SNMP/Info/IEEE802_Bridge.pm
version: '3.83'
SNMP::Info::IEEE802dot11:
file: lib/SNMP/Info/IEEE802dot11.pm
version: '3.70'
version: '3.83'
SNMP::Info::IEEE802dot3ad:
file: lib/SNMP/Info/IEEE802dot3ad.pm
version: '3.70'
version: '3.83'
SNMP::Info::IPv6:
file: lib/SNMP/Info/IPv6.pm
version: '3.70'
version: '3.83'
SNMP::Info::LLDP:
file: lib/SNMP/Info/LLDP.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer1:
file: lib/SNMP/Info/Layer1.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer1::Allied:
file: lib/SNMP/Info/Layer1/Allied.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer1::Asante:
file: lib/SNMP/Info/Layer1/Asante.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer1::Bayhub:
file: lib/SNMP/Info/Layer1/Bayhub.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer1::Cyclades:
file: lib/SNMP/Info/Layer1/Cyclades.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer1::S3000:
file: lib/SNMP/Info/Layer1/S3000.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer2:
file: lib/SNMP/Info/Layer2.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer2::3Com:
file: lib/SNMP/Info/Layer2/3Com.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer2::Adtran:
file: lib/SNMP/Info/Layer2/Adtran.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer2::Aerohive:
file: lib/SNMP/Info/Layer2/Aerohive.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer2::Airespace:
file: lib/SNMP/Info/Layer2/Airespace.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer2::Aironet:
file: lib/SNMP/Info/Layer2/Aironet.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer2::Allied:
file: lib/SNMP/Info/Layer2/Allied.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer2::Atmedia:
file: lib/SNMP/Info/Layer2/Atmedia.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer2::Baystack:
file: lib/SNMP/Info/Layer2/Baystack.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer2::C1900:
file: lib/SNMP/Info/Layer2/C1900.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer2::C2900:
file: lib/SNMP/Info/Layer2/C2900.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer2::Catalyst:
file: lib/SNMP/Info/Layer2/Catalyst.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer2::Centillion:
file: lib/SNMP/Info/Layer2/Centillion.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer2::Cisco:
file: lib/SNMP/Info/Layer2/Cisco.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer2::CiscoSB:
file: lib/SNMP/Info/Layer2/CiscoSB.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer2::Exinda:
file: lib/SNMP/Info/Layer2/Exinda.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer2::HP:
file: lib/SNMP/Info/Layer2/HP.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer2::HP4000:
file: lib/SNMP/Info/Layer2/HP4000.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer2::HPVC:
file: lib/SNMP/Info/Layer2/HPVC.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer2::Kentrox:
file: lib/SNMP/Info/Layer2/Kentrox.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer2::N2270:
file: lib/SNMP/Info/Layer2/N2270.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer2::NAP222x:
file: lib/SNMP/Info/Layer2/NAP222x.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer2::NWSS2300:
file: lib/SNMP/Info/Layer2/NWSS2300.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer2::Netgear:
file: lib/SNMP/Info/Layer2/Netgear.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer2::Nexans:
file: lib/SNMP/Info/Layer2/Nexans.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer2::Orinoco:
file: lib/SNMP/Info/Layer2/Orinoco.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer2::Sixnet:
file: lib/SNMP/Info/Layer2/Sixnet.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer2::Trapeze:
file: lib/SNMP/Info/Layer2/Trapeze.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer2::Ubiquiti:
file: lib/SNMP/Info/Layer2/Ubiquiti.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer2::ZyXEL_DSLAM:
file: lib/SNMP/Info/Layer2/ZyXEL_DSLAM.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3:
file: lib/SNMP/Info/Layer3.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::Aironet:
file: lib/SNMP/Info/Layer3/Aironet.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::AlcatelLucent:
file: lib/SNMP/Info/Layer3/AlcatelLucent.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::AlteonAD:
file: lib/SNMP/Info/Layer3/AlteonAD.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::Altiga:
file: lib/SNMP/Info/Layer3/Altiga.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::Arista:
file: lib/SNMP/Info/Layer3/Arista.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::Aruba:
file: lib/SNMP/Info/Layer3/Aruba.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::ArubaCX:
file: lib/SNMP/Info/Layer3/ArubaCX.pm
version: '3.83'
SNMP::Info::Layer3::BayRS:
file: lib/SNMP/Info/Layer3/BayRS.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::BlueCoatSG:
file: lib/SNMP/Info/Layer3/BlueCoatSG.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::C3550:
file: lib/SNMP/Info/Layer3/C3550.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::C4000:
file: lib/SNMP/Info/Layer3/C4000.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::C6500:
file: lib/SNMP/Info/Layer3/C6500.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::CheckPoint:
file: lib/SNMP/Info/Layer3/CheckPoint.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::Ciena:
file: lib/SNMP/Info/Layer3/Ciena.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::Cisco:
file: lib/SNMP/Info/Layer3/Cisco.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::CiscoASA:
file: lib/SNMP/Info/Layer3/CiscoASA.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::CiscoFWSM:
file: lib/SNMP/Info/Layer3/CiscoFWSM.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::CiscoSwitch:
file: lib/SNMP/Info/Layer3/CiscoSwitch.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::Contivity:
file: lib/SNMP/Info/Layer3/Contivity.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::Cumulus:
file: lib/SNMP/Info/Layer3/Cumulus.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::DLink:
file: lib/SNMP/Info/Layer3/DLink.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::Dell:
file: lib/SNMP/Info/Layer3/Dell.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::ERX:
file: lib/SNMP/Info/Layer3/ERX.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::Enterasys:
file: lib/SNMP/Info/Layer3/Enterasys.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::Extreme:
file: lib/SNMP/Info/Layer3/Extreme.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::F5:
file: lib/SNMP/Info/Layer3/F5.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::Force10:
file: lib/SNMP/Info/Layer3/Force10.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::Fortinet:
file: lib/SNMP/Info/Layer3/Fortinet.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::Foundry:
file: lib/SNMP/Info/Layer3/Foundry.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::Genua:
file: lib/SNMP/Info/Layer3/Genua.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::H3C:
file: lib/SNMP/Info/Layer3/H3C.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::HP9300:
file: lib/SNMP/Info/Layer3/HP9300.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::Huawei:
file: lib/SNMP/Info/Layer3/Huawei.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::IBMGbTor:
file: lib/SNMP/Info/Layer3/IBMGbTor.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::Juniper:
file: lib/SNMP/Info/Layer3/Juniper.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::Lantronix:
file: lib/SNMP/Info/Layer3/Lantronix.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::Lenovo:
file: lib/SNMP/Info/Layer3/Lenovo.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::Microsoft:
file: lib/SNMP/Info/Layer3/Microsoft.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::Mikrotik:
file: lib/SNMP/Info/Layer3/Mikrotik.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::N1600:
file: lib/SNMP/Info/Layer3/N1600.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::NetSNMP:
file: lib/SNMP/Info/Layer3/NetSNMP.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::Netscreen:
file: lib/SNMP/Info/Layer3/Netscreen.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::Nexus:
file: lib/SNMP/Info/Layer3/Nexus.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::OneAccess:
file: lib/SNMP/Info/Layer3/OneAccess.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::PacketFront:
file: lib/SNMP/Info/Layer3/PacketFront.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::PaloAlto:
file: lib/SNMP/Info/Layer3/PaloAlto.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::Passport:
file: lib/SNMP/Info/Layer3/Passport.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::Pf:
file: lib/SNMP/Info/Layer3/Pf.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::Pica8:
file: lib/SNMP/Info/Layer3/Pica8.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::Redlion:
file: lib/SNMP/Info/Layer3/Redlion.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::Scalance:
file: lib/SNMP/Info/Layer3/Scalance.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::SonicWALL:
file: lib/SNMP/Info/Layer3/SonicWALL.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::Steelfusion:
file: lib/SNMP/Info/Layer3/Steelfusion.pm
version: '3.83'
SNMP::Info::Layer3::Steelhead:
file: lib/SNMP/Info/Layer3/Steelhead.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::SteelheadEx:
file: lib/SNMP/Info/Layer3/SteelheadEx.pm
version: '3.83'
SNMP::Info::Layer3::Sun:
file: lib/SNMP/Info/Layer3/Sun.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::Tasman:
file: lib/SNMP/Info/Layer3/Tasman.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::Teltonika:
file: lib/SNMP/Info/Layer3/Teltonika.pm
version: '3.83'
SNMP::Info::Layer3::Timetra:
file: lib/SNMP/Info/Layer3/Timetra.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::VMware:
file: lib/SNMP/Info/Layer3/VMware.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::VyOS:
file: lib/SNMP/Info/Layer3/VyOS.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer3::Whiterabbit:
file: lib/SNMP/Info/Layer3/Whiterabbit.pm
version: '3.83'
SNMP::Info::Layer7:
file: lib/SNMP/Info/Layer7.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer7::APC:
file: lib/SNMP/Info/Layer7/APC.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer7::Arbor:
file: lib/SNMP/Info/Layer7/Arbor.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer7::CiscoIPS:
file: lib/SNMP/Info/Layer7/CiscoIPS.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer7::Gigamon:
file: lib/SNMP/Info/Layer7/Gigamon.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer7::HWGroup:
file: lib/SNMP/Info/Layer7/HWGroup.pm
version: '3.83'
SNMP::Info::Layer7::Liebert:
file: lib/SNMP/Info/Layer7/Liebert.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer7::Neoteris:
file: lib/SNMP/Info/Layer7/Neoteris.pm
version: '3.70'
version: '3.83'
SNMP::Info::Layer7::Netscaler:
file: lib/SNMP/Info/Layer7/Netscaler.pm
version: '3.70'
version: '3.83'
SNMP::Info::MAU:
file: lib/SNMP/Info/MAU.pm
version: '3.70'
version: '3.83'
SNMP::Info::MRO:
file: lib/SNMP/Info/MRO.pm
version: '3.70'
version: '3.83'
SNMP::Info::NortelStack:
file: lib/SNMP/Info/NortelStack.pm
version: '3.70'
version: '3.83'
SNMP::Info::PowerEthernet:
file: lib/SNMP/Info/PowerEthernet.pm
version: '3.70'
version: '3.83'
SNMP::Info::RapidCity:
file: lib/SNMP/Info/RapidCity.pm
version: '3.70'
version: '3.83'
SNMP::Info::SONMP:
file: lib/SNMP/Info/SONMP.pm
version: '3.70'
version: '3.83'
recommends:
Class::ISA: '0'
File::Slurp: '0'
@@ -441,11 +465,11 @@ requires:
NetAddr::IP: '4.068'
SNMP: '0'
resources:
IRC: irc://irc.freenode.org/#netdisco
IRC: irc://irc.libera.chat/#netdisco
MailingList: https://lists.sourceforge.net/lists/listinfo/snmp-info-users
bugtracker: https://github.com/netdisco/snmp-info/issues
homepage: http://netdisco.org/
license: http://opensource.org/licenses/bsd-license.php
repository: https://github.com/netdisco/snmp-info
version: '3.70'
version: '3.83'
x_serialization_backend: 'CPAN::Meta::YAML version 0.018'

118
README
View File

@@ -2,7 +2,7 @@ NAME
SNMP::Info - OO Interface to Network devices and MIBs through SNMP
VERSION
SNMP::Info - Version 3.70
SNMP::Info - Version 3.83
AUTHOR
SNMP::Info is maintained by team of Open Source authors headed by Eric
@@ -213,17 +213,23 @@ SUBCLASSES
See documentation in SNMP::Info::Bridge for details.
SNMP::Info::CiscoAgg
SNMP Interface to Cisco Aggregated Links
See documentation in SNMP::Info::CiscoAgg for details.
SNMP::Info::CDP
CISCO-CDP-MIB. Cisco Discovery Protocol (CDP) Support. Inherited by
Cisco, Enterasys, and HP devices.
See documentation in SNMP::Info::CDP for details.
SNMP::Info::CiscoAgg
SNMP Interface to Cisco Aggregated Links
See documentation in SNMP::Info::CiscoAgg for details.
SNMP::Info::CiscoBGP
CISCO-BGP4-MIB. Cisco BGPv4 support. Inherited by Cisco devices with
Layer3 support.
See documentation in SNMP::Info::CiscoBGP for details.
SNMP::Info::CiscoConfig
CISCO-CONFIG-COPY-MIB, CISCO-FLASH-MIB, and OLD-CISCO-SYS-MIB. These
OIDs facilitate the writing of configuration files.
@@ -257,11 +263,6 @@ SUBCLASSES
See documentation in SNMP::Info::CiscoStack for details.
SNMP::Info::CiscoStpExtensions
CISCO-STP-EXTENSIONS-MIB
See documentation in SNMP::Info::CiscoStpExtensions for details.
SNMP::Info::CiscoStats
OLD-CISCO-CPU-MIB, CISCO-PROCESS-MIB, and CISCO-MEMORY-POOL-MIB.
Provides common interfaces for memory, cpu, and os statistics for
@@ -269,22 +270,27 @@ SUBCLASSES
See documentation in SNMP::Info::CiscoStats for details.
SNMP::Info::CiscoStpExtensions
CISCO-STP-EXTENSIONS-MIB
See documentation in SNMP::Info::CiscoStpExtensions for details.
SNMP::Info::CiscoVTP
CISCO-VTP-MIB, CISCO-VLAN-MEMBERSHIP-MIB,
CISCO-VLAN-IFTABLE-RELATIONSHIP-MIB
See documentation in SNMP::Info::CiscoVTP for details.
SNMP::Info::DocsisHE
SNMP Interface for DOCSIS CMTS
See documentation in SNMP::Info::DocsisHE for details.
SNMP::Info::DocsisCM
SNMP Interface for DOCSIS Cable Modems
See documentation in SNMP::Info::DocsisCM for details.
SNMP::Info::DocsisHE
SNMP Interface for DOCSIS CMTS
See documentation in SNMP::Info::DocsisHE for details.
SNMP::Info::EDP
Extreme Discovery Protocol. EXTREME-EDP-MIB
@@ -306,6 +312,11 @@ SUBCLASSES
See documentation in SNMP::Info::FDP for details.
SNMP::Info::IEEE802_Bridge
SNMP Interface to data available through the IEEE8021-Q-BRIDGE-MIB
See documentation in SNMP::Info::IEEE802_Bridge for details.
SNMP::Info::IEEE802dot11
IEEE802dot11-MIB. A collection of OIDs providing information about
standards based 802.11 wireless devices.
@@ -423,7 +434,7 @@ SUBCLASSES
See documentation in SNMP::Info::Layer2::Adtran for details.
SNMP::Info::Layer2::Aerohive
Subclass for Aerohive Access Points.
Subclass for Aerohive / Extreme access points.
See documentation in SNMP::Info::Layer2::Aerohive for details.
@@ -613,6 +624,11 @@ SUBCLASSES
See documentation in SNMP::Info::Layer3::Aruba for details.
SNMP::Info::Layer3::ArubaCX
SNMP Interface to L3 Devices running ArubaOS-CX
See documentation in SNMP::Info::Layer3::ArubaCX for details.
SNMP::Info::Layer3::BayRS
Subclass for Avaya/Nortel/Bay Multiprotocol/BayRS routers. This
includes BCN, BLN, ASN, ARN, AN, 2430, and 5430 routers.
@@ -620,7 +636,7 @@ SUBCLASSES
See documentation in SNMP::Info::Layer3::BayRS for details.
SNMP::Info::Layer3::BlueCoatSG
Subclass for Blue Coat SG series proxy devices.
Subclass for BlueCoat SG series proxy devices.
See documentation in SNMP::Info::Layer3::BlueCoatSG for details.
@@ -683,11 +699,6 @@ SUBCLASSES
See documentation in SNMP::Info::Layer3::Cumulus for details.
SNMP::Info::Layer3::DLink
Subclass for DLink devices.
See documentation in SNMP::Info::Layer3::DLink for details.
SNMP::Info::Layer3::Dell
Subclass for Dell PowerConnect switches. The IBM BladeCenter
Gigabit Ethernet Switch Module and some Linksys switches also
@@ -695,6 +706,11 @@ SUBCLASSES
See documentation in SNMP::Info::Layer3::Dell for details.
SNMP::Info::Layer3::DLink
Subclass for DLink devices.
See documentation in SNMP::Info::Layer3::DLink for details.
SNMP::Info::Layer3::Enterasys
Subclass for Enterasys devices.
@@ -852,11 +868,23 @@ SUBCLASSES
See documentation in SNMP::Info::Layer3::SonicWALL for details.
SNMP::Info::Layer3::Steelfusion
Subclass for Riverbed Steelfusion WAN optimization appliances.
See documentation in SNMP::Info::Layer3::Steelfusion for
details.
SNMP::Info::Layer3::Steelhead
Subclass for Riverbed Steelhead WAN optimization appliances.
See documentation in SNMP::Info::Layer3::Steelhead for details.
SNMP::Info::Layer3::SteelheadEx
Subclass for Riverbed SteelheadEx WAN optimization appliances.
See documentation in SNMP::Info::Layer3::SteelheadEx for
details.
SNMP::Info::Layer3::Sun
Subclass for Generic Sun Routers running SunOS.
@@ -867,6 +895,11 @@ SUBCLASSES
See documentation in SNMP::Info::Layer3::Tasman for details.
SNMP::Info::Layer3::Teltonika
Subclass for Teltonika RUT9xx series routers.
See documentation in SNMP::Info::Layer3::Teltonika for details.
SNMP::Info::Layer3::Timetra
Alcatel-Lucent SR Class.
@@ -882,6 +915,12 @@ SUBCLASSES
See documentation in SNMP::Info::Layer3::VMware for details.
SNMP::Info::Layer3::Whiterabbit
Subclass for whiterabbit devices.
See documentation in SNMP::Info::Layer3::Whiterabbit for
details.
SNMP::Info::Layer7
Generic Layer7 Devices.
@@ -907,6 +946,11 @@ SUBCLASSES
See documentation in SNMP::Info::Layer7::Gigamon for details.
SNMP::Info::Layer7::HWGroup
Subclass for HW Group devices.
See documentation in SNMP::Info::Layer7::HWGroup for details.
SNMP::Info::Layer7::Liebert
Subclass for Liebert devices.
@@ -1598,12 +1642,12 @@ USAGE
For protocol specific information and implementation:
LLDP: See SNMP::Info::LLDP for details.
CDP: See SNMP::Info::CDP for details.
SONMP: See SNMP::Info::SONMP for details.
FDP: See SNMP::Info::FDP for details.
EDP: See SNMP::Info::EDP for details.
AMAP: See SNMP::Info::AMAP for details.
CDP: See SNMP::Info::CDP for details.
EDP: See SNMP::Info::EDP for details.
FDP: See SNMP::Info::FDP for details.
LLDP: See SNMP::Info::LLDP for details.
SONMP: See SNMP::Info::SONMP for details.
Topology Capabilities
$info->has_topo()
@@ -1933,7 +1977,7 @@ SNMP::INFO INTERNALS
%SPEED_MAP = (
'56000' => '56 kbps',
'64000' => '64 kbps',
'115000' => '115 kpbs',
'115000' => '115 kbps',
'1500000' => '1.5 Mbps',
'1536000' => 'T1',
'1544000' => 'T1',
@@ -1944,9 +1988,9 @@ SNMP::INFO INTERNALS
'4000000' => '4.0 Mbps',
'10000000' => '10 Mbps',
'11000000' => '11 Mbps',
'20000000' => '20 Mbps',
'16000000' => '16 Mbps',
'16777216' => '16 Mbps',
'20000000' => '20 Mbps',
'44210000' => 'T3',
'44736000' => 'T3',
'45000000' => '45 Mbps',
@@ -1956,11 +2000,11 @@ SNMP::INFO INTERNALS
'54000000' => '54 Mbps',
'64000000' => '64 Mbps',
'100000000' => '100 Mbps',
'200000000' => '200 Mbps',
'149760000' => 'ATM on OC-3',
'155000000' => 'OC-3',
'155519000' => 'OC-3',
'155520000' => 'OC-3',
'200000000' => '200 Mbps',
'400000000' => '400 Mbps',
'599040000' => 'ATM on OC-12',
'622000000' => 'OC-12',
@@ -1982,6 +2026,10 @@ SNMP::INFO INTERNALS
munge_ip()
Takes a binary IP and makes it dotted ASCII.
munge_inetaddress
Takes a binary IP address as defined by the SNMP InetAddress type
and returns it as human readable string;
munge_mac()
Takes an octet stream (HEX-STRING) and returns a colon separated
ASCII hex string.
@@ -2207,17 +2255,13 @@ SNMP::INFO INTERNALS
Calls parent can() first to see if method exists, if not validates
that a method should be created then dispatches to the appropriate
internal method for creation. The newly created method is inserted
into the symbol table returning to AUTOLOAD only for the initial
method call.
internal method for creation.
Returns undef if the method does not exist and can not be created.
AUTOLOAD
Each entry in either %FUNCS, %GLOBALS, or MIB Leaf node names present in
loaded MIBs are used by AUTOLOAD() to create dynamic methods. Generated
methods are inserted into the symbol table so that subsequent calls can
avoid AUTOLOAD() and dispatch directly.
loaded MIBs are used by AUTOLOAD() to create dynamic methods.
1. Returns unless method is listed in %FUNCS, %GLOBALS, or is a MIB Leaf
node name in a loaded MIB for given class.

View File

@@ -25,7 +25,7 @@ our
($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE, $AUTOLOAD, $INIT, $DEBUG, %SPEED_MAP,
$NOSUCH, $BIGINT, $REPEATERS);
$VERSION = '3.70';
$VERSION = '3.83';
=head1 NAME
@@ -33,7 +33,7 @@ SNMP::Info - OO Interface to Network devices and MIBs through SNMP
=head1 VERSION
SNMP::Info - Version 3.70
SNMP::Info - Version 3.83
=head1 AUTHOR
@@ -265,12 +265,6 @@ support.
See documentation in L<SNMP::Info::Bridge> for details.
=item SNMP::Info::CiscoAgg
SNMP Interface to Cisco Aggregated Links
See documentation in L<SNMP::Info::CiscoAgg> for details.
=item SNMP::Info::CDP
F<CISCO-CDP-MIB>. Cisco Discovery Protocol (CDP) Support. Inherited by
@@ -278,6 +272,19 @@ Cisco, Enterasys, and HP devices.
See documentation in L<SNMP::Info::CDP> for details.
=item SNMP::Info::CiscoAgg
SNMP Interface to Cisco Aggregated Links
See documentation in L<SNMP::Info::CiscoAgg> for details.
=item SNMP::Info::CiscoBGP
F<CISCO-BGP4-MIB>. Cisco BGPv4 support. Inherited by Cisco devices with
Layer3 support.
See documentation in L<SNMP::Info::CiscoBGP> for details.
=item SNMP::Info::CiscoConfig
F<CISCO-CONFIG-COPY-MIB>, F<CISCO-FLASH-MIB>, and F<OLD-CISCO-SYS-MIB>.
@@ -317,12 +324,6 @@ F<CISCO-STACK-MIB>.
See documentation in L<SNMP::Info::CiscoStack> for details.
=item SNMP::Info::CiscoStpExtensions
F<CISCO-STP-EXTENSIONS-MIB>
See documentation in L<SNMP::Info::CiscoStpExtensions> for details.
=item SNMP::Info::CiscoStats
F<OLD-CISCO-CPU-MIB>, F<CISCO-PROCESS-MIB>, and F<CISCO-MEMORY-POOL-MIB>.
@@ -331,6 +332,12 @@ devices.
See documentation in L<SNMP::Info::CiscoStats> for details.
=item SNMP::Info::CiscoStpExtensions
F<CISCO-STP-EXTENSIONS-MIB>
See documentation in L<SNMP::Info::CiscoStpExtensions> for details.
=item SNMP::Info::CiscoVTP
F<CISCO-VTP-MIB>, F<CISCO-VLAN-MEMBERSHIP-MIB>,
@@ -338,18 +345,18 @@ F<CISCO-VLAN-IFTABLE-RELATIONSHIP-MIB>
See documentation in L<SNMP::Info::CiscoVTP> for details.
=item SNMP::Info::DocsisHE
SNMP Interface for DOCSIS CMTS
See documentation in L<SNMP::Info::DocsisHE> for details.
=item SNMP::Info::DocsisCM
SNMP Interface for DOCSIS Cable Modems
See documentation in L<SNMP::Info::DocsisCM> for details.
=item SNMP::Info::DocsisHE
SNMP Interface for DOCSIS CMTS
See documentation in L<SNMP::Info::DocsisHE> for details.
=item SNMP::Info::EDP
Extreme Discovery Protocol. F<EXTREME-EDP-MIB>
@@ -375,6 +382,12 @@ Foundry (Brocade) Discovery Protocol. F<FOUNDRY-SN-SWITCH-GROUP-MIB>
See documentation in L<SNMP::Info::FDP> for details.
=item SNMP::Info::IEEE802_Bridge
SNMP Interface to data available through the F<IEEE8021-Q-BRIDGE-MIB>
See documentation in L<SNMP::Info::IEEE802_Bridge> for details.
=item SNMP::Info::IEEE802dot11
F<IEEE802dot11-MIB>. A collection of OIDs providing information about
@@ -522,7 +535,7 @@ See documentation in L<SNMP::Info::Layer2::Adtran> for details.
=item SNMP::Info::Layer2::Aerohive
Subclass for Aerohive Access Points.
Subclass for Aerohive / Extreme access points.
See documentation in L<SNMP::Info::Layer2::Aerohive> for details.
@@ -741,6 +754,12 @@ Subclass for Aruba wireless switches.
See documentation in L<SNMP::Info::Layer3::Aruba> for details.
=item SNMP::Info::Layer3::ArubaCX
SNMP Interface to L3 Devices running ArubaOS-CX
See documentation in L<SNMP::Info::Layer3::ArubaCX> for details.
=item SNMP::Info::Layer3::BayRS
Subclass for Avaya/Nortel/Bay Multiprotocol/BayRS routers. This includes
@@ -750,7 +769,7 @@ See documentation in L<SNMP::Info::Layer3::BayRS> for details.
=item SNMP::Info::Layer3::BlueCoatSG
Subclass for Blue Coat SG series proxy devices.
Subclass for BlueCoat SG series proxy devices.
See documentation in L<SNMP::Info::Layer3::BlueCoatSG> for details.
@@ -822,12 +841,6 @@ Subclass for Cumulus Networks Routers.
See documentation in L<SNMP::Info::Layer3::Cumulus> for details.
=item SNMP::Info::Layer3::DLink
Subclass for DLink devices.
See documentation in L<SNMP::Info::Layer3::DLink> for details.
=item SNMP::Info::Layer3::Dell
Subclass for Dell PowerConnect switches. The IBM BladeCenter
@@ -836,6 +849,12 @@ also use this module based upon MIB support.
See documentation in L<SNMP::Info::Layer3::Dell> for details.
=item SNMP::Info::Layer3::DLink
Subclass for DLink devices.
See documentation in L<SNMP::Info::Layer3::DLink> for details.
=item SNMP::Info::Layer3::Enterasys
Subclass for Enterasys devices.
@@ -1020,12 +1039,24 @@ Subclass for generic SonicWALL devices.
See documentation in L<SNMP::Info::Layer3::SonicWALL> for details.
=item SNMP::Info::Layer3::Steelfusion
Subclass for Riverbed Steelfusion WAN optimization appliances.
See documentation in L<SNMP::Info::Layer3::Steelfusion> for details.
=item SNMP::Info::Layer3::Steelhead
Subclass for Riverbed Steelhead WAN optimization appliances.
See documentation in L<SNMP::Info::Layer3::Steelhead> for details.
=item SNMP::Info::Layer3::SteelheadEx
Subclass for Riverbed SteelheadEx WAN optimization appliances.
See documentation in L<SNMP::Info::Layer3::SteelheadEx> for details.
=item SNMP::Info::Layer3::Sun
Subclass for Generic Sun Routers running SunOS.
@@ -1038,6 +1069,12 @@ Subclass for Avaya Secure Routers.
See documentation in L<SNMP::Info::Layer3::Tasman> for details.
=item SNMP::Info::Layer3::Teltonika
Subclass for Teltonika RUT9xx series routers.
See documentation in L<SNMP::Info::Layer3::Teltonika> for details.
=item SNMP::Info::Layer3::Timetra
Alcatel-Lucent SR Class.
@@ -1056,6 +1093,12 @@ Subclass for VMware ESXi hosts.
See documentation in L<SNMP::Info::Layer3::VMware> for details.
=item SNMP::Info::Layer3::Whiterabbit
Subclass for whiterabbit devices.
See documentation in L<SNMP::Info::Layer3::Whiterabbit> for details.
=back
=back
@@ -1094,6 +1137,12 @@ Subclass for Gigamon devices.
See documentation in L<SNMP::Info::Layer7::Gigamon> for details.
=item SNMP::Info::Layer7::HWGroup
Subclass for HW Group devices.
See documentation in L<SNMP::Info::Layer7::HWGroup> for details.
=item SNMP::Info::Layer7::Liebert
Subclass for Liebert devices.
@@ -1663,12 +1712,13 @@ sub device_type {
# Hash for generic fallback to a device class if unable to determine using
# the sysDescr regex.
my %l3sysoidmap = (
9 => 'SNMP::Info::Layer3::Cisco',
9 => 'SNMP::Info::Layer3::CiscoSwitch',
11 => 'SNMP::Info::Layer2::HP',
18 => 'SNMP::Info::Layer3::BayRS',
42 => 'SNMP::Info::Layer3::Sun',
43 => 'SNMP::Info::Layer2::3Com',
45 => 'SNMP::Info::Layer2::Baystack',
96 => 'SNMP::Info::Layer3::Whiterabbit',
171 => 'SNMP::Info::Layer3::DLink',
244 => 'SNMP::Info::Layer3::Lantronix',
311 => 'SNMP::Info::Layer3::Microsoft',
@@ -1723,6 +1773,8 @@ sub device_type {
40310 => 'SNMP::Info::Layer3::Cumulus',
41112 => 'SNMP::Info::Layer2::Ubiquiti',
44641 => 'SNMP::Info::Layer3::VyOS',
47196 => 'SNMP::Info::Layer3::ArubaCX',
48690 => 'SNMP::Info::Layer3::Teltonika',
);
my %l2sysoidmap = (
@@ -1730,6 +1782,7 @@ sub device_type {
11 => 'SNMP::Info::Layer2::HP',
43 => 'SNMP::Info::Layer2::3Com',
45 => 'SNMP::Info::Layer2::Baystack',
96 => 'SNMP::Info::Layer3::Whiterabbit',
171 => 'SNMP::Info::Layer3::DLink',
207 => 'SNMP::Info::Layer2::Allied',
266 => 'SNMP::Info::Layer2::Nexans',
@@ -1760,6 +1813,8 @@ sub device_type {
21091 => 'SNMP::Info::Layer2::Exinda',
26543 => 'SNMP::Info::Layer3::IBMGbTor',
26928 => 'SNMP::Info::Layer2::Aerohive',
47196 => 'SNMP::Info::Layer3::ArubaCX',
48690 => 'SNMP::Info::Layer3::Teltonika',
);
my %l1sysoidmap = (
@@ -1774,6 +1829,7 @@ sub device_type {
9694 => 'SNMP::Info::Layer7::Arbor',
12532 => 'SNMP::Info::Layer7::Neoteris',
14525 => 'SNMP::Info::Layer2::Trapeze',
21796 => 'SNMP::Info::Layer7::HWGroup',
26866 => 'SNMP::Info::Layer7::Gigamon',
);
@@ -1923,6 +1979,24 @@ sub device_type {
$objtype = 'SNMP::Info::Layer3::Scalance'
if ( $soid =~ /\.1\.3\.6\.1\.4\.1\.4329\.6\.1\.2/i );
# Aruba wireless switches (issue #403)
$objtype = 'SNMP::Info::Layer3::Aruba'
if ( $desc =~ /ArubaOS/ );
# Teltonika RUT9xx Series
$objtype = 'SNMP::Info::Layer3::Teltonika'
if (
$desc =~ /\bTeltonika.*RUT9\d{2}\b/);
# Riverbed Steelfusion
$objtype = 'SNMP::Info::Layer3::SteelheadEx'
if ( $soid =~ /\.1\.3\.6\.1\.4\.1\.17163\.1\.51/i );
$objtype = 'SNMP::Info::Layer3::Steelfusion'
if ( $soid =~ /\.1\.3\.6\.1\.4\.1\.17163\.1\.52/i );
# Whiterabbit Timing
$objtype = 'SNMP::Info::Layer3::Whiterabbit'
if ( $soid =~ /\.1\.3\.6\.1\.4\.1\.96\.100\.1000/i );
# Generic device classification based upon sysObjectID
if ( ( $objtype eq 'SNMP::Info::Layer3' )
@@ -2133,6 +2207,15 @@ sub device_type {
# it would flip/flop between those
$objtype = 'SNMP::Info::Layer3::Scalance'
if ( $soid =~ /\.1\.3\.6\.1\.4\.1\.4329\.6\.1\.2/i );
# Whiterabbit Timing
$objtype = 'SNMP::Info::Layer3::Whiterabbit'
if ( $soid =~ /\.1\.3\.6\.1\.4\.1\.96\.100\.1000/i );
# Teltonika RUT9xx Series
$objtype = 'SNMP::Info::Layer3::Teltonika'
if (
$desc =~ /\bTeltonika.*RUT9\d{2}\b/);
# Generic device classification based upon sysObjectID
if ( defined($id) and $objtype eq 'SNMP::Info') {
@@ -2835,17 +2918,17 @@ For protocol specific information and implementation:
=over
=item LLDP: See L<SNMP::Info::LLDP> for details.
=item AMAP: See L<SNMP::Info::AMAP> for details.
=item CDP: See L<SNMP::Info::CDP> for details.
=item SONMP: See L<SNMP::Info::SONMP> for details.
=item EDP: See L<SNMP::Info::EDP> for details.
=item FDP: See L<SNMP::Info::FDP> for details.
=item EDP: See L<SNMP::Info::EDP> for details.
=item LLDP: See L<SNMP::Info::LLDP> for details.
=item AMAP: See L<SNMP::Info::AMAP> for details.
=item SONMP: See L<SNMP::Info::SONMP> for details.
=back
@@ -2940,7 +3023,7 @@ sub ip_netmask {
$prefix = $1;
}
my $new_iid = join( ".", @parts );
my $mask = NetAddr::IP::Lite->new( $new_iid . '/' . $prefix )->mask()
my $mask = eval { NetAddr::IP::Lite->new( $new_iid . '/' . $prefix )->mask() }
|| undef;
$ip_netmask{$new_iid} = $mask;
@@ -3621,7 +3704,7 @@ Makes human friendly speed ratings using C<%SPEED_MAP>.
%SPEED_MAP = (
'56000' => '56 kbps',
'64000' => '64 kbps',
'115000' => '115 kpbs',
'115000' => '115 kbps',
'1500000' => '1.5 Mbps',
'1536000' => 'T1',
'1544000' => 'T1',
@@ -3632,9 +3715,9 @@ Makes human friendly speed ratings using C<%SPEED_MAP>.
'4000000' => '4.0 Mbps',
'10000000' => '10 Mbps',
'11000000' => '11 Mbps',
'20000000' => '20 Mbps',
'16000000' => '16 Mbps',
'16777216' => '16 Mbps',
'20000000' => '20 Mbps',
'44210000' => 'T3',
'44736000' => 'T3',
'45000000' => '45 Mbps',
@@ -3644,11 +3727,11 @@ Makes human friendly speed ratings using C<%SPEED_MAP>.
'54000000' => '54 Mbps',
'64000000' => '64 Mbps',
'100000000' => '100 Mbps',
'200000000' => '200 Mbps',
'149760000' => 'ATM on OC-3',
'155000000' => 'OC-3',
'155519000' => 'OC-3',
'155520000' => 'OC-3',
'200000000' => '200 Mbps',
'400000000' => '400 Mbps',
'599040000' => 'ATM on OC-12',
'622000000' => 'OC-12',
@@ -3668,7 +3751,7 @@ munge_highspeed(). SNMP::Info can return speeds up to terabit levels this way.
%SPEED_MAP = (
'56000' => '56 kbps',
'64000' => '64 kbps',
'115000' => '115 kpbs',
'115000' => '115 kbps',
'1500000' => '1.5 Mbps',
'1536000' => 'T1',
'1544000' => 'T1',
@@ -3679,9 +3762,9 @@ munge_highspeed(). SNMP::Info can return speeds up to terabit levels this way.
'4000000' => '4.0 Mbps',
'10000000' => '10 Mbps',
'11000000' => '11 Mbps',
'20000000' => '20 Mbps',
'16000000' => '16 Mbps',
'16777216' => '16 Mbps',
'20000000' => '20 Mbps',
'44210000' => 'T3',
'44736000' => 'T3',
'45000000' => '45 Mbps',
@@ -3691,11 +3774,11 @@ munge_highspeed(). SNMP::Info can return speeds up to terabit levels this way.
'54000000' => '54 Mbps',
'64000000' => '64 Mbps',
'100000000' => '100 Mbps',
'200000000' => '200 Mbps',
'149760000' => 'ATM on OC-3',
'155000000' => 'OC-3',
'155519000' => 'OC-3',
'155520000' => 'OC-3',
'200000000' => '200 Mbps',
'400000000' => '400 Mbps',
'599040000' => 'ATM on OC-12',
'622000000' => 'OC-12',
@@ -3753,6 +3836,27 @@ sub munge_ip {
return join( '.', unpack( 'C4', $ip ) );
}
=item munge_inetaddress
Takes a binary IP address as defined by the SNMP InetAddress type and returns
it as human readable string;
=cut
sub munge_inetaddress {
my $ip = shift;
# 4 bytes = IPv4
if (length($ip) == 4) {
return SNMP::Info::munge_ip($ip);
}
# 16 bytes = IPv6
elsif (length($ip) == 16) {
return sprintf( "%x:%x:%x:%x:%x:%x:%x:%x",
unpack( 'n8', $ip ));
}
return '';
}
=item munge_mac()
Takes an octet stream (HEX-STRING) and returns a colon separated ASCII hex
@@ -4972,8 +5076,7 @@ capabilities to include dynamic methods generated at run time via AUTOLOAD.
Calls parent can() first to see if method exists, if not validates that a
method should be created then dispatches to the appropriate internal method
for creation. The newly created method is inserted into the symbol table
returning to AUTOLOAD only for the initial method call.
for creation.
Returns undef if the method does not exist and can not be created.
@@ -5007,18 +5110,24 @@ sub can {
# We could add load_/orig_/_raw alternatives to symbol table here on
# first call of any type for a global or func since they all use the same
# destination code, but they aren't used heavily in main code base so
# well just create if/when they are called rather than pollute the
# we'll just create if/when they are called rather than pollute the
# symbol table with entries that never get called.
# Between 2012-2020 we actually added the methods generated below to the
# symbol table, but they were global to the SNMP::Info class, while
# methods for different device classes may point to different SNMP
# objects. This made interacting with multiple device types from a single
# script somewhat unreliable.
# Check for set_ ing.
if ( $method =~ /^set_/ ) {
return *{$method} = _make_setter( $method, $oid, @_ );
return _make_setter( $method, $oid, @_ );
}
elsif ( defined $funcs->{$base_method} || $table ) {
return *{$method} = _load_attr( $method, $oid, @_ );
return _load_attr( $method, $oid, @_ );
}
else {
return *{$method} = _global( $method, $oid );
return _global( $method, $oid );
}
}
@@ -5027,9 +5136,7 @@ sub can {
=head2 AUTOLOAD
Each entry in either %FUNCS, %GLOBALS, or MIB Leaf node names present in
loaded MIBs are used by AUTOLOAD() to create dynamic methods. Generated
methods are inserted into the symbol table so that subsequent calls can avoid
AUTOLOAD() and dispatch directly.
loaded MIBs are used by AUTOLOAD() to create dynamic methods.
=over
@@ -5060,9 +5167,9 @@ subclass.
sub AUTOLOAD {
my $self = shift;
my ($sub_name) = $AUTOLOAD =~ /::(\w+)$/;
my ($sub_name) = $AUTOLOAD =~ /::([a-zA-Z0-9_-]+)$/;
return if $sub_name eq 'CARP_TRACE';
return if $sub_name eq 'CARP_TRACE';
# Typos in function calls in SNMP::Info subclasses turn into
# AUTOLOAD requests for non-methods. While this is deprecated,

View File

@@ -39,7 +39,7 @@ use SNMP::Info;
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
'ALCATEL-IND1-INTERSWITCH-PROTOCOL-MIB' => 'aipAMAPRemDeviceType',

View File

@@ -39,7 +39,7 @@ use SNMP::Info;
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = ( 'ADSL-LINE-MIB' => 'adslLineType' );

View File

@@ -39,7 +39,7 @@ use SNMP::Info;
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
# Load MIB for leafs referenced within class
%MIBS = ('IF-MIB' => 'ifIndex',);

View File

@@ -39,7 +39,7 @@ use SNMP::Info;
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::MIBS,

View File

@@ -42,7 +42,7 @@ use SNMP::Info;
our ($VERSION, $DEBUG, %MIBS, %FUNCS, %GLOBALS, %MUNGE, $INIT);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
'BRIDGE-MIB' => 'dot1dBaseBridgeAddress',
@@ -105,7 +105,7 @@ $VERSION = '3.70';
'stp_p_bridge' => 'dot1dStpPortDesignatedBridge',
'stp_p_port' => 'dot1dStpPortDesignatedPort',
# Rapid Spanning Tree Protocol Table : dot1dStpExtPortEntry
# Rapid Spanning Tree Protocol Table : dot1dStpExtPortEntry
'is_edgeport_admin' => 'dot1dStpPortAdminEdgePort',
'is_edgeport_oper' => 'dot1dStpPortOperEdgePort',
@@ -366,7 +366,7 @@ sub i_vlan {
my $bridge = shift;
my $partial = shift;
my $index = $bridge->bp_index();
my $index = $bridge->bp_index() or return {};
# If given a partial it will be an ifIndex, we need to use dot1dBasePort
if ($partial) {
@@ -429,7 +429,7 @@ sub _vlan_hoa {
my $vlan;
# Strip TimeFilter if we're using VlanCurrentTable
( $vlan = $idx ) =~ s/^\d+\.//;
($vlan = $idx) =~ s/^(\d+\.)*//g;
# Convert portlist bit array to bp_index array
for ( my $i = 0; $i <= $#$portlist; $i++ ) {

View File

@@ -43,7 +43,7 @@ use SNMP::Info;
our
($VERSION, $DEBUG, %FUNCS, %GLOBALS, %MIBS, %MUNGE, $INIT, %CDP_CAPABILITIES);
$VERSION = '3.70';
$VERSION = '3.83';
# Five data structures required by SNMP::Info
%MIBS = ( 'CISCO-CDP-MIB' => 'cdpGlobalRun' );

View File

@@ -48,7 +48,7 @@ use SNMP::Info::IEEE802dot3ad;
our ($DEBUG, $VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::IEEE802dot3ad::MIBS,

267
lib/SNMP/Info/CiscoBGP.pm Normal file
View File

@@ -0,0 +1,267 @@
# SNMP::Info::CiscoBGP
#
# Copyright (c) 2022 Alexander Hartmaier
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of the University of California, Santa Cruz nor the
# names of its contributors may be used to endorse or promote products
# derived from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
# LIABLE FOR # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::CiscoBGP;
use strict;
use warnings;
use Exporter;
use SNMP::Info;
@SNMP::Info::CiscoBGP::ISA = qw( SNMP::Info Exporter );
@SNMP::Info::CiscoBGP::EXPORT_OK = qw(
parse_cisco_bgp_peer2_entry_index
);
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
$VERSION = '3.83';
%MIBS = ( 'CISCO-BGP4-MIB' => 'cbgpPeer2State', );
%GLOBALS = ();
%FUNCS = (
# cbgpPeer2Table
'cisco_bgp_peer2_state' => 'cbgpPeer2State',
'cisco_bgp_peer2_adminstatus' => 'cbgpPeer2AdminStatus',
'cisco_bgp_peer2_localaddr' => 'cbgpPeer2LocalAddr',
'cisco_bgp_peer2_localport' => 'cbgpPeer2LocalPort',
'cisco_bgp_peer2_localas' => 'cbgpPeer2LocalAs',
'cisco_bgp_peer2_localidentifier' => 'cbgpPeer2LocalIdentifier',
'cisco_bgp_peer2_remoteport' => 'cbgpPeer2RemotePort',
'cisco_bgp_peer2_remoteas' => 'cbgpPeer2RemoteAs',
'cisco_bgp_peer2_remoteidentifier' => 'cbgpPeer2RemoteIdentifier',
'cisco_bgp_peer2_inupdates' => 'cbgpPeer2InUpdates',
'cisco_bgp_peer2_outupdates' => 'cbgpPeer2OutUpdates',
'cisco_bgp_peer2_intotalmessages' => 'cbgpPeer2InTotalMessages',
'cisco_bgp_peer2_outtotalmessages' => 'cbgpPeer2OutTotalMessages',
'cisco_bgp_peer2_lasterror' => 'cbgpPeer2LastError',
'cisco_bgp_peer2_fsmestablishedtransitions'
=> 'cbgpPeer2FsmEstablishedTransitions',
'cisco_bgp_peer2_fsmestablishedtime' => 'cbgpPeer2FsmEstablishedTime',
'cisco_bgp_peer2_connectretryinterval'=> 'cbgpPeer2ConnectRetryInterval',
'cisco_bgp_peer2_holdtime' => 'cbgpPeer2HoldTime',
'cisco_bgp_peer2_keepalive' => 'cbgpPeer2KeepAlive',
'cisco_bgp_peer2_holdtimeconfigured' => 'cbgpPeer2HoldTimeConfigured',
'cisco_bgp_peer2_keepaliveconfigured' => 'cbgpPeer2KeepAliveConfigured',
'cisco_bgp_peer2_minasoriginationinterval'
=> 'cbgpPeer2MinASOriginationInterval',
'cisco_bgp_peer2_inupdatelapsedtime' => 'cbgpPeer2InUpdateElapsedTime',
'cisco_bgp_peer2_lasterrortxt' => 'cbgpPeer2LastErrorTxt',
'cisco_bgp_peer2_prevstate' => 'cbgpPeer2PrevState',
# cbgpPeer2AddrFamilyPrefixTable
'cisco_bgp_peer2_acceptedprefixes' => 'cbgpPeer2AcceptedPrefixes',
'cisco_bgp_peer2_deniedprefixes' => 'cbgpPeer2DeniedPrefixes',
'cisco_bgp_peer2_prefixadminlimit' => 'cbgpPeer2PrefixAdminLimit',
'cisco_bgp_peer2_prefixthreshold' => 'cbgpPeer2PrefixThreshold',
'cisco_bgp_peer2_prefixclearthreshold'=> 'cbgpPeer2PrefixClearThreshold',
'cisco_bgp_peer2_advertisedprefixes' => 'cbgpPeer2AdvertisedPrefixes',
'cisco_bgp_peer2_suppressedprefixes' => 'cbgpPeer2SuppressedPrefixes',
'cisco_bgp_peer2_withdrawnprefixes' => 'cbgpPeer2WithdrawnPrefixes',
);
%MUNGE = (
'cisco_bgp_peer2_localaddr' => \&SNMP::Info::munge_inetaddress,
'cisco_bgp_peer2_lasterror' => \&SNMP::Info::munge_octet2hex,
);
sub parse_cisco_bgp_peer2_entry_index {
my ($self, $index) = @_;
my ($type, $addrlength, $ip) = split(/\./, $index, 3);
# decode IPv6 remote address
if ($addrlength == 16) {
# copied from SNMP::Info::IPv6/ipv6_addr
my @parts = split(/\./, $ip);
$ip = sprintf("%x:%x:%x:%x:%x:%x:%x:%x",
unpack('n8', pack('C*', @parts)));
}
return $type, $addrlength, $ip;
}
1;
__END__
=head1 NAME
SNMP::Info::CiscoBGP - SNMP Interface to Cisco's BGP MIBs
=head1 AUTHOR
Alexander Hartmaier
=head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you.
my $device = SNMP::Info->(
AutoSpecify => 1,
Debug => 1,
DestHost => 'myswitch',
Community => 'public',
Version => 2
) or die "Can't connect to DestHost.\n";
my $remoteas_for_index = $device->cisco_bgp_peer2_remoteas;
for my $index (keys $remoteas_for_index->%*) {
my ($type, $addrlength, $ip) =
$device->parse_cisco_bgp_peer2_entry_index($index);
printf('remote: %-39s type: %-4s remote AS: %5d',
$ip, $type, $remoteas_for_index->{$index});
}
=head1 DESCRIPTION
SNMP::Info::CiscoBGP is a subclass of SNMP::Info that provides
information about a cisco device's BGP configuration and state.
Use or create in a subclass of SNMP::Info. Do not use directly.
=head2 Inherited Classes
none.
=head2 Required MIBs
=over
=item F<CISCO-BGP4-MIB>
=back
=head1 GLOBALS
=over
None
=back
=head1 TABLE METHODS
=head2 Cisco BGP Peer 2 Table (cbgpPeer2Table)
This table contains, one entry per BGP peer, information about the connections
with BGP peers.
=over
=item cisco_bgp_peer2_state (cbgpPeer2State)
=item cisco_bgp_peer2_adminstatus (cbgpPeer2AdminStatus)
=item cisco_bgp_peer2_localaddr (cbgpPeer2LocalAddr)
=item cisco_bgp_peer2_localport (cbgpPeer2LocalPort)
=item cisco_bgp_peer2_localas (cbgpPeer2LocalAs)
=item cisco_bgp_peer2_localidentifier (cbgpPeer2LocalIdentifier)
=item cisco_bgp_peer2_remoteport (cbgpPeer2RemotePort)
=item cisco_bgp_peer2_remoteas (cbgpPeer2RemoteAs)
=item cisco_bgp_peer2_remoteidentifier (cbgpPeer2RemoteIdentifier)
=item cisco_bgp_peer2_inupdates (cbgpPeer2InUpdates)
=item cisco_bgp_peer2_outupdates (cbgpPeer2OutUpdates)
=item cisco_bgp_peer2_intotalmessages (cbgpPeer2InTotalMessages)
=item cisco_bgp_peer2_outtotalmessages (cbgpPeer2OutTotalMessages)
=item cisco_bgp_peer2_lasterror (cbgpPeer2LastError)
=item cisco_bgp_peer2_fsmestablishedtransitions (cbgpPeer2FsmEstablishedTransitions)
=item cisco_bgp_peer2_fsmestablishedtime (cbgpPeer2FsmEstablishedTime)
=item cisco_bgp_peer2_connectretryinterval (cbgpPeer2ConnectRetryInterval)
=item cisco_bgp_peer2_holdtime (cbgpPeer2HoldTime)
=item cisco_bgp_peer2_keepalive (cbgpPeer2KeepAlive)
=item cisco_bgp_peer2_holdtimeconfigured (cbgpPeer2HoldTimeConfigured)
=item cisco_bgp_peer2_keepaliveconfigured (cbgpPeer2KeepAliveConfigured)
=item cisco_bgp_peer2_minasoriginationinterval (cbgpPeer2MinASOriginationInterval)
=item cisco_bgp_peer2_inupdatelapsedtime (cbgpPeer2InUpdateElapsedTime)
=item cisco_bgp_peer2_lasterrortxt (cbgpPeer2LastErrorTxt)
=item cisco_bgp_peer2_prevstate (cbgpPeer2PrevState)
=back
=head2 Cisco BGP Peer 2 Address Family Prefix Table (cbgpPeer2AddrFamilyPrefixTable)
This table contains prefix related information related to address families
supported by a peer.
=over
=item cisco_bgp_peer2_acceptedprefixes (cbgpPeer2AcceptedPrefixes)
=item cisco_bgp_peer2_deniedprefixes (cbgpPeer2DeniedPrefixes)
=item cisco_bgp_peer2_prefixadminlimit (cbgpPeer2PrefixAdminLimit)
=item cisco_bgp_peer2_prefixthreshold (cbgpPeer2PrefixThreshold)
=item cisco_bgp_peer2_prefixclearthreshold (cbgpPeer2PrefixClearThreshold)
=item cisco_bgp_peer2_advertisedprefixes (cbgpPeer2AdvertisedPrefixes)
=item cisco_bgp_peer2_suppressedprefixes (cbgpPeer2SuppressedPrefixes)
=item cisco_bgp_peer2_withdrawnprefixes (cbgpPeer2WithdrawnPrefixes)
=back
=head2 METHODS
=over
=item parse_cisco_bgp_peer2_entry_index
Takes a cbgpPeer2Entry index as returned by all methods of the Cisco BGP Peer
2 Table methods.
Returns a list of type (numeric, cbgpPeer2Type), address length (in bytes:
4 for IPv4, 16 for IPv6) and the remote IP address as string.
=back
=cut

View File

@@ -39,7 +39,7 @@ use SNMP::Info;
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
'CISCO-CONFIG-COPY-MIB' => 'ccCopyTable',

View File

@@ -39,7 +39,7 @@ use SNMP::Info;
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE, %PAECAPABILITIES);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
'CISCO-PORT-SECURITY-MIB' => 'ciscoPortSecurityMIB',

View File

@@ -39,7 +39,7 @@ use SNMP::Info;
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = ( 'CISCO-POWER-ETHERNET-EXT-MIB' => 'cpeExtPsePortEntPhyIndex',
'CISCO-CDP-MIB' => 'cdpCachePowerConsumption',

View File

@@ -39,7 +39,7 @@ use SNMP::Info;
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = ( 'CISCO-CLASS-BASED-QOS-MIB' => 'cbQosIfIndex', );

View File

@@ -39,7 +39,7 @@ use SNMP::Info;
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = ( 'CISCO-RTTMON-MIB' => 'rttMonCtrlAdminOwner', );

View File

@@ -38,7 +38,7 @@ use Exporter;
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE, %PORTSTAT);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = ( 'CISCO-STACK-MIB' => 'ciscoStackMIB', );

View File

@@ -42,7 +42,7 @@ use SNMP::Info;
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
'SNMPv2-MIB' => 'sysDescr',

View File

@@ -36,7 +36,7 @@ use SNMP::Info::Bridge;
our ($VERSION, $DEBUG, %MIBS, %FUNCS, %GLOBALS, %MUNGE, %PORTSTAT, $INIT);
$VERSION = '3.70';
$VERSION = '3.83';
@SNMP::Info::CiscoStpExtensions::ISA = qw/SNMP::Info::Bridge SNMP::Info Exporter/;
@SNMP::Info::CiscoStpExtensions::EXPORT_OK = qw//;

View File

@@ -41,7 +41,7 @@ use SNMP::Info;
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
'CISCO-VTP-MIB' => 'vtpVlanName',

View File

@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::Layer2::MIBS

View File

@@ -11,7 +11,7 @@ use SNMP::Info;
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
'DOCS-IF3-MIB' => 'docsIf3Mib',

View File

@@ -40,7 +40,7 @@ use SNMP::Info;
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
'EXTREME-EDP-MIB' => 'extremeEdpPortIfIndex',

View File

@@ -41,7 +41,7 @@ use SNMP::Info;
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = ( 'ENTITY-MIB' => 'entPhysicalSerialNum' );

View File

@@ -41,7 +41,7 @@ use SNMP::Info;
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = ( 'EtherLike-MIB' => 'etherMIB' );

View File

@@ -42,7 +42,7 @@ use SNMP::Info;
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = ( 'FOUNDRY-SN-SWITCH-GROUP-MIB' => 'snFdpGlobalRun' );

View File

@@ -0,0 +1,230 @@
# SNMP::Info::IEEE802_Bridge
#
# Changes since Version 0.7 Copyright (c) 2004 Max Baker
# All rights reserved.
#
# Copyright (c) 2002,2003 Regents of the University of California
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of the University of California, Santa Cruz nor the
# names of its contributors may be used to endorse or promote products
# derived from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
# LIABLE FOR # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::IEEE802_Bridge;
use strict;
use warnings;
use Exporter;
use SNMP::Info;
@SNMP::Info::IEEE802_Bridge::ISA = qw/SNMP::Info Exporter/;
@SNMP::Info::IEEE802_Bridge::EXPORT_OK = qw//;
our ($VERSION, $DEBUG, %MIBS, %FUNCS, %GLOBALS, %MUNGE, $INIT);
$VERSION = '3.83';
%MIBS = (
'IEEE8021-Q-BRIDGE-MIB' => 'ieee8021QBridgeVlanCurrentEgressPorts',
);
%GLOBALS = (
);
%FUNCS = (
'iqb_i_vlan' => 'ieee8021QBridgePvid',
'iqb_i_vlan_type' => 'ieee8021QBridgePortAcceptableFrameTypes',
'iqb_i_vlan_in_flt' => 'ieee8021QBridgePortIngressFiltering',
'iqb_cv_egress' => 'ieee8021QBridgeVlanCurrentEgressPorts',
'iqb_cv_untagged' => 'ieee8021QBridgeVlanCurrentUntaggedPorts',
'iqb_cv_stat' => 'ieee8021QBridgeVlanStatus',
'iqb_v_name' => 'ieee8021QBridgeVlanStaticName',
'iqb_v_egress' => 'ieee8021QBridgeVlanStaticEgressPorts',
'iqb_v_fbdn_egress' => 'ieee8021QBridgeVlanForbiddenEgressPorts',
'iqb_v_untagged' => 'ieee8021QBridgeVlanStaticUntaggedPorts',
'iqb_v_stat' => 'ieee8021QBridgeVlanStaticRowStatus',
);
%MUNGE = (
# Inherit all the built in munging
%SNMP::Info::MUNGE,
# Add ones for our class
'iqb_cv_egress' => \&SNMP::Info::munge_port_list,
'iqb_cv_untagged' => \&SNMP::Info::munge_port_list,
'iqb_v_egress' => \&SNMP::Info::munge_port_list,
'iqb_v_fbdn_egress' => \&SNMP::Info::munge_port_list,
'iqb_v_untagged' => \&SNMP::Info::munge_port_list,
);
1;
__END__
=head1 NAME
SNMP::Info::IEEE802_Bridge - SNMP Interface to SNMP data available through the
F<IEEE8021-Q-BRIDGE-MIB>
=head1 AUTHOR
Jeroen van Ingen
=head1 SYNOPSIS
FIXME update with better example
my $bridge = new SNMP::Info (
AutoSpecify => 1,
Debug => 1,
DestHost => 'switch',
Community => 'public',
Version => 2
);
my $class = $bridge->class();
print " Using device sub class : $class\n";
# Grab Forwarding Tables
my $interfaces = $bridge->interfaces();
my $fw_mac = $bridge->fw_mac();
my $fw_port = $bridge->fw_port();
my $bp_index = $bridge->bp_index();
foreach my $fw_index (keys %$fw_mac){
my $mac = $fw_mac->{$fw_index};
my $bp_id = $fw_port->{$fw_index};
my $iid = $bp_index->{$bp_id};
my $port = $interfaces->{$iid};
print "Port:$port forwarding to $mac\n";
}
=head1 DESCRIPTION
F<IEEE8021-Q-BRIDGE-MIB> is used by some newer switches / Layer 2 devices.
It is derived from the IETF Q-BRIDGE-MIB (RFC 4363), extending it with the
concept of multiple VLAN-aware bridges (PBB).
Create or use a subclass of SNMP::Info that inherits this class. Do not use
directly.
For debugging you can call new() directly as you would in SNMP::Info
my $bridge = new SNMP::Info::IEEE802_Bridge(...);
=head2 Inherited Classes
None.
=head2 Required MIBs
=over
=item F<IEEE8021-Q-BRIDGE-MIB>
=back
=head1 GLOBALS
These are methods that return scalar values from SNMP
=over
=back
=head1 TABLE METHODS
These are methods that return tables of information in the form of a reference
to a hash.
=head2 Per-port VLAN configuration in the device (C<ieee8021QBridgePortVlanTable>)
=over
=item $bridge->iqb_i_vlan()
(C<ieee8021QBridgePvid>)
=item $bridge->iqb_i_vlan_type()
(C<ieee8021QBridgePortAcceptableFrameTypes>)
=item $bridge->iqb_i_vlan_in_flt()
(C<ieee8021QBridgePortIngressFiltering>)
=back
=head2 VLAN Current Table (C<ieee8021QBridgeVlanCurrentTable>)
=over
=item $bridge->iqb_cv_egress()
(C<ieee8021QBridgeVlanCurrentEgressPorts>)
=item $bridge->iqb_cv_untagged()
(C<ieee8021QBridgeVlanCurrentUntaggedPorts>)
=item $bridge->iqb_cv_stat()
(C<ieee8021QBridgeVlanStatus>)
=back
=head2 VLAN Static Table (C<ieee8021QBridgeVlanStaticTable>)
=over
=item $bridge->iqb_v_name()
(C<ieee8021QBridgeVlanStaticName>)
=item $bridge->iqb_v_egress()
(C<ieee8021QBridgeVlanStaticEgressPorts>)
=item $bridge->iqb_v_fbdn_egress()
(C<ieee8021QBridgeVlanForbiddenEgressPorts>)
=item $bridge->iqb_v_untagged()
(C<ieee8021QBridgeVlanStaticUntaggedPorts>)
=item $bridge->iqb_v_stat()
C<active> !
(C<ieee8021QBridgeVlanStaticRowStatus>)
=back
=cut

View File

@@ -39,7 +39,7 @@ use SNMP::Info;
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = ( 'IEEE802dot11-MIB' => 'dot11DesiredSSID', );

View File

@@ -44,7 +44,7 @@ use SNMP::Info::Aggregate;
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::Aggregate::MIBS,

View File

@@ -45,7 +45,7 @@ use constant {
IPV6MIB => 3,
};
$VERSION = '3.70';
$VERSION = '3.83';
@@ -349,7 +349,7 @@ sub ipv6_addr_prefixlength {
# Remove interface specific part from vrf interfaces
if ($row =~ /^((\d+\.){17}\d+)/) { $row = $1 }
# Remove the OID part from the value
my $val = $ipv6_addr_prefix->{$row};
my $val = $ipv6_addr_prefix->{$row} || '';
if ( $val =~ /^.+?((?:\d+\.){19}(\d+))$/ ) {
$val = $2;
$return->{$row} = $val;
@@ -363,7 +363,7 @@ sub ipv6_addr_prefixlength {
sub ipv6_addr {
my $info = shift;
my $return;
my $return = {};
my $indexes = $info->ipv6_index();
foreach my $row (keys %$indexes) {
my @parts = split(/\./, $row);
@@ -377,8 +377,8 @@ sub ipv6_addr {
my $addrsize = shift @parts; # First element now is addrsize, should be 16
if ($is_valid && $addrsize == 16) {
$return->{$row} = join(':', unpack('(H4)*', pack('C*', @parts)));
} else {
warn sprintf("%s: unable to decode table index to IPv6 address. Raw data is [%s].\n", &_my_sub_name, $row);
} elsif ($info->debug()) {
printf("%s: unable to decode table index to IPv6 address. Raw data is [%s].\n", &_my_sub_name, $row);
}
}
return $return;

View File

@@ -39,7 +39,7 @@ use SNMP::Info;
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
'LLDP-MIB' => 'lldpLocSysCapEnabled',
@@ -55,10 +55,13 @@ $VERSION = '3.70';
);
%FUNCS = (
# LLDP-MIB::lldpLocManAddrTable
'lldp_lman_addr' => 'lldpLocManAddrIfId',
# LLDP-MIB::LldpLocPortEntry
'lldp_lport_id' => 'lldpLocPortId',
'lldp_lport_desc' => 'lldpLocPortDesc',
# LLDP-MIB::lldpRemTable
'lldp_rem_id_type' => 'lldpRemChassisIdSubtype',
'lldp_rem_id' => 'lldpRemChassisId',
@@ -92,6 +95,8 @@ $VERSION = '3.70';
'lldp_rem_sysname' => \&SNMP::Info::munge_null,
'lldp_rem_sysdesc' => \&SNMP::Info::munge_null,
'lldp_rem_port_desc' => \&SNMP::Info::munge_null,
'lldp_lport_id' => \&SNMP::Info::munge_null,
'lldp_lport_desc' => \&SNMP::Info::munge_null,
'lldp_sys_cap' => \&SNMP::Info::munge_bits,
'lldp_rem_sys_cap' => \&SNMP::Info::munge_bits,
'lldp_rem_cap_spt' => \&SNMP::Info::munge_bits,
@@ -146,7 +151,11 @@ sub lldp_if {
# ifAlias because using cross ref with description is correct
# behavior according to the LLDP-MIB. Some devices (eg H3C gear)
# seem to use ifAlias though.
my $lldp_desc = $lldp->lldpLocPortDesc($port);
# snmp::info #372 -> to make things even more complex some devices
# have different behaviour depending on os version (nx-os 6 vs 7)
# so we made this a function to allow overrides in more specific
# modules
my $lldp_desc = $lldp->lldp_lport_desc($port);
my $desc = $lldp_desc->{$port};
# If cross reference is successful use it, otherwise stick with

View File

@@ -41,7 +41,7 @@ use SNMP::Info;
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %PORTSTAT, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = ( %SNMP::Info::MIBS, 'SNMP-REPEATER-MIB' => 'rptrPortGroupIndex' );

View File

@@ -41,7 +41,7 @@ use SNMP::Info::Layer1;
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
# Set for No CDP
%GLOBALS = ( %SNMP::Info::Layer1::GLOBALS, 'root_ip' => 'actualIPAddr', );

View File

@@ -41,7 +41,7 @@ use SNMP::Info::Layer1;
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
# Set for No CDP
%GLOBALS = ( %SNMP::Info::Layer1::GLOBALS, );

View File

@@ -42,7 +42,7 @@ use SNMP::Info::Layer2;
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::Layer2::MIBS,

View File

@@ -39,7 +39,7 @@ use SNMP::Info::Layer1;
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE, $AUTOLOAD);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::Layer1::MIBS,

View File

@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::Layer2::MIBS,

View File

@@ -47,7 +47,7 @@ use SNMP::Info::DocsisHE;
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %PORTSTAT, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::MIBS, %SNMP::Info::Bridge::MIBS,
@@ -105,8 +105,8 @@ sub model {
sub vendor {
my $l2 = shift;
my $model = $l2->model();
my $descr = $l2->description();
my $model = $l2->model() || '';
my $descr = $l2->description() || '';
if ( $model =~ /hp/i or $descr =~ /\bhp\b/i ) {
return 'hp';

View File

@@ -39,7 +39,7 @@ use SNMP::Info::CDP;
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE, $AUTOLOAD);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::Layer2::MIBS,

View File

@@ -39,7 +39,7 @@ use SNMP::Info::Layer3;
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
# This will be filled in with the device's index into the EntPhysicalEntry
# table by the serial() function.

View File

@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::Layer2::MIBS,
@@ -108,7 +108,7 @@ sub os_ver {
my $aerohive = shift;
my $descr = $aerohive->description();
if ( defined ($descr) && $descr =~ m/\bHiveOS\s(\d\.\w+)\b/ix ) {
if ( defined ($descr) && $descr =~ m/\bHiveOS\s(\d+\.\w+)\b/ix ) {
return $1;
}
return;
@@ -318,7 +318,8 @@ __END__
=head1 NAME
SNMP::Info::Layer2::Aerohive - SNMP Interface to Aerohive Access Points
SNMP::Info::Layer2::Aerohive - SNMP Interface to Aerohive / Extreme
access points
=head1 AUTHOR
@@ -342,7 +343,7 @@ Eric Miller
=head1 DESCRIPTION
Provides abstraction to the configuration information obtainable from an
Aerohive wireless Access Point through SNMP.
Aerohive / Extreme wireless access point through SNMP.
=head2 Inherited Classes
@@ -448,11 +449,11 @@ radio interface.
C<ahRadioTxPower>
=item $aironet->cd11_port()
=item $aerohive->cd11_port()
Returns radio interfaces.
=item $aironet->cd11_mac()
=item $aerohive->cd11_mac()
Returns client radio interface MAC addresses.

View File

@@ -31,6 +31,7 @@ package SNMP::Info::Layer2::Airespace;
use strict;
use warnings;
use Exporter;
use SNMP::Info::Bridge;
use SNMP::Info::CDP;
use SNMP::Info::Airespace;
@@ -40,7 +41,7 @@ use SNMP::Info::Airespace;
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::MIBS, %SNMP::Info::Bridge::MIBS,

View File

@@ -48,7 +48,7 @@ use SNMP::Info::IEEE802dot11;
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%GLOBALS = (
%SNMP::Info::IEEE802dot11::GLOBALS,

View File

@@ -40,7 +40,7 @@ use SNMP::Info::Layer1;
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%GLOBALS = ( %SNMP::Info::Layer2::GLOBALS );

View File

@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = ( %SNMP::Info::Layer2::MIBS );

View File

@@ -45,7 +45,7 @@ use SNMP::Info::Layer3;
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::Layer3::MIBS,
@@ -552,10 +552,6 @@ Returns reference to the map between IID and physical Port.
The physical port name is returned as slot.port.
=item $baystack->i_ignore()
Returns reference to hash of IIDs to ignore.
=item $baystack->i_mac()
Returns the C<ifPhysAddress> table entries.

View File

@@ -48,7 +48,7 @@ use SNMP::Info::Layer2;
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%GLOBALS = (
%SNMP::Info::Layer2::GLOBALS,

View File

@@ -41,7 +41,7 @@ use SNMP::Info::Layer2::Cisco;
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%GLOBALS = (
%SNMP::Info::Layer2::Cisco::GLOBALS,

View File

@@ -42,7 +42,7 @@ use SNMP::Info::Layer2::Cisco;
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::Layer2::Cisco::MIBS,

View File

@@ -42,7 +42,7 @@ use SNMP::Info::SONMP;
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::MIBS,

View File

@@ -52,7 +52,7 @@ use SNMP::Info::Layer2;
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::Layer2::MIBS,

View File

@@ -49,7 +49,7 @@ use SNMP::Info::CDP;
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%GLOBALS = (
%SNMP::Info::Layer2::GLOBALS,

View File

@@ -43,7 +43,7 @@ use SNMP::Info::Layer2;
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::Layer2::MIBS,

View File

@@ -50,7 +50,7 @@ use SNMP::Info::Aggregate 'agg_ports_ifstack';
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %PORTSTAT, %MODEL_MAP, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::Layer3::MIBS,

View File

@@ -45,7 +45,7 @@ use SNMP::Info::CDP;
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %PORTSTAT, %MODEL_MAP, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::Layer3::MIBS,

View File

@@ -41,7 +41,7 @@ use SNMP::Info::Layer2;
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::Layer2::MIBS,

View File

@@ -37,7 +37,7 @@ use SNMP::Info::Layer2;
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE, $AUTOLOAD);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::Layer2::MIBS,

View File

@@ -42,7 +42,7 @@ use SNMP::Info::Airespace;
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE, $AUTOLOAD, $INIT, $DEBUG);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::Layer2::MIBS,

View File

@@ -42,7 +42,7 @@ use SNMP::Info::Layer2;
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::Layer2::MIBS, %SNMP::Info::IEEE802dot11::MIBS,

View File

@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::Layer2::MIBS,
@@ -53,9 +53,9 @@ $VERSION = '3.70';
%GLOBALS = (
%SNMP::Info::Layer2::GLOBALS,
'os_ver' => 'ntwsVersionString',
'serial' => 'ntwsSerialNumber',
'mac' => 'dot1dBaseBridgeAddress',
'os_ver' => 'ntwsVersionString',
'nws_serial' => 'ntwsSerialNumber',
'mac' => 'dot1dBaseBridgeAddress',
);
%FUNCS = (
@@ -139,6 +139,14 @@ sub vendor {
return 'avaya';
}
sub serial {
my $nwss2300 = shift;
my $ser = $nwss2300->ntwsSerialNumber();
# my $ser = $nwss2300->nws_serial();
return $ser;
}
sub model {
my $nwss2300 = shift;
my $id = $nwss2300->id();
@@ -654,7 +662,7 @@ sub e_serial {
my %e_serial;
# Chassis
$e_serial{1} = $nwss2300->serial();
$e_serial{1} = $nwss2300->serial() || '';
# APs
foreach my $iid ( keys %$ap_serial ) {

View File

@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
# This will be filled in with the device's index into the EntPhysicalEntry
# table by the serial() function.

View File

@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::Layer2::MIBS,

View File

@@ -41,7 +41,7 @@ use SNMP::Info::Layer2;
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::Layer2::MIBS,

View File

@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (%SNMP::Info::Layer2::MIBS, 'SIXNET-MIB' => 'sxid',);

View File

@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::Layer2::MIBS,
@@ -53,9 +53,9 @@ $VERSION = '3.70';
%GLOBALS = (
%SNMP::Info::Layer2::GLOBALS,
'os_ver' => 'trpzVersionString',
'serial' => 'trpzSerialNumber',
'mac' => 'dot1dBaseBridgeAddress',
'os_ver' => 'trpzVersionString',
'tr_serial' => 'trpzSerialNumber',
'mac' => 'dot1dBaseBridgeAddress',
);
%FUNCS = (
@@ -138,6 +138,14 @@ sub vendor {
return 'juniper';
}
sub serial {
my $trapeze = shift;
my $ser = $trapeze->trpzSerialNumber();
# my $ser = $trapeze->tr_serial();
return $ser;
}
sub model {
my $trapeze = shift;
my $id = $trapeze->id();
@@ -653,7 +661,7 @@ sub e_serial {
my %e_serial;
# Chassis
$e_serial{1} = $trapeze->serial();
$e_serial{1} = $trapeze->serial() || '';
# APs
foreach my $iid ( keys %$ap_serial ) {

View File

@@ -43,7 +43,7 @@ use SNMP::Info::Layer3; # only used in sub mac()
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::Layer2::MIBS,
@@ -199,6 +199,9 @@ sub model {
}if($ethCount eq 8){
## Could be ER-8 Pro, ER-8, or EP-R8
return "EdgeRouter 8-Port"
}if($ethCount eq 12){
## ER-12
return "EdgeRouter 12-Port"
}elsif($ethCount eq 5 and $cpuCount eq 4){
## Could be ER-X or ER-X-SFP
return "EdgeRouter X 5-Port"
@@ -230,13 +233,14 @@ sub serial {
sub mac {
my $ubnt = shift;
my $ifDescs = $ubnt->ifDescr;
my $erModel = $ubnt->model;
foreach my $iid ( keys %$ifDescs ) {
my $ifDesc = $ifDescs->{$iid};
next unless defined $ifDesc;
## CPU Interface will have the primary MAC for EdgeSwitch
## eth0 will have primary MAC for linux-based UBNT devices
if($ifDesc =~ /CPU/ or $ifDesc eq 'eth0'){
## eth0 will have primary MAC for linux-based UBNT devices, except ER-12 which is eth11
if($ifDesc =~ /CPU/ or ($ifDesc eq 'eth0' and !($erModel =~ /EdgeRouter 12/)) or ($ifDesc eq 'eth11' and ($erModel =~ /EdgeRouter 12/))){
my $mac = $ubnt->ifPhysAddress->{$iid};
# syntax stolen from sub munge_mac in SNMP::Info
@@ -250,11 +254,11 @@ sub mac {
}
sub interfaces {
my $netgear = shift;
my $ubnt = shift;
my $partial = shift;
my $interfaces = $netgear->i_index($partial) || {};
my $i_descr = $netgear->i_description($partial) || {};
my $interfaces = $ubnt->i_index($partial) || {};
my $i_descr = $ubnt->i_description($partial) || {};
my $return = {};
foreach my $iid ( keys %$i_descr ) {
@@ -368,11 +372,11 @@ Bridge MAC address.
=item $ubnt->os()
Returns 'Ubiquiti Networks, Inc.'
Returns C<AirOS>, C<UniFi> or C<EdgeOS> depending on model.
=item $ubnt->os_ver()
Returns the software version extracted from C<dot11manufacturerProductVersion>, with failback to description splitting for EdgeMax devices
Returns the software version extracted from C<dot11manufacturerProductVersion>, with fallback to description splitting for EdgeMax devices
=back
@@ -393,11 +397,11 @@ to a hash.
=over
=item $ubiquiti->interfaces()
=item $ubnt->interfaces()
Uses the i_name() field.
=item $ubiquiti->i_ignore()
=item $ubnt->i_ignore()
Ignores interfaces with "CPU Interface" in them.

View File

@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
# Set for No CDP
%GLOBALS = ( %SNMP::Info::Layer2::GLOBALS );

View File

@@ -54,7 +54,7 @@ use SNMP::Info::DocsisHE;
our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::MIBS,
@@ -357,8 +357,8 @@ sub interfaces {
sub vendor {
my $l3 = shift;
my $descr = $l3->description();
my $id = $l3->id();
my $descr = $l3->description() || '';
my $id = $l3->id() || '';
# .1.3.6.1.4.1.9.1 is the CISCO-PRODUCTS-MIB
# .1.3.6.1.4.1.9.9.368.4 is an old tree that Cisco CSSs were numbered from

View File

@@ -41,7 +41,7 @@ use SNMP::Info::Layer3;
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::Layer3::MIBS,

View File

@@ -49,7 +49,7 @@ use SNMP::Info::LLDP;
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::Layer3::MIBS,

View File

@@ -39,7 +39,7 @@ use SNMP::Info::Layer3;
our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::Layer3::MIBS,

View File

@@ -40,7 +40,7 @@ use SNMP::Info::Layer3;
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE,
$int_include_vpn, $fake_idx, $type_class);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::Layer3::MIBS,

View File

@@ -46,7 +46,7 @@ use SNMP::Info::Aggregate 'agg_ports_ifstack';
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::Layer3::MIBS,
@@ -128,6 +128,11 @@ sub lldp_if {
return $lldp_if;
}
sub set_i_vlan {
my ($arista, $vlan, $iid) = @_;
return $arista->set_qb_i_vlan($vlan, $iid);
}
sub agg_ports { return agg_ports_ifstack(@_) }
1;
@@ -258,4 +263,17 @@ See documentation in L<SNMP::Info::Layer3/"TABLE METHODS"> for details.
See documentation in L<SNMP::Info::MAU/"TABLE METHODS"> for details.
=head1 SET METHODS
These are methods that provide SNMP set functionality for overridden methods
or provide a simpler interface to complex set operations. See
L<SNMP::Info/"SETTING DATA VIA SNMP"> for general information on set
operations.
=over
=item set_i_vlan()
=back
=cut

View File

@@ -39,7 +39,7 @@ use SNMP::Info::Layer3;
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::Layer3::MIBS,

View File

@@ -0,0 +1,340 @@
# SNMP::Info::Layer3::ArubaCX
#
# Copyright (c) 2021 Jeroen van Ingen
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of the University of California, Santa Cruz nor the
# names of its contributors may be used to endorse or promote products
# derived from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
# LIABLE FOR # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
package SNMP::Info::Layer3::ArubaCX;
use strict;
use warnings;
use Exporter;
use SNMP::Info::IEEE802dot3ad 'agg_ports_lag';
use SNMP::Info::Layer3;
use SNMP::Info::IEEE802_Bridge;
@SNMP::Info::Layer3::ArubaCX::ISA = qw/
SNMP::Info::IEEE802dot3ad
SNMP::Info::Layer3
SNMP::Info::IEEE802_Bridge
Exporter
/;
@SNMP::Info::Layer3::ArubaCX::EXPORT_OK = qw/
agg_ports
/;
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::Layer3::MIBS,
%SNMP::Info::IEEE802dot3ad::MIBS,
%SNMP::Info::IEEE802_Bridge::MIBS,
'ARUBAWIRED-FAN-MIB' => 'arubaWiredFanName',
'ARUBAWIRED-VSF-MIB' => 'arubaWiredVsfTrapEnable',
'ARUBAWIRED-POWERSUPPLY-MIB' => 'arubaWiredPSUName',
);
%GLOBALS = (
%SNMP::Info::Layer3::GLOBALS,
%SNMP::Info::IEEE802_Bridge::GLOBALS,
'ps1_type' => 'arubaWiredPSUProductName.1.1',
'ps2_type' => 'arubaWiredPSUProductName.1.2',
'ps1_status' => 'arubaWiredPSUState.1.1',
'ps2_status' => 'arubaWiredPSUState.1.2',
'vsf_topology' => 'arubaWiredVsfTopology',
);
%FUNCS = (
%SNMP::Info::Layer3::FUNCS,
%SNMP::Info::IEEE802dot3ad::FUNCS,
%SNMP::Info::IEEE802_Bridge::FUNCS,
'fan_names' => 'arubaWiredFanName',
'fan_states' => 'arubaWiredFanState',
'psu_names' => 'arubaWiredPSUName',
'psu_types' => 'arubaWiredPSUProductName',
'psu_states' => 'arubaWiredPSUState',
'vsf_prod_names' => 'arubaWiredVsfMemberProductName',
);
%MUNGE = (
%SNMP::Info::Layer3::MUNGE,
%SNMP::Info::IEEE802dot3ad::MUNGE,
%SNMP::Info::IEEE802_Bridge::MUNGE,
);
sub _at_pbb_one {
my $in = shift // {};
my $ret = {};
foreach my $key (keys %$in) {
if ($key =~ /^1\.(\d+)$/) {
$ret->{$1} = $in->{$key};
}
}
return $ret;
}
sub fan {
my $cx = shift;
my $names = $cx->fan_names() || {};
my $states = $cx->fan_states() || {};
my @ary = ();
foreach my $idx (sort keys %$names) {
my $name = $names->{$idx} // 'n/a';
my $state = $states->{$idx} // 'n/a';
push @ary, sprintf("%s: %s", $name, $state);
}
return join (', ', @ary);
}
sub vendor {
my $cx = shift;
my $mfg = $cx->entPhysicalMfgName(1) || {};
my $vendor = $mfg->{1} || "aruba";
return lc($vendor);
}
sub stack_info {
my $cx = shift;
my $vsf_topo = $cx->vsf_topology();
if (defined $vsf_topo and $vsf_topo ne 'standalone') {
my $member_prod_names = $cx->vsf_prod_names() || {};
my $num_members = scalar keys %$member_prod_names;
my $fullname = (values %$member_prod_names)[0];
my $modelname = '';
if ($fullname =~ /^(\S+)/) {
$modelname = $1;
}
return sprintf("%s (stack of %d)", $modelname, $num_members);
} else {
return;
}
}
sub model {
my $cx = shift;
my $model = $cx->entPhysicalModelName(1) || {};
my $id = $cx->id();
my $translated_id = &SNMP::translateObj($id) || $id;
$translated_id =~ s/arubaWiredSwitch//i;
return $cx->stack_info() || $model->{1} || $translated_id;
}
sub os {
return "arubaos-cx";
}
sub os_ver {
my $cx = shift;
my $ver_release = $cx->entPhysicalSoftwareRev(1) || {};
return $ver_release->{1};
}
sub agg_ports { return agg_ports_lag(@_) }
# Overrides for VLAN & forwarding table methods
sub v_name {
my $cx = shift;
return _at_pbb_one($cx->iqb_v_name()) || $cx->SUPER::v_name();
}
sub qb_i_vlan {
my $cx = shift;
return _at_pbb_one($cx->iqb_i_vlan()) || $cx->SUPER::qb_i_vlan();
}
sub i_vlan_type {
my $cx = shift;
return _at_pbb_one($cx->iqb_i_vlan_type()) || $cx->SUPER::qb_i_vlan_type();
}
sub qb_v_egress {
my $cx = shift;
return $cx->iqb_v_egress() || $cx->SUPER::qb_v_egress();
}
sub qb_cv_egress {
my $cx = shift;
return $cx->iqb_cv_egress() || $cx->SUPER::qb_cv_egress();
}
sub qb_v_untagged {
my $cx = shift;
return $cx->iqb_v_untagged() || $cx->SUPER::qb_v_untagged();
}
sub qb_cv_untagged {
my $cx = shift;
return $cx->iqb_cv_untagged() || $cx->SUPER::qb_cv_untagged();
}
1;
__END__
=head1 NAME
SNMP::Info::Layer3::ArubaCX - SNMP Interface to L3 Devices running ArubaOS-CX
=head1 AUTHORS
Jeroen van Ingen
=head1 SYNOPSIS
# Let SNMP::Info determine the correct subclass for you.
my $cx = new SNMP::Info(
AutoSpecify => 1,
Debug => 1,
DestHost => 'myrouter',
Community => 'public',
Version => 2
)
or die "Can't connect to DestHost.\n";
my $class = $cx->class();
print "SNMP::Info determined this device to fall under subclass : $class\n";
=head1 DESCRIPTION
Subclass for devices running ArubaOS-CX
=head2 Inherited Classes
=over
=item SNMP::Info::Layer3
=item SNMP::Info::IEEE802_Bridge
=item SNMP::Info::IEEE802dot3ad
=back
=head2 Required MIBs
=over
=item F<ARUBAWIRED-FAN-MIB>
=item F<ARUBAWIRED-VSF-MIB>
=item F<ARUBAWIRED-POWERSUPPLY-MIB>
=item Inherited Classes' MIBs
See L<SNMP::Info::Layer3> for its own MIB requirements.
See L<SNMP::Info::IEEE802_Bridge> for its own MIB requirements.
See L<SNMP::Info::IEEE802dot3ad> for its own MIB requirements.
=back
=head1 GLOBALS
These are methods that return scalar value from SNMP
=over
=item $cx->stack_info()
If the device supports VSF stacking and is not in standalone mode, returns
a string describing the switch family and the number of stack members.
Example return value: '6300M (stack of 2)'. Will return undef when VSF is not
supported or when the device is VSF standalone.
=item $cx->model()
Returns L<stack_info()> if defined, otherwise will fall back to returning the
model from C<entPhysicalModelName.1>; if that's also not set, will use
C<sysObjectID> as a last resort, stripping 'arubaWiredSwitch' from the value.
=item $cx->vendor()
Returns (lowercased) value for C<entPhysicalMfgName.1>, or 'aruba'.
=item $cx->os()
Returns 'arubaos-cx'.
=item $cx->os_ver()
Returns the software version. Either C<entPhysicalSoftwareRev.1> or
extracted from C<sysDescr>.
=item $cx->fan()
Returns a string with status information for all fans listed in
C<ARUBAWIRED-FAN-MIB>.
=back
=head2 Globals imported from SNMP::Info::Layer3
See documentation in L<SNMP::Info::Layer3> for details.
=head2 Globals imported from SNMP::Info::IEEE802_Bridge
See documentation in L<SNMP::Info::IEEE802_Bridge> for details.
=head2 Globals imported from SNMP::Info::IEEE802dot3ad
See documentation in L<SNMP::Info::IEEE802dot3ad> for details.
=head1 TABLE ENTRIES
These are methods that return tables of information in the form of a reference
to a hash.
=head2 Overrides
=over
=item C<agg_ports>
Returns a HASH reference mapping from slave to master port for each member of
a port bundle on the device. Keys are ifIndex of the slave ports, Values are
ifIndex of the corresponding master ports.
=item C<v_name>
=item C<qb_i_vlan>
=item C<i_vlan_type>
=item C<qb_v_egress>
=item C<qb_cv_egress>
=item C<qb_v_untagged>
=item C<qb_cv_untagged>
All overridden to return the VLAN data structures that we'd expect for a
device that implements C<Q-BRIDGE-MIB>, but with data from
L<SNMP::Info::IEEE8021_Bridge> at PBB 1.
=back
=head2 Table Methods imported from SNMP::Info::Layer3
See documentation in L<SNMP::Info::Layer3> for details.
=head2 Table Methods imported from SNMP::Info::IEEE802_Bridge
See documentation in L<SNMP::Info::IEEE802_Bridge> for details.
=head2 Table Methods imported from SNMP::Info::IEEE802dot3ad
See documentation in L<SNMP::Info::IEEE802dot3ad> for details.
=cut

View File

@@ -41,7 +41,7 @@ use SNMP::Info::Layer3;
our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE, %MODEL_MAP,
%MODID_MAP, %PROCID_MAP);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::Layer3::MIBS,

View File

@@ -37,7 +37,7 @@ use SNMP::Info::Layer3;
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::Layer2::MIBS, %SNMP::Info::Layer3::MIBS,

View File

@@ -46,7 +46,7 @@ our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
@SNMP::Info::Layer3::C3550::EXPORT_OK = qw//;
$VERSION = '3.70';
$VERSION = '3.83';
# NOTE: Order creates precedence
# Example: v_name exists in Bridge.pm and CiscoVTP.pm

View File

@@ -43,7 +43,7 @@ use SNMP::Info::MAU;
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::MAU::MIBS,

View File

@@ -48,7 +48,7 @@ our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
@SNMP::Info::Layer3::C6500::EXPORT_OK = qw//;
$VERSION = '3.70';
$VERSION = '3.83';
# NOTE: Order creates precedence
# Example: v_name exists in Bridge.pm and CiscoVTP.pm

View File

@@ -39,7 +39,7 @@ use SNMP::Info::Layer3;
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::Layer3::MIBS,

View File

@@ -39,7 +39,7 @@ use SNMP::Info::Layer3;
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::Layer3::MIBS,
@@ -182,7 +182,21 @@ sub ps2_status {
my $ps_status = $ciena->ps_status;
return $ps_status->{'2'} if defined $ps_status->{'2'};
}
1;
__END__
=head1 NAME
SNMP::Info::Layer3::Ciena - SNMP Interface to Ciena Devices
=head1 AUTHORS
pyro3d
=head1 DESCRIPTION
Subclass for Ciena Devices running SAOS
=head2 Inherited Classes
@@ -323,3 +337,5 @@ Returns reference to hash of fans and their types (ex. fixed, modular, etc.)
Returns reference to hash of fans and their status
=back
=cut

View File

@@ -32,6 +32,7 @@ package SNMP::Info::Layer3::Cisco;
use strict;
use warnings;
use Exporter;
use SNMP::Info::CiscoBGP;
use SNMP::Info::CiscoVTP;
use SNMP::Info::CDP;
use SNMP::Info::CiscoStats;
@@ -42,7 +43,9 @@ use SNMP::Info::CiscoPower;
use SNMP::Info::CiscoStpExtensions;
use SNMP::Info::Layer3;
@SNMP::Info::Layer3::Cisco::ISA = qw/SNMP::Info::CiscoVTP
@SNMP::Info::Layer3::Cisco::ISA = qw/
SNMP::Info::CiscoBGP
SNMP::Info::CiscoVTP
SNMP::Info::CDP
SNMP::Info::CiscoStats SNMP::Info::CiscoRTT
SNMP::Info::CiscoQOS SNMP::Info::CiscoConfig
@@ -53,10 +56,11 @@ use SNMP::Info::Layer3;
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::Layer3::MIBS,
%SNMP::Info::CiscoBGP::MIBS,
%SNMP::Info::CiscoStpExtensions::MIBS,
%SNMP::Info::CiscoPower::MIBS,
%SNMP::Info::CiscoConfig::MIBS,
@@ -70,6 +74,7 @@ $VERSION = '3.70';
%GLOBALS = (
%SNMP::Info::Layer3::GLOBALS,
%SNMP::Info::CiscoBGP::GLOBALS,
%SNMP::Info::CiscoStpExtensions::GLOBALS,
%SNMP::Info::CiscoPower::GLOBALS,
%SNMP::Info::CiscoConfig::GLOBALS,
@@ -83,6 +88,7 @@ $VERSION = '3.70';
%FUNCS = (
%SNMP::Info::Layer3::FUNCS,
%SNMP::Info::CiscoBGP::FUNCS,
%SNMP::Info::CiscoStpExtensions::FUNCS,
%SNMP::Info::CiscoPower::FUNCS,
%SNMP::Info::CiscoConfig::FUNCS,
@@ -98,10 +104,15 @@ $VERSION = '3.70';
);
%MUNGE = (
%SNMP::Info::Layer3::MUNGE, %SNMP::Info::CiscoStpExtensions::MUNGE,
%SNMP::Info::CiscoPower::MUNGE, %SNMP::Info::CiscoConfig::MUNGE,
%SNMP::Info::CiscoQOS::MUNGE, %SNMP::Info::CiscoRTT::MUNGE,
%SNMP::Info::CiscoStats::MUNGE, %SNMP::Info::CDP::MUNGE,
%SNMP::Info::Layer3::MUNGE,
%SNMP::Info::CiscoBGP::MUNGE,
%SNMP::Info::CiscoStpExtensions::MUNGE,
%SNMP::Info::CiscoPower::MUNGE,
%SNMP::Info::CiscoConfig::MUNGE,
%SNMP::Info::CiscoQOS::MUNGE,
%SNMP::Info::CiscoRTT::MUNGE,
%SNMP::Info::CiscoStats::MUNGE,
%SNMP::Info::CDP::MUNGE,
%SNMP::Info::CiscoVTP::MUNGE,
);
@@ -218,7 +229,7 @@ for other device specific L3 Cisco classes.
=item SNMP::Info::CiscoConfig
=item SNMP::Info::Power
=item SNMP::Info::CiscoPower
=item SNMP::Info::CiscoStpExtensions

View File

@@ -44,7 +44,7 @@ use SNMP::Info::Layer3;
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = ( %SNMP::Info::Layer3::MIBS, %SNMP::Info::CiscoStats::MIBS, );

View File

@@ -42,7 +42,7 @@ use SNMP::Info::Layer3;
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = ( %SNMP::Info::Layer3::MIBS, %SNMP::Info::CiscoStats::MIBS, );

View File

@@ -47,7 +47,7 @@ our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
@SNMP::Info::Layer3::CiscoSwitch::EXPORT_OK = qw//;
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::Layer3::Cisco::MIBS,

View File

@@ -40,7 +40,7 @@ use SNMP::Info::Layer3;
our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::Layer3::MIBS,

View File

@@ -44,7 +44,7 @@ use SNMP::Info::IEEE802dot3ad 'agg_ports_lag';
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::Layer3::MIBS,
@@ -80,7 +80,8 @@ sub os_ver {
my $descr = $netsnmp->description();
# STRING: "Cumulus Linux version 3.5.1 running on innotek GmbH VirtualBox"
return $1 if ( defined ($descr) && $descr =~ /^Cumulus Linux.+(\d+\.\d+\.\d+)\s/ );
# STRING: "Cumulus-Linux 4.1.1 (Linux Kernel 4.19.94-1+cl4u3)"
return $1 if ( defined ($descr) && $descr =~ /^Cumulus(?: |-)Linux.+(\d+\.\d+\.\d+)\s/ );
return;
}

View File

@@ -38,7 +38,7 @@ use SNMP::Info::Layer3;
our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::Layer3::MIBS,
@@ -74,6 +74,18 @@ $VERSION = '3.70';
%MUNGE = ( %SNMP::Info::Layer3::MUNGE, );
sub layers {
my $dlink = shift;
my $layers = $dlink->SUPER::layers();
if ($layers) {
substr $layers, 5, 1, "1";
substr $layers, 6, 1, "1";
}
return $layers;
}
sub model {
my $dlink=shift;
my $id = $dlink->id();
@@ -233,6 +245,10 @@ These are methods that return scalar value from SNMP
=over
=item $dlink->layers()
Makes sure to always report layer 2 and 3.
=item $dlink->model()
Returns the ID or else description.

View File

@@ -39,7 +39,7 @@ use SNMP::Info::Layer3;
our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::Layer3::MIBS,

View File

@@ -42,7 +42,7 @@ use SNMP::Info::Layer3;
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::Layer3::MIBS

View File

@@ -43,7 +43,7 @@ use SNMP::Info::Layer3;
our ($VERSION, $DEBUG, %GLOBALS, %FUNCS, $INIT, %MIBS, %MUNGE);
$VERSION = '3.70';
$VERSION = '3.83';
%MIBS = (
%SNMP::Info::Layer3::MIBS, %SNMP::Info::CDP::MIBS,

Some files were not shown because too many files have changed in this diff Show More