1*** Settings *** 2Documentation Network interface configuration and verification 3 ... tests. 4 5Resource ../../lib/bmc_redfish_resource.robot 6Resource ../../lib/bmc_network_utils.robot 7Resource ../../lib/openbmc_ffdc.robot 8Library ../../lib/bmc_network_utils.py 9Library Collections 10 11Test Setup Test Setup Execution 12Test Teardown Test Teardown Execution 13 14Force Tags Network_Conf_Test 15 16*** Variables *** 17${test_hostname} openbmc 18${test_ipv4_addr} 10.7.7.7 19${test_ipv4_invalid_addr} 0.0.1.a 20${test_subnet_mask} 255.255.0.0 21${test_gateway} 10.7.7.1 22${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 26 27# Valid netmask is 4 bytes long and has continuos block of 1s. 28# Maximum valid value in each octet is 255 and least value is 0. 29# 253 is not valid, as binary value is 11111101. 30${invalid_netmask} 255.255.253.0 31${alpha_netmask} ff.ff.ff.ff 32# Maximum value of octet in netmask is 255. 33${out_of_range_netmask} 255.256.255.0 34${more_byte_netmask} 255.255.255.0.0 35${less_byte_netmask} 255.255.255 36${threshold_netmask} 255.255.255.255 37${lowest_netmask} 128.0.0.0 38 39# There will be 4 octets in IP address (e.g. xx.xx.xx.xx) 40# but trying to configure xx.xx.xx 41${less_octet_ip} 10.3.36 42 43# For the address 10.6.6.6, the 10.6.6.0 portion describes the 44# network ID and the 6 describe the host. 45 46${network_id} 10.7.7.0 47${hex_ip} 0xa.0xb.0xc.0xd 48${negative_ip} 10.-7.-7.7 49${hex_ip} 0xa.0xb.0xc.0xd 50@{static_name_servers} 10.5.5.5 51@{null_value} null 52@{empty_dictionary} {} 53@{string_value} aa.bb.cc.dd 54 55*** Test Cases *** 56 57Get IP Address And Verify 58 [Documentation] Get IP Address And Verify. 59 [Tags] Get_IP_Address_And_Verify 60 61 : FOR ${network_configuration} IN @{network_configurations} 62 \ Verify IP On BMC ${network_configuration['Address']} 63 64Get Netmask And Verify 65 [Documentation] Get Netmask And Verify. 66 [Tags] Get_Netmask_And_Verify 67 68 : FOR ${network_configuration} IN @{network_configurations} 69 \ Verify Netmask On BMC ${network_configuration['SubnetMask']} 70 71Get Gateway And Verify 72 [Documentation] Get gateway and verify it's existence on the BMC. 73 [Tags] Get_Gateway_And_Verify 74 75 : FOR ${network_configuration} IN @{network_configurations} 76 \ Verify Gateway On BMC ${network_configuration['Gateway']} 77 78Get MAC Address And Verify 79 [Documentation] Get MAC address and verify it's existence on the BMC. 80 [Tags] Get_MAC_Address_And_Verify 81 82 ${resp}= Redfish.Get ${REDFISH_NW_ETH0_URI} 83 ${macaddr}= Get From Dictionary ${resp.dict} MACAddress 84 Validate MAC On BMC ${macaddr} 85 86Verify All Configured IP And Netmask 87 [Documentation] Verify all configured IP and netmask on BMC. 88 [Tags] Verify_All_Configured_IP_And_Netmask 89 90 : FOR ${network_configuration} IN @{network_configurations} 91 \ Verify IP And Netmask On BMC ${network_configuration['Address']} 92 ... ${network_configuration['SubnetMask']} 93 94Get Hostname And Verify 95 [Documentation] Get hostname via Redfish and verify. 96 [Tags] Get_Hostname_And_Verify 97 98 ${hostname}= Redfish_Utils.Get Attribute ${REDFISH_NW_PROTOCOL_URI} HostName 99 100 Validate Hostname On BMC ${hostname} 101 102Configure Hostname And Verify 103 [Documentation] Configure hostname via Redfish and verify. 104 [Tags] Configure_Hostname_And_Verify 105 106 ${hostname}= Redfish_Utils.Get Attribute ${REDFISH_NW_PROTOCOL_URI} HostName 107 108 Configure Hostname ${test_hostname} 109 Validate Hostname On BMC ${test_hostname} 110 111 # Revert back to initial hostname. 112 Configure Hostname ${hostname} 113 Validate Hostname On BMC ${hostname} 114 115Add Valid IPv4 Address And Verify 116 [Documentation] Add IPv4 Address via Redfish and verify. 117 [Tags] Add_Valid_IPv4_Addres_And_Verify 118 119 Add IP Address ${test_ipv4_addr} ${test_subnet_mask} ${test_gateway} 120 Delete IP Address ${test_ipv4_addr} 121 122Add Invalid IPv4 Address And Verify 123 [Documentation] Add Invalid IPv4 Address via Redfish and verify. 124 [Tags] Add_Invalid_IPv4_Addres_And_Verify 125 126 Add IP Address ${test_ipv4_invalid_addr} ${test_subnet_mask} 127 ... ${test_gateway} valid_status_codes=${HTTP_BAD_REQUEST} 128 129Configure Out Of Range IP 130 [Documentation] Configure out-of-range IP address. 131 [Tags] Configure_Out_Of_Range_IP 132 [Template] Add IP Address 133 134 # ip subnet_mask gateway valid_status_codes 135 ${out_of_range_ip} ${test_subnet_mask} ${test_gateway} ${HTTP_BAD_REQUEST} 136 137Configure Broadcast IP 138 [Documentation] Configure broadcast IP address. 139 [Tags] Configure_Broadcast_IP 140 [Template] Add IP Address 141 [Teardown] Clear IP Settings On Fail ${broadcast_ip} 142 143 # ip subnet_mask gateway valid_status_codes 144 ${broadcast_ip} ${test_subnet_mask} ${test_gateway} ${HTTP_BAD_REQUEST} 145 146Configure Multicast IP 147 [Documentation] Configure multicast IP address. 148 [Tags] Configure_Multicast_IP 149 [Template] Add IP Address 150 [Teardown] Clear IP Settings On Fail ${multicast_ip} 151 152 # ip subnet_mask gateway valid_status_codes 153 ${multicast_ip} ${test_subnet_mask} ${test_gateway} ${HTTP_BAD_REQUEST} 154 155Configure Loopback IP 156 [Documentation] Configure loopback IP address. 157 [Tags] Configure_Loopback_IP 158 [Template] Add IP Address 159 [Teardown] Clear IP Settings On Fail ${loopback_ip} 160 161 # ip subnet_mask gateway valid_status_codes 162 ${loopback_ip} ${test_subnet_mask} ${test_gateway} ${HTTP_BAD_REQUEST} 163 164Add Valid IPv4 Address And Check Persistency 165 [Documentation] Add IPv4 address and check peristency. 166 [Tags] Add_Valid_IPv4_Addres_And_Check_Persistency 167 168 Add IP Address ${test_ipv4_addr} ${test_subnet_mask} ${test_gateway} 169 170 # Reboot BMC and verify persistency. 171 OBMC Reboot (off) 172 Redfish.Login 173 Verify IP On BMC ${test_ipv4_addr} 174 Delete IP Address ${test_ipv4_addr} 175 176Add Fourth Octet Threshold IP And Verify 177 [Documentation] Add fourth octet threshold IP and verify. 178 [Tags] Add_Fourth_Octet_Threshold_IP_And_Verify 179 180 Add IP Address 10.7.7.254 ${test_subnet_mask} ${test_gateway} 181 Delete IP Address 10.7.7.254 182 183Add Fourth Octet Lowest IP And Verify 184 [Documentation] Add fourth octet lowest IP and verify. 185 [Tags] Add_Fourth_Octet_Lowest_IP_And_Verify 186 187 Add IP Address 10.7.7.1 ${test_subnet_mask} ${test_gateway} 188 Delete IP Address 10.7.7.1 189 190Add Third Octet Threshold IP And Verify 191 [Documentation] Add third octet threshold IP and verify. 192 [Tags] Add_Third_Octet_Threshold_IP_And_Verify 193 194 Add IP Address 10.7.255.7 ${test_subnet_mask} ${test_gateway} 195 Delete IP Address 10.7.255.7 196 197Add Third Octet Lowest IP And Verify 198 [Documentation] Add third octet lowest IP and verify. 199 [Tags] Add_Third_Octet_Lowest_IP_And_Verify 200 201 Add IP Address 10.7.0.7 ${test_subnet_mask} ${test_gateway} 202 Delete IP Address 10.7.0.7 203 204Add Second Octet Threshold IP And Verify 205 [Documentation] Add second octet threshold IP and verify. 206 [Tags] Add_Second_Octet_Threshold_IP_And_Verify 207 208 Add IP Address 10.255.7.7 ${test_subnet_mask} ${test_gateway} 209 Delete IP Address 10.255.7.7 210 211Add Second Octet Lowest IP And Verify 212 [Documentation] Add second octet lowest IP and verify. 213 [Tags] Add_Second_Octet_Lowest_IP_And_Verify 214 215 Add IP Address 10.0.7.7 ${test_subnet_mask} ${test_gateway} 216 Delete IP Address 10.0.7.7 217 218Add First Octet Threshold IP And Verify 219 [Documentation] Add first octet threshold IP and verify. 220 [Tags] Add_First_Octet_Threshold_IP_And_Verify 221 222 Add IP Address 223.7.7.7 ${test_subnet_mask} ${test_gateway} 223 Delete IP Address 223.7.7.7 224 225Add First Octet Lowest IP And Verify 226 [Documentation] Add first octet lowest IP and verify. 227 [Tags] Add_First_Octet_Lowest_IP_And_Verify 228 229 Add IP Address 1.7.7.7 ${test_subnet_mask} ${test_gateway} 230 Delete IP Address 1.7.7.7 231 232Configure Invalid Netmask 233 [Documentation] Verify error while setting invalid netmask. 234 [Tags] Configure_Invalid_Netmask 235 [Template] Add IP Address 236 237 # ip subnet_mask gateway valid_status_codes 238 ${test_ipv4_addr} ${invalid_netmask} ${test_gateway} ${HTTP_BAD_REQUEST} 239 240Configure Out Of Range Netmask 241 [Documentation] Verify error while setting out of range netmask. 242 [Tags] Configure_Out_Of_Range_Netmask 243 [Template] Add IP Address 244 245 # ip subnet_mask gateway valid_status_codes 246 ${test_ipv4_addr} ${out_of_range_netmask} ${test_gateway} ${HTTP_BAD_REQUEST} 247 248Configure Alpha Netmask 249 [Documentation] Verify error while setting alpha netmask. 250 [Tags] Configure_Alpha_Netmask 251 [Template] Add IP Address 252 253 # ip subnet_mask gateway valid_status_codes 254 ${test_ipv4_addr} ${alpha_netmask} ${test_gateway} ${HTTP_BAD_REQUEST} 255 256Configure More Byte Netmask 257 [Documentation] Verify error while setting more byte netmask. 258 [Tags] Configure_More_Byte_Netmask 259 [Template] Add IP Address 260 261 # ip subnet_mask gateway valid_status_codes 262 ${test_ipv4_addr} ${more_byte_netmask} ${test_gateway} ${HTTP_BAD_REQUEST} 263 264Configure Less Byte Netmask 265 [Documentation] Verify error while setting less byte netmask. 266 [Tags] Configure_Less_Byte_Netmask 267 [Template] Add IP Address 268 269 # ip subnet_mask gateway valid_status_codes 270 ${test_ipv4_addr} ${less_byte_netmask} ${test_gateway} ${HTTP_BAD_REQUEST} 271 272Configure Threshold Netmask And Verify 273 [Documentation] Configure threshold netmask and verify. 274 [Tags] Configure_Threshold_Netmask_And_verify 275 276 Add IP Address ${test_ipv4_addr} ${threshold_netmask} ${test_gateway} 277 Delete IP Address ${test_ipv4_addr} 278 279Configure Lowest Netmask And Verify 280 [Documentation] Configure lowest netmask and verify. 281 [Tags] Configure_Lowest_Netmask_And_verify 282 283 Add IP Address ${test_ipv4_addr} ${lowest_netmask} ${test_gateway} 284 Delete IP Address ${test_ipv4_addr} 285 286Configure Network ID 287 [Documentation] Verify error while configuring network ID. 288 [Tags] Configure_Network_ID 289 [Template] Add IP Address 290 [Teardown] Clear IP Settings On Fail ${network_id} 291 292 # ip subnet_mask gateway valid_status_codes 293 ${network_id} ${test_subnet_mask} ${test_gateway} ${HTTP_BAD_REQUEST} 294 295Configure Less Octet IP 296 [Documentation] Verify error while Configuring less octet IP address. 297 [Tags] Configure_Less_Octet_IP 298 [Template] Add IP Address 299 300 # ip subnet_mask gateway valid_status_codes 301 ${less_octet_ip} ${test_subnet_mask} ${test_gateway} ${HTTP_BAD_REQUEST} 302 303Configure Empty IP 304 [Documentation] Verify error while Configuring empty IP address. 305 [Tags] Configure_Empty_IP 306 [Template] Add IP Address 307 308 # ip subnet_mask gateway valid_status_codes 309 ${EMPTY} ${test_subnet_mask} ${test_gateway} ${HTTP_BAD_REQUEST} 310 311Configure Special Char IP 312 [Documentation] Configure invalid IP address containing special chars. 313 [Tags] Configure_Special_Char_IP 314 [Template] Add IP Address 315 316 # ip subnet_mask gateway valid_status_codes 317 @@@.%%.44.11 ${test_subnet_mask} ${test_gateway} ${HTTP_BAD_REQUEST} 318 319Configure Hexadecimal IP 320 [Documentation] Configure invalid IP address containing hex value. 321 [Tags] Configure_Hexadecimal_IP 322 [Template] Add IP Address 323 324 # ip subnet_mask gateway valid_status_codes 325 ${hex_ip} ${test_subnet_mask} ${test_gateway} ${HTTP_BAD_REQUEST} 326 327Configure Negative Octet IP 328 [Documentation] Configure invalid IP address containing negative octet. 329 [Tags] Configure_Negative_Octet_IP 330 [Template] Add IP Address 331 332 # ip subnet_mask gateway valid_status_codes 333 ${negative_ip} ${test_subnet_mask} ${test_gateway} ${HTTP_BAD_REQUEST} 334 335Configure Incomplete IP For Gateway 336 [Documentation] Configure incomplete IP for gateway and expect an error. 337 [Tags] Configure_Incomplete_IP_For_Gateway 338 [Template] Add IP Address 339 340 # ip subnet_mask gateway valid_status_codes 341 ${test_ipv4_addr} ${test_subnet_mask} ${less_octet_ip} ${HTTP_BAD_REQUEST} 342 343Configure Special Char IP For Gateway 344 [Documentation] Configure special char IP for gateway and expect an error. 345 [Tags] Configure_Special_Char_IP_For_Gateway 346 [Template] Add IP Address 347 348 # ip subnet_mask gateway valid_status_codes 349 ${test_ipv4_addr} ${test_subnet_mask} @@@.%%.44.11 ${HTTP_BAD_REQUEST} 350 351Configure Hexadecimal IP For Gateway 352 [Documentation] Configure hexadecimal IP for gateway and expect an error. 353 [Tags] Configure_Hexadecimal_IP_For_Gateway 354 [Template] Add IP Address 355 356 # ip subnet_mask gateway valid_status_codes 357 ${test_ipv4_addr} ${test_subnet_mask} ${hex_ip} ${HTTP_BAD_REQUEST} 358 359Get DNS Server And Verify 360 [Documentation] Get DNS server via Redfish and verify. 361 [Tags] Get_DNS_Server_And_Verify 362 363 Verify CLI and Redfish Nameservers 364 365Configure DNS Server And Verify 366 [Documentation] Configure DNS server and verify. 367 [Tags] Configure_DNS_Server_And_Verify 368 [Setup] DNS Test Setup Execution 369 [Teardown] Run Keywords 370 ... Configure Static Name Servers AND Test Teardown Execution 371 372 Configure Static Name Servers ${static_name_servers} 373 Verify CLI and Redfish Nameservers 374 375Delete DNS Server And Verify 376 [Documentation] Delete DNS server and verify. 377 [Tags] Delete_DNS_Server_And_Verify 378 [Setup] DNS Test Setup Execution 379 [Teardown] Run Keywords 380 ... Configure Static Name Servers AND Test Teardown Execution 381 382 Delete Static Name Servers 383 Verify CLI and Redfish Nameservers 384 385Configure DNS Server And Check Persistency 386 [Documentation] Configure DNS server and check persistency on reboot. 387 [Tags] Configure_DNS_Server_And_Check_Persistency 388 [Setup] DNS Test Setup Execution 389 [Teardown] Run Keywords 390 ... Configure Static Name Servers AND Test Teardown Execution 391 392 Configure Static Name Servers ${static_name_servers} 393 # Reboot BMC and verify persistency. 394 OBMC Reboot (off) 395 Verify CLI and Redfish Nameservers 396 397Configure Loopback IP For Gateway 398 [Documentation] Configure loopback IP for gateway and expect an error. 399 [Tags] Configure_Loopback_IP_For_Gateway 400 [Template] Add IP Address 401 [Teardown] Clear IP Settings On Fail ${test_ipv4_addr} 402 403 # ip subnet_mask gateway valid_status_codes 404 ${test_ipv4_addr} ${test_subnet_mask} ${loopback_ip} ${HTTP_BAD_REQUEST} 405 406Configure Network ID For Gateway 407 [Documentation] Configure network ID for gateway and expect an error. 408 [Tags] Configure_Network_ID_For_Gateway 409 [Template] Add IP Address 410 [Teardown] Clear IP Settings On Fail ${test_ipv4_addr} 411 412 # ip subnet_mask gateway valid_status_codes 413 ${test_ipv4_addr} ${test_subnet_mask} ${network_id} ${HTTP_BAD_REQUEST} 414 415Configure Multicast IP For Gateway 416 [Documentation] Configure multicast IP for gateway and expect an error. 417 [Tags] Configure_Multicast_IP_For_Gateway 418 [Template] Add IP Address 419 [Teardown] Clear IP Settings On Fail ${test_ipv4_addr} 420 421 # ip subnet_mask gateway valid_status_codes 422 ${test_ipv4_addr} ${test_subnet_mask} ${multicaste_ip} ${HTTP_BAD_REQUEST} 423 424Configure Broadcast IP For Gateway 425 [Documentation] Configure broadcast IP for gateway and expect an error. 426 [Tags] Configure_Broadcast_IP_For_Gateway 427 [Template] Add IP Address 428 [Teardown] Clear IP Settings On Fail ${test_ipv4_addr} 429 430 # ip subnet_mask gateway valid_status_codes 431 ${test_ipv4_addr} ${test_subnet_mask} ${broadcast_ip} ${HTTP_BAD_REQUEST} 432 433Configure Null Value For DNS Server 434 [Documentation] Configure null value for DNS server and expect an error. 435 [Tags] Configure_Null_Value_For_DNS_Server 436 [Setup] DNS Test Setup Execution 437 [Teardown] Run Keywords 438 ... Configure Static Name Servers AND Test Teardown Execution 439 440 Configure Static Name Servers ${null_value} ${HTTP_BAD_REQUEST} 441 442Configure Empty Value For DNS Server 443 [Documentation] Configure empty value for DNS server and expect an error. 444 [Tags] Configure_Empty_Value_For_DNS_Server 445 [Setup] DNS Test Setup Execution 446 [Teardown] Run Keywords 447 ... Configure Static Name Servers AND Test Teardown Execution 448 449 Configure Static Name Servers ${empty_dictionary} ${HTTP_BAD_REQUEST} 450 451Configure String Value For DNS Server 452 [Documentation] Configure string value for DNS server and expect an error. 453 [Tags] Configure_String_Value_For_DNS_Server 454 [Setup] DNS Test Setup Execution 455 [Teardown] Run Keywords 456 ... Configure Static Name Servers AND Test Teardown Execution 457 458 Configure Static Name Servers ${string_value} ${HTTP_BAD_REQUEST} 459 460*** Keywords *** 461 462Test Setup Execution 463 [Documentation] Test setup execution. 464 465 Redfish.Login 466 467 @{network_configurations}= Get Network Configuration 468 Set Test Variable @{network_configurations} 469 470 # Get BMC IP address and prefix length. 471 ${ip_data}= Get BMC IP Info 472 Set Test Variable ${ip_data} 473 474 475Verify Netmask On BMC 476 [Documentation] Verify netmask on BMC. 477 [Arguments] ${netmask} 478 479 # Description of the argument(s): 480 # netmask netmask value to be verified. 481 482 ${prefix_length}= Netmask Prefix Length ${netmask} 483 484 Should Contain Match ${ip_data} */${prefix_length} 485 ... msg=Prefix length does not exist. 486 487Verify IP And Netmask On BMC 488 [Documentation] Verify IP and netmask on BMC. 489 [Arguments] ${ip} ${netmask} 490 491 # Description of the argument(s): 492 # ip IP address to be verified. 493 # netmask netmask value to be verified. 494 495 ${prefix_length}= Netmask Prefix Length ${netmask} 496 @{ip_data}= Get BMC IP Info 497 498 ${ip_with_netmask}= Catenate ${ip}/${prefix_length} 499 Should Contain ${ip_data} ${ip_with_netmask} 500 ... msg=IP and netmask pair does not exist. 501 502Validate Hostname On BMC 503 [Documentation] Verify that the hostname read via Redfish is the same as the 504 ... hostname configured on system. 505 [Arguments] ${hostname} 506 507 # Description of argument(s): 508 # hostname A hostname value which is to be compared to the hostname 509 # configured on system. 510 511 ${sys_hostname}= Get BMC Hostname 512 Should Be Equal ${sys_hostname} ${hostname} 513 ... ignore_case=True msg=Hostname does not exist. 514 515Test Teardown Execution 516 [Documentation] Test teardown execution. 517 518 FFDC On Test Case Fail 519 Redfish.Logout 520 521Clear IP Settings On Fail 522 [Documentation] Clear IP settings on fail. 523 [Arguments] ${ip} 524 525 # Description of argument(s): 526 # ip IP address to be deleted. 527 528 Run Keyword If '${TEST STATUS}' == 'FAIL' 529 ... Delete IP Address ${ip} 530 531 Test Teardown Execution 532 533Verify CLI and Redfish Nameservers 534 [Documentation] Verify that nameservers obtained via Redfish do not 535 ... match those found in /etc/resolv.conf. 536 537 ${redfish_nameservers}= Redfish.Get Attribute ${REDFISH_NW_ETH0_URI} StaticNameServers 538 ${resolve_conf_nameservers}= CLI Get Nameservers 539 Rqprint Vars redfish_nameservers resolve_conf_nameservers 540 541 # Check that the 2 lists are equivalent. 542 ${match}= Evaluate set($redfish_nameservers) == set($resolve_conf_nameservers) 543 Should Be True ${match} 544 ... The nameservers obtained via Redfish do not match those found in /etc/resolv.conf. 545 546 547Configure Static Name Servers 548 [Documentation] Configure DNS server on BMC. 549 [Arguments] ${static_name_servers}=${original_nameservers} 550 ... ${valid_status_codes}=${HTTP_OK} 551 552 # Description of the argument(s): 553 # static_name_servers A list of static name server IPs to be 554 # configured on the BMC. 555 556 # Currently BMC is sending 500 response code instead of 400 for invalid scenarios. 557 Redfish.Patch ${REDFISH_NW_ETH0_URI} body={'StaticNameServers': ${static_name_servers}} 558 ... valid_status_codes=[${valid_status_codes}, ${HTTP_INTERNAL_SERVER_ERROR}] 559 560 # Patch operation takes 1 to 3 seconds to set new value. 561 Sleep 3s 562 563 # Check if newly added DNS server is configured on BMC. 564 ${cli_nameservers}= CLI Get Nameservers 565 ${cmd_status}= Run Keyword And Return Status 566 ... List Should Contain Sub List ${cli_nameservers} ${static_name_servers} 567 568 Run Keyword If '${valid_status_codes}' == '${HTTP_OK}' 569 ... Should Be True ${cmd_status} == ${True} 570 ... ELSE Should Be True ${cmd_status} == ${False} 571 572Delete Static Name Servers 573 [Documentation] Delete static name servers. 574 575 Configure Static Name Servers @{EMPTY} 576 577 # Check if all name servers deleted on BMC. 578 ${nameservers}= CLI Get Nameservers 579 Should Be Empty ${nameservers} 580 581DNS Test Setup Execution 582 [Documentation] Do DNS test setup execution. 583 584 Redfish.Login 585 586 ${original_nameservers}= Redfish.Get Attribute ${REDFISH_NW_ETH0_URI} StaticNameServers 587 Rprint Vars original_nameservers 588 # Set suite variables to trigger restoration during teardown. 589 Set Suite Variable ${original_nameservers} 590