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

SNMP::Info::Layer2::Bay - SNMP Interface to old Bay Network Switches

DESCRIPTION

Provides abstraction to the configuration information obtainable from a Bay device through SNMP.

Inherits from

 SNMP::Info::Layer2

Required MIBs:

 SYNOPTICS-ROOT-MIB
 S5-ETH-MULTISEG-TOPOLOGY-MIB
 MIBS listed in SNMP::Info::Layer2

Bay MIBs can be found on the CD that came with your product.

Or, if you still have a service contract they can be downloaded at www.nortelnetworks.com

They have also been seen at : http://www.inotech.com/mibs/vendor/baynetworks/synoptics/synoptics.asp

Or http://www.oidview.com/mibs/detail.html under Synoptics.

You will need at least the two listed above, and probably a few more.

AUTHOR

Max Baker (max@warped.org)

SYNOPSIS

 my $bay = new SNMP::Info::Layer2::Bay(DestHost  => 'mybayswitch' , 
                              Community => 'public' ); 

CREATING AN OBJECT

new SNMP::Info::Layer2::Bay()

Arguments passed to new() are passed on to SNMP::Session::new()

    my $bay = new SNMP::Info::Layer2::Bay(
        DestHost => $host,
        Community => 'public',
        Version => 3,...
        ) 
    die "Couldn't connect.\n" unless defined $bay;
$bay->session()

Sets or returns the SNMP::Session object

    # Get
    my $sess = $bay->session();

    # Set
    my $newsession = new SNMP::Session(...);
    $bay->session($newsession);

GLOBALS

$bay->vendor()

Returns 'bay' :)

$bay->model()

Cross references $bay->id() to the SYNOPTICS-MIB and returns the results. 303s and 304s have the same ID, so we have a hack to return depending on which it is.

Removes sreg- from the model name

$bay->cdp_id()

Returns the IP that the device is sending out for its Nmm topology info.

(s5EnMsTopIpAddr)

$bay->cdp_run()

Returns if the S5-ETH-MULTISEG-TOPOLOGY info is on for this device.

(s5EnMsTopStatus)

TABLE ENTRIES

Overrides

$bay->interfaces()

Returns reference to map of IIDs to physical ports.

Currently simply returns the ifIndex

$bay->i_ignore()

Returns reference to hash of IIDs to ignore.

Simply calls the SNMP::Info::Layer2::i_ignore() fn for this.

$bay->i_mac()

Returns the ifPhysAddress table entries.

Removes all entries matching '00:00:00:00:00:00' -- Certain older revisions of Bay 303 and 304 firmware report all zeros for each port mac.

Psuedo CDP information

All entries with port=0 are local and ignored.

$bay->c_if()

Returns referenece to hash. Key: port.1 Value: port (iid)

$bay->c_ip()

Returns referenece to hash. Key: port.1

The value of each hash entry can either be a scalar or an array. A scalar value is most likely a direct neighbor to that port. It is possible that there is a non-bay device in between this device and the remote device.

An array value represents a list of seen devices. The only time you will get an array of nieghbors, is if there is a non-bay device in between two or more devices.

Use the data from the Layer2 Topology Table below to dig deeper.

$bay->port()

Returns reference to hash. Key: port.1 Value: port

$bay->platform()

Returns reference to hash. Key: port.1 Value: Remote Device Type

Layer2 Topology info (s5EnMsTopNmmTable)

$bay->bay_topo_slot()

Returns reference to hash. Key: Table entry, Value:slot number

(s5EnMsTopNmmSlot)

$bay->bay_topo_port()

Returns reference to hash. Key: Table entry, Value:Port Number (interface iid)

(s5EnMsTopNmmPort)

$bay->bay_topo_ip()

Returns reference to hash. Key: Table entry, Value:Remote IP address of entry

(s5EnMsTopNmmIpAddr)

$bay->bay_topo_seg()

Returns reference to hash. Key: Table entry, Value:Remote Segment ID

(s5EnMsTopNmmSegId)

$bay->bay_topo_mac (s5EnMsTopNmmMacAddr)

Returns reference to hash. Key: Table entry, Value:Remote MAC address

$bay->bay_topo_platform

Returns reference to hash. Key: Table entry, Value:Remote Device Type

(s5EnMsTopNmmChassisType)

$bay->bay_topo_localseg

Returns reference to hash. Key: Table entry, Value:Boolean, if bay_topo_seg() is local

(s5EnMsTopNmmLocalSeg)