Compare commits
49 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
db3a764d49 | ||
|
|
62c7719186 | ||
|
|
daee793df6 | ||
|
|
36e8f9be61 | ||
|
|
91ce23ce4a | ||
|
|
535379b3a1 | ||
|
|
b9313c2ec0 | ||
|
|
a46f27792b | ||
|
|
43ca61299e | ||
|
|
a3f0109f06 | ||
|
|
159ab659cb | ||
|
|
82032a10e1 | ||
|
|
84c870f911 | ||
|
|
2b1b53e539 | ||
|
|
b019f3fa06 | ||
|
|
4cb3083993 | ||
|
|
bed7dac4ac | ||
|
|
316a799fdb | ||
|
|
f2cbd163c9 | ||
|
|
e756091565 | ||
|
|
02f667a05b | ||
|
|
14e9da0fb7 | ||
|
|
08a632c053 | ||
|
|
fbf0bbe880 | ||
|
|
4ce3fd8fb6 | ||
|
|
cae9878c60 | ||
|
|
cda629bf39 | ||
|
|
396eb87b57 | ||
|
|
db06c8e75b | ||
|
|
3fd9f1deda | ||
|
|
b0e9185cca | ||
|
|
b73f0d8d57 | ||
|
|
5655486b80 | ||
|
|
cc935a580d | ||
|
|
40ff825a3a | ||
|
|
4bb40483e6 | ||
|
|
8c98750541 | ||
|
|
57aa73f613 | ||
|
|
fe3bc6afe0 | ||
|
|
10e0a53b3c | ||
|
|
98d2005bae | ||
|
|
272b56d625 | ||
|
|
aa44871f83 | ||
|
|
27930d5e50 | ||
|
|
a0d3cdcf9f | ||
|
|
8317923f28 | ||
|
|
fc71e2d88d | ||
|
|
f96d0df182 | ||
|
|
1dc4baf1d9 |
19
.github/workflows/release.yml
vendored
19
.github/workflows/release.yml
vendored
@@ -1,19 +0,0 @@
|
||||
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
122
.github/workflows/test_and_publish.yml
vendored
@@ -1,122 +0,0 @@
|
||||
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
1
.gitignore
vendored
@@ -11,4 +11,3 @@ _build
|
||||
blib
|
||||
cover_db
|
||||
.idea
|
||||
.vscode
|
||||
|
||||
39
.travis.yml
Normal file
39
.travis.yml
Normal file
@@ -0,0 +1,39 @@
|
||||
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'
|
||||
14
Build.PL
14
Build.PL
@@ -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.libera.chat/#netdisco',
|
||||
IRC => 'irc://irc.freenode.org/#netdisco',
|
||||
},
|
||||
},
|
||||
)->create_build_script;
|
||||
|
||||
133
Changes
133
Changes
@@ -1,136 +1,3 @@
|
||||
Version 3.88 (2022-08-17)
|
||||
|
||||
[NEW FEATURES]
|
||||
|
||||
* Add i_subinterfaces for VLAN subinterfaces in Layer3::Juniper
|
||||
* Add i_vlan and i_vlan_membership_untagged to Layer3::Juniper based on ifChassisLogicalUnit
|
||||
|
||||
Version 3.87 (2022-08-12)
|
||||
|
||||
[NEW FEATURES]
|
||||
|
||||
* PortAccessEntity/IEEE8021-PAE-MIB module support
|
||||
|
||||
[ENHANCEMENTS]
|
||||
|
||||
* #462 SNMP::Info::Layer3::PaloAlto to include layer 2
|
||||
* #461 Expose lldLocChassisId as $lldp->lldp_loc_id
|
||||
* Update CiscoStats.pm for Amsterdam IOS-XE release
|
||||
|
||||
[BUG FIXES]
|
||||
|
||||
* #470 avoid error if Juniper VLAN not in bp_index
|
||||
|
||||
Version 3.86 (2022-08-10)
|
||||
|
||||
[BUG FIXES]
|
||||
|
||||
* #468 Cisco dotted subinterfaces had incorrect vlan assigned
|
||||
|
||||
Version 3.85 (2022-08-02)
|
||||
|
||||
[NEW FEATURES]
|
||||
|
||||
* Add i_subinterfaces for VLAN subinterfaces in CiscoVTP
|
||||
|
||||
Version 3.84 (2022-07-04)
|
||||
|
||||
[NEW FEATURES]
|
||||
|
||||
* Add support for HW Group STE whitespace monitoring devices
|
||||
|
||||
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]
|
||||
|
||||
10
MANIFEST
10
MANIFEST
@@ -17,7 +17,6 @@ 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
|
||||
@@ -33,7 +32,6 @@ 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
|
||||
@@ -80,7 +78,6 @@ 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
|
||||
@@ -126,22 +123,17 @@ 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
|
||||
@@ -149,7 +141,6 @@ lib/SNMP/Info/LLDP.pm
|
||||
lib/SNMP/Info/MAU.pm
|
||||
lib/SNMP/Info/MRO.pm
|
||||
lib/SNMP/Info/NortelStack.pm
|
||||
lib/SNMP/Info/PortAccessEntity.pm
|
||||
lib/SNMP/Info/PowerEthernet.pm
|
||||
lib/SNMP/Info/RapidCity.pm
|
||||
lib/SNMP/Info/SONMP.pm
|
||||
@@ -283,7 +274,6 @@ 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
|
||||
|
||||
314
META.json
314
META.json
@@ -4,7 +4,7 @@
|
||||
"Eric A. Miller <emiller@cpan.org>"
|
||||
],
|
||||
"dynamic_config" : 1,
|
||||
"generated_by" : "Module::Build version 0.4231",
|
||||
"generated_by" : "Module::Build version 0.4224",
|
||||
"license" : [
|
||||
"bsd"
|
||||
],
|
||||
@@ -53,579 +53,543 @@
|
||||
"provides" : {
|
||||
"SNMP::Info" : {
|
||||
"file" : "lib/SNMP/Info.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::AMAP" : {
|
||||
"file" : "lib/SNMP/Info/AMAP.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::AdslLine" : {
|
||||
"file" : "lib/SNMP/Info/AdslLine.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Aggregate" : {
|
||||
"file" : "lib/SNMP/Info/Aggregate.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Airespace" : {
|
||||
"file" : "lib/SNMP/Info/Airespace.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Bridge" : {
|
||||
"file" : "lib/SNMP/Info/Bridge.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::CDP" : {
|
||||
"file" : "lib/SNMP/Info/CDP.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::CiscoAgg" : {
|
||||
"file" : "lib/SNMP/Info/CiscoAgg.pm",
|
||||
"version" : "3.88"
|
||||
},
|
||||
"SNMP::Info::CiscoBGP" : {
|
||||
"file" : "lib/SNMP/Info/CiscoBGP.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::CiscoConfig" : {
|
||||
"file" : "lib/SNMP/Info/CiscoConfig.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::CiscoPortSecurity" : {
|
||||
"file" : "lib/SNMP/Info/CiscoPortSecurity.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::CiscoPower" : {
|
||||
"file" : "lib/SNMP/Info/CiscoPower.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::CiscoQOS" : {
|
||||
"file" : "lib/SNMP/Info/CiscoQOS.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::CiscoRTT" : {
|
||||
"file" : "lib/SNMP/Info/CiscoRTT.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::CiscoStack" : {
|
||||
"file" : "lib/SNMP/Info/CiscoStack.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::CiscoStats" : {
|
||||
"file" : "lib/SNMP/Info/CiscoStats.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::CiscoStpExtensions" : {
|
||||
"file" : "lib/SNMP/Info/CiscoStpExtensions.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::CiscoVTP" : {
|
||||
"file" : "lib/SNMP/Info/CiscoVTP.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::DocsisCM" : {
|
||||
"file" : "lib/SNMP/Info/DocsisCM.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::DocsisHE" : {
|
||||
"file" : "lib/SNMP/Info/DocsisHE.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::EDP" : {
|
||||
"file" : "lib/SNMP/Info/EDP.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Entity" : {
|
||||
"file" : "lib/SNMP/Info/Entity.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::EtherLike" : {
|
||||
"file" : "lib/SNMP/Info/EtherLike.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::FDP" : {
|
||||
"file" : "lib/SNMP/Info/FDP.pm",
|
||||
"version" : "3.88"
|
||||
},
|
||||
"SNMP::Info::IEEE802_Bridge" : {
|
||||
"file" : "lib/SNMP/Info/IEEE802_Bridge.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::IEEE802dot11" : {
|
||||
"file" : "lib/SNMP/Info/IEEE802dot11.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::IEEE802dot3ad" : {
|
||||
"file" : "lib/SNMP/Info/IEEE802dot3ad.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::IPv6" : {
|
||||
"file" : "lib/SNMP/Info/IPv6.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::LLDP" : {
|
||||
"file" : "lib/SNMP/Info/LLDP.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer1" : {
|
||||
"file" : "lib/SNMP/Info/Layer1.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer1::Allied" : {
|
||||
"file" : "lib/SNMP/Info/Layer1/Allied.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer1::Asante" : {
|
||||
"file" : "lib/SNMP/Info/Layer1/Asante.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer1::Bayhub" : {
|
||||
"file" : "lib/SNMP/Info/Layer1/Bayhub.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer1::Cyclades" : {
|
||||
"file" : "lib/SNMP/Info/Layer1/Cyclades.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer1::S3000" : {
|
||||
"file" : "lib/SNMP/Info/Layer1/S3000.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer2" : {
|
||||
"file" : "lib/SNMP/Info/Layer2.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer2::3Com" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/3Com.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer2::Adtran" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Adtran.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer2::Aerohive" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Aerohive.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer2::Airespace" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Airespace.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer2::Aironet" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Aironet.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer2::Allied" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Allied.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer2::Atmedia" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Atmedia.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer2::Baystack" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Baystack.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer2::C1900" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/C1900.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer2::C2900" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/C2900.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer2::Catalyst" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Catalyst.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer2::Centillion" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Centillion.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer2::Cisco" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Cisco.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer2::CiscoSB" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/CiscoSB.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer2::Exinda" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Exinda.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer2::HP" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/HP.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer2::HP4000" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/HP4000.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer2::HPVC" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/HPVC.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer2::Kentrox" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Kentrox.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer2::N2270" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/N2270.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer2::NAP222x" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/NAP222x.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer2::NWSS2300" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/NWSS2300.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer2::Netgear" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Netgear.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer2::Nexans" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Nexans.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer2::Orinoco" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Orinoco.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer2::Sixnet" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Sixnet.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer2::Trapeze" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Trapeze.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer2::Ubiquiti" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Ubiquiti.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer2::ZyXEL_DSLAM" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/ZyXEL_DSLAM.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3" : {
|
||||
"file" : "lib/SNMP/Info/Layer3.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::Aironet" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Aironet.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::AlcatelLucent" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/AlcatelLucent.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::AlteonAD" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/AlteonAD.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::Altiga" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Altiga.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::Arista" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Arista.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::Aruba" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Aruba.pm",
|
||||
"version" : "3.88"
|
||||
},
|
||||
"SNMP::Info::Layer3::ArubaCX" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/ArubaCX.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::BayRS" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/BayRS.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::BlueCoatSG" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/BlueCoatSG.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::C3550" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/C3550.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::C4000" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/C4000.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::C6500" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/C6500.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::CheckPoint" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/CheckPoint.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::Ciena" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Ciena.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::Cisco" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Cisco.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::CiscoASA" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/CiscoASA.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::CiscoFWSM" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/CiscoFWSM.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::CiscoSwitch" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/CiscoSwitch.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::Contivity" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Contivity.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::Cumulus" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Cumulus.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::DLink" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/DLink.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::Dell" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Dell.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::ERX" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/ERX.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::Enterasys" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Enterasys.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::Extreme" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Extreme.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::F5" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/F5.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::Force10" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Force10.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::Fortinet" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Fortinet.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::Foundry" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Foundry.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::Genua" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Genua.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::H3C" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/H3C.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::HP9300" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/HP9300.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::Huawei" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Huawei.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::IBMGbTor" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/IBMGbTor.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::Juniper" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Juniper.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::Lantronix" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Lantronix.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::Lenovo" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Lenovo.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::Microsoft" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Microsoft.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::Mikrotik" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Mikrotik.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::N1600" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/N1600.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::NetSNMP" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/NetSNMP.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::Netscreen" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Netscreen.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::Nexus" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Nexus.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::OneAccess" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/OneAccess.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::PacketFront" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/PacketFront.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::PaloAlto" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/PaloAlto.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::Passport" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Passport.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::Pf" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Pf.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::Pica8" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Pica8.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::Redlion" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Redlion.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::Scalance" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Scalance.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::SonicWALL" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/SonicWALL.pm",
|
||||
"version" : "3.88"
|
||||
},
|
||||
"SNMP::Info::Layer3::Steelfusion" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Steelfusion.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::Steelhead" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Steelhead.pm",
|
||||
"version" : "3.88"
|
||||
},
|
||||
"SNMP::Info::Layer3::SteelheadEx" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/SteelheadEx.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::Sun" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Sun.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::Tasman" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Tasman.pm",
|
||||
"version" : "3.88"
|
||||
},
|
||||
"SNMP::Info::Layer3::Teltonika" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Teltonika.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::Timetra" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Timetra.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::VMware" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/VMware.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer3::VyOS" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/VyOS.pm",
|
||||
"version" : "3.88"
|
||||
},
|
||||
"SNMP::Info::Layer3::Whiterabbit" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Whiterabbit.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer7" : {
|
||||
"file" : "lib/SNMP/Info/Layer7.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer7::APC" : {
|
||||
"file" : "lib/SNMP/Info/Layer7/APC.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer7::Arbor" : {
|
||||
"file" : "lib/SNMP/Info/Layer7/Arbor.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer7::CiscoIPS" : {
|
||||
"file" : "lib/SNMP/Info/Layer7/CiscoIPS.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer7::Gigamon" : {
|
||||
"file" : "lib/SNMP/Info/Layer7/Gigamon.pm",
|
||||
"version" : "3.88"
|
||||
},
|
||||
"SNMP::Info::Layer7::HWGroup" : {
|
||||
"file" : "lib/SNMP/Info/Layer7/HWGroup.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer7::Liebert" : {
|
||||
"file" : "lib/SNMP/Info/Layer7/Liebert.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer7::Neoteris" : {
|
||||
"file" : "lib/SNMP/Info/Layer7/Neoteris.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::Layer7::Netscaler" : {
|
||||
"file" : "lib/SNMP/Info/Layer7/Netscaler.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::MAU" : {
|
||||
"file" : "lib/SNMP/Info/MAU.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::MRO" : {
|
||||
"file" : "lib/SNMP/Info/MRO.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::NortelStack" : {
|
||||
"file" : "lib/SNMP/Info/NortelStack.pm",
|
||||
"version" : "3.88"
|
||||
},
|
||||
"SNMP::Info::PortAccessEntity" : {
|
||||
"file" : "lib/SNMP/Info/PortAccessEntity.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::PowerEthernet" : {
|
||||
"file" : "lib/SNMP/Info/PowerEthernet.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::RapidCity" : {
|
||||
"file" : "lib/SNMP/Info/RapidCity.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
},
|
||||
"SNMP::Info::SONMP" : {
|
||||
"file" : "lib/SNMP/Info/SONMP.pm",
|
||||
"version" : "3.88"
|
||||
"version" : "3.70"
|
||||
}
|
||||
},
|
||||
"release_status" : "stable",
|
||||
@@ -640,9 +604,9 @@
|
||||
"repository" : {
|
||||
"url" : "https://github.com/netdisco/snmp-info"
|
||||
},
|
||||
"x_IRC" : "irc://irc.libera.chat/#netdisco",
|
||||
"x_IRC" : "irc://irc.freenode.org/#netdisco",
|
||||
"x_MailingList" : "https://lists.sourceforge.net/lists/listinfo/snmp-info-users"
|
||||
},
|
||||
"version" : "3.88",
|
||||
"x_serialization_backend" : "JSON::PP version 4.06"
|
||||
"version" : "3.70",
|
||||
"x_serialization_backend" : "JSON::PP version 2.97001"
|
||||
}
|
||||
|
||||
303
META.yml
303
META.yml
@@ -18,7 +18,7 @@ build_requires:
|
||||
configure_requires:
|
||||
Module::Build: '0.42'
|
||||
dynamic_config: 1
|
||||
generated_by: 'Module::Build version 0.4231, CPAN::Meta::Converter version 2.150010'
|
||||
generated_by: 'Module::Build version 0.4224, CPAN::Meta::Converter version 2.150010'
|
||||
license: bsd
|
||||
meta-spec:
|
||||
url: http://module-build.sourceforge.net/META-spec-v1.4.html
|
||||
@@ -27,436 +27,409 @@ name: SNMP-Info
|
||||
provides:
|
||||
SNMP::Info:
|
||||
file: lib/SNMP/Info.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::AMAP:
|
||||
file: lib/SNMP/Info/AMAP.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::AdslLine:
|
||||
file: lib/SNMP/Info/AdslLine.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Aggregate:
|
||||
file: lib/SNMP/Info/Aggregate.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Airespace:
|
||||
file: lib/SNMP/Info/Airespace.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Bridge:
|
||||
file: lib/SNMP/Info/Bridge.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::CDP:
|
||||
file: lib/SNMP/Info/CDP.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::CiscoAgg:
|
||||
file: lib/SNMP/Info/CiscoAgg.pm
|
||||
version: '3.88'
|
||||
SNMP::Info::CiscoBGP:
|
||||
file: lib/SNMP/Info/CiscoBGP.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::CiscoConfig:
|
||||
file: lib/SNMP/Info/CiscoConfig.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::CiscoPortSecurity:
|
||||
file: lib/SNMP/Info/CiscoPortSecurity.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::CiscoPower:
|
||||
file: lib/SNMP/Info/CiscoPower.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::CiscoQOS:
|
||||
file: lib/SNMP/Info/CiscoQOS.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::CiscoRTT:
|
||||
file: lib/SNMP/Info/CiscoRTT.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::CiscoStack:
|
||||
file: lib/SNMP/Info/CiscoStack.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::CiscoStats:
|
||||
file: lib/SNMP/Info/CiscoStats.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::CiscoStpExtensions:
|
||||
file: lib/SNMP/Info/CiscoStpExtensions.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::CiscoVTP:
|
||||
file: lib/SNMP/Info/CiscoVTP.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::DocsisCM:
|
||||
file: lib/SNMP/Info/DocsisCM.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::DocsisHE:
|
||||
file: lib/SNMP/Info/DocsisHE.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::EDP:
|
||||
file: lib/SNMP/Info/EDP.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Entity:
|
||||
file: lib/SNMP/Info/Entity.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::EtherLike:
|
||||
file: lib/SNMP/Info/EtherLike.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::FDP:
|
||||
file: lib/SNMP/Info/FDP.pm
|
||||
version: '3.88'
|
||||
SNMP::Info::IEEE802_Bridge:
|
||||
file: lib/SNMP/Info/IEEE802_Bridge.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::IEEE802dot11:
|
||||
file: lib/SNMP/Info/IEEE802dot11.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::IEEE802dot3ad:
|
||||
file: lib/SNMP/Info/IEEE802dot3ad.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::IPv6:
|
||||
file: lib/SNMP/Info/IPv6.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::LLDP:
|
||||
file: lib/SNMP/Info/LLDP.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer1:
|
||||
file: lib/SNMP/Info/Layer1.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer1::Allied:
|
||||
file: lib/SNMP/Info/Layer1/Allied.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer1::Asante:
|
||||
file: lib/SNMP/Info/Layer1/Asante.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer1::Bayhub:
|
||||
file: lib/SNMP/Info/Layer1/Bayhub.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer1::Cyclades:
|
||||
file: lib/SNMP/Info/Layer1/Cyclades.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer1::S3000:
|
||||
file: lib/SNMP/Info/Layer1/S3000.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer2:
|
||||
file: lib/SNMP/Info/Layer2.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer2::3Com:
|
||||
file: lib/SNMP/Info/Layer2/3Com.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer2::Adtran:
|
||||
file: lib/SNMP/Info/Layer2/Adtran.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer2::Aerohive:
|
||||
file: lib/SNMP/Info/Layer2/Aerohive.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer2::Airespace:
|
||||
file: lib/SNMP/Info/Layer2/Airespace.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer2::Aironet:
|
||||
file: lib/SNMP/Info/Layer2/Aironet.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer2::Allied:
|
||||
file: lib/SNMP/Info/Layer2/Allied.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer2::Atmedia:
|
||||
file: lib/SNMP/Info/Layer2/Atmedia.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer2::Baystack:
|
||||
file: lib/SNMP/Info/Layer2/Baystack.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer2::C1900:
|
||||
file: lib/SNMP/Info/Layer2/C1900.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer2::C2900:
|
||||
file: lib/SNMP/Info/Layer2/C2900.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer2::Catalyst:
|
||||
file: lib/SNMP/Info/Layer2/Catalyst.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer2::Centillion:
|
||||
file: lib/SNMP/Info/Layer2/Centillion.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer2::Cisco:
|
||||
file: lib/SNMP/Info/Layer2/Cisco.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer2::CiscoSB:
|
||||
file: lib/SNMP/Info/Layer2/CiscoSB.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer2::Exinda:
|
||||
file: lib/SNMP/Info/Layer2/Exinda.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer2::HP:
|
||||
file: lib/SNMP/Info/Layer2/HP.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer2::HP4000:
|
||||
file: lib/SNMP/Info/Layer2/HP4000.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer2::HPVC:
|
||||
file: lib/SNMP/Info/Layer2/HPVC.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer2::Kentrox:
|
||||
file: lib/SNMP/Info/Layer2/Kentrox.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer2::N2270:
|
||||
file: lib/SNMP/Info/Layer2/N2270.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer2::NAP222x:
|
||||
file: lib/SNMP/Info/Layer2/NAP222x.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer2::NWSS2300:
|
||||
file: lib/SNMP/Info/Layer2/NWSS2300.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer2::Netgear:
|
||||
file: lib/SNMP/Info/Layer2/Netgear.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer2::Nexans:
|
||||
file: lib/SNMP/Info/Layer2/Nexans.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer2::Orinoco:
|
||||
file: lib/SNMP/Info/Layer2/Orinoco.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer2::Sixnet:
|
||||
file: lib/SNMP/Info/Layer2/Sixnet.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer2::Trapeze:
|
||||
file: lib/SNMP/Info/Layer2/Trapeze.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer2::Ubiquiti:
|
||||
file: lib/SNMP/Info/Layer2/Ubiquiti.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer2::ZyXEL_DSLAM:
|
||||
file: lib/SNMP/Info/Layer2/ZyXEL_DSLAM.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3:
|
||||
file: lib/SNMP/Info/Layer3.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::Aironet:
|
||||
file: lib/SNMP/Info/Layer3/Aironet.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::AlcatelLucent:
|
||||
file: lib/SNMP/Info/Layer3/AlcatelLucent.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::AlteonAD:
|
||||
file: lib/SNMP/Info/Layer3/AlteonAD.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::Altiga:
|
||||
file: lib/SNMP/Info/Layer3/Altiga.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::Arista:
|
||||
file: lib/SNMP/Info/Layer3/Arista.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::Aruba:
|
||||
file: lib/SNMP/Info/Layer3/Aruba.pm
|
||||
version: '3.88'
|
||||
SNMP::Info::Layer3::ArubaCX:
|
||||
file: lib/SNMP/Info/Layer3/ArubaCX.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::BayRS:
|
||||
file: lib/SNMP/Info/Layer3/BayRS.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::BlueCoatSG:
|
||||
file: lib/SNMP/Info/Layer3/BlueCoatSG.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::C3550:
|
||||
file: lib/SNMP/Info/Layer3/C3550.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::C4000:
|
||||
file: lib/SNMP/Info/Layer3/C4000.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::C6500:
|
||||
file: lib/SNMP/Info/Layer3/C6500.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::CheckPoint:
|
||||
file: lib/SNMP/Info/Layer3/CheckPoint.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::Ciena:
|
||||
file: lib/SNMP/Info/Layer3/Ciena.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::Cisco:
|
||||
file: lib/SNMP/Info/Layer3/Cisco.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::CiscoASA:
|
||||
file: lib/SNMP/Info/Layer3/CiscoASA.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::CiscoFWSM:
|
||||
file: lib/SNMP/Info/Layer3/CiscoFWSM.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::CiscoSwitch:
|
||||
file: lib/SNMP/Info/Layer3/CiscoSwitch.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::Contivity:
|
||||
file: lib/SNMP/Info/Layer3/Contivity.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::Cumulus:
|
||||
file: lib/SNMP/Info/Layer3/Cumulus.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::DLink:
|
||||
file: lib/SNMP/Info/Layer3/DLink.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::Dell:
|
||||
file: lib/SNMP/Info/Layer3/Dell.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::ERX:
|
||||
file: lib/SNMP/Info/Layer3/ERX.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::Enterasys:
|
||||
file: lib/SNMP/Info/Layer3/Enterasys.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::Extreme:
|
||||
file: lib/SNMP/Info/Layer3/Extreme.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::F5:
|
||||
file: lib/SNMP/Info/Layer3/F5.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::Force10:
|
||||
file: lib/SNMP/Info/Layer3/Force10.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::Fortinet:
|
||||
file: lib/SNMP/Info/Layer3/Fortinet.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::Foundry:
|
||||
file: lib/SNMP/Info/Layer3/Foundry.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::Genua:
|
||||
file: lib/SNMP/Info/Layer3/Genua.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::H3C:
|
||||
file: lib/SNMP/Info/Layer3/H3C.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::HP9300:
|
||||
file: lib/SNMP/Info/Layer3/HP9300.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::Huawei:
|
||||
file: lib/SNMP/Info/Layer3/Huawei.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::IBMGbTor:
|
||||
file: lib/SNMP/Info/Layer3/IBMGbTor.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::Juniper:
|
||||
file: lib/SNMP/Info/Layer3/Juniper.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::Lantronix:
|
||||
file: lib/SNMP/Info/Layer3/Lantronix.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::Lenovo:
|
||||
file: lib/SNMP/Info/Layer3/Lenovo.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::Microsoft:
|
||||
file: lib/SNMP/Info/Layer3/Microsoft.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::Mikrotik:
|
||||
file: lib/SNMP/Info/Layer3/Mikrotik.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::N1600:
|
||||
file: lib/SNMP/Info/Layer3/N1600.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::NetSNMP:
|
||||
file: lib/SNMP/Info/Layer3/NetSNMP.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::Netscreen:
|
||||
file: lib/SNMP/Info/Layer3/Netscreen.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::Nexus:
|
||||
file: lib/SNMP/Info/Layer3/Nexus.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::OneAccess:
|
||||
file: lib/SNMP/Info/Layer3/OneAccess.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::PacketFront:
|
||||
file: lib/SNMP/Info/Layer3/PacketFront.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::PaloAlto:
|
||||
file: lib/SNMP/Info/Layer3/PaloAlto.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::Passport:
|
||||
file: lib/SNMP/Info/Layer3/Passport.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::Pf:
|
||||
file: lib/SNMP/Info/Layer3/Pf.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::Pica8:
|
||||
file: lib/SNMP/Info/Layer3/Pica8.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::Redlion:
|
||||
file: lib/SNMP/Info/Layer3/Redlion.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::Scalance:
|
||||
file: lib/SNMP/Info/Layer3/Scalance.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::SonicWALL:
|
||||
file: lib/SNMP/Info/Layer3/SonicWALL.pm
|
||||
version: '3.88'
|
||||
SNMP::Info::Layer3::Steelfusion:
|
||||
file: lib/SNMP/Info/Layer3/Steelfusion.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::Steelhead:
|
||||
file: lib/SNMP/Info/Layer3/Steelhead.pm
|
||||
version: '3.88'
|
||||
SNMP::Info::Layer3::SteelheadEx:
|
||||
file: lib/SNMP/Info/Layer3/SteelheadEx.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::Sun:
|
||||
file: lib/SNMP/Info/Layer3/Sun.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::Tasman:
|
||||
file: lib/SNMP/Info/Layer3/Tasman.pm
|
||||
version: '3.88'
|
||||
SNMP::Info::Layer3::Teltonika:
|
||||
file: lib/SNMP/Info/Layer3/Teltonika.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::Timetra:
|
||||
file: lib/SNMP/Info/Layer3/Timetra.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::VMware:
|
||||
file: lib/SNMP/Info/Layer3/VMware.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer3::VyOS:
|
||||
file: lib/SNMP/Info/Layer3/VyOS.pm
|
||||
version: '3.88'
|
||||
SNMP::Info::Layer3::Whiterabbit:
|
||||
file: lib/SNMP/Info/Layer3/Whiterabbit.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer7:
|
||||
file: lib/SNMP/Info/Layer7.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer7::APC:
|
||||
file: lib/SNMP/Info/Layer7/APC.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer7::Arbor:
|
||||
file: lib/SNMP/Info/Layer7/Arbor.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer7::CiscoIPS:
|
||||
file: lib/SNMP/Info/Layer7/CiscoIPS.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer7::Gigamon:
|
||||
file: lib/SNMP/Info/Layer7/Gigamon.pm
|
||||
version: '3.88'
|
||||
SNMP::Info::Layer7::HWGroup:
|
||||
file: lib/SNMP/Info/Layer7/HWGroup.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer7::Liebert:
|
||||
file: lib/SNMP/Info/Layer7/Liebert.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer7::Neoteris:
|
||||
file: lib/SNMP/Info/Layer7/Neoteris.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::Layer7::Netscaler:
|
||||
file: lib/SNMP/Info/Layer7/Netscaler.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::MAU:
|
||||
file: lib/SNMP/Info/MAU.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::MRO:
|
||||
file: lib/SNMP/Info/MRO.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::NortelStack:
|
||||
file: lib/SNMP/Info/NortelStack.pm
|
||||
version: '3.88'
|
||||
SNMP::Info::PortAccessEntity:
|
||||
file: lib/SNMP/Info/PortAccessEntity.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::PowerEthernet:
|
||||
file: lib/SNMP/Info/PowerEthernet.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::RapidCity:
|
||||
file: lib/SNMP/Info/RapidCity.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
SNMP::Info::SONMP:
|
||||
file: lib/SNMP/Info/SONMP.pm
|
||||
version: '3.88'
|
||||
version: '3.70'
|
||||
recommends:
|
||||
Class::ISA: '0'
|
||||
File::Slurp: '0'
|
||||
@@ -468,11 +441,11 @@ requires:
|
||||
NetAddr::IP: '4.068'
|
||||
SNMP: '0'
|
||||
resources:
|
||||
IRC: irc://irc.libera.chat/#netdisco
|
||||
IRC: irc://irc.freenode.org/#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.88'
|
||||
version: '3.70'
|
||||
x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
|
||||
|
||||
127
README
127
README
@@ -2,7 +2,7 @@ NAME
|
||||
SNMP::Info - OO Interface to Network devices and MIBs through SNMP
|
||||
|
||||
VERSION
|
||||
SNMP::Info - Version 3.88
|
||||
SNMP::Info - Version 3.70
|
||||
|
||||
AUTHOR
|
||||
SNMP::Info is maintained by team of Open Source authors headed by Eric
|
||||
@@ -31,14 +31,6 @@ SYNOPSIS
|
||||
DestHost => 'router',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
# Parameter reference for SNMPv3
|
||||
# Version => 3
|
||||
# SecLevel => 'authPriv', # authPriv|authNoPriv|noAuthNoPriv
|
||||
# SecName => 'myuser',
|
||||
# AuthProto => 'MD5', # MD5|SHA
|
||||
# AuthPass => 'authp4ss',
|
||||
# PrivProto => 'DES', # DES|AES
|
||||
# PrivPass => 'pr1vp4ss',
|
||||
) or die "Can't connect to device.\n";
|
||||
|
||||
my $err = $info->error();
|
||||
@@ -221,22 +213,16 @@ SUBCLASSES
|
||||
|
||||
See documentation in SNMP::Info::Bridge 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.
|
||||
SNMP::Info::CDP
|
||||
CISCO-CDP-MIB. Cisco Discovery Protocol (CDP) Support. Inherited by
|
||||
Cisco, Enterasys, and HP devices.
|
||||
|
||||
See documentation in SNMP::Info::CiscoBGP for details.
|
||||
See documentation in SNMP::Info::CDP for details.
|
||||
|
||||
SNMP::Info::CiscoConfig
|
||||
CISCO-CONFIG-COPY-MIB, CISCO-FLASH-MIB, and OLD-CISCO-SYS-MIB. These
|
||||
@@ -271,6 +257,11 @@ 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
|
||||
@@ -278,27 +269,22 @@ 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::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::DocsisCM
|
||||
SNMP Interface for DOCSIS Cable Modems
|
||||
|
||||
See documentation in SNMP::Info::DocsisCM for details.
|
||||
|
||||
SNMP::Info::EDP
|
||||
Extreme Discovery Protocol. EXTREME-EDP-MIB
|
||||
|
||||
@@ -320,11 +306,6 @@ 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.
|
||||
@@ -365,11 +346,6 @@ SUBCLASSES
|
||||
|
||||
See documentation in SNMP::Info::NortelStack for details.
|
||||
|
||||
SNMP::Info::PortAccessEntity
|
||||
IEEE8021-PAE-MIB
|
||||
|
||||
See documentation in SNMP::Info::PortAccessEntity for details.
|
||||
|
||||
SNMP::Info::PowerEthernet
|
||||
POWER-ETHERNET-MIB
|
||||
|
||||
@@ -447,7 +423,7 @@ SUBCLASSES
|
||||
See documentation in SNMP::Info::Layer2::Adtran for details.
|
||||
|
||||
SNMP::Info::Layer2::Aerohive
|
||||
Subclass for Aerohive / Extreme access points.
|
||||
Subclass for Aerohive Access Points.
|
||||
|
||||
See documentation in SNMP::Info::Layer2::Aerohive for details.
|
||||
|
||||
@@ -637,11 +613,6 @@ 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.
|
||||
@@ -649,7 +620,7 @@ SUBCLASSES
|
||||
See documentation in SNMP::Info::Layer3::BayRS for details.
|
||||
|
||||
SNMP::Info::Layer3::BlueCoatSG
|
||||
Subclass for BlueCoat SG series proxy devices.
|
||||
Subclass for Blue Coat SG series proxy devices.
|
||||
|
||||
See documentation in SNMP::Info::Layer3::BlueCoatSG for details.
|
||||
|
||||
@@ -712,6 +683,11 @@ 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
|
||||
@@ -719,11 +695,6 @@ 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.
|
||||
|
||||
@@ -881,23 +852,11 @@ 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.
|
||||
|
||||
@@ -908,11 +867,6 @@ 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.
|
||||
|
||||
@@ -928,12 +882,6 @@ 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.
|
||||
|
||||
@@ -959,11 +907,6 @@ 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.
|
||||
|
||||
@@ -1655,12 +1598,12 @@ USAGE
|
||||
|
||||
For protocol specific information and implementation:
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
Topology Capabilities
|
||||
$info->has_topo()
|
||||
@@ -1990,7 +1933,7 @@ SNMP::INFO INTERNALS
|
||||
%SPEED_MAP = (
|
||||
'56000' => '56 kbps',
|
||||
'64000' => '64 kbps',
|
||||
'115000' => '115 kbps',
|
||||
'115000' => '115 kpbs',
|
||||
'1500000' => '1.5 Mbps',
|
||||
'1536000' => 'T1',
|
||||
'1544000' => 'T1',
|
||||
@@ -2001,9 +1944,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',
|
||||
@@ -2013,11 +1956,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',
|
||||
@@ -2039,10 +1982,6 @@ 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.
|
||||
@@ -2268,13 +2207,17 @@ 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.
|
||||
internal method for creation. The newly created method is inserted
|
||||
into the symbol table returning to AUTOLOAD only for the initial
|
||||
method call.
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
1. Returns unless method is listed in %FUNCS, %GLOBALS, or is a MIB Leaf
|
||||
node name in a loaded MIB for given class.
|
||||
|
||||
270
lib/SNMP/Info.pm
270
lib/SNMP/Info.pm
@@ -25,7 +25,7 @@ our
|
||||
($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE, $AUTOLOAD, $INIT, $DEBUG, %SPEED_MAP,
|
||||
$NOSUCH, $BIGINT, $REPEATERS);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135-20.5.7';
|
||||
|
||||
=head1 NAME
|
||||
|
||||
@@ -33,7 +33,7 @@ SNMP::Info - OO Interface to Network devices and MIBs through SNMP
|
||||
|
||||
=head1 VERSION
|
||||
|
||||
SNMP::Info - Version 3.88
|
||||
SNMP::Info - Version 3.70-135
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
@@ -64,14 +64,6 @@ list any missing functionality (such as neighbor discovery tables).
|
||||
DestHost => 'router',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
# Parameter reference for SNMPv3
|
||||
# Version => 3
|
||||
# SecLevel => 'authPriv', # authPriv|authNoPriv|noAuthNoPriv
|
||||
# SecName => 'myuser',
|
||||
# AuthProto => 'MD5', # MD5|SHA
|
||||
# AuthPass => 'authp4ss',
|
||||
# PrivProto => 'DES', # DES|AES
|
||||
# PrivPass => 'pr1vp4ss',
|
||||
) or die "Can't connect to device.\n";
|
||||
|
||||
my $err = $info->error();
|
||||
@@ -273,25 +265,18 @@ support.
|
||||
|
||||
See documentation in L<SNMP::Info::Bridge> for details.
|
||||
|
||||
=item SNMP::Info::CDP
|
||||
|
||||
F<CISCO-CDP-MIB>. Cisco Discovery Protocol (CDP) Support. Inherited by
|
||||
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
|
||||
=item SNMP::Info::CDP
|
||||
|
||||
F<CISCO-BGP4-MIB>. Cisco BGPv4 support. Inherited by Cisco devices with
|
||||
Layer3 support.
|
||||
F<CISCO-CDP-MIB>. Cisco Discovery Protocol (CDP) Support. Inherited by
|
||||
Cisco, Enterasys, and HP devices.
|
||||
|
||||
See documentation in L<SNMP::Info::CiscoBGP> for details.
|
||||
See documentation in L<SNMP::Info::CDP> for details.
|
||||
|
||||
=item SNMP::Info::CiscoConfig
|
||||
|
||||
@@ -332,6 +317,12 @@ 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>.
|
||||
@@ -340,12 +331,6 @@ 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>,
|
||||
@@ -353,18 +338,18 @@ F<CISCO-VLAN-IFTABLE-RELATIONSHIP-MIB>
|
||||
|
||||
See documentation in L<SNMP::Info::CiscoVTP> 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::DocsisCM
|
||||
|
||||
SNMP Interface for DOCSIS Cable Modems
|
||||
|
||||
See documentation in L<SNMP::Info::DocsisCM> for details.
|
||||
|
||||
=item SNMP::Info::EDP
|
||||
|
||||
Extreme Discovery Protocol. F<EXTREME-EDP-MIB>
|
||||
@@ -390,12 +375,6 @@ 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
|
||||
@@ -443,12 +422,6 @@ F<S5-AGENT-MIB>, F<S5-CHASSIS-MIB>.
|
||||
|
||||
See documentation in L<SNMP::Info::NortelStack> for details.
|
||||
|
||||
=item SNMP::Info::PortAccessEntity
|
||||
|
||||
F<IEEE8021-PAE-MIB>
|
||||
|
||||
See documentation in L<SNMP::Info::PortAccessEntity> for details.
|
||||
|
||||
=item SNMP::Info::PowerEthernet
|
||||
|
||||
F<POWER-ETHERNET-MIB>
|
||||
@@ -549,7 +522,7 @@ See documentation in L<SNMP::Info::Layer2::Adtran> for details.
|
||||
|
||||
=item SNMP::Info::Layer2::Aerohive
|
||||
|
||||
Subclass for Aerohive / Extreme access points.
|
||||
Subclass for Aerohive Access Points.
|
||||
|
||||
See documentation in L<SNMP::Info::Layer2::Aerohive> for details.
|
||||
|
||||
@@ -768,12 +741,6 @@ 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
|
||||
@@ -783,7 +750,7 @@ See documentation in L<SNMP::Info::Layer3::BayRS> for details.
|
||||
|
||||
=item SNMP::Info::Layer3::BlueCoatSG
|
||||
|
||||
Subclass for BlueCoat SG series proxy devices.
|
||||
Subclass for Blue Coat SG series proxy devices.
|
||||
|
||||
See documentation in L<SNMP::Info::Layer3::BlueCoatSG> for details.
|
||||
|
||||
@@ -855,6 +822,12 @@ 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
|
||||
@@ -863,12 +836,6 @@ 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.
|
||||
@@ -1053,24 +1020,12 @@ 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.
|
||||
@@ -1083,12 +1038,6 @@ 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.
|
||||
@@ -1107,12 +1056,6 @@ 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
|
||||
@@ -1151,12 +1094,6 @@ 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.
|
||||
@@ -1413,7 +1350,7 @@ sub new {
|
||||
delete $sess_args{Offline};
|
||||
}
|
||||
|
||||
if ( defined $args{Cache} and ref {} eq ref $args{Cache} ) {
|
||||
if ( defined $args{Cache} and ref({}) eq ref $args{Cache} ) {
|
||||
$new_obj->{$_} = $args{Cache}->{$_} for keys %{$args{Cache}};
|
||||
delete $sess_args{Cache};
|
||||
}
|
||||
@@ -1634,7 +1571,7 @@ sub cache {
|
||||
my $self = shift;
|
||||
my $data = shift;
|
||||
|
||||
if ( defined $data and ref {} eq ref $data ) {
|
||||
if ( defined $data and ref({}) eq ref $data ) {
|
||||
$self->{$_} = $data->{$_} for keys %$data;
|
||||
}
|
||||
|
||||
@@ -1726,19 +1663,25 @@ 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::CiscoSwitch',
|
||||
9 => 'SNMP::Info::Layer3::Cisco',
|
||||
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',
|
||||
259 => 'SNMP::Info::Layer3::Accton',
|
||||
311 => 'SNMP::Info::Layer3::Microsoft',
|
||||
637 => 'SNMP::Info::Layer3::AlcatelLucent',
|
||||
655 => 'SNMP::Info::Layer2::Carelink',
|
||||
664 => 'SNMP::Info::Layer2::Adtran',
|
||||
674 => 'SNMP::Info::Layer3::Dell',
|
||||
776 => 'SNMP::Info::Layer2::Telindus',
|
||||
890 => 'SNMP::Info::Layer2::Zyxel',
|
||||
1286 => 'SNMP::Info::Layer2::ECI',
|
||||
1588 => 'SNMP::Info::Layer3::Foundry',
|
||||
1795 => 'SNMP::Info::Layer2::Paradyne',
|
||||
1872 => 'SNMP::Info::Layer3::AlteonAD',
|
||||
1890 => 'SNMP::Info::Layer3::Redlion',
|
||||
1916 => 'SNMP::Info::Layer3::Extreme',
|
||||
@@ -1760,10 +1703,13 @@ sub device_type {
|
||||
5624 => 'SNMP::Info::Layer3::Enterasys',
|
||||
6027 => 'SNMP::Info::Layer3::Force10',
|
||||
6141 => 'SNMP::Info::Layer3::Ciena',
|
||||
6339 => 'SNMP::Info::Layer3::DigitalChina',
|
||||
6486 => 'SNMP::Info::Layer3::AlcatelLucent',
|
||||
6527 => 'SNMP::Info::Layer3::Timetra',
|
||||
6672 => 'SNMP::Info::Layer2::Proscend',
|
||||
6876 => 'SNMP::Info::Layer3::VMware',
|
||||
8072 => 'SNMP::Info::Layer3::NetSNMP',
|
||||
8886 => 'SNMP::Info::Layer3::Raisecom',
|
||||
9303 => 'SNMP::Info::Layer3::PacketFront',
|
||||
10002 => 'SNMP::Info::Layer2::Ubiquiti',
|
||||
10418 => 'SNMP::Info::Layer1::Cyclades',
|
||||
@@ -1781,14 +1727,19 @@ sub device_type {
|
||||
25506 => 'SNMP::Info::Layer3::H3C',
|
||||
26543 => 'SNMP::Info::Layer3::IBMGbTor',
|
||||
26928 => 'SNMP::Info::Layer2::Aerohive',
|
||||
27514 => 'SNMP::Info::Layer3::Qtech',
|
||||
30065 => 'SNMP::Info::Layer3::Arista',
|
||||
30803 => 'SNMP::Info::Layer3::VyOS',
|
||||
32761 => 'SNMP::Info::Layer3::Deliberant',
|
||||
34300 => 'SNMP::Info::Layer3::Eltex',
|
||||
35098 => 'SNMP::Info::Layer3::Pica8',
|
||||
35265 => 'SNMP::Info::Layer3::Eltex',
|
||||
40310 => 'SNMP::Info::Layer3::Cumulus',
|
||||
40418 => 'SNMP::Info::Layer3::Nag',
|
||||
41112 => 'SNMP::Info::Layer2::Ubiquiti',
|
||||
44641 => 'SNMP::Info::Layer3::VyOS',
|
||||
47196 => 'SNMP::Info::Layer3::ArubaCX',
|
||||
48690 => 'SNMP::Info::Layer3::Teltonika',
|
||||
41752 => 'SNMP::Info::Layer3::Rotek',
|
||||
42926 => 'SNMP::Info::Layer2::NSC',
|
||||
);
|
||||
|
||||
my %l2sysoidmap = (
|
||||
@@ -1796,12 +1747,18 @@ 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',
|
||||
259 => 'SNMP::Info::Layer3::Accton',
|
||||
266 => 'SNMP::Info::Layer2::Nexans',
|
||||
637 => 'SNMP::Info::Layer3::AlcatelLucent',
|
||||
655 => 'SNMP::Info::Layer2::Carelink',
|
||||
664 => 'SNMP::Info::Layer2::Adtran',
|
||||
674 => 'SNMP::Info::Layer3::Dell',
|
||||
776 => 'SNMP::Info::Layer2::Telindus',
|
||||
890 => 'SNMP::Info::Layer2::Zyxel',
|
||||
1286 => 'SNMP::Info::Layer2::ECI',
|
||||
1795 => 'SNMP::Info::Layer2::Paradyne',
|
||||
1872 => 'SNMP::Info::Layer3::AlteonAD',
|
||||
1890 => 'SNMP::Info::Layer3::Redlion',
|
||||
1916 => 'SNMP::Info::Layer3::Extreme',
|
||||
@@ -1814,7 +1771,10 @@ sub device_type {
|
||||
4526 => 'SNMP::Info::Layer2::Netgear',
|
||||
5624 => 'SNMP::Info::Layer3::Enterasys',
|
||||
6141 => 'SNMP::Info::Layer3::Ciena',
|
||||
6339 => 'SNMP::Info::Layer3::DigitalChina',
|
||||
6486 => 'SNMP::Info::Layer3::AlcatelLucent',
|
||||
6672 => 'SNMP::Info::Layer2::Proscend',
|
||||
8886 => 'SNMP::Info::Layer3::Raisecom',
|
||||
9303 => 'SNMP::Info::Layer3::PacketFront',
|
||||
10418 => 'SNMP::Info::Layer1::Cyclades',
|
||||
11898 => 'SNMP::Info::Layer2::Orinoco',
|
||||
@@ -1827,8 +1787,13 @@ 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',
|
||||
27514 => 'SNMP::Info::Layer3::Qtech',
|
||||
32761 => 'SNMP::Info::Layer3::Deliberant',
|
||||
34300 => 'SNMP::Info::Layer3::Eltex',
|
||||
35265 => 'SNMP::Info::Layer3::Eltex',
|
||||
40418 => 'SNMP::Info::Layer3::Nag',
|
||||
41752 => 'SNMP::Info::Layer3::Rotek',
|
||||
42926 => 'SNMP::Info::Layer2::NSC',
|
||||
);
|
||||
|
||||
my %l1sysoidmap = (
|
||||
@@ -1843,8 +1808,8 @@ 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',
|
||||
41752 => 'SNMP::Info::Layer3::Rotek', #Rotek and Raisecom fucking crap -(
|
||||
);
|
||||
|
||||
# Get just the enterprise number for generic mapping
|
||||
@@ -1993,24 +1958,6 @@ 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' )
|
||||
@@ -2221,15 +2168,6 @@ 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') {
|
||||
@@ -2932,17 +2870,17 @@ For protocol specific information and implementation:
|
||||
|
||||
=over
|
||||
|
||||
=item AMAP: See L<SNMP::Info::AMAP> for details.
|
||||
=item LLDP: See L<SNMP::Info::LLDP> for details.
|
||||
|
||||
=item CDP: See L<SNMP::Info::CDP> for details.
|
||||
|
||||
=item EDP: See L<SNMP::Info::EDP> for details.
|
||||
=item SONMP: See L<SNMP::Info::SONMP> for details.
|
||||
|
||||
=item FDP: See L<SNMP::Info::FDP> for details.
|
||||
|
||||
=item LLDP: See L<SNMP::Info::LLDP> for details.
|
||||
=item EDP: See L<SNMP::Info::EDP> for details.
|
||||
|
||||
=item SONMP: See L<SNMP::Info::SONMP> for details.
|
||||
=item AMAP: See L<SNMP::Info::AMAP> for details.
|
||||
|
||||
=back
|
||||
|
||||
@@ -2968,7 +2906,7 @@ sub ip_index {
|
||||
|
||||
my $o_ip_idx = $self->old_ip_index();
|
||||
return $o_ip_idx
|
||||
if ( ref {} eq ref $o_ip_idx and scalar keys %$o_ip_idx );
|
||||
if ( ref({}) eq ref $o_ip_idx and scalar keys %$o_ip_idx );
|
||||
|
||||
# Since callers may be using the old iid to get the IP, strip protocol
|
||||
# and length from the index
|
||||
@@ -2994,7 +2932,7 @@ sub ip_table {
|
||||
|
||||
my $o_ip_table = $self->old_ip_table();
|
||||
return $o_ip_table
|
||||
if ( ref {} eq ref $o_ip_table and scalar keys %$o_ip_table );
|
||||
if ( ref({}) eq ref $o_ip_table and scalar keys %$o_ip_table );
|
||||
|
||||
my $n_ip_idx = $self->new_ip_index() || {};
|
||||
my $n_ip_type = $self->new_ip_type() || {};
|
||||
@@ -3018,7 +2956,7 @@ sub ip_netmask {
|
||||
|
||||
my $o_ip_mask = $self->old_ip_netmask();
|
||||
return $o_ip_mask
|
||||
if ( ref {} eq ref $o_ip_mask and scalar keys %$o_ip_mask );
|
||||
if ( ref({}) eq ref $o_ip_mask and scalar keys %$o_ip_mask );
|
||||
|
||||
my $n_ip_pfx = $self->new_ip_prefix() || {};
|
||||
my $n_ip_type = $self->new_ip_type() || {};
|
||||
@@ -3037,7 +2975,7 @@ sub ip_netmask {
|
||||
$prefix = $1;
|
||||
}
|
||||
my $new_iid = join( ".", @parts );
|
||||
my $mask = eval { NetAddr::IP::Lite->new( $new_iid . '/' . $prefix )->mask() }
|
||||
my $mask = NetAddr::IP::Lite->new( $new_iid . '/' . $prefix )->mask()
|
||||
|| undef;
|
||||
|
||||
$ip_netmask{$new_iid} = $mask;
|
||||
@@ -3718,7 +3656,7 @@ Makes human friendly speed ratings using C<%SPEED_MAP>.
|
||||
%SPEED_MAP = (
|
||||
'56000' => '56 kbps',
|
||||
'64000' => '64 kbps',
|
||||
'115000' => '115 kbps',
|
||||
'115000' => '115 kpbs',
|
||||
'1500000' => '1.5 Mbps',
|
||||
'1536000' => 'T1',
|
||||
'1544000' => 'T1',
|
||||
@@ -3729,9 +3667,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',
|
||||
@@ -3741,11 +3679,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',
|
||||
@@ -3765,7 +3703,7 @@ munge_highspeed(). SNMP::Info can return speeds up to terabit levels this way.
|
||||
%SPEED_MAP = (
|
||||
'56000' => '56 kbps',
|
||||
'64000' => '64 kbps',
|
||||
'115000' => '115 kbps',
|
||||
'115000' => '115 kpbs',
|
||||
'1500000' => '1.5 Mbps',
|
||||
'1536000' => 'T1',
|
||||
'1544000' => 'T1',
|
||||
@@ -3776,9 +3714,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',
|
||||
@@ -3788,11 +3726,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',
|
||||
@@ -3850,27 +3788,6 @@ 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
|
||||
@@ -4039,8 +3956,6 @@ Takes an OID and return the object name if the right MIB is loaded.
|
||||
|
||||
sub munge_e_type {
|
||||
my $oid = shift;
|
||||
return unless $oid;
|
||||
return $oid if $oid =~ m/^\.0/;
|
||||
|
||||
my $name = &SNMP::translateObj($oid);
|
||||
return $name if defined($name);
|
||||
@@ -4922,7 +4837,7 @@ sub _cache {
|
||||
my ($attr, $data) = @_;
|
||||
my $store = $self->store();
|
||||
|
||||
if (ref {} eq ref $data) {
|
||||
if (ref({}) eq ref $data) {
|
||||
$self->{"_${attr}"}++;
|
||||
$store->{$attr} = $data;
|
||||
}
|
||||
@@ -4950,7 +4865,7 @@ sub _munge {
|
||||
|
||||
return $data unless defined $munge->{$attr};
|
||||
|
||||
if (ref {} eq ref $data) {
|
||||
if (ref({}) eq ref $data) {
|
||||
my $subref = $munge->{$attr};
|
||||
my %munged;
|
||||
foreach my $key ( keys %$data ) {
|
||||
@@ -5092,7 +5007,8 @@ 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.
|
||||
for creation. The newly created method is inserted into the symbol table
|
||||
returning to AUTOLOAD only for the initial method call.
|
||||
|
||||
Returns undef if the method does not exist and can not be created.
|
||||
|
||||
@@ -5126,24 +5042,18 @@ 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
|
||||
# we'll 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 _make_setter( $method, $oid, @_ );
|
||||
return *{$method} = _make_setter( $method, $oid, @_ );
|
||||
}
|
||||
elsif ( defined $funcs->{$base_method} || $table ) {
|
||||
return _load_attr( $method, $oid, @_ );
|
||||
return *{$method} = _load_attr( $method, $oid, @_ );
|
||||
}
|
||||
else {
|
||||
return _global( $method, $oid );
|
||||
return *{$method} = _global( $method, $oid );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5152,7 +5062,9 @@ 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.
|
||||
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.
|
||||
|
||||
=over
|
||||
|
||||
@@ -5183,9 +5095,9 @@ subclass.
|
||||
|
||||
sub AUTOLOAD {
|
||||
my $self = shift;
|
||||
my ($sub_name) = $AUTOLOAD =~ /::([a-zA-Z0-9_-]+)$/;
|
||||
my ($sub_name) = $AUTOLOAD =~ /::(\w+)$/;
|
||||
|
||||
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,
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
'ALCATEL-IND1-INTERSWITCH-PROTOCOL-MIB' => 'aipAMAPRemDeviceType',
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = ( 'ADSL-LINE-MIB' => 'adslLineType' );
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
# Load MIB for leafs referenced within class
|
||||
%MIBS = ('IF-MIB' => 'ifIndex',);
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::MIBS,
|
||||
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, $DEBUG, %MIBS, %FUNCS, %GLOBALS, %MUNGE, $INIT);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
'BRIDGE-MIB' => 'dot1dBaseBridgeAddress',
|
||||
@@ -105,7 +105,7 @@ $VERSION = '3.88';
|
||||
'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() or return {};
|
||||
my $index = $bridge->bp_index();
|
||||
|
||||
# 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+\.)*//g;
|
||||
( $vlan = $idx ) =~ s/^\d+\.//;
|
||||
|
||||
# Convert portlist bit array to bp_index array
|
||||
for ( my $i = 0; $i <= $#$portlist; $i++ ) {
|
||||
|
||||
@@ -43,7 +43,7 @@ use SNMP::Info;
|
||||
our
|
||||
($VERSION, $DEBUG, %FUNCS, %GLOBALS, %MIBS, %MUNGE, $INIT, %CDP_CAPABILITIES);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
# Five data structures required by SNMP::Info
|
||||
%MIBS = ( 'CISCO-CDP-MIB' => 'cdpGlobalRun' );
|
||||
|
||||
@@ -48,7 +48,7 @@ use SNMP::Info::IEEE802dot3ad;
|
||||
|
||||
our ($DEBUG, $VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::IEEE802dot3ad::MIBS,
|
||||
|
||||
@@ -1,267 +0,0 @@
|
||||
# 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.88';
|
||||
|
||||
%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
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
'CISCO-CONFIG-COPY-MIB' => 'ccCopyTable',
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE, %PAECAPABILITIES);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
'CISCO-PORT-SECURITY-MIB' => 'ciscoPortSecurityMIB',
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = ( 'CISCO-POWER-ETHERNET-EXT-MIB' => 'cpeExtPsePortEntPhyIndex',
|
||||
'CISCO-CDP-MIB' => 'cdpCachePowerConsumption',
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = ( 'CISCO-CLASS-BASED-QOS-MIB' => 'cbQosIfIndex', );
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = ( 'CISCO-RTTMON-MIB' => 'rttMonCtrlAdminOwner', );
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ use Exporter;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE, %PORTSTAT);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = ( 'CISCO-STACK-MIB' => 'ciscoStackMIB', );
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
'SNMPv2-MIB' => 'sysDescr',
|
||||
@@ -109,7 +109,6 @@ sub os {
|
||||
return 'ios-xe' if ( $descr =~ /Fuji/ );
|
||||
return 'ios-xe' if ( $descr =~ /Everest/ );
|
||||
return 'ios-xe' if ( $descr =~ /Gibraltar/ );
|
||||
return 'ios-xe' if ( $descr =~ /Amsterdam/ );
|
||||
return 'ios-xe' if ( $descr =~ /IOS-XE/ );
|
||||
return 'ios-xr' if ( $descr =~ /IOS XR/ );
|
||||
return 'ios' if ( $descr =~ /IOS/ );
|
||||
|
||||
@@ -36,7 +36,7 @@ use SNMP::Info::Bridge;
|
||||
|
||||
our ($VERSION, $DEBUG, %MIBS, %FUNCS, %GLOBALS, %MUNGE, %PORTSTAT, $INIT);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
@SNMP::Info::CiscoStpExtensions::ISA = qw/SNMP::Info::Bridge SNMP::Info Exporter/;
|
||||
@SNMP::Info::CiscoStpExtensions::EXPORT_OK = qw//;
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
'CISCO-VTP-MIB' => 'vtpVlanName',
|
||||
@@ -199,32 +199,6 @@ sub i_vlan {
|
||||
return \%i_vlans;
|
||||
}
|
||||
|
||||
sub i_subinterfaces {
|
||||
my $vtp = shift;
|
||||
my %i_subs = %{ $vtp->SUPER::i_subinterfaces() || {} };
|
||||
|
||||
# CISCO-VLAN-IFTABLE-RELATION-MIB
|
||||
# Used for traditional Cisco Routers and Aironet
|
||||
|
||||
my $v_cvi_if = $vtp->v_cvi_if();
|
||||
if ( defined $v_cvi_if ) {
|
||||
|
||||
# Translate vlan.parent_physical_interface_iid -> iid
|
||||
# to iid -> [iid, iid, ...]
|
||||
foreach my $i ( keys %$v_cvi_if ) {
|
||||
my ( $vlan, $phys ) = split( /\./, $i );
|
||||
my $iid = $v_cvi_if->{$i};
|
||||
|
||||
next unless $phys and $iid;
|
||||
next if $phys == $iid;
|
||||
|
||||
push @{ $i_subs{$phys} }, $iid;
|
||||
}
|
||||
}
|
||||
|
||||
return \%i_subs;
|
||||
}
|
||||
|
||||
sub i_untagged {
|
||||
my $vtp = shift;
|
||||
my ( $ifindex ) = @_;
|
||||
@@ -651,22 +625,6 @@ IDs. These are the VLANs which are members of enabled VLAN list for the port.
|
||||
print "Port: $port VLAN: $vlan\n";
|
||||
}
|
||||
|
||||
=item $vtp->i_subinterfaces()
|
||||
|
||||
Returns reference to hash of arrays: key = C<ifIndex>, value = array of
|
||||
C<ifIndex>. These are the VLAN subinterfaces (C<l2vlan> type) for the parent
|
||||
(C<ethernetCsmacd> type) interface.
|
||||
|
||||
Example:
|
||||
my $interfaces = $vtp->interfaces();
|
||||
my $i_subs = $vtp->i_subinterfaces();
|
||||
|
||||
foreach my $iid (sort keys %$interfaces) {
|
||||
my $port = $interfaces->{$iid};
|
||||
my $subs = join(',', sort(map {$interfaces->{$_}} @{$i_subs->{$iid}}));
|
||||
print "Port: $port has subinterfaces: $subs\n";
|
||||
}
|
||||
|
||||
=item $vtp->i_vlan_membership_untagged()
|
||||
|
||||
Returns reference to hash of arrays: key = C<ifIndex>, value = array of VLAN
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS
|
||||
|
||||
@@ -11,7 +11,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
'DOCS-IF3-MIB' => 'docsIf3Mib',
|
||||
|
||||
@@ -40,7 +40,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
'EXTREME-EDP-MIB' => 'extremeEdpPortIfIndex',
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = ( 'ENTITY-MIB' => 'entPhysicalSerialNum' );
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = ( 'EtherLike-MIB' => 'etherMIB' );
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = ( 'FOUNDRY-SN-SWITCH-GROUP-MIB' => 'snFdpGlobalRun' );
|
||||
|
||||
|
||||
@@ -1,230 +0,0 @@
|
||||
# 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.88';
|
||||
|
||||
%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
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = ( 'IEEE802dot11-MIB' => 'dot11DesiredSSID', );
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ use SNMP::Info::Aggregate;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Aggregate::MIBS,
|
||||
|
||||
@@ -45,7 +45,7 @@ use constant {
|
||||
IPV6MIB => 3,
|
||||
};
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
|
||||
|
||||
@@ -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)));
|
||||
} elsif ($info->debug()) {
|
||||
printf("%s: unable to decode table index to IPv6 address. Raw data is [%s].\n", &_my_sub_name, $row);
|
||||
} else {
|
||||
warn sprintf("%s: unable to decode table index to IPv6 address. Raw data is [%s].\n", &_my_sub_name, $row);
|
||||
}
|
||||
}
|
||||
return $return;
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
'LLDP-MIB' => 'lldpLocSysCapEnabled',
|
||||
@@ -52,18 +52,13 @@ $VERSION = '3.88';
|
||||
'lldp_sysname' => 'lldpLocSysName',
|
||||
'lldp_sysdesc' => 'lldpLocSysDesc',
|
||||
'lldp_sys_cap' => 'lldpLocSysCapEnabled',
|
||||
'lldp_loc_id_type' => 'lldpLocChassisIdSubtype',
|
||||
'lldp_loc_id_os' => 'lldpLocChassisId',
|
||||
);
|
||||
|
||||
%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',
|
||||
@@ -97,8 +92,6 @@ $VERSION = '3.88';
|
||||
'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,
|
||||
@@ -153,11 +146,7 @@ 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.
|
||||
# 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 $lldp_desc = $lldp->lldpLocPortDesc($port);
|
||||
my $desc = $lldp_desc->{$port};
|
||||
|
||||
# If cross reference is successful use it, otherwise stick with
|
||||
@@ -285,29 +274,6 @@ sub lldp_port {
|
||||
return \%lldp_port;
|
||||
}
|
||||
|
||||
sub _lldp_id_string {
|
||||
my $lldp = shift;
|
||||
my $id = shift;
|
||||
my $type = shift;
|
||||
|
||||
# May need to format other types in the future
|
||||
if ( $type =~ /mac/ ) {
|
||||
$id = SNMP::Info::munge_mac($id)
|
||||
} elsif ( $type eq 'networkAddress' ) {
|
||||
if ( length( unpack( 'H*', $id ) ) == 10 ) {
|
||||
|
||||
# IP address - first octet is IANA Address Family Number, need
|
||||
# walk with IPv6
|
||||
my @octets
|
||||
= ( map { sprintf "%02x", $_ } unpack( 'C*', $id ) )
|
||||
[ 1 .. 4 ];
|
||||
$id = join '.', map { hex($_) } @octets;
|
||||
}
|
||||
}
|
||||
|
||||
return $id;
|
||||
}
|
||||
|
||||
sub lldp_id {
|
||||
my $lldp = shift;
|
||||
my $partial = shift;
|
||||
@@ -322,19 +288,26 @@ sub lldp_id {
|
||||
my $type = $ch_type->{$key};
|
||||
next unless $type;
|
||||
|
||||
$id = $lldp->_lldp_id_string($id, $type);
|
||||
# May need to format other types in the future
|
||||
if ( $type =~ /mac/ ) {
|
||||
$id = SNMP::Info::munge_mac($id)
|
||||
}
|
||||
elsif ( $type eq 'networkAddress' ) {
|
||||
if ( length( unpack( 'H*', $id ) ) == 10 ) {
|
||||
|
||||
# IP address - first octet is IANA Address Family Number, need
|
||||
# walk with IPv6
|
||||
my @octets
|
||||
= ( map { sprintf "%02x", $_ } unpack( 'C*', $id ) )
|
||||
[ 1 .. 4 ];
|
||||
$id = join '.', map { hex($_) } @octets;
|
||||
}
|
||||
}
|
||||
$lldp_id{$key} = $id;
|
||||
}
|
||||
return \%lldp_id;
|
||||
}
|
||||
|
||||
sub lldp_loc_id {
|
||||
my $lldp = shift;
|
||||
my $ch_type = $lldp->lldp_loc_id_type();
|
||||
my $ch = $lldp->lldp_loc_id_os();
|
||||
return $lldp->_lldp_id_string($ch, $ch_type);
|
||||
}
|
||||
|
||||
sub lldp_platform {
|
||||
my $lldp = shift;
|
||||
my $partial = shift;
|
||||
@@ -604,22 +577,6 @@ capability and nothing else."
|
||||
|
||||
(C<lldpLocSysCapEnabled>)
|
||||
|
||||
=item $lldp->lldp_loc_id()
|
||||
|
||||
The string value used to identify the chassis component associated with
|
||||
the local system.
|
||||
|
||||
(C<lldpLocChassisId>)
|
||||
|
||||
=item $lldp->lldp_loc_id_type()
|
||||
|
||||
The type of encoding used to identify the chassis associated with the
|
||||
local system.
|
||||
|
||||
This is used by the above method to decode the octet string in C<lldpLocChassisId>
|
||||
|
||||
(C<lldpLocChassisIdSubtype>)
|
||||
|
||||
=back
|
||||
|
||||
=head1 TABLE METHODS
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %PORTSTAT, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = ( %SNMP::Info::MIBS, 'SNMP-REPEATER-MIB' => 'rptrPortGroupIndex' );
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info::Layer1;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
# Set for No CDP
|
||||
%GLOBALS = ( %SNMP::Info::Layer1::GLOBALS, 'root_ip' => 'actualIPAddr', );
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info::Layer1;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
# Set for No CDP
|
||||
%GLOBALS = ( %SNMP::Info::Layer1::GLOBALS, );
|
||||
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer1;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE, $AUTOLOAD);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer1::MIBS,
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -37,32 +37,22 @@ use Exporter;
|
||||
use SNMP::Info;
|
||||
use SNMP::Info::Bridge;
|
||||
use SNMP::Info::Entity;
|
||||
use SNMP::Info::PortAccessEntity;
|
||||
use SNMP::Info::PowerEthernet;
|
||||
use SNMP::Info::LLDP;
|
||||
use SNMP::Info::DocsisHE;
|
||||
|
||||
@SNMP::Info::Layer2::ISA = qw/
|
||||
SNMP::Info SNMP::Info::Bridge
|
||||
SNMP::Info::Entity
|
||||
SNMP::Info::PowerEthernet
|
||||
SNMP::Info::LLDP
|
||||
SNMP::Info::DocsisHE
|
||||
SNMP::Info::PortAccessEntity
|
||||
Exporter
|
||||
/;
|
||||
|
||||
@SNMP::Info::Layer2::ISA
|
||||
= qw/SNMP::Info SNMP::Info::Bridge SNMP::Info::Entity SNMP::Info::PowerEthernet SNMP::Info::LLDP SNMP::Info::DocsisHE Exporter/;
|
||||
@SNMP::Info::Layer2::EXPORT_OK = qw//;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %PORTSTAT, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::MIBS, %SNMP::Info::Bridge::MIBS,
|
||||
%SNMP::Info::Entity::MIBS, %SNMP::Info::PowerEthernet::MIBS,
|
||||
%SNMP::Info::LLDP::MIBS, %SNMP::Info::DocsisHE::MIBS,
|
||||
%SNMP::Info::PortAccessEntity::MIBS
|
||||
);
|
||||
|
||||
%GLOBALS = (
|
||||
@@ -72,7 +62,6 @@ $VERSION = '3.88';
|
||||
%SNMP::Info::Entity::GLOBALS,
|
||||
%SNMP::Info::PowerEthernet::GLOBALS,
|
||||
%SNMP::Info::LLDP::GLOBALS,
|
||||
%SNMP::Info::PortAccessEntity::GLOBALS,
|
||||
'serial1' =>
|
||||
'.1.3.6.1.4.1.9.3.6.3.0', # OLD-CISCO-CHASSIS-MIB::chassisId.0
|
||||
);
|
||||
@@ -81,7 +70,6 @@ $VERSION = '3.88';
|
||||
%SNMP::Info::FUNCS, %SNMP::Info::Bridge::FUNCS,
|
||||
%SNMP::Info::Entity::FUNCS, %SNMP::Info::PowerEthernet::FUNCS,
|
||||
%SNMP::Info::LLDP::FUNCS, %SNMP::Info::DocsisHE::FUNCS,
|
||||
%SNMP::Info::PortAccessEntity::FUNCS
|
||||
);
|
||||
|
||||
%MUNGE = (
|
||||
@@ -93,7 +81,6 @@ $VERSION = '3.88';
|
||||
%SNMP::Info::Entity::MUNGE,
|
||||
%SNMP::Info::PowerEthernet::MUNGE,
|
||||
%SNMP::Info::LLDP::MUNGE,
|
||||
%SNMP::Info::PortAccessEntity::MUNGE,
|
||||
);
|
||||
|
||||
# Method OverRides
|
||||
@@ -118,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';
|
||||
@@ -249,8 +236,6 @@ after determining a more specific class using the method above.
|
||||
|
||||
=item SNMP::Info::PowerEthernet
|
||||
|
||||
=item SNMP::Info::PortAccessEntity
|
||||
|
||||
=back
|
||||
|
||||
=head2 Required MIBs
|
||||
@@ -308,10 +293,6 @@ See documentation in L<SNMP::Info::Entity/"GLOBALS"> for details.
|
||||
|
||||
See documentation in L<SNMP::Info::LLDP/"GLOBALS"> for details.
|
||||
|
||||
=head2 Globals imported from SNMP::Info::PortAccessEntity
|
||||
|
||||
See documentation in L<SNMP::Info::PortAccessEntity/"GLOBALS"> for details.
|
||||
|
||||
=head1 TABLE METHODS
|
||||
|
||||
These are methods that return tables of information in the form of a reference
|
||||
@@ -346,8 +327,4 @@ See documentation in L<SNMP::Info::Entity/"TABLE METHODS"> for details.
|
||||
|
||||
See documentation in L<SNMP::Info::LLDP/"TABLE METHODS"> for details.
|
||||
|
||||
=head2 Table Methods imported from SNMP::Info::PortAccessEntity
|
||||
|
||||
See documentation in L<SNMP::Info::PortAccessEntity/"TABLE METHODS"> for details.
|
||||
|
||||
=cut
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::CDP;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE, $AUTOLOAD);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
# This will be filled in with the device's index into the EntPhysicalEntry
|
||||
# table by the serial() function.
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%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,8 +318,7 @@ __END__
|
||||
|
||||
=head1 NAME
|
||||
|
||||
SNMP::Info::Layer2::Aerohive - SNMP Interface to Aerohive / Extreme
|
||||
access points
|
||||
SNMP::Info::Layer2::Aerohive - SNMP Interface to Aerohive Access Points
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
@@ -343,7 +342,7 @@ Eric Miller
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Provides abstraction to the configuration information obtainable from an
|
||||
Aerohive / Extreme wireless access point through SNMP.
|
||||
Aerohive wireless Access Point through SNMP.
|
||||
|
||||
=head2 Inherited Classes
|
||||
|
||||
@@ -449,11 +448,11 @@ radio interface.
|
||||
|
||||
C<ahRadioTxPower>
|
||||
|
||||
=item $aerohive->cd11_port()
|
||||
=item $aironet->cd11_port()
|
||||
|
||||
Returns radio interfaces.
|
||||
|
||||
=item $aerohive->cd11_mac()
|
||||
=item $aironet->cd11_mac()
|
||||
|
||||
Returns client radio interface MAC addresses.
|
||||
|
||||
|
||||
@@ -31,7 +31,6 @@ package SNMP::Info::Layer2::Airespace;
|
||||
use strict;
|
||||
use warnings;
|
||||
use Exporter;
|
||||
use SNMP::Info::Bridge;
|
||||
use SNMP::Info::CDP;
|
||||
use SNMP::Info::Airespace;
|
||||
|
||||
@@ -41,7 +40,7 @@ use SNMP::Info::Airespace;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::MIBS, %SNMP::Info::Bridge::MIBS,
|
||||
|
||||
@@ -48,7 +48,7 @@ use SNMP::Info::IEEE802dot11;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::IEEE802dot11::GLOBALS,
|
||||
|
||||
@@ -40,7 +40,7 @@ use SNMP::Info::Layer1;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%GLOBALS = ( %SNMP::Info::Layer2::GLOBALS );
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = ( %SNMP::Info::Layer2::MIBS );
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
@@ -552,6 +552,10 @@ 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.
|
||||
|
||||
@@ -48,7 +48,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer2::GLOBALS,
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info::Layer2::Cisco;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer2::Cisco::GLOBALS,
|
||||
|
||||
133
lib/SNMP/Info/Layer2/Carelink.pm
Executable file
133
lib/SNMP/Info/Layer2/Carelink.pm
Executable file
@@ -0,0 +1,133 @@
|
||||
# SNMP::Info::Layer2::Carelink - SNMP Interface to Carelink Devices
|
||||
#
|
||||
# Copyright (c) 2020 by 135.
|
||||
|
||||
package SNMP::Info::Layer2::Carelink;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Exporter;
|
||||
use SNMP::Info::Layer2;
|
||||
use SNMP::Info::Layer3;
|
||||
|
||||
@SNMP::Info::Layer2::Carelink::ISA = qw/SNMP::Info::Layer2 Exporter/;
|
||||
@SNMP::Info::Layer2::Carelink::EXPORT_OK = qw//;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
# This will be filled in with the device's index into the EntPhysicalEntry
|
||||
# table by the serial() function.
|
||||
our $index = undef;
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
);
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer2::GLOBALS,
|
||||
'serial_oid' => 'mib-2.47.1.1.1.1.11.1',
|
||||
'os_ver_oid' => 'mib-2.47.1.1.1.1.9.1',
|
||||
'hw_oid' => 'mib-2.47.1.1.1.1.2.1',
|
||||
'fw_mac_oid' => 'mib-2.47.1.1.1.1.11.1',
|
||||
);
|
||||
|
||||
%FUNCS = ( %SNMP::Info::Layer2::FUNCS, );
|
||||
|
||||
%MUNGE = ( %SNMP::Info::Layer2::MUNGE, );
|
||||
|
||||
sub vendor {
|
||||
return 'carelink';
|
||||
}
|
||||
sub os {
|
||||
return 'caos';
|
||||
}
|
||||
|
||||
sub os_ver {
|
||||
my $carelink = shift;
|
||||
my $ver = $carelink->os_ver_oid() || undef;
|
||||
return $ver if (defined $ver);
|
||||
return 'Unknown';
|
||||
}
|
||||
sub model {
|
||||
my $carelink = shift;
|
||||
my $id = $carelink->id();
|
||||
my $mod = $carelink->hw_oid() || undef;
|
||||
return $mod if (defined $mod);
|
||||
return 'Unknown';
|
||||
}
|
||||
|
||||
1;
|
||||
__END__
|
||||
|
||||
=head1 NAME
|
||||
|
||||
SNMP::Info::Layer2::Carelink - SNMP Interface to Carelink Devices
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $carelink = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myrouter',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $carelink->class();
|
||||
print "SNMP::Info determined this device to fall under subclass : $class\n";
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Subclass for carelink Devices running IOS-like software
|
||||
|
||||
=head2 Inherited Classes
|
||||
|
||||
=over
|
||||
|
||||
=item SNMP::Info::Layer2
|
||||
|
||||
=item SNMP::Info::Layer3
|
||||
|
||||
=back
|
||||
|
||||
=head2 Inherited Classes' MIBs
|
||||
|
||||
See L<SNMP::Info::Layer2/"Required MIBs"> for its own MIB requirements.
|
||||
|
||||
See L<SNMP::Info::Layer3/"Required MIBs"> for its own MIB requirements.
|
||||
|
||||
=head1 GLOBALS
|
||||
|
||||
These are methods that return scalar value from SNMP
|
||||
|
||||
=over
|
||||
|
||||
=item $carelink->vendor()
|
||||
|
||||
Returns 'adtran'
|
||||
|
||||
=item $carelink->os()
|
||||
|
||||
Returns 'caos'
|
||||
|
||||
=item $carelink->layers()
|
||||
|
||||
Ensures that layer two is reported, at least.
|
||||
|
||||
=item $carelink->os_ver()
|
||||
|
||||
Returns the software version.
|
||||
|
||||
=item $carelink->model()
|
||||
|
||||
Returns the model extracted.
|
||||
|
||||
=item $carelink->serial()
|
||||
|
||||
Returns serial number.
|
||||
|
||||
=cut
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info::Layer2::Cisco;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::Cisco::MIBS,
|
||||
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info::SONMP;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::MIBS,
|
||||
|
||||
@@ -52,7 +52,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -49,7 +49,7 @@ use SNMP::Info::CDP;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer2::GLOBALS,
|
||||
|
||||
113
lib/SNMP/Info/Layer2/ECI.pm
Executable file
113
lib/SNMP/Info/Layer2/ECI.pm
Executable file
@@ -0,0 +1,113 @@
|
||||
# SNMP::Info::Layer2::ECI - SNMP Interface to ECI Devices
|
||||
#
|
||||
# Copyright (c) 2020 by 135.
|
||||
|
||||
package SNMP::Info::Layer2::ECI;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Exporter;
|
||||
use SNMP::Info::Layer2;
|
||||
|
||||
@SNMP::Info::Layer2::ECI::ISA = qw/SNMP::Info::Layer2 Exporter/;
|
||||
@SNMP::Info::Layer2::ECI::EXPORT_OK = qw//;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = ( %SNMP::Info::Layer2::MIBS, );
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer2::GLOBALS,
|
||||
);
|
||||
|
||||
%FUNCS = ( %SNMP::Info::Layer2::FUNCS, );
|
||||
|
||||
%MUNGE = ( %SNMP::Info::Layer2::MUNGE, );
|
||||
|
||||
sub vendor {
|
||||
return 'eci';
|
||||
}
|
||||
|
||||
sub os {
|
||||
return 'eci-os';
|
||||
}
|
||||
|
||||
sub os_ver {
|
||||
return 'unknown';
|
||||
}
|
||||
|
||||
sub model {
|
||||
my $obj = shift;
|
||||
|
||||
return $obj->description;
|
||||
}
|
||||
|
||||
1;
|
||||
__END__
|
||||
|
||||
=head1 NAME
|
||||
|
||||
SNMP::Info::Layer2::ECI - SNMP Interface to ECI Devices
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $obj = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myrouter',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $obj->class();
|
||||
print "SNMP::Info determined this device to fall under subclass : $class\n";
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Subclass for ECI Devices running IOS-like software
|
||||
|
||||
=head2 Inherited Classes
|
||||
|
||||
=over
|
||||
|
||||
=item SNMP::Info::Layer2
|
||||
|
||||
=back
|
||||
|
||||
=head1 GLOBALS
|
||||
|
||||
These are methods that return scalar value from SNMP
|
||||
|
||||
=over
|
||||
|
||||
=item $obj->vendor()
|
||||
|
||||
Returns 'eci'
|
||||
|
||||
=item $obj->os()
|
||||
|
||||
Returns 'eci-os'
|
||||
|
||||
=item $obj->layers()
|
||||
|
||||
Ensures that layer two is reported, at least.
|
||||
|
||||
=item $obj->os_ver()
|
||||
|
||||
Returns the software version.
|
||||
|
||||
=item $obj->model
|
||||
|
||||
Returns the model extracted.
|
||||
|
||||
=item $obj->serial()
|
||||
|
||||
Returns serial number.
|
||||
|
||||
=cut
|
||||
|
||||
=back
|
||||
@@ -43,7 +43,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -50,7 +50,7 @@ use SNMP::Info::Aggregate 'agg_ports_ifstack';
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %PORTSTAT, %MODEL_MAP, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -45,7 +45,7 @@ use SNMP::Info::CDP;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %PORTSTAT, %MODEL_MAP, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -37,7 +37,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE, $AUTOLOAD);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info::Airespace;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE, $AUTOLOAD, $INIT, $DEBUG);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS, %SNMP::Info::IEEE802dot11::MIBS,
|
||||
|
||||
144
lib/SNMP/Info/Layer2/NSC.pm
Executable file
144
lib/SNMP/Info/Layer2/NSC.pm
Executable file
@@ -0,0 +1,144 @@
|
||||
# SNMP::Info::Layer2::NSC - SNMP Interface to NSC Devices
|
||||
#
|
||||
# Copyright (c) 2020 by 135.
|
||||
|
||||
package SNMP::Info::Layer2::NSC;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Exporter;
|
||||
use SNMP::Info::Layer2;
|
||||
|
||||
@SNMP::Info::Layer2::NSC::ISA = qw/SNMP::Info::Layer2 Exporter/;
|
||||
@SNMP::Info::Layer2::NSC::EXPORT_OK = qw//;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = ( %SNMP::Info::Layer2::MIBS, );
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer2::GLOBALS,
|
||||
'model_oid' => 'enterprises.42926.2.3.1.3.0',
|
||||
'serial_oid' => 'enterprises.42926.2.3.1.8.0',
|
||||
'hw_oid' => 'enterprises.42926.2.3.1.1.0',
|
||||
'os_ver_oid' => 'enterprises.42926.2.3.1.2.0',
|
||||
);
|
||||
|
||||
%FUNCS = ( %SNMP::Info::Layer2::FUNCS, );
|
||||
|
||||
%MUNGE = ( %SNMP::Info::Layer2::MUNGE, );
|
||||
|
||||
sub vendor {
|
||||
return 'nsc';
|
||||
}
|
||||
|
||||
sub os {
|
||||
return 'nsc-os';
|
||||
}
|
||||
|
||||
sub os_ver {
|
||||
my $obj = shift;
|
||||
my $os_ver = $obj->os_ver_oid || undef;
|
||||
|
||||
return $os_ver
|
||||
if defined $os_ver;
|
||||
return 'unknown';
|
||||
}
|
||||
sub model {
|
||||
my $obj = shift;
|
||||
my $model = $obj->model_oid || undef;
|
||||
my $hwver = $obj->hwver || undef;
|
||||
|
||||
return $model . ' HW:' . $hwver
|
||||
if defined $model and defined $hwver;
|
||||
return $model
|
||||
if defined $model;
|
||||
return $obj->SUPER::model();
|
||||
}
|
||||
|
||||
sub hwver {
|
||||
my $obj = shift;
|
||||
my $hwver = $obj->hw_oid || undef;
|
||||
|
||||
return $hwver
|
||||
if defined $hwver;
|
||||
}
|
||||
|
||||
sub serial {
|
||||
my $obj = shift;
|
||||
my $serial = $obj->serial_oid || undef;
|
||||
|
||||
return $serial
|
||||
if defined $serial;
|
||||
return $obj->SUPER::serial();
|
||||
}
|
||||
|
||||
1;
|
||||
__END__
|
||||
|
||||
=head1 NAME
|
||||
|
||||
SNMP::Info::Layer2::NSC - SNMP Interface to NSC Devices
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $obj = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myrouter',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $obj->class();
|
||||
print "SNMP::Info determined this device to fall under subclass : $class\n";
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Subclass for NSC Devices
|
||||
|
||||
=head2 Inherited Classes
|
||||
|
||||
=over
|
||||
|
||||
=item SNMP::Info::Layer2
|
||||
|
||||
=back
|
||||
|
||||
=head2 Inherited Classes' MIBs
|
||||
|
||||
See L<SNMP::Info::Layer2/"Required MIBs"> for its own MIB requirements.
|
||||
|
||||
=head1 GLOBALS
|
||||
|
||||
These are methods that return scalar value from SNMP
|
||||
|
||||
=over
|
||||
|
||||
=item $obj->vendor()
|
||||
|
||||
Returns 'nsc-oem'
|
||||
|
||||
=item $obj->os()
|
||||
|
||||
Returns 'nsc-oem'
|
||||
|
||||
=item $obj->os_ver()
|
||||
|
||||
Returns the software version.
|
||||
|
||||
=item $obj->model()
|
||||
|
||||
Returns the model extracted.
|
||||
|
||||
=item $obj->serial()
|
||||
|
||||
Returns serial number.
|
||||
|
||||
=cut
|
||||
|
||||
=back
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
@@ -53,9 +53,9 @@ $VERSION = '3.88';
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer2::GLOBALS,
|
||||
'os_ver' => 'ntwsVersionString',
|
||||
'nws_serial' => 'ntwsSerialNumber',
|
||||
'mac' => 'dot1dBaseBridgeAddress',
|
||||
'os_ver' => 'ntwsVersionString',
|
||||
'serial' => 'ntwsSerialNumber',
|
||||
'mac' => 'dot1dBaseBridgeAddress',
|
||||
);
|
||||
|
||||
%FUNCS = (
|
||||
@@ -139,14 +139,6 @@ 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();
|
||||
@@ -662,7 +654,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 ) {
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
# This will be filled in with the device's index into the EntPhysicalEntry
|
||||
# table by the serial() function.
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
116
lib/SNMP/Info/Layer2/Paradyne.pm
Executable file
116
lib/SNMP/Info/Layer2/Paradyne.pm
Executable file
@@ -0,0 +1,116 @@
|
||||
# SNMP::Info::Layer2::Paradyne - SNMP Interface to Paradyne Devices
|
||||
#
|
||||
# Copyright (c) 2020 by 135.
|
||||
|
||||
package SNMP::Info::Layer2::Paradyne;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Exporter;
|
||||
use SNMP::Info::Layer2;
|
||||
|
||||
@SNMP::Info::Layer2::Paradyne::ISA = qw/SNMP::Info::Layer2 Exporter/;
|
||||
@SNMP::Info::Layer2::Paradyne::EXPORT_OK = qw//;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = ( %SNMP::Info::Layer2::MIBS, );
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer2::GLOBALS,
|
||||
);
|
||||
|
||||
%FUNCS = ( %SNMP::Info::Layer2::FUNCS, );
|
||||
|
||||
%MUNGE = ( %SNMP::Info::Layer2::MUNGE, );
|
||||
|
||||
sub vendor {
|
||||
return 'paradyne';
|
||||
}
|
||||
|
||||
sub os {
|
||||
return 'prdn-os';
|
||||
}
|
||||
|
||||
sub os_ver {
|
||||
my $obj = shift;
|
||||
$obj->description =~ /S\/W\sRelease\:\s+(.*)\;/;
|
||||
return $1 if defined($1);
|
||||
return 'unknown';
|
||||
}
|
||||
|
||||
sub model {
|
||||
my $obj = shift;
|
||||
$obj->description =~ /PARADYNE\s+(.*)\;.*\;/;
|
||||
return $1 if defined($1);
|
||||
}
|
||||
|
||||
1;
|
||||
__END__
|
||||
|
||||
=head1 NAME
|
||||
|
||||
SNMP::Info::Layer2::Paradyne - SNMP Interface to Paradyne Devices
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $obj = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myrouter',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $obj->class();
|
||||
print "SNMP::Info determined this device to fall under subclass : $class\n";
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Subclass for Paradyne Devices running IOS-like software
|
||||
|
||||
=head2 Inherited Classes
|
||||
|
||||
=over
|
||||
|
||||
=item SNMP::Info::Layer2
|
||||
|
||||
=back
|
||||
|
||||
=head1 GLOBALS
|
||||
|
||||
These are methods that return scalar value from SNMP
|
||||
|
||||
=over
|
||||
|
||||
=item $obj->vendor()
|
||||
|
||||
Returns 'rapadyne'
|
||||
|
||||
=item $obj->os()
|
||||
|
||||
Returns 'prdn-os'
|
||||
|
||||
=item $obj->layers()
|
||||
|
||||
Ensures that layer two is reported, at least.
|
||||
|
||||
=item $obj->os_ver()
|
||||
|
||||
Returns the software version.
|
||||
|
||||
=item $obj->model
|
||||
|
||||
Returns the model extracted.
|
||||
|
||||
=item $obj->serial()
|
||||
|
||||
Returns serial number.
|
||||
|
||||
=cut
|
||||
|
||||
=back
|
||||
108
lib/SNMP/Info/Layer2/Proscend.pm
Executable file
108
lib/SNMP/Info/Layer2/Proscend.pm
Executable file
@@ -0,0 +1,108 @@
|
||||
# SNMP::Info::Layer2::Proscend - SNMP Interface to Proscend Devices
|
||||
#
|
||||
# Copyright (c) 2020 by 135.
|
||||
|
||||
package SNMP::Info::Layer2::Proscend;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Exporter;
|
||||
use SNMP::Info::Layer2;
|
||||
|
||||
@SNMP::Info::Layer2::Proscend::ISA = qw/SNMP::Info::Layer2 Exporter/;
|
||||
@SNMP::Info::Layer2::Proscend::EXPORT_OK = qw//;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = ( %SNMP::Info::Layer2::MIBS, );
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer2::GLOBALS,
|
||||
);
|
||||
|
||||
%FUNCS = ( %SNMP::Info::Layer2::FUNCS, );
|
||||
|
||||
%MUNGE = ( %SNMP::Info::Layer2::MUNGE, );
|
||||
|
||||
sub vendor {
|
||||
return 'proscend';
|
||||
}
|
||||
|
||||
sub os {
|
||||
return 'proscend';
|
||||
}
|
||||
|
||||
sub model {
|
||||
my $obj = shift;
|
||||
return $obj->SUPER::model();
|
||||
}
|
||||
|
||||
1;
|
||||
__END__
|
||||
|
||||
=head1 NAME
|
||||
|
||||
SNMP::Info::Layer2::Proscend - SNMP Interface to Proscend Devices
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $obj = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myrouter',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $obj->class();
|
||||
print "SNMP::Info determined this device to fall under subclass : $class\n";
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Subclass for Proscend Devices
|
||||
|
||||
=head2 Inherited Classes
|
||||
|
||||
=over
|
||||
|
||||
=item SNMP::Info::Layer2
|
||||
|
||||
=back
|
||||
|
||||
=head2 Inherited Classes' MIBs
|
||||
|
||||
See L<SNMP::Info::Layer2/"Required MIBs"> for its own MIB requirements.
|
||||
|
||||
=head1 GLOBALS
|
||||
|
||||
These are methods that return scalar value from SNMP
|
||||
|
||||
=over
|
||||
|
||||
=item $obj->vendor()
|
||||
|
||||
Returns 'proscend'
|
||||
|
||||
=item $obj->os()
|
||||
|
||||
Returns 'proscend'
|
||||
|
||||
=item $obj->os_ver()
|
||||
|
||||
Returns the software version.
|
||||
|
||||
=item $obj->model()
|
||||
|
||||
Returns the model extracted.
|
||||
|
||||
=item $obj->serial()
|
||||
|
||||
Returns serial number.
|
||||
|
||||
=cut
|
||||
|
||||
=back
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (%SNMP::Info::Layer2::MIBS, 'SIXNET-MIB' => 'sxid',);
|
||||
|
||||
|
||||
124
lib/SNMP/Info/Layer2/Telindus.pm
Executable file
124
lib/SNMP/Info/Layer2/Telindus.pm
Executable file
@@ -0,0 +1,124 @@
|
||||
# SNMP::Info::Layer2::Telindus - SNMP Interface to Telindus Devices
|
||||
#
|
||||
# Copyright (c) 2020 by 135.
|
||||
|
||||
package SNMP::Info::Layer2::Telindus;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Exporter;
|
||||
use SNMP::Info::Layer2;
|
||||
|
||||
@SNMP::Info::Layer2::Telindus::ISA = qw/SNMP::Info::Layer2 Exporter/;
|
||||
@SNMP::Info::Layer2::Telindus::EXPORT_OK = qw//;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
# This will be filled in with the device's index into the EntPhysicalEntry
|
||||
# table by the serial() function.
|
||||
# our $index = undef;
|
||||
|
||||
%MIBS = ( %SNMP::Info::Layer2::MIBS, );
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer2::GLOBALS,
|
||||
);
|
||||
|
||||
%FUNCS = ( %SNMP::Info::Layer2::FUNCS, );
|
||||
|
||||
%MUNGE = ( %SNMP::Info::Layer2::MUNGE, );
|
||||
|
||||
sub vendor {
|
||||
return 'telindus';
|
||||
}
|
||||
|
||||
sub os {
|
||||
return 'telind-os';
|
||||
}
|
||||
|
||||
sub os_ver {
|
||||
my $obj = shift;
|
||||
$obj->description =~ /\$Telindus\s(\d+)(\$\s(.*)|\s(.*)\$)\s(T\d+\/\d+)/;
|
||||
return $5
|
||||
if defined $5;
|
||||
|
||||
return $obj->SUPER::os_ver();
|
||||
}
|
||||
sub model {
|
||||
my $obj = shift;
|
||||
$obj->description =~ /\$Telindus\s(\d+)(\$\s(.*)|\s(.*)\$)\s(T\d+\/\d+)/;
|
||||
if (defined $1 and defined $3) {
|
||||
return $1 . ' ' . $3;
|
||||
}
|
||||
elsif (defined $1 and defined $4) {
|
||||
return $1 . ' ' . $4;
|
||||
}
|
||||
|
||||
return $obj->SUPER::model();
|
||||
}
|
||||
|
||||
1;
|
||||
__END__
|
||||
|
||||
=head1 NAME
|
||||
|
||||
SNMP::Info::Layer2::Telindus - SNMP Interface to Telindus Devices
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $obj = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myrouter',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $obj->class();
|
||||
print "SNMP::Info determined this device to fall under subclass : $class\n";
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Subclass for Telindus Devices
|
||||
|
||||
=head2 Inherited Classes
|
||||
|
||||
=over
|
||||
|
||||
=item SNMP::Info::Layer2
|
||||
|
||||
=back
|
||||
|
||||
=head1 GLOBALS
|
||||
|
||||
These are methods that return scalar value from SNMP
|
||||
|
||||
=over
|
||||
|
||||
=item $obj->vendor()
|
||||
|
||||
Returns 'zyxel'
|
||||
|
||||
=item $obj->os()
|
||||
|
||||
Returns 'zynos'
|
||||
|
||||
=item $obj->layers()
|
||||
|
||||
Ensures that layer two is reported, at least.
|
||||
|
||||
=item $obj->os_ver()
|
||||
|
||||
Returns the software version.
|
||||
|
||||
=item $obj->model
|
||||
|
||||
Returns the model extracted.
|
||||
|
||||
=cut
|
||||
|
||||
=back
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
@@ -53,9 +53,9 @@ $VERSION = '3.88';
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer2::GLOBALS,
|
||||
'os_ver' => 'trpzVersionString',
|
||||
'tr_serial' => 'trpzSerialNumber',
|
||||
'mac' => 'dot1dBaseBridgeAddress',
|
||||
'os_ver' => 'trpzVersionString',
|
||||
'serial' => 'trpzSerialNumber',
|
||||
'mac' => 'dot1dBaseBridgeAddress',
|
||||
);
|
||||
|
||||
%FUNCS = (
|
||||
@@ -138,14 +138,6 @@ 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();
|
||||
@@ -661,7 +653,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 ) {
|
||||
|
||||
@@ -43,7 +43,7 @@ use SNMP::Info::Layer3; # only used in sub mac()
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
@@ -199,9 +199,6 @@ 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"
|
||||
@@ -233,14 +230,13 @@ 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, 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/))){
|
||||
## eth0 will have primary MAC for linux-based UBNT devices
|
||||
if($ifDesc =~ /CPU/ or $ifDesc eq 'eth0'){
|
||||
my $mac = $ubnt->ifPhysAddress->{$iid};
|
||||
|
||||
# syntax stolen from sub munge_mac in SNMP::Info
|
||||
@@ -254,11 +250,11 @@ sub mac {
|
||||
}
|
||||
|
||||
sub interfaces {
|
||||
my $ubnt = shift;
|
||||
my $netgear = shift;
|
||||
my $partial = shift;
|
||||
|
||||
my $interfaces = $ubnt->i_index($partial) || {};
|
||||
my $i_descr = $ubnt->i_description($partial) || {};
|
||||
my $interfaces = $netgear->i_index($partial) || {};
|
||||
my $i_descr = $netgear->i_description($partial) || {};
|
||||
my $return = {};
|
||||
|
||||
foreach my $iid ( keys %$i_descr ) {
|
||||
@@ -372,11 +368,11 @@ Bridge MAC address.
|
||||
|
||||
=item $ubnt->os()
|
||||
|
||||
Returns C<AirOS>, C<UniFi> or C<EdgeOS> depending on model.
|
||||
Returns 'Ubiquiti Networks, Inc.'
|
||||
|
||||
=item $ubnt->os_ver()
|
||||
|
||||
Returns the software version extracted from C<dot11manufacturerProductVersion>, with fallback to description splitting for EdgeMax devices
|
||||
Returns the software version extracted from C<dot11manufacturerProductVersion>, with failback to description splitting for EdgeMax devices
|
||||
|
||||
=back
|
||||
|
||||
@@ -397,11 +393,11 @@ to a hash.
|
||||
|
||||
=over
|
||||
|
||||
=item $ubnt->interfaces()
|
||||
=item $ubiquiti->interfaces()
|
||||
|
||||
Uses the i_name() field.
|
||||
|
||||
=item $ubnt->i_ignore()
|
||||
=item $ubiquiti->i_ignore()
|
||||
|
||||
Ignores interfaces with "CPU Interface" in them.
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
# Set for No CDP
|
||||
%GLOBALS = ( %SNMP::Info::Layer2::GLOBALS );
|
||||
|
||||
126
lib/SNMP/Info/Layer2/Zyxel.pm
Executable file
126
lib/SNMP/Info/Layer2/Zyxel.pm
Executable file
@@ -0,0 +1,126 @@
|
||||
# SNMP::Info::Layer2::Zyxel - SNMP Interface to Zyxel Devices
|
||||
#
|
||||
# Copyright (c) 2020 by 135.
|
||||
|
||||
package SNMP::Info::Layer2::Zyxel;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Exporter;
|
||||
use SNMP::Info::Layer2;
|
||||
|
||||
@SNMP::Info::Layer2::Zyxel::ISA = qw/SNMP::Info::Layer2 Exporter/;
|
||||
@SNMP::Info::Layer2::Zyxel::EXPORT_OK = qw//;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
# This will be filled in with the device's index into the EntPhysicalEntry
|
||||
# table by the serial() function.
|
||||
# our $index = undef;
|
||||
|
||||
%MIBS = ( %SNMP::Info::Layer2::MIBS, );
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer2::GLOBALS,
|
||||
'serial_oid' => 'transmission.94.1.1.2.1.1.1',
|
||||
);
|
||||
|
||||
%FUNCS = ( %SNMP::Info::Layer2::FUNCS, );
|
||||
|
||||
%MUNGE = ( %SNMP::Info::Layer2::MUNGE, );
|
||||
|
||||
sub vendor {
|
||||
return 'zyxel';
|
||||
}
|
||||
|
||||
sub os {
|
||||
return 'zynos';
|
||||
}
|
||||
|
||||
sub os_ver {
|
||||
my $obj = shift;
|
||||
return 'unknown';
|
||||
}
|
||||
sub model {
|
||||
my $obj = shift;
|
||||
my $id = $obj->id;
|
||||
if ($id =~ /890\.1\.5\.11\.11$/) {
|
||||
return 'IES-1000 AAM1212-51';
|
||||
}
|
||||
return 'unknown';
|
||||
}
|
||||
|
||||
sub serial {
|
||||
my $obj = shift;
|
||||
return $obj->serial_oid;
|
||||
}
|
||||
|
||||
1;
|
||||
__END__
|
||||
|
||||
=head1 NAME
|
||||
|
||||
SNMP::Info::Layer2::Zyxel - SNMP Interface to Zyxel Devices
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $obj = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myrouter',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $obj->class();
|
||||
print "SNMP::Info determined this device to fall under subclass : $class\n";
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Subclass for Zyxel Devices running IOS-like software
|
||||
|
||||
=head2 Inherited Classes
|
||||
|
||||
=over
|
||||
|
||||
=item SNMP::Info::Layer2
|
||||
|
||||
=back
|
||||
|
||||
=head1 GLOBALS
|
||||
|
||||
These are methods that return scalar value from SNMP
|
||||
|
||||
=over
|
||||
|
||||
=item $obj->vendor()
|
||||
|
||||
Returns 'zyxel'
|
||||
|
||||
=item $obj->os()
|
||||
|
||||
Returns 'zynos'
|
||||
|
||||
=item $obj->layers()
|
||||
|
||||
Ensures that layer two is reported, at least.
|
||||
|
||||
=item $obj->os_ver()
|
||||
|
||||
Returns the software version.
|
||||
|
||||
=item $obj->model
|
||||
|
||||
Returns the model extracted.
|
||||
|
||||
=item $obj->serial()
|
||||
|
||||
Returns serial number.
|
||||
|
||||
=cut
|
||||
|
||||
=back
|
||||
@@ -54,7 +54,7 @@ use SNMP::Info::DocsisHE;
|
||||
|
||||
our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::MIBS,
|
||||
@@ -277,30 +277,6 @@ sub model {
|
||||
return $model;
|
||||
}
|
||||
|
||||
sub i_subinterfaces {
|
||||
my $dev = shift;
|
||||
my $partial = shift;
|
||||
|
||||
my $ifstack = $dev->i_stack_status() || {};
|
||||
# TODO: if we want to do partial, we need to use inverse status
|
||||
my $iftype = $dev->i_type() || {};
|
||||
|
||||
my $ret = $dev->SUPER::i_subinterfaces() || {};
|
||||
|
||||
foreach my $idx ( keys %$ifstack ) {
|
||||
next unless $ifstack->{$idx} eq 'active';
|
||||
|
||||
my ( $higher, $lower ) = split /\./, $idx;
|
||||
next if ( $higher == 0 or $lower == 0 );
|
||||
|
||||
if ( $iftype->{ $higher } eq 'l2vlan' or $iftype->{ $higher } eq 'l3ipvlan') {
|
||||
push @{ $ret->{ $lower } }, $higher;
|
||||
}
|
||||
}
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
sub i_name {
|
||||
my $l3 = shift;
|
||||
my $partial = shift;
|
||||
@@ -381,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
|
||||
@@ -635,22 +611,6 @@ name.
|
||||
|
||||
Only returns those iids that have a description listed in $l3->i_description()
|
||||
|
||||
=item $l3->i_subinterfaces()
|
||||
|
||||
Returns reference to hash of arrays: key = C<ifIndex>, value = array of
|
||||
C<ifIndex>. These are the VLAN subinterfaces (C<l2vlan> type) for the parent
|
||||
(C<ethernetCsmacd> type) interface.
|
||||
|
||||
Example:
|
||||
my $interfaces = $l3->interfaces();
|
||||
my $i_subs = $l3->i_subinterfaces();
|
||||
|
||||
foreach my $iid (sort keys %$interfaces) {
|
||||
my $port = $interfaces->{$iid};
|
||||
my $subs = join(',', sort(map {$interfaces->{$_}} @{$i_subs->{$iid}}));
|
||||
print "Port: $port has subinterfaces: $subs\n";
|
||||
}
|
||||
|
||||
=item $l3->i_name()
|
||||
|
||||
Returns reference to hash of iid to human set name.
|
||||
|
||||
155
lib/SNMP/Info/Layer3/Accton.pm
Executable file
155
lib/SNMP/Info/Layer3/Accton.pm
Executable file
@@ -0,0 +1,155 @@
|
||||
# SNMP::Info::Layer3::Accton - SNMP Interface to Accton Devices
|
||||
#
|
||||
# Copyright (c) 2020 by 135.
|
||||
|
||||
package SNMP::Info::Layer3::Accton;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Exporter;
|
||||
use SNMP::Info::Layer3;
|
||||
|
||||
@SNMP::Info::Layer3::Accton::ISA = qw/SNMP::Info::Layer3 Exporter/;
|
||||
@SNMP::Info::Layer3::Accton::EXPORT_OK = qw//;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = ( %SNMP::Info::Layer3::MIBS, );
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer3::GLOBALS,
|
||||
'os_ver_oid_259_6_10_94' => 'enterprises.259.6.10.94.1.1.5.4.0',
|
||||
'os_ver_oid_259_8_1_5' => 'enterprises.259.8.1.5.1.1.5.4.0',
|
||||
);
|
||||
|
||||
%FUNCS = (
|
||||
%SNMP::Info::Layer3::FUNCS,
|
||||
);
|
||||
|
||||
%MUNGE = ( %SNMP::Info::Layer3::MUNGE, );
|
||||
|
||||
sub vendor {
|
||||
return 'accton';
|
||||
}
|
||||
|
||||
sub os {
|
||||
return 'accton-os';
|
||||
}
|
||||
|
||||
sub model {
|
||||
my $obj = shift;
|
||||
my $hw = $obj->c_hw_ver() || undef;
|
||||
return $obj->SUPER::description() . ' HW:' . $hw if (defined $hw);
|
||||
return $obj->SUPER::description()
|
||||
#return $obj->SUPER::model();
|
||||
}
|
||||
|
||||
sub serial {
|
||||
my $obj = shift;
|
||||
my $sess = $obj->session();
|
||||
my $serial = $sess->get($obj->id() . '.1.1.3.1.10.1') || undef;
|
||||
return $serial;
|
||||
}
|
||||
|
||||
sub hwver {
|
||||
my $obj = shift;
|
||||
my $sess = $obj->session();
|
||||
my $hw = $sess->get($obj->id() . '.1.1.3.1.2.1') || undef;
|
||||
return $hw;
|
||||
}
|
||||
|
||||
sub os_ver {
|
||||
my $obj = shift;
|
||||
my $sess = $obj->session();
|
||||
my $os_ver = $sess->get($obj->id() . '.1.1.5.4.0') || undef;
|
||||
my $brom = $sess->get($obj->id() . '.1.1.3.1.5.1') || undef;
|
||||
my $loader = $sess->get($obj->id() . '.1.1.3.1.4.1') || undef;
|
||||
my $full_os_ver = $os_ver if defined($os_ver) || return;
|
||||
$full_os_ver .= ' bootrom:' . $brom if defined($brom);
|
||||
$full_os_ver .= ' loader:' . $loader if defined($loader);
|
||||
return $full_os_ver;
|
||||
}
|
||||
|
||||
sub description {
|
||||
my $obj = shift;
|
||||
my $descr = undef;
|
||||
my $sess = $obj->session();
|
||||
$descr .= $obj->SUPER::description() . "\n";
|
||||
$descr .= "Serial Number: " . $sess->get($obj->id() . '.1.1.3.1.10.1') . "\n";
|
||||
$descr .= "Hardware Version: " . $sess->get($obj->id() . '.1.1.3.1.2.1') . "\n";
|
||||
$descr .= "EPLD Version: " . $sess->get($obj->id() . '.1.1.3.1.15.1') . "\n";
|
||||
$descr .= "Loader Version: " . $sess->get($obj->id() . '.1.1.3.1.4.1') . "\n";
|
||||
$descr .= "Boot ROM Version: " . $sess->get($obj->id() . '.1.1.3.1.5.1') . "\n";
|
||||
$descr .= "Operation Code Version: " . $sess->get($obj->id() . '.1.1.5.4.0') . "\n";
|
||||
return $descr;
|
||||
#$sess->get($obj->id() . '.1.1.5.4.0')
|
||||
}
|
||||
1;
|
||||
__END__
|
||||
|
||||
=head1 NAME
|
||||
|
||||
SNMP::Info::Layer3::Accton - SNMP Interface to Accton Devices
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $obj = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myrouter',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $obj->class();
|
||||
print "SNMP::Info determined this device to fall under subclass : $class\n";
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Subclass for Accton Devices
|
||||
|
||||
=head2 Inherited Classes
|
||||
|
||||
=over
|
||||
|
||||
=item SNMP::Info::Layer3
|
||||
|
||||
=back
|
||||
|
||||
=head2 Inherited Classes' MIBs
|
||||
|
||||
See L<SNMP::Info::Layer3/"Required MIBs"> for its own MIB requirements.
|
||||
|
||||
=head1 GLOBALS
|
||||
|
||||
These are methods that return scalar value from SNMP
|
||||
|
||||
=over
|
||||
|
||||
=item $obj->vendor()
|
||||
|
||||
Returns 'accton'
|
||||
|
||||
=item $obj->os()
|
||||
|
||||
Returns 'accton-os'
|
||||
|
||||
=item $obj->os_ver()
|
||||
|
||||
Returns the software version.
|
||||
|
||||
=item $obj->model()
|
||||
|
||||
Returns the model extracted.
|
||||
|
||||
=item $obj->serial()
|
||||
|
||||
Returns serial number.
|
||||
|
||||
=cut
|
||||
|
||||
=back
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -49,7 +49,7 @@ use SNMP::Info::LLDP;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
@@ -96,6 +96,8 @@ sub model {
|
||||
my $id = $alu->id();
|
||||
my $model = &SNMP::translateObj($id);
|
||||
|
||||
return 'ASAM 73xx' if $id =~ /637\.61\.1$/;
|
||||
|
||||
return $id unless defined $model;
|
||||
|
||||
$model =~ s/^device//;
|
||||
@@ -108,7 +110,7 @@ sub os {
|
||||
}
|
||||
|
||||
sub vendor {
|
||||
return 'alcatel-lucent';
|
||||
return 'alcatel';
|
||||
}
|
||||
|
||||
sub os_ver {
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -40,7 +40,7 @@ use SNMP::Info::Layer3;
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE,
|
||||
$int_include_vpn, $fake_idx, $type_class);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -46,7 +46,7 @@ use SNMP::Info::Aggregate 'agg_ports_ifstack';
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
@@ -128,11 +128,6 @@ 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;
|
||||
@@ -263,17 +258,4 @@ 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
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -1,340 +0,0 @@
|
||||
# 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.88';
|
||||
|
||||
%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
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info::Layer3;
|
||||
our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE, %MODEL_MAP,
|
||||
%MODID_MAP, %PROCID_MAP);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -37,7 +37,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS, %SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -46,7 +46,7 @@ our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
@SNMP::Info::Layer3::C3550::EXPORT_OK = qw//;
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
# NOTE: Order creates precedence
|
||||
# Example: v_name exists in Bridge.pm and CiscoVTP.pm
|
||||
|
||||
@@ -43,7 +43,7 @@ use SNMP::Info::MAU;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::MAU::MIBS,
|
||||
|
||||
@@ -48,7 +48,7 @@ our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
@SNMP::Info::Layer3::C6500::EXPORT_OK = qw//;
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
# NOTE: Order creates precedence
|
||||
# Example: v_name exists in Bridge.pm and CiscoVTP.pm
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
@@ -182,21 +182,7 @@ 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
|
||||
@@ -337,5 +323,3 @@ Returns reference to hash of fans and their types (ex. fixed, modular, etc.)
|
||||
Returns reference to hash of fans and their status
|
||||
|
||||
=back
|
||||
|
||||
=cut
|
||||
|
||||
@@ -32,7 +32,6 @@ 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;
|
||||
@@ -43,9 +42,7 @@ use SNMP::Info::CiscoPower;
|
||||
use SNMP::Info::CiscoStpExtensions;
|
||||
use SNMP::Info::Layer3;
|
||||
|
||||
@SNMP::Info::Layer3::Cisco::ISA = qw/
|
||||
SNMP::Info::CiscoBGP
|
||||
SNMP::Info::CiscoVTP
|
||||
@SNMP::Info::Layer3::Cisco::ISA = qw/SNMP::Info::CiscoVTP
|
||||
SNMP::Info::CDP
|
||||
SNMP::Info::CiscoStats SNMP::Info::CiscoRTT
|
||||
SNMP::Info::CiscoQOS SNMP::Info::CiscoConfig
|
||||
@@ -56,11 +53,10 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
%SNMP::Info::CiscoBGP::MIBS,
|
||||
%SNMP::Info::CiscoStpExtensions::MIBS,
|
||||
%SNMP::Info::CiscoPower::MIBS,
|
||||
%SNMP::Info::CiscoConfig::MIBS,
|
||||
@@ -74,7 +70,6 @@ $VERSION = '3.88';
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer3::GLOBALS,
|
||||
%SNMP::Info::CiscoBGP::GLOBALS,
|
||||
%SNMP::Info::CiscoStpExtensions::GLOBALS,
|
||||
%SNMP::Info::CiscoPower::GLOBALS,
|
||||
%SNMP::Info::CiscoConfig::GLOBALS,
|
||||
@@ -88,7 +83,6 @@ $VERSION = '3.88';
|
||||
|
||||
%FUNCS = (
|
||||
%SNMP::Info::Layer3::FUNCS,
|
||||
%SNMP::Info::CiscoBGP::FUNCS,
|
||||
%SNMP::Info::CiscoStpExtensions::FUNCS,
|
||||
%SNMP::Info::CiscoPower::FUNCS,
|
||||
%SNMP::Info::CiscoConfig::FUNCS,
|
||||
@@ -104,21 +98,13 @@ $VERSION = '3.88';
|
||||
);
|
||||
|
||||
%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::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::CiscoVTP::MUNGE,
|
||||
);
|
||||
|
||||
|
||||
# the i_vlan in SUPER is just fine; this exists to catch any dotted vlan
|
||||
# subinterfaces not caught by CiscoVTP
|
||||
sub i_vlan {
|
||||
my $cisco = shift;
|
||||
my $partial = shift;
|
||||
@@ -129,17 +115,18 @@ sub i_vlan {
|
||||
|
||||
foreach my $idx ( keys %$i_descr ) {
|
||||
next unless $i_type->{$idx};
|
||||
next unless (($i_type->{$idx} eq 'l2vlan' or $i_type->{$idx} eq '135')
|
||||
and !defined $i_vlan->{$idx});
|
||||
if ( $i_type->{$idx} eq 'l2vlan'
|
||||
|| $i_type->{$idx} eq '135' && !defined $i_vlan->{$idx} )
|
||||
{
|
||||
# Not sure where this regex came from, anchored at end?
|
||||
if ( $i_descr->{$idx} =~ /\.(\d+)$/ ) {
|
||||
$i_vlan->{$idx} = $1;
|
||||
}
|
||||
|
||||
# Not sure where this regex came from, anchored at end?
|
||||
if ( $i_descr->{$idx} =~ /\.(\d+)$/ ) {
|
||||
$i_vlan->{$idx} = $1;
|
||||
}
|
||||
|
||||
# This matches 101 in 'Ethernet0.101-802.1Q vLAN subif'
|
||||
elsif ( $i_descr->{$idx} =~ /\.(\d+)-/ ) {
|
||||
$i_vlan->{$idx} = $1;
|
||||
# This matches 101 in 'Ethernet0.101-802.1Q vLAN subif'
|
||||
elsif ( $i_descr->{$idx} =~ /\.(\d+)-/ ) {
|
||||
$i_vlan->{$idx} = $1;
|
||||
}
|
||||
}
|
||||
}
|
||||
return $i_vlan;
|
||||
@@ -231,7 +218,7 @@ for other device specific L3 Cisco classes.
|
||||
|
||||
=item SNMP::Info::CiscoConfig
|
||||
|
||||
=item SNMP::Info::CiscoPower
|
||||
=item SNMP::Info::Power
|
||||
|
||||
=item SNMP::Info::CiscoStpExtensions
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.88';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = ( %SNMP::Info::Layer3::MIBS, %SNMP::Info::CiscoStats::MIBS, );
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user