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 11Suite Setup Suite Setup Execution 12Suite Teardown Suite Teardown Execution 13Test Setup Test Setup Execution 14Test Teardown Test Teardown Execution 15 16Force Tags Bmc_Network_Conf 17 18*** Variables *** 19${test_hostname} openbmc 20${test_ipv4_addr} 10.7.7.7 21${test_ipv4_invalid_addr} 0.0.1.a 22${test_subnet_mask} 255.255.0.0 23${broadcast_ip} 10.7.7.255 24${loopback_ip} 127.0.0.2 25${multicast_ip} 224.6.6.6 26${out_of_range_ip} 10.7.7.256 27${test_ipv4_addr2} 10.7.7.8 28 29# Valid netmask is 4 bytes long and has continuous block of 1s. 30# Maximum valid value in each octet is 255 and least value is 0. 31# 253 is not valid, as binary value is 11111101. 32${invalid_netmask} 255.255.253.0 33${alpha_netmask} ff.ff.ff.ff 34# Maximum value of octet in netmask is 255. 35${out_of_range_netmask} 255.256.255.0 36${more_byte_netmask} 255.255.255.0.0 37${less_byte_netmask} 255.255.255 38${threshold_netmask} 255.255.255.255 39${lowest_netmask} 128.0.0.0 40 41# There will be 4 octets in IP address (e.g. xx.xx.xx.xx) 42# but trying to configure xx.xx.xx 43${less_octet_ip} 10.3.36 44 45# For the address 10.6.6.6, the 10.6.6.0 portion describes the 46# network ID and the 6 describe the host. 47 48${network_id} 10.7.7.0 49${hex_ip} 0xa.0xb.0xc.0xd 50${negative_ip} 10.-7.-7.7 51@{static_name_servers} 10.5.5.5 52@{null_value} null 53@{empty_dictionary} {} 54@{string_value} aa.bb.cc.dd 55 56*** Test Cases *** 57 58Get IP Address And Verify 59 [Documentation] Get IP Address And Verify. 60 [Tags] Get_IP_Address_And_Verify 61 62 FOR ${network_configuration} IN @{network_configurations} 63 Verify IP On BMC ${network_configuration['Address']} 64 END 65 66Get Netmask And Verify 67 [Documentation] Get Netmask And Verify. 68 [Tags] Get_Netmask_And_Verify 69 70 FOR ${network_configuration} IN @{network_configurations} 71 Verify Netmask On BMC ${network_configuration['SubnetMask']} 72 END 73 74Get Gateway And Verify 75 [Documentation] Get gateway and verify it's existence on the BMC. 76 [Tags] Get_Gateway_And_Verify 77 78 FOR ${network_configuration} IN @{network_configurations} 79 Verify Gateway On BMC ${network_configuration['Gateway']} 80 END 81 82Get MAC Address And Verify 83 [Documentation] Get MAC address and verify it's existence on the BMC. 84 [Tags] Get_MAC_Address_And_Verify 85 86 ${active_channel_config}= Get Active Channel Config 87 ${ethernet_interface}= Set Variable ${active_channel_config['${CHANNEL_NUMBER}']['name']} 88 89 ${resp}= Redfish.Get ${REDFISH_NW_ETH_IFACE}${ethernet_interface} 90 ${macaddr}= Get From Dictionary ${resp.dict} MACAddress 91 Validate MAC On BMC ${macaddr} 92 93Verify All Configured IP And Netmask 94 [Documentation] Verify all configured IP and netmask on BMC. 95 [Tags] Verify_All_Configured_IP_And_Netmask 96 97 FOR ${network_configuration} IN @{network_configurations} 98 Verify IP And Netmask On BMC ${network_configuration['Address']} 99 ... ${network_configuration['SubnetMask']} 100 END 101 102Get Hostname And Verify 103 [Documentation] Get hostname via Redfish and verify. 104 [Tags] Get_Hostname_And_Verify 105 106 ${hostname}= Redfish_Utils.Get Attribute ${REDFISH_NW_PROTOCOL_URI} HostName 107 108 Validate Hostname On BMC ${hostname} 109 110Configure Hostname And Verify 111 [Documentation] Configure hostname via Redfish and verify. 112 [Tags] Configure_Hostname_And_Verify 113 [Teardown] Run Keywords 114 ... Configure Hostname ${hostname} AND Validate Hostname On BMC ${hostname} 115 116 ${hostname}= Redfish_Utils.Get Attribute ${REDFISH_NW_PROTOCOL_URI} HostName 117 118 Configure Hostname ${test_hostname} 119 Validate Hostname On BMC ${test_hostname} 120 121 # Verify configured hostname via Redfish. 122 ${new_hostname}= Redfish_Utils.Get Attribute ${REDFISH_NW_PROTOCOL_URI} HostName 123 Should Be Equal ${new_hostname} ${test_hostname} 124 125Configure Invalid HostName And Verify 126 [Documentation] Configure invalid hostname via Redfish and verify. 127 [Tags] Configure_Invalid_HostName_And_Verify 128 [Template] Configure Hostname 129 130 # hostname status_code 131 !#@ [${HTTP_BAD_REQUEST}] 132 133Configure Empty HostName And Verify If LocalHost Is Assigned 134 [Documentation] Configure empty hostname and verify if localHost is assigned. 135 [Tags] Configure_Empty_HostName_And_Verify_If_LocalHost_Is_Assigned 136 [Teardown] Run Keywords 137 ... Configure Hostname ${hostname} AND Validate Hostname On BMC ${hostname} 138 139 ${hostname}= Redfish_Utils.Get Attribute ${REDFISH_NW_PROTOCOL_URI} HostName 140 141 Configure Hostname ${EMPTY} 142 Validate Hostname On BMC localhost 143 144 # Verify configured hostname via Redfish. 145 ${new_hostname}= Redfish_Utils.Get Attribute ${REDFISH_NW_PROTOCOL_URI} HostName 146 Should Be Equal ${new_hostname} localhost 147 148Add Valid IPv4 Address And Verify 149 [Documentation] Add IPv4 Address via Redfish and verify. 150 [Tags] Add_Valid_IPv4_Address_And_Verify 151 [Teardown] Run Keywords 152 ... Delete IP Address ${test_ipv4_addr} AND Test Teardown Execution 153 154 Add IP Address ${test_ipv4_addr} ${test_subnet_mask} ${test_gateway} 155 156Add Invalid IPv4 Address And Verify 157 [Documentation] Add Invalid IPv4 Address via Redfish and verify. 158 [Tags] Add_Invalid_IPv4_Address_And_Verify 159 160 Add IP Address ${test_ipv4_invalid_addr} ${test_subnet_mask} 161 ... ${test_gateway} valid_status_codes=${HTTP_BAD_REQUEST} 162 163Configure Out Of Range IP 164 [Documentation] Configure out-of-range IP address. 165 [Tags] Configure_Out_Of_Range_IP 166 [Template] Add IP Address 167 168 # ip subnet_mask gateway valid_status_codes 169 ${out_of_range_ip} ${test_subnet_mask} ${test_gateway} ${HTTP_BAD_REQUEST} 170 171Configure Broadcast IP 172 [Documentation] Configure broadcast IP address. 173 [Tags] Configure_Broadcast_IP 174 [Template] Add IP Address 175 [Teardown] Clear IP Settings On Fail ${broadcast_ip} 176 177 # ip subnet_mask gateway valid_status_codes 178 ${broadcast_ip} ${test_subnet_mask} ${test_gateway} ${HTTP_BAD_REQUEST} 179 180Configure Multicast IP 181 [Documentation] Configure multicast IP address. 182 [Tags] Configure_Multicast_IP 183 [Template] Add IP Address 184 [Teardown] Clear IP Settings On Fail ${multicast_ip} 185 186 # ip subnet_mask gateway valid_status_codes 187 ${multicast_ip} ${test_subnet_mask} ${test_gateway} ${HTTP_BAD_REQUEST} 188 189Configure Loopback IP 190 [Documentation] Configure loopback IP address. 191 [Tags] Configure_Loopback_IP 192 [Template] Add IP Address 193 [Teardown] Clear IP Settings On Fail ${loopback_ip} 194 195 # ip subnet_mask gateway valid_status_codes 196 ${loopback_ip} ${test_subnet_mask} ${test_gateway} ${HTTP_BAD_REQUEST} 197 198Add Valid IPv4 Address And Check Persistency 199 [Documentation] Add IPv4 address and check persistency. 200 [Tags] Add_Valid_IPv4_Address_And_Check_Persistency 201 [Teardown] Run Keywords 202 ... Delete IP Address ${test_ipv4_addr} AND Test Teardown Execution 203 204 Add IP Address ${test_ipv4_addr} ${test_subnet_mask} ${test_gateway} 205 206 # Reboot BMC and verify persistency. 207 Redfish OBMC Reboot (off) stack_mode=skip 208 Redfish.Login 209 Verify IP On BMC ${test_ipv4_addr} 210 Verify IP On Redfish URI ${test_ipv4_addr} 211 212 213Add Fourth Octet Threshold IP And Verify 214 [Documentation] Add fourth octet threshold IP and verify. 215 [Tags] Add_Fourth_Octet_Threshold_IP_And_Verify 216 [Teardown] Run Keywords 217 ... Delete IP Address 10.7.7.254 AND Test Teardown Execution 218 219 Add IP Address 10.7.7.254 ${test_subnet_mask} ${test_gateway} 220 221Add Fourth Octet Lowest IP And Verify 222 [Documentation] Add fourth octet lowest IP and verify. 223 [Tags] Add_Fourth_Octet_Lowest_IP_And_Verify 224 [Teardown] Run Keywords 225 ... Delete IP Address 10.7.7.1 AND Test Teardown Execution 226 227 Add IP Address 10.7.7.1 ${test_subnet_mask} ${test_gateway} 228 229Add Third Octet Threshold IP And Verify 230 [Documentation] Add third octet threshold IP and verify. 231 [Tags] Add_Third_Octet_Threshold_IP_And_Verify 232 [Teardown] Run Keywords 233 ... Delete IP Address 10.7.255.7 AND Test Teardown Execution 234 235 Add IP Address 10.7.255.7 ${test_subnet_mask} ${test_gateway} 236 237Add Third Octet Lowest IP And Verify 238 [Documentation] Add third octet lowest IP and verify. 239 [Tags] Add_Third_Octet_Lowest_IP_And_Verify 240 [Teardown] Run Keywords 241 ... Delete IP Address 10.7.0.7 AND Test Teardown Execution 242 243 Add IP Address 10.7.0.7 ${test_subnet_mask} ${test_gateway} 244 245Add Second Octet Threshold IP And Verify 246 [Documentation] Add second octet threshold IP and verify. 247 [Tags] Add_Second_Octet_Threshold_IP_And_Verify 248 [Teardown] Run Keywords 249 ... Delete IP Address 10.255.7.7 AND Test Teardown Execution 250 251 Add IP Address 10.255.7.7 ${test_subnet_mask} ${test_gateway} 252 253Add Second Octet Lowest IP And Verify 254 [Documentation] Add second octet lowest IP and verify. 255 [Tags] Add_Second_Octet_Lowest_IP_And_Verify 256 [Teardown] Run Keywords 257 ... Delete IP Address 10.0.7.7 AND Test Teardown Execution 258 259 Add IP Address 10.0.7.7 ${test_subnet_mask} ${test_gateway} 260 261Add First Octet Threshold IP And Verify 262 [Documentation] Add first octet threshold IP and verify. 263 [Tags] Add_First_Octet_Threshold_IP_And_Verify 264 [Teardown] Run Keywords 265 ... Delete IP Address 223.7.7.7 AND Test Teardown Execution 266 267 Add IP Address 223.7.7.7 ${test_subnet_mask} ${test_gateway} 268 269Add First Octet Lowest IP And Verify 270 [Documentation] Add first octet lowest IP and verify. 271 [Tags] Add_First_Octet_Lowest_IP_And_Verify 272 [Teardown] Run Keywords 273 ... Delete IP Address 1.7.7.7 AND Test Teardown Execution 274 275 Add IP Address 1.7.7.7 ${test_subnet_mask} ${test_gateway} 276 277Configure Invalid Netmask 278 [Documentation] Verify error while setting invalid netmask. 279 [Tags] Configure_Invalid_Netmask 280 [Template] Add IP Address 281 282 # ip subnet_mask gateway valid_status_codes 283 ${test_ipv4_addr} ${invalid_netmask} ${test_gateway} ${HTTP_BAD_REQUEST} 284 285Configure Out Of Range Netmask 286 [Documentation] Verify error while setting out of range netmask. 287 [Tags] Configure_Out_Of_Range_Netmask 288 [Template] Add IP Address 289 290 # ip subnet_mask gateway valid_status_codes 291 ${test_ipv4_addr} ${out_of_range_netmask} ${test_gateway} ${HTTP_BAD_REQUEST} 292 293Configure Alpha Netmask 294 [Documentation] Verify error while setting alpha netmask. 295 [Tags] Configure_Alpha_Netmask 296 [Template] Add IP Address 297 298 # ip subnet_mask gateway valid_status_codes 299 ${test_ipv4_addr} ${alpha_netmask} ${test_gateway} ${HTTP_BAD_REQUEST} 300 301Configure More Byte Netmask 302 [Documentation] Verify error while setting more byte netmask. 303 [Tags] Configure_More_Byte_Netmask 304 [Template] Add IP Address 305 306 # ip subnet_mask gateway valid_status_codes 307 ${test_ipv4_addr} ${more_byte_netmask} ${test_gateway} ${HTTP_BAD_REQUEST} 308 309Configure Less Byte Netmask 310 [Documentation] Verify error while setting less byte netmask. 311 [Tags] Configure_Less_Byte_Netmask 312 [Template] Add IP Address 313 314 # ip subnet_mask gateway valid_status_codes 315 ${test_ipv4_addr} ${less_byte_netmask} ${test_gateway} ${HTTP_BAD_REQUEST} 316 317Configure Threshold Netmask And Verify 318 [Documentation] Configure threshold netmask and verify. 319 [Tags] Configure_Threshold_Netmask_And_Verify 320 [Teardown] Run Keywords 321 ... Delete IP Address ${test_ipv4_addr} AND Test Teardown Execution 322 323 Add IP Address ${test_ipv4_addr} ${threshold_netmask} ${test_gateway} 324 325Configure Lowest Netmask And Verify 326 [Documentation] Configure lowest netmask and verify. 327 [Tags] Configure_Lowest_Netmask_And_Verify 328 [Teardown] Run Keywords 329 ... Delete IP Address ${test_ipv4_addr} AND Test Teardown Execution 330 331 Add IP Address ${test_ipv4_addr} ${lowest_netmask} ${test_gateway} 332 333Configure Network ID 334 [Documentation] Verify error while configuring network ID. 335 [Tags] Configure_Network_ID 336 [Template] Add IP Address 337 [Teardown] Clear IP Settings On Fail ${network_id} 338 339 # ip subnet_mask gateway valid_status_codes 340 ${network_id} ${test_subnet_mask} ${test_gateway} ${HTTP_BAD_REQUEST} 341 342Configure Less Octet IP 343 [Documentation] Verify error while Configuring less octet IP address. 344 [Tags] Configure_Less_Octet_IP 345 [Template] Add IP Address 346 347 # ip subnet_mask gateway valid_status_codes 348 ${less_octet_ip} ${test_subnet_mask} ${test_gateway} ${HTTP_BAD_REQUEST} 349 350Configure Empty IP 351 [Documentation] Verify error while Configuring empty IP address. 352 [Tags] Configure_Empty_IP 353 [Template] Add IP Address 354 355 # ip subnet_mask gateway valid_status_codes 356 ${EMPTY} ${test_subnet_mask} ${test_gateway} ${HTTP_BAD_REQUEST} 357 358Configure Special Char IP 359 [Documentation] Configure invalid IP address containing special chars. 360 [Tags] Configure_Special_Char_IP 361 [Template] Add IP Address 362 363 # ip subnet_mask gateway valid_status_codes 364 @@@.%%.44.11 ${test_subnet_mask} ${test_gateway} ${HTTP_BAD_REQUEST} 365 366Configure Hexadecimal IP 367 [Documentation] Configure invalid IP address containing hex value. 368 [Tags] Configure_Hexadecimal_IP 369 [Template] Add IP Address 370 371 # ip subnet_mask gateway valid_status_codes 372 ${hex_ip} ${test_subnet_mask} ${test_gateway} ${HTTP_BAD_REQUEST} 373 374Configure Negative Octet IP 375 [Documentation] Configure invalid IP address containing negative octet. 376 [Tags] Configure_Negative_Octet_IP 377 [Template] Add IP Address 378 379 # ip subnet_mask gateway valid_status_codes 380 ${negative_ip} ${test_subnet_mask} ${test_gateway} ${HTTP_BAD_REQUEST} 381 382Configure Incomplete IP For Gateway 383 [Documentation] Configure incomplete IP for gateway and expect an error. 384 [Tags] Configure_Incomplete_IP_For_Gateway 385 [Template] Add IP Address 386 387 # ip subnet_mask gateway valid_status_codes 388 ${test_ipv4_addr} ${test_subnet_mask} ${less_octet_ip} ${HTTP_BAD_REQUEST} 389 390Configure Special Char IP For Gateway 391 [Documentation] Configure special char IP for gateway and expect an error. 392 [Tags] Configure_Special_Char_IP_For_Gateway 393 [Template] Add IP Address 394 395 # ip subnet_mask gateway valid_status_codes 396 ${test_ipv4_addr} ${test_subnet_mask} @@@.%%.44.11 ${HTTP_BAD_REQUEST} 397 398Configure Hexadecimal IP For Gateway 399 [Documentation] Configure hexadecimal IP for gateway and expect an error. 400 [Tags] Configure_Hexadecimal_IP_For_Gateway 401 [Template] Add IP Address 402 403 # ip subnet_mask gateway valid_status_codes 404 ${test_ipv4_addr} ${test_subnet_mask} ${hex_ip} ${HTTP_BAD_REQUEST} 405 406Get DNS Server And Verify 407 [Documentation] Get DNS server via Redfish and verify. 408 [Tags] Get_DNS_Server_And_Verify 409 410 Verify CLI and Redfish Nameservers 411 412Configure DNS Server And Verify 413 [Documentation] Configure DNS server and verify. 414 [Tags] Configure_DNS_Server_And_Verify 415 [Setup] DNS Test Setup Execution 416 [Teardown] Run Keywords 417 ... Configure Static Name Servers AND Test Teardown Execution 418 419 Configure Static Name Servers ${static_name_servers} 420 Verify CLI and Redfish Nameservers 421 422Delete DNS Server And Verify 423 [Documentation] Delete DNS server and verify. 424 [Tags] Delete_DNS_Server_And_Verify 425 [Setup] DNS Test Setup Execution 426 [Teardown] Run Keywords 427 ... Configure Static Name Servers AND Test Teardown Execution 428 429 Delete Static Name Servers 430 Verify CLI and Redfish Nameservers 431 432Configure DNS Server And Check Persistency 433 [Documentation] Configure DNS server and check persistency on reboot. 434 [Tags] Configure_DNS_Server_And_Check_Persistency 435 [Setup] DNS Test Setup Execution 436 [Teardown] Run Keywords 437 ... Configure Static Name Servers AND Test Teardown Execution 438 439 Configure Static Name Servers ${static_name_servers} 440 # Reboot BMC and verify persistency. 441 Redfish OBMC Reboot (off) stack_mode=skip 442 Redfish.Login 443 Verify CLI and Redfish Nameservers 444 445Configure Loopback IP For Gateway 446 [Documentation] Configure loopback IP for gateway and expect an error. 447 [Tags] Configure_Loopback_IP_For_Gateway 448 [Template] Add IP Address 449 [Teardown] Clear IP Settings On Fail ${test_ipv4_addr} 450 451 # ip subnet_mask gateway valid_status_codes 452 ${test_ipv4_addr} ${test_subnet_mask} ${loopback_ip} ${HTTP_BAD_REQUEST} 453 454Configure Network ID For Gateway 455 [Documentation] Configure network ID for gateway and expect an error. 456 [Tags] Configure_Network_ID_For_Gateway 457 [Template] Add IP Address 458 [Teardown] Clear IP Settings On Fail ${test_ipv4_addr} 459 460 # ip subnet_mask gateway valid_status_codes 461 ${test_ipv4_addr} ${test_subnet_mask} ${network_id} ${HTTP_BAD_REQUEST} 462 463Configure Multicast IP For Gateway 464 [Documentation] Configure multicast IP for gateway and expect an error. 465 [Tags] Configure_Multicast_IP_For_Gateway 466 [Template] Add IP Address 467 [Teardown] Clear IP Settings On Fail ${test_ipv4_addr} 468 469 # ip subnet_mask gateway valid_status_codes 470 ${test_ipv4_addr} ${test_subnet_mask} ${multicast_ip} ${HTTP_BAD_REQUEST} 471 472Configure Broadcast IP For Gateway 473 [Documentation] Configure broadcast IP for gateway and expect an error. 474 [Tags] Configure_Broadcast_IP_For_Gateway 475 [Template] Add IP Address 476 [Teardown] Clear IP Settings On Fail ${test_ipv4_addr} 477 478 # ip subnet_mask gateway valid_status_codes 479 ${test_ipv4_addr} ${test_subnet_mask} ${broadcast_ip} ${HTTP_BAD_REQUEST} 480 481Configure Null Value For DNS Server 482 [Documentation] Configure null value for DNS server and expect an error. 483 [Tags] Configure_Null_Value_For_DNS_Server 484 [Setup] DNS Test Setup Execution 485 [Teardown] Run Keywords 486 ... Configure Static Name Servers AND Test Teardown Execution 487 488 Configure Static Name Servers ${null_value} ${HTTP_BAD_REQUEST} 489 490Configure Empty Value For DNS Server 491 [Documentation] Configure empty value for DNS server and expect an error. 492 [Tags] Configure_Empty_Value_For_DNS_Server 493 [Setup] DNS Test Setup Execution 494 [Teardown] Run Keywords 495 ... Configure Static Name Servers AND Test Teardown Execution 496 497 Configure Static Name Servers ${empty_dictionary} ${HTTP_BAD_REQUEST} 498 499Configure String Value For DNS Server 500 [Documentation] Configure string value for DNS server and expect an error. 501 [Tags] Configure_String_Value_For_DNS_Server 502 [Setup] DNS Test Setup Execution 503 [Teardown] Run Keywords 504 ... Configure Static Name Servers AND Test Teardown Execution 505 506 Configure Static Name Servers ${string_value} ${HTTP_BAD_REQUEST} 507 508Modify IPv4 Address And Verify 509 [Documentation] Modify IP address via Redfish and verify. 510 [Tags] Modify_IPv4_Address_And_Verify 511 [Teardown] Run Keywords 512 ... Delete IP Address ${test_ipv4_addr2} AND Test Teardown Execution 513 514 Add IP Address ${test_ipv4_addr} ${test_subnet_mask} ${test_gateway} 515 516 Update IP Address ${test_ipv4_addr} ${test_ipv4_addr2} ${test_subnet_mask} ${test_gateway} 517 518Verify Modifying IP Address Multiple Times 519 [Documentation] Verify modifying IP address multiple times. 520 [Tags] Verify_Modifying_IP_Address_Multiple_Times 521 [Teardown] Run Keywords 522 ... Delete IP Address ${test_ipv4_addr} AND Test Teardown Execution 523 524 Add IP Address ${test_ipv4_addr} ${test_subnet_mask} ${test_gateway} 525 Update IP Address ${test_ipv4_addr} ${test_ipv4_addr2} ${test_subnet_mask} ${test_gateway} 526 Update IP Address ${test_ipv4_addr2} ${test_ipv4_addr} ${test_subnet_mask} ${test_gateway} 527 528Configure Invalid Values For DNS Server 529 [Documentation] Configure invalid values for DNS server and expect an error. 530 [Tags] Configure_Invalid_Values_For_DNS_Server 531 [Setup] DNS Test Setup Execution 532 [Template] Configure Static Name Servers 533 [Teardown] Run Keywords 534 ... Configure Static Name Servers AND Test Teardown Execution 535 536 # static_name_servers valid_status_codes 537 0xa.0xb.0xc.0xd ${HTTP_BAD_REQUEST} 538 10.-7.-7.-7 ${HTTP_BAD_REQUEST} 539 10.3.36 ${HTTP_BAD_REQUEST} 540 @@@.%%.44.11 ${HTTP_BAD_REQUEST} 541 542 543Config Multiple DNS Servers And Verify 544 [Documentation] Config multiple DNS servers and verify. 545 [Tags] Config_Multiple_DNS_Servers_And_Verify 546 [Setup] DNS Test Setup Execution 547 [Teardown] Run Keywords 548 ... Configure Static Name Servers AND Test Teardown Execution 549 550 @{list_name_servers}= Create List 10.5.5.10 10.20.5.10 10.5.6.7 551 Configure Static Name Servers ${list_name_servers} 552 Verify CLI and Redfish Nameservers 553 554 555Configure And Verify Multiple Static IPv4 Addresses 556 [Documentation] Configure multiple static ipv4 address via Redfish and verify. 557 [Tags] Configure_And_Verify_Multiple_Static_IPv4_Addresses 558 [Teardown] Run Keywords Delete Multiple Static IPv4 Addresses ${test_ipv4_addresses} 559 ... AND Test Teardown Execution 560 561 ${test_ipv4_addresses}= Create List ${test_ipv4_addr} ${test_ipv4_addr2} 562 Configure Multiple Static IPv4 Addresses ${test_ipv4_addresses} ${test_subnet_mask} ${test_gateway} 563 564 565Configure Multiple Static IPv4 Addresses And Check Persistency 566 [Documentation] Configure multiple static ipv4 address via Redfish and check persistency. 567 [Tags] Configure_Multiple_Static_IPv4_Addresses_And_Check_Persistency 568 [Teardown] Run Keywords Delete Multiple Static IPv4 Addresses ${test_ipv4_addresses} 569 ... AND Test Teardown Execution 570 571 ${test_ipv4_addresses}= Create List ${test_ipv4_addr} ${test_ipv4_addr2} 572 Configure Multiple Static IPv4 Addresses ${test_ipv4_addresses} ${test_subnet_mask} ${test_gateway} 573 574 # Reboot BMC and verify persistency. 575 Redfish OBMC Reboot (off) stack_mode=skip 576 Redfish.Login 577 FOR ${ip} IN @{test_ipv4_addresses} 578 Verify IP And Netmask On BMC ${ip} ${test_subnet_mask} 579 Verify IP On Redfish URI ${ip} 580 END 581 582 583Configure And Verify Multiple IPv4 Addresses 584 [Documentation] Configure multiple IPv4 addresses and verify. 585 [Tags] Configure_And_Verify_Multiple_IPv4_Addresses 586 [Teardown] Run Keywords 587 ... Delete IP Address ${test_ipv4_addr} AND Delete IP Address ${test_ipv4_addr2} 588 ... AND Test Teardown Execution 589 590 ${ip1}= Create dictionary Address=${test_ipv4_addr} 591 ... SubnetMask=255.255.0.0 Gateway=${test_gateway} 592 ${ip2}= Create dictionary Address=${test_ipv4_addr2} 593 ... SubnetMask=255.255.252.0 Gateway=${test_gateway} 594 595 ${empty_dict}= Create Dictionary 596 ${patch_list}= Create List 597 ${network_configurations}= Get Network Configuration 598 ${num_entries}= Get Length ${network_configurations} 599 600 FOR ${INDEX} IN RANGE 0 ${num_entries} 601 Append To List ${patch_list} ${empty_dict} 602 END 603 604 # We need not check for existence of IP on BMC while adding. 605 Append To List ${patch_list} ${ip1} ${ip2} 606 ${payload}= Create Dictionary IPv4StaticAddresses=${patch_list} 607 ${active_channel_config}= Get Active Channel Config 608 ${ethernet_interface}= Set Variable ${active_channel_config['${CHANNEL_NUMBER}']['name']} 609 Redfish.patch ${REDFISH_NW_ETH_IFACE}${ethernet_interface} body=&{payload} 610 ... valid_status_codes=[${HTTP_OK}, ${HTTP_NO_CONTENT}] 611 612 # Note: Network restart takes around 15-18s after patch request processing. 613 Sleep ${NETWORK_TIMEOUT}s 614 Wait For Host To Ping ${OPENBMC_HOST} ${NETWORK_TIMEOUT} 615 Verify IP On BMC ${test_ipv4_addr} 616 Verify IP On BMC ${test_ipv4_addr2} 617 618 619Config Multiple DNS Servers And Check Persistency 620 [Documentation] Config multiple DNS and check persistency. 621 [Tags] Config_Multiple_DNS_Servers_And_Check_Persistency 622 [Setup] DNS Test Setup Execution 623 [Teardown] Run Keywords 624 ... Configure Static Name Servers AND Test Teardown Execution 625 626 @{list_name_servers}= Create List 10.5.5.10 10.20.5.10 10.5.6.7 627 Configure Static Name Servers ${list_name_servers} 628 629 # Reboot BMC and verify persistency. 630 Redfish OBMC Reboot (off) stack_mode=skip 631 Redfish.Login 632 Verify CLI and Redfish Nameservers 633 634 635Configure Static IP Without Using Gateway And Verify 636 [Documentation] Configure static IP without using gateway and verify error. 637 [Tags] Configure_Static_IP_Without_Using_Gateway_And_Verify 638 639 ${ip}= Create dictionary Address=${test_ipv4_addr} 640 ... SubnetMask=${test_subnet_mask} 641 ${empty_dict}= Create Dictionary 642 ${patch_list}= Create List 643 ${network_configurations}= Get Network Configuration 644 645 ${num_entries}= Get Length ${network_configurations} 646 FOR ${INDEX} IN RANGE 0 ${num_entries} 647 Append To List ${patch_list} ${empty_dict} 648 END 649 650 # We need not check for existence of IP on BMC while adding. 651 Append To List ${patch_list} ${ip} 652 ${payload}= Create Dictionary IPv4StaticAddresses=${patch_list} 653 ${active_channel_config}= Get Active Channel Config 654 ${ethernet_interface}= Set Variable ${active_channel_config['${CHANNEL_NUMBER}']['name']} 655 Redfish.patch ${REDFISH_NW_ETH_IFACE}${ethernet_interface} 656 ... body=&{payload} valid_status_codes=[${HTTP_BAD_REQUEST}] 657 658 659Test Network Response On Specified Host State 660 [Documentation] Verifying the BMC network response when host is on and off. 661 [Tags] Test_Network_Response_On_Specified_Host_State 662 [Template] Verify Network Response On Specified Host State 663 664 # host_state 665 on 666 off 667 668 669*** Keywords *** 670 671Test Setup Execution 672 [Documentation] Test setup execution. 673 674 Redfish.Login 675 676 @{network_configurations}= Get Network Configuration 677 Set Test Variable @{network_configurations} 678 679 # Get BMC IP address and prefix length. 680 ${ip_data}= Get BMC IP Info 681 Set Test Variable ${ip_data} 682 683 684Verify Netmask On BMC 685 [Documentation] Verify netmask on BMC. 686 [Arguments] ${netmask} 687 688 # Description of the argument(s): 689 # netmask netmask value to be verified. 690 691 ${prefix_length}= Netmask Prefix Length ${netmask} 692 693 Should Contain Match ${ip_data} */${prefix_length} 694 ... msg=Prefix length does not exist. 695 696Verify IP And Netmask On BMC 697 [Documentation] Verify IP and netmask on BMC. 698 [Arguments] ${ip} ${netmask} 699 700 # Description of the argument(s): 701 # ip IP address to be verified. 702 # netmask netmask value to be verified. 703 704 ${prefix_length}= Netmask Prefix Length ${netmask} 705 @{ip_data}= Get BMC IP Info 706 707 ${ip_with_netmask}= Catenate ${ip}/${prefix_length} 708 Should Contain ${ip_data} ${ip_with_netmask} 709 ... msg=IP and netmask pair does not exist. 710 711Test Teardown Execution 712 [Documentation] Test teardown execution. 713 714 FFDC On Test Case Fail 715 Redfish.Logout 716 717Clear IP Settings On Fail 718 [Documentation] Clear IP settings on fail. 719 [Arguments] ${ip} 720 721 # Description of argument(s): 722 # ip IP address to be deleted. 723 724 Run Keyword If '${TEST STATUS}' == 'FAIL' 725 ... Delete IP Address ${ip} 726 727 Test Teardown Execution 728 729Verify CLI and Redfish Nameservers 730 [Documentation] Verify that nameservers obtained via Redfish do not 731 ... match those found in /etc/resolv.conf. 732 733 ${active_channel_config}= Get Active Channel Config 734 ${ethernet_interface}= Set Variable ${active_channel_config['${CHANNEL_NUMBER}']['name']} 735 736 ${redfish_nameservers}= Redfish.Get Attribute 737 ... ${REDFISH_NW_ETH_IFACE}${ethernet_interface} StaticNameServers 738 ${resolve_conf_nameservers}= CLI Get Nameservers 739 Rqprint Vars redfish_nameservers resolve_conf_nameservers 740 741 List Should Contain Sub List ${resolve_conf_nameservers} ${redfish_nameservers} 742 ... msg=The nameservers obtained via Redfish do not match those found in /etc/resolv.conf. 743 744Suite Setup Execution 745 [Documentation] Do suite setup execution. 746 747 # - Get DHCP IPv4 enabled/disabled status from redfish managers URI 748 # - If DHCP IPv4 is enabled , 749 # - Get DHCP IPv4 settings - ip address, gateway, subnetmask 750 # - And set the same as static IP address 751 752 Redfish.Login 753 ${DHCPEnabled}= Get IPv4 DHCP Enabled Status ${CHANNEL_NUMBER} 754 Set Suite Variable ${DHCPEnabled} 755 756 ${ip_addr} ${gateway} ${subnetmask}= Run Keyword If ${DHCPEnabled}==True 757 ... Get DHCP IP Info 758 759 Run Keyword If ${DHCPEnabled}==True 760 ... Add IP Address ${ip_addr} ${subnetmask} ${gateway} 761 762 ${test_gateway}= Get BMC Default Gateway 763 Set Suite Variable ${test_gateway} 764 765 766Suite Teardown Execution 767 [Documentation] Do suite teardown execution. 768 769 # - If the DHCP IPv4 is enabled before suite setup execution 770 # - Restore the DHCP IPv4 to enabled state 771 772 Redfish.Login 773 Run Keyword If ${DHCPEnabled}==True 774 ... Enable IPv4 DHCP Settings 775 776 777Configure Multiple Static IPv4 Addresses 778 [Documentation] Configure multiple static ipv4 address via Redfish and verify. 779 [Arguments] ${ip_addreses} ${subnet_mask} ${gateway} 780 781 # Description of argument(s): 782 # ip_addreses A list of IP addresses to be added (e.g.["10.7.7.7"]). 783 # subnet_mask Subnet mask for the IP to be added (e.g. "255.255.0.0"). 784 # gateway Gateway for the IP to be added (e.g. "10.7.7.1"). 785 786 FOR ${ip} IN @{ip_addreses} 787 Add IP Address ${ip} ${subnet_mask} ${gateway} 788 END 789 Validate Network Config On BMC 790 791 792Delete Multiple Static IPv4 Addresses 793 [Documentation] Delete multiple static ipv4 address via Redfish. 794 [Arguments] ${ip_addreses} 795 796 # Description of argument(s): 797 # ip_addreses A list of IP addresses to be deleted (e.g.["10.7.7.7"]). 798 799 FOR ${ip} IN @{ip_addreses} 800 Delete IP Address ${ip} 801 END 802 Validate Network Config On BMC 803 804Verify Network Response On Specified Host State 805 [Documentation] Verifying the BMC network response when host is on and off. 806 [Arguments] ${host_state} 807 808 # Description of argument(s): 809 # host_state if host_state is on then host is booted to operating system. 810 # if host_state is off then host is power off. 811 # (eg. on, off). 812 813 ${active_channel_config}= Get Active Channel Config 814 ${ethernet_interface}= Set Variable ${active_channel_config['${CHANNEL_NUMBER}']['name']} 815 816 Run Keyword If '${host_state}' == 'on' 817 ... Redfish Power On stack_mode=skip 818 ... ELSE 819 ... Redfish Power off stack_mode=skip 820 821 Redfish.Get ${REDFISH_NW_ETH_IFACE}${ethernet_interface} 822 Ping Host ${OPENBMC_HOST} 823 824 825Verify IP On Redfish URI 826 [Documentation] Verify given IP on redfish URI. 827 [Arguments] ${ip_address} 828 829 # Description of argument(s): 830 # ip_address Configured IP address which need to verified. 831 832 ${network_configurations}= Get Network Configuration 833 834 FOR ${network_configuration} IN @{network_configurations} 835 ${ip_found}= Set Variable If '${network_configuration['Address']}' == '${ip_address}' ${True} 836 ... ${False} 837 Exit For Loop If ${ip_found} 838 END 839 Run Keyword If '${ip_found}' == '${False}' 840 ... Fail msg=Configured IP address not found on EthernetInterface URI. 841 842 843Enable IPv4 DHCP Settings 844 [Documentation] Set IPv4 DHCP enabled status true/false in redfish URI. 845 [Arguments] ${status}=${True} 846 847 # Description of argument(s): 848 # status IPv4 DHCPEnabled status which needs to be set. 849 # (e.g. True or False) 850 851 ${active_channel_config}= Get Active Channel Config 852 ${ethernet_interface}= Set Variable ${active_channel_config['${CHANNEL_NUMBER}']['name']} 853 ${DHCPv4}= Create Dictionary DHCPEnabled=${status} 854 855 ${payload}= Create Dictionary DHCPv4=${DHCPv4} 856 Redfish.patch ${REDFISH_NW_ETH_IFACE}${ethernet_interface} 857 ... body=&{payload} valid_status_codes=[${HTTP_NO_CONTENT}, ${HTTP_OK}] 858 859 Sleep ${NETWORK_TIMEOUT}s 860 Wait For Host To Ping ${OPENBMC_HOST} ${NETWORK_TIMEOUT} 861