blob: 423104255fa58c9a19406b15919d13a8b7af02d1 [file] [log] [blame]
Prashanth Kattif58cce02019-02-06 03:05:14 -06001*** Settings ***
2Documentation Network interface configuration and verification
3 ... tests.
4
George Keishing5d467552019-02-08 23:30:48 -06005Resource ../../lib/bmc_redfish_resource.robot
6Resource ../../lib/bmc_network_utils.robot
7Resource ../../lib/openbmc_ffdc.robot
Prashanth Katti747ce9d2019-02-07 07:23:48 -06008Library ../../lib/bmc_network_utils.py
Vijayde3bf7b2019-04-16 04:56:09 -05009Library Collections
Prashanth Kattif58cce02019-02-06 03:05:14 -060010
11Test Setup Test Setup Execution
12Test Teardown Test Teardown Execution
Prashanth Kattib478d902020-05-08 10:05:32 -050013Suite Setup Suite Setup Execution
Prashanth Kattif58cce02019-02-06 03:05:14 -060014
Prashanth Kattif34fafa2019-06-20 05:04:40 -050015Force Tags Network_Conf_Test
16
Prashanth Katti23efc6e2019-03-13 06:07:15 -050017*** Variables ***
Vijayde3bf7b2019-04-16 04:56:09 -050018${test_hostname} openbmc
19${test_ipv4_addr} 10.7.7.7
20${test_ipv4_invalid_addr} 0.0.1.a
21${test_subnet_mask} 255.255.0.0
Prashanth Kattib36a7522019-05-22 05:32:39 -050022${broadcast_ip} 10.7.7.255
23${loopback_ip} 127.0.0.2
24${multicast_ip} 224.6.6.6
25${out_of_range_ip} 10.7.7.256
Prashanth Katti568df5f2020-05-15 06:00:37 -050026${test_ipv4_addr2} 10.7.7.8
Prashanth Katti23efc6e2019-03-13 06:07:15 -050027
George Keishing16b3c7b2021-01-28 09:23:37 -060028# Valid netmask is 4 bytes long and has continuous block of 1s.
Prashanth Katti040c8c12019-05-31 04:42:05 -050029# Maximum valid value in each octet is 255 and least value is 0.
30# 253 is not valid, as binary value is 11111101.
31${invalid_netmask} 255.255.253.0
32${alpha_netmask} ff.ff.ff.ff
33# Maximum value of octet in netmask is 255.
34${out_of_range_netmask} 255.256.255.0
35${more_byte_netmask} 255.255.255.0.0
36${less_byte_netmask} 255.255.255
Prashanth Kattic6ad6472019-06-14 03:33:39 -050037${threshold_netmask} 255.255.255.255
38${lowest_netmask} 128.0.0.0
39
40# There will be 4 octets in IP address (e.g. xx.xx.xx.xx)
41# but trying to configure xx.xx.xx
42${less_octet_ip} 10.3.36
43
44# For the address 10.6.6.6, the 10.6.6.0 portion describes the
45# network ID and the 6 describe the host.
46
47${network_id} 10.7.7.0
48${hex_ip} 0xa.0xb.0xc.0xd
49${negative_ip} 10.-7.-7.7
Prashanth Katti7098c972019-07-03 06:56:42 -050050@{static_name_servers} 10.5.5.5
Prashanth Katti3c7b6432019-07-26 06:53:37 -050051@{null_value} null
Prashanth Kattiafe16b72019-08-02 00:29:45 -050052@{empty_dictionary} {}
53@{string_value} aa.bb.cc.dd
54
Prashanth Kattif58cce02019-02-06 03:05:14 -060055*** Test Cases ***
56
57Get IP Address And Verify
58 [Documentation] Get IP Address And Verify.
George Keishing5d467552019-02-08 23:30:48 -060059 [Tags] Get_IP_Address_And_Verify
Prashanth Kattif58cce02019-02-06 03:05:14 -060060
Sushil Singh50621142020-06-16 11:12:21 -050061 FOR ${network_configuration} IN @{network_configurations}
62 Verify IP On BMC ${network_configuration['Address']}
63 END
Prashanth Katti747ce9d2019-02-07 07:23:48 -060064
Prashanth Kattif58cce02019-02-06 03:05:14 -060065Get Netmask And Verify
66 [Documentation] Get Netmask And Verify.
George Keishing5d467552019-02-08 23:30:48 -060067 [Tags] Get_Netmask_And_Verify
Prashanth Kattif58cce02019-02-06 03:05:14 -060068
Sushil Singh50621142020-06-16 11:12:21 -050069 FOR ${network_configuration} IN @{network_configurations}
70 Verify Netmask On BMC ${network_configuration['SubnetMask']}
71 END
Prashanth Katti747ce9d2019-02-07 07:23:48 -060072
Prashanth Katti2ec9d8b2019-02-12 05:20:19 -060073Get Gateway And Verify
74 [Documentation] Get gateway and verify it's existence on the BMC.
75 [Tags] Get_Gateway_And_Verify
76
Sushil Singh50621142020-06-16 11:12:21 -050077 FOR ${network_configuration} IN @{network_configurations}
78 Verify Gateway On BMC ${network_configuration['Gateway']}
79 END
Prashanth Katti2ec9d8b2019-02-12 05:20:19 -060080
81Get MAC Address And Verify
82 [Documentation] Get MAC address and verify it's existence on the BMC.
83 [Tags] Get_MAC_Address_And_Verify
84
Tony Lee412c6682020-04-01 17:34:30 +080085 ${active_channel_config}= Get Active Channel Config
86 ${ethernet_interface}= Set Variable ${active_channel_config['${CHANNEL_NUMBER}']['name']}
87
88 ${resp}= Redfish.Get ${REDFISH_NW_ETH_IFACE}${ethernet_interface}
Prashanth Katti2ec9d8b2019-02-12 05:20:19 -060089 ${macaddr}= Get From Dictionary ${resp.dict} MACAddress
90 Validate MAC On BMC ${macaddr}
Prashanth Kattif58cce02019-02-06 03:05:14 -060091
Prashanth Katti2c5c3bb2019-02-14 04:23:07 -060092Verify All Configured IP And Netmask
93 [Documentation] Verify all configured IP and netmask on BMC.
94 [Tags] Verify_All_Configured_IP_And_Netmask
95
Sushil Singh50621142020-06-16 11:12:21 -050096 FOR ${network_configuration} IN @{network_configurations}
97 Verify IP And Netmask On BMC ${network_configuration['Address']}
98 ... ${network_configuration['SubnetMask']}
99 END
Prashanth Katti2c5c3bb2019-02-14 04:23:07 -0600100
Prashanth Katti23efc6e2019-03-13 06:07:15 -0500101Get Hostname And Verify
102 [Documentation] Get hostname via Redfish and verify.
103 [Tags] Get_Hostname_And_Verify
104
105 ${hostname}= Redfish_Utils.Get Attribute ${REDFISH_NW_PROTOCOL_URI} HostName
106
107 Validate Hostname On BMC ${hostname}
108
109Configure Hostname And Verify
110 [Documentation] Configure hostname via Redfish and verify.
111 [Tags] Configure_Hostname_And_Verify
shrsuman123578276c2020-08-04 04:28:58 -0500112 [Teardown] Run Keywords
113 ... Configure Hostname ${hostname} AND Validate Hostname On BMC ${hostname}
Prashanth Katti23efc6e2019-03-13 06:07:15 -0500114
Prashanth Kattiadf0b4e2019-06-10 04:20:30 -0500115 ${hostname}= Redfish_Utils.Get Attribute ${REDFISH_NW_PROTOCOL_URI} HostName
Prashanth Katti23efc6e2019-03-13 06:07:15 -0500116
Prashanth Kattiadf0b4e2019-06-10 04:20:30 -0500117 Configure Hostname ${test_hostname}
Prashanth Katti23efc6e2019-03-13 06:07:15 -0500118 Validate Hostname On BMC ${test_hostname}
119
Prashanth Kattiadf0b4e2019-06-10 04:20:30 -0500120
Vijayde3bf7b2019-04-16 04:56:09 -0500121Add Valid IPv4 Address And Verify
122 [Documentation] Add IPv4 Address via Redfish and verify.
123 [Tags] Add_Valid_IPv4_Addres_And_Verify
Anvesh Kumar9c7238d2020-04-21 03:56:21 -0500124 [Teardown] Run Keywords
125 ... Delete IP Address ${test_ipv4_addr} AND Test Teardown Execution
Vijayde3bf7b2019-04-16 04:56:09 -0500126
127 Add IP Address ${test_ipv4_addr} ${test_subnet_mask} ${test_gateway}
Vijayde3bf7b2019-04-16 04:56:09 -0500128
129Add Invalid IPv4 Address And Verify
130 [Documentation] Add Invalid IPv4 Address via Redfish and verify.
131 [Tags] Add_Invalid_IPv4_Addres_And_Verify
132
133 Add IP Address ${test_ipv4_invalid_addr} ${test_subnet_mask}
134 ... ${test_gateway} valid_status_codes=${HTTP_BAD_REQUEST}
135
Prashanth Kattib36a7522019-05-22 05:32:39 -0500136Configure Out Of Range IP
137 [Documentation] Configure out-of-range IP address.
138 [Tags] Configure_Out_Of_Range_IP
139 [Template] Add IP Address
140
141 # ip subnet_mask gateway valid_status_codes
142 ${out_of_range_ip} ${test_subnet_mask} ${test_gateway} ${HTTP_BAD_REQUEST}
143
144Configure Broadcast IP
145 [Documentation] Configure broadcast IP address.
146 [Tags] Configure_Broadcast_IP
147 [Template] Add IP Address
Prashanth Kattic6ad6472019-06-14 03:33:39 -0500148 [Teardown] Clear IP Settings On Fail ${broadcast_ip}
Prashanth Kattib36a7522019-05-22 05:32:39 -0500149
150 # ip subnet_mask gateway valid_status_codes
151 ${broadcast_ip} ${test_subnet_mask} ${test_gateway} ${HTTP_BAD_REQUEST}
152
153Configure Multicast IP
154 [Documentation] Configure multicast IP address.
155 [Tags] Configure_Multicast_IP
156 [Template] Add IP Address
Prashanth Kattic6ad6472019-06-14 03:33:39 -0500157 [Teardown] Clear IP Settings On Fail ${multicast_ip}
Prashanth Kattib36a7522019-05-22 05:32:39 -0500158
159 # ip subnet_mask gateway valid_status_codes
160 ${multicast_ip} ${test_subnet_mask} ${test_gateway} ${HTTP_BAD_REQUEST}
161
162Configure Loopback IP
163 [Documentation] Configure loopback IP address.
164 [Tags] Configure_Loopback_IP
165 [Template] Add IP Address
Prashanth Kattic6ad6472019-06-14 03:33:39 -0500166 [Teardown] Clear IP Settings On Fail ${loopback_ip}
Prashanth Kattib36a7522019-05-22 05:32:39 -0500167
168 # ip subnet_mask gateway valid_status_codes
169 ${loopback_ip} ${test_subnet_mask} ${test_gateway} ${HTTP_BAD_REQUEST}
170
171Add Valid IPv4 Address And Check Persistency
172 [Documentation] Add IPv4 address and check peristency.
173 [Tags] Add_Valid_IPv4_Addres_And_Check_Persistency
Anvesh Kumar9c7238d2020-04-21 03:56:21 -0500174 [Teardown] Run Keywords
175 ... Delete IP Address ${test_ipv4_addr} AND Test Teardown Execution
Prashanth Kattib36a7522019-05-22 05:32:39 -0500176
177 Add IP Address ${test_ipv4_addr} ${test_subnet_mask} ${test_gateway}
178
179 # Reboot BMC and verify persistency.
180 OBMC Reboot (off)
George Keishing5c498742019-08-09 02:14:44 -0500181 Redfish.Login
Prashanth Kattib36a7522019-05-22 05:32:39 -0500182 Verify IP On BMC ${test_ipv4_addr}
Vijayde3bf7b2019-04-16 04:56:09 -0500183
Prashanth Katti6cedca22019-05-30 02:31:11 -0500184Add Fourth Octet Threshold IP And Verify
185 [Documentation] Add fourth octet threshold IP and verify.
186 [Tags] Add_Fourth_Octet_Threshold_IP_And_Verify
Anvesh Kumar9c7238d2020-04-21 03:56:21 -0500187 [Teardown] Run Keywords
188 ... Delete IP Address 10.7.7.254 AND Test Teardown Execution
Prashanth Katti6cedca22019-05-30 02:31:11 -0500189
190 Add IP Address 10.7.7.254 ${test_subnet_mask} ${test_gateway}
Prashanth Katti6cedca22019-05-30 02:31:11 -0500191
192Add Fourth Octet Lowest IP And Verify
193 [Documentation] Add fourth octet lowest IP and verify.
194 [Tags] Add_Fourth_Octet_Lowest_IP_And_Verify
Anvesh Kumar9c7238d2020-04-21 03:56:21 -0500195 [Teardown] Run Keywords
196 ... Delete IP Address 10.7.7.1 AND Test Teardown Execution
Prashanth Katti6cedca22019-05-30 02:31:11 -0500197
198 Add IP Address 10.7.7.1 ${test_subnet_mask} ${test_gateway}
Prashanth Katti6cedca22019-05-30 02:31:11 -0500199
200Add Third Octet Threshold IP And Verify
201 [Documentation] Add third octet threshold IP and verify.
202 [Tags] Add_Third_Octet_Threshold_IP_And_Verify
Anvesh Kumar9c7238d2020-04-21 03:56:21 -0500203 [Teardown] Run Keywords
204 ... Delete IP Address 10.7.255.7 AND Test Teardown Execution
Prashanth Katti6cedca22019-05-30 02:31:11 -0500205
206 Add IP Address 10.7.255.7 ${test_subnet_mask} ${test_gateway}
Prashanth Katti6cedca22019-05-30 02:31:11 -0500207
208Add Third Octet Lowest IP And Verify
209 [Documentation] Add third octet lowest IP and verify.
210 [Tags] Add_Third_Octet_Lowest_IP_And_Verify
Anvesh Kumar9c7238d2020-04-21 03:56:21 -0500211 [Teardown] Run Keywords
212 ... Delete IP Address 10.7.0.7 AND Test Teardown Execution
Prashanth Katti6cedca22019-05-30 02:31:11 -0500213
214 Add IP Address 10.7.0.7 ${test_subnet_mask} ${test_gateway}
Prashanth Katti6cedca22019-05-30 02:31:11 -0500215
216Add Second Octet Threshold IP And Verify
217 [Documentation] Add second octet threshold IP and verify.
218 [Tags] Add_Second_Octet_Threshold_IP_And_Verify
Anvesh Kumar9c7238d2020-04-21 03:56:21 -0500219 [Teardown] Run Keywords
220 ... Delete IP Address 10.255.7.7 AND Test Teardown Execution
Prashanth Katti6cedca22019-05-30 02:31:11 -0500221
222 Add IP Address 10.255.7.7 ${test_subnet_mask} ${test_gateway}
Prashanth Katti6cedca22019-05-30 02:31:11 -0500223
224Add Second Octet Lowest IP And Verify
225 [Documentation] Add second octet lowest IP and verify.
226 [Tags] Add_Second_Octet_Lowest_IP_And_Verify
Anvesh Kumar9c7238d2020-04-21 03:56:21 -0500227 [Teardown] Run Keywords
228 ... Delete IP Address 10.0.7.7 AND Test Teardown Execution
Prashanth Katti6cedca22019-05-30 02:31:11 -0500229
230 Add IP Address 10.0.7.7 ${test_subnet_mask} ${test_gateway}
Prashanth Katti6cedca22019-05-30 02:31:11 -0500231
232Add First Octet Threshold IP And Verify
233 [Documentation] Add first octet threshold IP and verify.
234 [Tags] Add_First_Octet_Threshold_IP_And_Verify
Anvesh Kumar9c7238d2020-04-21 03:56:21 -0500235 [Teardown] Run Keywords
Anves Kumar rayankulaf757b102020-07-27 20:41:36 -0500236 ... Delete IP Address 223.7.7.7 AND Test Teardown Execution
Prashanth Katti6cedca22019-05-30 02:31:11 -0500237
238 Add IP Address 223.7.7.7 ${test_subnet_mask} ${test_gateway}
Prashanth Katti6cedca22019-05-30 02:31:11 -0500239
240Add First Octet Lowest IP And Verify
241 [Documentation] Add first octet lowest IP and verify.
242 [Tags] Add_First_Octet_Lowest_IP_And_Verify
Anvesh Kumar9c7238d2020-04-21 03:56:21 -0500243 [Teardown] Run Keywords
244 ... Delete IP Address 1.7.7.7 AND Test Teardown Execution
Prashanth Katti6cedca22019-05-30 02:31:11 -0500245
246 Add IP Address 1.7.7.7 ${test_subnet_mask} ${test_gateway}
Prashanth Katti6cedca22019-05-30 02:31:11 -0500247
Prashanth Katti040c8c12019-05-31 04:42:05 -0500248Configure Invalid Netmask
249 [Documentation] Verify error while setting invalid netmask.
250 [Tags] Configure_Invalid_Netmask
251 [Template] Add IP Address
252
253 # ip subnet_mask gateway valid_status_codes
254 ${test_ipv4_addr} ${invalid_netmask} ${test_gateway} ${HTTP_BAD_REQUEST}
255
256Configure Out Of Range Netmask
257 [Documentation] Verify error while setting out of range netmask.
258 [Tags] Configure_Out_Of_Range_Netmask
259 [Template] Add IP Address
260
261 # ip subnet_mask gateway valid_status_codes
262 ${test_ipv4_addr} ${out_of_range_netmask} ${test_gateway} ${HTTP_BAD_REQUEST}
263
264Configure Alpha Netmask
265 [Documentation] Verify error while setting alpha netmask.
266 [Tags] Configure_Alpha_Netmask
267 [Template] Add IP Address
268
269 # ip subnet_mask gateway valid_status_codes
270 ${test_ipv4_addr} ${alpha_netmask} ${test_gateway} ${HTTP_BAD_REQUEST}
271
272Configure More Byte Netmask
273 [Documentation] Verify error while setting more byte netmask.
274 [Tags] Configure_More_Byte_Netmask
275 [Template] Add IP Address
276
277 # ip subnet_mask gateway valid_status_codes
278 ${test_ipv4_addr} ${more_byte_netmask} ${test_gateway} ${HTTP_BAD_REQUEST}
279
280Configure Less Byte Netmask
281 [Documentation] Verify error while setting less byte netmask.
282 [Tags] Configure_Less_Byte_Netmask
283 [Template] Add IP Address
284
285 # ip subnet_mask gateway valid_status_codes
286 ${test_ipv4_addr} ${less_byte_netmask} ${test_gateway} ${HTTP_BAD_REQUEST}
287
Prashanth Kattic6ad6472019-06-14 03:33:39 -0500288Configure Threshold Netmask And Verify
289 [Documentation] Configure threshold netmask and verify.
290 [Tags] Configure_Threshold_Netmask_And_verify
Anvesh Kumar9c7238d2020-04-21 03:56:21 -0500291 [Teardown] Run Keywords
292 ... Delete IP Address ${test_ipv4_addr} AND Test Teardown Execution
Prashanth Kattic6ad6472019-06-14 03:33:39 -0500293
294 Add IP Address ${test_ipv4_addr} ${threshold_netmask} ${test_gateway}
Prashanth Kattic6ad6472019-06-14 03:33:39 -0500295
296Configure Lowest Netmask And Verify
297 [Documentation] Configure lowest netmask and verify.
298 [Tags] Configure_Lowest_Netmask_And_verify
Anvesh Kumar9c7238d2020-04-21 03:56:21 -0500299 [Teardown] Run Keywords
300 ... Delete IP Address ${test_ipv4_addr} AND Test Teardown Execution
Prashanth Kattic6ad6472019-06-14 03:33:39 -0500301
302 Add IP Address ${test_ipv4_addr} ${lowest_netmask} ${test_gateway}
Prashanth Kattic6ad6472019-06-14 03:33:39 -0500303
304Configure Network ID
305 [Documentation] Verify error while configuring network ID.
306 [Tags] Configure_Network_ID
307 [Template] Add IP Address
308 [Teardown] Clear IP Settings On Fail ${network_id}
309
310 # ip subnet_mask gateway valid_status_codes
311 ${network_id} ${test_subnet_mask} ${test_gateway} ${HTTP_BAD_REQUEST}
312
313Configure Less Octet IP
314 [Documentation] Verify error while Configuring less octet IP address.
315 [Tags] Configure_Less_Octet_IP
316 [Template] Add IP Address
317
318 # ip subnet_mask gateway valid_status_codes
319 ${less_octet_ip} ${test_subnet_mask} ${test_gateway} ${HTTP_BAD_REQUEST}
320
321Configure Empty IP
322 [Documentation] Verify error while Configuring empty IP address.
323 [Tags] Configure_Empty_IP
324 [Template] Add IP Address
325
326 # ip subnet_mask gateway valid_status_codes
327 ${EMPTY} ${test_subnet_mask} ${test_gateway} ${HTTP_BAD_REQUEST}
328
329Configure Special Char IP
330 [Documentation] Configure invalid IP address containing special chars.
331 [Tags] Configure_Special_Char_IP
332 [Template] Add IP Address
333
334 # ip subnet_mask gateway valid_status_codes
335 @@@.%%.44.11 ${test_subnet_mask} ${test_gateway} ${HTTP_BAD_REQUEST}
336
337Configure Hexadecimal IP
338 [Documentation] Configure invalid IP address containing hex value.
339 [Tags] Configure_Hexadecimal_IP
340 [Template] Add IP Address
341
342 # ip subnet_mask gateway valid_status_codes
343 ${hex_ip} ${test_subnet_mask} ${test_gateway} ${HTTP_BAD_REQUEST}
344
345Configure Negative Octet IP
346 [Documentation] Configure invalid IP address containing negative octet.
347 [Tags] Configure_Negative_Octet_IP
348 [Template] Add IP Address
349
350 # ip subnet_mask gateway valid_status_codes
351 ${negative_ip} ${test_subnet_mask} ${test_gateway} ${HTTP_BAD_REQUEST}
352
Prashanth Katti5cad5a02019-06-20 07:27:10 -0500353Configure Incomplete IP For Gateway
354 [Documentation] Configure incomplete IP for gateway and expect an error.
355 [Tags] Configure_Incomplete_IP_For_Gateway
356 [Template] Add IP Address
357
358 # ip subnet_mask gateway valid_status_codes
359 ${test_ipv4_addr} ${test_subnet_mask} ${less_octet_ip} ${HTTP_BAD_REQUEST}
360
361Configure Special Char IP For Gateway
362 [Documentation] Configure special char IP for gateway and expect an error.
363 [Tags] Configure_Special_Char_IP_For_Gateway
364 [Template] Add IP Address
365
366 # ip subnet_mask gateway valid_status_codes
367 ${test_ipv4_addr} ${test_subnet_mask} @@@.%%.44.11 ${HTTP_BAD_REQUEST}
368
369Configure Hexadecimal IP For Gateway
370 [Documentation] Configure hexadecimal IP for gateway and expect an error.
371 [Tags] Configure_Hexadecimal_IP_For_Gateway
372 [Template] Add IP Address
373
374 # ip subnet_mask gateway valid_status_codes
375 ${test_ipv4_addr} ${test_subnet_mask} ${hex_ip} ${HTTP_BAD_REQUEST}
376
Prashanth Katti7098c972019-07-03 06:56:42 -0500377Get DNS Server And Verify
378 [Documentation] Get DNS server via Redfish and verify.
379 [Tags] Get_DNS_Server_And_Verify
380
381 Verify CLI and Redfish Nameservers
382
383Configure DNS Server And Verify
384 [Documentation] Configure DNS server and verify.
385 [Tags] Configure_DNS_Server_And_Verify
Prashanth Kattic85957c2019-07-09 02:01:20 -0500386 [Setup] DNS Test Setup Execution
Prashanth Katti7098c972019-07-03 06:56:42 -0500387 [Teardown] Run Keywords
388 ... Configure Static Name Servers AND Test Teardown Execution
389
Prashanth Katti7098c972019-07-03 06:56:42 -0500390 Configure Static Name Servers ${static_name_servers}
391 Verify CLI and Redfish Nameservers
392
Prashanth Kattic85957c2019-07-09 02:01:20 -0500393Delete DNS Server And Verify
394 [Documentation] Delete DNS server and verify.
395 [Tags] Delete_DNS_Server_And_Verify
396 [Setup] DNS Test Setup Execution
397 [Teardown] Run Keywords
398 ... Configure Static Name Servers AND Test Teardown Execution
399
400 Delete Static Name Servers
401 Verify CLI and Redfish Nameservers
402
403Configure DNS Server And Check Persistency
404 [Documentation] Configure DNS server and check persistency on reboot.
405 [Tags] Configure_DNS_Server_And_Check_Persistency
406 [Setup] DNS Test Setup Execution
407 [Teardown] Run Keywords
408 ... Configure Static Name Servers AND Test Teardown Execution
409
410 Configure Static Name Servers ${static_name_servers}
411 # Reboot BMC and verify persistency.
412 OBMC Reboot (off)
Anves Kumar rayankula8c628b72021-02-05 05:03:45 -0600413 Redfish.Login
Prashanth Kattic85957c2019-07-09 02:01:20 -0500414 Verify CLI and Redfish Nameservers
415
Prashanth Katti3063ffe2019-07-25 04:35:25 -0500416Configure Loopback IP For Gateway
417 [Documentation] Configure loopback IP for gateway and expect an error.
418 [Tags] Configure_Loopback_IP_For_Gateway
419 [Template] Add IP Address
420 [Teardown] Clear IP Settings On Fail ${test_ipv4_addr}
421
422 # ip subnet_mask gateway valid_status_codes
423 ${test_ipv4_addr} ${test_subnet_mask} ${loopback_ip} ${HTTP_BAD_REQUEST}
424
425Configure Network ID For Gateway
426 [Documentation] Configure network ID for gateway and expect an error.
427 [Tags] Configure_Network_ID_For_Gateway
428 [Template] Add IP Address
429 [Teardown] Clear IP Settings On Fail ${test_ipv4_addr}
430
431 # ip subnet_mask gateway valid_status_codes
432 ${test_ipv4_addr} ${test_subnet_mask} ${network_id} ${HTTP_BAD_REQUEST}
433
434Configure Multicast IP For Gateway
435 [Documentation] Configure multicast IP for gateway and expect an error.
436 [Tags] Configure_Multicast_IP_For_Gateway
437 [Template] Add IP Address
438 [Teardown] Clear IP Settings On Fail ${test_ipv4_addr}
439
440 # ip subnet_mask gateway valid_status_codes
Tony Lee412c6682020-04-01 17:34:30 +0800441 ${test_ipv4_addr} ${test_subnet_mask} ${multicast_ip} ${HTTP_BAD_REQUEST}
Prashanth Katti3063ffe2019-07-25 04:35:25 -0500442
443Configure Broadcast IP For Gateway
444 [Documentation] Configure broadcast IP for gateway and expect an error.
445 [Tags] Configure_Broadcast_IP_For_Gateway
446 [Template] Add IP Address
447 [Teardown] Clear IP Settings On Fail ${test_ipv4_addr}
448
449 # ip subnet_mask gateway valid_status_codes
450 ${test_ipv4_addr} ${test_subnet_mask} ${broadcast_ip} ${HTTP_BAD_REQUEST}
Prashanth Kattic85957c2019-07-09 02:01:20 -0500451
Prashanth Katti3c7b6432019-07-26 06:53:37 -0500452Configure Null Value For DNS Server
453 [Documentation] Configure null value for DNS server and expect an error.
454 [Tags] Configure_Null_Value_For_DNS_Server
455 [Setup] DNS Test Setup Execution
456 [Teardown] Run Keywords
457 ... Configure Static Name Servers AND Test Teardown Execution
458
459 Configure Static Name Servers ${null_value} ${HTTP_BAD_REQUEST}
460
Prashanth Kattiafe16b72019-08-02 00:29:45 -0500461Configure Empty Value For DNS Server
462 [Documentation] Configure empty value for DNS server and expect an error.
463 [Tags] Configure_Empty_Value_For_DNS_Server
464 [Setup] DNS Test Setup Execution
465 [Teardown] Run Keywords
466 ... Configure Static Name Servers AND Test Teardown Execution
467
468 Configure Static Name Servers ${empty_dictionary} ${HTTP_BAD_REQUEST}
469
470Configure String Value For DNS Server
471 [Documentation] Configure string value for DNS server and expect an error.
472 [Tags] Configure_String_Value_For_DNS_Server
473 [Setup] DNS Test Setup Execution
474 [Teardown] Run Keywords
475 ... Configure Static Name Servers AND Test Teardown Execution
476
477 Configure Static Name Servers ${string_value} ${HTTP_BAD_REQUEST}
478
Prashanth Katti568df5f2020-05-15 06:00:37 -0500479Modify IPv4 Address And Verify
480 [Documentation] Modify IP address via Redfish and verify.
481 [Tags] Modify_IPv4_Addres_And_Verify
482 [Teardown] Run Keywords
Anves Kumar rayankula045814b2020-10-09 09:17:05 -0500483 ... Delete IP Address ${test_ipv4_addr2} AND Test Teardown Execution
Prashanth Katti568df5f2020-05-15 06:00:37 -0500484
485 Add IP Address ${test_ipv4_addr} ${test_subnet_mask} ${test_gateway}
486
487 Update IP Address ${test_ipv4_addr} ${test_ipv4_addr2} ${test_subnet_mask} ${test_gateway}
488
Anvesh Kumar9c7238d2020-04-21 03:56:21 -0500489
Anves Kumar rayankula6b9fcd12020-12-18 01:03:19 -0600490Configure Invalid Values For DNS Server
491 [Documentation] Configure invalid values for DNS server and expect an error.
492 [Tags] Configure_Invalid_Value_For_DNS_Server
493 [Setup] DNS Test Setup Execution
494 [Template] Configure Static Name Servers
495 [Teardown] Run Keywords
496 ... Configure Static Name Servers AND Test Teardown Execution
497
498 # static_name_servers valid_status_codes
499 0xa.0xb.0xc.0xd ${HTTP_BAD_REQUEST}
500 10.-7.-7.-7 ${HTTP_BAD_REQUEST}
501 10.3.36 ${HTTP_BAD_REQUEST}
502 @@@.%%.44.11 ${HTTP_BAD_REQUEST}
503
504
505Config Multiple DNS Servers And Verify
506 [Documentation] Config multiple DNS servers and verify.
507 [Tags] Config_Multiple_DNS_Servers_And_Verify
508 [Setup] DNS Test Setup Execution
509 [Teardown] Run Keywords
510 ... Configure Static Name Servers AND Test Teardown Execution
511
512 @{list_name_servers}= Create List 10.5.5.10 10.20.5.10 10.5.6.7
513 Configure Static Name Servers ${list_name_servers}
514 Verify CLI and Redfish Nameservers
515
516
Anves Kumar rayankulad4cdd8c2021-01-11 04:10:05 -0600517Configure And Verify Multiple Static IPv4 Addresses
518 [Documentation] Configure multiple static ipv4 address via Redfish and verify.
519 [Tags] Configure_And_Verify_Multiple_Static_IPv4_Addresses
520 [Teardown] Run Keywords Delete Multiple Static IPv4 Addresses ${test_ipv4_addresses}
521 ... AND Test Teardown Execution
522
523 ${test_ipv4_addresses}= Create List ${test_ipv4_addr} ${test_ipv4_addr2}
524 Configure Multiple Static IPv4 Addresses ${test_ipv4_addresses} ${test_subnet_mask} ${test_gateway}
525
526
527Configure Multiple Static IPv4 Addresses And Check Persistency
528 [Documentation] Configure multiple static ipv4 address via Redfish and check persistency.
529 [Tags] Configure_Multiple_Static_IPv4_Addresses_And_Check_Persistency
530 [Teardown] Run Keywords Delete Multiple Static IPv4 Addresses ${test_ipv4_addresses}
531 ... AND Test Teardown Execution
532
533 ${test_ipv4_addresses}= Create List ${test_ipv4_addr} ${test_ipv4_addr2}
534 Configure Multiple Static IPv4 Addresses ${test_ipv4_addresses} ${test_subnet_mask} ${test_gateway}
535
536 # Reboot BMC and verify persistency.
537 OBMC Reboot (off)
Anves Kumar rayankula8c628b72021-02-05 05:03:45 -0600538 Redfish.Login
Anves Kumar rayankulad4cdd8c2021-01-11 04:10:05 -0600539 FOR ${ip} IN @{test_ipv4_addresses}
540 Verify IP And Netmask On BMC ${ip} ${test_subnet_mask}
541 END
542
543
Anves Kumar rayankula43e93e12021-01-27 03:52:37 -0600544Configure And Verify Multiple IPv4 Addresses
545 [Documentation] Configure multiple IPv4 addresses and verify.
546 [Tags] Configure_And_Verify_Multiple_IPv4_Addresse
547 [Teardown] Run Keywords
548 ... Delete IP Address ${test_ipv4_addr} AND Delete IP Address ${test_ipv4_addr2}
549 ... AND Test Teardown Execution
550
551 ${ip1}= Create dictionary Address=${test_ipv4_addr}
552 ... SubnetMask=255.255.0.0 Gateway=${test_gateway}
553 ${ip2}= Create dictionary Address=${test_ipv4_addr2}
554 ... SubnetMask=255.255.252.0 Gateway=${test_gateway}
555
556 ${empty_dict}= Create Dictionary
557 ${patch_list}= Create List
558 ${network_configurations}= Get Network Configuration
559 ${num_entries}= Get Length ${network_configurations}
560
561 FOR ${INDEX} IN RANGE 0 ${num_entries}
562 Append To List ${patch_list} ${empty_dict}
563 END
564
565 # We need not check for existence of IP on BMC while adding.
566 Append To List ${patch_list} ${ip1} ${ip2}
567 ${payload}= Create Dictionary IPv4StaticAddresses=${patch_list}
568 ${active_channel_config}= Get Active Channel Config
569 ${ethernet_interface}= Set Variable ${active_channel_config['${CHANNEL_NUMBER}']['name']}
570 Redfish.patch ${REDFISH_NW_ETH_IFACE}${ethernet_interface} body=&{payload}
Anves Kumar rayankula53b80302021-05-21 01:50:03 -0500571 ... valid_status_codes=[${HTTP_OK}, ${HTTP_NO_CONTENT}]
Anves Kumar rayankula43e93e12021-01-27 03:52:37 -0600572
573 # Note: Network restart takes around 15-18s after patch request processing.
574 Sleep ${NETWORK_TIMEOUT}s
575 Wait For Host To Ping ${OPENBMC_HOST} ${NETWORK_TIMEOUT}
576 Verify IP On BMC ${test_ipv4_addr}
577 Verify IP On BMC ${test_ipv4_addr2}
578
579
Anves Kumar rayankulaeefdb562021-02-08 07:54:11 -0600580Config Multiple DNS Servers And Check Persistency
581 [Documentation] Config multiple DNS and check persistency.
582 [Tags] Config_Multiple_DNS_Servers_And_Check_Persistency
583 [Setup] DNS Test Setup Execution
584 [Teardown] Run Keywords
585 ... Configure Static Name Servers AND Test Teardown Execution
586
587 @{list_name_servers}= Create List 10.5.5.10 10.20.5.10 10.5.6.7
588 Configure Static Name Servers ${list_name_servers}
589
590 # Reboot BMC and verify persistency.
591 OBMC Reboot (off)
592 Redfish.Login
593 Verify CLI and Redfish Nameservers
594
Anves Kumar rayankula2f137eb2021-03-29 01:12:01 -0500595
596Configure Static IP Without Using Gateway And Verify
597 [Documentation] Configure static IP without using gateway and verify error.
598 [Tags] Configure_Static_IP_Without_Using_Gateway_And_Verify
599
600 ${ip}= Create dictionary Address=${test_ipv4_addr}
601 ... SubnetMask=${test_subnet_mask}
602 ${empty_dict}= Create Dictionary
603 ${patch_list}= Create List
604 ${network_configurations}= Get Network Configuration
605
606 ${num_entries}= Get Length ${network_configurations}
607 FOR ${INDEX} IN RANGE 0 ${num_entries}
608 Append To List ${patch_list} ${empty_dict}
609 END
610
611 # We need not check for existence of IP on BMC while adding.
612 Append To List ${patch_list} ${ip}
613 ${payload}= Create Dictionary IPv4StaticAddresses=${patch_list}
614 ${active_channel_config}= Get Active Channel Config
615 ${ethernet_interface}= Set Variable ${active_channel_config['${CHANNEL_NUMBER}']['name']}
616 Redfish.patch ${REDFISH_NW_ETH_IFACE}${ethernet_interface}
617 ... body=&{payload} valid_status_codes=[${HTTP_BAD_REQUEST}]
618
Prashanth Kattif58cce02019-02-06 03:05:14 -0600619*** Keywords ***
620
621Test Setup Execution
622 [Documentation] Test setup execution.
623
George Keishing97c93942019-03-04 12:45:07 -0600624 Redfish.Login
Prashanth Kattif58cce02019-02-06 03:05:14 -0600625
626 @{network_configurations}= Get Network Configuration
627 Set Test Variable @{network_configurations}
628
629 # Get BMC IP address and prefix length.
630 ${ip_data}= Get BMC IP Info
631 Set Test Variable ${ip_data}
632
Prashanth Katti747ce9d2019-02-07 07:23:48 -0600633
Prashanth Katti747ce9d2019-02-07 07:23:48 -0600634Verify Netmask On BMC
635 [Documentation] Verify netmask on BMC.
Prashanth Kattif58cce02019-02-06 03:05:14 -0600636 [Arguments] ${netmask}
637
638 # Description of the argument(s):
639 # netmask netmask value to be verified.
640
Prashanth Katti747ce9d2019-02-07 07:23:48 -0600641 ${prefix_length}= Netmask Prefix Length ${netmask}
642
643 Should Contain Match ${ip_data} */${prefix_length}
644 ... msg=Prefix length does not exist.
Prashanth Kattif58cce02019-02-06 03:05:14 -0600645
Prashanth Katti2c5c3bb2019-02-14 04:23:07 -0600646Verify IP And Netmask On BMC
647 [Documentation] Verify IP and netmask on BMC.
648 [Arguments] ${ip} ${netmask}
649
650 # Description of the argument(s):
651 # ip IP address to be verified.
652 # netmask netmask value to be verified.
653
654 ${prefix_length}= Netmask Prefix Length ${netmask}
655 @{ip_data}= Get BMC IP Info
656
657 ${ip_with_netmask}= Catenate ${ip}/${prefix_length}
658 Should Contain ${ip_data} ${ip_with_netmask}
659 ... msg=IP and netmask pair does not exist.
660
Prashanth Katti23efc6e2019-03-13 06:07:15 -0500661Validate Hostname On BMC
662 [Documentation] Verify that the hostname read via Redfish is the same as the
663 ... hostname configured on system.
664 [Arguments] ${hostname}
665
666 # Description of argument(s):
667 # hostname A hostname value which is to be compared to the hostname
668 # configured on system.
669
670 ${sys_hostname}= Get BMC Hostname
Prashanth Katti466d8342019-03-21 08:58:50 -0500671 Should Be Equal ${sys_hostname} ${hostname}
Prashanth Katti23efc6e2019-03-13 06:07:15 -0500672 ... ignore_case=True msg=Hostname does not exist.
673
Prashanth Kattif58cce02019-02-06 03:05:14 -0600674Test Teardown Execution
675 [Documentation] Test teardown execution.
676
677 FFDC On Test Case Fail
George Keishing97c93942019-03-04 12:45:07 -0600678 Redfish.Logout
Prashanth Kattia8442512019-06-07 06:47:09 -0500679
680Clear IP Settings On Fail
681 [Documentation] Clear IP settings on fail.
682 [Arguments] ${ip}
683
684 # Description of argument(s):
685 # ip IP address to be deleted.
686
687 Run Keyword If '${TEST STATUS}' == 'FAIL'
688 ... Delete IP Address ${ip}
689
690 Test Teardown Execution
Prashanth Kattiadf0b4e2019-06-10 04:20:30 -0500691
Prashanth Katti7098c972019-07-03 06:56:42 -0500692Verify CLI and Redfish Nameservers
693 [Documentation] Verify that nameservers obtained via Redfish do not
694 ... match those found in /etc/resolv.conf.
695
Tony Lee412c6682020-04-01 17:34:30 +0800696 ${active_channel_config}= Get Active Channel Config
697 ${ethernet_interface}= Set Variable ${active_channel_config['${CHANNEL_NUMBER}']['name']}
698
Anves Kumar rayankula91548ea2020-06-18 00:28:13 -0500699 ${redfish_nameservers}= Redfish.Get Attribute
700 ... ${REDFISH_NW_ETH_IFACE}${ethernet_interface} StaticNameServers
Prashanth Katti7098c972019-07-03 06:56:42 -0500701 ${resolve_conf_nameservers}= CLI Get Nameservers
Michael Walsh39c00512019-07-17 10:54:06 -0500702 Rqprint Vars redfish_nameservers resolve_conf_nameservers
Prashanth Katti7098c972019-07-03 06:56:42 -0500703
704 # Check that the 2 lists are equivalent.
705 ${match}= Evaluate set($redfish_nameservers) == set($resolve_conf_nameservers)
706 Should Be True ${match}
707 ... The nameservers obtained via Redfish do not match those found in /etc/resolv.conf.
708
Prashanth Katti7098c972019-07-03 06:56:42 -0500709
710Configure Static Name Servers
711 [Documentation] Configure DNS server on BMC.
Prashanth Kattic85957c2019-07-09 02:01:20 -0500712 [Arguments] ${static_name_servers}=${original_nameservers}
Prashanth Katti3c7b6432019-07-26 06:53:37 -0500713 ... ${valid_status_codes}=${HTTP_OK}
Prashanth Katti7098c972019-07-03 06:56:42 -0500714
George Keishing9cb2e592019-07-12 09:37:33 -0500715 # Description of the argument(s):
Prashanth Katti7098c972019-07-03 06:56:42 -0500716 # static_name_servers A list of static name server IPs to be
717 # configured on the BMC.
718
Tony Lee412c6682020-04-01 17:34:30 +0800719 ${active_channel_config}= Get Active Channel Config
720 ${ethernet_interface}= Set Variable ${active_channel_config['${CHANNEL_NUMBER}']['name']}
721
Anves Kumar rayankula6b9fcd12020-12-18 01:03:19 -0600722 ${type} = Evaluate type($static_name_servers).__name__
723 ${static_name_servers}= Set Variable If '${type}'=='str'
724 ... '${static_name_servers}' ${static_name_servers}
725
Prashanth Katti9d995fc2019-09-24 01:29:06 -0500726 # Currently BMC is sending 500 response code instead of 400 for invalid scenarios.
Anves Kumar rayankula91548ea2020-06-18 00:28:13 -0500727 Redfish.Patch ${REDFISH_NW_ETH_IFACE}${ethernet_interface}
728 ... body={'StaticNameServers': ${static_name_servers}}
Prashanth Katti9d995fc2019-09-24 01:29:06 -0500729 ... valid_status_codes=[${valid_status_codes}, ${HTTP_INTERNAL_SERVER_ERROR}]
Prashanth Kattic85957c2019-07-09 02:01:20 -0500730
Prashanth Kattif247be32019-10-07 04:40:43 -0500731 # Patch operation takes 1 to 3 seconds to set new value.
732 Sleep 3s
733
Prashanth Katti7f9e60f2019-07-26 01:18:41 -0500734 # Check if newly added DNS server is configured on BMC.
735 ${cli_nameservers}= CLI Get Nameservers
Prashanth Katti3c7b6432019-07-26 06:53:37 -0500736 ${cmd_status}= Run Keyword And Return Status
737 ... List Should Contain Sub List ${cli_nameservers} ${static_name_servers}
738
739 Run Keyword If '${valid_status_codes}' == '${HTTP_OK}'
740 ... Should Be True ${cmd_status} == ${True}
741 ... ELSE Should Be True ${cmd_status} == ${False}
Prashanth Katti7f9e60f2019-07-26 01:18:41 -0500742
Prashanth Kattic85957c2019-07-09 02:01:20 -0500743Delete Static Name Servers
744 [Documentation] Delete static name servers.
745
Anves Kumar rayankula045814b2020-10-09 09:17:05 -0500746 Configure Static Name Servers static_name_servers=@{EMPTY}
Prashanth Kattic85957c2019-07-09 02:01:20 -0500747
748 # Check if all name servers deleted on BMC.
749 ${nameservers}= CLI Get Nameservers
750 Should Be Empty ${nameservers}
751
752DNS Test Setup Execution
753 [Documentation] Do DNS test setup execution.
754
755 Redfish.Login
756
Tony Lee412c6682020-04-01 17:34:30 +0800757 ${active_channel_config}= Get Active Channel Config
758 ${ethernet_interface}= Set Variable ${active_channel_config['${CHANNEL_NUMBER}']['name']}
759
Anves Kumar rayankula91548ea2020-06-18 00:28:13 -0500760 ${original_nameservers}= Redfish.Get Attribute
761 ... ${REDFISH_NW_ETH_IFACE}${ethernet_interface} StaticNameServers
Tony Lee412c6682020-04-01 17:34:30 +0800762
Prashanth Kattic85957c2019-07-09 02:01:20 -0500763 Rprint Vars original_nameservers
764 # Set suite variables to trigger restoration during teardown.
765 Set Suite Variable ${original_nameservers}
Prashanth Kattib478d902020-05-08 10:05:32 -0500766
767Suite Setup Execution
768 [Documentation] Do suite setup execution.
769
770 ${test_gateway}= Get BMC Default Gateway
771 Set Suite Variable ${test_gateway}
Prashanth Katti568df5f2020-05-15 06:00:37 -0500772
773Update IP Address
774 [Documentation] Update IP address of BMC.
Anves Kumar rayankula53b80302021-05-21 01:50:03 -0500775 [Arguments] ${ip} ${new_ip} ${netmask} ${gw_ip}
776 ... ${valid_status_codes}=[${HTTP_OK}, ${HTTP_NO_CONTENT}]
Prashanth Katti568df5f2020-05-15 06:00:37 -0500777
778 # Description of argument(s):
779 # ip IP address to be replaced (e.g. "10.7.7.7").
780 # new_ip New IP address to be configured.
781 # netmask Netmask value.
782 # gw_ip Gateway IP address.
783 # valid_status_codes Expected return code from patch operation
784 # (e.g. "200"). See prolog of rest_request
785 # method in redfish_plus.py for details.
786
787 ${empty_dict}= Create Dictionary
788 ${patch_list}= Create List
789 ${ip_data}= Create Dictionary Address=${new_ip} SubnetMask=${netmask} Gateway=${gw_ip}
790
791 # Find the position of IP address to be modified.
792 @{network_configurations}= Get Network Configuration
793 FOR ${network_configuration} IN @{network_configurations}
794 Run Keyword If '${network_configuration['Address']}' == '${ip}'
795 ... Append To List ${patch_list} ${ip_data}
796 ... ELSE Append To List ${patch_list} ${empty_dict}
797 END
798
799 ${ip_found}= Run Keyword And Return Status List Should Contain Value
800 ... ${patch_list} ${ip_data} msg=${ip} does not exist on BMC
801 Pass Execution If ${ip_found} == ${False} ${ip} does not exist on BMC
802
803 # Run patch command only if given IP is found on BMC
804 ${data}= Create Dictionary IPv4StaticAddresses=${patch_list}
805
Anves Kumar rayankula53b80302021-05-21 01:50:03 -0500806 Redfish.patch ${REDFISH_NW_ETH0_URI} body=&{data} valid_status_codes=${valid_status_codes}
Prashanth Katti568df5f2020-05-15 06:00:37 -0500807
808 # Note: Network restart takes around 15-18s after patch request processing.
809 Sleep ${NETWORK_TIMEOUT}s
810 Wait For Host To Ping ${OPENBMC_HOST} ${NETWORK_TIMEOUT}
811
812 Verify IP On BMC ${new_ip}
813 Validate Network Config On BMC
Anves Kumar rayankulad4cdd8c2021-01-11 04:10:05 -0600814
815Configure Multiple Static IPv4 Addresses
816 [Documentation] Configure multiple static ipv4 address via Redfish and verify.
817 [Arguments] ${ip_addreses} ${subnet_mask} ${gateway}
818
819 # Description of argument(s):
820 # ip_addreses A list of IP addresses to be added (e.g.["10.7.7.7"]).
821 # subnet_mask Subnet mask for the IP to be added (e.g. "255.255.0.0").
822 # gateway Gateway for the IP to be added (e.g. "10.7.7.1").
823
824 FOR ${ip} IN @{ip_addreses}
825 Add IP Address ${ip} ${subnet_mask} ${gateway}
826 END
827 Validate Network Config On BMC
828
829
830Delete Multiple Static IPv4 Addresses
831 [Documentation] Delete multiple static ipv4 address via Redfish.
832 [Arguments] ${ip_addreses}
833
834 # Description of argument(s):
835 # ip_addreses A list of IP addresses to be deleted (e.g.["10.7.7.7"]).
836
837 FOR ${ip} IN @{ip_addreses}
838 Delete IP Address ${ip}
839 END
840 Validate Network Config On BMC