Add support for e_name() in Psuedo ENTITY-MIB methods
This commit is contained in:
@@ -391,6 +391,13 @@ sub e_descr {
|
|||||||
return $stack->ns_e_descr($partial);
|
return $stack->ns_e_descr($partial);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub e_name {
|
||||||
|
my $stack = shift;
|
||||||
|
my $partial = shift;
|
||||||
|
|
||||||
|
return $stack->ns_e_name($partial);
|
||||||
|
}
|
||||||
|
|
||||||
sub e_fwver {
|
sub e_fwver {
|
||||||
my $stack = shift;
|
my $stack = shift;
|
||||||
my $partial = shift;
|
my $partial = shift;
|
||||||
|
|||||||
@@ -367,6 +367,13 @@ sub e_descr {
|
|||||||
return $stack->SUPER::e_descr($partial) || $stack->ns_e_descr($partial);
|
return $stack->SUPER::e_descr($partial) || $stack->ns_e_descr($partial);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub e_name {
|
||||||
|
my $stack = shift;
|
||||||
|
my $partial = shift;
|
||||||
|
|
||||||
|
return $stack->SUPER::e_name($partial) || $stack->ns_e_name($partial);
|
||||||
|
}
|
||||||
|
|
||||||
sub e_fwver {
|
sub e_fwver {
|
||||||
my $stack = shift;
|
my $stack = shift;
|
||||||
my $partial = shift;
|
my $partial = shift;
|
||||||
|
|||||||
@@ -623,10 +623,10 @@ sub e_class {
|
|||||||
if ($iid == 1) {
|
if ($iid == 1) {
|
||||||
$rc_e_class{$iid} = 'chassis';
|
$rc_e_class{$iid} = 'chassis';
|
||||||
}
|
}
|
||||||
elsif ($iid =~/^9/) {
|
elsif ($iid =~/^9(\d)/ and length $iid > 5) {
|
||||||
$rc_e_class{$iid} = 'powerSupply';
|
$rc_e_class{$iid} = 'powerSupply';
|
||||||
}
|
}
|
||||||
elsif ($iid =~/00$/) {
|
elsif ($iid =~/0000$/) {
|
||||||
$rc_e_class{$iid} = 'container';
|
$rc_e_class{$iid} = 'container';
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -665,7 +665,7 @@ sub e_descr {
|
|||||||
my $type = $rc_c_t->{$idx};
|
my $type = $rc_c_t->{$idx};
|
||||||
next unless $type;
|
next unless $type;
|
||||||
my $index = "$idx"."0000";
|
my $index = "$idx"."0000";
|
||||||
$rc_e_descr{$index} = "slot"."$idx";
|
$rc_e_descr{$index} = "Slot "."$idx";
|
||||||
$index++;
|
$index++;
|
||||||
$rc_e_descr{$index} = $type;
|
$rc_e_descr{$index} = $type;
|
||||||
}
|
}
|
||||||
@@ -683,7 +683,7 @@ sub e_descr {
|
|||||||
my $cb = $rc2_cb->{$idx};
|
my $cb = $rc2_cb->{$idx};
|
||||||
|
|
||||||
my $index = "$idx"."0000";
|
my $index = "$idx"."0000";
|
||||||
$rc_e_descr{$index} = "slot"."$idx";
|
$rc_e_descr{$index} = "Slot "."$idx";
|
||||||
$index++;
|
$index++;
|
||||||
$rc_e_descr{$index} = $cf;
|
$rc_e_descr{$index} = $cf;
|
||||||
$index++;
|
$index++;
|
||||||
@@ -769,6 +769,45 @@ sub e_type {
|
|||||||
return \%rc_e_type;
|
return \%rc_e_type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub e_name {
|
||||||
|
my $passport = shift;
|
||||||
|
|
||||||
|
my $model = $passport->model();
|
||||||
|
my $rc_e_idx = $passport->e_index() || {};
|
||||||
|
|
||||||
|
my %rc_e_name;
|
||||||
|
foreach my $iid (keys %$rc_e_idx){
|
||||||
|
|
||||||
|
if ($iid == 1) {
|
||||||
|
$rc_e_name{$iid} = 'Chassis';
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
|
||||||
|
my $mod = int (substr($iid, -4, 2));
|
||||||
|
my $slot = substr($iid, -6, 2);
|
||||||
|
|
||||||
|
if ($iid =~/^9(\d)/ and length $iid > 5) {
|
||||||
|
$rc_e_name{$iid} = "Power Supply $1";
|
||||||
|
}
|
||||||
|
elsif ($iid =~/(00){2}$/) {
|
||||||
|
$rc_e_name{$iid} = "Slot $slot";
|
||||||
|
}
|
||||||
|
elsif ($iid =~/(00){1}$/) {
|
||||||
|
$rc_e_name{$iid} = "Card $slot, MDA $mod";
|
||||||
|
}
|
||||||
|
elsif (defined $model and $model =~ /(105|11[05]0|12[05])/ and $iid =~ /1$/) {
|
||||||
|
$rc_e_name{$iid} = "Card $slot";
|
||||||
|
}
|
||||||
|
elsif ($iid =~ /1$/) {
|
||||||
|
$rc_e_name{$iid} = "Card $slot (front)";
|
||||||
|
}
|
||||||
|
elsif ($iid =~ /2$/) {
|
||||||
|
$rc_e_name{$iid} = "Card $slot (back)";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return \%rc_e_name;
|
||||||
|
}
|
||||||
|
|
||||||
sub e_hwver {
|
sub e_hwver {
|
||||||
my $passport = shift;
|
my $passport = shift;
|
||||||
|
|
||||||
@@ -915,11 +954,15 @@ sub e_pos {
|
|||||||
$rc_e_pos{$iid} = -1;
|
$rc_e_pos{$iid} = -1;
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
my $sub = substr($iid, -1);
|
my $sub = int (substr($iid, -2, 2));
|
||||||
|
my $mod = int (substr($iid, -4, 2));
|
||||||
my $slot = substr($iid, -6, 2);
|
my $slot = substr($iid, -6, 2);
|
||||||
if ($iid =~/(00){1,2}$/) {
|
if ($iid =~/(00){2}$/) {
|
||||||
$rc_e_pos{$iid} = $slot;
|
$rc_e_pos{$iid} = $slot;
|
||||||
}
|
}
|
||||||
|
elsif ($iid =~/(00){1}$/) {
|
||||||
|
$rc_e_pos{$iid} = $mod * 100;
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
$rc_e_pos{$iid} = $sub;
|
$rc_e_pos{$iid} = $sub;
|
||||||
}
|
}
|
||||||
@@ -939,14 +982,10 @@ sub e_parent {
|
|||||||
$rc_e_parent{$iid} = 0;
|
$rc_e_parent{$iid} = 0;
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
my $mod = substr($iid, -4, 2);
|
|
||||||
my $slot = substr($iid, -6, 2);
|
my $slot = substr($iid, -6, 2);
|
||||||
if ($iid =~/(00){1,2}$/) {
|
if ($iid =~/(00){1,2}$/) {
|
||||||
$rc_e_parent{$iid} = 1;
|
$rc_e_parent{$iid} = 1;
|
||||||
}
|
}
|
||||||
elsif ($mod != 0) {
|
|
||||||
$rc_e_parent{$iid} = "$slot"."$mod"."00";
|
|
||||||
}
|
|
||||||
else {
|
else {
|
||||||
$rc_e_parent{$iid} = "$slot"."0000";
|
$rc_e_parent{$iid} = "$slot"."0000";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -229,6 +229,55 @@ sub ns_e_descr {
|
|||||||
return \%ns_e_descr;
|
return \%ns_e_descr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub ns_e_name {
|
||||||
|
my $stack = shift;
|
||||||
|
my $partial = shift;
|
||||||
|
|
||||||
|
my $ns_class = $stack->ns_e_class() || {};
|
||||||
|
my $ns_e_idx = $stack->ns_e_index() || {};
|
||||||
|
my $ns_grp_enc = $stack->s5ChasGrpEncodeFactor($partial) || {};
|
||||||
|
my $is_virtual = $stack->ns_e_is_virtual();
|
||||||
|
|
||||||
|
my %ns_e_name;
|
||||||
|
foreach my $iid (keys %$ns_e_idx){
|
||||||
|
|
||||||
|
my ($grp, $idx, $sub) = split (/\./,$iid);
|
||||||
|
my $class = $ns_class->{$iid};
|
||||||
|
next unless defined $class;
|
||||||
|
my $enc = $ns_grp_enc->{$grp};
|
||||||
|
|
||||||
|
if ((!$is_virtual) and ($grp == 1)) {
|
||||||
|
$ns_e_name{$iid} = 'Supervisory Module';
|
||||||
|
}
|
||||||
|
elsif ($class eq 'stack') {
|
||||||
|
$ns_e_name{$iid} = 'Stack Master Unit';
|
||||||
|
}
|
||||||
|
elsif ($class eq 'chassis') {
|
||||||
|
if ($is_virtual) {
|
||||||
|
my $unit = $idx / $enc;
|
||||||
|
$ns_e_name{$iid} = "Switch Unit $unit";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$ns_e_name{$iid} = "Chassis";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elsif ($class eq 'module') {
|
||||||
|
if ($is_virtual) {
|
||||||
|
my $unit = int ($idx / $enc);
|
||||||
|
my $mda = $idx % $enc;
|
||||||
|
$ns_e_name{$iid} = "Switch Unit $unit, MDA $mda";
|
||||||
|
}
|
||||||
|
elsif ($sub != 0) {
|
||||||
|
$ns_e_name{$iid} = "Module Slot $idx, Subcomponent $sub";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$ns_e_name{$iid} = "Module Slot $idx";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return \%ns_e_name;
|
||||||
|
}
|
||||||
|
|
||||||
sub ns_e_hwver {
|
sub ns_e_hwver {
|
||||||
my $stack = shift;
|
my $stack = shift;
|
||||||
my $partial = shift;
|
my $partial = shift;
|
||||||
@@ -325,15 +374,15 @@ sub ns_e_pos {
|
|||||||
}
|
}
|
||||||
elsif ($grp == 3 and $idx == 0 ) {
|
elsif ($grp == 3 and $idx == 0 ) {
|
||||||
my $enc = $ns_grp_enc->{$grp};
|
my $enc = $ns_grp_enc->{$grp};
|
||||||
if ($is_stack and ($pos % $enc)) {
|
if ($is_virtual and ($pos % $enc)) {
|
||||||
$pos = int ($pos % $enc);
|
$pos = int ($pos % $enc);
|
||||||
}
|
}
|
||||||
elsif ($is_stack and !($pos % $enc)) {
|
|
||||||
$pos = ($pos / $enc);
|
|
||||||
}
|
|
||||||
elsif ($is_virtual and !$is_stack and !($pos % $enc)) {
|
elsif ($is_virtual and !$is_stack and !($pos % $enc)) {
|
||||||
$pos = -1;
|
$pos = -1;
|
||||||
}
|
}
|
||||||
|
elsif ($is_virtual and !($pos % $enc)) {
|
||||||
|
$pos = ($pos / $enc);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
elsif (!$is_stack and $grp == 3) {
|
elsif (!$is_stack and $grp == 3) {
|
||||||
$pos = $idx;
|
$pos = $idx;
|
||||||
|
|||||||
Reference in New Issue
Block a user