| *** 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 |
| |