1 |
package Intel::AMT::NetworkAdministration; |
2 |
|
3 |
use warnings; |
4 |
use strict; |
5 |
|
6 |
use Data::Dump qw/dump/; |
7 |
|
8 |
=for reference |
9 |
|
10 |
dpavlin@t61p:~/Desktop/docs/amt/AMT-5.1-SDK/Linux/Intel_AMT/Samples/Soap/NetworkAdministration/c++$ grep FunctionCall * |
11 |
NetworkAdministrationSample.cpp: FunctionCall("GetHostName"); |
12 |
NetworkAdministrationSample.cpp: FunctionCall("SetHostName"); |
13 |
NetworkAdministrationSample.cpp: FunctionCall("EnumerateInterfaces"); |
14 |
NetworkAdministrationSample.cpp: FunctionCall("GetInterfaceSettings"); |
15 |
NetworkAdministrationSample.cpp: FunctionCall("SetInterfaceSettings"); |
16 |
NetworkAdministrationSample.cpp: FunctionCall("GetVlanParameters"); |
17 |
NetworkAdministrationSample.cpp: FunctionCall("SetVlanParameters"); |
18 |
NetworkAdministrationSample.cpp: FunctionCall("GetPingResponse"); |
19 |
NetworkAdministrationSample.cpp: FunctionCall("SetPingResponse"); |
20 |
|
21 |
=cut |
22 |
|
23 |
use lib 'lib'; |
24 |
use base qw/Intel::AMT::SOAP/; |
25 |
|
26 |
our $soap = Intel::AMT::SOAP::_soap( 'NetworkAdministration' ); |
27 |
|
28 |
sub ipv4 { |
29 |
my $addr = shift; |
30 |
return $addr unless $addr; |
31 |
# sprintf("%x ",$addr) . |
32 |
join('.', |
33 |
($addr & 0xff000000) >> 24, |
34 |
($addr & 0x00ff0000) >> 16, |
35 |
($addr & 0x0000ff00) >> 8, |
36 |
$addr & 0x000000ff, |
37 |
); |
38 |
} |
39 |
|
40 |
sub network_settings { |
41 |
my $info = { |
42 |
hostname => $soap->GetHostName()->paramsout, |
43 |
domainname => $soap->GetDomainName()->paramsout, |
44 |
interfaces => [ $soap->EnumerateInterfaces->paramsout ], |
45 |
vlan => [ $soap->GetVlanParameters->paramsout ], |
46 |
ping => $soap->GetPingResponse->paramsout, |
47 |
}; |
48 |
|
49 |
warn "# network_settings ",dump( $info ); |
50 |
|
51 |
foreach my $if ( @{ $info->{interfaces} } ) { |
52 |
my $detail = $soap->GetInterfaceSettings( SOAP::Data->name('InterfaceHandle'=>$if) )->paramsout; |
53 |
foreach my $param ( keys %{ $detail->{IPv4Parameters} } ) { |
54 |
if ( my $ip = $detail->{IPv4Parameters}->{$param} ) { |
55 |
$detail->{IPv4Parameters}->{$param} = ipv4( $ip ); |
56 |
} |
57 |
} |
58 |
$info->{interface_settings}->{$if} = $detail; |
59 |
} |
60 |
|
61 |
return $info; |
62 |
}; |
63 |
|
64 |
1; |