Add support for e_name() in Psuedo ENTITY-MIB methods

This commit is contained in:
Eric Miller
2007-11-26 03:32:11 +00:00
parent 8b5ba1e959
commit 004de3d29b
4 changed files with 116 additions and 14 deletions

View File

@@ -229,6 +229,55 @@ sub 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 {
my $stack = shift;
my $partial = shift;
@@ -325,15 +374,15 @@ sub ns_e_pos {
}
elsif ($grp == 3 and $idx == 0 ) {
my $enc = $ns_grp_enc->{$grp};
if ($is_stack and ($pos % $enc)) {
if ($is_virtual and ($pos % $enc)) {
$pos = int ($pos % $enc);
}
elsif ($is_stack and !($pos % $enc)) {
$pos = ($pos / $enc);
}
elsif ($is_virtual and !$is_stack and !($pos % $enc)) {
$pos = -1;
}
elsif ($is_virtual and !($pos % $enc)) {
$pos = ($pos / $enc);
}
}
elsif (!$is_stack and $grp == 3) {
$pos = $idx;