No longer emulate CDP methods in other discovery protocol classes, use the class name as base (sonmp, fdp) rather than cdp.
This commit is contained in:
73
Info/FDP.pm
73
Info/FDP.pm
@@ -47,13 +47,6 @@ $VERSION = '2.08';
|
|||||||
%MIBS = ( 'FOUNDRY-SN-SWITCH-GROUP-MIB' => 'snFdpGlobalRun' );
|
%MIBS = ( 'FOUNDRY-SN-SWITCH-GROUP-MIB' => 'snFdpGlobalRun' );
|
||||||
|
|
||||||
%GLOBALS = (
|
%GLOBALS = (
|
||||||
|
|
||||||
# CDP-Compatibility
|
|
||||||
'cdp_interval' => 'snFdpGlobalMessageInterval',
|
|
||||||
'cdp_holdtime' => 'snFdpGlobalHoldTime',
|
|
||||||
'cdp_id' => 'snFdpGlobalDeviceId',
|
|
||||||
|
|
||||||
#
|
|
||||||
'fdp_run' => 'snFdpGlobalRun',
|
'fdp_run' => 'snFdpGlobalRun',
|
||||||
'fdp_interval' => 'snFdpGlobalMessageInterval',
|
'fdp_interval' => 'snFdpGlobalMessageInterval',
|
||||||
'fdp_holdtime' => 'snFdpGlobalHoldTime',
|
'fdp_holdtime' => 'snFdpGlobalHoldTime',
|
||||||
@@ -61,27 +54,27 @@ $VERSION = '2.08';
|
|||||||
);
|
);
|
||||||
|
|
||||||
%FUNCS = (
|
%FUNCS = (
|
||||||
'c_index' => 'snFdpCacheIfIndex',
|
'fdp_index' => 'snFdpCacheIfIndex',
|
||||||
'c_proto' => 'snFdpCacheAddressType',
|
'fdp_proto' => 'snFdpCacheAddressType',
|
||||||
'c_ip' => 'snFdpCacheAddress',
|
'fdp_ip' => 'snFdpCacheAddress',
|
||||||
'c_ver' => 'snFdpCacheVersion',
|
'fdp_ver' => 'snFdpCacheVersion',
|
||||||
'c_id' => 'snFdpCacheDeviceId',
|
'fdp_id' => 'snFdpCacheDeviceId',
|
||||||
'c_port' => 'snFdpCacheDevicePort',
|
'fdp_port' => 'snFdpCacheDevicePort',
|
||||||
'c_platform' => 'snFdpCachePlatform',
|
'fdp_platform' => 'snFdpCachePlatform',
|
||||||
'c_capabilities' => 'snFdpCacheCapabilities',
|
'fdp_capabilities' => 'snFdpCacheCapabilities',
|
||||||
'c_domain' => 'snFdpCacheVTPMgmtDomain',
|
'fdp_domain' => 'snFdpCacheVTPMgmtDomain',
|
||||||
'c_vlan' => 'snFdpCacheNativeVLAN',
|
'fdp_vlan' => 'snFdpCacheNativeVLAN',
|
||||||
'c_duplex' => 'snFdpCacheDuplex',
|
'fdp_duplex' => 'snFdpCacheDuplex',
|
||||||
);
|
);
|
||||||
|
|
||||||
%MUNGE = (
|
%MUNGE = (
|
||||||
'c_capabilities' => \&SNMP::Info::munge_caps,
|
'fdp_capabilities' => \&SNMP::Info::munge_caps,
|
||||||
'c_ip' => \&SNMP::Info::munge_ip
|
'fdp_ip' => \&SNMP::Info::munge_ip
|
||||||
);
|
);
|
||||||
|
|
||||||
sub cdp_run {
|
sub fdp_run {
|
||||||
my $fdp = shift;
|
my $fdp = shift;
|
||||||
my $fdp_run = $fdp->fdp_run();
|
my $fdp_run = $fdp->orig_fdp_run();
|
||||||
|
|
||||||
# if fdp_run isn't implemented on device, assume FDP is on
|
# if fdp_run isn't implemented on device, assume FDP is on
|
||||||
return $fdp_run if defined $fdp_run;
|
return $fdp_run if defined $fdp_run;
|
||||||
@@ -107,7 +100,7 @@ sub hasFDP {
|
|||||||
return $fdp->fdp_run();
|
return $fdp->fdp_run();
|
||||||
}
|
}
|
||||||
|
|
||||||
sub c_if {
|
sub fdp_if {
|
||||||
my $fdp = shift;
|
my $fdp = shift;
|
||||||
|
|
||||||
# See if by some miracle Cisco implemented the fdpCacheIfIndex entry
|
# See if by some miracle Cisco implemented the fdpCacheIfIndex entry
|
||||||
@@ -115,7 +108,7 @@ sub c_if {
|
|||||||
return $fdp_index if defined $fdp_index;
|
return $fdp_index if defined $fdp_index;
|
||||||
|
|
||||||
# Nope, didn't think so. Now we fake it.
|
# Nope, didn't think so. Now we fake it.
|
||||||
my $fdp_ip = $fdp->c_ip();
|
my $fdp_ip = $fdp->fdp_ip();
|
||||||
unless ( defined $fdp_ip ) {
|
unless ( defined $fdp_ip ) {
|
||||||
$fdp->error_throw(
|
$fdp->error_throw(
|
||||||
"SNMP::Info::FDP:fdp_if() - Device doesn't have fdp_ip() data. Can't fake fdp_index()"
|
"SNMP::Info::FDP:fdp_if() - Device doesn't have fdp_ip() data. Can't fake fdp_index()"
|
||||||
@@ -256,19 +249,19 @@ CDP compatibility
|
|||||||
|
|
||||||
=over
|
=over
|
||||||
|
|
||||||
=item $fdp->c_interval()
|
=item $fdp->fdp_interval()
|
||||||
|
|
||||||
Interval in seconds at which FDP messages are generated.
|
Interval in seconds at which FDP messages are generated.
|
||||||
|
|
||||||
(C<fdpGlobalMessageInterval>)
|
(C<fdpGlobalMessageInterval>)
|
||||||
|
|
||||||
=item $fdp->c_holdtime()
|
=item $fdp->fdp_holdtime()
|
||||||
|
|
||||||
Time in seconds that FDP messages are kept.
|
Time in seconds that FDP messages are kept.
|
||||||
|
|
||||||
(C<fdpGlobalHoldTime>)
|
(C<fdpGlobalHoldTime>)
|
||||||
|
|
||||||
=item $fdp->c_id()
|
=item $fdp->fdp_id()
|
||||||
|
|
||||||
Returns FDP device ID.
|
Returns FDP device ID.
|
||||||
|
|
||||||
@@ -277,7 +270,7 @@ retrieved from remote devices with $fdp->id().
|
|||||||
|
|
||||||
(C<fdpGlobalDeviceId>)
|
(C<fdpGlobalDeviceId>)
|
||||||
|
|
||||||
=item $cdp->cdp_run()
|
=item $fdp->fdp_run()
|
||||||
|
|
||||||
Is FDP enabled on this device?
|
Is FDP enabled on this device?
|
||||||
|
|
||||||
@@ -294,7 +287,7 @@ CDP compatibility
|
|||||||
|
|
||||||
=over
|
=over
|
||||||
|
|
||||||
=item $fdp->c_capabilities()
|
=item $fdp->fdp_capabilities()
|
||||||
|
|
||||||
Returns Device Functional Capabilities. Results are munged into an ascii
|
Returns Device Functional Capabilities. Results are munged into an ascii
|
||||||
binary string, 7 digits long, MSB. Each digit represents a bit from the
|
binary string, 7 digits long, MSB. Each digit represents a bit from the
|
||||||
@@ -333,26 +326,26 @@ this information.
|
|||||||
|
|
||||||
(C<fdpCacheCapabilities>)
|
(C<fdpCacheCapabilities>)
|
||||||
|
|
||||||
=item $fdp->c_domain()
|
=item $fdp->fdp_domain()
|
||||||
|
|
||||||
The CDP version of this returns remote VTP Management Domain as defined
|
The CDP version of this returns remote VTP Management Domain as defined
|
||||||
in C<CISCO-VTP-MIB::managementDomainName>
|
in C<CISCO-VTP-MIB::managementDomainName>
|
||||||
|
|
||||||
(C<fdpCacheVTPMgmtDomain>)
|
(C<fdpCacheVTPMgmtDomain>)
|
||||||
|
|
||||||
=item $fdp->c_duplex()
|
=item $fdp->fdp_duplex()
|
||||||
|
|
||||||
Returns the port duplex status from remote devices.
|
Returns the port duplex status from remote devices.
|
||||||
|
|
||||||
(C<fdpCacheDuplex>)
|
(C<fdpCacheDuplex>)
|
||||||
|
|
||||||
=item $fdp->c_id()
|
=item $fdp->fdp_id()
|
||||||
|
|
||||||
Returns remote device id string
|
Returns remote device id string
|
||||||
|
|
||||||
(C<fdpCacheDeviceId>)
|
(C<fdpCacheDeviceId>)
|
||||||
|
|
||||||
=item $fdp->c_if()
|
=item $fdp->fdp_if()
|
||||||
|
|
||||||
Returns the mapping to the SNMP Interface Table.
|
Returns the mapping to the SNMP Interface Table.
|
||||||
|
|
||||||
@@ -380,7 +373,7 @@ truncate the last number off of it :
|
|||||||
return \%fdp_if;
|
return \%fdp_if;
|
||||||
|
|
||||||
|
|
||||||
=item $fdp->c_index()
|
=item $fdp->fdp_index()
|
||||||
|
|
||||||
Returns the mapping to the SNMP2 Interface table for FDP Cache Entries.
|
Returns the mapping to the SNMP2 Interface table for FDP Cache Entries.
|
||||||
|
|
||||||
@@ -391,37 +384,37 @@ See fdp_if() entry.
|
|||||||
|
|
||||||
(C<fdpCacheIfIndex>)
|
(C<fdpCacheIfIndex>)
|
||||||
|
|
||||||
=item $fdp->c_ip()
|
=item $fdp->fdp_ip()
|
||||||
|
|
||||||
Returns remote IP address
|
Returns remote IP address
|
||||||
|
|
||||||
(C<fdpCacheAddress>)
|
(C<fdpCacheAddress>)
|
||||||
|
|
||||||
=item $fdp->c_platform()
|
=item $fdp->fdp_platform()
|
||||||
|
|
||||||
Returns remote platform id
|
Returns remote platform id
|
||||||
|
|
||||||
(C<fdpCachePlatform>)
|
(C<fdpCachePlatform>)
|
||||||
|
|
||||||
=item $fdp->c_port()
|
=item $fdp->fdp_port()
|
||||||
|
|
||||||
Returns remote port ID
|
Returns remote port ID
|
||||||
|
|
||||||
(C<fdpDevicePort>)
|
(C<fdpDevicePort>)
|
||||||
|
|
||||||
=item $fdp->c_proto()
|
=item $fdp->fdp_proto()
|
||||||
|
|
||||||
Returns remote address type received. Usually IP.
|
Returns remote address type received. Usually IP.
|
||||||
|
|
||||||
(C<fdpCacheAddressType>)
|
(C<fdpCacheAddressType>)
|
||||||
|
|
||||||
=item $fdp->c_ver()
|
=item $fdp->fdp_ver()
|
||||||
|
|
||||||
Returns remote hardware version
|
Returns remote hardware version
|
||||||
|
|
||||||
(C<fdpCacheVersion>)
|
(C<fdpCacheVersion>)
|
||||||
|
|
||||||
=item $fdp->c_vlan()
|
=item $fdp->fdp_vlan()
|
||||||
|
|
||||||
Returns the remote interface native VLAN.
|
Returns the remote interface native VLAN.
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
# SNMP::Info::SONMP
|
# SNMP::Info::SONMP
|
||||||
# $Id$
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2008 Eric Miller
|
# Copyright (c) 2012 Eric Miller
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
@@ -30,6 +29,7 @@
|
|||||||
|
|
||||||
package SNMP::Info::SONMP;
|
package SNMP::Info::SONMP;
|
||||||
|
|
||||||
|
use warnings;
|
||||||
use strict;
|
use strict;
|
||||||
use Exporter;
|
use Exporter;
|
||||||
use SNMP::Info;
|
use SNMP::Info;
|
||||||
@@ -47,8 +47,8 @@ $VERSION = '2.08';
|
|||||||
);
|
);
|
||||||
|
|
||||||
%GLOBALS = (
|
%GLOBALS = (
|
||||||
'cdp_id' => 's5EnMsTopIpAddr',
|
'sonmp_id' => 's5EnMsTopIpAddr',
|
||||||
'cdp_run' => 's5EnMsTopStatus',
|
'sonmp_run' => 's5EnMsTopStatus',
|
||||||
);
|
);
|
||||||
|
|
||||||
%FUNCS = (
|
%FUNCS = (
|
||||||
@@ -77,12 +77,14 @@ sub port_offset {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub hasCDP {
|
sub hasSONMP {
|
||||||
my $sonmp = shift;
|
my $sonmp = shift;
|
||||||
return $sonmp->cdp_run();
|
|
||||||
|
return 1 if defined $sonmp->sonmp_run();
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub c_if {
|
sub sonmp_if {
|
||||||
my $sonmp = shift;
|
my $sonmp = shift;
|
||||||
my $partial = shift;
|
my $partial = shift;
|
||||||
|
|
||||||
@@ -93,7 +95,7 @@ sub c_if {
|
|||||||
my $port_offset = $sonmp->port_offset();
|
my $port_offset = $sonmp->port_offset();
|
||||||
my $model = $sonmp->model();
|
my $model = $sonmp->model();
|
||||||
|
|
||||||
my %c_if;
|
my %sonmp_if;
|
||||||
foreach my $entry ( keys %$sonmp_topo_port ) {
|
foreach my $entry ( keys %$sonmp_topo_port ) {
|
||||||
my $port = $sonmp_topo_port->{$entry};
|
my $port = $sonmp_topo_port->{$entry};
|
||||||
next unless defined $port;
|
next unless defined $port;
|
||||||
@@ -118,31 +120,31 @@ sub c_if {
|
|||||||
my $index = ( ( $slot - $slot_offset ) * $index_factor )
|
my $index = ( ( $slot - $slot_offset ) * $index_factor )
|
||||||
+ ( $port - $port_offset );
|
+ ( $port - $port_offset );
|
||||||
|
|
||||||
$c_if{$entry} = $index;
|
$sonmp_if{$entry} = $index;
|
||||||
}
|
}
|
||||||
return \%c_if;
|
return \%sonmp_if;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub c_ip {
|
sub sonmp_ip {
|
||||||
my $sonmp = shift;
|
my $sonmp = shift;
|
||||||
my $partial = shift;
|
my $partial = shift;
|
||||||
|
|
||||||
my $sonmp_topo_port = $sonmp->sonmp_topo_port($partial) || {};
|
my $sonmp_topo_port = $sonmp->sonmp_topo_port($partial) || {};
|
||||||
my $sonmp_topo_ip = $sonmp->sonmp_topo_ip($partial) || {};
|
my $sonmp_topo_ip = $sonmp->sonmp_topo_ip($partial) || {};
|
||||||
|
|
||||||
my %c_ip;
|
my %sonmp_ip;
|
||||||
foreach my $entry ( keys %$sonmp_topo_ip ) {
|
foreach my $entry ( keys %$sonmp_topo_ip ) {
|
||||||
my $port = $sonmp_topo_port->{$entry};
|
my $port = $sonmp_topo_port->{$entry};
|
||||||
next unless defined $port;
|
next unless defined $port;
|
||||||
next if $port == 0;
|
next if $port == 0;
|
||||||
|
|
||||||
my $ip = $sonmp_topo_ip->{$entry};
|
my $ip = $sonmp_topo_ip->{$entry};
|
||||||
$c_ip{$entry} = $ip;
|
$sonmp_ip{$entry} = $ip;
|
||||||
}
|
}
|
||||||
return \%c_ip;
|
return \%sonmp_ip;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub c_port {
|
sub sonmp_port {
|
||||||
my $sonmp = shift;
|
my $sonmp = shift;
|
||||||
my $partial = shift;
|
my $partial = shift;
|
||||||
|
|
||||||
@@ -150,7 +152,7 @@ sub c_port {
|
|||||||
my $sonmp_topo_seg = $sonmp->sonmp_topo_seg($partial) || {};
|
my $sonmp_topo_seg = $sonmp->sonmp_topo_seg($partial) || {};
|
||||||
my $sonmp_topo_platform = $sonmp->sonmp_topo_platform($partial) || {};
|
my $sonmp_topo_platform = $sonmp->sonmp_topo_platform($partial) || {};
|
||||||
|
|
||||||
my %c_port;
|
my %sonmp_port;
|
||||||
foreach my $entry ( keys %$sonmp_topo_seg ) {
|
foreach my $entry ( keys %$sonmp_topo_seg ) {
|
||||||
my $port = $sonmp_topo_port->{$entry};
|
my $port = $sonmp_topo_port->{$entry};
|
||||||
next unless defined $port;
|
next unless defined $port;
|
||||||
@@ -161,12 +163,12 @@ sub c_port {
|
|||||||
|
|
||||||
# AP-222x Series does not adhere to port numbering
|
# AP-222x Series does not adhere to port numbering
|
||||||
if ( $platform =~ /AccessPoint/i ) {
|
if ( $platform =~ /AccessPoint/i ) {
|
||||||
$c_port{$entry} = 'dp0';
|
$sonmp_port{$entry} = 'dp0';
|
||||||
}
|
}
|
||||||
|
|
||||||
# BayHubs send the lower three bytes of the MAC not the slot/port
|
# BayHubs send the lower three bytes of the MAC not the slot/port
|
||||||
elsif ( $seg > 4000 ) {
|
elsif ( $seg > 4000 ) {
|
||||||
$c_port{$entry} = 'unknown';
|
$sonmp_port{$entry} = 'unknown';
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
||||||
@@ -174,20 +176,20 @@ sub c_port {
|
|||||||
my $remote_port = $seg % 256;
|
my $remote_port = $seg % 256;
|
||||||
my $remote_slot = int( $seg / 256 );
|
my $remote_slot = int( $seg / 256 );
|
||||||
|
|
||||||
$c_port{$entry} = "$remote_slot.$remote_port";
|
$sonmp_port{$entry} = "$remote_slot.$remote_port";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return \%c_port;
|
return \%sonmp_port;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub c_platform {
|
sub sonmp_platform {
|
||||||
my $sonmp = shift;
|
my $sonmp = shift;
|
||||||
my $partial = shift;
|
my $partial = shift;
|
||||||
|
|
||||||
my $sonmp_topo_port = $sonmp->sonmp_topo_port($partial) || {};
|
my $sonmp_topo_port = $sonmp->sonmp_topo_port($partial) || {};
|
||||||
my $sonmp_topo_platform = $sonmp->sonmp_topo_platform($partial) || {};
|
my $sonmp_topo_platform = $sonmp->sonmp_topo_platform($partial) || {};
|
||||||
|
|
||||||
my %c_platform;
|
my %sonmp_platform;
|
||||||
foreach my $entry ( keys %$sonmp_topo_platform ) {
|
foreach my $entry ( keys %$sonmp_topo_platform ) {
|
||||||
my $port = $sonmp_topo_port->{$entry};
|
my $port = $sonmp_topo_port->{$entry};
|
||||||
next unless defined $port;
|
next unless defined $port;
|
||||||
@@ -195,9 +197,9 @@ sub c_platform {
|
|||||||
|
|
||||||
my $platform = $sonmp_topo_platform->{$entry};
|
my $platform = $sonmp_topo_platform->{$entry};
|
||||||
|
|
||||||
$c_platform{$entry} = $platform;
|
$sonmp_platform{$entry} = $platform;
|
||||||
}
|
}
|
||||||
return \%c_platform;
|
return \%sonmp_platform;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub mac {
|
sub mac {
|
||||||
@@ -242,19 +244,19 @@ Eric Miller
|
|||||||
my $class = $sonmp->class();
|
my $class = $sonmp->class();
|
||||||
print " Using device sub class : $class\n";
|
print " Using device sub class : $class\n";
|
||||||
|
|
||||||
$hascdp = $sonmp->hasCDP() ? 'yes' : 'no';
|
$hassonmp = $sonmp->hasSONMP() ? 'yes' : 'no';
|
||||||
|
|
||||||
# Print out a map of device ports with CDP neighbors:
|
# Print out a map of device ports with CDP neighbors:
|
||||||
my $interfaces = $sonmp->interfaces();
|
my $interfaces = $sonmp->interfaces();
|
||||||
my $c_if = $sonmp->c_if();
|
my $sonmp_if = $sonmp->sonmp_if();
|
||||||
my $c_ip = $sonmp->c_ip();
|
my $sonmp_ip = $sonmp->sonmp_ip();
|
||||||
my $c_port = $sonmp->c_port();
|
my $sonmp_port = $sonmp->sonmp_port();
|
||||||
|
|
||||||
foreach my $cdp_key (keys %$c_ip){
|
foreach my $sonmp_key (keys %$sonmp_ip){
|
||||||
my $iid = $c_if->{$cdp_key};
|
my $iid = $sonmp_if->{$sonmp_key};
|
||||||
my $port = $interfaces->{$iid};
|
my $port = $interfaces->{$iid};
|
||||||
my $neighbor = $c_ip->{$cdp_key};
|
my $neighbor = $sonmp_ip->{$sonmp_key};
|
||||||
my $neighbor_port = $c_port->{$cdp_key};
|
my $neighbor_port = $sonmp_port->{$sonmp_key};
|
||||||
print "Port : $port connected to $neighbor / $neighbor_port\n";
|
print "Port : $port connected to $neighbor / $neighbor_port\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -266,8 +268,8 @@ through SNMP.
|
|||||||
|
|
||||||
SONMP is a Layer 2 protocol that supplies topology information of devices that
|
SONMP is a Layer 2 protocol that supplies topology information of devices that
|
||||||
also speak SONMP, mostly switches and hubs. SONMP is implemented in
|
also speak SONMP, mostly switches and hubs. SONMP is implemented in
|
||||||
SynOptics, Bay, and Nortel devices. SONMP has been rebranded by Bay then
|
SynOptics, Bay, Nortel, and Avaya devices. SONMP has been rebranded by Bay
|
||||||
Nortel and is know by several different names, most recently Nortel
|
then Nortel and may be referred to by several different names, including Nortel
|
||||||
Discovery Protocol (NDP).
|
Discovery Protocol (NDP).
|
||||||
|
|
||||||
Create or use a device subclass that inherits this class. Do not use
|
Create or use a device subclass that inherits this class. Do not use
|
||||||
@@ -309,17 +311,17 @@ Returns the offset if slot numbering does not start at 0. Defaults to 1.
|
|||||||
|
|
||||||
Returns the offset if port numbering does not start at 0. Defaults to 0.
|
Returns the offset if port numbering does not start at 0. Defaults to 0.
|
||||||
|
|
||||||
=item $cdp->hasCDP()
|
=item $sonmp->hasSONMP()
|
||||||
|
|
||||||
Is SONMP is active in this device?
|
Is SONMP is active in this device?
|
||||||
|
|
||||||
=item $sonmp->cdp_id()
|
=item $sonmp->sonmp_id()
|
||||||
|
|
||||||
Returns the IP that the device is sending out for its Nmm topology info.
|
Returns the IP that the device is sending out for its Nmm topology info.
|
||||||
|
|
||||||
(C<s5EnMsTopIpAddr>)
|
(C<s5EnMsTopIpAddr>)
|
||||||
|
|
||||||
=item $sonmp->cdp_run()
|
=item $sonmp->sonmp_run()
|
||||||
|
|
||||||
Returns true if SONMP is on for this device.
|
Returns true if SONMP is on for this device.
|
||||||
|
|
||||||
@@ -386,31 +388,31 @@ bay_topo_seg() is local.
|
|||||||
|
|
||||||
=back
|
=back
|
||||||
|
|
||||||
=head2 Pseudo CDP information
|
=head2 Common topology information
|
||||||
|
|
||||||
All entries with port=0 are local and ignored.
|
All entries with port=0 are local and ignored.
|
||||||
|
|
||||||
=over
|
=over
|
||||||
|
|
||||||
=item $sonmp->c_if()
|
=item $sonmp->sonmp_if()
|
||||||
|
|
||||||
Returns reference to hash. Key: IID, Value: Local port (interfaces)
|
Returns reference to hash. Key: IID, Value: Local port (interfaces)
|
||||||
|
|
||||||
=item $sonmp->c_ip()
|
=item $sonmp->sonmp_ip()
|
||||||
|
|
||||||
Returns reference to hash. Key: IID, Value: Remote IP address
|
Returns reference to hash. Key: IID, Value: Remote IP address
|
||||||
|
|
||||||
If multiple entries exist with the same local port, c_if(), with different
|
If multiple entries exist with the same local port, sonmp_if(), with different
|
||||||
IPv4 addresses, c_ip(), there is either a non SONMP device in between two or
|
IPv4 addresses, sonmp_ip(), there is either a non SONMP device in between two or
|
||||||
more devices or multiple devices which are not directly connected.
|
more devices or multiple devices which are not directly connected.
|
||||||
|
|
||||||
Use the data from the Layer2 Topology Table below to dig deeper.
|
Use the data from the Layer2 Topology Table below to dig deeper.
|
||||||
|
|
||||||
=item $sonmp->c_port()
|
=item $sonmp->sonmp_port()
|
||||||
|
|
||||||
Returns reference to hash. Key: IID, Value: Remote port (interfaces)
|
Returns reference to hash. Key: IID, Value: Remote port (interfaces)
|
||||||
|
|
||||||
=item $sonmp->c_platform()
|
=item $sonmp->sonmp_platform()
|
||||||
|
|
||||||
Returns reference to hash. Key: IID, Value: Remote device type
|
Returns reference to hash. Key: IID, Value: Remote device type
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user