The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Net::SNMP::Mixin::NXOSDot1dBase - mixin class for some Bridge base values from NXOS switches.

SYNOPSIS

A Net::SNMP mixin class for Dot1d base info for non standard Cisco NXOS.

use Net::SNMP;
use Net::SNMP::Mixin;

# class based mixin
Net::SNMP->mixer('Net::SNMP::Mixin::NXOSDot1dBase');

# ...

my $session = Net::SNMP->session( -hostname => 'foo.bar.com' );

$session->mixer('Net::SNMP::Mixin::NXOSDot1dBase');
$session->init_mixins;
snmp_dispatcher() if $session->nonblocking;
$session->init_ok;
die $session->errors if $session->errors;

my $base_group = $session->get_dot1d_base_group;

printf "BridgeAddr: %s NumPorts: %d Type: %d\n",
  $base_group->{dot1dBaseBridgeAddress},
  $base_group->{dot1dBaseNumPorts},
  $base_group->{dot1dBaseType};

my $map = $session->map_bridge_ports2if_indexes;

foreach my $bridge_port ( sort {$a <=> $b} keys %$map ) {
  my $if_index = $map->{$bridge_port};
  printf "bridgePort: %4d -> ifIndex: %4\n", $bridge_port, $if_index;
}

DESCRIPTION

A mixin class for basic switch information from the BRIDGE-MIB.

Besides the bridge address and the number of bridge ports, it's primary use is the mapping between dot1dBasePorts and ifIndexes.

MIXIN METHODS

OBJ->get_dot1d_base_group()

Returns the dot1dBase group as a hash reference:

{
  dot1dBaseBridgeAddress => MacAddress,
  dot1dBaseNumPorts      => INTEGER,
  dot1dBaseType          => INTEGER,
}

OBJ->map_bridge_ports2if_indexes()

Returns a reference to a hash with the following entries:

{
  # INTEGER                    INTEGER
  cieIfDot1dBaseMappingPort => ifIndex,
}

OBJ->map_if_indexes2bridge_ports()

Returns a reference to a hash with the following entries:

{
  # INTEGER    INTEGER
  ifIndex   => cieIfDot1dBaseMappingPort,
}

INITIALIZATION

OBJ->_init($reload)

Fetch the dot1d base related snmp values from the host. Don't call this method direct!

PRIVATE METHODS

Only for developers or maintainers.

_fetch_dot1d_base($session)

Fetch values from the dot1dBase group once during object initialization.

_dot1d_base_cb($session)

The callback for _fetch_dot1d_base.

_fetch_dot1d_base_ports($session)

Populate the object with the dot1dBasePorts.

_dot1d_base_ports_cb($session)

The callback for _fetch_dot1d_base_ports.

REQUIREMENTS

Net::SNMP, Net::SNMP::Mixin

AUTHOR

Karl Gaissmaier <karl.gaissmaier at uni-ulm.de>

COPYRIGHT & LICENSE

Copyright 2020-2021 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.