NAME Net::SNMP::Mixin::PoE - mixin class for power over ethernet related infos from the POWER-ETHERNET-MIB (RFC-3621) SYNOPSIS use Net::SNMP; use Net::SNMP::Mixin; my $session = Net::SNMP->session( -hostname => 'foo.bar.com' ); $session->mixer('Net::SNMP::Mixin::PoE'); $session->init_mixins; snmp_dispatcher(); $session->init_ok(); die $session->errors if $session->errors; my $poe_main_tbl = $session->get_poe_main_table; foreach my $group (sort { $a <=> $b } keys %$poe_main_tbl) { printf "PoE Group: %d\n", $group; printf "OperStatus: %d\n", $poe_main_tbl->{$group}{operStatus}; printf "Power: %-4d [Watt]\n", $poe_main_tbl->{$group}{power}; printf "Consumption: %-4d [Watt]\n", $poe_main_tbl->{$group}{consumption}; printf "Threshold: %-4d [%%]\n", $poe_main_tbl->{$group}{threshold}; } my $poe_port_tbl = $session->get_poe_port_table; foreach my $group (sort { $a <=> $b } keys %$poe_port_tbl) { foreach my $port (sort { $a <=> $b } keys %{$poe_port_tbl->{$group}}) { my $adminEnable = $poe_port_tbl->{$group}{$port}{adminEnable}; my $powerPairsCtrl = $poe_port_tbl->{$group}{$port}{powerPairsCtrl}; my $powerPairs = $poe_port_tbl->{$group}{$port}{powerPairs}; my $detectionStatus = $poe_port_tbl->{$group}{$port}{detectionStatus}; my $priority = $poe_port_tbl->{$group}{$port}{priority}; my $mpsAbsent = $poe_port_tbl->{$group}{$port}{mpsAbsent}; my $type = $poe_port_tbl->{$group}{$port}{type}; my $powerClass = $poe_port_tbl->{$group}{$port}{powerClass}; my $invalidSignature = $poe_port_tbl->{$group}{$port}{invalidSignature}; my $powerDenied = $poe_port_tbl->{$group}{$port}{powerDenied}; my $overload = $poe_port_tbl->{$group}{$port}{overload}; my $short = $poe_port_tbl->{$group}{$port}{short}; printf "%d %d %d %d %d %d %d %d %s %d %d %d %d %d\n", # $group, $port, $adminEnable, $powerPairsCtrl, $powerPairs, $detectionStatus, $priority, # $mpsAbsent, $type, $powerClass, $invalidSignature, $powerDenied, $overload, $short; } } DESCRIPTION A mixin class for power over ethernet related infos from the POWER-ETHERNET-MIB. MIXIN METHODS OBJ->get_poe_port_table Returns the PoE pethPsePortTable as a hash reference. The table is indexed by the PoE pethMainPseGroupIndex and the portIdx within the group: { group => INTEGER { port => INTEGER { adminEnable => 1|2, powerPairsCtrl => 1|2, powerPairs => 1|2, detectionStatus => 0|1|2|3|4|5|6, priority => 1|2|3, mpsAbsent => COUNTER, type => STRING, powerClass => 0|1|2|3|4|5, invalidSignature => COUNTER, powerDenied => COUNTER, overload => COUNTER, short => COUNTER, } } } OBJ->get_poe_main_table Returns the PoE pethMainPseTable as a hash reference. The table is indexed by the pethMainPseGroupIndex: { group => INTEGER { power => GAUGE, operStatus => INTEGER, consumption => GAUGE, threshold => INTEGER } } INITIALIZATION OBJ->_init($reload) Fetch basic interface related snmp values from the host. Don't call this method direct! PRIVATE METHODS Only for developers or maintainers. _fetch_poe_port_tbl($session) Get selected MIB values from the poe_port_table _poe_port_tbl_cb($session) The callback for _poe_port_tbl_cb _fetch_poe_main_tbl($session) Get selected MIB values from the poe_main_table _poe_main_tbl_cb($session) The callback for _poe_main_tbl_cb REQUIREMENTS Net::SNMP, Net::SNMP::Mixin BUGS, PATCHES & FIXES There are no known bugs at the time of this release. However, if you spot a bug or are experiencing difficulties that are not explained within the POD documentation, please submit a bug. Fixes are dependant upon their severity and my availablity. Should a fix not be forthcoming, please feel free to (politely) remind me by sending an email. AUTHOR Karl Gaissmaier COPYRIGHT & LICENSE Copyright 2021-2024 Karl Gaissmaier, all rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.