blob: 52e2a7fdb432105bfcc09b5883e960c55da5f28a [file] [log] [blame]
*** Settings ***
Documentation Test BMC network interface functionalities.
Resource ../../lib/bmc_redfish_resource.robot
Resource ../../lib/bmc_network_utils.robot
Resource ../../lib/openbmc_ffdc.robot
Library ../../lib/bmc_network_utils.py
Suite Setup Suite Setup Execution
Test Teardown Redfish.Logout
*** Variables ***
# AA:AA:AA:AA:AA:AA series is a valid MAC and does not exist in
# our network, so this is chosen to avoid MAC conflict.
${valid_mac} AA:E2:84:14:28:79
*** Test Cases ***
Configure Valid MAC And Verify
[Documentation] Configure valid MAC via Redfish and verify.
[Tags] Configure_Valid_MAC_And_Verify
Configure MAC Settings ${valid_mac} valid
# Verify whether new MAC is configured on BMC.
Validate MAC On BMC ${valid_mac}
*** Keywords ***
Suite Setup Execution
[Documentation] Do suite setup tasks.
Redfish.Login
# Get BMC MAC address.
${resp}= redfish.Get ${REDFISH_NW_ETH0_URI}
Set Suite Variable ${initial_mac_address} ${resp.dict['MACAddress']}
Validate MAC On BMC ${initial_mac_address}
Redfish.Logout
Configure MAC Settings
[Documentation] Configure MAC settings via Redfish.
[Arguments] ${mac_address} ${expected_result}
# Description of argument(s):
# mac_address MAC address of BMC.
# expected_result Expected status of MAC configuration.
Redfish.Login
${payload}= Create Dictionary MACAddress=${mac_address}
${resp}= Redfish.Patch ${REDFISH_NW_ETH0_URI} body=&{payload}
# After any modification on network interface, BMC restarts network
# module, wait until it is reachable.
Wait For Host To Ping ${OPENBMC_HOST}
... ${NETWORK_TIMEOUT} ${NETWORK_RETRY_TIME}
# Verify whether new MAC address is populated on BMC system.
# It should not allow to configure invalid settings.
${status}= Run Keyword And Return Status
... Validate MAC On BMC ${mac_address}
Run Keyword If '${expected_result}' == 'error'
... Should Be Equal ${status} ${False}
... msg=Allowing the configuration of an invalid MAC.
... ELSE
... Should Be Equal ${status} ${True}
... msg=Not allowing the configuration of a valid MAC.