IPMI in-band network configuration test
Resolve openbmc/openbmc-test-automation#1260
Change-Id: Id1aaa189629d9dc06b3ad49ef02146eed6f6f2e8
Signed-off-by: Naman Navin Hegde <nhegde89@in.ibm.com>
diff --git a/ipmi/test_ipmi_network.robot b/ipmi/test_ipmi_network.robot
new file mode 100644
index 0000000..7857fc7
--- /dev/null
+++ b/ipmi/test_ipmi_network.robot
@@ -0,0 +1,68 @@
+*** Settings ***
+
+Documentation Module to test IPMI network functionality.
+Resource ../lib/ipmi_client.robot
+Resource ../lib/openbmc_ffdc.robot
+Library ../lib/ipmi_utils.py
+Library ../lib/gen_robot_valid.py
+
+Test Teardown FFDC On Test Case Fail
+
+Force Tags IPMI_Network
+
+*** Variables ***
+
+${initial_lan_config} &{EMPTY}
+
+
+*** Test Cases ***
+
+Verify IPMI Inband Network Configuration
+ [Documentation] Verify BMC network configuration via inband IPMI.
+ [Tags] Verify_IPMI_Inband_Network_Configuration
+ [Teardown] Run Keywords Restore Configuration AND FFDC On Test Case Fail
+
+ Redfish Power On
+ ${initial_lan_config}= Get LAN Print Dict inband
+ Set Suite Variable ${initial_lan_config}
+
+ Set IPMI Inband Network Configuration 10.10.10.10 255.255.255.0 10.10.10.10
+ Sleep 10
+
+ ${lan_print_output}= Get LAN Print Dict inband
+ Valid Value lan_print_output['IP Address'] ["10.10.10.10"]
+ Valid Value lan_print_output['Subnet Mask'] ["255.255.255.0"]
+ Valid Value lan_print_output['Default Gateway IP'] ["10.10.10.10"]
+
+
+*** Keywords ***
+
+Set IPMI Inband Network Configuration
+ [Documentation] Run sequence of standard IPMI command in-band and set
+ ... the IP configuration.
+ [Arguments] ${ip} ${netmask} ${gateway} ${login}=${1}
+
+ # Description of argument(s):
+ # ip The IP address to be set using ipmitool-inband.
+ # netmask The Netmask to be set using ipmitool-inband.
+ # gateway The Gateway address to be set using ipmitool-inband.
+
+ Run Inband IPMI Standard Command
+ ... lan set 1 ipsrc static login_host=${login}
+ Run Inband IPMI Standard Command
+ ... lan set 1 ipaddr ${ip} login_host=${0}
+ Run Inband IPMI Standard Command
+ ... lan set 1 netmask ${netmask} login_host=${0}
+ Run Inband IPMI Standard Command
+ ... lan set 1 defgw ipaddr ${gateway} login_host=${0}
+
+
+Restore Configuration
+ [Documentation] Restore the configuration to its pre-test state
+
+ ${length}= Get Length ${initial_lan_config}
+ Return From Keyword If ${length} == ${0}
+
+ Set IPMI Inband Network Configuration ${initial_lan_config['IP Address']}
+ ... ${initial_lan_config['Subnet Mask']}
+ ... ${initial_lan_config['Default Gateway IP']} login=${0}