Skip to content

Instantly share code, notes, and snippets.

@phil21
Created January 24, 2016 19:20
Show Gist options
  • Save phil21/9d3c08e54578c3c5cdd3 to your computer and use it in GitHub Desktop.
Save phil21/9d3c08e54578c3c5cdd3 to your computer and use it in GitHub Desktop.
#!/usr/bin/perl
#
# bmc tool - a user friendly front-end to probe, configure, and manage the BMC
#
# Copyright (c) 2012 Dell Inc. All rights reserved.
#
# This tool is part of the PowerEdge C datacenter system management tools
# from http://poweredgec.com
#
# michael_stumpf@dell.com
#
use POSIX;
use warnings;
use strict 'refs';
my $llIlI1l1I1llIl11ll1ll1II111lIIl = '2013-02-11 15:44:47';
my $IIlllI1IIIl1lIlIl1I1llI1Illl1I1 = '';
my $l11I1l1l1l111ll1I1I1I11ll1l11II = '1';
use constant ('EC_SUCCESS', 0);
use constant ('EC_ERROR', 1);
use constant ('EC_NOT_APPLICABLE', 4);
use constant ('EC_UNIMPLEMENTED', 5);
use constant ('EC_INVALID', 6);
sub IlI1I1I11I1l1II1II1lll11I1IlIll {
return '';
}
sub III1III11Il1llIlII1l11II1IllI1I {
return 'FAILED';
}
sub IIIl11111lI1II111lllIIIl111II11 {
return 'UNIMPLEMENTED';
}
sub IlIIl1lIlIIl1IIIllII1ll1IIl1l11 {
return 'INVALID';
}
sub lll1lI1llIl1IllI11l11II11II1Ill {
return 'NOT_APPLICABLE';
}
sub l111I11lIllllI1l1IlIIlIIl1l1l1I {
return 'UNAVAILABLE';
}
sub ll1I1II1IIll11IIllI1ll1IllI11I1 {
return 'UNSUPPORTED';
}
sub I1I11lIIll1lIIII1II11IlIl1ll11I {
return 'DISABLED';
}
sub ll1ll1lIIIII11llI1IlII111lIll1l {
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_ || '';
if ($l1l1lII111IIlllII11IIIl1IIllI1I eq IIIl11111lI1II111lllIIIl111II11() or $l1l1lII111IIlllII11IIIl1IIllI1I eq IlIIl1lIlIIl1IIIllII1ll1IIl1l11() or $l1l1lII111IIlllII11IIIl1IIllI1I eq lll1lI1llIl1IllI11l11II11II1Ill() or $l1l1lII111IIlllII11IIIl1IIllI1I eq l111I11lIllllI1l1IlIIlIIl1l1l1I() or $l1l1lII111IIlllII11IIIl1IIllI1I eq ll1I1II1IIll11IIllI1ll1IllI11I1() or $l1l1lII111IIlllII11IIIl1IIllI1I eq I1I11lIIll1lIIII1II11IlIl1ll11I()) {
return $l11I1l1l1l111ll1I1I1I11ll1l11II;
}
else {
return $IIlllI1IIIl1lIlIl1I1llI1Illl1I1;
}
}
sub l1III1II1l1I111IIII1I1l11I1lIll {
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_ || '';
if ($l1l1lII111IIlllII11IIIl1IIllI1I eq '') {
return $l11I1l1l1l111ll1I1I1I11ll1l11II;
}
else {
return $IIlllI1IIIl1lIlIl1I1llI1Illl1I1;
}
}
sub lI1IIlllllIlllI11lIIlIllI1I11II {
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_ || '';
if ($l1l1lII111IIlllII11IIIl1IIllI1I eq '') {
return $IIlllI1IIIl1lIlIl1I1llI1Illl1I1;
}
else {
return $l11I1l1l1l111ll1I1I1I11ll1l11II;
}
}
sub IlII1I1l1lIIlI1I11I1IIIlllIlll1 {
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_ || '';
if ($l1l1lII111IIlllII11IIIl1IIllI1I eq 'UNIMPLEMENTED') {
return $l11I1l1l1l111ll1I1I1I11ll1l11II;
}
else {
return $IIlllI1IIIl1lIlIl1I1llI1Illl1I1;
}
}
sub ll11I1ll11lI1l111Ill11ll1IIIIll {
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_ || '';
if ($l1l1lII111IIlllII11IIIl1IIllI1I eq 'INVALID') {
return $l11I1l1l1l111ll1I1I1I11ll1l11II;
}
else {
return $IIlllI1IIIl1lIlIl1I1llI1Illl1I1;
}
}
sub Il11lIIIlll1Il11ll1lIl1l1II1l1l {
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_ || '';
if ($l1l1lII111IIlllII11IIIl1IIllI1I eq 'NOT_APPLICABLE') {
return $l11I1l1l1l111ll1I1I1I11ll1l11II;
}
else {
return $IIlllI1IIIl1lIlIl1I1llI1Illl1I1;
}
}
sub l1IIl1I1ll11III11I1III1lIlI11lI {
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_ || '';
if ($l1l1lII111IIlllII11IIIl1IIllI1I eq 'UNAVAILABLE') {
return $l11I1l1l1l111ll1I1I1I11ll1l11II;
}
else {
return $IIlllI1IIIl1lIlIl1I1llI1Illl1I1;
}
}
sub l1IllIIIll1l1llIIl1lIIlll1I1llI {
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_ || '';
if ($l1l1lII111IIlllII11IIIl1IIllI1I eq 'UNAVAILABLE') {
return $IIlllI1IIIl1lIlIl1I1llI1Illl1I1;
}
else {
return $l11I1l1l1l111ll1I1I1I11ll1l11II;
}
}
sub lIllIll1l111I1I1IllII1lll1llIIl {
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_ || '';
if ($l1l1lII111IIlllII11IIIl1IIllI1I eq 'UNSUPPORTED') {
return $l11I1l1l1l111ll1I1I1I11ll1l11II;
}
else {
return $IIlllI1IIIl1lIlIl1I1llI1Illl1I1;
}
}
sub lIll1lIIllIII1IlI11l111llII1I1I {
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_ || '';
if ($l1l1lII111IIlllII11IIIl1IIllI1I eq 'DISABLED') {
return $l11I1l1l1l111ll1I1I1I11ll1l11II;
}
else {
return $IIlllI1IIIl1lIlIl1I1llI1Illl1I1;
}
}
my(@l1II11IlI1I1IlI1lllI1l1IIIIlIll) = (['nic', 'nic_selection', '02', '01', '00', '1', 'rw', '0'], ['nic', 'shared_nic_selection', '02', '02', '00', '1', 'rw', '1']);
my(@Il1l1IIlII111lI1llllII11I1I11l1) = ['sol', 'sol_idle_timeout', '03', '01', '00', '2', 'rw', '1'];
my(@lIlllIIIll1l1I1Ill11IIl1l1IIIll) = ['security_cfg', 'service_disabled', '04', '01', '00', '1', 'rw', '6'];
my(@Ill1IlIIIl1l1lI1IIlllIl1l1lIl1I) = (['acct_status', 'num_of_users', '05', '01', '00', '1', 'r'], ['acct_status', 'num_of_enabled_users', '05', '02', '00', '1', 'r'], ['acct_status', 'user_name', '05', '03', '00', '17', 'r'], ['acct_status', 'account_status', '05', '04', '00', '1', 'r']);
my(@llIll11lIIII1I111II1lIlIlIIlIlI) = (['dns', 'dns_dhcp_enable', '06', '01', '00', '1', 'rw', '0'], ['dns', 'dns_server_1', '06', '02', '00', '4', 'rw'], ['dns', 'dns_server_2', '06', '03', '00', '4', 'rw'], ['dns', 'dns_register_bmc', '06', '04', '00', '1', 'rw', '0'], ['dns', 'dns_bmc_hostname', '06', '05', '00', '64', 'rw'], ['dns', 'dns_get_domain_from_dhcp', '06', '06', '00', '1', 'rw', '0'], ['dns', 'dns_domain_name', '06', '07', '00', '256', 'rw']);
my(@IlIlI1lIlIlllIIIIIIIlllIlllIlIl) = (['websvr_cfg', 'web_server_enabled', '0c', '01', '00', '1', 'rw', '1'], ['websvr_cfg', 'max_web_sessions', '0c', '02', '00', '1', 'r'], ['websvr_cfg', 'active_web_sessions', '0c', '03', '00', '1', 'r'], ['websvr_cfg', 'web_server_timeout', '0c', '04', '00', '4', 'rw', '300'], ['websvr_cfg', 'http_port', '0c', '05', '00', '2', 'rw', '80'], ['websvr_cfg', 'https_port', '0c', '06', '00', '2', 'rw', '443']);
my(@II1I11IIllII1lllIIl1Il1IlI11l1I) = (['power_mgmt', 'power_mgmt_enable', '11', '01', '00', '1', 'rw'], ['power_mgmt', 'poweron_stagger_ac_recovery', '11', '02', '00', '1', 'rw'], ['power_mgmt', 'poweron_delay', '11', '03', '00', '2', 'rw'], ['power_mgmt', 'min_poweron_delay', '11', '04', '00', '2', 'r'], ['power_mgmt', 'max_poweron_delay', '11', '05', '00', '2', 'rw']);
my(@lI1lIllII1lIIIIII1llIIlllIlII11) = (['ipv6', 'ipv6_enable', 'c0', '01', '00', '1', 'rw', '0'], ['ipv6', 'ipv6_address', 'c0', '02', '00', '40', 'rw'], ['ipv6', 'ipv6_gateway_ip', 'c0', '03', '00', '40', 'rw'], ['ipv6', 'ipv6_prefix', 'c0', '04', '00', '1', 'rw'], ['ipv6', 'ipv6_autoconfig', 'c0', '05', '00', '1', 'rw', '1'], ['ipv6', 'ipv6_link_local_addr', 'c0', '06', '00', '40', 'r'], ['ipv6', 'ipv6_auto_dns', 'c0', '07', '00', '1', 'rw', '0'], ['ipv6', 'ipv6_dns_server_1', 'c0', '08', '00', '40', 'rw'], ['ipv6', 'ipv6_dns_server_2', 'c0', '09', '00', '40', 'rw']);
my(@lII1lIII1lIll11lI1IIIl1lIlI11lI) = (['ipv6_trap', 'ipv6_snmp_trap_dest', 'c1', '01', '00', '3', 'rw'], ['ipv6_trap', 'ipv6_snmp_trap_dest_addr', 'c1', '02', '00', '40', 'rw'], ['ipv6_trap', 'ipv6_num_of_trap_dest', 'c1', '03', '00', '1', 'r']);
my(@l11IIIll11I11lllIlIIl1I1I1111I1) = (@l1II11IlI1I1IlI1lllI1l1IIIIlIll, @Il1l1IIlII111lI1llllII11I1I11l1, @lIlllIIIll1l1I1Ill11IIl1l1IIIll, @Ill1IlIIIl1l1lI1IIlllIl1l1lIl1I, @llIll11lIIII1I111II1lIlIlIIlIlI, @IlIlI1lIlIlllIIIIIIIlllIlllIlIl, @II1I11IIllII1lllIIl1Il1IlI11l1I, @lI1lIllII1lIIIIII1llIIlllIlII11, @lII1lIII1lIll11lI1IIIl1lIlI11lI);
sub II1II1II1111lll111lIll1I1ll1lI1 {
my $lIIlIIllIlll1II1I111IIlIl111II1 = shift @_;
my $i;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = -1;
foreach $i (0 .. $#l11IIIll11I11lllIlIIl1I1I1111I1) {
if ($l11IIIll11I11lllIlIIl1I1I1111I1[$i][1] eq $lIIlIIllIlll1II1I111IIlIl111II1) {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $i;
last;
}
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub I11lllII1lll111II1IllIIl1II1llI {
my $x = shift @_;
if (not defined $x) {
$x = '';
}
else {
$x =~ s/^\s+//;
$x =~ s/\s+$//;
}
return $x;
}
sub lllIllI1II1IIl1lIllIIIIlI1ll1II {
my $x = shift @_;
if (defined $x) {
$x =~ s/^\s+//;
}
return $x;
}
sub I11lIlIIlll1II111ll111111l11llI {
my $x = shift @_;
if (defined $x) {
$x =~ s/\s+$//;
}
return $x;
}
sub l11l1I1Ill1Il11llIlIlIlllll1l1l {
my $x = shift @_;
if (defined $x) {
$x =~ s/\s+/ /g;
}
return $x;
}
sub llIlIllIlll11llIll11l11lIlIll1l {
my $x = shift @_;
my @llII1l1l1l1II1l11lII1I1I1I1IIIl;
if (defined $x) {
@llII1l1l1l1II1l11lII1I1I1I1IIIl = split(/#/, $x, 0);
$x = $llII1l1l1l1II1l11lII1I1I1I1IIIl[0];
}
if (not defined $x) {
$x = '';
}
return $x;
}
sub lIl11II1Il1l1l1Il1lI11l1l1I1l1l {
my $lIl11I1IIl111I1II11lIIllI1II1ll = shift @_;
$lIl11I1IIl111I1II11lIIllI1II1ll = uc $lIl11I1IIl111I1II11lIIllI1II1ll;
return $lIl11I1IIl111I1II11lIIllI1II1ll;
}
sub II111lIlIlIIlIll1IllII1lIlI1lIl {
my $lIl11I1IIl111I1II11lIIllI1II1ll = shift @_;
$lIl11I1IIl111I1II11lIIllI1II1ll = lc $lIl11I1IIl111I1II11lIIllI1II1ll;
return $lIl11I1IIl111I1II11lIIllI1II1ll;
}
sub ll1lIIII11IIIlII1ll1llII111l1Il {
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_;
my $i;
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l;
my $lIllIlII11IllI1Il11lIl1ll1II1I1;
$l1l1lII111IIlllII11IIIl1IIllI1I = I11lllII1lll111II1IllIIl1II1llI($l1l1lII111IIlllII11IIIl1IIllI1I);
@lll11lI1lll1l1lllIIIlI1l1IlIl1l = split(/\./, $l1l1lII111IIlllII11IIIl1IIllI1I, 0);
if ($#lll11lI1lll1l1lllIIIlI1l1IlIl1l != 3) {
return 0;
}
foreach $i (0 .. $#lll11lI1lll1l1lllIIIlI1l1IlIl1l) {
if ($lll11lI1lll1l1lllIIIlI1l1IlIl1l[$i] =~ /^-?\d+$/) {
$lIllIlII11IllI1Il11lIl1ll1II1I1 = int $lll11lI1lll1l1lllIIIlI1l1IlIl1l[$i];
if ($lIllIlII11IllI1Il11lIl1ll1II1I1 < 0 or $lIllIlII11IllI1Il11lIl1ll1II1I1 >= 256) {
return 0;
}
}
else {
return 0;
}
}
return 1;
}
sub l1IIl1111IlIIII1l1Illl111III11I {
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_;
$l1l1lII111IIlllII11IIIl1IIllI1I = I11lllII1lll111II1IllIIl1II1llI($l1l1lII111IIlllII11IIIl1IIllI1I);
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l;
my $i;
my $lIllIlII11IllI1Il11lIl1ll1II1I1;
my $l1lll11lII1l1l111l11IlllII111ll = '';
@lll11lI1lll1l1lllIIIlI1l1IlIl1l = split(/\./, $l1l1lII111IIlllII11IIIl1IIllI1I, 0);
foreach $i (0 .. $#lll11lI1lll1l1lllIIIlI1l1IlIl1l) {
$lIllIlII11IllI1Il11lIl1ll1II1I1 = int $lll11lI1lll1l1lllIIIlI1l1IlIl1l[$i];
$l1lll11lII1l1l111l11IlllII111ll .= sprintf('%02x', $lIllIlII11IllI1Il11lIl1ll1II1I1);
if ($i < $#lll11lI1lll1l1lllIIIlI1l1IlIl1l) {
$l1lll11lII1l1l111l11IlllII111ll .= ' ';
}
}
return $l1lll11lII1l1l111l11IlllII111ll;
}
sub Illl11II1l1l111I11lI111l11I11II {
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_;
$l1l1lII111IIlllII11IIIl1IIllI1I = I11lllII1lll111II1IllIIl1II1llI($l1l1lII111IIlllII11IIIl1IIllI1I);
my $lIllIlII11IllI1Il11lIl1ll1II1I1;
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l;
my $i;
my $l1lll11lII1l1l111l11IlllII111ll = '';
@lll11lI1lll1l1lllIIIlI1l1IlIl1l = split(/\s+/, $l1l1lII111IIlllII11IIIl1IIllI1I, 0);
foreach $i (0 .. $#lll11lI1lll1l1lllIIIlI1l1IlIl1l) {
$lIllIlII11IllI1Il11lIl1ll1II1I1 = hex I11lllII1lll111II1IllIIl1II1llI($lll11lI1lll1l1lllIIIlI1l1IlIl1l[$i]);
$l1lll11lII1l1l111l11IlllII111ll .= sprintf('%d', $lIllIlII11IllI1Il11lIl1ll1II1I1);
if ($i < $#lll11lI1lll1l1lllIIIlI1l1IlIl1l) {
$l1lll11lII1l1l111l11IlllII111ll .= '.';
}
}
return $l1lll11lII1l1l111l11IlllII111ll;
}
sub IlIll11llI11ll1llIIIlll1l1IlII1 {
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_;
my $lll1l1l1Il1IIIllll1Il1ll1I11III = '';
my @l1llII111IIl1lI11IIlllII1I1lI11;
my $i;
@l1llII111IIl1lI11IIlllII1I1lI11 = split(/ +/, $l1l1lII111IIlllII11IIIl1IIllI1I, 0);
for ($i = 0; $i <= $#l1llII111IIl1lI11IIlllII1I1lI11; ++$i) {
$lll1l1l1Il1IIIllll1Il1ll1I11III .= '0x' . $l1llII111IIl1lI11IIlllII1I1lI11[$i];
if ($i < $#l1llII111IIl1lI11IIlllII1I1lI11) {
$lll1l1l1Il1IIIllll1Il1ll1I11III .= ' ';
}
}
return $lll1l1l1Il1IIIllll1Il1ll1I11III;
}
sub ll1lIIIlIIl1l1llIlIllIl11lllIII {
my $ll11lIlIl1IlI1l1I1I1ll11I1lI11I = shift @_;
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_;
my $ll1I111lllIlI1III11lIllI1IlII11 = shift @_ || ' ';
my $IIll11I1Il1IIlIlII1I1l1lIIIIIll;
my $i;
$IIll11I1Il1IIlIlII1I1l1lIIIIIll = length $l1l1lII111IIlllII11IIIl1IIllI1I;
for ($i = 0; $i < $ll11lIlIl1IlI1l1I1I1ll11I1lI11I - $IIll11I1Il1IIlIlII1I1l1lIIIIIll; ++$i) {
$l1l1lII111IIlllII11IIIl1IIllI1I .= $ll1I111lllIlI1III11lIllI1IlII11;
}
return $l1l1lII111IIlllII11IIIl1IIllI1I;
}
sub I1IIlI1IIIIllllI1IlIl1I1llIll11 {
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_;
if (ll1ll1lIIIII11llI1IlII111lIll1l $l1l1lII111IIlllII11IIIl1IIllI1I) {
return $l1l1lII111IIlllII11IIIl1IIllI1I;
}
if ($l1l1lII111IIlllII11IIIl1IIllI1I) {
return 'yes';
}
else {
return 'no';
}
}
sub I1lll1l1lIlI1lIlI1Il1111l1l111I {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = '';
my $ll1I111lllIlI1III11lIllI1IlII11 = '';
my $i = '';
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_;
for ($i = 0; $i < length $l1l1lII111IIlllII11IIIl1IIllI1I; ++$i) {
$ll1I111lllIlI1III11lIllI1IlII11 = substr($l1l1lII111IIlllII11IIIl1IIllI1I, $i, 1);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII .= sprintf(' 0x%02x', ord $ll1I111lllIlI1III11lIllI1IlII11);
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub IIIIllI11I1I1l1IlIII1l1IlII1111 {
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l;
my $i;
my $lII1IIIllII1ll11IIllI1II1I1l1l1 = '';
my($IllII1l1IIIl11IIllIl1llllI1IIIl, $lll1lI111IIll1I1l11I1IIlllll1II, $I11I11II1l1l1lllI1II11lI111llIl) = @_;
@lll11lI1lll1l1lllIIIlI1l1IlIl1l = split(/\n/, $I11I11II1l1l1lllI1II11lI111llIl, 0);
foreach $i (0 .. $#lll11lI1lll1l1lllIIIlI1l1IlIl1l) {
if ($IllII1l1IIIl11IIllIl1llllI1IIIl eq '') {
if ($lll11lI1lll1l1lllIIIlI1l1IlIl1l[$i] =~ /$lll1lI111IIll1I1l11I1IIlllll1II/) {
$lII1IIIllII1ll11IIllI1II1I1l1l1 .= $lll11lI1lll1l1lllIIIlI1l1IlIl1l[$i] . "\n";
}
}
if ($IllII1l1IIIl11IIllIl1llllI1IIIl eq 'i') {
if ($lll11lI1lll1l1lllIIIlI1l1IlIl1l[$i] =~ /$lll1lI111IIll1I1l11I1IIlllll1II/i) {
$lII1IIIllII1ll11IIllI1II1I1l1l1 .= $lll11lI1lll1l1lllIIIlI1l1IlIl1l[$i] . "\n";
}
}
if ($IllII1l1IIIl11IIllIl1llllI1IIIl eq 'v') {
if (not $lll11lI1lll1l1lllIIIlI1l1IlIl1l[$i] =~ /$lll1lI111IIll1I1l11I1IIlllll1II/i) {
$lII1IIIllII1ll11IIllI1II1I1l1l1 .= $lll11lI1lll1l1lllIIIlI1l1IlIl1l[$i] . "\n";
}
}
}
return $lII1IIIllII1ll11IIllI1II1I1l1l1;
}
sub Il1I1I11l1I1Il111II11Il11lIIIl1 {
my($lIl1llIlIII1lIIllIll1llII1IllII, $lII1IllIIll11IllI11IllI11IIIlll, $I11I11II1l1l1lllI1II11lI111llIl) = @_;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l;
@lll11lI1lll1l1lllIIIlI1l1IlIl1l = split(/$lIl1llIlIII1lIIllIll1llII1IllII/, $I11I11II1l1l1lllI1II11lI111llIl, 0);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $lll11lI1lll1l1lllIIIlI1l1IlIl1l[$lII1IllIIll11IllI11IllI11IIIlll - 1];
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub I1IlllllI1IlIlI1lIIl1III111111I {
my $lIl1llIlIII1lIIllIll1llII1IllII = shift @_;
my $I11I11II1l1l1lllI1II11lI111llIl = shift @_;
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l;
my $Il1ll111I11IIl1llIl1llIlIlIIIl1;
my $I1ll1I1I1lIlI1I1l1Ill1I111lllII;
@lll11lI1lll1l1lllIIIlI1l1IlIl1l = split(/$lIl1llIlIII1lIIllIll1llII1IllII/, $I11I11II1l1l1lllI1II11lI111llIl, 0);
$Il1ll111I11IIl1llIl1llIlIlIIIl1 = I11lllII1lll111II1IllIIl1II1llI($lll11lI1lll1l1lllIIIlI1l1IlIl1l[0]);
$I1ll1I1I1lIlI1I1l1Ill1I111lllII = I11lllII1lll111II1IllIIl1II1llI($lll11lI1lll1l1lllIIIlI1l1IlIl1l[1]);
return $Il1ll111I11IIl1llIl1llIlIlIIIl1, $I1ll1I1I1lIlI1I1l1Ill1I111lllII;
}
sub ll11ll111I1IIIIll1ll1l1IlIIIl1l {
my $I1IIll1l1I1IIIIlIlllI1l1Il1IIII = shift @_;
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_;
my(@llII1l1l1l1II1l11lII1I1I1I1IIIl) = split(/$I1IIll1l1I1IIIIlIlllI1l1Il1IIII/, $l1l1lII111IIlllII11IIIl1IIllI1I, 0);
return $llII1l1l1l1II1l11lII1I1I1I1IIIl[0];
}
sub l1lI11I1llllI1IIII111IllI1l11Il {
my $I1IIll1l1I1IIIIlIlllI1l1Il1IIII = shift @_;
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_;
my(@llII1l1l1l1II1l11lII1I1I1I1IIIl) = split(/$I1IIll1l1I1IIIIlIlllI1l1Il1IIII/, $l1l1lII111IIlllII11IIIl1IIllI1I, 0);
shift @llII1l1l1l1II1l11lII1I1I1I1IIIl;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = join($I1IIll1l1I1IIIIlIlllI1l1Il1IIII, @llII1l1l1l1II1l11lII1I1I1I1IIIl);
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub ll1IllIIlIll111lIl11IlllIllII1l {
my $I1IIll1l1I1IIIIlIlllI1l1Il1IIII = shift @_;
my $l1l1l1llI11l1lIIll1II1l1II1lI1I = shift @_;
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_;
my(@llII1l1l1l1II1l11lII1I1I1I1IIIl) = split(/$I1IIll1l1I1IIIIlIlllI1l1Il1IIII/, $l1l1lII111IIlllII11IIIl1IIllI1I, 0);
shift @llII1l1l1l1II1l11lII1I1I1I1IIIl;
my $lIl11I1IIl111I1II11lIIllI1II1ll = $llII1l1l1l1II1l11lII1I1I1I1IIIl[0];
my(@I1lIIII1IlIl1II11I1IIll11II1l11) = split(/$l1l1l1llI11l1lIIll1II1l1II1lI1I/, $lIl11I1IIl111I1II11lIIllI1II1ll, 0);
$lIl11I1IIl111I1II11lIIllI1II1ll = $I1lIIII1IlIl1II11I1IIll11II1l11[0];
return $lIl11I1IIl111I1II11lIIllI1II1ll;
}
sub I1I1lIIII1lIll1l11I11lll1Il1II1 {
my $I1lIIll1lIlI1lI1lIIIl111lIl11ll = shift @_;
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_;
$I1lIIll1lIlI1lI1lIIIl111lIl11ll = $I1lIIll1lIlI1lI1lIIIl111lIl11ll - 1;
my(@llII1l1l1l1II1l11lII1I1I1I1IIIl) = split(/\n/, $l1l1lII111IIlllII11IIIl1IIllI1I, 0);
return $llII1l1l1l1II1l11lII1I1I1I1IIIl[$I1lIIll1lIlI1lI1lIIIl111lIl11ll];
}
sub I1IIl1lIIIIIlI1I1IIIlI1IlIlIII1 {
my $I1llI1Il11I11Illll11l1lIl1l1lI1 = shift @_;
my $I1l11lIII1lI1IIIl11I1l1I1lI1Ill = shift @_;
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_;
$I1llI1Il11I11Illll11l1lIl1l1lI1 -= 1;
if ($I1l11lIII1lI1IIIl11I1l1I1lI1Ill > 0) {
$I1l11lIII1lI1IIIl11I1l1I1lI1Ill -= 1;
}
my(@llII1l1l1l1II1l11lII1I1I1I1IIIl) = split(/\n/, $l1l1lII111IIlllII11IIIl1IIllI1I, 0);
my $lI1ll1Il11ll1IlIl11III1l1lI1lll = $#llII1l1l1l1II1l11lII1I1I1I1IIIl;
if ($I1l11lIII1lI1IIIl11I1l1I1lI1Ill <= 0) {
$I1l11lIII1lI1IIIl11I1l1I1lI1Ill += $lI1ll1Il11ll1IlIl11III1l1lI1lll;
}
if ($I1l11lIII1lI1IIIl11I1l1I1lI1Ill > $lI1ll1Il11ll1IlIl11III1l1lI1lll) {
$I1l11lIII1lI1IIIl11I1l1I1lI1Ill = $lI1ll1Il11ll1IlIl11III1l1lI1lll;
}
my(@I1lIIII1IlIl1II11I1IIll11II1l11) = @llII1l1l1l1II1l11lII1I1I1I1IIIl[$I1llI1Il11I11Illll11l1lIl1l1lI1 .. $I1l11lIII1lI1IIIl11I1l1I1lI1Ill];
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = join("\n", @I1lIIII1IlIl1II11I1IIll11II1l11);
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub IIl11IIlI1Illl1111III11lIIIIII1 {
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_;
my $lIllllIlI1lI1I11IlIIllI11I1lI1I = shift @_;
my $l1I11ll1lllllI1III11Il111I1llIl = shift @_;
my $lIl11I1IIl111I1II11lIIllI1II1ll = '';
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
if (not defined $l1I11ll1lllllI1III11Il111I1llIl) {
$l1I11ll1lllllI1III11Il111I1llIl = $lIllllIlI1lI1I11IlIIllI11I1lI1I;
}
$l1l1lII111IIlllII11IIIl1IIllI1I = I11lllII1lll111II1IllIIl1II1llI($l1l1lII111IIlllII11IIIl1IIllI1I);
$l1l1lII111IIlllII11IIIl1IIllI1I =~ s/\n//;
my(@lll11lI1lll1l1lllIIIlI1l1IlIl1l) = split(' ', $l1l1lII111IIlllII11IIIl1IIllI1I, 0);
for (my $i = $l1I11ll1lllllI1III11Il111I1llIl; $i >= $lIllllIlI1lI1I11IlIIllI11I1lI1I; --$i) {
$lIl11I1IIl111I1II11lIIllI1II1ll .= $lll11lI1lll1l1lllIIIlI1l1IlIl1l[$i];
}
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = hex $lIl11I1IIl111I1II11lIIllI1II1ll;
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub I1I1IIlll111ll11111lII1IIlIllIl {
my $l1lII111II1llllIIlIIllI1I1IIlll = shift @_;
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_;
my $lIl1llIlIII1lIIllIll1llII1IllII = shift @_ || ':';
my $lIl11I1IIl111I1II11lIIllI1II1ll = IIIIllI11I1I1l1IlIII1l1IlII1111('', $l1lII111II1llllIIlIIllI1I1IIlll, $l1l1lII111IIlllII11IIIl1IIllI1I);
my(@llII1l1l1l1II1l11lII1I1I1I1IIIl) = split(/$lIl1llIlIII1lIIllIll1llII1IllII/, $lIl11I1IIl111I1II11lIIllI1II1ll, 0);
return I11lllII1lll111II1IllIIl1II1llI($llII1l1l1l1II1l11lII1I1I1I1IIIl[1]);
}
sub II1IlI11IIllI1l1lIlII11I11Illl1 {
my $I11I11II1l1l1lllI1II11lI111llIl = shift @_;
my $IlII1l111l1Il11IIl11l1lllll1lI1 = shift @_;
my $IIIIlI1lII1l1l11IlIII1lI1I1lll1 = shift @_;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = '';
my $II111lI1l1lllIl11I1lIII11111l1l;
$II111lI1l1lllIl11I1lIII11111l1l = index($I11I11II1l1l1lllI1II11lI111llIl, $IlII1l111l1Il11IIl11l1lllll1lI1);
if ($II111lI1l1lllIl11I1lIII11111l1l < 0) {
return $I11I11II1l1l1lllI1II11lI111llIl;
}
my $I1111l1lIl1l1ll111l1ll1l1ll1IlI;
my $l1IllI1I11I11ll1Il1l11I1lllIIll;
$I1111l1lIl1l1ll111l1ll1l1ll1IlI = substr($I11I11II1l1l1lllI1II11lI111llIl, 0, $II111lI1l1lllIl11I1lIII11111l1l);
$l1IllI1I11I11ll1Il1l11I1lllIIll = substr($I11I11II1l1l1lllI1II11lI111llIl, $II111lI1l1lllIl11I1lIII11111l1l + length($IlII1l111l1Il11IIl11l1lllll1lI1));
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $I1111l1lIl1l1ll111l1ll1l1ll1IlI . $IIIIlI1lII1l1l11IlIII1lI1I1lll1 . $l1IllI1I11I11ll1Il1l11I1lllIIll;
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub Illll11IIl1l1lIIIII1111IlIIllll {
my $I11I11II1l1l1lllI1II11lI111llIl = shift @_;
my $IlII1l111l1Il11IIl11l1lllll1lI1 = shift @_;
my $IIIIlI1lII1l1l11IlIII1lI1I1lll1 = shift @_;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = '';
my $II111lI1l1lllIl11I1lIII11111l1l = 0;
my $lI1IlIl11I1l1llIl11l1lI11I111ll;
$lI1IlIl11I1l1llIl11l1lI11I111ll = length($IIIIlI1lII1l1l11IlIII1lI1I1lll1) - length($IlII1l111l1Il11IIl11l1lllll1lI1);
while (1) {
$II111lI1l1lllIl11I1lIII11111l1l = index($I11I11II1l1l1lllI1II11lI111llIl, $IlII1l111l1Il11IIl11l1lllll1lI1, $II111lI1l1lllIl11I1lIII11111l1l);
if ($II111lI1l1lllIl11I1lIII11111l1l < 0) {
return $I11I11II1l1l1lllI1II11lI111llIl;
}
my $I1111l1lIl1l1ll111l1ll1l1ll1IlI;
my $l1IllI1I11I11ll1Il1l11I1lllIIll;
$I1111l1lIl1l1ll111l1ll1l1ll1IlI = substr($I11I11II1l1l1lllI1II11lI111llIl, 0, $II111lI1l1lllIl11I1lIII11111l1l);
$l1IllI1I11I11ll1Il1l11I1lllIIll = substr($I11I11II1l1l1lllI1II11lI111llIl, $II111lI1l1lllIl11I1lIII11111l1l + length($IlII1l111l1Il11IIl11l1lllll1lI1));
$I11I11II1l1l1lllI1II11lI111llIl = $I1111l1lIl1l1ll111l1ll1l1ll1IlI . $IIIIlI1lII1l1l11IlIII1lI1I1lll1 . $l1IllI1I11I11ll1Il1l11I1lllIIll;
$II111lI1l1lllIl11I1lIII11111l1l += $lI1IlIl11I1l1llIl11l1lI11I111ll;
}
}
sub IllIlllIIIlII11I1111ll111lIllll {
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_;
if ($l1l1lII111IIlllII11IIIl1IIllI1I) {
return 'yes';
}
else {
return 'no';
}
}
sub l1ll11II1111I111l11ll11l11l1l11 {
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_ || '';
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
my $lIl11I1IIl111I1II11lIIllI1II1ll;
$lIl11I1IIl111I1II11lIIllI1II1ll = I11lllII1lll111II1IllIIl1II1llI($l1l1lII111IIlllII11IIIl1IIllI1I);
$lIl11I1IIl111I1II11lIIllI1II1ll = II111lIlIlIIlIll1IllII1lIlI1lIl($lIl11I1IIl111I1II11lIIllI1II1ll);
if ($lIl11I1IIl111I1II11lIIllI1II1ll eq 'yes' or $lIl11I1IIl111I1II11lIIllI1II1ll eq 'y') {
return 1;
}
if ($lIl11I1IIl111I1II11lIIllI1II1ll eq 'no' or $lIl11I1IIl111I1II11lIIllI1II1ll eq 'n') {
return 0;
}
if ($lIl11I1IIl111I1II11lIIllI1II1ll eq 'true' or $lIl11I1IIl111I1II11lIIllI1II1ll eq 't') {
return 1;
}
if ($lIl11I1IIl111I1II11lIIllI1II1ll eq 'false' or $lIl11I1IIl111I1II11lIIllI1II1ll eq 'f') {
return 0;
}
printf "I don't know how to interpret this as boolean: %s\n", $l1l1lII111IIlllII11IIIl1IIllI1I;
printf "Halting.\n\n";
exit 1;
}
sub Il1IIllII11I11I1I1lIIlI11I1l1I1 {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = `date +"%s"`;
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub lI11lII1111l1111I11I1lllIIll1ll {
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = `date +%s -d"$l1l1lII111IIlllII11IIIl1IIllI1I"`;
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub lI11III11l1lllIlIl1l1I11Il11III {
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_;
my $lIl1llIlIII1lIIllIll1llII1IllII = shift @_ || '/';
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
my(@lll11lI1lll1l1lllIIIlI1l1IlIl1l) = split(/$lIl1llIlIII1lIIllIll1llII1IllII/, $l1l1lII111IIlllII11IIIl1IIllI1I, 0);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $lll11lI1lll1l1lllIIIlI1l1IlIl1l[2] . $lIl1llIlIII1lIIllIll1llII1IllII . $lll11lI1lll1l1lllIIIlI1l1IlIl1l[0] . $lIl1llIlIII1lIIllIll1llII1IllII . $lll11lI1lll1l1lllIIIlI1l1IlIl1l[1];
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub l1I1I1lIllIIIllIl1Il1Ill11lI1l1 {
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_;
my $lIl1llIlIII1lIIllIll1llII1IllII = shift @_ || '/';
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
my(@lll11lI1lll1l1lllIIIlI1l1IlIl1l) = split(/$lIl1llIlIII1lIIllIll1llII1IllII/, $l1l1lII111IIlllII11IIIl1IIllI1I, 0);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $lll11lI1lll1l1lllIIIlI1l1IlIl1l[1] . $lIl1llIlIII1lIIllIll1llII1IllII . $lll11lI1lll1l1lllIIIlI1l1IlIl1l[2] . $lIl1llIlIII1lIIllIll1llII1IllII . $lll11lI1lll1l1lllIIIlI1l1IlIl1l[0];
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub Ill1lI11Ill1IlI1I1lIlIlIIl11Il1 {
my $lI1I1lllI1IlIIIl1II1I1I11111I1l = shift @_;
my $Il111IlIlII1lll111IlIlIl111I1lI = 'date -d @' . $lI1I1lllI1IlIIIl1II1I1I11111I1l . ' +"%Y-%m-%d %T"';
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = `$Il111IlIlII1lll111IlIlIl111I1lI`;
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub ll1IlIll1I1IIllllII1llIllI11I11 {
my $IlIIll1IllII1Illl111lIll111llI1 = shift @_;
my $lI11ll1lIIl1IlIl111IIIl1l1l1ll1 = 0;
my $Il1IlII1I1Il1l11I1l1111l11l1lll = 0;
my $II11ll111l1lIllIIIlI1lIl1lll11I = 0;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = '';
if ($IlIIll1IllII1Illl111lIll111llI1 > 86400) {
$lI11ll1lIIl1IlIl111IIIl1l1l1ll1 = floor($IlIIll1IllII1Illl111lIll111llI1 / 86400);
$IlIIll1IllII1Illl111lIll111llI1 -= $lI11ll1lIIl1IlIl111IIIl1l1l1ll1 * 86400;
}
if ($IlIIll1IllII1Illl111lIll111llI1 > 3600) {
$Il1IlII1I1Il1l11I1l1111l11l1lll = floor($IlIIll1IllII1Illl111lIll111llI1 / 3600);
$IlIIll1IllII1Illl111lIll111llI1 -= $Il1IlII1I1Il1l11I1l1111l11l1lll * 3600;
}
if ($IlIIll1IllII1Illl111lIll111llI1 > 60) {
$II11ll111l1lIllIIIlI1lIl1lll11I = floor($IlIIll1IllII1Illl111lIll111llI1 / 60);
$IlIIll1IllII1Illl111lIll111llI1 -= $II11ll111l1lIllIIIlI1lIl1lll11I * 60;
}
if ($lI11ll1lIIl1IlIl111IIIl1l1l1ll1 > 0) {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII .= $lI11ll1lIIl1IlIl111IIIl1l1l1ll1 . 'd ';
}
$IIl1IlIIllII1I1lIlIIIIlIIII1lII .= sprintf('%02d%s%02d%s%02d', $Il1IlII1I1Il1l11I1l1111l11l1lll, ':', $II11ll111l1lIllIIIlI1lIl1lll11I, ':', $IlIIll1IllII1Illl111lIll111llI1);
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
my $llIllIl1lI1l1lIII1l1lI1II11ll1l = '';
my $I1I1IlIII11Ill1Il1ll1Illll11III = '';
my $II1Ill11111lllIl11llI1lIlI111Il = '1';
my $Ill11I1I11IllI1lII11IIlI1IIlIl1 = $IIlllI1IIIl1lIlIl1I1llI1Illl1I1;
my $lII1II1IlIlllll1l1l11ll1I111lll = 'unknown';
my $lIIllIlll11IIIIIllIlII1llIll11l = '';
my $IIlIllIIlll1ll1lIlIlIllIIIlIlIl = '';
my $lll1l1ll1Ill11IIIllIl1lI1lIl1Il = '';
my $III1I11I1I1ll1IlI111II11IIIIl1I = 'unknown';
my $I1l1lllI1llIl11l1lI1111IlI1I11I = $IIlllI1IIIl1lIlIl1I1llI1Illl1I1;
my $lll1111IlllIIll1IlIlIlIIllII1Il = '';
my $llIl1l1IIl11II11lIlIl1l1lllIllI = '';
my $I11III1l11ll11I1IIlIl1lIl1IIlIl = '';
my $l1IlllIl11I1IllII1l11II1ll1lI11 = '';
my $II11lIIl1l11I1I1l11IllI1Il1l1Il = '';
my $IIlIll1lIIll1II1lllI1Il1I1ll1II = 0;
my $l1lllllI11IlIlI1IlI1lI1Ill1I11l = '';
my $llI11IIlI1IIll1l1lI111IllI1l1Il = 0;
my $lIlII1IlIll1III1I11Il11ll111111 = '';
my $I11l1I1I1l11II1Il11I1l1111IllII = 0;
my $lII1lI1I1l1I1lIlI1I11IIIIlIlII1 = '';
my $l1lI1lIll11Il11l111I11Ill11I1lI = 0;
sub ll1l1IlI11I11IlIll1llIIlIIIllIl {
$IIlIll1lIIll1II1lllI1Il1I1ll1II = 0;
$llI11IIlI1IIll1l1lI111IllI1l1Il = 0;
$I11l1I1I1l11II1Il11I1l1111IllII = 0;
$l1lI1lIll11Il11l111I11Ill11I1lI = 0;
}
sub l111I11Il1lIlIII1l1IIll1IIlI1II {
return $lll1111IlllIIll1IlIlIlIIllII1Il;
}
sub IIl1lllIIlI1II1Il1I1I11lIll1lIl {
$lll1111IlllIIll1IlIlIlIIllII1Il = '';
}
sub IlI11l1II111I1I111IllIIllIll1lI {
$lll1111IlllIIll1IlIlIlIIllII1Il = shift @_;
}
sub I1llll1l11I1IlI1III111l11II111l {
my($lll1I11IlIlIIIl1lI1I1lIIIIIl1Il, $Il1II11lII1II1111IIlllIIl1Il111) = @_;
if ($lll1I11IlIlIIIl1lI1I1lIIIIIl1Il eq 'IPMITOOL') {
$llIllIl1lI1l1lIII1l1lI1II11ll1l = $Il1II11lII1II1111IIlllIIl1Il111;
}
elsif ($lll1I11IlIlIIIl1lI1I1lIIIIIl1Il eq 'IPMITOOL_FLAGS') {
$I1I1IlIII11Ill1Il1ll1Illll11III = $Il1II11lII1II1111IIlllIIl1Il111;
}
elsif ($lll1I11IlIlIIIl1lI1I1lIIIIIl1Il eq 'USEKCS') {
$II1Ill11111lllIl11llI1lIlI111Il = $Il1II11lII1II1111IIlllIIl1Il111;
}
elsif ($lll1I11IlIlIIIl1lI1I1lIIIIIl1Il eq 'PLAT') {
$lII1II1IlIlllll1l1l11ll1I111lll = $Il1II11lII1II1111IIlllIIl1Il111;
}
elsif ($lll1I11IlIlIIIl1lI1I1lIIIIIl1Il eq 'PLAT_VARIANT') {
$lIIllIlll11IIIIIllIlII1llIll11l = $Il1II11lII1II1111IIlllIIl1Il111;
}
elsif ($lll1I11IlIlIIIl1lI1I1lIIIIIl1Il eq 'PLAT_RAW') {
$IIlIllIIlll1ll1lIlIlIllIIIlIlIl = $Il1II11lII1II1111IIlllIIl1Il111;
}
elsif ($lll1I11IlIlIIIl1lI1I1lIIIIIl1Il eq 'PLAT_NAME') {
$lll1l1ll1Ill11IIIllIl1lI1lIl1Il = $Il1II11lII1II1111IIlllIIl1Il111;
}
elsif ($lll1I11IlIlIIIl1lI1I1lIIIIIl1Il eq 'PLAT_FAMILY') {
$III1I11I1I1ll1IlI111II11IIIIl1I = $Il1II11lII1II1111IIlllIIl1Il111;
}
elsif ($lll1I11IlIlIIIl1lI1I1lIIIIIl1Il eq 'VERBOSE') {
$Ill11I1I11IllI1lII11IIlI1IIlIl1 = $Il1II11lII1II1111IIlllIIl1Il111;
}
elsif ($lll1I11IlIlIIIl1lI1I1lIIIIIl1Il eq 'IPMIDEBUG') {
$I1l1lllI1llIl11l1lI1111IlI1I11I = $Il1II11lII1II1111IIlllIIl1Il111;
}
elsif ($lll1I11IlIlIIIl1lI1I1lIIIIIl1Il eq 'CURBMC') {
$llIl1l1IIl11II11lIlIl1l1lllIllI = $Il1II11lII1II1111IIlllIIl1Il111;
}
elsif ($lll1I11IlIlIIIl1lI1I1lIIIIIl1Il eq 'CURUSER') {
$I11III1l11ll11I1IIlIl1lIl1IIlIl = $Il1II11lII1II1111IIlllIIl1Il111;
}
elsif ($lll1I11IlIlIIIl1lI1I1lIIIIIl1Il eq 'CURPASS') {
$l1IlllIl11I1IllII1l11II1ll1lI11 = $Il1II11lII1II1111IIlllIIl1Il111;
}
else {
printf "Unknown variable requested to be set: $lll1I11IlIlIIIl1lI1I1lIIIIIl1Il\n";
exit 1;
}
}
sub IIll1ll11I11IlllIll11ll1II11I1I {
my $II1lII1ll1lIlI1lIlIlII11II1IIll;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
my $Il111IlIlII1lll111IlIlIl111I1lI;
if ($IIlIll1lIIll1II1lllI1Il1I1ll1II) {
return $II11lIIl1l11I1I1l11IllI1Il1l1Il;
}
else {
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('fru', 'noerr');
$IIlIll1lIIll1II1lllI1Il1I1ll1II = 1;
$II11lIIl1l11I1I1l11IllI1Il1l1Il = $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
}
sub lIll1Il1IIlII11Ill11l11llI11I11 {
my $II1lII1ll1lIlI1lIlIlII11II1IIll;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
if ($I11l1I1I1l11II1Il11I1l1111IllII) {
return $lIlII1IlIll1III1I11Il11ll111111;
}
else {
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('lan print 1', '');
$I11l1I1I1l11II1Il11I1l1111IllII = 1;
$lIlII1IlIll1III1I11Il11ll111111 = $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
}
sub ll11111lII111IIIll1IIIlllll1IIl {
my $II1lII1ll1lIlI1lIlIlII11II1IIll;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
my $i;
if ($l1lI1lIll11Il11l111I11Ill11I1lI) {
return $lII1lI1I1l1I1lIlI1I11IIIIlIlII1;
}
else {
IlI11l1II111I1I111IllIIllIll1lI 'SCBMC_get_sensor_info';
for ($i = 0; $i < 3; ++$i) {
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x30 0x16', 'noerr');
if ($II1lII1ll1lIlI1lIlIlII11II1IIll == 0) {
$l1lI1lIll11Il11l111I11Ill11I1lI = 1;
$lII1lI1I1l1I1lIlI1I11IIIIlIlII1 = $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sleep 2;
}
$l1lI1lIll11Il11l111I11Ill11I1lI = 1;
$lII1lI1I1l1I1lIlI1I11IIIIlIlII1 = l111I11lIllllI1l1IlIIlIIl1l1l1I();
return l111I11lIllllI1l1IlIIlIIl1l1l1I();
}
}
sub llIII1IIIlII1111111IIl1111IIlI1 {
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my $I11l1IIIIl1lll1I1I1IlI1ll1l1IIl;
my $Il1llIl1Il11ll1IllIIlII1I1llIIl;
my $lll1I1IIlI1lllIIl1lI11lII1lIIlI;
my $ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'unknown';
my $I1IlIll11IIlI11IIIlllI1Il111llI = '';
my $II1l1l1IlII1II1ll111lIIlIllIl1I = '';
my $I111I1IlI111Il1II11ll111l1l1lIl = 'unknown';
my $IllIII11lI1I1I1lII1l1IIll11lI11 = 'unknown';
my $Il111IlIlII1lll111IlIlIl111I1lI;
my $II1lII1ll1lIlI1lIlIlII11II1IIll;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l;
my @lIl1Il1I11lIlllIIIlI1III111I11I;
my $i;
my $lll11Ill1l11l1l1ll1lI1I11l1111I = IIll1ll11I11IlllIll11ll1II11I1I();
$I11l1IIIIl1lll1I1I1IlI1ll1l1IIl = uc I1I1IIlll111ll11111lII1IIlIllIl('Board Product', $lll11Ill1l11l1l1ll1lI1I11l1111I);
$Il1llIl1Il11ll1IllIIlII1I1llIIl = uc I1I1IIlll111ll11111lII1IIlIllIl('Product Name', $lll11Ill1l11l1l1ll1lI1I11l1111I);
$lll1I1IIlI1lllIIl1lI11lII1lIIlI = uc I1I1IIlll111ll11111lII1IIlIllIl('Board Mfg', $lll11Ill1l11l1l1ll1lI1I11l1111I);
if (index($Il1llIl1Il11ll1IllIIlII1I1llIIl, 'C1100') >= 0) {
$I111I1IlI111Il1II11ll111l1l1lIl = $ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C1100';
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'PEC';
}
elsif (index($Il1llIl1Il11ll1IllIIlII1I1llIIl, 'C2100') >= 0) {
$I111I1IlI111Il1II11ll111l1l1lIl = $ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C2100';
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'PEC';
}
elsif (index($Il1llIl1Il11ll1IllIIlII1I1llIIl, 'C6100') >= 0) {
$I111I1IlI111Il1II11ll111l1l1lIl = $ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C6100';
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'PEC';
}
elsif (index($Il1llIl1Il11ll1IllIIlII1I1llIIl, 'C6105') >= 0) {
$I111I1IlI111Il1II11ll111l1l1lIl = $ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C6105';
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'PEC';
}
elsif (index($Il1llIl1Il11ll1IllIIlII1I1llIIl, 'C6145') >= 0) {
$I111I1IlI111Il1II11ll111l1l1lIl = $ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C6145';
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'PEC';
}
elsif (index($Il1llIl1Il11ll1IllIIlII1I1llIIl, '5125') >= 0) {
$I111I1IlI111Il1II11ll111l1l1lIl = $ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C5125';
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'PEC';
}
elsif (index($Il1llIl1Il11ll1IllIIlII1I1llIIl, 'C5125') >= 0) {
$I111I1IlI111Il1II11ll111l1l1lIl = $ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C5125';
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'PEC';
}
elsif (index($Il1llIl1Il11ll1IllIIlII1I1llIIl, 'C5220') >= 0) {
$I111I1IlI111Il1II11ll111l1l1lIl = $ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C5220';
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'PEC';
}
elsif (index($Il1llIl1Il11ll1IllIIlII1I1llIIl, 'C6220') >= 0) {
$I111I1IlI111Il1II11ll111l1l1lIl = $ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C6220';
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'PEC';
}
elsif (index($Il1llIl1Il11ll1IllIIlII1I1llIIl, 'C8220') >= 0) {
$I111I1IlI111Il1II11ll111l1l1lIl = 'C8220';
$ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C6220';
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'PEC';
}
elsif (index($Il1llIl1Il11ll1IllIIlII1I1llIIl, 'C410X') >= 0) {
$I111I1IlI111Il1II11ll111l1l1lIl = $ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C410X';
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'PEC';
}
elsif (index($Il1llIl1Il11ll1IllIIlII1I1llIIl, 'TITANIUM') >= 0) {
$I111I1IlI111Il1II11ll111l1l1lIl = $ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C410X';
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'PEC';
}
if ($ll11I1lI1lIl1I1Il111Ill1lI1l1l1 ne 'unknown') {
goto done;
}
if (index($Il1llIl1Il11ll1IllIIlII1I1llIIl, 'CS24-TY') >= 0) {
$I111I1IlI111Il1II11ll111l1l1lIl = 'CS24-TY';
$II1l1l1IlII1II1ll111lIIlIllIl1I = '';
$ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C1100';
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'DCS';
goto done;
}
if (index($Il1llIl1Il11ll1IllIIlII1I1llIIl, 'FS12-TY') >= 0) {
$I111I1IlI111Il1II11ll111l1l1lIl = 'FS12-TY';
$II1l1l1IlII1II1ll111lIIlIllIl1I = '';
$ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C2100';
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'DCS';
goto done;
}
if (index($Il1llIl1Il11ll1IllIIlII1I1llIIl, 'XS23-TY') >= 0) {
$I111I1IlI111Il1II11ll111l1l1lIl = 'XS23-TY';
$II1l1l1IlII1II1ll111lIIlIllIl1I = '';
$ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C6100';
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'DCS';
goto done;
}
if (index($Il1llIl1Il11ll1IllIIlII1I1llIIl, 'RADON') >= 0) {
$I111I1IlI111Il1II11ll111l1l1lIl = 'RADON';
$II1l1l1IlII1II1ll111lIIlIllIl1I = '';
$ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C6220';
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'DCS';
goto done;
}
if (index($I11l1IIIIl1lll1I1I1IlI1ll1l1IIl, 'RADON') >= 0) {
$I111I1IlI111Il1II11ll111l1l1lIl = 'RADON';
$II1l1l1IlII1II1ll111lIIlIllIl1I = '';
$ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C6220';
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'DCS';
goto done;
}
if (index($I11l1IIIIl1lll1I1I1IlI1ll1l1IIl, 'C6220') >= 0) {
$I111I1IlI111Il1II11ll111l1l1lIl = 'RADON';
$II1l1l1IlII1II1ll111lIIlIllIl1I = '';
$ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C6220';
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'DCS';
goto done;
}
if (index($I11l1IIIIl1lll1I1I1IlI1ll1l1IIl, 'C8220') >= 0) {
$I111I1IlI111Il1II11ll111l1l1lIl = 'RADON';
$II1l1l1IlII1II1ll111lIIlIllIl1I = '';
$ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C6220';
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'DCS';
goto done;
}
if ($lll1I1IIlI1lllIIl1lI11lII1lIIlI =~ /dell/i) {
if ($I11l1IIIIl1lll1I1I1IlI1ll1l1IIl =~ /5442/) {
$ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C6100';
$I111I1IlI111Il1II11ll111l1l1lIl = 'plutonium';
$II1l1l1IlII1II1ll111lIIlIllIl1I = '';
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'DCS';
$I1IlIll11IIlI11IIIlllI1Il111llI = $I11l1IIIIl1lll1I1I1IlI1ll1l1IIl;
goto done;
}
if ($I11l1IIIIl1lll1I1I1IlI1ll1l1IIl =~ /S81V/i) {
$ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C5125';
$I111I1IlI111Il1II11ll111l1l1lIl = 'quark';
$II1l1l1IlII1II1ll111lIIlIllIl1I = '';
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'DCS';
$I1IlIll11IIlI11IIIlllI1Il111llI = $I11l1IIIIl1lll1I1I1IlI1ll1l1IIl;
goto done;
}
if ($I11l1IIIIl1lll1I1I1IlI1ll1l1IIl =~ /S99Q/i) {
$ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'C2100';
$I111I1IlI111Il1II11ll111l1l1lIl = 'scoobyfish';
$II1l1l1IlII1II1ll111lIIlIllIl1I = '';
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'DCS';
$I1IlIll11IIlI11IIIlllI1Il111llI = $I11l1IIIIl1lll1I1I1IlI1ll1l1IIl;
goto done;
}
if ($I11l1IIIIl1lll1I1I1IlI1ll1l1IIl =~ /DCS2210/i) {
$ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'DCS2210';
$I111I1IlI111Il1II11ll111l1l1lIl = 'shamu';
$II1l1l1IlII1II1ll111lIIlIllIl1I = '';
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'DCS';
$I1IlIll11IIlI11IIIlllI1Il111llI = $I11l1IIIIl1lll1I1I1IlI1ll1l1IIl;
goto done;
}
}
if ($ll11I1lI1lIl1I1Il111Ill1lI1l1l1 ne 'unknown') {
goto done;
}
if (index($I11l1IIIIl1lll1I1I1IlI1ll1l1IIl, 'POWEREDGE R') >= 0) {
$I111I1IlI111Il1II11ll111l1l1lIl = $ll11I1lI1lIl1I1Il111Ill1lI1l1l1 = 'POWEREDGE';
$IllIII11lI1I1I1lII1l1IIll11lI11 = 'PE';
goto done;
}
done: if ($ll11I1lI1lIl1I1Il111Ill1lI1l1l1 eq 'C6105') {
IlI11l1II111I1I111IllIIllIll1lI 'sense_bmc_version';
($II1lII1ll1lIlI1lIlIlII11II1IIll, $lIl11I1IIl111I1II11lIIllI1II1ll) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('mc info');
if ($II1lII1ll1lIlI1lIlIlII11II1IIll == 0) {
@lll11lI1lll1l1lllIIIlI1l1IlIl1l = split(/\n/, $lIl11I1IIl111I1II11lIIllI1II1ll, 0);
foreach $i (0 .. $#lll11lI1lll1l1lllIIIlI1l1IlIl1l) {
if ($lll11lI1lll1l1lllIIIlI1l1IlIl1l[$i] =~ /Firmware Revision/) {
@lIl1Il1I11lIlllIIIlI1III111I11I = split(/:/, $lll11lI1lll1l1lllIIIlI1l1IlIl1l[$i], 0);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($lIl1Il1I11lIlllIIIlI1III111I11I[1]);
last;
}
}
if ($IIl1IlIIllII1I1lIlIIIIlIIII1lII =~ /^3\./) {
$II1l1l1IlII1II1ll111lIIlIllIl1I = 'IPV6';
}
}
}
$lII1II1IlIlllll1l1l11ll1I111lll = $ll11I1lI1lIl1I1Il111Ill1lI1l1l1;
$lIIllIlll11IIIIIllIlII1llIll11l = $II1l1l1IlII1II1ll111lIIlIllIl1I;
$IIlIllIIlll1ll1lIlIlIllIIIlIlIl = $I1IlIll11IIlI11IIIlllI1Il111llI;
$lll1l1ll1Ill11IIIllIl1lI1lIl1Il = $I111I1IlI111Il1II11ll111l1l1lIl;
$III1I11I1I1ll1IlI111II11IIIIl1I = $IllIII11lI1I1I1lII1l1IIll11lI11;
return $III1I11I1I1ll1IlI111II11IIIIl1I, $IIlIllIIlll1ll1lIlIlIllIIIlIlIl, $lll1l1ll1Ill11IIIllIl1lI1lIl1Il, $lIIllIlll11IIIIIllIlII1llIll11l, $lII1II1IlIlllll1l1l11ll1I111lll;
}
sub llII1lIIIIIll1II1ll1I111l11II1l {
my($l1l1lII111IIlllII11IIIl1IIllI1I) = @_;
my(@l1llII111IIl1lI11IIlllII1I1lI11) = split(/ +/, $l1l1lII111IIlllII11IIIl1IIllI1I, 0);
my $i;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = '';
for ($i = $#l1llII111IIl1lI11IIlllII1I1lI11; $i >= 0; --$i) {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII .= $l1llII111IIl1lI11IIlllII1I1lI11[$i];
if ($i > 0) {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII .= ' ';
}
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub IIl1l1IlI1lII11lI1I11Ill1IlllIl {
my($l1l1lII111IIlllII11IIIl1IIllI1I) = @_;
my(@l1llII111IIl1lI11IIlllII1I1lI11) = split(/ +/, $l1l1lII111IIlllII11IIIl1IIllI1I, 0);
my $i;
my $l1l1IllI111III1llI1III111IlllII;
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my $lIllIlII11IllI1Il11lIl1ll1II1I1 = 0;
$l1l1IllI111III1llI1III111IlllII = 0;
for ($i = $#l1llII111IIl1lI11IIlllII1I1lI11; $i >= 0; --$i) {
$lIl11I1IIl111I1II11lIIllI1II1ll = hex $l1llII111IIl1lI11IIlllII1I1lI11[$i];
$lIl11I1IIl111I1II11lIIllI1II1ll = $lIl11I1IIl111I1II11lIIllI1II1ll << $l1l1IllI111III1llI1III111IlllII * 8;
$lIllIlII11IllI1Il11lIl1ll1II1I1 += $lIl11I1IIl111I1II11lIIllI1II1ll;
++$l1l1IllI111III1llI1III111IlllII;
}
return $lIllIlII11IllI1Il11lIl1ll1II1I1;
}
sub lllIl11IlIIIl111lIIl11l11IIlIl1 {
my($lIlIlIlI11lIII1Il1III11lIlIl1l1, $I1111111I1IIIIlIl1lll1l1llIII11) = @_;
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my $lll1l1l1Il1IIIllll1Il1ll1I11III = '';
my $i;
my @l1llII111IIl1lI11IIlllII1I1lI11;
my $I1I11l111lI1III1IIlll1II1l1lI1I = $I1111111I1IIIIlIl1lll1l1llIII11 * 2;
$lIl11I1IIl111I1II11lIIllI1II1ll = sprintf("%0$I1I11l111lI1III1IIlll1II1l1lI1I" . 'x', $lIlIlIlI11lIII1Il1III11lIlIl1l1);
for ($i = 0; $i <= length $lIl11I1IIl111I1II11lIIllI1II1ll; ++$i) {
$lll1l1l1Il1IIIllll1Il1ll1I11III .= substr($lIl11I1IIl111I1II11lIIllI1II1ll, $i, 1);
if (($i + 1) % 2 == 0) {
if ($i + 1 < length $lIl11I1IIl111I1II11lIIllI1II1ll) {
$lll1l1l1Il1IIIllll1Il1ll1I11III .= ' ';
}
}
}
return $lll1l1l1Il1IIIllll1Il1ll1I11III;
}
sub I1l1lI1lIIIIlIl11I11llI11Illlll {
my($l1l1lII111IIlllII11IIIl1IIllI1I, $Il1II11lIl1Il1IIIIllIlll11lllll) = @_;
my(@l1llII111IIl1lI11IIlllII1I1lI11) = split(/ +/, $l1l1lII111IIlllII11IIIl1IIllI1I, 0);
my $i;
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = '';
for ($i = 0; $i <= $#l1llII111IIl1lI11IIlllII1I1lI11; ++$i) {
if (defined $Il1II11lIl1Il1IIIIllIlll11lllll) {
if ($i < $Il1II11lIl1Il1IIIIllIlll11lllll) {
next;
}
}
$lIl11I1IIl111I1II11lIIllI1II1ll = hex $l1llII111IIl1lI11IIlllII1I1lI11[$i];
$IIl1IlIIllII1I1lIlIIIIlIIII1lII .= chr $lIl11I1IIl111I1II11lIIllI1II1ll;
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub II1IlIl1l1IIll1II1l1lllll1I1lIl {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = '';
my $ll1I111lllIlI1III11lIllI1IlII11 = '';
my $i = '';
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_ || '';
my $lI1IllIl11I11llIllll111lII11I1I = shift @_ || $IIlllI1IIIl1lIlIl1I1llI1Illl1I1;
for ($i = 0; $i < length $l1l1lII111IIlllII11IIIl1IIllI1I; ++$i) {
$ll1I111lllIlI1III11lIllI1IlII11 = substr($l1l1lII111IIlllII11IIIl1IIllI1I, $i, 1);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII .= sprintf(' 0x%02x', ord $ll1I111lllIlI1III11lIllI1IlII11);
}
if ($lI1IllIl11I11llIllll111lII11I1I) {
$lIl11I1IIl111I1II11lIIllI1II1ll = sprintf(' 0x%02x', length $l1l1lII111IIlllII11IIIl1IIllI1I);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $lIl11I1IIl111I1II11lIIllI1II1ll . $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub l1lII1IlI1l111llIIllII1I1lIl11I {
my $II1lII1ll1lIlI1lIlIlII11II1IIll;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lI1I1I1Il11IIl1l1IIIll1llIIII(@_);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = ll1IIll111lIII1lllI111l1IIlI1ll($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
return $II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub l1lI1I1I1Il11IIl1l1IIIll1llIIII {
my($I11I11II1ll111IlIIlIlllIIIIIII1) = shift @_;
my($llIlIIIIlIlIll11I1I1lI1llIlI11l) = shift @_;
my $IlI1lIIIlII1Il1II11llIlll1II11I = '';
my $IIllllI1l1111lll1l11IlIIl111III = '';
my $IIIIIl1I11IIl1ll1II1lllIll1111l = 0;
my $IIIlll1l11111II1lI1lll1l1111lIl = 1;
my $ll1IIIllIlll1I1I1I1IIlIlIIll1Il = '';
my $IIlI111111llllIl1lI1111I11I1lIl = '';
$IIlI111111llllIl1lI1111I11I1lIl = "$llIllIl1lI1l1lIII1l1lI1II11ll1l $I1I1IlIII11Ill1Il1ll1Illll11III ";
if (not $II1Ill11111lllIl11llI1lIlI111Il) {
$IIlI111111llllIl1lI1111I11I1lIl .= '-H ' . $llIl1l1IIl11II11lIlIl1l1lllIllI . ' -U ' . $I11III1l11ll11I1IIlIl1lIl1IIlIl . ' -P ' . $l1IlllIl11I1IllII1l11II1ll1lI11 . ' ';
}
if (defined $llIlIIIIlIlIll11I1I1lI1llIlI11l) {
if ($llIlIIIIlIlIll11I1I1lI1llIlI11l eq 'noerr') {
$IlI1lIIIlII1Il1II11llIlll1II11I = ' 2>/dev/null';
}
if ($llIlIIIIlIlIll11I1I1lI1llIlI11l eq 'noerror') {
$IlI1lIIIlII1Il1II11llIlll1II11I = ' 2>/dev/null';
}
if ($llIlIIIIlIlIll11I1I1lI1llIlI11l eq 'nooutput') {
$IlI1lIIIlII1Il1II11llIlll1II11I = ' >/dev/null 2>&1';
}
if ($llIlIIIIlIlIll11I1I1lI1llIlI11l eq 'debug') {
$IIllllI1l1111lll1l11IlIIl111III = ' 2>&1';
$IIIIIl1I11IIl1ll1II1lllIll1111l = 1;
}
if ($llIlIIIIlIlIll11I1I1lI1llIlI11l eq 'nocallout') {
$IIIlll1l11111II1lI1lll1l1111lIl = 0;
$IIllllI1l1111lll1l11IlIIl111III = ' 2>&1';
}
}
else {
$IIllllI1l1111lll1l11IlIIl111III = ' 2>&1';
}
$ll1IIIllIlll1I1I1I1IIlIlIIll1Il = "$IIlI111111llllIl1lI1111I11I1lIl $I11I11II1ll111IlIIlIlllIIIIIII1 $IIllllI1l1111lll1l11IlIIl111III $IlI1lIIIlII1Il1II11llIlll1II11I";
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = `$ll1IIIllIlll1I1I1I1IIlIlIIll1Il`;
my $II1lII1ll1lIlI1lIlIlII11II1IIll = $?;
if ($I1l1lllI1llIl11l1lI1111IlI1I11I or $II1lII1ll1lIlI1lIlIlII11II1IIll or $IIIIIl1I11IIl1ll1II1lllIll1111l) {
if ($IIIlll1l11111II1lI1lll1l1111lIl) {
if ($IlI1lIIIlII1Il1II11llIlll1II11I eq '') {
printf "\n";
printf " task: $lll1111IlllIIll1IlIlIlIIllII1Il\n";
printf " command ec: $II1lII1ll1lIlI1lIlIlII11II1IIll\n";
printf "command sent: $ll1IIIllIlll1I1I1I1IIlIlIIll1Il\n";
printf "command rcvd: $IIl1IlIIllII1I1lIlIIIIlIIII1lII\n";
printf "\n";
}
}
}
IIl1lllIIlI1II1Il1I1I11lIll1lIl ;
return $II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub ll1IIll111lIII1lllI111l1IIlI1ll {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = shift @_;
$IIl1IlIIllII1I1lIlIIIIlIIII1lII =~ s/(?>\n|\x0D\x0A)//g;
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub I11I1ll11ll1Ill1IIllI1lI11Il111 {
my $l11l1ll1lI1l1IIlIIIl1IIII1111lI = shift @_;
my(@lll11lI1lll1l1lllIIIlI1l1IlIl1l) = split(' ', $l11l1ll1lI1l1IIlIIIl1IIII1111lI, 0);
my $lIllIIlI1lI1I11l1lIllII11IlIIl1;
my $lIIIIllIllII1IIlI1I1IlI1lllI1II;
$lIllIIlI1lI1I11l1lIllII11IlIIl1 = shift @lll11lI1lll1l1lllIIIlI1l1IlIl1l;
$lIllIIlI1lI1I11l1lIllII11IlIIl1 = hex $lIllIIlI1lI1I11l1lIllII11IlIIl1;
$lIllIIlI1lI1I11l1lIllII11IlIIl1 = $lIllIIlI1lI1I11l1lIllII11IlIIl1 << 2;
$lIllIIlI1lI1I11l1lIllII11IlIIl1 = sprintf('0x20 0x%02x', $lIllIIlI1lI1I11l1lIllII11IlIIl1);
$lIIIIllIllII1IIlI1I1IlI1lllI1II = join(' ', @lll11lI1lll1l1lllIIIlI1l1IlIl1l);
return $lIllIIlI1lI1I11l1lIllII11IlIIl1 . ' ' . $lIIIIllIllII1IIlI1I1IlI1lllI1II;
}
sub IlI1I1l11l1l1lll11llI1I1l11l111 {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
my $II1lII1ll1lIlI1lIlIlII11II1IIll;
my $l1lI1lIlIIlIIlI1IlIIIl111I11IIl = $lll1111IlllIIll1IlIlIlIIllII1Il;
my $lIlI11IlIIl1Il11lII1IlI111l1llI = $l1lI1lIlIIlIIlI1IlIIIl111I11IIl . '_get_reservation';
IlI11l1II111I1I111IllIIllIll1lI $lIlI11IlIIl1Il11lII1IlI111l1llI;
if ($llI11IIlI1IIll1l1lI111IllI1l1Il) {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $l1lllllI11IlIlI1IlI1lI1Ill1I11l;
}
else {
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x30 0x01');
if ($II1lII1ll1lIlI1lIlIlII11II1IIll != 0) {
printf "\n";
printf "Failed to acquire reservation for task $lIlI11IlIIl1Il11lII1IlI111l1llI \n";
printf "Exit code was: $II1lII1ll1lIlI1lIlIlII11II1IIll \n";
printf "Output was: $IIl1IlIIllII1I1lIlIIIIlIIII1lII \n";
printf "\n";
IlI11l1II111I1I111IllIIllIll1lI $l1lI1lIlIIlIIlI1IlIIIl111I11IIl;
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlIIl1lIlIIl1IIIllII1ll1IIl1l11();
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
if ($IIl1IlIIllII1I1lIlIIIIlIIII1lII =~ /^Data length \=/) {
print "\n";
print "The version of ipmitool was detected as using older 'Dell' patches that are not \n";
print "needed, and cause problems. Please see the README file for instructions on how \n";
print "to get a good copy of ipmitool.\n";
print "\n";
exit 1;
}
$llI11IIlI1IIll1l1lI111IllI1l1Il = 1;
$l1lllllI11IlIlI1IlI1lI1Ill1I11l = $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
IlI11l1II111I1I111IllIIllIll1lI $l1lI1lIlIIlIIlI1IlIIIl111I11IIl;
return '0x' . I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
}
sub llIlI1l1IIll11IIl11l11lII1IIl11 {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = '';
my $I11l1IllIl11111Ill1lI1IlI1lIll1 = join(' ', @_);
my(@IllIllII11ll11I1l1I111l1ll1I1Il) = split(/\s+/, $I11l1IllIl11111Ill1lI1IlI1lIll1, 0);
foreach $_ (@IllIllII11ll11I1l1I111l1ll1I1Il) {
$_ = I11lllII1lll111II1IllIIl1II1llI($_);
if ($_ ne '') {
if ($_ =~ /^0x/) {
$_ = hex $_;
}
$IIl1IlIIllII1I1lIlIIIIlIIII1lII .= sprintf('0x%02x ', $_);
}
}
return I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
}
my $lIllI11lIlII1I1II1I111lIIIIII1I = '0';
sub I1Il11Il1l1IIIllIlI111llIlIll1l {
my $IIll11I1Il1IIlIlII1I1l1lIIIIIll;
my $llll1lII1l11I1IlllllIIllll1l1II;
my $i;
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my @l1llII111IIl1lI11IIlllII1I1lI11;
my $II1lII1IIlIlII11lIl11lIIIlI1lIl;
my $l1lIIlll1ll1lIlIIl1lII1IIll1l1l = shift @_;
my $l1Il1IIllII11I1I111IlIIlllIlIll = shift @_;
my $lIIIIl11111I1lI1II1I1Il1I1I1ll1 = shift @_;
my $l11I1Il11Il1lI1lllI1III11IlIIl1 = shift @_;
if (not defined $l11I1Il11Il1lI1lllI1III11IlIIl1) {
$l11I1Il11Il1lI1lllI1III11IlIIl1 = 1;
}
my $I1l1I1III111lllI1l1l1I1IlII1Il1 = llIlI1l1IIll11IIl11l11lII1IIl11($l1lIIlll1ll1lIlIIl1lII1IIll1l1l);
my $l11l11I1111IIl1I1Il1l1l11IIl1l1 = llIlI1l1IIll11IIl11l11lII1IIl11($l1Il1IIllII11I1I111IlIIlllIlIll);
my $l1lllIIllI111llIIl1lIlIl11l1I1I = llIlI1l1IIll11IIl11l11lII1IIl11($lIIIIl11111I1lI1II1I1Il1I1I1ll1);
my $Il1IIllllIlIll11IIll1Il1IIIlI1l = llIlI1l1IIll11IIl11l11lII1IIl11($l11I1Il11Il1lI1lllI1III11IlIIl1);
my $l1lI1lIlIIlIIlI1IlIIIl111I11IIl = l111I11Il1lIlIII1l1IIll1IIlI1II();
my $lIlI11IlIIl1Il11lII1IlI111l1llI = $l1lI1lIlIIlIIlI1IlIIIl111I11IIl;
my $IlI1lIIIlII1Il1II11llIlll1II11I = '';
if ($lIllI11lIlII1I1II1I111lIIIIII1I) {
$IlI1lIIIlII1Il1II11llIlll1II11I = 'noerr';
}
$llll1lII1l11I1IlllllIIllll1l1II = IlI1I1l11l1l1lll11llI1I1l11l111();
if ($l11I1Il11Il1lI1lllI1III11IlIIl1 > 0) {
my @Il111I1I11llI1l11lI11Il1I1lIIlI;
my @IlIIIIl1llII1l1III1llIl1lI111I1;
my $IIIlllllIIII1Il1lIl11II1l111111 = '';
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I("raw 0x30 0x02 $llll1lII1l11I1IlllllIIllll1l1II $I1l1I1III111lllI1l1l1I1IlII1Il1 $l11l11I1111IIl1I1Il1l1l11IIl1l1 $l1lllIIllI111llIIl1lIlIl11l1I1I 0x00 0x00 $Il1IIllllIlIll11IIll1Il1IIIlI1l", $IlI1lIIIlII1Il1II11llIlll1II11I);
IlI11l1II111I1I111IllIIllIll1lI $lIlI11IlIIl1Il11lII1IlI111l1llI;
@Il111I1I11llI1l11lI11Il1I1lIIlI = split(/\s+/, $lIl11I1IIl111I1II11lIIllI1II1ll, 0);
@IlIIIIl1llII1l1III1llIl1lI111I1 = @Il111I1I11llI1l11lI11Il1I1lIIlI[4 .. $#Il111I1I11llI1l11lI11Il1I1lIIlI];
$IIIlllllIIII1Il1lIl11II1l111111 .= join(' ', @IlIIIIl1llII1l1III1llIl1lI111I1);
return $IIIlllllIIII1Il1lIl11II1l111111;
}
else {
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I("raw 0x30 0x02 $llll1lII1l11I1IlllllIIllll1l1II $I1l1I1III111lllI1l1l1I1IlII1Il1 $l11l11I1111IIl1I1Il1l1l11IIl1l1 $l1lllIIllI111llIIl1lIlIl11l1I1I 0x00 0x00 0x01", $IlI1lIIIlII1Il1II11llIlll1II11I);
IlI11l1II111I1I111IllIIllIll1lI $lIlI11IlIIl1Il11lII1IlI111l1llI;
@l1llII111IIl1lI11IIlllII1I1lI11 = split(/ +/, $lIl11I1IIl111I1II11lIIllI1II1ll, 0);
$IIll11I1Il1IIlIlII1I1l1lIIIIIll = hex $l1llII111IIl1lI11IIlllII1I1lI11[4];
++$IIll11I1Il1IIlIlII1I1l1lIIIIIll;
if ($IIll11I1Il1IIlIlII1I1l1lIIIIIll == 1) {
return '';
}
$Il1IIllllIlIll11IIll1Il1IIIlI1l = sprintf('0x%02x', $IIll11I1Il1IIlIlII1I1l1lIIIIIll);
my $II1I111ll111I1IlIl1ll11IlIl1Ill = $IIll11I1Il1IIlIlII1I1l1lIIIIIll;
my $ll1ll1lllIIIIl1I1II1IIIlIll1l1I = $IIlllI1IIIl1lIlIl1I1llI1Illl1I1;
my $I1IIIlIlIIl1llIllIIlIlll11lIIIl = 0;
my $IlI1I1llIl11II1lIlllll1llII11ll;
my $II11l111Il1Il1I11II11IlIl11llIl;
my $I1lI1I11lI1IlIllIIIlllIIIIlI1I1;
my $IIIlllllIIII1Il1lIl11II1l111111 = '';
my @Il111I1I11llI1l11lI11Il1I1lIIlI;
my @IlIIIIl1llII1l1III1llIl1lI111I1;
my $lIIll1IIIIlI11Il1Ill111Il1Il1l1 = 16;
do {
$II11l111Il1Il1I11II11IlIl11llIl = llIlI1l1IIll11IIl11l11lII1IIl11($II1I111ll111I1IlIl1ll11IlIl1Ill);
$IlI1I1llIl11II1lIlllll1llII11ll = llIlI1l1IIll11IIl11l11lII1IIl11($I1IIIlIlIIl1llIllIIlIlll11lIIIl);
if ($II1I111ll111I1IlIl1ll11IlIl1Ill <= $lIIll1IIIIlI11Il1Ill111Il1Il1l1) {
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I("raw 0x30 0x02 $llll1lII1l11I1IlllllIIllll1l1II $I1l1I1III111lllI1l1l1I1IlII1Il1 $l11l11I1111IIl1I1Il1l1l11IIl1l1 $l1lllIIllI111llIIl1lIlIl11l1I1I $IlI1I1llIl11II1lIlllll1llII11ll 0x00 $II11l111Il1Il1I11II11IlIl11llIl", $IlI1lIIIlII1Il1II11llIlll1II11I);
IlI11l1II111I1I111IllIIllIll1lI $lIlI11IlIIl1Il11lII1IlI111l1llI;
@Il111I1I11llI1l11lI11Il1I1lIIlI = split(/\s+/, $lIl11I1IIl111I1II11lIIllI1II1ll, 0);
@IlIIIIl1llII1l1III1llIl1lI111I1 = @Il111I1I11llI1l11lI11Il1I1lIIlI[4 .. $#Il111I1I11llI1l11lI11Il1I1lIIlI];
$IIIlllllIIII1Il1lIl11II1l111111 .= join(' ', @IlIIIIl1llII1l1III1llIl1lI111I1);
$ll1ll1lllIIIIl1I1II1IIIlIll1l1I = $l11I1l1l1l111ll1I1I1I11ll1l11II;
}
else {
$I1lI1I11lI1IlIllIIIlllIIIIlI1I1 = '0x10';
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I("raw 0x30 0x02 $llll1lII1l11I1IlllllIIllll1l1II $I1l1I1III111lllI1l1l1I1IlII1Il1 $l11l11I1111IIl1I1Il1l1l11IIl1l1 $l1lllIIllI111llIIl1lIlIl11l1I1I $IlI1I1llIl11II1lIlllll1llII11ll 0x00 $I1lI1I11lI1IlIllIIIlllIIIIlI1I1", $IlI1lIIIlII1Il1II11llIlll1II11I);
IlI11l1II111I1I111IllIIllIll1lI $lIlI11IlIIl1Il11lII1IlI111l1llI;
@Il111I1I11llI1l11lI11Il1I1lIIlI = split(/\s+/, $lIl11I1IIl111I1II11lIIllI1II1ll, 0);
@IlIIIIl1llII1l1III1llIl1lI111I1 = @Il111I1I11llI1l11lI11Il1I1lIIlI[4 .. $#Il111I1I11llI1l11lI11Il1I1lIIlI];
$IIIlllllIIII1Il1lIl11II1l111111 .= join(' ', @IlIIIIl1llII1l1III1llIl1lI111I1);
$IIIlllllIIII1Il1lIl11II1l111111 .= ' ';
$I1IIIlIlIIl1llIllIIlIlll11lIIIl += $lIIll1IIIIlI11Il1Ill111Il1Il1l1;
$II1I111ll111I1IlIl1ll11IlIl1Ill -= $lIIll1IIIIlI11Il1Ill111Il1Il1l1;
}
} while not $ll1ll1lllIIIIl1I1II1IIIlIll1l1I;
$IIIlllllIIII1Il1lIl11II1l111111 = I11lllII1lll111II1IllIIl1II1llI($IIIlllllIIII1Il1lIl11II1l111111);
$IIIlllllIIII1Il1lIl11II1l111111 = substr($IIIlllllIIII1Il1lIl11II1l111111, 3);
$IIIlllllIIII1Il1lIl11II1l111111 = I11lllII1lll111II1IllIIl1II1llI($IIIlllllIIII1Il1lIl11II1l111111);
return $IIIlllllIIII1Il1lIl11II1l111111;
}
}
sub l1lllIII1II1Il1l11II1llIl1lIIIl {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
$lIllI11lIlII1I1II1I111lIIIIII1I = '1';
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I1Il11Il1l1IIIllIlI111llIlIll1l(@_);
$lIllI11lIlII1I1II1I111lIIIIII1I = '0';
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub I111IlIllI1lI1Il11lIllI1llI1IIl {
my $llll1lII1l11I1IlllllIIllll1l1II;
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my @lIllIll11lll11lIlI1l1Il1lIIIlIl;
my $i;
my $I1IIIlIlIIl1llIllIIlIlll11lIIIl;
my $Il1II11lII1II1111IIlllIIl1Il111;
my $l1lIIlll1ll1lIlIIl1lII1IIll1l1l = shift @_;
my $l1Il1IIllII11I1I111IlIIlllIlIll = shift @_;
my $lIIIIl11111I1lI1II1I1Il1I1I1ll1 = shift @_;
my $I1111111I1IIIIlIl1lll1l1llIII11 = shift @_;
my $I1l1I1III111lllI1l1l1I1IlII1Il1 = llIlI1l1IIll11IIl11l11lII1IIl11($l1lIIlll1ll1lIlIIl1lII1IIll1l1l);
my $l11l11I1111IIl1I1Il1l1l11IIl1l1 = llIlI1l1IIll11IIl11l11lII1IIl11($l1Il1IIllII11I1I111IlIIlllIlIll);
my $l1lllIIllI111llIIl1lIlIl11l1I1I = llIlI1l1IIll11IIl11l11lII1IIl11($lIIIIl11111I1lI1II1I1Il1I1I1ll1);
my $lll1I11l1lIIIl1IIIlI1ll1llll1lI = llIlI1l1IIll11IIl11l11lII1IIl11($I1111111I1IIIIlIl1lll1l1llIII11);
my $lIlI1lll1l11I1111Il1I111Il11ll1 = shift @_;
if ($I1111111I1IIIIlIl1lll1l1llIII11 > 4) {
printf "set_ext_cfg_field_fixed has not been tested on field width > 4. Halting.\n";
exit 1;
}
@lIllIll11lll11lIlI1l1Il1lIIIlIl = split(/\s+/, $lIlI1lll1l11I1111Il1I111Il11ll1, 0);
if ($I1111111I1IIIIlIl1lll1l1llIII11 != $#lIllIll11lll11lIlI1l1Il1lIIIlIl + 1) {
printf "set_ext_cfg_field_fixed: Got the following data: $lIlI1lll1l11I1111Il1I111Il11ll1\n";
printf "set_ext_cfg_field_fixed: the passed in argument, field width (%d), does not match the actual data's field width (%d)\n", $I1111111I1IIIIlIl1lll1l1llIII11, $#lIllIll11lll11lIlI1l1Il1lIIIlIl + 1;
printf "Halting.\n";
exit 1;
}
$llll1lII1l11I1IlllllIIllll1l1II = IlI1I1l11l1l1lll11llI1I1l11l111();
my $IIlIIIIl11111lI1lIIIIl11Ill1IIl = '0x01';
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I("raw 0x30 0x03 $llll1lII1l11I1IlllllIIllll1l1II $I1l1I1III111lllI1l1l1I1IlII1Il1 $l11l11I1111IIl1I1Il1l1l11IIl1l1 $l1lllIIllI111llIIl1lIlIl11l1I1I 0x00 0x00 $IIlIIIIl11111lI1lIIIIl11Ill1IIl $lIlI1lll1l11I1111Il1I111Il11ll1");
return 0;
}
sub ll1l1Il1l111Il1ll1IIIIIII1l1llI {
my $llll1lII1l11I1IlllllIIllll1l1II;
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my $l1lIIlll1ll1lIlIIl1lII1IIll1l1l = shift @_;
my $l1Il1IIllII11I1I111IlIIlllIlIll = shift @_;
my $lIIIIl11111I1lI1II1I1Il1I1I1ll1 = shift @_;
my $I1l1I1III111lllI1l1l1I1IlII1Il1 = llIlI1l1IIll11IIl11l11lII1IIl11($l1lIIlll1ll1lIlIIl1lII1IIll1l1l);
my $l11l11I1111IIl1I1Il1l1l11IIl1l1 = llIlI1l1IIll11IIl11l11lII1IIl11($l1Il1IIllII11I1I111IlIIlllIlIll);
my $l1lllIIllI111llIIl1lIlIl11l1I1I = llIlI1l1IIll11IIl11l11lII1IIl11($lIIIIl11111I1lI1II1I1Il1I1I1ll1);
my $I11lI1111llll1l1III1IlllIllIl11 = '';
foreach $_ (@_) {
$I11lI1111llll1l1III1IlllIllIl11 .= llIlI1l1IIll11IIl11l11lII1IIl11($_) . ' ';
}
my(@lIlI1lll1l11I1111Il1I111Il11ll1) = split(/\s+/, $I11lI1111llll1l1III1IlllIllIl11, 0);
my $II1I111ll111I1IlIl1ll11IlIl1Ill = @lIlI1lll1l11I1111Il1I111Il11ll1;
$llll1lII1l11I1IlllllIIllll1l1II = IlI1I1l11l1l1lll11llI1I1l11l111();
my $lIIll1IIIIlI11Il1Ill111Il1Il1l1 = 16;
my $ll1ll1lllIIIIl1I1II1IIIlIll1l1I = $IIlllI1IIIl1lIlIl1I1llI1Illl1I1;
my $I1IIIlIlIIl1llIllIIlIlll11lIIIl = 0;
my $IlI1I1llIl11II1lIlllll1llII11ll;
my $II11l111Il1Il1I11II11IlIl11llIl;
my $lIlIllllIIllI1I1I1llIIlll1I1IlI;
my $II1IIIlI1II1lI1I11IllIIl111I11I;
my @lI11llllI1l11llllI1IIII1IIl11I1;
my $IIlIIIIl11111lI1lIIIIl11Ill1IIl = '0x00';
do {
$II11l111Il1Il1I11II11IlIl11llIl = llIlI1l1IIll11IIl11l11lII1IIl11($II1I111ll111I1IlIl1ll11IlIl1Ill);
$IlI1I1llIl11II1lIlllll1llII11ll = llIlI1l1IIll11IIl11l11lII1IIl11($I1IIIlIlIIl1llIllIIlIlll11lIIIl);
if ($II1I111ll111I1IlIl1ll11IlIl1Ill <= $lIIll1IIIIlI11Il1Ill111Il1Il1l1) {
$IIlIIIIl11111lI1lIIIIl11Ill1IIl = '0x01';
$II1IIIlI1II1lI1I11IllIIl111I11I = join(' ', @lIlI1lll1l11I1111Il1I111Il11ll1);
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I("raw 0x30 0x03 $llll1lII1l11I1IlllllIIllll1l1II $I1l1I1III111lllI1l1l1I1IlII1Il1 $l11l11I1111IIl1I1Il1l1l11IIl1l1 $l1lllIIllI111llIIl1lIlIl11l1I1I $IlI1I1llIl11II1lIlllll1llII11ll 0x00 $IIlIIIIl11111lI1lIIIIl11Ill1IIl $II1IIIlI1II1lI1I11IllIIl111I11I");
$ll1ll1lllIIIIl1I1II1IIIlIll1l1I = $l11I1l1l1l111ll1I1I1I11ll1l11II;
}
else {
$lIlIllllIIllI1I1I1llIIlll1I1IlI = '0x10';
@lI11llllI1l11llllI1IIII1IIl11I1 = @lIlI1lll1l11I1111Il1I111Il11ll1[0..15];
$II1IIIlI1II1lI1I11IllIIl111I11I = join(' ', @lI11llllI1l11llllI1IIII1IIl11I1);
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I("raw 0x30 0x03 $llll1lII1l11I1IlllllIIllll1l1II $I1l1I1III111lllI1l1l1I1IlII1Il1 $l11l11I1111IIl1I1Il1l1l11IIl1l1 $l1lllIIllI111llIIl1lIlIl11l1I1I $IlI1I1llIl11II1lIlllll1llII11ll 0x00 $IIlIIIIl11111lI1lIIIIl11Ill1IIl $II1IIIlI1II1lI1I11IllIIl111I11I");
@lIlI1lll1l11I1111Il1I111Il11ll1 = @lIlI1lll1l11I1111Il1I111Il11ll1[16 .. $#lIlI1lll1l11I1111Il1I111Il11ll1];
$I1IIIlIlIIl1llIllIIlIlll11lIIIl += $lIIll1IIIIlI11Il1Ill111Il1Il1l1;
$II1I111ll111I1IlIl1ll11IlIl1Ill -= $lIIll1IIIIlI11Il1Ill111Il1Il1l1;
}
} while not $ll1ll1lllIIIIl1I1II1IIIlIll1l1I;
return 0;
}
sub ll11lI1I1I1IlIII1l1l1III1lllI1I {
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_;
my $lIl11I1IIl111I1II11lIIllI1II1ll;
$lIl11I1IIl111I1II11lIIllI1II1ll = ll1IllIIlIll111lIl11IlllIllII1l('\\(', '\\)', $l1l1lII111IIlllII11IIIl1IIllI1I);
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lI11I1llllI1IIII111IllI1l11Il('rsp=', $lIl11I1IIl111I1II11lIIllI1II1ll);
$lIl11I1IIl111I1II11lIIllI1II1ll = I11lllII1lll111II1IllIIl1II1llI($lIl11I1IIl111I1II11lIIllI1II1ll);
$lIl11I1IIl111I1II11lIIllI1II1ll = hex $lIl11I1IIl111I1II11lIIllI1II1ll;
return $lIl11I1IIl111I1II11lIIllI1II1ll;
}
my $III111lll1l1l111lIIlll1II1IlI11 = '';
my $lI1II1I11l1l111I11IIIl1I1lII11l = '';
my $I1I1IllI1Il11111111II11lI11I1lI = '';
my $I1111I1II1l1111lIlllIllIllllllI = '';
my $lll1l1I1IIIllllI1I11I11l11Ill1l = '';
my $I1IllI1lI11l11l1IIllI111IlIl111 = 0;
my $lI1l11ll1II11llII1lllllllIIIIlI = $l11I1l1l1l111ll1I1I1I11ll1l11II;
my(@lI1Il11ll11l1I1I1I1II111IIl11I1) = ();
my $lll11Il1Ill1IlIllll11IIllI111l1 = -1;
my $IIIllll1lllI1111II111III11I1I1l = '';
my $ll1I1l1Il1llI11ll11lIIIIl1IIlI1 = 0;
my $IIl11llIIIlIIlIlllIIII11lIIIlIl = 1;
my $II1l1I11111Il111lI1IIl11I1Ill11 = '/opt/dell/pec/';
my @lIllIIlIIIIlll11II11ll111l1IIIl;
my @I1l1llIllllIlI1IIll1I1IIIllIl1I;
my @I111l111111II1l111111IIIllIIII1;
my @IIIl1lIlll1II1lll1l11l1lllI11I1;
sub Il1II1IIl1lIlI1I1lll1l1lII1l111 {
printf "Command is not implemented for platform $III111lll1l1l111lIIlll1II1IlI11\n";
}
sub III1l111I11IlIllIIIIIIIIll1I111 {
printf "Command is not applicable for platform $III111lll1l1l111lIIlll1II1IlI11\n";
}
sub lI1II1II1lll11111lll1llIIlIllll {
printf "Invalid command / syntax.\n";
exit 6;
}
sub IIl1l1lll1I1ll11IIIlllIl1llII1l {
return $llIlI1l1I1llIl11ll1ll1II111lIIl;
}
sub l111Ill111I1l11l1I1II1lIlI1lII1 {
my($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('-V');
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
my(@llII1l1l1l1II1l11lII1I1I1I1IIIl) = split(' ', $IIl1IlIIllII1I1lIlIIIIlIIII1lII, 0);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $llII1l1l1l1II1l11lII1I1I1I1IIIl[2];
return $II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub lIIl1l1llIllI1Il1IlI1I111IIlIl1 {
my $I11l1IllIl11111Ill1lI1IlI1lIll1 = shift @_ || '';
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = $I1I1IllI1Il11111111II11lI11I1lI;
if ($I11l1IllIl11111Ill1lI1IlI1lIll1 eq 'terse') {
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'unknown') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $IIl1IlIIllII1I1lIlIIIIlIIII1lII . " ($I1111I1II1l1111lIlllIllIllllllI)";
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub l1I1IlI11IIlIlIIIlIl111III1111I {
my $II1lII1ll1lIlI1lIlIlII11II1IIll;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
my $llIlllIIl11ll1lIlI1llI111II11Il = shift @_;
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = `ping -c1 $llIlllIIl11ll1lIlI1llI111II11Il`;
$II1lII1ll1lIlI1lIlIlII11II1IIll = $?;
if ($II1lII1ll1lIlI1lIlIlII11II1IIll == 0) {
return 1;
}
return 0;
}
sub I1I1ll1llIllII11l111lIl1IIlII1I {
my $II1lII1ll1lIlI1lIlIlII11II1IIll;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
my $lIII1l1IIIlll1l1lIlIl1l1111I1I1 = shift @_ || 'quiet';
if ($lI1l11ll1II11llII1lllllllIIIIlI) {
if ($lIII1l1IIIlll1l1lIlIl1l1111I1I1 eq 'loud') {
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('mc info', 'debug');
}
else {
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('mc info', 'nooutput');
}
}
else {
if ($lIII1l1IIIlll1l1lIlIl1l1111I1I1 eq 'loud') {
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('channel authcap 1 1', 'debug');
}
else {
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('channel authcap 1 1', 'nooutput');
}
}
if ($II1lII1ll1lIlI1lIlIlII11II1IIll == 0) {
return 1;
}
return 0;
}
sub I1lIIIIl11IIllllII1II1IIlIlI1Il {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11();
my $II1lII1ll1lIlI1lIlIlII11II1IIll;
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l;
IlI11l1II111I1I111IllIIllIll1lI 'sense_fcb_version';
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C1100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C2100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C410X') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lll1lI1llIl1IllI11l11II11II1Ill();
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6145') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x34 0x16');
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6105') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x34 0x75');
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C5125' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5220') {
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('raw 0x30 0x34', 'noerr');
if ($II1lII1ll1lIlI1lIlIlII11II1IIll != 0) {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlIIl1lIlIIl1IIIllII1ll1IIl1l11();
}
else {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = ll1IIll111lIII1lllI111l1IIlI1ll($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
}
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') {
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('raw 0x30 0x12', 'noerr');
if ($II1lII1ll1lIlI1lIlIlII11II1IIll != 0) {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlIIl1lIlIIl1IIIllII1ll1IIl1l11();
}
else {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
@lll11lI1lll1l1lllIIIlI1l1IlIl1l = split(' ', $IIl1IlIIllII1I1lIlIIIIlIIII1lII, 0);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = sprintf('%s %s', $lll11lI1lll1l1lllIIIlI1l1IlIl1l[3], $lll11lI1lll1l1lllIIIlI1l1IlIl1l[4]);
}
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub IIlllIllI1I1lll111IIl1l1lI1I111 {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = I1lIIIIl11IIllllII1II1IIlIlI1Il();
if (ll11I1ll11lI1l111Ill11ll1IIIIll $IIl1IlIIllII1I1lIlIIIIlIIII1lII) {
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $IIl1IlIIllII1I1lIlIIIIlIIII1lII) {
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
if (Il11lIIIlll1Il11ll1lIl1l1II1l1l $IIl1IlIIllII1I1lIlIIIIlIIII1lII) {
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
if ($IIl1IlIIllII1I1lIlIIIIlIIII1lII eq '00 00') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlIIl1lIlIIl1IIIllII1ll1IIl1l11();
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6105' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5125' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5220' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6145' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') {
my(@IlI1ll11II1II1III1Il11I1IlI1I1l) = split(' ', $IIl1IlIIllII1I1lIlIIIIlIIII1lII, 0);
my $ll1lllIllI1I11II11l1Il11llIlII1 = $IlI1ll11II1II1III1Il11I1IlI1I1l[0] . '.' . $IlI1ll11II1II1III1Il11I1IlI1I1l[1];
$ll1lllIllI1I11II11l1Il11llIlII1 =~ s/^0*(.)/$1/;
return $ll1lllIllI1I11II11l1Il11llIlII1;
}
}
sub lIlII11II1ll1I1l1Il11l1I1llIIII {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11();
IlI11l1II111I1I111IllIIllIll1lI 'sense_pic_version';
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C1100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C2100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C410X') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lll1lI1llIl1IllI11l11II11II1Ill();
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6105') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x34 0x70');
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6145') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lll1lI1llIl1IllI11l11II11II1Ill();
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lll1lI1llIl1IllI11l11II11II1Ill();
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub I11ll1111lllI1lII1l11IIll1Il11I {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = lIlII11II1ll1I1l1Il11l1I1llIIII();
my $lIlI11I11l1ll11111lllll1l1Illll = 'UNKNOWN';
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $IIl1IlIIllII1I1lIlIIIIlIIII1lII) {
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
if (Il11lIIIlll1Il11ll1lIl1l1II1l1l $IIl1IlIIllII1I1lIlIIIIlIIII1lII) {
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6105') {
if ($IIl1IlIIllII1I1lIlIIIIlIIII1lII eq '10') {
$lIlI11I11l1ll11111lllll1l1Illll = 'PIC16';
}
elsif ($IIl1IlIIllII1I1lIlIIIIlIIII1lII eq '12') {
$lIlI11I11l1ll11111lllll1l1Illll = 'PIC18';
}
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100') {
if ($IIl1IlIIllII1I1lIlIIIIlIIII1lII eq '01 18') {
$lIlI11I11l1ll11111lllll1l1Illll = 'PIC18';
}
}
return $lIlI11I11l1ll11111lllll1l1Illll;
}
sub Ill1IllI11Illl1l11lllIl1IlIIl1l {
my $II1lII1ll1lIlI1lIlIlII11II1IIll = 0;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11();
my $I1IIIlI1ll11Ill11lIl1I1l1I1Il1I;
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l;
IlI11l1II111I1I111IllIIllIll1lI 'sense_bios_version';
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6145') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x06 0x59 0x00 0xc0 0x00 0x00');
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C5125') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x30 0x1E');
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6105') {
if ($lI1II1I11l1l111I11IIIl1I1lII11l eq '') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x30 0x1E');
}
if ($lI1II1I11l1l111I11IIIl1I1lII11l eq 'IPV6') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x30 0x4b');
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
@lll11lI1lll1l1lllIIIlI1l1IlIl1l = split(/00/, $IIl1IlIIllII1I1lIlIIIIlIIII1lII, 0);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($lll11lI1lll1l1lllIIIlI1l1IlIl1l[0]);
}
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C5220') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x06 0x59 0x00 0x01 0x00 0x00');
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
@lll11lI1lll1l1lllIIIlI1l1IlIl1l = split(' ', $IIl1IlIIllII1I1lIlIIIIlIIII1lII, 0);
shift @lll11lI1lll1l1lllIIIlI1l1IlIl1l;
shift @lll11lI1lll1l1lllIIIlI1l1IlIl1l;
shift @lll11lI1lll1l1lllIIIlI1l1IlIl1l;
shift @lll11lI1lll1l1lllIIIlI1l1IlIl1l;
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = join(' ', @lll11lI1lll1l1lllIIIlI1l1IlIl1l);
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C1100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C2100') {
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x30 0x30', 'noerr');
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x06 0x59 0x00 0x01 0x00 0x00');
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
@lll11lI1lll1l1lllIIIlI1l1IlIl1l = split(' ', $IIl1IlIIllII1I1lIlIIIIlIIII1lII, 0);
shift @lll11lI1lll1l1lllIIIlI1l1IlIl1l;
shift @lll11lI1lll1l1lllIIIlI1l1IlIl1l;
my $i = 0;
$I1IIIlI1ll11Ill11lIl1I1l1I1Il1I = shift @lll11lI1lll1l1lllIIIlI1l1IlIl1l;
while ($I1IIIlI1ll11Ill11lIl1I1l1I1Il1I eq '00') {
++$i;
$I1IIIlI1ll11Ill11lIl1I1l1I1Il1I = shift @lll11lI1lll1l1lllIIIlI1l1IlIl1l;
if ($i > 10) {
last;
}
}
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = join(' ', @lll11lI1lll1l1lllIIIlI1l1IlIl1l);
}
return $II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub IIlllllIl111IIIll1ll1ll1IIlI1I1 {
my($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = Ill1IllI11Illl1l11lllIl1IlIIl1l();
if ($II1lII1ll1lIlI1lIlIlII11II1IIll != 0) {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11();
}
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $IIl1IlIIllII1I1lIlIIIIlIIII1lII) {
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6145') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
if ($IIl1IlIIllII1I1lIlIIIIlIIII1lII eq '11 00 00 00') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlIIl1lIlIIl1IIIllII1ll1IIl1l11();
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
my(@llIlIllll1l11l1lIlI1Il1lllI11Il) = split(' ', $IIl1IlIIllII1I1lIlIIIIlIIII1lII, 0);
my $Ill1IlIIlIlI1l1lI11I1l11I11l1l1 = $llIlIllll1l11l1lIlI1Il1lllI11Il[2] . '.' . $llIlIllll1l11l1lIlI1Il1lllI11Il[3];
$Ill1IlIIlIlI1l1lI11I1l11I11l1l1 =~ s/^0*(.)/$1/;
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $Ill1IlIIlIlI1l1lI11I1l11I11l1l1;
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6105' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5125' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5220' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6220' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C1100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C2100') {
my(@llIlIllll1l11l1lIlI1Il1lllI11Il) = split(/00/, $IIl1IlIIllII1I1lIlIIIIlIIII1lII, 0);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I1l1lI1lIIIIlIl11I11llI11Illlll($llIlIllll1l11l1lIlI1Il1lllI11Il[0]);
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub lIlIIIlI1IIl1I11Il1IIlll11lI11I {
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
my(@Il111I1I11llI1l11lI11Il1I1lIIlI) = split(' ', $l1l1lII111IIlllII11IIIl1IIllI1I, 0);
my $llII1l1l1l1II1l11lII1I1I1I1IIIl = $Il111I1I11llI1l11lI11Il1I1lIIlI[2];
my $I1lIIII1IlIl1II11I1IIll11II1l11 = substr($Il111I1I11llI1l11lI11Il1I1lIIlI[3], 0, 1);
my $lIl1ll1IllIIIlll1IIlllI1Il1ll1I = substr($Il111I1I11llI1l11lI11Il1I1lIIlI[3], 1, 1);
my $d = $Il111I1I11llI1l11lI11Il1I1lIIlI[12] . substr($Il111I1I11llI1l11lI11Il1I1lIIlI[13], 0, 1);
my $l1lllll11IllIIlIlIlIlIIl1I1I1ll = substr($Il111I1I11llI1l11lI11Il1I1lIIlI[13], 1, 1);
my $lIlIIll11IIlll1Illl1l11IIlI1llI = substr($Il111I1I11llI1l11lI11Il1I1lIIlI[14], 1, 1);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $llII1l1l1l1II1l11lII1I1I1I1IIIl . '.0' . $I1lIIII1IlIl1II11I1IIll11II1l11 . '.0' . $lIl1ll1IllIIIlll1IIlllI1Il1ll1I . '.' . $d . '.' . $l1lllll11IllIIlIlIlIlIIl1I1I1ll;
if ($lIlIIll11IIlll1Illl1l11IIlI1llI eq '0') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII .= ' (recovery)';
}
else {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII .= " (bank $lIlIIll11IIlll1Illl1l11IIlI1llI)";
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub I1IllIl11lIIlllI1IlI1l1III1I1l1 {
my $II1lII1ll1lIlI1lIlIlII11II1IIll;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11();
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l;
IlI11l1II111I1I111IllIIllIll1lI 'sense_intel_me_version';
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6105' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6145' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5125' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C410X') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lll1lI1llIl1IllI11l11II11II1Ill();
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l111I11lIllllI1l1IlIIlIIl1l1l1I();
if (IlIIlI1Ill1lII1I1IlIlIl1Il1lIlI() eq 'on') {
IlI11l1II111I1I111IllIIllIll1lI 'sense_intel_me_version';
($II1lII1ll1lIlI1lIlIlII11II1IIll, $lIl11I1IIl111I1II11lIIllI1II1ll) = l1lII1IlI1l111llIIllII1I1lIl11I('-b 6 -t 0x2c raw 06 01', 'noerr');
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlIIl1lIlIIl1IIIllII1ll1IIl1l11();
if ($II1lII1ll1lIlI1lIlIlII11II1IIll == 0) {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lIlIIIlI1IIl1I11Il1IIlll11lI11I($lIl11I1IIl111I1II11lIIllI1II1ll);
}
}
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l111I11lIllllI1l1IlIIlIIl1l1l1I();
if (IlIIlI1Ill1lII1I1IlIlIl1Il1lIlI() eq 'on') {
IlI11l1II111I1I111IllIIllIll1lI 'enable_local_message_channel_for_bridged_commands';
($II1lII1ll1lIlI1lIlIlII11II1IIll, $lIl11I1IIl111I1II11lIIllI1II1ll) = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x06 0x32 0x00 0x01', 'noerr');
IlI11l1II111I1I111IllIIllIll1lI 'sense_intel_me_version';
($II1lII1ll1lIlI1lIlIlII11II1IIll, $lIl11I1IIl111I1II11lIIllI1II1ll) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('-b 0 -t 0x2c raw 06 01', 'nocallout');
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlIIl1lIlIIl1IIIllII1ll1IIl1l11();
if ($II1lII1ll1lIlI1lIlIlII11II1IIll == 0) {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lIlIIIlI1IIl1I11Il1IIlll11lI11I($lIl11I1IIl111I1II11lIIllI1II1ll);
}
else {
my $l1l11IIIlll1IIlIl1IIIlIlI1I1l1I = ll11lI1I1I1IlIII1l1l1III1lllI1I($lIl11I1IIl111I1II11lIIllI1II1ll);
if ($l1l11IIIlll1IIlIl1IIIlIlI1I1l1I eq 213) {
IlI11l1II111I1I111IllIIllIll1lI 'turn_on_intel_me';
($II1lII1ll1lIlI1lIlIlII11II1IIll, $lIl11I1IIl111I1II11lIIllI1II1ll) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('raw 0x30 0xe3 0x00');
IlI11l1II111I1I111IllIIllIll1lI 'sense_intel_me_version';
($II1lII1ll1lIlI1lIlIlII11II1IIll, $lIl11I1IIl111I1II11lIIllI1II1ll) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('-b 0 -t 0x2c raw 06 01', 'nocallout');
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlIIl1lIlIIl1IIIllII1ll1IIl1l11();
if ($II1lII1ll1lIlI1lIlIlII11II1IIll == 0) {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lIlIIIlI1IIl1I11Il1IIlll11lI11I($lIl11I1IIl111I1II11lIIllI1II1ll);
}
}
}
}
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub l11llIII1lIlII11III1lllIlIlI1ll {
my $II1lII1ll1lIlI1lIlIlII11II1IIll;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11();
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l;
IlI11l1II111I1I111IllIIllIll1lI 'sense_is_intel_me_off';
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') {
($II1lII1ll1lIlI1lIlIlII11II1IIll, $lIl11I1IIl111I1II11lIIllI1II1ll) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('-b 0 -t 0x2c raw 06 01', 'nocallout');
if ($II1lII1ll1lIlI1lIlIlII11II1IIll == 0) {
return 0;
}
else {
my $l1l11IIIlll1IIlIl1IIIlIlI1I1l1I = ll11lI1I1I1IlIII1l1l1III1lllI1I($lIl11I1IIl111I1II11lIIllI1II1ll);
if ($l1l11IIIlll1IIlIl1IIIlIlI1I1l1I eq 213) {
return 1;
}
return 2;
}
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub Il11IIIl11lIlll1llII1lI1llll1Il {
my $lllI1111l1IllI1IIlIl1I11I11I1ll = shift @_;
my $II1lII1ll1lIlI1lIlIlII11II1IIll;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my $lI1111I1IIlII1llIIII11IlIllI1I1;
my $l1l11IIIlll1IIlIl1IIIlIlI1I1l1I = 0;
IlI11l1II111I1I111IllIIllIll1lI 'read_bmc_sensor_' . $lllI1111l1IllI1IIlIl1I11I11I1ll;
$lIl11I1IIl111I1II11lIIllI1II1ll = sprintf('raw 0x04 0x2d 0x%02x', $lllI1111l1IllI1IIlIl1I11I11I1ll);
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lII1IlI1l111llIIllII1I1lIl11I($lIl11I1IIl111I1II11lIIllI1II1ll, 'nocallout');
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
if ($II1lII1ll1lIlI1lIlIlII11II1IIll ne '0') {
$lI1111I1IIlII1llIIII11IlIllI1I1 = III1III11Il1llIlII1l11II1IllI1I();
$lI1111I1IIlII1llIIII11IlIllI1I1 = $IIl1IlIIllII1I1lIlIIIIlIIII1lII =~ /rsp=(.+)\)/;
$l1l11IIIlll1IIlIl1IIIlIlI1I1l1I = hex $1;
if ($l1l11IIIlll1IIlIl1IIIlIlI1I1l1I == 203) {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l111I11lIllllI1l1IlIIlIIl1l1l1I();
}
}
else {
my(@IlI1ll11II1II1III1Il11I1IlI1I1l) = split(' ', $IIl1IlIIllII1I1lIlIIIIlIIII1lII, 0);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $IlI1ll11II1II1III1Il11I1IlI1I1l[0];
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub IIl1lI1IlI111llIl11I111llll1Il1 {
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my @l1lII1l1I1Ill111IIll11I1lIl1ll1;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = 0;
my $II1lII1ll1lIlI1lIlIlII11II1IIll;
IlI11l1II111I1I111IllIIllIll1lI 'read_power_draw_Intel_ME';
($II1lII1ll1lIlI1lIlIlII11II1IIll, $lIl11I1IIl111I1II11lIIllI1II1ll) = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x30 0xe2 0x00 0x00 0x00', 'noerr');
if ($II1lII1ll1lIlI1lIlIlII11II1IIll == 0) {
$lIl11I1IIl111I1II11lIIllI1II1ll = I11lllII1lll111II1IllIIl1II1llI($lIl11I1IIl111I1II11lIIllI1II1ll);
@l1lII1l1I1Ill111IIll11I1lIl1ll1 = split(' ', $lIl11I1IIl111I1II11lIIllI1II1ll, 0);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $l1lII1l1I1Ill111IIll11I1lIl1ll1[2] . $l1lII1l1I1Ill111IIll11I1lIl1ll1[1];
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = hex $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub I1I11lI1lll1IIl11lllI11I1111l1I {
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my @l1lII1l1I1Ill111IIll11I1lIl1ll1;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = 0;
my $II1lII1ll1lIlI1lIlIlII11II1IIll;
IlI11l1II111I1I111IllIIllIll1lI 'read_power_draw_DCMI';
($II1lII1ll1lIlI1lIlIlII11II1IIll, $lIl11I1IIl111I1II11lIIllI1II1ll) = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x2c 0x02 0xdc 0x01 0x00 0x00', 'noerr');
if ($II1lII1ll1lIlI1lIlIlII11II1IIll == 0) {
$lIl11I1IIl111I1II11lIIllI1II1ll = I11lllII1lll111II1IllIIl1II1llI($lIl11I1IIl111I1II11lIIllI1II1ll);
@l1lII1l1I1Ill111IIll11I1lIl1ll1 = split(' ', $lIl11I1IIl111I1II11lIIllI1II1ll, 0);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $l1lII1l1I1Ill111IIll11I1lIl1ll1[2] . $l1lII1l1I1Ill111IIll11I1lIl1ll1[1];
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = hex $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub ll1Illl11IIIlll1I1lIl1111111l1l {
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = 0;
$lIl11I1IIl111I1II11lIIllI1II1ll = ll11111lII111IIIll1IIIlllll1IIl();
if (l1IIl1I1ll11III11I1III1lIlI11lI $lIl11I1IIl111I1II11lIIllI1II1ll) {
return $lIl11I1IIl111I1II11lIIllI1II1ll;
}
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIl11IIlI1Illl1111III11lIIIIII1($lIl11I1IIl111I1II11lIIllI1II1ll, 6, 7);
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub Illl1lIlll1II1llIllI1lllIlllllI {
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = 0;
my $i;
my $II11III1llIl1lI1Il11lII11ll1IlI = 0;
$lIl11I1IIl111I1II11lIIllI1II1ll = ll11111lII111IIIll1IIIlllll1IIl();
if (l1IIl1I1ll11III11I1III1lIlI11lI $lIl11I1IIl111I1II11lIIllI1II1ll) {
return $lIl11I1IIl111I1II11lIIllI1II1ll;
}
for ($i = 0; $i < 8; ++$i) {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIl11IIlI1Illl1111III11lIIIIII1($lIl11I1IIl111I1II11lIIllI1II1ll, 12 + $i * 2, 13 + $i * 2);
$II11III1llIl1lI1Il11lII11ll1IlI += $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
return $II11III1llIl1lI1Il11lII11ll1IlI;
}
sub Il1I11111ll11lllI1l1Ill11Il1lII {
my $II1lII1ll1lIlI1lIlIlII11II1IIll;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
my $IIllI1llI11lIII11l11I1lIl1llI1l;
my $I1ll1I1I1lIlI1I1l1Ill1I111lllII;
my $lIll1I1IlII1l1I11I1ll11I1111ll1;
my $l1IlI11Il1I1lII1llllllII1I111ll = 0;
while (1) {
($IIllI1llI11lIII11l11I1lIl1llI1l, $I1ll1I1I1lIlI1I1l1Ill1I111lllII) = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x30 0x59 0x01');
if ($IIllI1llI11lIII11l11I1lIl1llI1l == 0) {
last;
}
}
sleep 1;
while (1) {
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lII1IlI1l111llIIllII1I1lIl11I('-t 0x68 raw 0x36 0x04', 'noerr');
if ($II1lII1ll1lIlI1lIlIlII11II1IIll == 0) {
last;
}
sleep 1;
}
while (1) {
($IIllI1llI11lIII11l11I1lIl1llI1l, $I1ll1I1I1lIlI1I1l1Ill1I111lllII) = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x30 0x59 0x00');
if ($IIllI1llI11lIII11l11I1lIl1llI1l == 0) {
last;
}
}
my(@lll11lI1lll1l1lllIIIlI1l1IlIl1l) = split(' ', $IIl1IlIIllII1I1lIlIIIIlIIII1lII, 0);
$lIll1I1IlII1l1I11I1ll11I1111ll1 = hex $lll11lI1lll1l1lllIIIlI1l1IlIl1l[21];
$lIll1I1IlII1l1I11I1ll11I1111ll1 += hex $lll11lI1lll1l1lllIIIlI1l1IlIl1l[22];
$lIll1I1IlII1l1I11I1ll11I1111ll1 *= 6;
return $lIll1I1IlII1l1I11I1ll11I1111ll1;
}
sub I1llIIlIlllI1I11IIl11IlIl111lll {
my $llIIIIIIl11llIllI11IlIlIl1I11l1 = 'bmc';
my $IllI1Il1I1IIIIl1IlIlIIlll111III = shift @_;
my $lIll1I1IlII1l1I11I1ll11I1111ll1 = 0;
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my @l1lII1l1I1Ill111IIll11I1lIl1ll1;
if (defined $IllI1Il1I1IIIIl1IlIlIIlll111III) {
if ($IllI1Il1I1IIIIl1IlIlIIlll111III eq 'nm') {
$llIIIIIIl11llIllI11IlIlIl1I11l1 = 'nm';
}
}
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11();
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C5125') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l111I11lIllllI1l1IlIIlIIl1l1l1I();
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C1100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C2100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5220') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIl1lI1IlI111llIl11I111llll1Il1();
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C410X') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lll1lI1llIl1IllI11l11II11II1Ill();
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6105' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6145') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I1I11lI1lll1IIl11lllI11I1111l1I();
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I1I11lI1lll1IIl11lllI11I1111l1I();
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = ll1Illl11IIIlll1I1lIl1111111l1l();
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C410X') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I1I11lI1lll1IIl11lllI11I1111l1I();
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub lIIl1lIllI1ll1IIIIlIll11lllI111 {
my $lIl1II1llIll1l1lIIl1Il1ll1IlI1I = shift @_;
my $I1I11I1I1ll1IlIIll1IllIl1llI1ll = shift @_;
my $II1lII1ll1lIlI1lIlIlII11II1IIll;
my $I11lll1IIIlIIlIlI11I111I1Illll1 = '';
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my $lI1IIl1I1lI1llII11I11ll11IIlII1 = sprintf('0x%02x', $lIl1II1llIll1l1lIIl1Il1ll1IlI1I);
my $llIIIll11llllI1IIII1lll1Il1lI1l = sprintf('0x%02x', $I1I11I1I1ll1IlIIll1IllIl1llI1ll);
($II1lII1ll1lIlI1lIlIlII11II1IIll, $lIl11I1IIl111I1II11lIIllI1II1ll) = l1lII1IlI1l111llIIllII1I1lIl11I("-t0x2c -b 0x00 raw 0x2e 0xc2 0x57 0x01 0x00 $lI1IIl1I1lI1llII11I11ll11IIlII1 $llIIIll11llllI1IIII1lll1Il1lI1l", 'noerr');
if ($II1lII1ll1lIlI1lIlIlII11II1IIll == 0) {
$I11lll1IIIlIIlIlI11I111I1Illll1 = IIl11IIlI1Illl1111III11lIIIIII1($lIl11I1IIl111I1II11lIIllI1II1ll, 6, 7);
}
return $I11lll1IIIlIIlIlI11I111I1Illll1;
}
sub lIlIl1lIl11IIllI111llI1I1llllII {
my $IlIll1ll1I1l11lllII1ll1IlII1Ill = I1I11lI1lll1IIl11lllI11I1111l1I();
my $II1lI1lIlI1lIllll1lIlIlIlII11l1 = ll1Illl11IIIlll1I1lIl1111111l1l();
my $IIll1llIIIII1l1lIIIlIlI1lIIl1lI = IIl1lI1IlI111llIl11I111llll1Il1();
print "dcmi: $IlIll1ll1I1l11lllII1ll1IlII1Ill \n";
print "scbmc: $II1lI1lIlI1lIllll1lIlIlIlII11l1 \n";
print "me: $IIll1llIIIII1l1lIIIlIlI1lIIl1lI \n";
}
sub I1Ill1l11l1llIIlI1II1llI111I1Il {
my $llIIIIIIl11llIllI11IlIlIl1I11l1 = 'bmc';
my $IllI1Il1I1IIIIl1IlIlIIlll111III = shift @_;
my $lIll1I1IlII1l1I11I1ll11I1111ll1 = 0;
if (defined $IllI1Il1I1IIIIl1IlIlIIlll111III) {
if ($IllI1Il1I1IIIIl1IlIlIIlll111III eq 'nm') {
$llIIIIIIl11llIllI11IlIlIl1I11l1 = 'nm';
}
}
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11();
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C1100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C2100') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I1llIIlIlllI1I11IIl11IlIl111lll();
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C410X') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I1llIIlIlllI1I11IIl11IlIl111lll();
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100') {
$lIll1I1IlII1l1I11I1ll11I1111ll1 += hex Il11IIIl11lIlll1llII1lI1llll1Il(163);
$lIll1I1IlII1l1I11I1ll11I1111ll1 += hex Il11IIIl11lIlll1llII1lI1llll1Il(164);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 12 * $lIll1I1IlII1l1I11I1ll11I1111ll1;
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6105') {
$lIll1I1IlII1l1I11I1ll11I1111ll1 += hex Il11IIIl11lIlll1llII1lI1llll1Il(112);
$lIll1I1IlII1l1I11I1ll11I1111ll1 += hex Il11IIIl11lIlll1llII1lI1llll1Il(113);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 12 * $lIll1I1IlII1l1I11I1ll11I1111ll1;
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6145') {
$lIll1I1IlII1l1I11I1ll11I1111ll1 += hex Il11IIIl11lIlll1llII1lI1llll1Il(163);
$lIll1I1IlII1l1I11I1ll11I1111ll1 += hex Il11IIIl11lIlll1llII1lI1llll1Il(164);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 12 * $lIll1I1IlII1l1I11I1ll11I1111ll1;
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C5125' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5220') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = Il1I11111ll11lllI1l1Ill11Il1lII();
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = Illl1lIlll1II1llIllI1lllIlllllI();
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub IIllll1Il11II11lllII1IlllIIIl1l {
my $II1lII1ll1lIlI1lIlIlII11II1IIll;
my $IIIll1IllIl1III1IlIl11IIIlI1lIl;
my $III1l1llIlI1l1I1IIlIIIll1111l1I = '';
my $II1l1I11llIIlI11IIIlIllI1l111lI = '';
my $lI1IIIIl1lI1II111I1ll1lI11IIlII = '';
IlI11l1II111I1I111IllIIllIll1lI 'DCMI_get_power_limit';
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIIll1IllIl1III1IlIl11IIIlI1lIl) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('raw 0x2c 0x03 0xdc 0x00 0x00', 'nocallout');
$IIIll1IllIl1III1IlIl11IIIlI1lIl = I11lllII1lll111II1IllIIl1II1llI($IIIll1IllIl1III1IlIl11IIIlI1lIl);
if ($II1lII1ll1lIlI1lIlIlII11II1IIll == 0) {
$III1l1llIlI1l1I1IIlIIIll1111l1I = IIl11IIlI1Illl1111III11lIIIIII1($IIIll1IllIl1III1IlIl11IIIlI1lIl, 3, 3);
$II1l1I11llIIlI11IIIlIllI1l111lI = IIl11IIlI1Illl1111III11lIIIIII1($IIIll1IllIl1III1IlIl11IIIlI1lIl, 4, 5);
$lI1IIIIl1lI1II111I1ll1lI11IIlII = IIl11IIlI1Illl1111III11lIIIIII1($IIIll1IllIl1III1IlIl11IIIlI1lIl, 6, 9);
if ($II1l1I11llIIlI11IIIlIllI1l111lI > 2000) {
print "power limit is way too big ( $II1l1I11llIIlI11IIIlIllI1l111lI ) \n";
print "DCMI Get Power Limit raw output: \n";
print "$IIIll1IllIl1III1IlIl11IIIlI1lIl\n\n";
}
}
return $II1lII1ll1lIlI1lIlIlII11II1IIll, $IIIll1IllIl1III1IlIl11IIIlI1lIl, $III1l1llIlI1l1I1IIlIIIll1111l1I, $II1l1I11llIIlI11IIIlIllI1l111lI, $lI1IIIIl1lI1II111I1ll1lI11IIlII;
}
sub I1llIlIIIIl11IIIIlIlIIIll1lI1I1 {
my $II1lII1ll1lIlI1lIlIlII11II1IIll;
my $IIIll1IllIl1III1IlIl11IIIlI1lIl;
my $lllIlIIIlll1ll1lIlIIIIlIlII1I1l = '';
my $lIll111l11III11IIl1lI1ll11ll111 = '';
my $l1I11Il1II1lIl1ll11IIll1lIl11lI = '';
my $l11II1llIlIIIl11l11II11lIIll1l1 = '';
my $llllIlI1Il1ll11l11Ill1I11ll1l1l = '';
my $llI1I11l1lIlI1lll1Ill1llIll11I1 = '';
IlI11l1II111I1I111IllIIllIll1lI 'SCBMC_get_chassis_enclosure_power_capping';
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIIll1IllIl1III1IlIl11IIIlI1lIl) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('raw 0x30 0x18', 'nocallout');
$IIIll1IllIl1III1IlIl11IIIlI1lIl = I11lllII1lll111II1IllIIl1II1llI($IIIll1IllIl1III1IlIl11IIIlI1lIl);
if ($II1lII1ll1lIlI1lIlIlII11II1IIll == 0) {
$lllIlIIIlll1ll1lIlIIIIlIlII1I1l = IIl11IIlI1Illl1111III11lIIIIII1($IIIll1IllIl1III1IlIl11IIIlI1lIl, 0, 0);
$lIll111l11III11IIl1lI1ll11ll111 = IIl11IIlI1Illl1111III11lIIIIII1($IIIll1IllIl1III1IlIl11IIIlI1lIl, 1, 2);
$l1I11Il1II1lIl1ll11IIll1lIl11lI = IIl11IIlI1Illl1111III11lIIIIII1($IIIll1IllIl1III1IlIl11IIIlI1lIl, 3, 3);
$l11II1llIlIIIl11l11II11lIIll1l1 = IIl11IIlI1Illl1111III11lIIIIII1($IIIll1IllIl1III1IlIl11IIIlI1lIl, 4, 4);
$llllIlI1Il1ll11l11Ill1I11ll1l1l = IIl11IIlI1Illl1111III11lIIIIII1($IIIll1IllIl1III1IlIl11IIIlI1lIl, 7, 7);
$llI1I11l1lIlI1lll1Ill1llIll11I1 = IIl11IIlI1Illl1111III11lIIIIII1($IIIll1IllIl1III1IlIl11IIIlI1lIl, 8, 8);
}
return $II1lII1ll1lIlI1lIlIlII11II1IIll, $IIIll1IllIl1III1IlIl11IIIlI1lIl, $lllIlIIIlll1ll1lIlIIIIlIlII1I1l, $lIll111l11III11IIl1lI1ll11ll111, $l1I11Il1II1lIl1ll11IIll1lIl11lI, $l11II1llIlIIIl11l11II11lIIll1l1, $llllIlI1Il1ll11l11Ill1I11ll1l1l, $llI1I11l1lIlI1lll1Ill1llIll11I1;
}
sub lll11I1IlllI111lIllIII11Ill11ll {
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11();
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') {
$lIl11I1IIl111I1II11lIIllI1II1ll = ll11111lII111IIIll1IIIlllll1IIl();
if (l1IIl1I1ll11III11I1III1lIlI11lI $lIl11I1IIl111I1II11lIIllI1II1ll) {
return $lIl11I1IIl111I1II11lIIllI1II1ll;
}
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIl11IIlI1Illl1111III11lIIIIII1($lIl11I1IIl111I1II11lIIllI1II1ll, 10);
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub l1l1IIlIIlIII1l1lllIlII1Ill1Il1 {
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11();
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') {
$lIl11I1IIl111I1II11lIIllI1II1ll = ll11111lII111IIIll1IIIlllll1IIl();
if (l1IIl1I1ll11III11I1III1lIlI11lI $lIl11I1IIl111I1II11lIIllI1II1ll) {
return $lIl11I1IIl111I1II11lIIllI1II1ll;
}
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIl11IIlI1Illl1111III11lIIIIII1($lIl11I1IIl111I1II11lIIllI1II1ll, 11);
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub ll1IlI11l1Il1IlIIlIIlIII11lI11l {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
my $Il11llI11l11II1lIll1l1l11Il1IlI;
my $lIl11I1IIl111I1II11lIIllI1II1ll;
IlI11l1II111I1I111IllIIllIll1lI 'sense_bmc_ip';
$Il11llI11l11II1lIll1l1l11Il1IlI = lIll1Il1IIlII11Ill11l11llI11I11();
$lIl11I1IIl111I1II11lIIllI1II1ll = IIIIllI11I1I1l1IlIII1l1IlII1111('', 'IP Address', $Il11llI11l11II1lIll1l1l11Il1IlI);
$lIl11I1IIl111I1II11lIIllI1II1ll = IIIIllI11I1I1l1IlIII1l1IlII1111('v', 'Source', $lIl11I1IIl111I1II11lIIllI1II1ll);
$lIl11I1IIl111I1II11lIIllI1II1ll = Il1I1I11l1I1Il111II11Il11lIIIl1(':', 2, $lIl11I1IIl111I1II11lIIllI1II1ll);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($lIl11I1IIl111I1II11lIIllI1II1ll);
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub IIll1IlIIl11I1lll1Il1I11llIl1Il {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlIIl1lIlIIl1IIIllII1ll1IIl1l11();
my $Il11llI11l11II1lIll1l1l11Il1IlI;
my $lIl11I1IIl111I1II11lIIllI1II1ll;
IlI11l1II111I1I111IllIIllIll1lI 'sense_bmc_ipsrc';
$Il11llI11l11II1lIll1l1l11Il1IlI = lIll1Il1IIlII11Ill11l11llI11I11();
$lIl11I1IIl111I1II11lIIllI1II1ll = IIIIllI11I1I1l1IlIII1l1IlII1111('', 'IP Address Source', $Il11llI11l11II1lIll1l1l11Il1IlI);
$lIl11I1IIl111I1II11lIIllI1II1ll = Il1I1I11l1I1Il111II11Il11lIIIl1(':', 2, $lIl11I1IIl111I1II11lIIllI1II1ll);
$lIl11I1IIl111I1II11lIIllI1II1ll = lc I11lllII1lll111II1IllIIl1II1llI($lIl11I1IIl111I1II11lIIllI1II1ll);
if ($lIl11I1IIl111I1II11lIIllI1II1ll =~ /^dhcp/) {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 'dhcp';
}
if ($lIl11I1IIl111I1II11lIIllI1II1ll =~ /^static/) {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 'static';
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub I11IIl1II1lII1111II1IlI1lIIlIll {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
my $lIl11I1IIl111I1II11lIIllI1II1ll;
IlI11l1II111I1I111IllIIllIll1lI 'sense_bmc_vlan';
my $Il11llI11l11II1lIll1l1l11Il1IlI;
$Il11llI11l11II1lIll1l1l11Il1IlI = lIll1Il1IIlII11Ill11l11llI11I11();
$lIl11I1IIl111I1II11lIIllI1II1ll = IIIIllI11I1I1l1IlIII1l1IlII1111('', 'VLAN ID', $Il11llI11l11II1lIll1l1l11Il1IlI);
$lIl11I1IIl111I1II11lIIllI1II1ll = Il1I1I11l1I1Il111II11Il11lIIIl1(':', 2, $lIl11I1IIl111I1II11lIIllI1II1ll);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lc I11lllII1lll111II1IllIIl1II1llI($lIl11I1IIl111I1II11lIIllI1II1ll);
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub lllIllI111111lll1l1I11I1111lIlI {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
my $lIl11I1IIl111I1II11lIIllI1II1ll;
IlI11l1II111I1I111IllIIllIll1lI 'sense_bmc_subnet';
my $Il11llI11l11II1lIll1l1l11Il1IlI;
$Il11llI11l11II1lIll1l1l11Il1IlI = lIll1Il1IIlII11Ill11l11llI11I11();
$lIl11I1IIl111I1II11lIIllI1II1ll = IIIIllI11I1I1l1IlIII1l1IlII1111('', 'Subnet Mask', $Il11llI11l11II1lIll1l1l11Il1IlI);
$lIl11I1IIl111I1II11lIIllI1II1ll = Il1I1I11l1I1Il111II11Il11lIIIl1(':', 2, $lIl11I1IIl111I1II11lIIllI1II1ll);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lc I11lllII1lll111II1IllIIl1II1llI($lIl11I1IIl111I1II11lIIllI1II1ll);
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub l1I1lllIlI11l1I1Ill1111lI1I1Il1 {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l;
IlI11l1II111I1I111IllIIllIll1lI 'sense_bmc_mac';
my $Il11llI11l11II1lIll1l1l11Il1IlI;
$Il11llI11l11II1lIll1l1l11Il1IlI = lIll1Il1IIlII11Ill11l11llI11I11();
$lIl11I1IIl111I1II11lIIllI1II1ll = IIIIllI11I1I1l1IlIII1l1IlII1111('', 'MAC Address', $Il11llI11l11II1lIll1l1l11Il1IlI);
@lll11lI1lll1l1lllIIIlI1l1IlIl1l = split(/:/, $lIl11I1IIl111I1II11lIIllI1II1ll, 0);
shift @lll11lI1lll1l1lllIIIlI1l1IlIl1l;
$lIl11I1IIl111I1II11lIIllI1II1ll = join(':', @lll11lI1lll1l1lllIIIlI1l1IlIl1l);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lc I11lllII1lll111II1IllIIl1II1llI($lIl11I1IIl111I1II11lIIllI1II1ll);
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub l1lIlIIIII1IIl1IIlIIlIll11IlI1l {
my $II1lII1ll1lIlI1lIlIlII11II1IIll;
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
my $lll11Ill1l11l1l1ll1lI1I11l1111I;
IlI11l1II111I1I111IllIIllIll1lI 'sense_ppid';
$lll11Ill1l11l1l1ll1lI1I11l1111I = IIll1ll11I11IlllIll11ll1II11I1I();
$lIl11I1IIl111I1II11lIIllI1II1ll = IIIIllI11I1I1l1IlIII1l1IlII1111('', 'Board Serial', $lll11Ill1l11l1l1ll1lI1I11l1111I);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = Il1I1I11l1I1Il111II11Il11lIIIl1(':', 2, $lIl11I1IIl111I1II11lIIllI1II1ll);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = uc I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub II11ll1I1I11l1lIlI1l1I1IllI11l1 {
my $II1lII1ll1lIlI1lIlIlII11II1IIll;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlIIl1lIlIIl1IIIllII1ll1IIl1l11();
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my $i;
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l;
my @lIl1Il1I11lIlllIIIlI1III111I11I;
my $lll11Ill1l11l1l1ll1lI1I11l1111I;
$lll11Ill1l11l1l1ll1lI1I11l1111I = IIll1ll11I11IlllIll11ll1II11I1I();
$lIl11I1IIl111I1II11lIIllI1II1ll = IIIIllI11I1I1l1IlIII1l1IlII1111('', 'Product Serial', $lll11Ill1l11l1l1ll1lI1I11l1111I);
$lIl11I1IIl111I1II11lIIllI1II1ll = Il1I1I11l1I1Il111II11Il11lIIIl1(':', 2, $lIl11I1IIl111I1II11lIIllI1II1ll);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($lIl11I1IIl111I1II11lIIllI1II1ll);
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub IlIII1ll11I1II1llll1IlIIl1II1I1 {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = '';
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my $lll11Ill1l11l1l1ll1lI1I11l1111I;
$lll11Ill1l11l1l1ll1lI1I11l1111I = IIll1ll11I11IlllIll11ll1II11I1I();
$lIl11I1IIl111I1II11lIIllI1II1ll = IIIIllI11I1I1l1IlIII1l1IlII1111('', 'Chassis Serial', $lll11Ill1l11l1l1ll1lI1I11l1111I);
$lIl11I1IIl111I1II11lIIllI1II1ll = Il1I1I11l1I1Il111II11Il11lIIIl1(':', 2, $lIl11I1IIl111I1II11lIIllI1II1ll);
$lIl11I1IIl111I1II11lIIllI1II1ll = I11lllII1lll111II1IllIIl1II1llI($lIl11I1IIl111I1II11lIIllI1II1ll);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $lIl11I1IIl111I1II11lIIllI1II1ll;
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub I1lII1Il1lIlII1I11I1I111IlI1I1I {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
my $lll11Ill1l11l1l1ll1lI1I11l1111I;
my $lIl11I1IIl111I1II11lIIllI1II1ll;
IlI11l1II111I1I111IllIIllIll1lI 'sense_asset_tag';
$lll11Ill1l11l1l1ll1lI1I11l1111I = IIll1ll11I11IlllIll11ll1II11I1I();
$lIl11I1IIl111I1II11lIIllI1II1ll = IIIIllI11I1I1l1IlIII1l1IlII1111('', 'Product Asset Tag', $lll11Ill1l11l1l1ll1lI1I11l1111I);
$lIl11I1IIl111I1II11lIIllI1II1ll = Il1I1I11l1I1Il111II11Il11lIIIl1(':', 2, $lIl11I1IIl111I1II11lIIllI1II1ll);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($lIl11I1IIl111I1II11lIIllI1II1ll);
if ($IIl1IlIIllII1I1lIlIIIIlIIII1lII eq '') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlIIl1lIlIIl1IIIllII1ll1IIl1l11();
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub IlIIlI1Ill1lII1I1IlIlIl1Il1lIlI {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlIIl1lIlIIl1IIIllII1ll1IIl1l11();
my $lIl11I1IIl111I1II11lIIllI1II1ll;
IlI11l1II111I1I111IllIIllIll1lI 'sense_host_power_state';
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I('chassis power status');
$lIl11I1IIl111I1II11lIIllI1II1ll = I11lllII1lll111II1IllIIl1II1llI($lIl11I1IIl111I1II11lIIllI1II1ll);
if ($lIl11I1IIl111I1II11lIIllI1II1ll =~ /Chassis Power is on/) {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 'on';
}
if ($lIl11I1IIl111I1II11lIIllI1II1ll =~ /Chassis Power is off/) {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 'off';
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub I1lII11lIIIl1I1Ill1l1I11I1IlIII {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
IlI11l1II111I1I111IllIIllIll1lI 'sense_bmc_hostname';
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I1Il11Il1l1IIIllIlI111llIlIll1l(6, 5, 0, 0);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I1l1lI1lIIIIlIl11I11llI11Illlll($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub lIlll11lIIlIIl1IIII1I1II111lIIl {
my $Il111ll111ll11lIlll1lIl1l1IIIlI = shift @_;
$Il111ll111ll11lIlll1lIl1l1IIIlI = substr($Il111ll111ll11lIlll1lIl1l1IIIlI, 0, 63);
my $Il1llIIIIl1Il1IIl1l11IIl11l1IlI = II1IlIl1l1IIll1II1l1lllll1I1lIl($Il111ll111ll11lIlll1lIl1l1IIIlI, $l11I1l1l1l111ll1I1I1I11ll1l11II);
I1Il11Il1l1IIIllIlI111llIlIll1l 6, 4, 0, 1;
ll1l1Il1l111Il1ll1IIIIIII1l1llI 6, 4, 0, 0;
sleep 1;
I1Il11Il1l1IIIllIlI111llIlIll1l 6, 4, 0, 1;
ll1l1Il1l111Il1ll1IIIIIII1l1llI 6, 5, 0, $Il1llIIIIl1Il1IIl1l11IIl11l1IlI;
sleep 1;
}
my $lll1lI1Il11IIlll1II1lIIlllI11I1 = 1;
my $I1llIlIllIll11l11111l1I11IIlllI = 2;
my $lI11II1111lIlIlI111lIIIIllI1ll1 = 4;
my $IlII11lll1ll1II1ll1lI1I1I11l1I1 = 8;
my $II11lIIIlII1l11I11I11111II11III = 16;
sub lllIIIIl11llIIl1Illl1l1IIllI1Il {
my $lll111IIll1l1lIlIIIIIII11I1Il11 = shift @_;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11();
if (l111I11Il1lIlIII1l1IIll1IIlI1II() eq '') {
IlI11l1II111I1I111IllIIllIll1lI 'sense_security';
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C5220' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5125') {
if ($lll111IIll1l1lIlIIIIIII11I1Il11 eq $IlII11lll1ll1II1ll1lI1I1I11l1I1) {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = ll1I1II1IIll11IIllI1ll1IllI11I1();
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
}
if ($lll111IIll1l1lIlIIIIIII11I1Il11 eq $II11lIIIlII1l11I11I11111II11III) {
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
else {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = ll1I1II1IIll11IIllI1ll1IllI11I1();
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C410X') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lll1lI1llIl1IllI11l11II11II1Ill();
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6105' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C1100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C2100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6220' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6145' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5125' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5220') {
my $l1lIIlll1ll1lIlIIl1lII1IIll1l1l = 4;
my $l1Il1IIllII11I1I111IlIIlllIlIll = 1;
my $lIIIIl11111I1lI1II1I1Il1I1I1ll1 = 0;
my $I1111111I1IIIIlIl1lll1l1llIII11 = 1;
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C5220') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = llII1lIIIIIll1II1ll1I111l11II1l(l1lllIII1II1Il1l11II1llIl1lIIIl($l1lIIlll1ll1lIlIIl1lII1IIll1l1l, $l1Il1IIllII11I1I111IlIIlllIlIll, $lIIIIl11111I1lI1II1I1Il1I1I1ll1, $I1111111I1IIIIlIl1lll1l1llIII11));
}
else {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = llII1lIIIIIll1II1ll1I111l11II1l(I1Il11Il1l1IIIllIlI111llIlIll1l($l1lIIlll1ll1lIlIIl1lII1IIll1l1l, $l1Il1IIllII11I1I111IlIIlllIlIll, $lIIIIl11111I1lI1II1I1Il1I1I1ll1, $I1111111I1IIIIlIl1lll1l1llIII11));
}
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = hex $IIl1IlIIllII1I1lIlIIIIlIIII1lII & hex $lll111IIll1l1lIlIIIIIII11I1Il11;
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $IIl1IlIIllII1I1lIlIIIIlIIII1lII ? 1 : 0;
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub lI11lI1I111II111l1lI1IlllI11l11 {
IlI11l1II111I1I111IllIIllIll1lI 'sense_security_lockdown';
return lllIIIIl11llIIl1Illl1l1IIllI1Il($lll1lI1Il11IIlll1II1lIIlllI11I1);
}
sub l1l11lIlll11lI1I11II111lIl1lllI {
IlI11l1II111I1I111IllIIllIll1lI 'sense_security_ikvm';
return lllIIIIl11llIIl1Illl1l1IIllI1Il($I1llIlIllIll11l11111l1I11IIlllI);
}
sub ll1I1I1llI111IIlllIlI11ll1lIII1 {
IlI11l1II111I1I111IllIIllIll1lI 'sense_security_http';
return lllIIIIl11llIIl1Illl1l1IIllI1Il($lI11II1111lIlIlI111lIIIIllI1ll1);
}
sub l11I1II1l1IlI1IIlIlI1llII1IlI11 {
IlI11l1II111I1I111IllIIllIll1lI 'sense_security_sshtelnet';
return lllIIIIl11llIIl1Illl1l1IIllI1Il($IlII11lll1ll1II1ll1lI1I1I11l1I1);
}
sub II1II1l1IlIl1lIIII1l11l1lIIIIII {
IlI11l1II111I1I111IllIIllIll1lI 'sense_security_snmp';
return lllIIIIl11llIIl1Illl1l1IIllI1Il($II11lIIIlII1l11I11I11111II11III);
}
sub I11llllI1lIlIlIIl1l1I1l1IIl111I {
my $l1IllIIlI111lIl1lI1II1IllIlIIl1 = shift @_;
my $Il1II11lII1II1111IIlllIIl1Il111 = shift @_;
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my $lII11IlI1IlIIlIlI1lll1I1I1l1lIl = ~$l1IllIIlI111lIl1lI1II1IllIlIIl1;
my $ll1IIIlII111l1lIllI1lIIl1ll1lI1 = 0;
if ($Il1II11lII1II1111IIlllIIl1Il111) {
$ll1IIIlII111l1lIllI1lIIl1ll1lI1 = $l1IllIIlI111lIl1lI1II1IllIlIIl1;
}
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11();
IlI11l1II111I1I111IllIIllIll1lI 'set_security';
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C5220' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5125') {
if ($l1IllIIlI111lIl1lI1II1IllIlIIl1 eq $IlII11lll1ll1II1ll1lI1I1I11l1I1) {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = ll1I1II1IIll11IIllI1ll1IllI11I1();
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
}
if ($l1IllIIlI111lIl1lI1II1IllIlIIl1 eq $II11lIIIlII1l11I11I11111II11III) {
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
else {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = ll1I1II1IIll11IIllI1ll1IllI11I1();
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6105' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C1100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C2100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6220' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6145' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5220' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5125') {
if ($l1IllIIlI111lIl1lI1II1IllIlIIl1 == $lll1lI1Il11IIlll1II1lIIlllI11I1 and $Il1II11lII1II1111IIlllIIl1Il111) {
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
my $l1lIIlll1ll1lIlIIl1lII1IIll1l1l = 4;
my $l1Il1IIllII11I1I111IlIIlllIlIll = 1;
my $lIIIIl11111I1lI1II1I1Il1I1I1ll1 = 0;
my $I1111111I1IIIIlIl1lll1l1llIII11 = 1;
$lIl11I1IIl111I1II11lIIllI1II1ll = llII1lIIIIIll1II1ll1I111l11II1l(I1Il11Il1l1IIIllIlI111llIlIll1l($l1lIIlll1ll1lIlIIl1lII1IIll1l1l, $l1Il1IIllII11I1I111IlIIlllIlIll, $lIIIIl11111I1lI1II1I1Il1I1I1ll1, $I1111111I1IIIIlIl1lll1l1llIII11));
$lIl11I1IIl111I1II11lIIllI1II1ll = hex $lIl11I1IIl111I1II11lIIllI1II1ll;
$lIl11I1IIl111I1II11lIIllI1II1ll = $lIl11I1IIl111I1II11lIIllI1II1ll & $lII11IlI1IlIIlIlI1lll1I1I1l1lIl | $ll1IIIlII111l1lIllI1lIIl1ll1lI1;
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = ll1l1Il1l111Il1ll1IIIIIII1l1llI($l1lIIlll1ll1lIlIIl1lII1IIll1l1l, $l1Il1IIllII11I1I111IlIIlllIlIll, $lIIIIl11111I1lI1II1I1Il1I1I1ll1, $lIl11I1IIl111I1II11lIIllI1II1ll);
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C5220') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = llII1lIIIIIll1II1ll1I111l11II1l(l1lllIII1II1Il1l11II1llIl1lIIIl($l1lIIlll1ll1lIlIIl1lII1IIll1l1l, $l1Il1IIllII11I1I111IlIIlllIlIll, $lIIIIl11111I1lI1II1I1Il1I1I1ll1, $I1111111I1IIIIlIl1lll1l1llIII11));
}
else {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = llII1lIIIIIll1II1ll1I111l11II1l(I1Il11Il1l1IIIllIlI111llIlIll1l($l1lIIlll1ll1lIlIIl1lII1IIll1l1l, $l1Il1IIllII11I1I111IlIIlllIlIll, $lIIIIl11111I1lI1II1I1Il1I1I1ll1, $I1111111I1IIIIlIl1lll1l1llIII11));
}
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = hex $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 0;
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub lIl1lIIl1IlllIlII11lll11IlIIIl1 {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11();
my $lIl11I1IIl111I1II11lIIllI1II1ll;
IlI11l1II111I1I111IllIIllIll1lI 'sense_http_enabled';
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C410X') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lll1lI1llIl1IllI11l11II11II1Ill();
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6105' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C1100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C2100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6220' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6145' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5125' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5220') {
my $l1lIIlll1ll1lIlIIl1lII1IIll1l1l = 12;
my $l1Il1IIllII11I1I111IlIIlllIlIll = 1;
my $lIIIIl11111I1lI1II1I1Il1I1I1ll1 = 0;
my $I1111111I1IIIIlIl1lll1l1llIII11 = 1;
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6105') {
$lIl11I1IIl111I1II11lIIllI1II1ll = llII1lIIIIIll1II1ll1I111l11II1l(l1lllIII1II1Il1l11II1llIl1lIIIl($l1lIIlll1ll1lIlIIl1lII1IIll1l1l, $l1Il1IIllII11I1I111IlIIlllIlIll, $lIIIIl11111I1lI1II1I1Il1I1I1ll1, $I1111111I1IIIIlIl1lll1l1llIII11));
}
else {
$lIl11I1IIl111I1II11lIIllI1II1ll = llII1lIIIIIll1II1ll1I111l11II1l(I1Il11Il1l1IIIllIlI111llIlIll1l($l1lIIlll1ll1lIlIIl1lII1IIll1l1l, $l1Il1IIllII11I1I111IlIIlllIlIll, $lIIIIl11111I1lI1II1I1Il1I1I1ll1, $I1111111I1IIIIlIl1lll1l1llIII11));
}
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 0;
if ($lIl11I1IIl111I1II11lIIllI1II1ll) {
if ($lIl11I1IIl111I1II11lIIllI1II1ll == 1) {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 1;
}
}
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub ll1lIIII1lII1IlIl1llI1llI1I1III {
my $II11lIIlI1Il1Il1IIIlI1lIl1lII1l = shift @_;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11();
IlI11l1II111I1I111IllIIllIll1lI 'set_http_enabled';
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6105' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C1100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C2100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6220' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6145' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5125' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5220') {
my $l1lIIlll1ll1lIlIIl1lII1IIll1l1l = 12;
my $l1Il1IIllII11I1I111IlIIlllIlIll = 1;
my $lIIIIl11111I1lI1II1I1Il1I1I1ll1 = 0;
my $I1111111I1IIIIlIl1lll1l1llIII11 = 1;
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = ll1l1Il1l111Il1ll1IIIIIII1l1llI($l1lIIlll1ll1lIlIIl1lII1IIll1l1l, $l1Il1IIllII11I1I111IlIIlllIlIll, $lIIIIl11111I1lI1II1I1Il1I1I1ll1, $II11lIIlI1Il1Il1IIIlI1lIl1lII1l);
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub IlIlllIlIlI111IlI1llI1llll1IIII {
my $lll111IIll1l1lIlIIIIIII11I1Il11 = shift @_;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11();
IlI11l1II111I1I111IllIIllIll1lI 'sense_http_port';
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C410X') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lll1lI1llIl1IllI11l11II11II1Ill();
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6105' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C1100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C2100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6220' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6145' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5125' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5220') {
my $l1lIIlll1ll1lIlIIl1lII1IIll1l1l = 12;
my $l1Il1IIllII11I1I111IlIIlllIlIll = 5;
my $lIIIIl11111I1lI1II1I1Il1I1I1ll1 = 0;
my $I1111111I1IIIIlIl1lll1l1llIII11 = 2;
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6105') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = llII1lIIIIIll1II1ll1I111l11II1l(l1lllIII1II1Il1l11II1llIl1lIIIl($l1lIIlll1ll1lIlIIl1lII1IIll1l1l, $l1Il1IIllII11I1I111IlIIlllIlIll, $lIIIIl11111I1lI1II1I1Il1I1I1ll1, $I1111111I1IIIIlIl1lll1l1llIII11));
}
else {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = llII1lIIIIIll1II1ll1I111l11II1l(l1lllIII1II1Il1l11II1llIl1lIIIl($l1lIIlll1ll1lIlIIl1lII1IIll1l1l, $l1Il1IIllII11I1I111IlIIlllIlIll, $lIIIIl11111I1lI1II1I1Il1I1I1ll1, $I1111111I1IIIIlIl1lll1l1llIII11));
}
$IIl1IlIIllII1I1lIlIIIIlIIII1lII =~ s/\s*//g;
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = hex $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub l11111111III1IllIIII11IIlllIIl1 {
my $IllIIlI1lI1lI1I1IIIlII1III11lIl = shift @_;
$IllIIlI1lI1lI1I1IIIlII1III11lIl = int $IllIIlI1lI1lI1I1IIIlII1III11lIl;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11();
IlI11l1II111I1I111IllIIllIll1lI 'set_http_port';
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6105' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C1100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C2100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6220' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6145' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5125' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5220') {
my $l1lIIlll1ll1lIlIIl1lII1IIll1l1l = 12;
my $l1Il1IIllII11I1I111IlIIlllIlIll = 5;
my $lIIIIl11111I1lI1II1I1Il1I1I1ll1 = 0;
my $I1111111I1IIIIlIl1lll1l1llIII11 = 2;
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l11II11llI11l1lllII1llll1l1111l('asdf', 'set', $l1lIIlll1ll1lIlIIl1lII1IIll1l1l, $l1Il1IIllII11I1I111IlIIlllIlIll, $lIIIIl11111I1lI1II1I1Il1I1I1ll1, $I1111111I1IIIIlIl1lll1l1llIII11, $IllIIlI1lI1lI1I1IIIlII1III11lIl);
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub l11l1lI111l11IIII1III11lIl1IIll {
my $lll111IIll1l1lIlIIIIIII11I1Il11 = shift @_;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11();
IlI11l1II111I1I111IllIIllIll1lI 'sense_https_port';
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C410X') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lll1lI1llIl1IllI11l11II11II1Ill();
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6105' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C1100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C2100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6220' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6145' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5125' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5220') {
my $l1lIIlll1ll1lIlIIl1lII1IIll1l1l = 12;
my $l1Il1IIllII11I1I111IlIIlllIlIll = 6;
my $lIIIIl11111I1lI1II1I1Il1I1I1ll1 = 0;
my $I1111111I1IIIIlIl1lll1l1llIII11 = 2;
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6105') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = llII1lIIIIIll1II1ll1I111l11II1l(l1lllIII1II1Il1l11II1llIl1lIIIl($l1lIIlll1ll1lIlIIl1lII1IIll1l1l, $l1Il1IIllII11I1I111IlIIlllIlIll, $lIIIIl11111I1lI1II1I1Il1I1I1ll1, $I1111111I1IIIIlIl1lll1l1llIII11));
}
else {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = llII1lIIIIIll1II1ll1I111l11II1l(I1Il11Il1l1IIIllIlI111llIlIll1l($l1lIIlll1ll1lIlIIl1lII1IIll1l1l, $l1Il1IIllII11I1I111IlIIlllIlIll, $lIIIIl11111I1lI1II1I1Il1I1I1ll1, $I1111111I1IIIIlIl1lll1l1llIII11));
}
$IIl1IlIIllII1I1lIlIIIIlIIII1lII =~ s/\s*//g;
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = hex $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub IIIIl1l1ll1ll1ll1lI1lI11I1IlI1l {
my $IllIIlI1lI1lI1I1IIIlII1III11lIl = shift @_;
$IllIIlI1lI1lI1I1IIIlII1III11lIl = int $IllIIlI1lI1lI1I1IIIlII1III11lIl;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11();
IlI11l1II111I1I111IllIIllIll1lI 'set_https_port';
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6105' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C1100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C2100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6220' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6145' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5125' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5220') {
my $l1lIIlll1ll1lIlIIl1lII1IIll1l1l = 12;
my $l1Il1IIllII11I1I111IlIIlllIlIll = 6;
my $lIIIIl11111I1lI1II1I1Il1I1I1ll1 = 0;
my $I1111111I1IIIIlIl1lll1l1llIII11 = 2;
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l11II11llI11l1lllII1llll1l1111l('asdf', 'set', $l1lIIlll1ll1lIlIIl1lII1IIll1l1l, $l1Il1IIllII11I1I111IlIIlllIlIll, $lIIIIl11111I1lI1II1I1Il1I1I1ll1, $I1111111I1IIIIlIl1lll1l1llIII11, $IllIIlI1lI1lI1I1IIIlII1III11lIl);
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub I1l1l1Il1lI11I1l1lI1111IIlI1lll {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11();
my $llll1lII1l11I1IlllllIIllll1l1II;
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l;
IlI11l1II111I1I111IllIIllIll1lI 'sense_nic_mode';
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C1100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C2100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6105' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5125' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5220' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6220' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C410X') {
$llll1lII1l11I1IlllllIIllll1l1II = IlI1I1l11l1l1lll11llI1I1l11l111();
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I("raw 0x30 0x02 $llll1lII1l11I1IlllllIIllll1l1II 0x02 0x01 0x00 0x00 0x00 0x01");
$lIl11I1IIl111I1II11lIIllI1II1ll = I11lllII1lll111II1IllIIl1II1llI($lIl11I1IIl111I1II11lIIllI1II1ll);
@lll11lI1lll1l1lllIIIlI1l1IlIl1l = split(' ', $lIl11I1IIl111I1II11lIIllI1II1ll, 0);
$lIl11I1IIl111I1II11lIIllI1II1ll = $lll11lI1lll1l1lllIIIlI1l1IlIl1l[4];
if ($lIl11I1IIl111I1II11lIIllI1II1ll eq '00') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 'shared';
}
if ($lIl11I1IIl111I1II11lIIllI1II1ll eq '01') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 'dedicated';
}
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6145') {
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x34 0x14');
$lIl11I1IIl111I1II11lIIllI1II1ll = I11lllII1lll111II1IllIIl1II1llI($lIl11I1IIl111I1II11lIIllI1II1ll);
if ($lIl11I1IIl111I1II11lIIllI1II1ll eq '00') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 'shared';
}
if ($lIl11I1IIl111I1II11lIIllI1II1ll eq '01') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 'dedicated';
}
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub IlI1Ill11II111Illl1III1ll11llI1 {
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_;
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my $I1I11IIIll11IlIIl1l1lI11lI1I111;
my $llll1lII1l11I1IlllllIIllll1l1II;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11();
$I1I11IIIll11IlIIl1l1lI11lI1I111 = '';
if ($l1l1lII111IIlllII11IIIl1IIllI1I =~ /^sh/i) {
$I1I11IIIll11IlIIl1l1lI11lI1I111 = 'shared';
}
if ($l1l1lII111IIlllII11IIIl1IIllI1I =~ /^d/i) {
$I1I11IIIll11IlIIl1l1lI11lI1I111 = 'dedicated';
}
if ($I1I11IIIll11IlIIl1l1lI11lI1I111 eq '') {
print "error: I do not know what mode $l1l1lII111IIlllII11IIIl1IIllI1I is. Please use 'shared' or 'dedicated'.\n";
exit 1;
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C1100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C2100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6105' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5125' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5220' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') {
$lIl11I1IIl111I1II11lIIllI1II1ll = $I1I11IIIll11IlIIl1l1lI11lI1I111 eq 'shared' ? '00' : '01';
$llll1lII1l11I1IlllllIIllll1l1II = IlI1I1l11l1l1lll11llI1I1l11l111();
l1lII1IlI1l111llIIllII1I1lIl11I "raw 0x30 0x03 $llll1lII1l11I1IlllllIIllll1l1II 0x02 0x01 0x00 0x00 0x00 1 $lIl11I1IIl111I1II11lIIllI1II1ll";
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 0;
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6145') {
$lIl11I1IIl111I1II11lIIllI1II1ll = $I1I11IIIll11IlIIl1l1lI11lI1I111 eq 'shared' ? '00' : '01';
l1lII1IlI1l111llIIllII1I1lIl11I "raw 0x34 0x13 $lIl11I1IIl111I1II11lIIllI1II1ll";
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 0;
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
Il1II1IIl1lIlI1I1lll1l1lII1l111 ;
}
sub l111Il11lll1I11I1l1IlI11IIl1llI {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
my $II1lII1ll1lIlI1lIlIlII11II1IIll;
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l;
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11();
IlI11l1II111I1I111IllIIllIll1lI 'sense_reqd_psu_count';
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 0;
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('raw 0x30 0x1f', 'noerr');
if ($II1lII1ll1lIlI1lIlIlII11II1IIll == 0) {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
@lll11lI1lll1l1lllIIIlI1l1IlIl1l = split(' ', $IIl1IlIIllII1I1lIlIIIIlIIII1lII, 0);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $lll11lI1lll1l1lllIIIlI1l1IlIl1l[5];
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIl1l1IlI1lII11lI1I11Ill1IlllIl($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
}
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub llIIlIIl1lllI1lIIIlI1lIIIIlIl11 {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
my $II1lII1ll1lIlI1lIlIlII11II1IIll;
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l;
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11();
IlI11l1II111I1I111IllIIllIll1lI 'sense_redundant_psu_available';
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 0;
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('raw 0x30 0x1f', 'noerr');
if ($II1lII1ll1lIlI1lIlIlII11II1IIll == 0) {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
@lll11lI1lll1l1lllIIIlI1l1IlIl1l = split(' ', $IIl1IlIIllII1I1lIlIIIIlIIII1lII, 0);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $lll11lI1lll1l1lllIIIlI1l1IlIl1l[6];
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIl1l1IlI1lII11lI1I11Ill1IlllIl($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
}
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub II1I11llIl11lII11lIIIl1II11lIII {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
my $II1lII1ll1lIlI1lIlIlII11II1IIll;
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l;
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11();
IlI11l1II111I1I111IllIIllIll1lI 'sense_node_number';
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C1100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C2100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C410X') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lll1lI1llIl1IllI11l11II11II1Ill();
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6145') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x34 0x11');
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIl1l1IlI1lII11lI1I11Ill1IlllIl($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C5125') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x30 0x2d');
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIl1l1IlI1lII11lI1I11Ill1IlllIl($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6105') {
if ($lI1II1I11l1l111I11IIIl1I1lII11l eq '') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x30 0x2d');
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIl1l1IlI1lII11lI1I11Ill1IlllIl($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
}
if ($lI1II1I11l1l111I11IIIl1I1lII11l eq 'IPV6') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x30 0x4c');
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIl1l1IlI1lII11lI1I11Ill1IlllIl($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
}
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C5220') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x30 0x7d');
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIl1l1IlI1lII11lI1I11Ill1IlllIl($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 0;
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('raw 0x30 0x12', 'noerr');
if ($II1lII1ll1lIlI1lIlIlII11II1IIll == 0) {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
@lll11lI1lll1l1lllIIIlI1l1IlIl1l = split(' ', $IIl1IlIIllII1I1lIlIIIIlIIII1lII, 0);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $lll11lI1lll1l1lllIIIlI1l1IlIl1l[9];
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIl1l1IlI1lII11lI1I11Ill1IlllIl($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
}
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub I111Il11l11IIlIll11ll1lll1lIII1 {
my $II1lII1ll1lIlI1lIlIlII11II1IIll;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlIIl1lIlIIl1IIIllII1ll1IIl1l11();
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l;
my @lIl1Il1I11lIlllIIIlI1III111I11I;
my $i;
IlI11l1II111I1I111IllIIllIll1lI 'sense_bmc_version';
($II1lII1ll1lIlI1lIlIlII11II1IIll, $lIl11I1IIl111I1II11lIIllI1II1ll) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('mc info');
if ($II1lII1ll1lIlI1lIlIlII11II1IIll == 0) {
@lll11lI1lll1l1lllIIIlI1l1IlIl1l = split(/\n/, $lIl11I1IIl111I1II11lIIllI1II1ll, 0);
foreach $i (0 .. $#lll11lI1lll1l1lllIIIlI1l1IlIl1l) {
if ($lll11lI1lll1l1lllIIIlI1l1IlIl1l[$i] =~ /Firmware Revision/) {
@lIl1Il1I11lIlllIIIlI1III111I11I = split(/:/, $lll11lI1lll1l1lllIIIlI1l1IlIl1l[$i], 0);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($lIl1Il1I11lIlllIIIlI1III111I11I[1]);
last;
}
}
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub IlIl11l11I1I111lllII11I111Illll {
my $II1lII1ll1lIlI1lIlIlII11II1IIll;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11();
my $I1ll1I1I1lIlI1I1l1Ill1I111lllII = IIIl11111lI1II111lllIIIl111II11();
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l;
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6105') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x06 0x52 0x07 0xa0 0x06 0x3c 0x1d');
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
@lll11lI1lll1l1lllIIIlI1l1IlIl1l = split(/\s+/, $IIl1IlIIllII1I1lIlIIIIlIIII1lII, 0);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $lll11lI1lll1l1lllIIIlI1l1IlIl1l[0];
if (hex $IIl1IlIIllII1I1lIlIIIIlIIII1lII == 32) {
$I1ll1I1I1lIlI1I1l1Ill1I111lllII = 'X3.5';
}
if (hex $IIl1IlIIllII1I1lIlIIIIlIIII1lII == 48) {
$I1ll1I1I1lIlI1I1l1Ill1I111lllII = 'Nucleon';
}
if (hex $IIl1IlIIllII1I1lIlIIIIlIIII1lII == 64) {
$I1ll1I1I1lIlI1I1l1Ill1I111lllII = 'Viper';
}
if (hex $IIl1IlIIllII1I1lIlIIIIlIIII1lII == 255) {
$I1ll1I1I1lIlI1I1l1Ill1I111lllII = 'unprogrammed';
}
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII, $I1ll1I1I1lIlI1I1l1Ill1I111lllII;
}
sub l11l11l1lll1Ill1I111ll1l1lI1lI1 {
my $II1lII1ll1lIlI1lIlIlII11II1IIll;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11();
my $I1ll1I1I1lIlI1I1l1Ill1I111lllII = IIIl11111lI1II111lllIIIl111II11();
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l;
my $I1IIIlI1ll11Ill11lIl1I1l1I1Il1I;
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my $l1lIIIl1l1lIII1lI1l1I1IlI1lI1Il = 0;
my $II11Il1111IIII1111I11I1lIIl1111;
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C1100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C2100') {
$I1ll1I1I1lIlI1I1l1Ill1I111lllII = lll1lI1llIl1IllI11l11II11II1Ill();
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = '';
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100') {
if ($lll1l1I1IIIllllI1I11I11l11Ill1l eq 'PEC') {
$I1ll1I1I1lIlI1I1l1Ill1I111lllII = 'X3.5';
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = '';
}
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6145') {
$I1ll1I1I1lIlI1I1l1Ill1I111lllII = 'X5';
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = '';
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6105') {
if ($lll1l1I1IIIllllI1I11I11l11Ill1l eq 'PEC') {
$I1ll1I1I1lIlI1I1l1Ill1I111lllII = 'X3.5';
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = '';
}
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C5125' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C5220') {
$I1ll1I1I1lIlI1I1l1Ill1I111lllII = 'Viking';
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = '';
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C410X') {
$I1ll1I1I1lIlI1I1l1Ill1I111lllII = lll1lI1llIl1IllI11l11II11II1Ill();
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = '';
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') {
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('sdr type Fan');
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
@lll11lI1lll1l1lllIIIlI1l1IlIl1l = split(/\n/, $IIl1IlIIllII1I1lIlIIIIlIIII1lII, 0);
$I1IIIlI1ll11Ill11lIl1I1l1I1Il1I = 0;
foreach $_ (@lll11lI1lll1l1lllIIIlI1l1IlIl1l) {
$lIl11I1IIl111I1II11lIIllI1II1ll = lIl11II1Il1l1l1Il1lI11l1l1I1l1l($_);
if ($lIl11I1IIl111I1II11lIIllI1II1ll =~ /FAN/) {
++$I1IIIlI1ll11Ill11lIl1I1l1I1Il1I;
}
}
$I1ll1I1I1lIlI1I1l1Ill1I111lllII = 'unknown';
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $I1IIIlI1ll11Ill11lIl1I1l1I1Il1I;
if ($I1IIIlI1ll11Ill11lIl1I1l1I1Il1I == 2) {
$I1ll1I1I1lIlI1I1l1Ill1I111lllII = 'Scorpion';
}
if ($I1IIIlI1ll11Ill11lIl1I1l1I1Il1I == 4) {
$I1ll1I1I1lIlI1I1l1Ill1I111lllII = 'X6';
}
if ($I1IIIlI1ll11Ill11lIl1I1l1I1Il1I == 6) {
$I1ll1I1I1lIlI1I1l1Ill1I111lllII = 'Zeus';
}
my $lI1llIIlIIlIlI1l1lIIl1I1III11ll = $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
my $llllI1IlI1IllI1IlIl1111llIlIlll = $I1ll1I1I1lIlI1I1l1Ill1I111lllII;
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 0;
$I1ll1I1I1lIlI1I1l1Ill1I111lllII = 'unknown';
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lI1I1I1Il11IIl1l1IIIll1llIIII('raw 0x30 0x12', 'noerr');
if ($II1lII1ll1lIlI1lIlIlII11II1IIll == 0) {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIl11IIlI1Illl1111III11lIIIIII1($IIl1IlIIllII1I1lIlIIIIlIIII1lII, 22);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = ($IIl1IlIIllII1I1lIlIIIIlIIII1lII & 254) >> 1;
if ($IIl1IlIIllII1I1lIlIIIIlIIII1lII eq 1) {
$I1ll1I1I1lIlI1I1l1Ill1I111lllII = 'Scorpion';
}
if ($IIl1IlIIllII1I1lIlIIIIlIIII1lII eq 2) {
$I1ll1I1I1lIlI1I1l1Ill1I111lllII = 'X6';
}
if ($IIl1IlIIllII1I1lIlIIIIlIIII1lII eq 3) {
$I1ll1I1I1lIlI1I1l1Ill1I111lllII = 'Zeus';
}
}
if ($I1ll1I1I1lIlI1I1l1Ill1I111lllII eq 'unknown') {
$II11Il1111IIII1111I11I1lIIl1111 = ll11111lII111IIIll1IIIlllll1IIl();
if (l1IIl1I1ll11III11I1III1lIlI11lI $II11Il1111IIII1111I11I1lIIl1111) {
$l1lIIIl1l1lIII1lI1l1I1IlI1lI1Il = 1;
}
}
if ($llllI1IlI1IllI1IlIl1111llIlIlll ne $I1ll1I1I1lIlI1I1l1Ill1I111lllII) {
if ($l1lIIIl1l1lIII1lI1l1I1IlI1lI1Il) {
return 0, l111I11lIllllI1l1IlIIlIIl1l1l1I();
}
printf "The two detection methods for chassis type do not agree.\n";
print "fans: $lI1llIIlIIlIlI1l1lIIl1I1III11ll ----> this chassis appears to be: $llllI1IlI1IllI1IlIl1111llIlIlll\n";
print "bits: $IIl1IlIIllII1I1lIlIIIIlIIII1lII ---> chassis type: $I1ll1I1I1lIlI1I1l1Ill1I111lllII\n\n";
print "Setting to 'unknown'\n\n";
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 0;
$I1ll1I1I1lIlI1I1l1Ill1I111lllII = 'unknown';
}
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII, $I1ll1I1I1lIlI1I1l1Ill1I111lllII;
}
sub lII11I1lIIIIllIIIIIIIIIl11lIIll {
my($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lI1I1I1Il11IIl1l1IIIll1llIIII(q[chassis status | grep 'Restore Policy' | cut -d':' -f2]);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub lIlIIllII1l11I11l11Il1I1I11Ill1 {
my $l1ll111I11lllI1I11I1IllI1l11llI = shift @_ || '0';
$l1ll111I11lllI1I11I1IllI1l11llI = int $l1ll111I11lllI1I11I1IllI1l11llI;
my $lllI1111l1IllI1IIlIl1I11I11I1ll;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = ll1I1II1IIll11IIllI1ll1IllI11I1();
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C410X') {
if ($l1ll111I11lllI1I11I1IllI1l11llI < 1 or $l1ll111I11lllI1I11I1IllI1l11llI > 16) {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlIIl1lIlIIl1IIIllII1ll1IIl1l11();
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
$lllI1111l1IllI1IIlIl1I11I11I1ll = 80 + ($l1ll111I11lllI1I11I1IllI1l11llI - 1);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = Il11IIIl11lIlll1llII1lI1llll1Il($lllI1111l1IllI1IIlIl1I11I11I1ll);
if (l1IIl1I1ll11III11I1III1lIlI11lI $IIl1IlIIllII1I1lIlIIIIlIIII1lII) {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 0;
}
if (l1IllIIIll1l1llIIl1lIIlll1I1llI $IIl1IlIIllII1I1lIlIIIIlIIII1lII) {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = hex($IIl1IlIIllII1I1lIlIIIIlIIII1lII) * 2;
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = sprintf('%d', $IIl1IlIIllII1I1lIlIIIIlIIII1lII);
}
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub lIIIII1lIllllIIIl11Il1I1IlI1I11 {
my $l1ll111I11lllI1I11I1IllI1l11llI = shift @_ || '0';
$l1ll111I11lllI1I11I1IllI1l11llI = int $l1ll111I11lllI1I11I1IllI1l11llI;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = ll1I1II1IIll11IIllI1ll1IllI11I1();
my $lIl11I1IIl111I1II11lIIllI1II1ll;
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C410X') {
if ($l1ll111I11lllI1I11I1IllI1l11llI < 1 or $l1ll111I11lllI1I11I1IllI1l11llI > 16) {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlIIl1lIlIIl1IIIllII1ll1IIl1l11();
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
$lIl11I1IIl111I1II11lIIllI1II1ll = lIlIIllII1l11I11l11Il1I1I11Ill1($l1ll111I11lllI1I11I1IllI1l11llI);
if (l1IIl1I1ll11III11I1III1lIlI11lI $lIl11I1IIl111I1II11lIIllI1II1ll) {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 'off';
}
if (l1IllIIIll1l1llIIl1lIIlll1I1llI $lIl11I1IIl111I1II11lIIllI1II1ll) {
$lIl11I1IIl111I1II11lIIllI1II1ll = int $lIl11I1IIl111I1II11lIIllI1II1ll;
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlIIl1lIlIIl1IIIllII1ll1IIl1l11();
if ($lIl11I1IIl111I1II11lIIllI1II1ll > 5) {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 'on';
}
if ($lIl11I1IIl111I1II11lIIllI1II1ll <= 5 and $lIl11I1IIl111I1II11lIIllI1II1ll >= 0) {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 'off';
}
}
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub lllll11Il11IlI1IlllIl111llI111l {
my $l1ll111I11lllI1I11I1IllI1l11llI = shift @_;
$l1ll111I11lllI1I11I1IllI1l11llI = int $l1ll111I11lllI1I11I1IllI1l11llI;
my $II1lII1ll1lIlI1lIlIlII11II1IIll;
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = ll1I1II1IIll11IIllI1ll1IllI11I1();
my $x;
my $l1I111l1I1l1lIIl1lI1Il1I1l11111;
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C410X') {
if ($l1ll111I11lllI1I11I1IllI1l11llI < 1 or $l1ll111I11lllI1I11I1IllI1l11llI > 16) {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlIIl1lIlIIl1IIIllII1ll1IIl1l11();
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlI1I1I11I1l1II1II1lll11I1IlIll();
$x = 1 << $l1ll111I11lllI1I11I1IllI1l11llI - 1;
$l1I111l1I1l1lIIl1lI1Il1I1l11111 = sprintf('0x%02x 0x%02x', $x & 255, ($x & 65280) >> 8);
IlI11l1II111I1I111IllIIllIll1lI 'toggle_gpgpu_sled_power';
($II1lII1ll1lIlI1lIlIlII11II1IIll, $lIl11I1IIl111I1II11lIIllI1II1ll) = l1lII1IlI1l111llIIllII1I1lIl11I("raw 0x30 0xf0 $l1I111l1I1l1lIIl1lI1Il1I1l11111");
sleep 2;
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub Il1llIllII111IllIIIlI1Il11lIl11 {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = ll1I1II1IIll11IIllI1ll1IllI11I1();
my $II1lII1ll1lIlI1lIlIlII11II1IIll;
my $IllI111Il11I11IlIlIII1llllll11l;
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my $Ill1I1Illlll1lllIlIlll1lII111I1;
my $ll1lII1llllI1l1lIlIIIIIl1llIII1;
my $l1llll1l1l1llI11I1111l1ll11llll;
$IllI111Il11I11IlIlIII1llllll11l = shift @_;
$IllI111Il11I11IlIlIII1llllll11l = I11lllII1lll111II1IllIIl1II1llI($IllI111Il11I11IlIlIII1llllll11l);
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6105' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C6100') {
$lIl11I1IIl111I1II11lIIllI1II1ll = II1I11llIl11lII11lIIIl1II11lIII();
if ($lIl11I1IIl111I1II11lIIllI1II1ll != 4) {
printf "Attempted to set fan speed from node %s. Please do this from node 4.\n", $lIl11I1IIl111I1II11lIIllI1II1ll;
return l111I11lIllllI1l1IlIIlIIl1l1l1I();
}
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6145') {
$lIl11I1IIl111I1II11lIIllI1II1ll = II1I11llIl11lII11lIIIl1II11lIII();
if ($lIl11I1IIl111I1II11lIIllI1II1ll != 2) {
printf "Attempted to set fan speed from node %s. Please do this from node 2.\n", $lIl11I1IIl111I1II11lIIllI1II1ll;
return l111I11lIllllI1l1IlIIlIIl1l1l1I();
}
}
if (not $IllI111Il11I11IlIlIII1llllll11l eq 'auto') {
if ($IllI111Il11I11IlIlIII1llllll11l < 0 or $IllI111Il11I11IlIlIII1llllll11l > 100) {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlIIl1lIlIIl1IIIllII1ll1IIl1l11();
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6105') {
if ($IllI111Il11I11IlIlIII1llllll11l eq 'auto') {
$IllI111Il11I11IlIlIII1llllll11l = '0';
}
$lIl11I1IIl111I1II11lIIllI1II1ll = lllIl11IlIIIl111lIIl11l11IIlIl1($IllI111Il11I11IlIlIII1llllll11l, 1);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I("raw 0x34 0x74 0x01 0x$lIl11I1IIl111I1II11lIIllI1II1ll");
my(@lIlIIlIlIl1l1lI1lIll11lI11lIl1I) = split(' ', $IIl1IlIIllII1I1lIlIIIIlIIII1lII, 0);
if ($lIlIIlIlIl1l1lI1lIll11lI11lIl1I[0] eq '01') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 1;
}
else {
printf "Error: command did not appear to work\n";
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C2100' or $III111lll1l1l111lIIlll1II1IlI11 eq 'C1100') {
if ($IllI111Il11I11IlIlIII1llllll11l eq 'auto') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x30 0x11 0xFF');
}
else {
$IllI111Il11I11IlIlIII1llllll11l = floor($IllI111Il11I11IlIlIII1llllll11l / 100 * 63);
$lIl11I1IIl111I1II11lIIllI1II1ll = lllIl11IlIIIl111lIIl11l11IIlIl1($IllI111Il11I11IlIlIII1llllll11l, 1);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I("raw 0x30 0x11 0x00 0x$lIl11I1IIl111I1II11lIIllI1II1ll");
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100') {
if ($IllI111Il11I11IlIlIII1llllll11l eq 'auto') {
$IllI111Il11I11IlIlIII1llllll11l = 0;
}
else {
$IllI111Il11I11IlIlIII1llllll11l = $IllI111Il11I11IlIlIII1llllll11l | 128;
}
$lIl11I1IIl111I1II11lIIllI1II1ll = lllIl11IlIIIl111lIIl11l11IIlIl1($IllI111Il11I11IlIlIII1llllll11l, 1);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I("raw 0x34 0x61 0x$lIl11I1IIl111I1II11lIIllI1II1ll");
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') {
if ($IllI111Il11I11IlIlIII1llllll11l eq 'auto') {
$ll1lII1llllI1l1lIlIIIIIl1llIII1 = 160;
$l1llll1l1l1llI11I1111l1ll11llll = 0;
}
else {
$ll1lII1llllI1l1lIlIIIIIl1llIII1 = 32;
$l1llll1l1l1llI11I1111l1ll11llll = $IllI111Il11I11IlIlIII1llllll11l;
}
$ll1lII1llllI1l1lIlIIIIIl1llIII1 = lllIl11IlIIIl111lIIl11l11IIlIl1($ll1lII1llllI1l1lIlIIIIIl1llIII1, 1);
$l1llll1l1l1llI11I1111l1ll11llll = lllIl11IlIIIl111lIIl11l11IIlIl1($l1llll1l1l1llI11I1111l1ll11llll, 1);
if ($IllI111Il11I11IlIlIII1llllll11l eq 'auto') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I("raw 0x30 0x19 0x$ll1lII1llllI1l1lIlIIIIIl1llIII1 0x00");
}
else {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I("raw 0x30 0x19 0x$ll1lII1llllI1l1lIlIIIIIl1llIII1 0x$l1llll1l1l1llI11I1111l1ll11llll");
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub III1lll11IllIlI1Il1lI1I11II1llI {
my($II1Ill1IllI1l1Il1ll11l1l1lll1ll, $I11Ill1111l1II1IIl1lll11IlI1IIl) = @_;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11();
my $I1I1I111I1lI1111l11lI111I11I1l1 = II1IlIl1l1IIll1II1l1lllll1I1lIl($I11Ill1111l1II1IIl1lll11IlI1IIl, $l11I1l1l1l111ll1I1I1I11ll1l11II);
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I("raw 0x30 0x20 0x11 $I1I1I111I1lI1111l11lI111I11I1l1");
return;
}
Il1II1IIl1lIlI1I1lll1l1lII1l111 ;
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub I11IlII1I1IIlllIIll1II1I1IIlIII {
my($II1Ill1IllI1l1Il1ll11l1l1lll1ll, $lllll1Il11Ill1l11lI11lII1Il111I, $l1l1l11I11IlI111IlIlII11III1II1, $l1II111l1IIIll11lI11llII1IIIllI, $lII1lI1IIll1llII11111111II1Il11, $III111IlI1lIIlIl1IlI11I1II111I1, $llIl111l11lll1IlI1l1l1IIlIl11lI) = @_;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11();
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my $IllllI1I111IlIl1111IlIIll1l1l11 = '';
if (not defined $llIl111l11lll1IlI1l1l1IIlIl11lI) {
printf "Usage:\n";
printf " Provide the mac address in hex, separated by spaces as such:\n";
printf "\n";
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll aa bb cc dd ee ff\n";
printf "\n";
lI1II1II1lll11111lll1llIIlIllll ;
}
$lllll1Il11Ill1l11lI11lII1Il111I = sprintf('0x%02x', hex $lllll1Il11Ill1l11lI11lII1Il111I);
$l1l1l11I11IlI111IlIlII11III1II1 = sprintf('0x%02x', hex $l1l1l11I11IlI111IlIlII11III1II1);
$l1II111l1IIIll11lI11llII1IIIllI = sprintf('0x%02x', hex $l1II111l1IIIll11lI11llII1IIIllI);
$lII1lI1IIll1llII11111111II1Il11 = sprintf('0x%02x', hex $lII1lI1IIll1llII11111111II1Il11);
$III111IlI1lIIlIl1IlI11I1II111I1 = sprintf('0x%02x', hex $III111IlI1lIIlIl1IlI11I1II111I1);
$llIl111l11lll1IlI1l1l1IIlIl11lI = sprintf('0x%02x', hex $llIl111l11lll1IlI1l1l1IIlIl11lI);
$IllllI1I111IlIl1111IlIIll1l1l11 = "$lllll1Il11Ill1l11lI11lII1Il111I $l1l1l11I11IlI111IlIlII11III1II1 $l1II111l1IIIll11lI11llII1IIIllI $lII1lI1IIll1llII11111111II1Il11 $III111IlI1lIIlIl1IlI11I1II111I1 $llIl111l11lll1IlI1l1l1IIlIl11lI";
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I('raw 0x06 0x05 0x64 0x52 0x45 0x4d 0x24 0x73 0x74 0x38');
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lI1I1I1Il11IIl1l1IIIll1llIIII("raw 0x0c 0x01 0x01 0x05 $IllllI1I111IlIl1111IlIIll1l1l11", 'noerr');
return;
}
Il1II1IIl1lIlI1I1lll1l1lII1l111 ;
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub III1IIl1ll11ll1IllI111I1I11l1lI {
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_;
my($II1Ill1IllI1l1Il1ll11l1l1lll1ll, $Il1Il1I1lIlllIIll1ll111111IllIl) = @_;
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 < 2) {
printf "Usage:\n";
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll mac_addr_file_name\n";
printf "\n";
printf "This function takes the output of 'print_both_macs' as input, and sets both BMC mac addresses.\n";
printf "\n";
lI1II1II1lll11111lll1llIIlIllll ;
}
if (not $lI1l11ll1II11llII1lllllllIIIIlI) {
printf "\n";
printf "This function cannot be used remotely, because it is possible to render the BMC inaccessible.\n";
printf "\n";
exit 1;
}
my @lIlIIIlIIIIIlIl1I1I1Il1I1l11l1l;
my $IIl1I1111I11l11lIIl11I1lI111III = '';
my $ll1lIll1l1Il111I11Il1l11ll1lIll = '';
my $lI1II11II1llIIIlIll111lIIlI11ll;
my $lIll11llll1IIIII1IIIIl1llII1llI;
my $lIl11I1IIl111I1II11lIIllI1II1ll;
die "\nError: Could not open BMC MAC address file $Il1Il1I1lIlllIIll1ll111111IllIl\n\n" unless open TMPFILE, $Il1Il1I1lIlllIIll1ll111111IllIl;
while (defined($_ = <TMPFILE>)) {
$lIl11I1IIl111I1II11lIIllI1II1ll = $_;
$lIl11I1IIl111I1II11lIIllI1II1ll = llIlIllIlll11llIll11l11lIlIll1l($lIl11I1IIl111I1II11lIIllI1II1ll);
$lIl11I1IIl111I1II11lIIllI1II1ll = I11lllII1lll111II1IllIIl1II1llI($lIl11I1IIl111I1II11lIIllI1II1ll);
@lIlIIIlIIIIIlIl1I1I1Il1I1l11l1l = split(/,/, $lIl11I1IIl111I1II11lIIllI1II1ll, 0);
$lI1II11II1llIIIlIll111lIIlI11ll = I11lllII1lll111II1IllIIl1II1llI($lIlIIIlIIIIIlIl1I1I1Il1I1l11l1l[0]);
$lIll11llll1IIIII1IIIIl1llII1llI = I11lllII1lll111II1IllIIl1II1llI($lIlIIIlIIIIIlIl1I1I1Il1I1l11l1l[1]);
if ($lI1II11II1llIIIlIll111lIIlI11ll eq 'shared') {
$IIl1I1111I11l11lIIl11I1lI111III = $lIll11llll1IIIII1IIIIl1llII1llI;
}
if ($lI1II11II1llIIIlIll111lIIlI11ll eq 'dedicated') {
$ll1lIll1l1Il111I11Il1l11ll1lIll = $lIll11llll1IIIII1IIIIl1llII1llI;
}
}
close TMPFILE;
if ($IIl1I1111I11l11lIIl11I1lI111III eq '' or $ll1lIll1l1Il111I11Il1l11ll1lIll eq '') {
printf "File provided must contain both shared and dedicated BMC MAC addresses.\n";
exit 1;
}
my $II1lI1I1I11l1I11Il11I1llI1l11I1;
my @Ill1l1l11I1lllIII1I1l1IlIllllII;
my $lII11l1I1IIll1l1IlIlll1I1lI1lI1;
$lII11l1I1IIll1l1IlIlll1I1lI1lI1 = I1l1l1Il1lI11I1l1lI1111IIlI1lll();
if ($lII11l1I1IIll1l1IlIlll1I1lI1lI1 eq 'shared') {
$II1lI1I1I11l1I11Il11I1llI1l11I1 = $IIl1I1111I11l11lIIl11I1lI111III;
}
if ($lII11l1I1IIll1l1IlIlll1I1lI1lI1 eq 'dedicated') {
$II1lI1I1I11l1I11Il11I1llI1l11I1 = $ll1lIll1l1Il111I11Il1l11ll1lIll;
}
@Ill1l1l11I1lllIII1I1l1IlIllllII = split(/:/, $II1lI1I1I11l1I11Il11I1llI1l11I1, 0);
print "Setting $lII11l1I1IIll1l1IlIlll1I1lI1lI1 MAC to: $II1lI1I1I11l1I11Il11I1llI1l11I1 \n";
I11IlII1I1IIlllIIll1II1I1IIlIII 'set_bmc_mac', $Ill1l1l11I1lllIII1I1l1IlIllllII[0], $Ill1l1l11I1lllIII1I1l1IlIllllII[1], $Ill1l1l11I1lllIII1I1l1IlIllllII[2], $Ill1l1l11I1lllIII1I1l1IlIllllII[3], $Ill1l1l11I1lllIII1I1l1IlIllllII[4], $Ill1l1l11I1lllIII1I1l1IlIllllII[5];
sleep 10;
ll1l1IlI11I11IlIll1llIIlIIIllIl ;
print "(switching bmc nic)\n";
llIIII1I1ll11l11I1I1lIIIlI11l1l('nic_mode', 'toggle', '', 'silent');
sleep 30;
ll1l1IlI11I11IlIll1llIIlIIIllIl ;
$lII11l1I1IIll1l1IlIlll1I1lI1lI1 = I1l1l1Il1lI11I1l1lI1111IIlI1lll();
if ($lII11l1I1IIll1l1IlIlll1I1lI1lI1 eq 'shared') {
$II1lI1I1I11l1I11Il11I1llI1l11I1 = $IIl1I1111I11l11lIIl11I1lI111III;
}
if ($lII11l1I1IIll1l1IlIlll1I1lI1lI1 eq 'dedicated') {
$II1lI1I1I11l1I11Il11I1llI1l11I1 = $ll1lIll1l1Il111I11Il1l11ll1lIll;
}
@Ill1l1l11I1lllIII1I1l1IlIllllII = split(/:/, $II1lI1I1I11l1I11Il11I1llI1l11I1, 0);
print "Setting $lII11l1I1IIll1l1IlIlll1I1lI1lI1 MAC to: $II1lI1I1I11l1I11Il11I1llI1l11I1 \n";
I11IlII1I1IIlllIIll1II1I1IIlIII 'set_bmc_mac', $Ill1l1l11I1lllIII1I1l1IlIllllII[0], $Ill1l1l11I1lllIII1I1l1IlIllllII[1], $Ill1l1l11I1lllIII1I1l1IlIllllII[2], $Ill1l1l11I1lllIII1I1l1IlIllllII[3], $Ill1l1l11I1lllIII1I1l1IlIllllII[4], $Ill1l1l11I1lllIII1I1l1IlIllllII[5];
sleep 10;
ll1l1IlI11I11IlIll1llIIlIIIllIl ;
print "(switching bmc nic)\n";
llIIII1I1ll11l11I1I1lIIIlI11l1l('nic_mode', 'toggle', '', 'silent');
sleep 30;
ll1l1IlI11I11IlIll1llIIlIIIllIl ;
print "done.\n";
print "\n";
}
sub IlI1I1lII1l1111I11lIl1IllIl11ll {
my $i;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my $llll1lII1l11I1IlllllIIllll1l1II;
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_;
my($II1Ill1IllI1l1Il1ll11l1l1lll1ll, $IIIl11lllllIIlllI1l1l1ll1IlI1I1, $l1ll111lI11IlIl1lI111Il11lIlIlI) = @_;
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 < 2) {
printf "Usage:\n";
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll get|set [timeout_in_seconds; 0 to disable]\n";
printf "\n";
lI1II1II1lll11111lll1llIIlIllll ;
}
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'get') {
$lIl11I1IIl111I1II11lIIllI1II1ll = I1Il11Il1l1IIIllIlI111llIlIll1l(12, 4, 0, 4);
$lIl11I1IIl111I1II11lIIllI1II1ll = llII1lIIIIIll1II1ll1I111l11II1l($lIl11I1IIl111I1II11lIIllI1II1ll);
$lIl11I1IIl111I1II11lIIllI1II1ll = IIl1l1IlI1lII11lI1I11Ill1IlllIl($lIl11I1IIl111I1II11lIIllI1II1ll);
printf "%d\n", $lIl11I1IIl111I1II11lIIllI1II1ll;
return;
}
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'set') {
$lIl11I1IIl111I1II11lIIllI1II1ll = lllIl11IlIIIl111lIIl11l11IIlIl1($l1ll111lI11IlIl1lI111Il11lIlIlI, 4);
$lIl11I1IIl111I1II11lIIllI1II1ll = llII1lIIIIIll1II1ll1I111l11II1l($lIl11I1IIl111I1II11lIIllI1II1ll);
$lIl11I1IIl111I1II11lIIllI1II1ll = IlIll11llI11ll1llIIIlll1l1IlII1($lIl11I1IIl111I1II11lIIllI1II1ll);
I111IlIllI1lI1Il11lIllI1llI1IIl 12, 4, 0, 4, $lIl11I1IIl111I1II11lIIllI1II1ll;
print "\n";
return;
}
lI1II1II1lll11111lll1llIIlIllll ;
}
sub lIIIl1lIllI1IIlIl1I111lIlIIl1Il {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = I1IllIl11lIIlllI1IlI1l1III1I1l1();
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $IIl1IlIIllII1I1lIlIIIIlIIII1lII) {
Il1II1IIl1lIlI1I1lll1l1lII1l111 ;
}
print "$IIl1IlIIllII1I1lIlIIIIlIIII1lII\n";
}
sub lIIIIlII1llII1llIlll11l11lI1IlI {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lIlIIIII1IIl1IIlIIlIll11IlI1l();
printf "%s\n", $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub Il11IlllIlllll1l1llIlIlI11lIl1l {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = II11ll1I1I11l1lIlI1l1I1IllI11l1();
printf "%s\n", $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub lIlIIlI1111IlIIIl111lII1lIl1lll {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = I1lII1Il1lIlII1I11I1I111IlI1I1I();
printf "%s\n", $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub l11Ill11lIIIlIlI1l1I1l1I11I11lI {
my $i;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my $llll1lII1l11I1IlllllIIllll1l1II;
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I('mc reset cold');
print "\n";
}
sub llI1l1I1ll1l1llIlIll1l1I11II111 {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IIIl11111lI1II111lllIIIl111II11();
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my $llll1lII1l11I1IlllllIIllll1l1II;
my $I11I1IIIlllIIlIl11IllI1ll1llllI;
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_;
my($II1Ill1IllI1l1Il1ll11l1l1lll1ll, $lIlI1lll1l11I1111Il1I111Il11ll1) = @_;
IlI11l1II111I1I111IllIIllIll1lI 'set_asset_tag';
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100') {
$lIlI1lll1l11I1111Il1I111Il11ll1 = substr($lIlI1lll1l11I1111Il1I111Il11ll1, 0, 10);
$I11I1IIIlllIIlIl11IllI1ll1llllI = II1IlIl1l1IIll1II1l1lllll1I1lIl($lIlI1lll1l11I1111Il1I111Il11ll1, $l11I1l1l1l111ll1I1I1I11ll1l11II);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I("raw 0x34 0x12 $I11I1IIIlllIIlIl11IllI1ll1llllI");
print "\n";
return;
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6145') {
$lIlI1lll1l11I1111Il1I111Il11ll1 = substr($lIlI1lll1l11I1111Il1I111Il11ll1, 0, 20);
$I11I1IIIlllIIlIl11IllI1ll1llllI = II1IlIl1l1IIll1II1l1lllll1I1lIl($lIlI1lll1l11I1111Il1I111Il11ll1, $l11I1l1l1l111ll1I1I1I11ll1l11II);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lII1IlI1l111llIIllII1I1lIl11I("raw 0x34 0x12 $I11I1IIIlllIIlIl11IllI1ll1llllI");
print "\n";
return;
}
print "\n";
Il1II1IIl1lIlI1I1lll1l1lII1l111 ;
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub llI1lIl1111IIlI1I1I1II11llI1llI {
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_;
my($II1Ill1IllI1l1Il1ll11l1l1lll1ll, $IIIl11lllllIIlllI1l1l1ll1IlI1I1, $Il111ll111ll11lIlll1lIl1l1IIIlI) = @_;
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 < 2) {
printf "Usage:\n";
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll get|set [hostname]\n";
printf "\n";
lI1II1II1lll11111lll1llIIlIllll ;
}
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'get') {
$lIl11I1IIl111I1II11lIIllI1II1ll = I1lII11lIIIl1I1Ill1l1I11I1IlIII();
printf "$lIl11I1IIl111I1II11lIIllI1II1ll\n";
return;
}
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'set') {
lIlll11lIIlIIl1IIII1I1II111lIIl $Il111ll111ll11lIlll1lIl1l1IIIlI;
return;
}
lI1II1II1lll11111lll1llIIlIllll ;
}
my $l1II1Il1III1lIIIII1Il1II11IlI1I = 'zyz';
sub lI1I1lllIl1l1l1IllllIl1IIIlIl11 {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I1lII11lIIIl1I1Ill1l1I11I1IlIII();
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
if (not $IIl1IlIIllII1I1lIlIIIIlIIII1lII =~ /$l1II1Il1III1lIIIII1Il1II11IlI1I/) {
return 'none';
}
my(@lll11lI1lll1l1lllIIIlI1l1IlIl1l) = split(/$l1II1Il1III1lIIIII1Il1II11IlI1I/, $IIl1IlIIllII1I1lIlIIIIlIIII1lII, 0);
shift @lll11lI1lll1l1lllIIIlI1l1IlIl1l;
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $lll11lI1lll1l1lllIIIlI1l1IlIl1l[0] || '';
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub Ill1I1lIlI11l1Ill1Ill11ll1lll11 {
my $lIIl1l1l1I11I1ll11l1llII11I111l = shift @_;
my $llIl1llIllI111l1III1IlI1l1lllII;
my @lll11lI1lll1l1lllIIIlI1l1IlIl1l;
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = I1lII11lIIIl1I1Ill1l1I11I1IlIII();
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
if (not $IIl1IlIIllII1I1lIlIIIIlIIII1lII =~ /$l1II1Il1III1lIIIII1Il1II11IlI1I/) {
$llIl1llIllI111l1III1IlI1l1lllII = $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
else {
@lll11lI1lll1l1lllIIIlI1l1IlIl1l = split(/$l1II1Il1III1lIIIII1Il1II11IlI1I/, $IIl1IlIIllII1I1lIlIIIIlIIII1lII, 0);
$llIl1llIllI111l1III1IlI1l1lllII = $lll11lI1lll1l1lllIIIlI1l1IlIl1l[0];
}
if ($lIIl1l1l1I11I1ll11l1llII11I111l eq '') {
$lIl11I1IIl111I1II11lIIllI1II1ll = $llIl1llIllI111l1III1IlI1l1lllII;
}
else {
$lIl11I1IIl111I1II11lIIllI1II1ll = $llIl1llIllI111l1III1IlI1l1lllII . $l1II1Il1III1lIIIII1Il1II11IlI1I . $lIIl1l1l1I11I1ll11l1llII11I111l;
}
lIlll11lIIlIIl1IIII1I1II111lIIl $lIl11I1IIl111I1II11lIIllI1II1ll;
}
sub lII111lIl1lIlllII1I11IlIlIlIIIl {
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my $l1IlIIlI1I1llllll11IIl11l1III1I;
my $lIl1llIlIII1lIIllIll1llII1IllII = 'zyz';
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_;
my($II1Ill1IllI1l1Il1ll11l1l1lll1ll, $IIIl11lllllIIlllI1l1l1ll1IlI1I1, $I1111IIll1IlI1lIIllll1lIlll1lI1) = @_;
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 < 2) {
printf "Usage:\n";
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll get|set|clear [state_value]\n";
printf "\n";
lI1II1II1lll11111lll1llIIlIllll ;
}
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'get') {
$lIl11I1IIl111I1II11lIIllI1II1ll = lI1I1lllIl1l1l1IllllIl1IIIlIl11();
printf "$lIl11I1IIl111I1II11lIIllI1II1ll\n";
return;
}
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'set') {
Ill1I1lIlI11l1Ill1Ill11ll1lll11 $I1111IIll1IlI1lIIllll1lIlll1lI1;
return;
}
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'clear') {
Ill1I1lIlI11l1Ill1Ill11ll1lll11 '';
return;
}
lI1II1II1lll11111lll1llIIlIllll ;
}
sub IlI1l1ll1lI111llIlIIIlI1111IIll {
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my @Illl1I1I1ll1lll11llI1l1lIIIlI1I;
my $lI1IllIIII11IIIlI1lII11l1l1lII1;
my $IllIIlll1lIl11llIlIlII1llll1ll1;
my $llI1lI1l1lll11lIII11IlI1IlII1lI;
my $lIII11l1llI1Il1III1II11lIlllII1;
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lI1I1I1Il11IIl1l1IIIll1llIIII('sdr type fan -v ');
$lIl11I1IIl111I1II11lIIllI1II1ll = I11lllII1lll111II1IllIIl1II1llI($lIl11I1IIl111I1II11lIIllI1II1ll);
my(@lI11IIIl11II11l111lIII1III11lI1) = split(/Sensor ID/, $lIl11I1IIl111I1II11lIIllI1II1ll, 0);
shift @lI11IIIl11II11l111lIII1III11lI1;
my @Ill1I111ll11l1ll1IllII1IlIIl11l;
foreach my $lI1II1Il11llI1l11IllIIl1l1l1lll (@lI11IIIl11II11l111lIII1III11lI1) {
my @l1IIl11IIIIll11II1l11l1I11llI1l;
$lI1II1Il11llI1l11IllIIl1l1l1lll = 'Sensor ID' . $lI1II1Il11llI1l11IllIIl1l1l1lll;
$lI1IllIIII11IIIlI1lII11l1l1lII1 = '';
$IllIIlll1lIl11llIlIlII1llll1ll1 = '';
$llI1lI1l1lll11lIII11IlI1IlII1lI = '';
$lIII11l1llI1Il1III1II11lIlllII1 = '';
$lI1IllIIII11IIIlI1lII11l1l1lII1 = I1I1IIlll111ll11111lII1IIlIllIl('Sensor ID', $lI1II1Il11llI1l11IllIIl1l1l1lll);
$IllIIlll1lIl11llIlIlII1llll1ll1 = I1I1IIlll111ll11111lII1IIlIllIl('Sensor Reading', $lI1II1Il11llI1l11IllIIl1l1l1lll);
$lIII11l1llI1Il1III1II11lIlllII1 = I1I1IIlll111ll11111lII1IIlIllIl('Upper critical', $lI1II1Il11llI1l11IllIIl1l1l1lll);
$lI1IllIIII11IIIlI1lII11l1l1lII1 = I11lllII1lll111II1IllIIl1II1llI(ll11ll111I1IIIIll1ll1l1IlIIIl1l('\\(', $lI1IllIIII11IIIlI1lII11l1l1lII1));
$IllIIlll1lIl11llIlIlII1llll1ll1 = I11lllII1lll111II1IllIIl1II1llI(ll11ll111I1IIIIll1ll1l1IlIIIl1l('\\(', $IllIIlll1lIl11llIlIlII1llll1ll1));
$lIII11l1llI1Il1III1II11lIlllII1 = sprintf('%d', $lIII11l1llI1Il1III1II11lIlllII1);
if ($IllIIlll1lIl11llIlIlII1llll1ll1 =~ /no reading/i) {
$llI1lI1l1lll11lIII11IlI1IlII1lI = l111I11lIllllI1l1IlIIlIIl1l1l1I();
}
elsif ($IllIIlll1lIl11llIlIlII1llll1ll1 =~ /Disabled/i) {
$llI1lI1l1lll11lIII11IlI1IlII1lI = I1I11lIIll1lIIII1II11IlIl1ll11I();
}
else {
if ($I1I1IllI1Il11111111II11lI11I1lI eq 'C6220') {
my $III11Il11IIIlIIlllI11IlIlIII1lI = $IllIIlll1lIl11llIlIlII1llll1ll1 / 16380 * 100;
$llI1lI1l1lll11lIII11IlI1IlII1lI = sprintf('%d', $III11Il11IIIlIIlllI11IlIlIII1lI);
}
elsif ($I1I1IllI1Il11111111II11lI11I1lI eq 'C8220') {
my $III11Il11IIIlIIlllI11IlIlIII1lI = $IllIIlll1lIl11llIlIlII1llll1ll1 / 7500 * 100;
$llI1lI1l1lll11lIII11IlI1IlII1lI = sprintf('%d', $III11Il11IIIlIIlllI11IlIlIII1lI);
}
else {
my $III11Il11IIIlIIlllI11IlIlIII1lI = $IllIIlll1lIl11llIlIlII1llll1ll1 / $lIII11l1llI1Il1III1II11lIlllII1 * 100;
$llI1lI1l1lll11lIII11IlI1IlII1lI = sprintf('%d', $III11Il11IIIlIIlllI11IlIlIII1lI);
}
if ($llI1lI1l1lll11lIII11IlI1IlII1lI > 100) {
$llI1lI1l1lll11lIII11IlI1IlII1lI = 100;
}
}
push @l1IIl11IIIIll11II1l11l1I11llI1l, $lI1IllIIII11IIIlI1lII11l1l1lII1;
push @l1IIl11IIIIll11II1l11l1I11llI1l, $IllIIlll1lIl11llIlIlII1llll1ll1;
push @l1IIl11IIIIll11II1l11l1I11llI1l, $lIII11l1llI1Il1III1II11lIlllII1;
push @l1IIl11IIIIll11II1l11l1I11llI1l, $llI1lI1l1lll11lIII11IlI1IlII1lI;
push @Ill1I111ll11l1ll1IllII1IlIIl11l, \@l1IIl11IIIIll11II1l11l1I11llI1l;
}
return \@Ill1I111ll11l1ll1IllII1IlIIl11l;
}
sub lIIIIIIlIll1111lIIl11lIll1lll11 {
my $I1IIIlI1ll11Ill11lIl1I1l1I1Il1I = 0;
my $ll1Ill1Il1lI1l11111llIll1l1ll11 = 0;
my $I11l1lIl1lII111I1lI1IIll1l1Il1l;
my $lI1l1lIII1llIlI11111IllIl1lIl1I = IlI1l1ll1lI111llIlIIIlI1111IIll();
foreach my $lIlIl1l1IIlllIIlIIlII1Il1II1Ill (@$lI1l1lIII1llIlI11111IllIl1lIl1I) {
my(@llllII11l1l1lI1I1I1lI11IlIIIIIl) = @$lIlIl1l1IIlllIIlIIlII1Il1II1Ill;
if (l1IIl1I1ll11III11I1III1lIlI11lI $llllII11l1l1lI1I1I1lI11IlIIIIIl[3]) {
return l111I11lIllllI1l1IlIIlIIl1l1l1I();
}
if (lIll1lIIllIII1IlI11l111llII1I1I $llllII11l1l1lI1I1I1lI11IlIIIIIl[3]) {
return I1I11lIIll1lIIII1II11IlIl1ll11I();
}
$ll1Ill1Il1lI1l11111llIll1l1ll11 += $llllII11l1l1lI1I1I1lI11IlIIIIIl[3];
++$I1IIIlI1ll11Ill11lIl1I1l1I1Il1I;
}
$I11l1lIl1lII111I1lI1IIll1l1Il1l = $ll1Ill1Il1lI1l11111llIll1l1ll11 / $I1IIIlI1ll11Ill11lIl1I1l1I1Il1I;
$I11l1lIl1lII111I1lI1IIll1l1Il1l = sprintf('%d', $I11l1lIl1lII111I1lI1IIll1l1Il1l);
return $I11l1lIl1lII111I1lI1IIll1l1Il1l;
}
sub IIl1l1lIlII1lI11IIIlllllIII1II1 {
my $l11lIIII11IlIlI1l1l1lIlI1I1l1II = shift @_;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = '';
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my @llllI1l1I1II1Ill1Illl111IlI11Il;
my $II1Ill1IllI1l1Il1ll11l1l1lll1ll;
my $I11lIllIl1IIIlIII111lIl11l11IIl;
my $Ill1ll1ll1IllI11l111lIl11III11I;
my $I1l1Ill1111IlIll111Il1lllIIlll1;
my $lllII1l111I11llIl1lI111lIllI1I1;
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lI1I1I1Il11IIl1l1IIIll1llIIII(qq[sdr type "$l11lIIII11IlIlI1l1l1lIlI1I1l1II" ]);
$lIl11I1IIl111I1II11lIIllI1II1ll = I11lllII1lll111II1IllIIl1II1llI($lIl11I1IIl111I1II11lIIllI1II1ll);
$l11lIIII11IlIlI1l1l1lIlI1I1l1II = lc $l11lIIII11IlIlI1l1l1lIlI1I1l1II;
my(@Illl1I1I1ll1lll11llI1l1lIIIlI1I) = split(/\n/, $lIl11I1IIl111I1II11lIIllI1II1ll, 0);
foreach my $l11IIIIllIIl1lll111II11lI1ll1l1 (@Illl1I1I1ll1lll11llI1l1lIIIlI1I) {
$l11IIIIllIIl1lll111II11lI1ll1l1 = l11l1I1Ill1Il11llIlIlIlllll1l1l($l11IIIIllIIl1lll111II11lI1ll1l1);
@llllI1l1I1II1Ill1Illl111IlI11Il = split(/\|/, $l11IIIIllIIl1lll111II11lI1ll1l1, 0);
$II1Ill1IllI1l1Il1ll11l1l1lll1ll = I11lllII1lll111II1IllIIl1II1llI($llllI1l1I1II1Ill1Illl111IlI11Il[0]);
$I11lIllIl1IIIlIII111lIl11l11IIl = I11lllII1lll111II1IllIIl1II1llI($llllI1l1I1II1Ill1Illl111IlI11Il[1]);
$Ill1ll1ll1IllI11l111lIl11III11I = I11lllII1lll111II1IllIIl1II1llI($llllI1l1I1II1Ill1Illl111IlI11Il[2]);
$I1l1Ill1111IlIll111Il1lllIIlll1 = I11lllII1lll111II1IllIIl1II1llI($llllI1l1I1II1Ill1Illl111IlI11Il[3]);
$lllII1l111I11llIl1lI111lIllI1I1 = I11lllII1lll111II1IllIIl1II1llI($llllI1l1I1II1Ill1Illl111IlI11Il[4]);
$lllII1l111I11llIl1lI111lIllI1I1 =~ s/,/|/g;
$lIl11I1IIl111I1II11lIIllI1II1ll = sprintf("ipmi,%s,%s,%s,%s,%s\n", $l11lIIII11IlIlI1l1l1lIlI1I1l1II, $I11lIllIl1IIIlIII111lIl11l11IIl, $II1Ill1IllI1l1Il1ll11l1l1lll1ll, $lllII1l111I11llIl1lI111lIllI1I1, $Ill1ll1ll1IllI11l111lIl11III11I);
$lIl11I1IIl111I1II11lIIllI1II1ll = lc $lIl11I1IIl111I1II11lIIllI1II1ll;
$IIl1IlIIllII1I1lIlIIIIlIIII1lII .= $lIl11I1IIl111I1II11lIIllI1II1ll;
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub l1lIll11111Il1IllIll1ll11I1l1I1 {
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_;
my $II1Il1l1I1Illll1I1ll11IIIlI1IlI = shift @_;
my $l11II1l11I1Il11l1II1llIIIIll1ll = shift @_;
my @Illl1I1I1ll1lll11llI1l1lIIIlI1I;
my @llllI1l1I1II1Ill1Illl111IlI11Il;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = '';
my $lIIII1l11llIIl1IlIl111IllIIIll1 = '';
my $II1l1ll1I111I1IlIIlll1lllIIlIll = '';
@Illl1I1I1ll1lll11llI1l1lIIIlI1I = split(/\n/, $l1l1lII111IIlllII11IIIl1IIllI1I, 0);
foreach my $l11IIIIllIIl1lll111II11lI1ll1l1 (@Illl1I1I1ll1lll11llI1l1lIIIlI1I) {
$II1l1ll1I111I1IlIIlll1lllIIlIll = '';
$lIIII1l11llIIl1IlIl111IllIIIll1 = '';
my($IIll11ll1llll1llII1lIIIIIlllll1, $IIl1l1ll1IllIl11111IIlII1lI11I1, $I11lIllIl1IIIlIII111lIl11l11IIl, $II1Ill1IllI1l1Il1ll11l1l1lll1ll, $lllII1l111I11llIl1lI111lIllI1I1, $Ill1ll1ll1IllI11l111lIl11III11I) = split(/,/, $l11IIIIllIIl1lll111II11lI1ll1l1, 7);
if ($IIll11ll1llll1llII1lIIIIIlllll1 ne 'ipmi') {
print "not ipmi\n";
$IIl1IlIIllII1I1lIlIIIIlIIII1lII .= "$l11IIIIllIIl1lll111II11lI1ll1l1" . "\n";
next;
}
$I11lIllIl1IIIlIII111lIl11l11IIl =~ s/h//g;
$I11lIllIl1IIIlIII111lIl11l11IIl = '0x' . $I11lIllIl1IIIlIII111lIl11l11IIl;
if ($IIl1l1ll1IllIl11111IIlII1lI11I1 eq 'fan') {
$lIIII1l11llIIl1IlIl111IllIIIll1 = 'fan';
}
if ($IIl1l1ll1IllIl11111IIlII1lI11I1 eq 'temperature') {
$lIIII1l11llIIl1IlIl111IllIIIll1 = 'temp';
}
if ($IIl1l1ll1IllIl11111IIlII1lI11I1 eq 'voltage') {
$lIIII1l11llIIl1IlIl111IllIIIll1 = 'volt';
}
if ($IIl1l1ll1IllIl11111IIlII1lI11I1 eq 'power supply') {
$lIIII1l11llIIl1IlIl111IllIIIll1 = 'psu';
}
if ($IIl1l1ll1IllIl11111IIlII1lI11I1 eq 'power unit') {
$lIIII1l11llIIl1IlIl111IllIIIll1 = 'psu';
}
if ($II1Il1l1I1Illll1I1ll11IIIlI1IlI =~ /inject/i) {
$Ill1ll1ll1IllI11l111lIl11III11I = $l11II1l11I1Il11l1II1llIIIIll1ll;
}
if ($Ill1ll1ll1IllI11l111lIl11III11I eq 'ok' or $Ill1ll1ll1IllI11l111lIl11III11I eq 'ns') {
$II1l1ll1I111I1IlIIlll1lllIIlIll = 'Ok';
}
else {
$II1l1ll1I111I1IlIIlll1lllIIlIll = 'Alert';
}
$IIl1IlIIllII1I1lIlIIIIlIIII1lII .= "$IIll11ll1llll1llII1lIIIIIlllll1,$IIl1l1ll1IllIl11111IIlII1lI11I1,$I11lIllIl1IIIlIII111lIl11l11IIl,$II1Ill1IllI1l1Il1ll11l1l1lll1ll,$lllII1l111I11llIl1lI111lIllI1I1,$Ill1ll1ll1IllI11l111lIl11III11I,$lIIII1l11llIIl1IlIl111IllIIIll1" . $II1l1ll1I111I1IlIIlll1lllIIlIll . "\n";
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub lll11IIl1IlIl1IlI1llIIIIl1I11lI {
my $lIIIl1IlI1l1lII11lIIIIlI1II11Il = shift @_;
my $Il11111IIIl1IIlIII1lII1l11l11II = shift @_;
my $lllI1l1I1lI1I1Illl1II1II1II1lI1 = shift @_;
my $IIIlIlIll1lIll1lllIlll11I1I1I1I = shift @_;
my $lIll11ll1II11llI1l111IIIl1lIll1 = shift @_;
my $lll1l1lIlIIll11l1I1l1I1l11lI11l = shift @_;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
my $lllI1IlIl1lIIll111ll1l1llII11II;
$lllI1IlIl1lIIll111ll1l1llII11II = 'Ok';
if ($lIll11ll1II11llI1l111IIIl1lIll1) {
$lllI1IlIl1lIIll111ll1l1llII11II = 'Full';
}
elsif ($IIIlIlIll1lIll1lllIlll11I1I1I1I) {
$lllI1IlIl1lIIll111ll1l1llII11II = 'AlmostFull';
}
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = sprintf('ipmi,sel log,%s,%s,%s,%s,sel%s', $lIIIl1IlI1l1lII11lIIIIlI1II11Il, $Il11111IIIl1IIlIII1lII1l11l11II, $lllI1l1I1lI1I1Illl1II1II1II1lI1, $lll1l1lIlIIll11l1I1l1I1l11lI11l, $lllI1IlIl1lIIll111ll1l1llII11II);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII .= "\n";
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub lI1I1llII1I11IlIll1I11l1I1lll1l {
my $II1Ill1IllI1l1Il1ll11l1l1lll1ll = shift @_;
my $II1Il1l1I1Illll1I1ll11IIIlI1IlI = shift @_ || '';
my $II1IllI1IllIllIII1l1Ill1lIIIll1 = shift @_ || '';
my $lIl11I1IIl111I1II11lIIllI1II1ll = '';
my $Ill1IlIlI111ll1IlI1Ill11IlII1I1;
$lIl11I1IIl111I1II11lIIllI1II1ll .= IIl1l1lIlII1lI11IIIlllllIII1II1('Fan');
$lIl11I1IIl111I1II11lIIllI1II1ll .= IIl1l1lIlII1lI11IIIlllllIII1II1('Temperature');
$lIl11I1IIl111I1II11lIIllI1II1ll .= IIl1l1lIlII1lI11IIIlllllIII1II1('Voltage');
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6100') {
$lIl11I1IIl111I1II11lIIllI1II1ll .= IIl1l1lIlII1lI11IIIlllllIII1II1('Power Unit');
}
else {
$lIl11I1IIl111I1II11lIIllI1II1ll .= IIl1l1lIlII1lI11IIIlllllIII1II1('Power Supply');
}
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lIll11111Il1IllIll1ll11I1l1I1($lIl11I1IIl111I1II11lIIllI1II1ll, $II1Il1l1I1Illll1I1ll11IIIlI1IlI, $II1IllI1IllIllIII1l1Ill1lIIIll1);
my($lIIIl1IlI1l1lII11lIIIIlI1II11Il, $Il11111IIIl1IIlIII1lII1l11l11II, $lllI1l1I1lI1I1Illl1II1II1II1lI1, $IIIlIlIll1lIll1lllIlll11I1I1I1I, $lIll11ll1II11llI1l111IIIl1lIll1, $lll1l1lIlIIll11l1I1l1I1l11lI11l) = l1IlIll1I1I11Il11IIlI1IIlI1IlI1();
$Ill1IlIlI111ll1IlI1Ill11IlII1I1 = lll11IIl1IlIl1IlI1llIIIIl1I11lI($lIIIl1IlI1l1lII11lIIIIlI1II11Il, $Il11111IIIl1IIlIII1lII1l11l11II, $lllI1l1I1lI1I1Illl1II1II1II1lI1, $IIIlIlIll1lIll1lllIlll11I1I1I1I, $lIll11ll1II11llI1l111IIIl1lIll1, $lll1l1lIlIIll11l1I1l1I1l11lI11l);
$lIl11I1IIl111I1II11lIIllI1II1ll = $Ill1IlIlI111ll1IlI1Ill11IlII1I1 . $lIl11I1IIl111I1II11lIIllI1II1ll;
print "$lIl11I1IIl111I1II11lIIllI1II1ll";
}
sub I11l1lllllI111lIl1l11I1I111Ill1 {
my @l11IIllIllIIll1Il111I1IIIlllllI;
my $l11IIIIllIIl1lll111II11lI1ll1l1 = shift @_;
my $l11lIll1Il1Il111Ill1lIll1III11l = shift @_;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = 1;
my $lIII1l1IIIlll1l1lIlIl1l1111I1I1 = 0;
$l11lIll1Il1Il111Ill1lIll1III11l = I11lllII1lll111II1IllIIl1II1llI($l11lIll1Il1Il111Ill1lIll1III11l);
if ($lIII1l1IIIlll1l1lIlIl1l1111I1I1) {
print "line: $l11IIIIllIIl1lll111II11lI1ll1l1\n";
print "rule: $l11lIll1Il1Il111Ill1lIll1III11l\n";
}
if ($l11lIll1Il1Il111Ill1lIll1III11l eq '') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 0;
}
@l11IIllIllIIll1Il111I1IIIlllllI = split(/{{&&}}/, $l11lIll1Il1Il111Ill1lIll1III11l, 0);
foreach my $II1111l1lIlIll11I111lIl1llllIII (@l11IIllIllIIll1Il111I1IIIlllllI) {
$II1111l1lIlIll11I111lIl1llllIII = I11lllII1lll111II1IllIIl1II1llI($II1111l1lIlIll11I111lIl1llllIII);
if (index($l11IIIIllIIl1lll111II11lI1ll1l1, $II1111l1lIlIll11I111lIl1llllIII) < 0) {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 0;
}
}
print "match:$IIl1IlIIllII1I1lIlIIIIlIIII1lII\n" if $lIII1l1IIIlll1l1lIlIl1l1111I1I1;
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub I11l1lll1ll1l1I1I11II1II1l1I11l {
my $l111lIIlIIl11111lIllIl1I1Il1I1I = shift @_;
my $lIlll1II1Il111l111I11Il1llIl1II = 'crit';
my $i;
my $l11lIll1Il1Il111Ill1lIll1III11l;
my $lIII1l1IIIlll1l1lIlIl1l1111I1I1 = 0;
if ($lIII1l1IIIlll1l1lIlIl1l1111I1I1) {
printf "crit rules: %d \n", $#IIIl1lIlll1II1lll1l11l1lllI11I1 + 1;
printf "warn rules: %d \n", $#I111l111111II1l111111IIIllIIII1 + 1;
printf "info rules: %d \n", $#I1l1llIllllIlI1IIll1I1IIIllIl1I + 1;
printf "ign rules: %d \n", $#lIllIIlIIIIlll11II11ll111l1IIIl + 1;
}
if ($#IIIl1lIlll1II1lll1l11l1lllI11I1 >= 0) {
$i = 0;
foreach $l11lIll1Il1Il111Ill1lIll1III11l (@IIIl1lIlll1II1lll1l11l1lllI11I1) {
print "\n" if $lIII1l1IIIlll1l1lIlIl1l1111I1I1;
++$i;
if (I11l1lllllI111lIl1l11I1I111Ill1($l111lIIlIIl11111lIllIl1I1Il1I1I, $l11lIll1Il1Il111Ill1lIll1III11l) != 0) {
$lIlll1II1Il111l111I11Il1llIl1II = 'CRIT';
print "*** matched CRIT $i :: $l11lIll1Il1Il111Ill1lIll1III11l\n" if $lIII1l1IIIlll1l1lIlIl1l1111I1I1;
return $lIlll1II1Il111l111I11Il1llIl1II;
}
}
}
if ($#I111l111111II1l111111IIIllIIII1 >= 0) {
$i = 0;
foreach $l11lIll1Il1Il111Ill1lIll1III11l (@I111l111111II1l111111IIIllIIII1) {
print "\n" if $lIII1l1IIIlll1l1lIlIl1l1111I1I1;
++$i;
if (I11l1lllllI111lIl1l11I1I111Ill1($l111lIIlIIl11111lIllIl1I1Il1I1I, $l11lIll1Il1Il111Ill1lIll1III11l) != 0) {
$lIlll1II1Il111l111I11Il1llIl1II = 'WARN';
print "*** matched WARN $i :: $l11lIll1Il1Il111Ill1lIll1III11l\n" if $lIII1l1IIIlll1l1lIlIl1l1111I1I1;
return $lIlll1II1Il111l111I11Il1llIl1II;
}
}
}
if ($#I1l1llIllllIlI1IIll1I1IIIllIl1I >= 0) {
$i = 0;
foreach $l11lIll1Il1Il111Ill1lIll1III11l (@I1l1llIllllIlI1IIll1I1IIIllIl1I) {
print "\n" if $lIII1l1IIIlll1l1lIlIl1l1111I1I1;
++$i;
if (I11l1lllllI111lIl1l11I1I111Ill1($l111lIIlIIl11111lIllIl1I1Il1I1I, $l11lIll1Il1Il111Ill1lIll1III11l) != 0) {
$lIlll1II1Il111l111I11Il1llIl1II = 'INFO';
print "*** matched INFO $i :: $l11lIll1Il1Il111Ill1lIll1III11l\n" if $lIII1l1IIIlll1l1lIlIl1l1111I1I1;
return $lIlll1II1Il111l111I11Il1llIl1II;
}
}
}
if ($#lIllIIlIIIIlll11II11ll111l1IIIl >= 0) {
$i = 0;
foreach $l11lIll1Il1Il111Ill1lIll1III11l (@lIllIIlIIIIlll11II11ll111l1IIIl) {
print "\n" if $lIII1l1IIIlll1l1lIlIl1l1111I1I1;
++$i;
if (I11l1lllllI111lIl1l11I1I111Ill1($l111lIIlIIl11111lIllIl1I1Il1I1I, $l11lIll1Il1Il111Ill1lIll1III11l) != 0) {
$lIlll1II1Il111l111I11Il1llIl1II = 'XXXX';
print "*** matched IGNORE $i :: $l11lIll1Il1Il111Ill1lIll1III11l\n" if $lIII1l1IIIlll1l1lIlIl1l1111I1I1;
return $lIlll1II1Il111l111I11Il1llIl1II;
}
}
}
return $lIlll1II1Il111l111I11Il1llIl1II;
}
sub l111llII11l1l1IIlIlIlI11llI11I1 {
my $l1III1IlIl1I11ll1IlIIll1Il1I1l1;
my $lI1IllIIII11IIIlI1lII11l1l1lII1;
my @l1I111IIl11I1ll1lllIlllIllII1ll;
my $lIlll1II1Il111l111I11Il1llIl1II;
my $l11lIll1Il1Il111Ill1lIll1III11l;
@lIllIIlIIIIlll11II11ll111l1IIIl = ();
@I1l1llIllllIlI1IIll1I1IIIllIl1I = ();
@I111l111111II1l111111IIIllIIII1 = ();
@IIIl1lIlll1II1lll1l11l1lllI11I1 = ();
$lI1IllIIII11IIIlI1lII11l1l1lII1 = './bmc.selfilter.' . II111lIlIlIIlIll1IllII1lIlI1lIl($III111lll1l1l111lIIlll1II1IlI11);
if (not -e "$lI1IllIIII11IIIlI1lII11l1l1lII1") {
$lI1IllIIII11IIIlI1lII11l1l1lII1 = $II1l1I11111Il111lI1IIl11I1Ill11 . 'bmc.selfilter.' . II111lIlIlIIlIll1IllII1lIlI1lIl($III111lll1l1l111lIIlll1II1IlI11);
}
if (not -e "$lI1IllIIII11IIIlI1lII11l1l1lII1") {
print "\n";
print "Could not find SEL filter rules file for platform $III111lll1l1l111lIIlll1II1IlI11 in current directory\n";
print "or in default location: $lI1IllIIII11IIIlI1lII11l1l1lII1 \n";
print "\n";
print "See the README and the rules file for short instructions regarding how to configure\n";
print "this. (It's very quick to set up.)\n";
print "\n";
exit 1;
}
if (-e "$lI1IllIIII11IIIlI1lII11l1l1lII1") {
die "\nError: could not open file: $lI1IllIIII11IIIlI1lII11l1l1lII1\n\n" unless open MYFILE, $lI1IllIIII11IIIlI1lII11l1l1lII1;
while (defined($_ = <MYFILE>)) {
$l1III1IlIl1I11ll1IlIIll1Il1I1l1 = I11lllII1lll111II1IllIIl1II1llI($_);
if ($l1III1IlIl1I11ll1IlIIll1Il1I1l1 eq '') {
next;
}
if ($l1III1IlIl1I11ll1IlIIll1Il1I1l1 =~ /^#/) {
next;
}
$lIlll1II1Il111l111I11Il1llIl1II = ll11ll111I1IIIIll1ll1l1IlIIIl1l(',', $l1III1IlIl1I11ll1IlIIll1Il1I1l1);
$lIlll1II1Il111l111I11Il1llIl1II = I11lllII1lll111II1IllIIl1II1llI($lIlll1II1Il111l111I11Il1llIl1II);
$lIlll1II1Il111l111I11Il1llIl1II = II111lIlIlIIlIll1IllII1lIlI1lIl($lIlll1II1Il111l111I11Il1llIl1II);
if (not $lIlll1II1Il111l111I11Il1llIl1II eq 'ignore' || $lIlll1II1Il111l111I11Il1llIl1II eq 'info' || $lIlll1II1Il111l111I11Il1llIl1II eq 'warn' || $lIlll1II1Il111l111I11Il1llIl1II eq 'crit') {
print "invalid severity text : $lIlll1II1Il111l111I11Il1llIl1II \n";
next;
}
$l11lIll1Il1Il111Ill1lIll1III11l = l1lI11I1llllI1IIII111IllI1l11Il(',', $l1III1IlIl1I11ll1IlIIll1Il1I1l1);
$l11lIll1Il1Il111Ill1lIll1III11l = I11lllII1lll111II1IllIIl1II1llI($l11lIll1Il1Il111Ill1lIll1III11l);
if ($lIlll1II1Il111l111I11Il1llIl1II eq 'ignore') {
push @lIllIIlIIIIlll11II11ll111l1IIIl, $l11lIll1Il1Il111Ill1lIll1III11l;
}
if ($lIlll1II1Il111l111I11Il1llIl1II eq 'info') {
push @I1l1llIllllIlI1IIll1I1IIIllIl1I, $l11lIll1Il1Il111Ill1lIll1III11l;
}
if ($lIlll1II1Il111l111I11Il1llIl1II eq 'warn') {
push @I111l111111II1l111111IIIllIIII1, $l11lIll1Il1Il111Ill1lIll1III11l;
}
if ($lIlll1II1Il111l111I11Il1llIl1II eq 'crit') {
push @IIIl1lIlll1II1lll1l11l1lllI11I1, $l11lIll1Il1Il111Ill1lIll1III11l;
}
}
close MYFILE;
}
}
sub I1Il1I1IlI11lIIlII11lIl1l111I1l {
my $llIIIl1Il1lll11IIlIlll1Il11111I = shift @_;
my $IIIIII1llI111111III1lIl1Ill1II1 = shift @_ || '';
my $l11IIIIllIIl1lll111II11lI1ll1l1;
my @Illl1I1I1ll1lll11llI1l1lIIIlI1I;
my $lIlll1II1Il111l111I11Il1llIl1II;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = '';
my $I1lI1l1IIIIIlI1II1IllIIl1IIIl1l;
my $l1IIll1lllI11l111l1II1Ill11IIll = 1;
my $I1Il1I111l1llIl1I1llIlII11I111I = 1;
my $lI1I11I1IlIlI1lII11IllIl11lIIll = 1;
my $IllI1lIIlI1Il1l1II111lIlllI1Il1 = 1;
$IIIIII1llI111111III1lIl1Ill1II1 = I11lllII1lll111II1IllIIl1II1llI($IIIIII1llI111111III1lIl1Ill1II1);
$IIIIII1llI111111III1lIl1Ill1II1 = II111lIlIlIIlIll1IllII1lIlI1lIl($IIIIII1llI111111III1lIl1Ill1II1);
if ($IIIIII1llI111111III1lIl1Ill1II1 eq 'info') {
$l1IIll1lllI11l111l1II1Ill11IIll = 0;
$I1Il1I111l1llIl1I1llIlII11I111I = 1;
$lI1I11I1IlIlI1lII11IllIl11lIIll = 1;
$IllI1lIIlI1Il1l1II111lIlllI1Il1 = 1;
}
if ($IIIIII1llI111111III1lIl1Ill1II1 eq 'warn') {
$l1IIll1lllI11l111l1II1Ill11IIll = 0;
$I1Il1I111l1llIl1I1llIlII11I111I = 0;
$lI1I11I1IlIlI1lII11IllIl11lIIll = 1;
$IllI1lIIlI1Il1l1II111lIlllI1Il1 = 1;
}
if ($IIIIII1llI111111III1lIl1Ill1II1 eq 'crit') {
$l1IIll1lllI11l111l1II1Ill11IIll = 0;
$I1Il1I111l1llIl1I1llIlII11I111I = 0;
$lI1I11I1IlIlI1lII11IllIl11lIIll = 0;
$IllI1lIIlI1Il1l1II111lIlllI1Il1 = 1;
}
@Illl1I1I1ll1lll11llI1l1lIIIlI1I = split(/\n/, $llIIIl1Il1lll11IIlIlll1Il11111I, 0);
foreach my $l11IIIIllIIl1lll111II11lI1ll1l1 (@Illl1I1I1ll1lll11llI1l1lIIIlI1I) {
$l11IIIIllIIl1lll111II11lI1ll1l1 = I11lllII1lll111II1IllIIl1II1llI($l11IIIIllIIl1lll111II11lI1ll1l1);
if ($l11IIIIllIIl1lll111II11lI1ll1l1 eq '') {
next;
}
$lIlll1II1Il111l111I11Il1llIl1II = I11l1lll1ll1l1I1I11II1II1l1I11l($l11IIIIllIIl1lll111II11lI1ll1l1);
$I1lI1l1IIIIIlI1II1IllIIl1IIIl1l = 1;
if ($lIlll1II1Il111l111I11Il1llIl1II eq 'crit' or $lIlll1II1Il111l111I11Il1llIl1II eq 'CRIT') {
$I1lI1l1IIIIIlI1II1IllIIl1IIIl1l = $IllI1lIIlI1Il1l1II111lIlllI1Il1;
}
if ($lIlll1II1Il111l111I11Il1llIl1II eq 'WARN') {
$I1lI1l1IIIIIlI1II1IllIIl1IIIl1l = $lI1I11I1IlIlI1lII11IllIl11lIIll;
}
if ($lIlll1II1Il111l111I11Il1llIl1II eq 'INFO') {
$I1lI1l1IIIIIlI1II1IllIIl1IIIl1l = $I1Il1I111l1llIl1I1llIlII11I111I;
}
if ($lIlll1II1Il111l111I11Il1llIl1II eq 'XXXX') {
$I1lI1l1IIIIIlI1II1IllIIl1IIIl1l = $l1IIll1lllI11l111l1II1Ill11IIll;
}
if ($I1lI1l1IIIIIlI1II1IllIIl1IIIl1l) {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII .= sprintf("$lIlll1II1Il111l111I11Il1llIl1II | $l11IIIIllIIl1lll111II11lI1ll1l1\n");
}
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub I1Il111l111llllI1l1I1II1l11II1l {
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_;
my $II1Ill1IllI1l1Il1ll11l1l1lll1ll = shift @_;
my $l1IlI11Il1I1lII1llllllII1I111ll = shift @_;
my $IIIIII1llI111111III1lIl1Ill1II1 = shift @_ || 'all';
my $III111Ill1lIIl1llIl1llllI1lllll;
my $Il11I111l11l1I1I11IlI11l1IlIIl1;
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 == 1) {
printf "Usage:\n";
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll num_most_recent_entries|all [all|info|warn|crit] \n";
printf "\n";
lI1II1II1lll11111lll1llIIlIllll ;
}
if ($l1IlI11Il1I1lII1llllllII1I111ll eq 'all') {
$III111Ill1lIIl1llIl1llllI1lllll = l1lI1I1I1Il11IIl1l1IIIll1llIIII('sel list');
}
else {
$III111Ill1lIIl1llIl1llllI1lllll = l1lI1I1I1Il11IIl1l1IIIll1llIIII("sel list last $l1IlI11Il1I1lII1llllllII1I111ll ");
}
l111llII11l1l1IIlIlIlI11llI11I1 ;
$Il11I111l11l1I1I11IlI11l1IlIIl1 = I1Il1I1IlI11lIIlII11lIl1l111I1l($III111Ill1lIIl1llIl1llllI1lllll, $IIIIII1llI111111III1lIl1Ill1II1);
print "$Il11I111l11l1I1I11IlI11l1IlIIl1\n";
}
sub IIllIll1lllI111I1ll1ll1lII1I11I {
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_;
my $II1Ill1IllI1l1Il1ll11l1l1lll1ll = shift @_;
my $IIIIII1llI111111III1lIl1Ill1II1 = shift @_ || 'all';
my $III111Ill1lIIl1llIl1llllI1lllll;
my $Il11I111l11l1I1I11IlI11l1IlIIl1;
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 == 1) {
printf "Usage:\n";
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll [all|info|warn|crit] \n";
printf "\n";
printf "This function affixes a severity to each SEL line, based on the rules file (usually\n";
printf "bmc.selfilter.PLATFORM).\n";
printf "\n";
printf "Only SEL errors exceeding the specified level will be shown.\n";
printf "\n";
lI1II1II1lll11111lll1llIIlIllll ;
}
$III111Ill1lIIl1llIl1llllI1lllll = l1lI1I1I1Il11IIl1l1IIIll1llIIII('sel list');
l111llII11l1l1IIlIlIlI11llI11I1 ;
$Il11I111l11l1I1I11IlI11l1IlIIl1 = I1Il1I1IlI11lIIlII11lIl1l111I1l($III111Ill1lIIl1llIl1llllI1lllll, $IIIIII1llI111111III1lIl1Ill1II1);
print "\n";
print "$Il11I111l11l1I1I11IlI11l1IlIIl1\n";
}
sub IllIll11IlI1I11l11l1IllII111Ill {
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_;
my $II1Ill1IllI1l1Il1ll11l1l1lll1ll = shift @_;
my $lI1IllIIII11IIIlI1lII11l1l1lII1 = shift @_;
my $IIIIII1llI111111III1lIl1Ill1II1 = shift @_ || 'all';
my $III111Ill1lIIl1llIl1llllI1lllll = '';
my $Il11I111l11l1I1I11IlI11l1IlIIl1;
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 == 1) {
printf "Usage:\n";
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll sel_log_filename [all|info|warn|crit] \n";
printf "\n";
printf "This function reads a SEL log from a file and affixes a severity to each SEL line,\n";
printf "based on the rules file (usually bmc.selfilter.PLATFORM).\n";
printf "\n";
printf "Only SEL errors exceeding the specified level will be shown.\n";
printf "\n";
lI1II1II1lll11111lll1llIIlIllll ;
}
die "\nError: could not open file: $lI1IllIIII11IIIlI1lII11l1l1lII1\n\n" unless open MYFILE, $lI1IllIIII11IIIlI1lII11l1l1lII1;
while (defined($_ = <MYFILE>)) {
$III111Ill1lIIl1llIl1llllI1lllll .= $_;
}
l111llII11l1l1IIlIlIlI11llI11I1 ;
$Il11I111l11l1I1I11IlI11l1IlIIl1 = I1Il1I1IlI11lIIlII11lIl1l111I1l($III111Ill1lIIl1llIl1llllI1lllll, $IIIIII1llI111111III1lIl1Ill1II1);
print "$Il11I111l11l1I1I11IlI11l1IlIIl1\n";
}
sub l1IlIll1I1I11Il11IIlI1IIlI1IlI1 {
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my $lIIIl1IlI1l1lII11lIIIIlI1II11Il;
my $Il11111IIIl1IIlIII1lII1l11l11II;
my $lllI1l1I1lI1I1Illl1II1II1II1lI1;
my $IIIlIlIll1lIll1lllIlll11I1I1I1I = 0;
my $lIll11ll1II11llI1l111IIIl1lIll1 = 0;
my $lll1l1lIlIIll11l1I1l1I1l11lI11l;
my $x;
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lI1I1I1Il11IIl1l1IIIll1llIIII('sel info');
$lIIIl1IlI1l1lII11lIIIIlI1II11Il = I1I1IIlll111ll11111lII1IIlIllIl('Entries', $lIl11I1IIl111I1II11lIIllI1II1ll);
$Il11111IIIl1IIlIII1lII1l11l11II = I1I1IIlll111ll11111lII1IIlIllIl(' of Alloc Units', $lIl11I1IIl111I1II11lIIllI1II1ll);
$lllI1l1I1lI1I1Illl1II1II1II1lI1 = I1I1IIlll111ll11111lII1IIlIllIl('Percent Used', $lIl11I1IIl111I1II11lIIllI1II1ll);
$lllI1l1I1lI1I1Illl1II1II1II1lI1 = ll11ll111I1IIIIll1ll1l1IlIIIl1l('%', $lllI1l1I1lI1I1Illl1II1II1II1lI1);
$x = IIIIllI11I1I1l1IlIII1l1IlII1111('', 'Last Add Time', $lIl11I1IIl111I1II11lIIllI1II1ll);
$lll1l1lIlIIll11l1I1l1I1l11lI11l = l1lI11I1llllI1IIII111IllI1l11Il(':', $x);
$lll1l1lIlIIll11l1I1l1I1l11lI11l = I11lllII1lll111II1IllIIl1II1llI($lll1l1lIlIIll11l1I1l1I1l11lI11l);
$lll1l1lIlIIll11l1I1l1I1l11lI11l = lI11lII1111l1111I11I1lllIIll1ll($lll1l1lIlIIll11l1I1l1I1l11lI11l);
if ($lllI1l1I1lI1I1Illl1II1II1II1lI1 > 75) {
$IIIlIlIll1lIll1lllIlll11I1I1I1I = 1;
}
if ($lllI1l1I1lI1I1Illl1II1II1II1lI1 > 99) {
$lIll11ll1II11llI1l111IIIl1lIll1 = 1;
}
return $lIIIl1IlI1l1lII11lIIIIlI1II11Il, $Il11111IIIl1IIlIII1lII1l11l11II, $lllI1l1I1lI1I1Illl1II1II1II1lI1, $IIIlIlIll1lIll1lllIlll11I1I1I1I, $lIll11ll1II11llI1l111IIIl1lIll1, $lll1l1lIlIIll11l1I1l1I1l11lI11l;
}
sub I1lllI1lIIlIllI111I11l1llIllIll {
my($lIIIl1IlI1l1lII11lIIIIlI1II11Il, $Il11111IIIl1IIlIII1lII1l11l11II, $lllI1l1I1lI1I1Illl1II1II1II1lI1, $IIIlIlIll1lIll1lllIlll11I1I1I1I, $lIll11ll1II11llI1l111IIIl1lIll1, $lll1l1lIlIIll11l1I1l1I1l11lI11l) = l1IlIll1I1I11Il11IIlI1IIlI1IlI1();
printf "%s / %s ( %d%% ) almostfull: %d full: %d last_add_time: %s \n", $lIIIl1IlI1l1lII11lIIIIlI1II11Il, $Il11111IIIl1IIlIII1lII1l11l11II, $lllI1l1I1lI1I1Illl1II1II1II1lI1, $IIIlIlIll1lIll1lllIlll11I1I1I1I, $lIll11ll1II11llI1l111IIIl1lIll1, $lll1l1lIlIIll11l1I1l1I1l11lI11l;
return;
}
sub l11II11llI11l1lllII1llll1l1111l {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my $II11Il1111IIII1111I11I1lIIl1111;
my $i;
my $l11I1l11lllllI11I1IlI1lllllI1Il;
my $I1Il1III1l1lll11II11IlI1l111I11;
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_;
my $II1Ill1IllI1l1Il1ll11l1l1lll1ll = shift @_;
my $IIIl11lllllIIlllI1l1l1ll1IlI1I1 = shift @_;
my $l1lIIlll1ll1lIlIIl1lII1IIll1l1l = shift @_;
my $l1Il1IIllII11I1I111IlIIlllIlIll = shift @_;
my $lIIIIl11111I1lI1II1I1Il1I1I1ll1 = shift @_;
my $I1111111I1IIIIlIl1lll1l1llIII11 = shift @_;
my $lIlllI1IIl11IIlIlllll11III11I1l = join(' ', @_);
my @lIlIIIlIIIIIlIl1I1I1Il1I1l11l1l;
my $Illlll11I1l111I1111I1l11I1IIl11;
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 < 6) {
printf "Usage:\n";
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll get|set cfg_id att_id tbl_id field_width [data_to_set]\n";
printf "\n";
printf " Field width of zero implies that the field is variable-length (as compared to\n";
printf " a 1-4 byte fixed width field\n";
printf "\n";
lI1II1II1lll11111lll1llIIlIllll ;
}
$l1lIIlll1ll1lIlIIl1lII1IIll1l1l = llIlI1l1IIll11IIl11l11lII1IIl11($l1lIIlll1ll1lIlIIl1lII1IIll1l1l);
$l1Il1IIllII11I1I111IlIIlllIlIll = llIlI1l1IIll11IIl11l11lII1IIl11($l1Il1IIllII11I1I111IlIIlllIlIll);
$lIIIIl11111I1lI1II1I1Il1I1I1ll1 = llIlI1l1IIll11IIl11l11lII1IIl11($lIIIIl11111I1lI1II1I1Il1I1I1ll1);
if ($I1111111I1IIIIlIl1lll1l1llIII11 > 4) {
$I1111111I1IIIIlIl1lll1l1llIII11 = 0;
}
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'get') {
$lIl11I1IIl111I1II11lIIllI1II1ll = I1Il11Il1l1IIIllIlI111llIlIll1l($l1lIIlll1ll1lIlIIl1lII1IIll1l1l, $l1Il1IIllII11I1I111IlIIlllIlIll, $lIIIIl11111I1lI1II1I1Il1I1I1ll1, $I1111111I1IIIIlIl1lll1l1llIII11);
if ($I1111111I1IIIIlIl1lll1l1llIII11 == 0) {
printf "as hex: %s\n", $lIl11I1IIl111I1II11lIIllI1II1ll;
$l11I1l11lllllI11I1IlI1lllllI1Il = I1l1lI1lIIIIlIl11I11llI11Illlll($lIl11I1IIl111I1II11lIIllI1II1ll);
printf "as ASCII: %s\n", $l11I1l11lllllI11I1IlI1lllllI1Il;
}
else {
$lIl11I1IIl111I1II11lIIllI1II1ll = llII1lIIIIIll1II1ll1I111l11II1l($lIl11I1IIl111I1II11lIIllI1II1ll);
printf "as hex: %s\n", $lIl11I1IIl111I1II11lIIllI1II1ll;
$I1Il1III1l1lll11II11IlI1l111I11 = IIl1l1IlI1lII11lI1I11Ill1IlllIl($lIl11I1IIl111I1II11lIIllI1II1ll);
printf "as a number: %d\n", $I1Il1III1l1lll11II11IlI1l111I11;
}
return;
}
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'set') {
if ($I1111111I1IIIIlIl1lll1l1llIII11 == 0) {
my $I11I1IIIlllIIlIl11IllI1ll1llllI = II1IlIl1l1IIll1II1l1lllll1I1lIl($lIlllI1IIl11IIlIlllll11III11I1l, $l11I1l1l1l111ll1I1I1I11ll1l11II);
ll1l1Il1l111Il1ll1IIIIIII1l1llI $l1lIIlll1ll1lIlIIl1lII1IIll1l1l, $l1Il1IIllII11I1I111IlIIlllIlIll, $lIIIIl11111I1lI1II1I1Il1I1I1ll1, $I11I1IIIlllIIlIl11IllI1ll1llllI;
}
else {
$lIl11I1IIl111I1II11lIIllI1II1ll = I11lllII1lll111II1IllIIl1II1llI($lIlllI1IIl11IIlIlllll11III11I1l);
@lIlIIIlIIIIIlIl1I1I1Il1I1l11l1l = split(/\s+/, $lIl11I1IIl111I1II11lIIllI1II1ll, 0);
$Illlll11I1l111I1111I1l11I1IIl11 = $#lIlIIIlIIIIIlIl1I1I1Il1I1l11l1l + 1;
if ($I1111111I1IIIIlIl1lll1l1llIII11 == 4 and $Illlll11I1l111I1111I1l11I1IIl11 == 4) {
$lIl11I1IIl111I1II11lIIllI1II1ll = '';
foreach $i (0 .. $#lIlIIIlIIIIIlIl1I1I1Il1I1l11l1l) {
$lIl11I1IIl111I1II11lIIllI1II1ll .= lllIl11IlIIIl111lIIl11l11IIlIl1($lIlIIIlIIIIIlIl1I1I1Il1I1l11l1l[$i], 1);
if ($i < $#lIlIIIlIIIIIlIl1I1I1Il1I1l11l1l) {
$lIl11I1IIl111I1II11lIIllI1II1ll .= ' ';
}
}
}
else {
$lIl11I1IIl111I1II11lIIllI1II1ll = lllIl11IlIIIl111lIIl11l11IIlIl1($lIlllI1IIl11IIlIlllll11III11I1l, $I1111111I1IIIIlIl1lll1l1llIII11);
}
$lIl11I1IIl111I1II11lIIllI1II1ll = llII1lIIIIIll1II1ll1I111l11II1l($lIl11I1IIl111I1II11lIIllI1II1ll);
$lIl11I1IIl111I1II11lIIllI1II1ll = IlIll11llI11ll1llIIIlll1l1IlII1($lIl11I1IIl111I1II11lIIllI1II1ll);
I111IlIllI1lI1Il11lIllI1llI1IIl $l1lIIlll1ll1lIlIIl1lII1IIll1l1l, $l1Il1IIllII11I1I111IlIIlllIlIll, $lIIIIl11111I1lI1II1I1Il1I1I1ll1, $I1111111I1IIIIlIl1lll1l1llIII11, $lIl11I1IIl111I1II11lIIllI1II1ll;
}
}
}
sub Il1IIIII11lllIllIl1IIll11II11I1 {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my $l11I1l11lllllI11I1IlI1lllllI1Il;
my $I1Il1III1l1lll11II11IlI1l111I11;
my $i;
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_;
my $II1Ill1IllI1l1Il1ll11l1l1lll1ll = shift @_;
my $IIIl11lllllIIlllI1l1l1ll1IlI1I1 = shift @_;
my $lIIlIIllIlll1II1I111IIlIl111II1 = shift @_ || '';
my $lIII11lII1II11lllIl1IlIIlI111I1 = join(' ', @_);
my $II111lI1l1lllIl11I1lIII11111l1l;
my $l11lIIII11IlIlI1l1l1lIlI1I1l1II;
my $l1lIIlll1ll1lIlIIl1lII1IIll1l1l;
my $l1Il1IIllII11I1I111IlIIlllIlIll;
my $lIIIIl11111I1lI1II1I1Il1I1I1ll1;
my $I1111111I1IIIIlIl1lll1l1llIII11;
my $I111Ill1lI1lllllll1IlIIl1111I11;
my $Il1III1I1IllIIlIlI1ll1ll1l1II1I;
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 < 2) {
printf "Usage:\n";
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll list|get|set [attr_name] [attr_value]\n";
printf "\n";
printf "Note that not all attributes are supported on all platforms.\n";
printf "This is provided, but it isn't expected to be the primary method by which these\n";
printf "things are set. If there's a feature you use frequently from here, please ask\n";
printf "for it to be added.\n";
printf "\n";
printf "This is meant to be a 'plan B', giving you direct access to the configuration\n";
printf "space inside the BMC.\n";
printf "\n";
lI1II1II1lll11111lll1llIIlIllll ;
}
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'list') {
printf "\n";
printf "Available attributes:\n";
printf "\n";
printf "%17s %6s %s\n", 'Category', 'Length', 'Attribute';
printf "%17s %6s %s\n", '--------', '------', '---------';
for ($i = 0; $i <= $#l11IIIll11I11lllIlIIl1I1I1111I1; ++$i) {
printf "(%15s) %6s %s\n", $l11IIIll11I11lllIlIIl1I1I1111I1[$i][0], $l11IIIll11I11lllIlIIl1I1I1111I1[$i][5], $l11IIIll11I11lllIlIIl1I1I1111I1[$i][1];
}
printf "\n";
return;
}
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'get' or $IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'set') {
$II111lI1l1lllIl11I1lIII11111l1l = II1II1II1111lll111lIll1I1ll1lI1($lIIlIIllIlll1II1I111IIlIl111II1);
if ($II111lI1l1lllIl11I1lIII11111l1l < 0) {
printf "Cannot find attribute $lIIlIIllIlll1II1I111IIlIl111II1. Halting.\n";
lI1II1II1lll11111lll1llIIlIllll ;
}
$l11lIIII11IlIlI1l1l1lIlI1I1l1II = $l11IIIll11I11lllIlIIl1I1I1111I1[$II111lI1l1lllIl11I1lIII11111l1l][0];
$l1lIIlll1ll1lIlIIl1lII1IIll1l1l = $l11IIIll11I11lllIlIIl1I1I1111I1[$II111lI1l1lllIl11I1lIII11111l1l][2];
$l1Il1IIllII11I1I111IlIIlllIlIll = $l11IIIll11I11lllIlIIl1I1I1111I1[$II111lI1l1lllIl11I1lIII11111l1l][3];
$lIIIIl11111I1lI1II1I1Il1I1I1ll1 = $l11IIIll11I11lllIlIIl1I1I1111I1[$II111lI1l1lllIl11I1lIII11111l1l][4];
$I1111111I1IIIIlIl1lll1l1llIII11 = $l11IIIll11I11lllIlIIl1I1I1111I1[$II111lI1l1lllIl11I1lIII11111l1l][5];
$I111Ill1lI1lllllll1IlIIl1111I11 = $l11IIIll11I11lllIlIIl1I1I1111I1[$II111lI1l1lllIl11I1lIII11111l1l][6];
$Il1III1I1IllIIlIlI1ll1ll1l1II1I = $l11IIIll11I11lllIlIIl1I1I1111I1[$II111lI1l1lllIl11I1lIII11111l1l][7] || '';
}
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'get') {
l11II11llI11l1lllII1llll1l1111l 'ext_cfg', 'get', '0x' . $l1lIIlll1ll1lIlIIl1lII1IIll1l1l, '0x' . $l1Il1IIllII11I1I111IlIIlllIlIll, '0x' . $lIIIIl11111I1lI1II1I1Il1I1I1ll1, $I1111111I1IIIIlIl1lll1l1llIII11;
return;
}
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'set') {
l11II11llI11l1lllII1llll1l1111l 'ext_cfg', 'set', '0x' . $l1lIIlll1ll1lIlIIl1lII1IIll1l1l, '0x' . $l1Il1IIllII11I1I111IlIIlllIlIll, '0x' . $lIIIIl11111I1lI1II1I1Il1I1I1ll1, $I1111111I1IIIIlIl1lll1l1llIII11, $lIII11lII1II11lllIl1IlIIlI111I1;
return;
}
lI1II1II1lll11111lll1llIIlIllll ;
}
sub l1Il1I1l11I1llI1II1lI1IIlIlI11l {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my $llll1lII1l11I1IlllllIIllll1l1II;
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_;
my $II1Ill1IllI1l1Il1ll11l1l1lll1ll = shift @_;
my $IIIl11lllllIIlllI1l1l1ll1IlI1I1 = shift @_;
my $l1lIIlll1ll1lIlIIl1lII1IIll1l1l = shift @_;
my $l1Il1IIllII11I1I111IlIIlllIlIll = shift @_;
my $lIIIIl11111I1lI1II1I1Il1I1I1ll1 = shift @_;
my $IlIIII1Il1I1I1Il11l1I1Ill11IlII = shift @_ || '0x00';
my $IIIIIllllII1IIlIlII1lIllI1llIl1 = shift @_ || '0x00';
my $IIll11I1Il1IIlIlII1I1l1lIIIIIll = shift @_ || '0x01';
my $lIlllI1IIl11IIlIlllll11III11I1l = join(' ', @_);
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 < 5) {
printf "Usage:\n";
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll get|set cfg_id att_id tbl_id [low_offset] [hi_offset] [length] [data_to_set]\n";
printf "\n";
printf "If not specified, offsets default to 0, and length defaults to 1.\n";
printf "\n";
lI1II1II1lll11111lll1llIIlIllll ;
}
$l1lIIlll1ll1lIlIIl1lII1IIll1l1l = llIlI1l1IIll11IIl11l11lII1IIl11($l1lIIlll1ll1lIlIIl1lII1IIll1l1l);
$l1Il1IIllII11I1I111IlIIlllIlIll = llIlI1l1IIll11IIl11l11lII1IIl11($l1Il1IIllII11I1I111IlIIlllIlIll);
$lIIIIl11111I1lI1II1I1Il1I1I1ll1 = llIlI1l1IIll11IIl11l11lII1IIl11($lIIIIl11111I1lI1II1I1Il1I1I1ll1);
printf "data to set: $lIlllI1IIl11IIlIlllll11III11I1l\n";
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'get') {
$llll1lII1l11I1IlllllIIllll1l1II = IlI1I1l11l1l1lll11llI1I1l11l111();
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I("raw 0x30 0x02 $llll1lII1l11I1IlllllIIllll1l1II $l1lIIlll1ll1lIlIIl1lII1IIll1l1l $l1Il1IIllII11I1I111IlIIlllIlIll $lIIIIl11111I1lI1II1I1Il1I1I1ll1 $IlIIII1Il1I1I1Il11l1I1Ill11IlII $IIIIIllllII1IIlIlII1lIllI1llIl1 $IIll11I1Il1IIlIlII1I1l1lIIIIIll");
printf "response was: $lIl11I1IIl111I1II11lIIllI1II1ll\n\n";
return;
}
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'set') {
$llll1lII1l11I1IlllllIIllll1l1II = IlI1I1l11l1l1lll11llI1I1l11l111();
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I("raw 0x30 0x03 $llll1lII1l11I1IlllllIIllll1l1II $l1lIIlll1ll1lIlIIl1lII1IIll1l1l $l1Il1IIllII11I1I111IlIIlllIlIll $lIIIIl11111I1lI1II1I1Il1I1I1ll1 $IlIIII1Il1I1I1Il11l1I1Ill11IlII $IIIIIllllII1IIlIlII1lIllI1llIl1 $IIll11I1Il1IIlIlII1I1l1lIIIIIll $lIlllI1IIl11IIlIlllll11III11I1l");
printf "response was: $lIl11I1IIl111I1II11lIIllI1II1ll\n\n";
return;
}
lI1II1II1lll11111lll1llIIlIllll ;
}
sub l1lIIl1lI1ll1III111l1lllI1I1lI1 {
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_;
my($II1Ill1IllI1l1Il1ll11l1l1lll1ll, $l1Ill11I11lIIIl1lI1IlIIllll1111) = @_;
my $lIl11I1IIl111I1II11lIIllI1II1ll;
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 == 1) {
printf "Usage:\n";
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll on|off|blink|fastblink \n";
printf "\n";
printf " NOTE: blink currently locks the tool in an infinite loop. Thus, it only\n";
printf " works with a single BMC.\n";
printf "\n";
lI1II1II1lll11111lll1llIIlIllll ;
}
if ($l1Ill11I11lIIIl1lI1IlIIllll1111 eq 'on') {
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I('chassis identify force');
printf "\n";
return;
}
if ($l1Ill11I11lIIIl1lI1IlIIllll1111 eq 'off') {
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I('chassis identify 0');
printf "\n";
return;
}
if ($l1Ill11I11lIIIl1lI1IlIIllll1111 eq 'blink') {
printf "Blinking a single host ID light forever...\n";
while (1) {
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I('chassis identify force');
select undef, undef, undef, 0.4;
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I('chassis identify 0');
select undef, undef, undef, 0.4;
}
return;
}
if ($l1Ill11I11lIIIl1lI1IlIIllll1111 eq 'fastblink') {
printf "Fast-blinking a single host ID light forever...\n";
while (1) {
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I('chassis identify force');
select undef, undef, undef, 0.125;
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I('chassis identify 0');
select undef, undef, undef, 0.125;
}
return;
}
lI1II1II1lll11111lll1llIIlIllll ;
}
sub lIIlIIl1Il1lI1l1ll1IlIl1II1I111 {
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_;
my($II1Ill1IllI1l1Il1ll11l1l1lll1ll, $Illll1IllI11111lI1lI1I1l1IIll1I) = @_;
my $lIl11I1IIl111I1II11lIIllI1II1ll;
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 == 1) {
printf "Usage:\n";
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll status|on|off|cycle \n";
printf "\n";
lI1II1II1lll11111lll1llIIlIllll ;
}
if ($Illll1IllI11111lI1lI1I1l1IIll1I eq 'status' or $Illll1IllI11111lI1lI1I1l1IIll1I eq 'on' or $Illll1IllI11111lI1lI1I1l1IIll1I eq 'off' or $Illll1IllI11111lI1lI1I1l1IIll1I eq 'cycle') {
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I("chassis power $Illll1IllI11111lI1lI1I1l1IIll1I");
if ($Illll1IllI11111lI1lI1I1l1IIll1I eq 'status') {
print "$lIl11I1IIl111I1II11lIIllI1II1ll";
}
print "\n";
return;
}
lI1II1II1lll11111lll1llIIlIllll ;
}
sub IIlIlI1lIlIl11l1ll1ll11lI1l11ll {
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_;
my $II1Ill1IllI1l1Il1ll11l1l1lll1ll = shift @_;
my $Illll1IllI11111lI1lI1I1l1IIll1I = shift @_;
my $I1l1lIIll1II1I1IIlI1llIl1lIIlII = join(' ', @_);
my $lIl11I1IIl111I1II11lIIllI1II1ll;
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 == 1) {
printf "Usage:\n";
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll info|list|clear \n";
printf "\n";
lI1II1II1lll11111lll1llIIlIllll ;
}
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lI1I1I1Il11IIl1l1IIIll1llIIII("sel $Illll1IllI11111lI1lI1I1l1IIll1I $I1l1lIIll1II1I1IIlI1llIl1lIIlII");
print "\n";
print "$lIl11I1IIl111I1II11lIIllI1II1ll";
print "\n";
return;
}
sub IIll11Il1I1I1l1l1lIll1lIl1Illl1 {
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_;
my $II1Ill1IllI1l1Il1ll11l1l1lll1ll = shift @_;
my $Illll1IllI11111lI1lI1I1l1IIll1I = shift @_ || '';
my $I1l1lIIll1II1I1IIlI1llIl1lIIlII = join(' ', @_);
my $lIl11I1IIl111I1II11lIIllI1II1ll;
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lI1I1I1Il11IIl1l1IIIll1llIIII("sdr $Illll1IllI11111lI1lI1I1l1IIll1I $I1l1lIIll1II1I1IIlI1llIl1lIIlII");
print "$lIl11I1IIl111I1II11lIIllI1II1ll";
print "\n";
return;
}
sub I1I1llI1l1IlIlI1I1l1IIlIl1lIl1I {
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_;
my $II1Ill1IllI1l1Il1ll11l1l1lll1ll = shift @_;
my $Illll1IllI11111lI1lI1I1l1IIll1I = shift @_ || '';
my $I1l1lIIll1II1I1IIlI1llIl1lIIlII = join(' ', @_);
my $lIl11I1IIl111I1II11lIIllI1II1ll;
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lI1I1I1Il11IIl1l1IIIll1llIIII("sensor $Illll1IllI11111lI1lI1I1l1IIll1I $I1l1lIIll1II1I1IIlI1llIl1lIIlII");
print "$lIl11I1IIl111I1II11lIIllI1II1ll";
print "\n";
return;
}
sub l11l1IIlI1lI1lIll111lI11I1II1II {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_;
my($II1Ill1IllI1l1Il1ll11l1l1lll1ll, $IIIl11lllllIIlllI1l1l1ll1IlI1I1, $Ill1Il1I1llIIIIllll111I11lIIl1l, $lIllI1IlIIl1lIllI1IllIIllI11l1I, $I1I11IIIll11IlIIl1l1lI11lI1I111) = @_;
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 == 1) {
printf "Usage:\n";
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll get|set user_number name|callin|linkauth|ipmimsg|channelprivlimit [val]\n";
printf "\n";
lI1II1II1lll11111lll1llIIlIllll ;
}
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'get') {
$lIl11I1IIl111I1II11lIIllI1II1ll = l1lII1IlI1l111llIIllII1I1lIl11I("user list 1 | grep -ve '^ID' | grep -e '^${Ill1Il1I1llIIIIllll111I11lIIl1l}'");
if (not defined $lIl11I1IIl111I1II11lIIllI1II1ll) {
printf "\n";
return;
}
my(@llllI1l1I1II1Ill1Illl111IlI11Il) = split(/\s+/, $lIl11I1IIl111I1II11lIIllI1II1ll, 0);
if (not defined $lIllI1IlIIl1lIllI1IllIIllI11l1I) {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = sprintf('%s %s %s %s %s', $llllI1l1I1II1Ill1Illl111IlI11Il[1], $llllI1l1I1II1Ill1Illl111IlI11Il[2], $llllI1l1I1II1Ill1Illl111IlI11Il[3], $llllI1l1I1II1Ill1Illl111IlI11Il[4], $llllI1l1I1II1Ill1Illl111IlI11Il[5]);
}
else {
$_ = $lIllI1IlIIl1lIllI1IllIIllI11l1I;
if ($_ eq 'name') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $llllI1l1I1II1Ill1Illl111IlI11Il[1];
}
elsif ($_ eq 'callin') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $llllI1l1I1II1Ill1Illl111IlI11Il[2];
}
elsif ($_ eq 'linkauth') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $llllI1l1I1II1Ill1Illl111IlI11Il[3];
}
elsif ($_ eq 'ipmimsg') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $llllI1l1I1II1Ill1Illl111IlI11Il[4];
}
elsif ($_ eq 'channelprivlimit') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = $llllI1l1I1II1Ill1Illl111IlI11Il[5];
}
else {
printf "Unknown target field: %s\n\n", $lIllI1IlIIl1lIllI1IllIIllI11l1I;
lI1II1II1lll11111lll1llIIlIllll ;
}
}
printf "%s\n", $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
return;
}
lI1II1II1lll11111lll1llIIlIllll ;
}
sub llIIII1I1ll11l11I1I1lIIIlI11l1l {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
my $llll1lII1l11I1IlllllIIllll1l1II;
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_;
my $II1Ill1IllI1l1Il1ll11l1l1lll1ll = shift @_;
my $IIIl11lllllIIlllI1l1l1ll1IlI1I1 = shift @_;
my $I1I11IIIll11IlIIl1l1lI11lI1I111 = shift @_;
my $IlIl1l1lI1ll11I111lIlllllllIllI = shift @_ || '';
my $lI1I1ll11111l1l11l1I11l1llII1I1 = 1;
if ($IlIl1l1lI1ll11I111lIlllllllIllI eq 'silent') {
$lI1I1ll11111l1l11l1I11l1llII1I1 = 0;
}
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 < 2) {
printf "Usage:\n";
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll get|set|toggle [shared|dedicated]\n";
printf "\n";
lI1II1II1lll11111lll1llIIlIllll ;
}
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'get') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I1l1l1Il1lI11I1l1lI1111IIlI1lll();
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $IIl1IlIIllII1I1lIlIIIIlIIII1lII) {
Il1II1IIl1lIlI1I1lll1l1lII1l111 ;
}
printf "$IIl1IlIIllII1I1lIlIIIIlIIII1lII\n";
return;
}
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'set') {
IlI1Ill11II111Illl1III1ll11llI1 $I1I11IIIll11IlIIl1l1lI11lI1I111;
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $IIl1IlIIllII1I1lIlIIIIlIIII1lII) {
Il1II1IIl1lIlI1I1lll1l1lII1l111 ;
}
return;
}
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'toggle') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I1l1l1Il1lI11I1l1lI1111IIlI1lll();
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $IIl1IlIIllII1I1lIlIIIIlIIII1lII) {
Il1II1IIl1lIlI1I1lll1l1lII1l111 ;
}
if ($IIl1IlIIllII1I1lIlIIIIlIIII1lII eq 'shared') {
if ($lI1I1ll11111l1l11l1I11l1llII1I1) {
print "BMC nic is currently shared. Toggling to dedicated.\n";
}
IlI1Ill11II111Illl1III1ll11llI1 'd';
}
if ($IIl1IlIIllII1I1lIlIIIIlIIII1lII eq 'dedicated') {
if ($lI1I1ll11111l1l11l1I11l1llII1I1) {
print "BMC nic is currently dedicated. Toggling to shared.\n";
}
IlI1Ill11II111Illl1III1ll11llI1 'sh';
}
return;
}
lI1II1II1lll11111lll1llIIlIllll ;
}
sub lII1II1lIlI1ll11llIII1I1lI1IIII {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = II1I11llIl11lII11lIIIl1II11lIII();
printf "%s\n", $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $IIl1IlIIllII1I1lIlIIIIlIIII1lII) {
Il1II1IIl1lIlI1I1lll1l1lII1l111 ;
return;
}
return;
}
sub ll1ll1I1ll1lIIIl1I1lIIl1I1ll1Il {
my($lIl11I1IIl111I1II11lIIllI1II1ll, $II11Il1111IIII1111I11I1lIIl1111) = IlIl11l11I1I111lllII11I111Illll();
printf "EEPROM returned: $lIl11I1IIl111I1II11lIIllI1II1ll ($II11Il1111IIII1111I11I1lIIl1111)\n";
}
sub l1Il11l1l11Ill1l1lIlIlllII1111l {
printf "%s\n", lIIl1l1llIllI1Il1IlI1I111IIlIl1();
}
sub lll111IIIIIIl1l1IIl1II1I1llllII {
printf "%s\n", $lI1II1I11l1l111I11IIIl1I1lII11l;
}
sub I1Il11lI1IIllIl11I1IlIl1lIl1l1I {
printf "%18s : %s \n", 'user-facing name', $I1I1IllI1Il11111111II11lI11I1lI;
printf "%18s : %s \n", 'PLAT', $III111lll1l1l111lIIlll1II1IlI11;
printf "%18s : %s \n", 'platform variant', $lI1II1I11l1l111I11IIIl1I1lII11l;
printf "%18s : %s \n", 'platform raw', $I1111I1II1l1111lIlllIllIllllllI;
printf "%18s : %s \n", 'platform family', $lll1l1I1IIIllllI1I11I11l11Ill1l;
}
sub ll1I11lllll11I1ll1Il1IllI11llll {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = I111Il11l11IIlIll11ll1lll1lIII1();
printf "%s\n", $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub III1lI111lIIllIl1ll11lI1lI1Ill1 {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = l111Il11lll1I11I1l1IlI11IIl1llI();
printf "%s\n", $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub lIl1111IlIIIII1l11lIIIIII1l11II {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = llIIlIIl1lllI1lIIIlI1lIIIIlIl11();
printf "%s\n", $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub lllllI1I1III11I1l111lIIIIllIllI {
my $IllllIIIl1II11IlIIlllIIl1IIlll1 = Ill1IllI11Illl1l11lllIl1IlIIl1l();
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $IllllIIIl1II11IlIIlllIIl1IIlll1) {
Il1II1IIl1lIlI1I1lll1l1lII1l111 ;
}
printf "$IllllIIIl1II11IlIIlllIIl1IIlll1\n";
}
sub l1I1Illl1lIl1Il1IlIIl1IllllIIlI {
my $IllllIIIl1II11IlIIlllIIl1IIlll1 = IIlllllIl111IIIll1ll1ll1IIlI1I1();
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $IllllIIIl1II11IlIIlllIIl1IIlll1) {
print "$IllllIIIl1II11IlIIlllIIl1IIlll1\n";
return;
}
if (ll11I1ll11lI1l111Ill11ll1IIIIll $IllllIIIl1II11IlIIlllIIl1IIlll1) {
print "BIOS version could not be read. This can occur when the BMC is reset after the main\n";
print "server has been brought up. Try rebooting the main server, and retry the command.\n";
return;
}
printf "$IllllIIIl1II11IlIIlllIIl1IIlll1\n";
return;
}
sub IIllllIlll1lI11II11lII1lII1l1lI {
my $I11III1I1Il1ll1II1lI1l111Il1l1l = I1lIIIIl11IIllllII1II1IIlIlI1Il();
printf "$I11III1I1Il1ll1II1lI1l111Il1l1l\n";
return;
}
sub lIII1ll1lII1IllIlIl1l1111IllIII {
my $I11III1I1Il1ll1II1lI1l111Il1l1l = IIlllIllI1I1lll111IIl1l1lI1I111();
printf "$I11III1I1Il1ll1II1lI1l111Il1l1l\n";
return;
}
sub I11I1ll1Il11l1I1Ill1IllI11111lI {
my $lIlI11I11l1ll11111lllll1l1Illll = lIlII11II1ll1I1l1Il11l1I1llIIII();
printf "$lIlI11I11l1ll11111lllll1l1Illll\n";
return;
}
sub I1lIIlll111IIII11lIIlllI1llI1lI {
my $lIlI11I11l1ll11111lllll1l1Illll = I11ll1111lllI1lII1l11IIll1Il11I();
printf "$lIlI11I11l1ll11111lllll1l1Illll\n";
return;
}
sub I1ll1l1l1IllIlIl1l1llIl1I1ll1ll {
my $l1111lIll1lIIlIlIl1l11l1ll11IIl = shift @_;
my $lII11lI1I1Il1l1I1I11l1I1l1l1Il1 = shift @_;
if (not defined $lII11lI1I1Il1l1I1I11l1I1l1l1Il1) {
print "\n";
print "Usage: $l1111lIll1lIIlIlIl1l11l1ll11IIl duty_cycle\n";
print "\n";
print " duty_cycle ranges from 0 to 100%, or specify 'auto' to return to\n";
print " automatic fan control.\n";
print "\n";
print "\n";
lI1II1II1lll11111lll1llIIlIllll ;
}
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = Il1llIllII111IllIIIlI1Il11lIl11($lII11lI1I1Il1l1I1I11l1I1l1l1Il1);
print $IIl1IlIIllII1I1lIlIIIIlIIII1lII . "\n";
if (ll11I1ll11lI1l111Ill11ll1IIIIll $IIl1IlIIllII1I1lIlIIIIlIIII1lII) {
print "\n";
print "Invalid input. Halting.\n";
print "\n";
lI1II1II1lll11111lll1llIIlIllll ;
}
print "\n";
return;
}
sub lIlI11I1II1lll11lIII1IlII11l111 {
my $l1111lIll1lIIlIlIl1l11l1ll11IIl = shift @_;
my $l1ll111I11lllI1I11I1IllI1l11llI = shift @_ || '0';
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = lllll11Il11IlI1IlllIl111llI111l($l1ll111I11lllI1I11I1IllI1l11llI);
if (lI1IIlllllIlllI11lIIlIllI1I11II $IIl1IlIIllII1I1lIlIIIIlIIII1lII) {
print "$IIl1IlIIllII1I1lIlIIIIlIIII1lII\n";
}
return;
}
sub IIIllI1Ill11lIl111lI1IIlIlIlIl1 {
my $l1111lIll1lIIlIlIl1l11l1ll11IIl = shift @_;
my $Il111IlIlII1lll111IlIlIl111I1lI = shift @_;
my $lllI1l1l1lI1l1l1ll111II1lI11I1I;
my $IlI11lII1lll11lIIlIIll1lI1l1Ill;
my $Il111IllIl1I1l11II1l1lIllIlIll1;
my $I1l1ll1II1lllllIllllllllllIll1l;
my $i;
my $IlIll111ll1II1l1111Il1ll1I1ll11;
my $IIlIIIIl11111lI1lIIIIl11Ill1IIl;
my $lIl11I1IIl111I1II11lIIllI1II1ll;
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C410X') {
$IlIll111ll1II1l1111Il1ll1I1ll11 = 1;
$IIlIIIIl11111lI1lIIIIl11Ill1IIl = 16;
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C410X') {
$I1l1ll1II1lllllIllllllllllIll1l = IlIIlI1Ill1lII1I1IlIlIl1Il1lIlI();
$Il111IllIl1I1l11II1l1lIllIlIll1 = I1Ill1l11l1llIIlI1II1llI111I1Il($i);
printf "%7s | power %-3s | %3d watts\n", 'chassis', $I1l1ll1II1lllllIllllllllllIll1l, $Il111IllIl1I1l11II1l1lIllIlIll1;
for ($i = $IlIll111ll1II1l1111Il1ll1I1ll11; $i <= $IIlIIIIl11111lI1lIIIIl11Ill1IIl; ++$i) {
$lIl11I1IIl111I1II11lIIllI1II1ll = sprintf('%d', $i);
$lllI1l1l1lI1l1l1ll111II1lI11I1I = lIIIII1lIllllIIIl11Il1I1IlI1I11($i);
$IlI11lII1lll11lIIlIIll1lI1l1Ill = lIlIIllII1l11I11l11Il1I1I11Ill1($i);
printf "sled %2s | power %-3s | %3d watts\n", $lIl11I1IIl111I1II11lIIllI1II1ll, $lllI1l1l1lI1l1l1ll111II1lI11I1I, $IlI11lII1lll11lIIlIIll1lI1l1Ill;
}
}
return;
}
sub llIIlI1I1IlI1I11ll1l1l1IIllIIIl {
my $l1111lIll1lIIlIlIl1l11l1ll11IIl = shift @_;
my $Il111IlIlII1lll111IlIlIl111I1lI = shift @_;
my $l1ll111I11lllI1I11I1IllI1l11llI = shift @_;
my $i;
my $IlIll111ll1II1l1111Il1ll1I1ll11;
my $IIlIIIIl11111lI1lIIIIl11Ill1IIl;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
if (not defined $Il111IlIlII1lll111IlIlIl111I1lI && defined $l1ll111I11lllI1I11I1IllI1l11llI) {
print "\n";
print "Usage: $l1111lIll1lIIlIlIl1l11l1ll11IIl status|on|off sled_number|all\n";
print "\n";
print " C410X specific. For a given sled, determine or set the power state of a GPGPU sled.\n";
print " The command targets either a single named sled or all sleds.\n";
print "\n";
print "\n";
lI1II1II1lll11111lll1llIIlIllll ;
}
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C410X') {
if ($l1ll111I11lllI1I11I1IllI1l11llI eq 'all') {
$IlIll111ll1II1l1111Il1ll1I1ll11 = 1;
$IIlIIIIl11111lI1lIIIIl11Ill1IIl = 16;
}
else {
$IlIll111ll1II1l1111Il1ll1I1ll11 = int $l1ll111I11lllI1I11I1IllI1l11llI;
$IIlIIIIl11111lI1lIIIIl11Ill1IIl = int $l1ll111I11lllI1I11I1IllI1l11llI;
}
}
if ($Il111IlIlII1lll111IlIlIl111I1lI eq 'status') {
for ($i = $IlIll111ll1II1l1111Il1ll1I1ll11; $i <= $IIlIIIIl11111lI1lIIIIl11Ill1IIl; ++$i) {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lIIIII1lIllllIIIl11Il1I1IlI1I11($i);
if ($l1ll111I11lllI1I11I1IllI1l11llI eq 'all') {
printf "sled %2d : $IIl1IlIIllII1I1lIlIIIIlIIII1lII\n", $i;
}
else {
print "$IIl1IlIIllII1I1lIlIIIIlIIII1lII\n";
}
}
return;
}
if ($Il111IlIlII1lll111IlIlIl111I1lI eq 'on') {
for ($i = $IlIll111ll1II1l1111Il1ll1I1ll11; $i <= $IIlIIIIl11111lI1lIIIIl11Ill1IIl; ++$i) {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lIIIII1lIllllIIIl11Il1I1IlI1I11($i);
if ($IIl1IlIIllII1I1lIlIIIIlIIII1lII eq 'on') {
$i = $i;
}
else {
lllll11Il11IlI1IlllIl111llI111l $i;
}
}
return;
}
if ($Il111IlIlII1lll111IlIlIl111I1lI eq 'off') {
for ($i = $IlIll111ll1II1l1111Il1ll1I1ll11; $i <= $IIlIIIIl11111lI1lIIIIl11Ill1IIl; ++$i) {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lIIIII1lIllllIIIl11Il1I1IlI1I11($i);
if ($IIl1IlIIllII1I1lIlIIIIlIIII1lII eq 'off') {
$i = $i;
}
else {
lllll11Il11IlI1IlllIl111llI111l $i;
}
}
return;
}
lI1II1II1lll11111lll1llIIlIllll ;
}
sub IllllIll1l11I11l11I111IllIllI1l {
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my $II11Il1111IIII1111I11I1lIIl1111;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlI1I1I11I1l1II1II1lll11I1IlIll();
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6105') {
($lIl11I1IIl111I1II11lIIllI1II1ll, $II11Il1111IIII1111I11I1lIIl1111) = l11l11l1lll1Ill1I111ll1l1lI1lI1();
if ($II11Il1111IIII1111I11I1lIIl1111 eq 'unknown' or $II11Il1111IIII1111I11I1lIIl1111 eq 'unprogrammed') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = 'Chassis type not set. Contact Dell Support for instructions to fix.';
}
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub I11l1IlllII1ll11lll1IIIlI111l1I {
my $l1l1lII111IIlllII11IIIl1IIllI1I = shift @_;
my $I111l111IIII1l1IlI1111IlI1I1l1I = shift @_;
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $l1l1lII111IIlllII11IIIl1IIllI1I) {
$l1l1lII111IIlllII11IIIl1IIllI1I = 'unimplemented in tool for this platform';
}
elsif (Il11lIIIlll1Il11ll1lIl1l1II1l1l $l1l1lII111IIlllII11IIIl1IIllI1I) {
$l1l1lII111IIlllII11IIIl1IIllI1I = 'n/a';
}
elsif (l1IIl1I1ll11III11I1III1lIlI11lI $l1l1lII111IIlllII11IIIl1IIllI1I) {
$l1l1lII111IIlllII11IIIl1IIllI1I = 'unavailable';
}
else {
if (defined $I111l111IIII1l1IlI1111IlI1I1l1I) {
$l1l1lII111IIlllII11IIIl1IIllI1I = sprintf($I111l111IIII1l1IlI1111IlI1I1l1I, $l1l1lII111IIlllII11IIIl1IIllI1I);
}
}
return $l1l1lII111IIlllII11IIIl1IIllI1I;
}
sub I1llII1I111I1Il1l1II1l11l1II11l {
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') {
my($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIIll1IllIl1III1IlIl11IIIlI1lIl, $III1l1llIlI1l1I1IIlIIIll1111l1I, $II1l1I11llIIlI11IIIlIllI1l111lI, $lI1IIIIl1lI1II111I1ll1lI11IIlII) = IIllll1Il11II11lllII1IlllIIIl1l();
my $l1l11IIIlll1IIlIl1IIIlIlI1I1l1I;
if ($II1lII1ll1lIlI1lIlIlII11II1IIll) {
$l1l11IIIlll1IIlIl1IIIlIlI1I1l1I = ll11lI1I1I1IlIII1l1l1III1lllI1I($IIIll1IllIl1III1IlIl11IIIlI1lIl);
}
if ($II1lII1ll1lIlI1lIlIlII11II1IIll and $l1l11IIIlll1IIlIl1IIIlIlI1I1l1I == 128) {
return I1I11lIIll1lIIII1II11IlIl1ll11I();
}
return $II1l1I11llIIlI11IIIlIllI1l111lI;
}
return IIIl11111lI1II111lllIIIl111II11();
}
sub lI1llIl11l11II1ll1l1l1Il1lI1IlI {
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') {
my($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIIll1IllIl1III1IlIl11IIIlI1lIl, $lllIlIIIlll1ll1lIlIIIIlIlII1I1l, $lIll111l11III11IIl1lI1ll11ll111, $l1I11Il1II1lIl1ll11IIll1lIl11lI, $l11II1llIlIIIl11l11II11lIIll1l1, $llllIlI1Il1ll11l11Ill1I11ll1l1l, $llI1I11l1lIlI1lll1Ill1llIll11I1) = I1llIlIIIIl11IIIIlIlIIIll1lI1I1();
return $lllIlIIIlll1ll1lIlIIIIlIlII1I1l;
}
return IIIl11111lI1II111lllIIIl111II11();
}
sub llIl1l1I111I1lI1IIl11II11lI1l1l {
if ($III111lll1l1l111lIIlll1II1IlI11 eq 'C6220') {
my($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIIll1IllIl1III1IlIl11IIIlI1lIl, $lllIlIIIlll1ll1lIlIIIIlIlII1I1l, $lIll111l11III11IIl1lI1ll11ll111, $l1I11Il1II1lIl1ll11IIll1lIl11lI, $l11II1llIlIIIl11l11II11lIIll1l1, $llllIlI1Il1ll11l11Ill1I11ll1l1l, $llI1I11l1lIlI1lll1Ill1llIll11I1) = I1llIlIIIIl11IIIIlIlIIIll1lI1I1();
return $lIll111l11III11IIl1lI1ll11ll111;
}
return IIIl11111lI1II111lllIIIl111II11();
}
sub III1lII1IIIIIl1III11l1IIlI1111l {
my $l1II1Il1l11Illl11lI11IIIl1IIlI1 = ll1IlI11l1Il1IlIIlIIlIII11lI11l();
my $I11l1IIllIllIII1l1Il1lIl1l1111I = IIll1IlIIl11I1lll1Il1I11llIl1Il();
my $I11lIlllIII1II1lllllIllllIl1I11 = I11IIl1II1lII1111II1IlI1lIIlIll();
my $lII11l1I1IIll1l1IlIlll1I1lI1lI1 = I1l1l1Il1lI11I1l1lI1111IIlI1lll();
my $lIII1l1lIlll1Il1lI111Il111lI11l = II1I11llIl11lII11lIIIl1II11lIII();
my $lII1lllll1llI1IIlIl1II1ll1llll1 = IlIIlI1Ill1lII1I1IlIlIl1Il1lIlI();
my $IllllIIIl1II11IlIIlllIIl1IIlll1 = IIlllllIl111IIIll1ll1ll1IIlI1I1();
my $II11llIIIlI1lIIIIIl11111llII1I1 = I111Il11l11IIlIll11ll1lll1lIII1();
my $I11III1I1Il1ll1II1lI1l111Il1l1l = IIlllIllI1I1lll111IIl1l1lI1I111();
my $l1lll1lIlI1IllI11l1l1I1IlIlllll = I11ll1111lllI1lII1l11IIll1Il11I();
my $l1llI1I1llIlI1I11lIlll1l111I1I1 = I1llIIlIlllI1I11IIl11IlIl111lll();
my $lllll1IIllI1lll1I1lIllII1I11IIl = I1Ill1l11l1llIIlI1II1llI111I1Il();
my $lII11l1lIlII1Il1lIlIIIlIlllIII1 = IllllIll1l11I11l11I111IllIllI1l();
my $ll1IlIlII1IIl1IlI1llllI11IIlII1 = lIIl1l1llIllI1Il1IlI1I111IIlIl1('terse');
if (Il11lIIIlll1Il11ll1lIl1l1II1l1l $lIII1l1lIlll1Il1lI111Il111lI11l) {
$lIII1l1lIlll1Il1lI111Il111lI11l = ' ';
}
elsif (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $lIII1l1lIlll1Il1lI111Il111lI11l) {
$lIII1l1lIlll1Il1lI111Il111lI11l = '.??';
}
else {
$lIII1l1lIlll1Il1lI111Il111lI11l = '.' . sprintf('%2s', $lIII1l1lIlll1Il1lI111Il111lI11l);
}
my $llllI11Il11IlIllI1IlIlI1ll1I1lI;
my $I11I1IlIl1IllIIIl1IlI111IlllII1 = ' ';
my $Il11Ill1lI11lllI1IlIIlIlll1l1Il = ' ';
my $llIl11l1IIlIl1ll111lI1IlIll11ll = '';
my $I11IIIllll1l11l11l1lIIl111III1I;
my $II1I1Ill1lIIllI1I1I1l1l111I11l1;
my $lIllIIIIIIl1Il11ll1Il1I1111IIl1;
my $III11I1I1l1l1l1l1I1lIlII1IIIIl1;
my $l1IllIlII11I1lII1llIlllIIl11ll1;
my $Il1l1II1II11Ill11IIl1ll1ll1lIII;
$llllI11Il11IlIllI1IlIlI1ll1I1lI = sprintf('%15s', $l1II1Il1l11Illl11lI11IIIl1IIlI1);
if ($lII11l1I1IIll1l1IlIlll1I1lI1lI1 eq 'shared') {
$I11I1IlIl1IllIIIl1IlI111IlllII1 = 'shd';
}
if ($lII11l1I1IIll1l1IlIlll1I1lI1lI1 eq 'dedicated') {
$I11I1IlIl1IllIIIl1IlI111IlllII1 = 'ded';
}
if ($I11l1IIllIllIII1l1Il1lIl1l1111I eq 'static') {
$Il11Ill1lI11lllI1IlIIlIlll1l1Il = 'static';
}
if ($I11l1IIllIllIII1l1Il1lIl1l1111I eq 'dhcp') {
$Il11Ill1lI11lllI1IlIIlIlll1l1Il = 'dhcp';
}
if ($I11lIlllIII1II1lllllIllllIl1I11 ne 'disabled') {
$llIl11l1IIlIl1ll111lI1IlIll11ll = ',vlan' . $I11lIlllIII1II1lllllIllllIl1I11;
}
$I11IIIllll1l11l11l1lIIl111III1I = sprintf('%3s', $lII1lllll1llI1IIlIl1II1ll1llll1);
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $IllllIIIl1II11IlIIlllIIl1IIlll1) {
$II1I1Ill1lIIllI1I1I1l1l111I11l1 = ' unavail';
}
elsif (ll11I1ll11lI1l111Ill11ll1IIIIll $IllllIIIl1II11IlIIlllIIl1IIlll1) {
$II1I1Ill1lIIllI1I1I1l1l111I11l1 = ' reboot';
}
else {
$II1I1Ill1lIIllI1I1I1l1l111I11l1 = sprintf('%8s', $IllllIIIl1II11IlIIlllIIl1IIlll1);
}
$lIllIIIIIIl1Il11ll1Il1I1111IIl1 = sprintf('%4s', $II11llIIIlI1lIIIIIl11111llII1I1);
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $I11III1I1Il1ll1II1lI1l111Il1l1l) {
$III11I1I1l1l1l1l1I1lIlII1IIIIl1 = 'FCB: unavail';
}
elsif (Il11lIIIlll1Il11ll1lIl1l1II1l1l $I11III1I1Il1ll1II1lI1l111Il1l1l) {
$III11I1I1l1l1l1l1I1lIlII1IIIIl1 = '';
}
else {
$III11I1I1l1l1l1l1I1lIlII1IIIIl1 = sprintf('FCB: %4s', $I11III1I1Il1ll1II1lI1l111Il1l1l);
}
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $l1lll1lIlI1IllI11l1l1I1IlIlllll) {
();
}
elsif (Il11lIIIlll1Il11ll1lIl1l1II1l1l $l1lll1lIlI1IllI11l1l1I1IlIlllll) {
();
}
else {
$III11I1I1l1l1l1l1I1lIlII1IIIIl1 .= ' (' . $l1lll1lIlI1IllI11l1l1I1IlIlllll . ')';
}
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $l1llI1I1llIlI1I11lIlll1l111I1I1) {
$l1IllIlII11I1lII1llIlllIIl11ll1 = ' ';
}
elsif (Il11lIIIlll1Il11ll1lIl1l1II1l1l $l1llI1I1llIlI1I11lIlll1l111I1I1) {
$l1IllIlII11I1lII1llIlllIIl11ll1 = ' ';
}
elsif (l1IIl1I1ll11III11I1III1lIlI11lI $l1llI1I1llIlI1I11lIlll1l111I1I1) {
$l1IllIlII11I1lII1llIlllIIl11ll1 = ' ';
}
else {
$l1IllIlII11I1lII1llIlllIIl11ll1 = sprintf('%3d W', $l1llI1I1llIlI1I11lIlll1l111I1I1);
}
print $llllI11Il11IlIllI1IlIlI1ll1I1lI . ' (' . $I11I1IlIl1IllIIIl1IlI111IlllII1 . ',' . $Il11Ill1lI11lllI1IlIIlIlll1l1Il . $llIl11l1IIlIl1ll111lI1IlIll11ll . ') | ' . $I1I1IllI1Il11111111II11lI11I1lI . $lIII1l1lIlll1Il1lI111Il111lI11l . ' | ' . 'power ' . $I11IIIllll1l11l11l1lIIl111III1I . ' : ' . $l1IllIlII11I1lII1llIlllIIl11ll1 . ' | ' . 'BIOS: ' . $II1I1Ill1lIIllI1I1I1l1l111I11l1 . ' | ' . 'BMC: ' . $lIllIIIIIIl1Il11ll1Il1I1111IIl1 . ' | ' . $III11I1I1l1l1l1l1I1lIlII1IIIIl1 . "\n";
if (lI1IIlllllIlllI11lIIlIllI1I11II $lII11l1lIlII1Il1lIlIIIlIlllIII1) {
print "^^^^^^^^^^^^^^^--- Error: $lII11l1lIlII1Il1lIlIIIlIlllIII1 \n";
print "\n";
}
}
sub lII111Il11l1ll1II1lII1lIIlIl11I {
my $i;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my $llll1lII1l11I1IlllllIIllll1l1II;
my $II11lIIlI1Il1Il1IIIlI1lIl1lII1l;
my $l1lllIll1IIllIIIIlIllIlI1lII1lI;
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_;
my($II1Ill1IllI1l1Il1ll11l1l1lll1ll, $IIIl11lllllIIlllI1l1l1ll1IlI1I1, $l11IIll111l1ll11IIl11lIIIIllIll, $lIlIIllIIIlII1I1I11Illl1llIIIll) = @_;
$II11lIIlI1Il1Il1IIIlI1lIl1lII1l = -1;
if (defined $l11IIll111l1ll11IIl11lIIIIllIll) {
if ($l11IIll111l1ll11IIl11lIIIIllIll eq 'all_but_ipmi_disabled') {
$II11lIIlI1Il1Il1IIIlI1lIl1lII1l = $lll1lI1Il11IIlll1II1lIIlllI11I1;
}
if ($l11IIll111l1ll11IIl11lIIIIllIll eq 'ikvm_disabled') {
$II11lIIlI1Il1Il1IIIlI1lIl1lII1l = $I1llIlIllIll11l11111l1I11IIlllI;
}
if ($l11IIll111l1ll11IIl11lIIIIllIll eq 'http_disabled') {
$II11lIIlI1Il1Il1IIIlI1lIl1lII1l = $lI11II1111lIlIlI111lIIIIllI1ll1;
}
if ($l11IIll111l1ll11IIl11lIIIIllIll eq 'ssh_telnet_disabled') {
$II11lIIlI1Il1Il1IIIlI1lIl1lII1l = $IlII11lll1ll1II1ll1lI1I1I11l1I1;
}
if ($l11IIll111l1ll11IIl11lIIIIllIll eq 'snmp_disabled') {
$II11lIIlI1Il1Il1IIIlI1lIl1lII1l = $II11lIIIlII1l11I11I11111II11III;
}
}
$l1lllIll1IIllIIIIlIllIlI1lII1lI = -1;
if (defined $lIlIIllIIIlII1I1I11Illl1llIIIll) {
if ($lIlIIllIIIlII1I1I11Illl1llIIIll eq 'yes') {
$l1lllIll1IIllIIIIlIllIlI1lII1lI = 1;
}
if ($lIlIIllIIIlII1I1I11Illl1llIIIll eq 'no') {
$l1lllIll1IIllIIIIlIllIlI1lII1lI = 0;
}
}
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 < 3 or $II11lIIlI1Il1Il1IIIlI1lIl1lII1l == -1 or $IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'set' and $l1lllIll1IIllIIIIlIllIlI1lII1lI == -1) {
printf "Usage:\n";
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll get|set ((option)) [yes|no]\n";
printf "\n";
printf " Available options:\n";
printf " all_but_ipmi_disabled\n";
printf " ikvm_disabled\n";
printf " http_disabled\n";
printf " ssh_telnet_disabled\n";
printf " snmp_disabled\n";
printf "\n";
lI1II1II1lll11111lll1llIIlIllll ;
}
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'get') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = lllIIIIl11llIIl1Illl1l1IIllI1Il($II11lIIlI1Il1Il1IIIlI1lIl1lII1l);
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $IIl1IlIIllII1I1lIlIIIIlIIII1lII) {
printf "$IIl1IlIIllII1I1lIlIIIIlIIII1lII\n";
return;
}
if (lIllIll1l111I1I1IllII1lll1llIIl $IIl1IlIIllII1I1lIlIIIIlIIII1lII) {
printf "Operation is not supported on this platform.\n";
return;
}
printf "%s\n", I1IIlI1IIIIllllI1IlIl1I1llIll11($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
return;
}
if ($IIIl11lllllIIlllI1l1l1ll1IlI1I1 eq 'set') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11llllI1lIlIlIIl1l1I1l1IIl111I($II11lIIlI1Il1Il1IIIlI1lIl1lII1l, $l1lllIll1IIllIIIIlIllIlI1lII1lI);
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $IIl1IlIIllII1I1lIlIIIIlIIII1lII) {
printf "Operation did not succeed. (likely an unsupported bit setting)\n";
return;
}
if (lIllIll1l111I1I1IllII1lll1llIIl $IIl1IlIIllII1I1lIlIIIIlIIII1lII) {
printf "Operation is not supported on this platform.\n";
return;
}
print "\n";
return;
}
}
sub I11I1I111l1l1lIll1llI1IllII1111 {
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_;
my($II1Ill1IllI1l1Il1ll11l1l1lll1ll, $lIlIIllIIIlII1I1I11Illl1llIIIll) = @_;
my $l1lllIll1IIllIIIIlIllIlI1lII1lI;
$l1lllIll1IIllIIIIlIllIlI1lII1lI = -1;
if (defined $lIlIIllIIIlII1I1I11Illl1llIIIll) {
if ($lIlIIllIIIlII1I1I11Illl1llIIIll eq 'yes') {
$l1lllIll1IIllIIIIlIllIlI1lII1lI = 1;
}
if ($lIlIIllIIIlII1I1I11Illl1llIIIll eq 'no') {
$l1lllIll1IIllIIIIlIllIlI1lII1lI = 0;
}
}
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 < 2 or $l1lllIll1IIllIIIIlIllIlI1lII1lI == -1) {
printf "Usage:\n";
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll yes|no\n";
printf "\n";
lI1II1II1lll11111lll1llIIlIllll ;
}
printf "\n";
ll1lIIII1lII1IlIl1llI1llI1I1III $l1lllIll1IIllIIIIlIllIlI1lII1lI;
return;
}
sub lI1I1lllI11llIlIl1Ill1l11l11IlI {
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_;
my($II1Ill1IllI1l1Il1ll11l1l1lll1ll, $IllIIlI1lI1lI1I1IIIlII1III11lIl) = @_;
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 < 2) {
printf "Usage:\n";
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll port_number\n";
printf "\n";
lI1II1II1lll11111lll1llIIlIllll ;
}
printf "\n";
l11111111III1IllIIII11IIlllIIl1 $IllIIlI1lI1lI1I1IIIlII1III11lIl;
return;
}
sub l1llIll111IllIII1llll11l11llI11 {
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_;
my($II1Ill1IllI1l1Il1ll11l1l1lll1ll, $IllIIlI1lI1lI1I1IIIlII1III11lIl) = @_;
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 < 2) {
printf "Usage:\n";
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll port_number\n";
printf "\n";
lI1II1II1lll11111lll1llIIlIllll ;
}
printf "\n";
IIIIl1l1ll1ll1ll1lI1lI11I1IlI1l $IllIIlI1lI1lI1I1IIIlII1III11lIl;
return;
}
sub lI1ll1I111I11lIl11lI1lIIIIlllI1 {
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_;
my($II1Ill1IllI1l1Il1ll11l1l1lll1ll, $lllI1111l1IllI1IIlIl1I11I11I1ll) = @_;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 < 2) {
printf "Usage:\n";
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll sensor_id\n";
printf "\n";
printf " The sensor_id can be found as the second field in 'ipmitool sdr elist'.\n";
printf "\n";
lI1II1II1lll11111lll1llIIlIllll ;
}
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = Il11IIIl11lIlll1llII1lI1llll1Il(hex $lllI1111l1IllI1IIlIl1I11I11I1ll);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = hex $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
printf "Sensor $lllI1111l1IllI1IIlIl1I11I11I1ll%s reading in decimal: %d \n", ':', $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
printf "Sensor $lllI1111l1IllI1IIlIl1I11I11I1ll%s reading in hex: 0x%02x \n", ':', $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
return;
}
sub lIlI1l111lIIII1IIlIII1IlIl11I1I {
my $lI1IllIIII11IIIlI1lII11l1l1lII1 = shift @_;
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my(@Il1llII1I1IIll1I1lIII11lII1l1I1) = ();
die "\nError: Could not open BMC list file $lI1IllIIII11IIIlI1lII11l1l1lII1\n\n" unless open MYBMCFILE, $lI1IllIIII11IIIlI1lII11l1l1lII1;
while (defined($_ = <MYBMCFILE>)) {
$lIl11I1IIl111I1II11lIIllI1II1ll = $_;
$lIl11I1IIl111I1II11lIIllI1II1ll = llIlIllIlll11llIll11l11lIlIll1l($lIl11I1IIl111I1II11lIIllI1II1ll);
$lIl11I1IIl111I1II11lIIllI1II1ll = I11lllII1lll111II1IllIIl1II1llI($lIl11I1IIl111I1II11lIIllI1II1ll);
if ($lIl11I1IIl111I1II11lIIllI1II1ll =~ /^$/) {
next;
}
push @Il1llII1I1IIll1I1lIII11lII1l1I1, $lIl11I1IIl111I1II11lIIllI1II1ll;
}
return @Il1llII1I1IIll1I1lIII11lII1l1I1;
}
sub lllIIl111l1lI1lII111llllIllI11I {
my $II11llIIIlI1lIIIIIl11111llII1I1 = '';
++$lll11Il1Ill1IlIllll11IIllI111l1;
if ($lll11Il1Ill1IlIllll11IIllI111l1 < $#lI1Il11ll11l1I1I1I1II111IIl11I1 + 1) {
$II11llIIIlI1lIIIIIl11111llII1I1 = $lI1Il11ll11l1I1I1I1II111IIl11I1[$lll11Il1Ill1IlIllll11IIllI111l1];
$IIIllll1lllI1111II111III11I1I1l = $II11llIIIlI1lIIIIIl11111llII1I1;
I1llll1l11I1IlI1III111l11II111l 'CURBMC', $II11llIIIlI1lIIIIIl11111llII1I1;
}
return $II11llIIIlI1lIIIIIl11111llII1I1;
}
sub I11lIIl11l11lI1lI1llIl11lII1I1l {
if ($ll1I1l1Il1llI11ll11lIIIIl1IIlI1) {
printf '%' . $IIl11llIIIlIIlIlllIIII11lIIIlIl . 's: ', $IIIllll1lllI1111II111III11I1I1l;
}
}
sub Illll1IIl11l1lllIl1IllI111I1llI {
printf "BMC is awake\n";
}
sub I1lIl1l1lll11llI1ll11lI1l1l1lIl {
my $Il111IlIlII1lll111IlIlIl111I1lI = shift @_;
my $lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il = join(' ', @_);
my $II1lII1ll1lIlI1lIlIlII11II1IIll;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
IlI11l1II111I1I111IllIIllIll1lI 'ipmitool_passthrough';
($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIl1IlIIllII1I1lIlIIIIlIIII1lII) = l1lI1I1I1Il11IIl1l1IIIll1llIIII("$lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il");
print "\n";
print "$IIl1IlIIllII1I1lIlIIIIlIIII1lII\n";
return;
}
sub lll111IlIll1IIl111lllIIl1III1II {
my $lll11Ill1l11l1l1ll1lI1I11l1111I = IIll1ll11I11IlllIll11ll1II11I1I();
my $lIl11I1IIl111I1II11lIIllI1II1ll;
$lIl11I1IIl111I1II11lIIllI1II1ll = IIIIllI11I1I1l1IlIII1l1IlII1111('', 'FRU Device Description', $lll11Ill1l11l1l1ll1lI1I11l1111I);
my(@Illl1I1I1ll1lll11llI1l1lIIIlI1I) = split(/\n/, $lIl11I1IIl111I1II11lIIllI1II1ll, 0);
my $I1IIIlI1ll11Ill11lIl1I1l1I1Il1I = $#Illl1I1I1ll1lll11llI1l1lIIIlI1I + 1;
return $I1IIIlI1ll11Ill11lIl1I1l1I1Il1I;
}
sub I1l1lll11llIl1l1I111IllI1ll1II1 {
my $III1lI1Il11IllIIlI1I111Il1lII11 = shift @_;
my $lll11Ill1l11l1l1ll1lI1I11l1111I = IIll1ll11I11IlllIll11ll1II11I1I();
my(@IlIlIl1IIIlII1Il11lI11I1l11ll11) = split(/FRU Device Description/, $lll11Ill1l11l1l1ll1lI1I11l1111I, 0);
shift @IlIlIl1IIIlII1Il11lI11I1l11ll11;
my $IIlllllIII11III111ll111lIlI11II = $IlIlIl1IIIlII1Il11lI11I1l11ll11[$III1lI1Il11IllIIlI1I111Il1lII11];
$IIlllllIII11III111ll111lIlI11II = I11lllII1lll111II1IllIIl1II1llI($IIlllllIII11III111ll111lIlI11II);
return $IIlllllIII11III111ll111lIlI11II;
}
sub IIll1II1I1lIlIII1lI1lIlIIl11I11 {
my $Il111IlIlII1lll111IlIlIl111I1lI = shift @_;
my $lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il = join(' ', @_);
my $lll11Ill1l11l1l1ll1lI1I11l1111I = IIll1ll11I11IlllIll11ll1II11I1I();
my $l1IlIlllII11I1l1l1lI1l11ll1l1l1;
my $IlIlIl1IIIlII1Il11lI11I1l11ll11;
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my $IIIIl11l1I1lllIl1llIl1l1I11lI1I;
my $lIl1II1IllI1l1lllIlIll1I11l1III;
my $i;
my @Illl1I1I1ll1lll11llI1l1lIIIlI1I;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = '';
my $I1IIIlI1ll11Ill11lIl1I1l1I1Il1I = lll111IlIll1IIl111lllIIl1III1II();
for ($i = 0; $i < $I1IIIlI1ll11Ill11lIl1I1l1I1Il1I; ++$i) {
$l1IlIlllII11I1l1l1lI1l11ll1l1l1 = I1l1lll11llIl1l1I111IllI1ll1II1($i);
$l1IlIlllII11I1l1l1lI1l11ll1l1l1 = I11lllII1lll111II1IllIIl1II1llI($l1IlIlllII11I1l1l1lI1l11ll1l1l1);
$lIl11I1IIl111I1II11lIIllI1II1ll = I1I1lIIII1lIll1l11I11lll1Il1II1(1, $l1IlIlllII11I1l1l1lI1l11ll1l1l1);
$lIl11I1IIl111I1II11lIIllI1II1ll = I11lllII1lll111II1IllIIl1II1llI($lIl11I1IIl111I1II11lIIllI1II1ll);
$lIl1II1IllI1l1lllIlIll1I11l1III = ll1IllIIlIll111lIl11IlllIllII1l('\\(', '\\)', $lIl11I1IIl111I1II11lIIllI1II1ll);
$lIl1II1IllI1l1lllIlIll1I11l1III = l1lI11I1llllI1IIII111IllI1l11Il('ID', $lIl1II1IllI1l1lllIlIll1I11l1III);
$lIl1II1IllI1l1lllIlIll1I11l1III = I11lllII1lll111II1IllIIl1II1llI($lIl1II1IllI1l1lllIlIll1I11l1III);
$IIIIl11l1I1lllIl1llIl1l1I11lI1I = ll1IllIIlIll111lIl11IlllIllII1l('\\:', '\\(', $lIl11I1IIl111I1II11lIIllI1II1ll);
$IIIIl11l1I1lllIl1llIl1l1I11lI1I = I11lllII1lll111II1IllIIl1II1llI($IIIIl11l1I1lllIl1llIl1l1I11lI1I);
$IlIlIl1IIIlII1Il11lI11I1l11ll11 = I1IIl1lIIIIIlI1I1IIIlI1IlIlIII1(2, 0, $l1IlIlllII11I1l1l1lI1l11ll1l1l1);
@Illl1I1I1ll1lll11llI1l1lIIIlI1I = split(/\n/, $IlIlIl1IIIlII1Il11lI11I1l11ll11, 0);
$IIl1IlIIllII1I1lIlIIIIlIIII1lII .= sprintf("FRU ID $lIl1II1IllI1l1lllIlIll1I11l1III Device Section Name : $IIIIl11l1I1lllIl1llIl1l1I11lI1I\n");
foreach my $l11IIIIllIIl1lll111II11lI1ll1l1 (@Illl1I1I1ll1lll11llI1l1lIIIlI1I) {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII .= sprintf("FRU ID $lIl1II1IllI1l1lllIlIll1I11l1III $l11IIIIllIIl1lll111II11lI1ll1l1\n");
}
}
return $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
sub I1I11I11llII11111Illll1111I1I11 {
my $lIl11I1IIl111I1II11lIIllI1II1ll = IIll1II1I1lIlIII1lI1lIlIIl11I11();
print "$lIl11I1IIl111I1II11lIIllI1II1ll\n";
}
sub IlIll1lII1I11llIII11lllII1Il1I1 {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I1Ill1l11l1llIIlI1II1llI111I1Il();
print "$IIl1IlIIllII1I1lIlIIIIlIIII1lII\n";
}
sub IIIlII1llI1IIIIlI11Il1IIlll11I1 {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I1llIIlIlllI1I11IIl11IlIl111lll();
print "$IIl1IlIIllII1I1lIlIIIIlIIII1lII\n";
}
my $lIllII1I1II1l1Ill11llIlI1l1IIll = 1;
my $l111I11lIlI111IIlIIlI11Il1II1Il;
sub I1I1llIII1IIIIl11I1llIlIl1II111 {
if ($lIllII1I1II1l1Ill11llIlI1l1IIll == 2) {
print '.' . $l111I11lIlI111IIlIIlI11Il1II1Il . '.';
++$l111I11lIlI111IIlIIlI11Il1II1Il;
}
if ($lIllII1I1II1l1Ill11llIlI1l1IIll == 1) {
if ($l111I11lIlI111IIlIIlI11Il1II1Il % 5 == 0) {
print ':';
}
else {
print '.';
}
$l111I11lIlI111IIlIIlI11Il1II1Il++;
}
}
sub l1IlIll1l1lIlllIlllI11IIlIlI11l {
$l111I11lIlI111IIlIIlI11Il1II1Il = 1;
I1I1llIII1IIIIl11I1llIlIl1II111 ;
my $l1II1Il1l11Illl11lI11IIIl1IIlI1 = ll1IlI11l1Il1IlIIlIIlIII11lI11l();
I1I1llIII1IIIIl11I1llIlIl1II111 ;
my $lllIll1I1111ll1llII1I1111ll1I11 = lllIllI111111lll1l1I11I1111lIlI();
I1I1llIII1IIIIl11I1llIlIl1II111 ;
my $I11l1IIllIllIII1l1Il1lIl1l1111I = IIll1IlIIl11I1lll1Il1I11llIl1Il();
I1I1llIII1IIIIl11I1llIlIl1II111 ;
my $I11lIlllIII1II1lllllIllllIl1I11 = I11IIl1II1lII1111II1IlI1lIIlIll();
I1I1llIII1IIIIl11I1llIlIl1II111 ;
my $lII11l1I1IIll1l1IlIlll1I1lI1lI1 = I1l1l1Il1lI11I1l1lI1111IIlI1lll();
I1I1llIII1IIIIl11I1llIlIl1II111 ;
my $lIII1l1lIlll1Il1lI111Il111lI11l = II1I11llIl11lII11lIIIl1II11lIII();
I1I1llIII1IIIIl11I1llIlIl1II111 ;
my $lII1lllll1llI1IIlIl1II1ll1llll1 = IlIIlI1Ill1lII1I1IlIlIl1Il1lIlI();
I1I1llIII1IIIIl11I1llIlIl1II111 ;
my $IllllIIIl1II11IlIIlllIIl1IIlll1 = IIlllllIl111IIIll1ll1ll1IIlI1I1();
I1I1llIII1IIIIl11I1llIlIl1II111 ;
my $II11llIIIlI1lIIIIIl11111llII1I1 = I111Il11l11IIlIll11ll1lll1lIII1();
I1I1llIII1IIIIl11I1llIlIl1II111 ;
my $I11III1I1Il1ll1II1lI1l111Il1l1l = IIlllIllI1I1lll111IIl1l1lI1I111();
I1I1llIII1IIIIl11I1llIlIl1II111 ;
my $l1lll1lIlI1IllI11l1l1I1IlIlllll = I11ll1111lllI1lII1l11IIll1Il11I();
I1I1llIII1IIIIl11I1llIlIl1II111 ;
my $lll1Illl11II1II1lIIlIlllIlII1II = I1IllIl11lIIlllI1IlI1l1III1I1l1();
I1I1llIII1IIIIl11I1llIlIl1II111 ;
my $l1I1Ill1IlI11IIIIllI1IIllI1lI1I = l1lIlIIIII1IIl1IIlIIlIll11IlI1l();
I1I1llIII1IIIIl11I1llIlIl1II111 ;
my $I1Ill111111I1I1I11lIIlIlllII11I = II11ll1I1I11l1lIlI1l1I1IllI11l1();
I1I1llIII1IIIIl11I1llIlIl1II111 ;
my $I11IIII1l1IlII111II1l1l1Il11lll = I1lII1Il1lIlII1I11I1I111IlI1I1I();
I1I1llIII1IIIIl11I1llIlIl1II111 ;
my $lIIIlIlllII111II1IIIIl1II1lIIl1 = I1lII11lIIIl1I1Ill1l1I11I1IlIII();
I1I1llIII1IIIIl11I1llIlIl1II111 ;
my $llIll1lllI11lI11III11I11IIIIlI1 = lI11lI1I111II111l1lI1IlllI11l11();
I1I1llIII1IIIIl11I1llIlIl1II111 ;
my $I11ll1I1I1II1lI1ll1IlIIIlIIII1I = l1l11lIlll11lI1I11II111lIl1lllI();
I1I1llIII1IIIIl11I1llIlIl1II111 ;
my $I11l111I1lll11IlI1lIllIlII1l1l1 = ll1I1I1llI111IIlllIlI11ll1lIII1();
I1I1llIII1IIIIl11I1llIlIl1II111 ;
my $l1I1I11I11lIllIIlIlllIIIIIl1lll = l11I1II1l1IlI1IIlIlI1llII1IlI11();
I1I1llIII1IIIIl11I1llIlIl1II111 ;
my $I1l1II1Il1I1l1III1lIlIll1l11lIl = lIl1lIIl1IlllIlII11lll11IlIIIl1();
I1I1llIII1IIIIl11I1llIlIl1II111 ;
my $l11IIl111II1I1II1IllIIllIII1l11 = IlIlllIlIlI111IlI1llI1llll1IIII();
I1I1llIII1IIIIl11I1llIlIl1II111 ;
my $I1l1Illl11IllIIlIlIllIlIl1l11I1 = l11l1lI111l11IIII1III11lIl1IIll();
I1I1llIII1IIIIl11I1llIlIl1II111 ;
my $l1llI1I1llIlI1I11lIlll1l111I1I1 = I1llIIlIlllI1I11IIl11IlIl111lll();
I1I1llIII1IIIIl11I1llIlIl1II111 ;
my $lllll1IIllI1lll1I1lIllII1I11IIl = I1Ill1l11l1llIIlI1II1llI111I1Il();
I1I1llIII1IIIIl11I1llIlIl1II111 ;
my $IlIIl1IIl1llII1llIll1lIIIIl1llI = l111Ill111I1l11l1I1II1lIlI1lII1();
I1I1llIII1IIIIl11I1llIlIl1II111 ;
my $lII1Illl1l1ll11llI1llII111ll1I1 = IIl1l1lll1I1ll11IIIlllIl1llII1l();
I1I1llIII1IIIIl11I1llIlIl1II111 ;
my $I11Ill1l1lI1I1II1III1lllI1l11Il = lII11I1lIIIIllIIIIIIIIIl11lIIll();
I1I1llIII1IIIIl11I1llIlIl1II111 ;
my $I1IllI1ll1IIlll11lll11lI1I1I111 = l1I1lllIlI11l1I1Ill1111lI1I1Il1();
I1I1llIII1IIIIl11I1llIlIl1II111 ;
my $lII11l1lIlII1Il1lIlIIIlIlllIII1 = IllllIll1l11I11l11I111IllIllI1l();
I1I1llIII1IIIIl11I1llIlIl1II111 ;
my $ll1IlIlII1IIl1IlI1llllI11IIlII1 = lIIl1l1llIllI1Il1IlI1I111IIlIl1();
I1I1llIII1IIIIl11I1llIlIl1II111 ;
my($l1Ill1lIIl1l1I111ll1ll11I11lI11, $ll11IllI111lllllII11II1I1l1Il1I) = l11l11l1lll1Ill1I111ll1l1lI1lI1();
I1I1llIII1IIIIl11I1llIlIl1II111 ;
my $lllIlIlllIll111ll11IllIlll11Il1 = IlIII1ll11I1II1llll1IlIIl1II1I1();
I1I1llIII1IIIIl11I1llIlIl1II111 ;
my $Il1ll1lI1lIll111l1Il111I1lI1111 = II1II1l1IlIl1lIIII1l11l1lIIIIII();
I1I1llIII1IIIIl11I1llIlIl1II111 ;
my $l1lII11I1l1lI1111IIl1Ill1lIlIlI = I1llII1I111I1Il1l1II1l11l1II11l();
I1I1llIII1IIIIl11I1llIlIl1II111 ;
my $IIIllIIIlIIll11Ill111Ill111II11 = llIl1l1I111I1lI1IIl11II11lI1l1l();
I1I1llIII1IIIIl11I1llIlIl1II111 ;
my $l1lIIlII1l1IIl1l111l1l111Il1lI1 = lI1llIl11l11II1ll1l1l1Il1lI1IlI();
print "\n";
if (Il11lIIIlll1Il11ll1lIl1l1II1l1l $lIII1l1lIlll1Il1lI111Il111lI11l) {
$lIII1l1lIlll1Il1lI111Il111lI11l = 'n/a';
}
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $lIII1l1lIlll1Il1lI111Il111lI11l) {
$lIII1l1lIlll1Il1lI111Il111lI11l = 'unimplemented in tool for this platform';
}
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $IllllIIIl1II11IlIIlllIIl1IIlll1) {
$IllllIIIl1II11IlIIlllIIl1IIlll1 = 'unavailable';
}
elsif (ll11I1ll11lI1l111Ill11ll1IIIIll $IllllIIIl1II11IlIIlllIIl1IIlll1) {
$IllllIIIl1II11IlIIlllIIl1IIlll1 = 'reboot of server required';
}
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $I11III1I1Il1ll1II1lI1l111Il1l1l) {
$I11III1I1Il1ll1II1lI1l111Il1l1l = 'unimplemented in tool for this platform';
}
elsif (Il11lIIIlll1Il11ll1lIl1l1II1l1l $I11III1I1Il1ll1II1lI1l111Il1l1l) {
$I11III1I1Il1ll1II1lI1l111Il1l1l = 'n/a';
}
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $l1lll1lIlI1IllI11l1l1I1IlIlllll) {
$l1lll1lIlI1IllI11l1l1I1IlIlllll = 'unimplemented in tool for this platform';
}
elsif (Il11lIIIlll1Il11ll1lIl1l1II1l1l $l1lll1lIlI1IllI11l1l1I1IlIlllll) {
$l1lll1lIlI1IllI11l1l1I1IlIlllll = 'n/a';
}
if (IlII1I1l1lIIlI1I11I1IIIlllIlll1 $lll1Illl11II1II1lIIlIlllIlII1II) {
$lll1Illl11II1II1lIIlIlllIlII1II = 'unimplemented in tool for this platform';
}
elsif (Il11lIIIlll1Il11ll1lIl1l1II1l1l $lll1Illl11II1II1lIIlIlllIlII1II) {
$lll1Illl11II1II1lIIlIlllIlII1II = 'n/a';
}
elsif (l1IIl1I1ll11III11I1III1lIlI11lI $lll1Illl11II1II1lIIlIlllIlII1II) {
$lll1Illl11II1II1lIIlIlllIlII1II = 'unavailable - power node on to read';
}
elsif (ll11I1ll11lI1l111Ill11ll1IIIIll $lll1Illl11II1II1lIIlIlllIlII1II) {
$lll1Illl11II1II1lIIlIlllIlII1II = 'invalid - Intel ME may be disabled in BIOS (Power Management)';
}
$l1llI1I1llIlI1I11lIlll1l111I1I1 = I11l1IlllII1ll11lll1IIIlI111l1I($l1llI1I1llIlI1I11lIlll1l111I1I1, '%d Watts');
$lllll1IIllI1lll1I1lIllII1I11IIl = I11l1IlllII1ll11lll1IIIlI111l1I($lllll1IIllI1lll1I1lIllII1I11IIl, '%d Watts');
if (lIll1lIIllIII1IlI11l111llII1I1I $l1lII11I1l1lI1111IIl1Ill1lIlIlI) {
$l1lII11I1l1lI1111IIl1Ill1lIlIlI = '---';
}
if (l1IIl1I1ll11III11I1III1lIlI11lI $ll11IllI111lllllII11II1I1l1Il1I) {
$ll11IllI111lllllII11II1I1l1Il1I = II111lIlIlIIlIll1IllII1lIlI1lIl($ll11IllI111lllllII11II1I1l1Il1I);
}
my $l1l1l1Ill1lIII1lIIlIIll111Il1I1 = 38;
printf "\n";
if (lI1IIlllllIlllI11lIIlIllI1I11II $lII11l1lIlII1Il1lIlIIIlIlllIII1) {
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'ERROR', '>'), $lII11l1lIlII1Il1lIlIIIlIlllIII1;
}
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Power is'), $lII1lllll1llI1IIlIl1II1ll1llll1;
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Platform name'), $I1I1IllI1Il11111111II11lI11I1lI;
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Platform type'), $ll1IlIlII1IIl1IlI1llllI11IIlII1;
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Node number in chassis'), $lIII1l1lIlll1Il1lI111Il111lI11l;
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Chassis type'), $ll11IllI111lllllII11II1I1l1Il1I;
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Chassis Service Tag'), $lllIlIlllIll111ll11IllIlll11Il1;
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Power drawn by this node'), $l1llI1I1llIlI1I11lIlll1l111I1I1;
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Power limit for this node'), $l1lII11I1l1lI1111IIl1Ill1lIlIlI;
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Power drawn by whole chassis'), $lllll1IIllI1lll1I1lIllII1I11IIl;
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Power limit for this chassis'), $IIIllIIIlIIll11Ill111Ill111II11;
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Chassis power limiting enabled'), I1IIlI1IIIIllllI1IlIl1I1llIll11($l1lIIlII1l1IIl1l111l1l111Il1lI1);
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'AC restore policy'), $I11Ill1l1lI1I1II1III1lllI1l11Il;
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'BIOS version'), $IllllIIIl1II11IlIIlllIIl1IIlll1;
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'BMC version'), $II11llIIIlI1lIIIIIl11111llII1I1;
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'FCB version'), $I11III1I1Il1ll1II1lI1l111Il1l1l;
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'FCB PIC version'), $l1lll1lIlI1IllI11l1l1I1IlIlllll;
if ($lll1Illl11II1II1lIIlIlllIlII1II ne 'n/a') {
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Intel ME version (if applicable)'), $lll1Illl11II1II1lIIlIlllIlII1II;
}
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'ipmitool version'), $IlIIl1IIl1llII1llIll1lIIIIl1llI;
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'bmc tool version'), $lII1Illl1l1ll11llI1llII111ll1I1;
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'BMC hostname'), $lIIIlIlllII111II1IIIIl1II1lIIl1;
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'BMC IP source'), $I11l1IIllIllIII1l1Il1lIl1l1111I;
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'BMC IP address'), $l1II1Il1l11Illl11lI11IIIl1IIlI1;
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'BMC subnet mask'), $lllIll1I1111ll1llII1I1111ll1I11;
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'BMC MAC address'), $I1IllI1ll1IIlll11lll11lI1I1I111;
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'BMC VLAN setting'), $I11lIlllIII1II1lllllIllllIl1I11;
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'BMC NIC mode (which physical port)'), $lII11l1I1IIll1l1IlIlll1I1lI1lI1;
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Service tag'), $I1Ill111111I1I1I11lIIlIlllII11I;
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Asset tag (set by customer)'), $I11IIII1l1IlII111II1l1l1Il11lll;
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'PPID (unique board serial num)'), $l1I1Ill1IlI11IIIIllI1IIllI1lI1I;
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Security: all_but_ipmi_disabled'), I1IIlI1IIIIllllI1IlIl1I1llIll11($llIll1lllI11lI11III11I11IIIIlI1);
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Security: ikvm_disabled'), I1IIlI1IIIIllllI1IlIl1I1llIll11($I11ll1I1I1II1lI1ll1IlIIIlIIII1I);
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Security: http_disabled'), I1IIlI1IIIIllllI1IlIl1I1llIll11($I11l111I1lll11IlI1lIllIlII1l1l1);
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Security: ssh_telnet_disabled'), I1IIlI1IIIIllllI1IlIl1I1llIll11($l1I1I11I11lIllIIlIlllIIIIIl1lll);
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Security: snmp_disabled'), I1IIlI1IIIIllllI1IlIl1I1llIll11($Il1ll1lI1lIll111l1Il111I1lI1111);
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'BMC Web GUI enabled'), I1IIlI1IIIIllllI1IlIl1I1llIll11($I1l1II1Il1I1l1III1lIlIll1l11lIl);
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'BMC Web GUI http port'), $l11IIl111II1I1II1IllIIllIII1l11;
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'BMC Web GUI https port'), $I1l1Illl11IllIIlIlIllIlIl1l11I1;
my $IIIlllII1I11lIIlllIIl1lIl11I111 = IIll1II1I1lIlIII1lI1lIlIIl11I11();
my(@Illl1I1I1ll1lll11llI1l1lIIIlI1I) = split(/\n/, $IIIlllII1I11lIIlllIIl1lIl11I111, 0);
my $lIl11lIIll1llI1lI11lI1l1IIl1lIl;
my $Ill1IllIII1l11l11lIlI1l1I1lll1I;
foreach my $l11IIIIllIIl1lll111II11lI1ll1l1 (@Illl1I1I1ll1lll11llI1l1lIIIlI1I) {
$lIl11lIIll1llI1lI11lI1l1IIl1lIl = ll11ll111I1IIIIll1ll1l1IlIIIl1l(':', $l11IIIIllIIl1lll111II11lI1ll1l1);
$Ill1IllIII1l11l11lIlI1l1I1lll1I = l1lI11I1llllI1IIII111IllI1l11Il(':', $l11IIIIllIIl1lll111II11lI1ll1l1);
$lIl11lIIll1llI1lI11lI1l1IIl1lIl = I11lllII1lll111II1IllIIl1II1llI($lIl11lIIll1llI1lI11lI1l1IIl1lIl);
$Ill1IllIII1l11l11lIlI1l1I1lll1I = I11lllII1lll111II1IllIIl1II1llI($Ill1IllIII1l11l11lIlI1l1I1lll1I);
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, $lIl11lIIll1llI1lI11lI1l1IIl1lIl), $Ill1IllIII1l11l11lIlI1l1I1lll1I;
}
if (lI1IIlllllIlllI11lIIlIllI1I11II $lII11l1lIlII1Il1lIlIIIlIlllIII1) {
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'ERROR', '>'), $lII11l1lIlII1Il1lIlIIIlIlllIII1;
}
printf "\n";
}
sub IIlIl1l1lIlIl1IllIl1III1IlI111I {
my $lII11l1I1IIll1l1IlIlll1I1lI1lI1 = I1l1l1Il1lI11I1l1lI1111IIlI1lll();
my $I1IllI1ll1IIlll11lll11lI1I1I111 = l1I1lllIlI11l1I1Ill1111lI1I1Il1();
printf "%s,%s\n", $lII11l1I1IIll1l1IlIlll1I1lI1lI1, $I1IllI1ll1IIlll11lll11lI1I1I111;
}
sub I1IIIlIlI11111Il1IlIIl1I1l1l1ll {
if (not $lI1l11ll1II11llII1lllllllIIIIlI) {
printf "\n";
printf "This function cannot be used remotely, because it is possible to render the BMC inaccessible.\n";
printf "If you really, really, really want to do this remotely, use:\n";
printf "\n";
printf " print_this_mac\n";
printf " nic_mode toggle\n";
printf " (wait 30 seconds)\n";
printf " print_this_mac\n";
printf " nic_mode toggle\n";
printf " (wait 30 seconds)\n";
printf "\n";
printf "... and you will get the same result, assuming the BMC can communicate in both shared & dedicated mode.\n";
printf "But to reapply the MAC addresses, you must do it only locally (ssh into target machine, run\n";
printf "set_both_macs)\n";
printf "\n";
exit 1;
}
my $IIl1I1111I11l11lIIl11I1lI111III = '';
my $ll1lIll1l1Il111I11Il1l11ll1lIll = '';
my $lII11l1I1IIll1l1IlIlll1I1lI1lI1 = I1l1l1Il1lI11I1l1lI1111IIlI1lll();
my $I1IllI1ll1IIlll11lll11lI1I1I111 = l1I1lllIlI11l1I1Ill1111lI1I1Il1();
if ($lII11l1I1IIll1l1IlIlll1I1lI1lI1 eq 'shared') {
$IIl1I1111I11l11lIIl11I1lI111III = $I1IllI1ll1IIlll11lll11lI1I1I111;
}
if ($lII11l1I1IIll1l1IlIlll1I1lI1lI1 eq 'dedicated') {
$ll1lIll1l1Il111I11Il1l11ll1lIll = $I1IllI1ll1IIlll11lll11lI1I1I111;
}
llIIII1I1ll11l11I1I1lIIIlI11l1l 'nic_mode', 'toggle', '', 'silent';
sleep 30;
ll1l1IlI11I11IlIll1llIIlIIIllIl ;
$lII11l1I1IIll1l1IlIlll1I1lI1lI1 = I1l1l1Il1lI11I1l1lI1111IIlI1lll();
$I1IllI1ll1IIlll11lll11lI1I1I111 = l1I1lllIlI11l1I1Ill1111lI1I1Il1();
if ($lII11l1I1IIll1l1IlIlll1I1lI1lI1 eq 'shared') {
$IIl1I1111I11l11lIIl11I1lI111III = $I1IllI1ll1IIlll11lll11lI1I1I111;
}
if ($lII11l1I1IIll1l1IlIlll1I1lI1lI1 eq 'dedicated') {
$ll1lIll1l1Il111I11Il1l11ll1lIll = $I1IllI1ll1IIlll11lll11lI1I1I111;
}
llIIII1I1ll11l11I1I1lIIIlI11l1l 'nic_mode', 'toggle', '', 'silent';
printf "%s,%s\n", 'shared', $IIl1I1111I11l11lIIl11I1lI111III;
printf "%s,%s\n", 'dedicated', $ll1lIll1l1Il111I11Il1l11ll1lIll;
}
sub llIlI1llIII1IlI1Il11IlllIl11111 {
my($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIIll1IllIl1III1IlIl11IIIlI1lIl, $III1l1llIlI1l1I1IIlIIIll1111l1I, $II1l1I11llIIlI11IIIlIllI1l111lI, $lI1IIIIl1lI1II111I1ll1lI11IIlII) = IIllll1Il11II11lllII1IlllIIIl1l();
my $l1l11IIIlll1IIlIl1IIIlIlI1I1l1I;
my $l1l1l1Ill1lIII1lIIlIIll111Il1I1 = 38;
print "\n";
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'ec'), $II1lII1ll1lIlI1lIlIlII11II1IIll;
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'raw'), $IIIll1IllIl1III1IlIl11IIIlI1lIl;
if ($II1lII1ll1lIlI1lIlIlII11II1IIll) {
$l1l11IIIlll1IIlIl1IIIlIlI1I1l1I = ll11lI1I1I1IlIII1l1l1III1lllI1I($IIIll1IllIl1III1IlIl11IIIlI1lIl);
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'completion code'), $l1l11IIIlll1IIlIl1IIIlIlI1I1l1I;
}
if ($II1lII1ll1lIlI1lIlIlII11II1IIll and $l1l11IIIlll1IIlIl1IIIlIlI1I1l1I == 128) {
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Power Limit'), 'DISABLED';
}
else {
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Power Limit'), $II1l1I11llIIlI11IIIlIllI1l111lI . ' watt';
}
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Exception Actions'), $III1l1llIlI1l1I1IIlIIIll1111l1I;
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Correction Time'), $lI1IIIIl1lI1II111I1ll1lI11IIlII;
print "\n";
}
sub IIlIllIIl1lll11llI1lIl1ll1llllI {
my($II1lII1ll1lIlI1lIlIlII11II1IIll, $IIIll1IllIl1III1IlIl11IIIlI1lIl, $lllIlIIIlll1ll1lIlIIIIlIlII1I1l, $lIll111l11III11IIl1lI1ll11ll111, $l1I11Il1II1lIl1ll11IIll1lIl11lI, $l11II1llIlIIIl11l11II11lIIll1l1, $llllIlI1Il1ll11l11Ill1I11ll1l1l, $llI1I11l1lIlI1lll1Ill1llIll11I1) = I1llIlIIIIl11IIIIlIlIIIll1lI1I1();
my $l1l11IIIlll1IIlIl1IIIlIlI1I1l1I;
my $l1l1l1Ill1lIII1lIIlIIll111Il1I1 = 38;
print "\n";
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'ec'), $II1lII1ll1lIlI1lIlIlII11II1IIll;
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'raw'), $IIIll1IllIl1III1IlIl11IIIlI1lIl;
if ($II1lII1ll1lIlI1lIlIlII11II1IIll) {
$l1l11IIIlll1IIlIl1IIIlIlI1I1l1I = ll11lI1I1I1IlIII1l1l1III1lllI1I($IIIll1IllIl1III1IlIl11IIIlI1lIl);
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'completion code'), $l1l11IIIlll1IIlIl1IIIlIlI1I1l1I;
}
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Enabled'), $lllIlIIIlll1ll1lIlIIIIlIlII1I1l;
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Chassis Power Limit'), $lIll111l11III11IIl1lI1ll11ll111 . ' watt';
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Chassis Power Limit Action'), $l1I11Il1II1lIl1ll11IIll1lIl11lI;
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Node Power Limit Exception'), $l11II1llIlIIIl11l11II11lIIll1l1;
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Chassis Emergency Limit Action'), $llllIlI1Il1ll11l11Ill1I11ll1l1l;
printf "%s : %s\n", ll1lIIIlIIl1l1llIlIllIl11lllIII($l1l1l1Ill1lIII1lIIlIIll111Il1I1, 'Node Emergency Limit Action'), $llI1I11l1lIlI1lll1Ill1llIll11I1;
print "\n";
}
sub II1IIIlIll1l1I1Il1ll1llI1I1IllI {
my $lllIlIlI1ll1lI1l1I11lI111111I1l = I1IllIl11lIIlllI1IlI1l1III1I1l1();
my $I11111l1I1I1llII1I111II111I1lll = II1I11llIl11lII11lIIIl1II11lIII();
my $l1llI1I1llIlI1I11lIlll1l111I1I1 = I1llIIlIlllI1I11IIl11IlIl111lll();
my $l1lII11I1l1lI1111IIl1Ill1lIlIlI = I1llII1I111I1Il1l1II1l11l1II11l();
my $lllll1IIllI1lll1I1lIllII1I11IIl = I1Ill1l11l1llIIlI1II1llI111I1Il();
my $IIIllIIIlIIll11Ill111Ill111II11 = llIl1l1I111I1lI1IIl11II11lI1l1l();
my $IIII1I1Il111lII1111I1I1I1llII1I = lI1llIl11l11II1ll1l1l1Il1lI1IlI();
my $I11IlIlIII11lIIll1l1I1111IIl1ll = lIIIIIIlIll1111lIIl11lIll1lll11();
my $lll1IllI1I11111IlIlIII1IIlI1ll1 = lIIl1lIllI1ll1IIIIlIll11lllI111(0, 3);
if (lIll1lIIllIII1IlI11l111llII1I1I $l1lII11I1l1lI1111IIl1Ill1lIlIlI) {
$l1lII11I1l1lI1111IIl1Ill1lIlIlI = '---';
}
if (l1IIl1I1ll11III11I1III1lIlI11lI $I11IlIlIII11lIIll1l1I1111IIl1ll) {
$I11IlIlIII11lIIll1l1I1111IIl1ll = 'n/a';
}
printf " node %s%s %3s%s of %3s%s NMlimit: %3s%s chassis: %4s%s of %4s%s (limiting: %3s) fans: %d%s\n", $I11111l1I1I1llII1I111II111I1lll, ':', $l1llI1I1llIlI1I11lIlll1l111I1I1, 'w', $l1lII11I1l1lI1111IIl1Ill1lIlIlI, 'w', $lll1IllI1I11111IlIlIII1IIlI1ll1, 'w', $lllll1IIllI1lll1I1lIllII1I11IIl, 'w', $IIIllIIIlIIll11Ill111Ill111II11, 'w', IllIlllIIIlII11I1111ll111lIllll($IIII1I1Il111lII1111I1I1I1llII1I), $I11IlIlIII11lIIll1l1I1111IIl1ll, '%';
}
sub IlIII1llIIl1I1II1I1l1I11lllIIll {
my $I11IlIlIII11lIIll1l1I1111IIl1ll = lIIIIIIlIll1111lIIl11lIll1lll11();
print "$I11IlIlIII11lIIll1l1I1111IIl1ll" . '%' . "\n";
}
sub l1III11llIl111lIIll11l1IlI1I1lI {
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_;
my($II1Ill1IllI1l1Il1ll11l1l1lll1ll, $ll1l1l1Il1I1I1ll11ll1llI1II1III) = @_;
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my $III11I11lI1llI1llIIll11IIl1ll1I = '0x01';
my $lII11l11IIllIlI1II1IllIlll1lI11 = '0x00';
my $lIlIII11Il1I1IlI1l1l1IIll11Illl = '0x00';
my $Ill1Il11I11IIII1l11111I111Il1Il = '0x02';
my $llllIIl1IlIl1IllI1I1l11111II11l = '0x02';
my $l11111llllI11IIl1I1lllIllI1lI11 = '0x00';
my $II11l1l1ll1llIlIIIIIl1l11l1II1I = '0x00';
my $l1lII1llll11l11Il1111ll1IIIIlll = '0x01';
my $l1lIIl1I111Il1I1Illll1l1l11I1ll = '0x00';
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 < 2) {
printf "Usage:\n";
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll chassis_power_limit | disable\n";
printf "\n";
lI1II1II1lll11111lll1llIIlIllll ;
}
if ($ll1l1l1Il1I1I1ll11ll1llI1II1III =~ /disable/i) {
$III11I11lI1llI1llIIll11IIl1ll1I = '0x00';
}
else {
$lIl11I1IIl111I1II11lIIllI1II1ll = sprintf('%04x', $ll1l1l1Il1I1I1ll11ll1llI1II1III);
$lIlIII11Il1I1IlI1l1l1IIll11Illl = '0x' . substr($lIl11I1IIl111I1II11lIIllI1II1ll, 0, 2);
$lII11l11IIllIlI1II1IllIlll1lI11 = '0x' . substr($lIl11I1IIl111I1II11lIIllI1II1ll, 2, 2);
}
l1lI1I1I1Il11IIl1l1IIIll1llIIII "raw 0x30 0x17 $III11I11lI1llI1llIIll11IIl1ll1I $lII11l11IIllIlI1II1IllIlll1lI11 $lIlIII11Il1I1IlI1l1l1IIll11Illl $Ill1Il11I11IIII1l11111I111Il1Il $llllIIl1IlIl1IllI1I1l11111II11l $l11111llllI11IIl1I1lllIllI1lI11 $II11l1l1ll1llIlIIIIIl1l11l1II1I $l1lII1llll11l11Il1111ll1IIIIlll $l1lIIl1I111Il1I1Illll1l1l11I1ll";
print "\n";
}
sub II1Ill111I1I11IIIlIIIlII11l1lll {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = l11llIII1lIlII11III1lllIlIlI1ll();
if ($IIl1IlIIllII1I1lIlIIIIlIIII1lII eq 0) {
print "no: Intel ME is on.\n";
return;
}
if ($IIl1IlIIllII1I1lIlIIIIlIIII1lII eq 1) {
print "yes: Intel ME is off.\n";
return;
}
print "unknown. sense_is_intel_me_off returned: $IIl1IlIIllII1I1lIlIIIIlIIII1lII \n";
}
sub lIII11llIl1l11IlIl1IlIIlI1111l1 {
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = @_;
my($II1Ill1IllI1l1Il1ll11l1l1lll1ll, $l1Ill11I11lIIIl1lI1IlIIllll1111) = @_;
my $I111l1III1lIIII11111IIl1l111lIl;
if ($III111lll1l1l111lIIlll1II1IlI11 ne 'C6220') {
Il1II1IIl1lIlI1I1lll1l1lII1l111 ;
return;
}
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 < 2) {
printf "Usage:\n";
printf " $II1Ill1IllI1l1Il1ll11l1l1lll1ll on | off \n";
printf "\n";
lI1II1II1lll11111lll1llIIlIllll ;
}
if ($l1Ill11I11lIIIl1lI1IlIIllll1111 =~ /on/i) {
$I111l1III1lIIII11111IIl1l111lIl = '0x00';
}
elsif ($l1Ill11I11lIIIl1lI1IlIIllll1111 =~ /off/i) {
$I111l1III1lIIII11111IIl1l111lIl = '0x02';
}
else {
lI1II1II1lll11111lll1llIIlIllll ;
}
l1lI1I1I1Il11IIl1l1IIIll1llIIII "raw 0x30 0xE3 $I111l1III1lIIII11111IIl1l111lIl";
print "\n";
}
sub Il1lI11lI11lIlIlI11I1Il11I11lll {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1lI1I1I1Il11IIl1l1IIIll1llIIII('raw 0x30 0xE2 0x13 0x00 0x00');
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
print "$IIl1IlIIllII1I1lIlIIIIlIIII1lII \n";
}
my $lI1ll1IlII1IIIIIIIl1lIII11I1lI1;
my $i;
my $IIIlIll1Il1ll1l1II1IllIIIIl1II1;
my $llIIII11l1l1111IllIlII11IIIIll1;
my $l11II11IIIIIl1I1l11l1I1lIlIlII1;
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
my $II1lII1ll1lIlI1lIlIlII11II1IIll;
my $Il111IlIlII1lll111IlIlIl111I1lI;
my $I1l11lIl1IllIlIIIIIIll1ll11l1l1 = 0;
$lI1ll1IlII1IIIIIIIl1lIII11I1lI1 = $#ARGV + 1;
select STDERR;
$| = 1;
select STDOUT;
$| = 1;
$llIIII11l1l1111IllIlII11IIIIll1 = 'root';
$l11II11IIIIIl1I1l11l1I1lIlIlII1 = 'root';
I1llll1l11I1IlI1III111l11II111l 'CURUSER', 'root';
I1llll1l11I1IlI1III111l11II111l 'CURPASS', 'root';
if (defined $ENV{'BMCTOOL_IPMITOOL_USER'}) {
$llIIII11l1l1111IllIlII11IIIIll1 = $ENV{'BMCTOOL_IPMITOOL_USER'};
I1llll1l11I1IlI1III111l11II111l 'CURUSER', $llIIII11l1l1111IllIlII11IIIIll1;
}
if (defined $ENV{'BMCTOOL_IPMITOOL_PASSWORD'}) {
$l11II11IIIIIl1I1l11l1I1lIlIlII1 = $ENV{'BMCTOOL_IPMITOOL_PASSWORD'};
I1llll1l11I1IlI1III111l11II111l 'CURPASS', $l11II11IIIIIl1I1l11l1I1lIlIlII1;
}
if ($lI1ll1IlII1IIIIIIIl1lIII11I1lI1 == 0) {
I1IlI1IIl1l1ll1l1I1ll1IIll11l11($0);
exit 1;
}
my $llI111llII11III1111lllI1II1lIl1;
my $Ill1I1lI1IlIIlIlllll1II11llIlIl;
my $lIl11I1IIl111I1II11lIIllI1II1ll;
my $II11Il1111IIII1111I11I1lIIl1111;
for ($i = 0; $i <= $#ARGV; ++$i) {
$llI111llII11III1111lllI1II1lIl1 = '';
$Ill1I1lI1IlIIlIlllll1II11llIlIl = '';
$lIl11I1IIl111I1II11lIIllI1II1ll = $ARGV[$i];
if ($lIl11I1IIl111I1II11lIIllI1II1ll =~ /^-/) {
if (length $lIl11I1IIl111I1II11lIIllI1II1ll < 2) {
next;
}
if (length $lIl11I1IIl111I1II11lIIllI1II1ll == 2) {
$llI111llII11III1111lllI1II1lIl1 = substr($lIl11I1IIl111I1II11lIIllI1II1ll, 1, 1);
if ($i + 1 <= $#ARGV) {
if (not $ARGV[$i + 1] =~ /^-/) {
$Ill1I1lI1IlIIlIlllll1II11llIlIl = $ARGV[$i + 1];
++$i;
}
}
}
else {
$llI111llII11III1111lllI1II1lIl1 = substr($lIl11I1IIl111I1II11lIIllI1II1ll, 1, 1);
$Ill1I1lI1IlIIlIlllll1II11llIlIl = substr($lIl11I1IIl111I1II11lIIllI1II1ll, 2);
}
$_ = $llI111llII11III1111lllI1II1lIl1;
if ($_ eq 'H') {
$lI1l11ll1II11llII1lllllllIIIIlI = $IIlllI1IIIl1lIlIl1I1llI1Illl1I1;
$Ill1I1lI1IlIIlIlllll1II11llIlIl = I11lllII1lll111II1IllIIl1II1llI($Ill1I1lI1IlIIlIlllll1II11llIlIl);
if ($Ill1I1lI1IlIIlIlllll1II11llIlIl =~ /^\^/) {
$Ill1I1lI1IlIIlIlllll1II11llIlIl = substr($Ill1I1lI1IlIIlIlllll1II11llIlIl, 1);
push @lI1Il11ll11l1I1I1I1II111IIl11I1, lIlI1l111lIIII1IIlIII1IlIl11I1I($Ill1I1lI1IlIIlIlllll1II11llIlIl);
}
else {
push @lI1Il11ll11l1I1I1I1II111IIl11I1, $Ill1I1lI1IlIIlIlllll1II11llIlIl;
}
}
elsif ($_ eq 'U') {
$lI1l11ll1II11llII1lllllllIIIIlI = $IIlllI1IIIl1lIlIl1I1llI1Illl1I1;
$llIIII11l1l1111IllIlII11IIIIll1 = $Ill1I1lI1IlIIlIlllll1II11llIlIl;
I1llll1l11I1IlI1III111l11II111l 'CURUSER', $llIIII11l1l1111IllIlII11IIIIll1;
}
elsif ($_ eq 'P') {
$lI1l11ll1II11llII1lllllllIIIIlI = $IIlllI1IIIl1lIlIl1I1llI1Illl1I1;
$l11II11IIIIIl1I1l11l1I1lIlIlII1 = $Ill1I1lI1IlIIlIlllll1II11llIlIl;
I1llll1l11I1IlI1III111l11II111l 'CURPASS', $l11II11IIIIIl1I1l11l1I1lIlIlII1;
}
elsif ($_ eq 'v') {
I1llll1l11I1IlI1III111l11II111l 'VERBOSE', $l11I1l1l1l111ll1I1I1I11ll1l11II;
}
else {
print "Unrecognized switch: -$_\n";
I1IlI1IIl1l1ll1l1I1ll1IIll11l11($0);
exit 1;
}
}
else {
last;
}
}
my(@lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il) = ();
@lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il = @ARGV[$i .. $#ARGV];
if (not @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il) {
I1IlI1IIl1l1ll1l1I1ll1IIll11l11($0);
exit 1;
}
if (not $lI1l11ll1II11llII1lllllllIIIIlI) {
lllIIl111l1lI1lII111llllIllI11I ;
if ($#lI1Il11ll11l1I1I1I1II111IIl11I1 + 1 > 1) {
$ll1I1l1Il1llI11ll11lIIIIl1IIlI1 = 1;
}
foreach $_ (@lI1Il11ll11l1I1I1I1II111IIl11I1) {
if (length $_ > $IIl11llIIIlIIlIlllIIII11lIIIlIl) {
$IIl11llIIIlIIlIlllIIII11lIIIlIl = length $_;
}
}
}
my $I11IIII1I1lIlI11lllllIll11IIlI1 = $ENV{'BMCTOOL_IPMITOOL_CMD'} || 'ipmitool';
I1llll1l11I1IlI1III111l11II111l 'IPMITOOL', $I11IIII1I1lIlI11lllllIll11IIlI1;
I1llll1l11I1IlI1III111l11II111l 'IPMITOOL_FLAGS', '-Ilanplus' if not $lI1l11ll1II11llII1lllllllIIIIlI;
if ($lI1l11ll1II11llII1lllllllIIIIlI) {
I1llll1l11I1IlI1III111l11II111l 'USEKCS', '1';
}
else {
I1llll1l11I1IlI1III111l11II111l 'USEKCS', '0';
}
$Il111IlIlII1lll111IlIlIl111I1lI = "which $I11IIII1I1lIlI11lllllIll11IIlI1";
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = `$Il111IlIlII1lll111IlIlIl111I1lI 2>&1`;
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I11lllII1lll111II1IllIIl1II1llI($IIl1IlIIllII1I1lIlIIIIlIIII1lII);
$II1lII1ll1lIlI1lIlIlII11II1IIll = $?;
if ($II1lII1ll1lIlI1lIlIlII11II1IIll != 0) {
print "\n";
print "This tool requires 'ipmitool' to work, but it doesn't seem to be accessible.\n";
print "\n";
print " ipmitool command is set to: $I11IIII1I1lIlI11lllllIll11IIlI1\n";
print "\n";
print " Here is the command that tells us we can't see/run ipmitool:\n";
print "\n";
print " command: $Il111IlIlII1lll111IlIlIl111I1lI\n";
print " response: $IIl1IlIIllII1I1lIlIIIIlIIII1lII\n";
print " exit code: $II1lII1ll1lIlI1lIlIlII11II1IIll\n";
print "\n";
print " If you need to hard code a path, you can explicitly set the ipmitool command\n";
print " and path that will be used by setting an environment variable:\n";
print "\n";
print " export BMCTOOL_IPMITOOL_CMD=/path/to/ipmitool\n";
print "\n";
print "\n";
exit 1;
}
if (defined $ENV{'IPMIDEBUG'} or defined $ENV{'IPMI_DEBUG'} or defined $ENV{'BMCTOOL_IPMITOOL_DEBUG'}) {
I1llll1l11I1IlI1III111l11II111l 'IPMIDEBUG', $l11I1l1l1l111ll1I1I1I11ll1l11II;
}
do {
ll1l1IlI11I11IlIll1llIIlIIIllIl ;
if (not $lI1l11ll1II11llII1lllllllIIIIlI) {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = l1I1IlI11IIlIlIIIlIl111III1111I($IIIllll1lllI1111II111III11I1I1l);
if (not $IIl1IlIIllII1I1lIlIIIIlIIII1lII) {
printf "-- unresponsive BMC (not on network?): $IIIllll1lllI1111II111III11I1I1l\n";
goto nextiter;
}
}
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = I1I1ll1llIllII11l111lIl1IIlII1I();
if (not $IIl1IlIIllII1I1lIlIIIIlIIII1lII) {
if ($lI1l11ll1II11llII1lllllllIIIIlI) {
printf "\n";
printf "BMC did not respond to a simple command. Is the IPMI service enabled?\n";
printf "(If not, try running 'service ipmi start')\n";
printf "\n";
printf "This command did not work:\n";
I1I1ll1llIllII11l111lIl1IIlII1I 'loud';
printf "\n";
printf "\n";
printf "\n";
}
else {
printf "-- BMC $IIIllll1lllI1111II111III11I1I1l responded to ping, but is unavailable (IPMI command was not answered)\n";
printf "\n";
printf "This command did not work:\n";
I1I1ll1llIllII11l111lIl1IIlII1I 'loud';
printf "\n";
printf "\n";
}
goto nextiter;
}
$_ = II111lIlIlIIlIll1IllII1lIlI1lIl($lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il[0]);
if ($_ eq 'info') {
();
}
else {
I11lIIl11l11lI1lI1llIl11lII1I1l ;
}
if ($_ eq 'ping' or $_ eq 'help' or $_ eq 'eng_help' or $_ eq 'eng_menu') {
();
}
else {
$I1l11lIl1IllIlIIIIIIll1ll11l1l1 = 0;
if (defined $ENV{'BMCTOOL_FORCE_PLATFORM'}) {
$III111lll1l1l111lIIlll1II1IlI11 = $ENV{'BMCTOOL_FORCE_PLATFORM'};
$I1I1IllI1Il11111111II11lI11I1lI = $ENV{'BMCTOOL_FORCE_PLATFORM'};
I1llll1l11I1IlI1III111l11II111l 'PLAT', $III111lll1l1l111lIIlll1II1IlI11;
I1llll1l11I1IlI1III111l11II111l 'PLAT_NAME', $I1I1IllI1Il11111111II11lI11I1lI;
$I1l11lIl1IllIlIIIIIIll1ll11l1l1 = 1;
}
if (defined $ENV{'BMCTOOL_FORCE_PLATFORM_VARIANT'}) {
$lI1II1I11l1l111I11IIIl1I1lII11l = $ENV{'BMCTOOL_FORCE_PLATFORM_VARIANT'};
I1llll1l11I1IlI1III111l11II111l 'PLAT_VARIANT', $lI1II1I11l1l111I11IIIl1I1lII11l;
$I1l11lIl1IllIlIIIIIIll1ll11l1l1 = 1;
}
if (not $I1l11lIl1IllIlIIIIIIll1ll11l1l1) {
($lll1l1I1IIIllllI1I11I11l11Ill1l, $I1111I1II1l1111lIlllIllIllllllI, $I1I1IllI1Il11111111II11lI11I1lI, $lI1II1I11l1l111I11IIIl1I1lII11l, $III111lll1l1l111lIIlll1II1IlI11) = llIII1IIIlII1111111IIl1111IIlI1();
}
}
if ($_ ne 'reset' and $_ ne 'ping' and $_ ne 'help' and $_ ne 'eng_help' and $_ ne 'eng_menu' and $_ ne 'platform_debug') {
if ($lll1l1I1IIIllllI1I11I11l11Ill1l eq 'PEC' or $lll1l1I1IIIllllI1I11I11l11Ill1l eq 'DCS') {
$IIl1IlIIllII1I1lIlIIIIlIIII1lII = IlI1I1l11l1l1lll11llI1I1l11l111();
if (ll11I1ll11lI1l111Ill11ll1IIIIll $IIl1IlIIllII1I1lIlIIIIlIIII1lII) {
printf "-- BMC could not acquire a reservation. This usually means the BMC is in firmware\n";
printf " update mode. Please issue a reset to the BMC to force a reboot.\n";
printf "\n";
goto nextiter;
}
}
}
if ($_ eq 'nic_mode') {
llIIII1I1ll11l11I1I1lIIIlI11l1l @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'users') {
l11l1IIlI1lI1lIll111lI11I1II1II @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'node_number') {
lII1II1lIlI1ll11llIII1I1lI1IIII @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'ext_cfg') {
l11II11llI11l1lllII1llll1l1111l @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'ext_cfg_raw') {
l1Il1I1l11I1llI1II1lI1IIlIlI11l @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'bmc_hostname') {
llI1lIl1111IIlI1I1I1II11llI1llI @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'reset') {
l11Ill11lIIIlIlI1l1I1l1I11I11lI @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'platform') {
l1Il11l1l11Ill1l1lIlIlllII1111l @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'platform_variant') {
lll111IIIIIIl1l1IIl1II1I1llllII @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'platform_debug') {
I1Il11lI1IIllIl11I1IlIl1lIl1l1I @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'bmc_version') {
ll1I11lllll11I1ll1Il1IllI11llll @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'bios_version') {
l1I1Illl1lIl1Il1IlIIl1IllllIIlI @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'bios_version_raw') {
lllllI1I1III11I1l111lIIIIllIllI @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'fcb_version') {
lIII1ll1lII1IllIlIl1l1111IllIII @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'fcb_version_raw') {
IIllllIlll1lI11II11lII1lII1l1lI @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'fcb_pic_version') {
I1lIIlll111IIII11lIIlllI1llI1lI @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'fcb_pic_version_raw') {
I11I1ll1Il11l1I1Ill1IllI11111lI @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'intel_me_version') {
lIIIl1lIllI1IIlIl1I111lIlIIl1Il @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'gui_timeout') {
IlI1I1lII1l1111I11lIl1IllIl11ll @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'web_gui_timeout') {
IlI1I1lII1l1111I11lIl1IllIl11ll @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'attr') {
Il1IIIII11lllIllIl1IIll11II11I1 @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'id_led') {
l1lIIl1lI1ll1III111l1lllI1I1lI1 @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'power') {
lIIlIIl1Il1lI1l1ll1IlIl1II1I111 @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'c6105_chassis_type') {
ll1ll1I1ll1lIIIl1I1lIIl1I1ll1Il @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'info') {
III1lII1IIIIIl1III11l1IIlI1111l @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'summary') {
III1lII1IIIIIl1III11l1IIlI1111l @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'allinfo') {
l1IlIll1l1lIlllIlllI11IIlIlI11l @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'ppid') {
lIIIIlII1llII1llIlll11l11lI1IlI @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'service_tag') {
Il11IlllIlllll1l1llIlIlI11lIl1l @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'asset_tag') {
lIlIIlI1111IlIIIl111lII1lIl1lll @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'security') {
lII111Il11l1ll1II1lII1lIIlIl11I @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'web_gui_enabled') {
I11I1I111l1l1lIll1llI1IllII1111 @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'web_gui_http_port') {
lI1I1lllI11llIlIl1Ill1l11l11IlI @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'web_gui_https_port') {
l1llIll111IllIII1llll11l11llI11 @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'read_sensor') {
lI1ll1I111I11lIl11lI1lIIIIlllI1 @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'force_fan_speed') {
I1ll1l1l1IllIlIl1l1llIl1I1ll1ll @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'set_asset_tag') {
llI1l1I1ll1l1llIlIll1l1I11II111 @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'eng_help' or $_ eq 'eng_menu') {
l11l1II1IlIII11l1lll1l1III1lII1();
}
elsif ($_ eq 'help') {
I1IlI1IIl1l1ll1l1I1ll1IIll11l11();
}
elsif ($_ eq 'ping') {
Illll1IIl11l1lllIl1IllI111I1llI @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'ipmitool') {
I1lIl1l1lll11llI1ll11lI1l1l1lIl @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'ip') {
I1lIl1l1lll11llI1ll11lI1l1l1lIl @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'power_draw_node') {
IIIlII1llI1IIIIlI11Il1IIlll11I1 @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'node_power_draw') {
IIIlII1llI1IIIIlI11Il1IIlll11I1 @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'power_draw_chassis') {
IlIll1lII1I11llIII11lllII1Il1I1 @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'chassis_power_draw') {
IlIll1lII1I11llIII11lllII1Il1I1 @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'toggle_gpgpu_sled_power') {
lIlI11I1II1lll11lIII1IlII11l111 @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'gpgpu_power') {
llIIlI1I1IlI1I11ll1l1l1IIllIIIl @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'gpgpu') {
IIIllI1Ill11lIl111lI1IIlIlIlIl1 @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'gpgpu_info') {
IIIllI1Ill11lIl111lI1IIlIlIlIl1 @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'required_psu_count') {
III1lI111lIIllIl1ll11lI1lI1Ill1 @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'redundant_psu_available') {
lIl1111IlIIIII1l11lIIIIII1l11II @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'chassis') {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = l11l11l1lll1Ill1I111ll1l1lI1lI1();
printf "%s\n", $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
elsif ($_ eq 'chassis_type') {
my $IIl1IlIIllII1I1lIlIIIIlIIII1lII = l11l11l1lll1Ill1I111ll1l1lI1lI1();
printf "%s\n", $IIl1IlIIllII1I1lIlIIIIlIIII1lII;
}
elsif ($_ eq 'env_var_help') {
l1lllIl1Il11lIllIl1Il1I11lI1II1();
}
elsif ($_ eq 'state') {
lII111lIl1lIlllII1I11IlIlIlIIIl @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'pecagent_health') {
lI1I1llII1I11IlIll1I11l1I1lll1l @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'pecagent_sel') {
I1Il111l111llllI1l1I1II1l11II1l @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'selfilter') {
IIllIll1lllI111I1ll1ll1lII1I11I @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'selfilter_from_file') {
IllIll11IlI1I11l11l1IllII111Ill @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'sel') {
IIlIlI1lIlIl11l1ll1ll11lI1l11ll @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'sdr') {
IIll11Il1I1I1l1l1lIll1lIl1Illl1 @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'sensor') {
I1I1llI1l1IlIlI1I1l1IIlIl1lIl1I @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'print_this_mac') {
IIlIl1l1lIlIl1IllIl1III1IlI111I @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'print_both_macs') {
I1IIIlIlI11111Il1IlIIl1I1l1l1ll @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'get_this_mac') {
IIlIl1l1lIlIl1IllIl1III1IlI111I @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'get_both_macs') {
I1IIIlIlI11111Il1IlIIl1I1l1l1ll @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'set_this_mac') {
I11IlII1I1IIlllIIll1II1I1IIlIII @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'set_both_macs') {
III1IIl1ll11ll1IllI111I1I11l1lI @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'fru') {
I1I11I11llII11111Illll1111I1I11 @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'dcmi_get_power_limit') {
llIlI1llIII1IlI1Il11IlllIl11111 @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'pcap') {
II1IIIlIll1l1I1Il1ll1llI1I1IllI @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'scbmc_get_chassis_power_capping') {
IIlIllIIl1lll11llI1lIl1ll1llllI @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'set_chassis_power_cap') {
l1III11llIl111lIIll11l1IlI1I1lI @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'is_intel_me_off') {
II1Ill111I1I11IIIlIIIlII11l1lll @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'intel_me_power') {
lIII11llIl1l11IlIl1IlIIlI1111l1 @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'pcap_help') {
llIll1lIllIlI1Il11IlI1IIII11l1l(@lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il);
}
elsif ($_ eq 'svn') {
Il1lI11lI11lIlIlI11I1Il11I11lll @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'avg_fan_speed') {
IlIII1llIIl1I1II1I1l1I11lllIIll @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'tst') {
lIlIl1lIl11IIllI111llI1I1llllII @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'set_chassis_svctag') {
III1lll11IllIlI1Il1lI1I11II1llI @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'set_bmc_mac') {
I11IlII1I1IIlllIIll1II1I1IIlIII @lIIlI1ll1I1I1lIIl1lIl1llI1lI1Il;
}
elsif ($_ eq 'sense_psu_presence') {
printf "%s\n", lll11I1IlllI111lIllIII11Ill11ll();
}
elsif ($_ eq 'sense_psu_fault') {
printf "%s\n", l1l1IIlIIlIII1l1lllIlII1Ill1Il1();
}
elsif ($_ eq 'dbg_sense_sel_info') {
I1lllI1lIIlIllI111I11l1llIllIll ;
}
elsif ($_ eq 'sense_chassis_type') {
my($Il1ll111I11IIl1llIl1llIlIlIIIl1, $I1ll1I1I1lIlI1I1l1Ill1I111lllII) = l11l11l1lll1Ill1I111ll1l1lI1lI1();
printf "%s \n", $Il1ll111I11IIl1llIl1llIlIlIIIl1;
printf "%s \n", $I1ll1I1I1lIlI1I1l1Ill1I111lllII;
}
else {
printf "Unknown command: %s\n\n", $_;
exit 1;
}
nextiter:
} while lllIIl111l1lI1lII111llllIllI11I ;
exit 0;
sub I1IlI1IIl1l1ll1l1I1ll1IIll11l11 {
use warnings;
use strict 'refs';
my $I11I1lIl11II1l11l11l111lIIII111 = shift @_;
printf "\n";
printf "Dell DCS/PE-C BMC manipulation tool | built: %s\n", IIl1l1lll1I1ll11IIIlllIl1llII1l();
printf "Usage: \n";
printf "\n";
printf '%s [-v] [IPMI Connection Info] command_name arguments', $0;
printf "\n\n";
printf " General Options\n";
printf " -v verbose output\n";
printf "\n";
printf " IPMI Connection Info (default is the local system KCS interface, so these aren't required)\n";
printf " -H hostname (or) -H^file_with_hostnames (multiple -H flags accepted)\n";
printf " -U user \n";
printf " -P password\n";
printf "\n";
printf " Supported commands:\n";
printf " info 1-line summary of a server\n";
printf " pcap 1-line summary of a server's power draw/capping state\n";
printf " allinfo lots of info about a server\n";
printf " nic_mode Get/set BMC ethernet mode (shared/dedicated)\n";
printf " ping Test if the BMC is alive and responsive\n";
printf " reset Reboot the BMC\n";
printf " power Get/set chassis power\n";
printf " bmc_hostname Get/set BMC hostname\n";
printf " web_gui_timeout Get/set time before BMC Web GUI session expires\n";
printf " id_led Toggle the blue identification LED\n";
printf " state Get/set/clear a small bit of state info inside the BMC\n";
printf " gpgpu_info Display all available GPGPU state information\n";
printf " gpgpu_power Get/set GPGPU power state, by sled\n";
printf " security BMC security settings (disable services)\n";
printf " web_gui_enabled Enable/disable BMC web GUI\n";
printf " web_gui_http_port Set web gui http port\n";
printf " web_gui_https_port Set web gui https port\n";
printf " set_asset_tag Set a server's asset tag (currently C6100/C6145 only)\n";
printf " pecagent_health Get a quick view of the server node's health\n";
printf " ipmitool Generic command passthrough to ipmitool ('ip' for short)\n";
printf " sel Read and get details about the SEL (system event log)\n";
printf " selfilter Read the SEL and affix a severity to each entry\n";
printf " selfilter_from_file As above, but read SEL from a file\n";
printf " set_chassis_power_cap For C6000/C8000 only: set the max power draw policy\n";
printf "\n";
printf " attr (Long list of configurable attributes)\n";
printf "\n";
printf " Scripting Assistance commands: (All of this is also in 'info' and 'allinfo')\n";
printf " platform Report the platform type of the target BMC\n";
printf " platform_debug Show all the detail about what platform is detected\n";
printf " node_number Report the node number (if this BMC is in shared infr. chassis)\n";
printf " ppid Report the Piece Part ID (unique serial number per-board)\n";
printf " service_tag Report the node's Dell Service Tag\n";
printf " asset_tag Report the node's customer-defined Asset Tag\n";
printf "\n";
printf " bios_version | bmc_version | fcb_version\n";
printf " intel_me_version | fcb_pic_version | platform_variant\n";
printf " power_draw_node | power_draw_chassis | chassis\n";
printf " required_psu_count | redundant_psu_available | \n";
printf "\n";
printf " avg_fan_speed\n";
printf "\n";
printf " env_var_help All environment variables supported; many conveniences\n";
printf " eng_help Engineering help menu. You probably don't need this.\n";
printf " pcap_help Power Capping help menu.\n";
printf "\n";
printf "\n";
exit 0;
}
sub l11l1II1IlIII11l1lll1l1III1lII1 {
use warnings;
use strict 'refs';
my $I11I1lIl11II1l11l11l111lIIII111 = shift @_;
printf "\n";
printf "Dell DCS/PE-C BMC manipulation tool | built: $llIlI1l1I1llIl11ll1ll1II111lIIl\n";
printf "Advanced Usage menu: \n";
printf "\n";
printf " bios_version_raw Report the BIOS version in the raw format reported by the BMC\n";
printf " fcb_version_raw Report the FCB version in the raw format reported by the BMC\n";
printf " pic_version_raw Report the PIC version in the raw format reported by the BMC\n";
printf " ext_cfg (developer debug only)\n";
printf " ext_cfg_raw (developer debug only. You don't want to use this. Use ext_cfg.)\n";
printf " get_this_mac Print the currently-in-use BMC MAC address\n";
printf " get_both_macs Print both BMC MAC addresses. Can't be used over the network.\n";
printf " set_this_mac Program the currently-in-use BMC MAC address\n";
printf " set_both_macs Program both BMC MAC addresses.\n";
printf " is_intel_me_off Is the Intel ME switched off?\n";
printf " intel_me_power Change the Intel ME power state\n";
printf "\n";
printf " pecagent_health Get a quick view of the server node's health\n";
printf " pecagent_sel Same as selfilter; allows viewing last N entries\n";
printf "\n";
printf " Highly specific per-platform\n";
printf " c6105_chassis_type Show this sled's programmed target chassis type\n";
printf "\n";
printf " Engineering commands:\n";
printf " read_sensor Given an id, read the sensor value\n";
printf " force_fan_speed Force fans to a particular speed (0 to 100%%, or 'auto')\n";
printf " platform_debug Show raw platform information\n";
printf "\n";
printf " scbmc_get_chassis_power_capping \n";
printf " dcmi_get_power_limit \n";
printf " svn \n";
printf "\n";
printf "\n";
exit 0;
}
sub l1lllIl1Il11lIllIl1Il1I11lI1II1 {
use warnings;
use strict 'refs';
my $I11I1lIl11II1l11l11l111lIIII111 = shift @_;
printf "\n";
printf "Dell DCS/PE-C BMC manipulation tool | built: $llIlI1l1I1llIl11ll1ll1II111lIIl\n";
printf "Environment Variables Supported\n";
printf "\n";
printf " Use these by running this in the shell: export ENV_VAR_NAME=value\n";
printf "\n";
printf " BMCTOOL_IPMITOOL_CMD Specify exact path to ipmitool\n";
printf " BMCTOOL_IPMITOOL_DEBUG Set to 1 to show all ipmitool commands\n";
printf " BMCTOOL_IPMITOOL_USER Set the default ipmitool user (normally 'root')\n";
printf " BMCTOOL_IPMITOOL_PASSWORD Set the default ipmitool password (normally 'root')\n";
printf "\n";
printf " Platform can be forced by setting these. NOTE: it is expected that you use PE-C\n";
printf " naming convention ('C6100' instead of 'plutonium')\n";
printf "\n";
printf " BMCTOOL_FORCE_PLATFORM Set the platform we're going to use\n";
printf " BMCTOOL_FORCE_PLATFORM_VARIANT Set the variant (if any; rarely needed)\n";
printf "\n";
printf "\n";
printf "\n";
exit 0;
}
sub llIll1lIllIlI1Il11IlI1IIII11l1l {
use warnings;
use strict 'refs';
my $I11I1lIl11II1l11l11l111lIIII111 = shift @_;
printf "\n";
printf "Dell DCS/PE-C BMC manipulation tool | built: $llIlI1l1I1llIl11ll1ll1II111lIIl\n";
printf "Power Capping and related commands\n";
printf "\n";
printf " pcap 1-line summary of a server's power draw/capping state\n";
printf " set_chassis_power_cap For C6000/C8000 only: set the max power draw policy\n";
printf " is_intel_me_off Is the Intel ME switched off?\n";
printf " intel_me_power Change the Intel ME power state\n";
printf "\n";
printf " dcmi_get_power_limit \n";
printf " scbmc_get_chassis_power_capping \n";
printf "\n";
printf "\n";
printf "\n";
printf "\n";
exit 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment