blob: 60af824ecb661b7e5c107a6589d47c8c91ac6d0f [file] [log] [blame]
Sweta Potthurie7b4db62025-11-13 08:30:25 -06001*** Settings ***
2Documentation Network interface IPv6 configuration connected to DHCP server
3 ... and verification tests.
4
5Resource ../../lib/bmc_redfish_resource.robot
6Resource ../../lib/openbmc_ffdc.robot
7Resource ../../lib/bmc_ipv6_utils.robot
8Resource ../../lib/bmc_network_utils.robot
9Library Collections
10Library Process
11Library OperatingSystem
12Test Teardown Test Teardown Execution
13Suite Setup Suite Setup Execution
14Suite Teardown Redfish.Logout
15
16Test Tags BMC_IPv6_Config
17
18*** Variables ***
19# Remote DHCP test bed server. Leave variables EMPTY if server is configured local
20# to the test where it is running else if remote pass the server credentials
21# -v SERVER_IPv6:xx.xx.xx.xx
22# -v SERVER_USERNAME:root
23# -v SERVER_PASSWORD:*********
24
25${SERVER_USERNAME} ${EMPTY}
26${SERVER_PASSWORD} ${EMPTY}
27${SERVER_IPv6} ${EMPTY}
28
29
30*** Test Cases ***
31
32Get SLAAC Address And Verify Connectivity
33 [Documentation] Fetch the SLAAC address and verify ping and SSH connection.
34 [Tags] Get_SLAAC_Address_And_Verify_Connectivity
35
36 @{ipv6_addressorigin_list} ${ipv6_slaac_addr}=
37 ... Get Address Origin List And Address For Type SLAAC
38 IF '${SERVER_USERNAME}' != '${EMPTY}'
39 Check IPv6 Connectivity ${ipv6_slaac_addr}
40 ELSE
41 Wait For IPv6 Host To Ping ${ipv6_slaac_addr}
42 END
43 Verify SSH Connection Via IPv6 ${ipv6_slaac_addr}
44
45
46*** Keywords ***
47
48Suite Setup Execution
49 [Documentation] Do suite setup execution.
50
51 Redfish.Login
52 ${active_channel_config}= Get Active Channel Config
53 Set Suite Variable ${active_channel_config}
54 ${ethernet_interface}= Set Variable ${active_channel_config['${CHANNEL_NUMBER}']['name']}
55 Set Suite variable ${ethernet_interface}
56
57
58Test Teardown Execution
59 [Documentation] Test teardown execution.
60
61 FFDC On Test Case Fail
62
63
64Wait For IPv6 Host To Ping
65 [Documentation] Verify that the IPv6 host responds successfully to ping.
66 [Arguments] ${host} ${timeout}=${OPENBMC_REBOOT_TIMEOUT}sec
67 ... ${interval}=5 sec ${expected_rc}=${0}
68 # Description of argument(s):
69 # host The IPv6 address of the host to ping.
70 # timeout Maximum time to wait for the host to respond to ping.
71 # interval Time to wait between ping attempts.
72 # expected_rc Expected return code of ping command.
73 Wait Until Keyword Succeeds ${timeout} ${interval} Ping Host Over IPv6 ${host} ${expected_rc}
74
75
76Ping Host Over IPv6
77 [Documentation] Ping6 the given host.
78 [Arguments] ${host} ${expected_rc}=${0}
79 # Description of argument(s):
80 # host IPv6 address of the host to ping.
81 # expected_rc Expected return code of ping command.
82 Should Not Be Empty ${host} msg=No host provided.
83 ${rc} ${output}= Run and return RC and Output ping6 -c 4 ${host}
84 Log RC: ${rc}\nOutput:\n${output}
85 Should Be Equal ${rc} ${expected_rc}
86
87
88Check IPv6 Connectivity
89 [Documentation] Check ping6 status and verify.
90 [Arguments] ${OPENBMC_HOST_IPv6}
91
92 # Description of argument(s):
93 # OPENBMC_HOST_IPv6 IPv6 address to check connectivity.
94
95 Open Connection And Log In ${SERVER_USERNAME} ${SERVER_PASSWORD} host=${SERVER_IPv6}
96 Wait For IPv6 Host To Ping ${OPENBMC_HOST_IPv6} 30 secs
97
98
99Verify SSH Connection Via IPv6
100 [Documentation] Verify connectivity to the IPv6 host via SSH.
101 [Arguments] ${OPENBMC_HOST_IPv6}
102
103 # Description of argument(s):
104 # OPENBMC_HOST_IPv6 IPv6 address to check connectivity.
105
106 IF '${SERVER_USERNAME}' == '${EMPTY}'
107 SSHLibrary.Open Connection ${OPENBMC_HOST_IPv6}
108 SSHLibrary.Login ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD}
109 ELSE
110 Open Connection And Log In ${SERVER_USERNAME} ${SERVER_PASSWORD} host=${SERVER_IPv6} alias=IPv6Conn
111 SSHLibrary.Open Connection ${OPENBMC_HOST_IPv6}
112 SSHLibrary.Login ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} jumphost_index_or_alias=IPv6Conn
113 END
114