Correct port indexing of newer VSP 4K and 8K in L3::Passport
This commit is contained in:
@@ -177,6 +177,7 @@ sub interfaces {
|
||||
my $model = $passport->model();
|
||||
my $index_factor = $passport->index_factor();
|
||||
my $port_offset = $passport->port_offset();
|
||||
my $slot_offset = $passport->slot_offset();
|
||||
my $vlan_index = {};
|
||||
my %reverse_vlan;
|
||||
my $vlan_id = {};
|
||||
@@ -202,6 +203,10 @@ sub interfaces {
|
||||
$if{$index} = 'Cpu.Virtual';
|
||||
}
|
||||
|
||||
elsif ( ( $iid == 64 ) and ( $model =~ /^VSP[48]/ ) ) {
|
||||
$if{$index} = 'Mgmt.1';
|
||||
}
|
||||
|
||||
elsif ( ( $index == 192 ) and ( $model =~ /^8[86]03/ ) ) {
|
||||
$if{$index} = 'Cpu.3';
|
||||
}
|
||||
@@ -227,7 +232,7 @@ sub interfaces {
|
||||
|
||||
else {
|
||||
my $port = ( $index % $index_factor ) + $port_offset;
|
||||
my $slot = int( $index / $index_factor );
|
||||
my $slot = int( $index / $index_factor ) + $slot_offset;
|
||||
|
||||
my $slotport = "$slot.$port";
|
||||
$if{$iid} = $slotport;
|
||||
@@ -383,6 +388,10 @@ sub i_name {
|
||||
$i_name{$iid} = 'CPU Virtual Management IP';
|
||||
}
|
||||
|
||||
elsif ( ( $iid == 64 ) and ( $model =~ /^VSP[48]/ ) ) {
|
||||
$i_name{$iid} = 'Mgmt Port';
|
||||
}
|
||||
|
||||
elsif ( ( $iid == 192 ) and ( $model =~ /^8[86]03/ ) ) {
|
||||
$i_name{$iid} = 'CPU 3 Ethernet Port';
|
||||
}
|
||||
@@ -573,13 +582,17 @@ sub index_factor {
|
||||
# Older Accelar models use base 16 instead of 64
|
||||
$index_factor = 16
|
||||
if ( defined $model and $model =~ /^1[012][05]0/ );
|
||||
# Newer VSP 4K uses 192?
|
||||
$index_factor = 192
|
||||
if ( defined $model and $model =~ /^VSP4/ );
|
||||
|
||||
return $index_factor;
|
||||
}
|
||||
|
||||
sub slot_offset {
|
||||
my $passport = shift;
|
||||
my $model = $passport->model();
|
||||
# Newer VSP 4K and 8K start at an index of 192 ~ slot 3 but really slot 1
|
||||
return -2
|
||||
if ( defined $model and $model =~ /^VSP[48]/ );
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user