New suite for SLAAC and Static IPv6 verification
Changes:
Ipv6 - Verify Ping and verify SSH Connectivity.
Tested:
Ran and Tested on BMC Environment.
Change-Id: Ia305aac728bc63a7c540af0391b6a1c955e4ed8b
Signed-off-by: Sweta Potthuri <spotthur@in.ibm.com>
diff --git a/redfish/managers/test_bmc_config_ipv6.robot b/redfish/managers/test_bmc_config_ipv6.robot
new file mode 100644
index 0000000..60af824
--- /dev/null
+++ b/redfish/managers/test_bmc_config_ipv6.robot
@@ -0,0 +1,114 @@
+*** Settings ***
+Documentation Network interface IPv6 configuration connected to DHCP server
+ ... and verification tests.
+
+Resource ../../lib/bmc_redfish_resource.robot
+Resource ../../lib/openbmc_ffdc.robot
+Resource ../../lib/bmc_ipv6_utils.robot
+Resource ../../lib/bmc_network_utils.robot
+Library Collections
+Library Process
+Library OperatingSystem
+Test Teardown Test Teardown Execution
+Suite Setup Suite Setup Execution
+Suite Teardown Redfish.Logout
+
+Test Tags BMC_IPv6_Config
+
+*** Variables ***
+# Remote DHCP test bed server. Leave variables EMPTY if server is configured local
+# to the test where it is running else if remote pass the server credentials
+# -v SERVER_IPv6:xx.xx.xx.xx
+# -v SERVER_USERNAME:root
+# -v SERVER_PASSWORD:*********
+
+${SERVER_USERNAME} ${EMPTY}
+${SERVER_PASSWORD} ${EMPTY}
+${SERVER_IPv6} ${EMPTY}
+
+
+*** Test Cases ***
+
+Get SLAAC Address And Verify Connectivity
+ [Documentation] Fetch the SLAAC address and verify ping and SSH connection.
+ [Tags] Get_SLAAC_Address_And_Verify_Connectivity
+
+ @{ipv6_addressorigin_list} ${ipv6_slaac_addr}=
+ ... Get Address Origin List And Address For Type SLAAC
+ IF '${SERVER_USERNAME}' != '${EMPTY}'
+ Check IPv6 Connectivity ${ipv6_slaac_addr}
+ ELSE
+ Wait For IPv6 Host To Ping ${ipv6_slaac_addr}
+ END
+ Verify SSH Connection Via IPv6 ${ipv6_slaac_addr}
+
+
+*** Keywords ***
+
+Suite Setup Execution
+ [Documentation] Do suite setup execution.
+
+ Redfish.Login
+ ${active_channel_config}= Get Active Channel Config
+ Set Suite Variable ${active_channel_config}
+ ${ethernet_interface}= Set Variable ${active_channel_config['${CHANNEL_NUMBER}']['name']}
+ Set Suite variable ${ethernet_interface}
+
+
+Test Teardown Execution
+ [Documentation] Test teardown execution.
+
+ FFDC On Test Case Fail
+
+
+Wait For IPv6 Host To Ping
+ [Documentation] Verify that the IPv6 host responds successfully to ping.
+ [Arguments] ${host} ${timeout}=${OPENBMC_REBOOT_TIMEOUT}sec
+ ... ${interval}=5 sec ${expected_rc}=${0}
+ # Description of argument(s):
+ # host The IPv6 address of the host to ping.
+ # timeout Maximum time to wait for the host to respond to ping.
+ # interval Time to wait between ping attempts.
+ # expected_rc Expected return code of ping command.
+ Wait Until Keyword Succeeds ${timeout} ${interval} Ping Host Over IPv6 ${host} ${expected_rc}
+
+
+Ping Host Over IPv6
+ [Documentation] Ping6 the given host.
+ [Arguments] ${host} ${expected_rc}=${0}
+ # Description of argument(s):
+ # host IPv6 address of the host to ping.
+ # expected_rc Expected return code of ping command.
+ Should Not Be Empty ${host} msg=No host provided.
+ ${rc} ${output}= Run and return RC and Output ping6 -c 4 ${host}
+ Log RC: ${rc}\nOutput:\n${output}
+ Should Be Equal ${rc} ${expected_rc}
+
+
+Check IPv6 Connectivity
+ [Documentation] Check ping6 status and verify.
+ [Arguments] ${OPENBMC_HOST_IPv6}
+
+ # Description of argument(s):
+ # OPENBMC_HOST_IPv6 IPv6 address to check connectivity.
+
+ Open Connection And Log In ${SERVER_USERNAME} ${SERVER_PASSWORD} host=${SERVER_IPv6}
+ Wait For IPv6 Host To Ping ${OPENBMC_HOST_IPv6} 30 secs
+
+
+Verify SSH Connection Via IPv6
+ [Documentation] Verify connectivity to the IPv6 host via SSH.
+ [Arguments] ${OPENBMC_HOST_IPv6}
+
+ # Description of argument(s):
+ # OPENBMC_HOST_IPv6 IPv6 address to check connectivity.
+
+ IF '${SERVER_USERNAME}' == '${EMPTY}'
+ SSHLibrary.Open Connection ${OPENBMC_HOST_IPv6}
+ SSHLibrary.Login ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD}
+ ELSE
+ Open Connection And Log In ${SERVER_USERNAME} ${SERVER_PASSWORD} host=${SERVER_IPv6} alias=IPv6Conn
+ SSHLibrary.Open Connection ${OPENBMC_HOST_IPv6}
+ SSHLibrary.Login ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} jumphost_index_or_alias=IPv6Conn
+ END
+