blob: 9f9c3e0c16532fb32f496512e083da45c741c502 [file] [log] [blame]
Prashanth Kattied0bedd2019-02-20 07:34:14 -06001*** Settings ***
2Documentation Test BMC network interface functionalities.
3
4Resource ../../lib/bmc_redfish_resource.robot
5Resource ../../lib/bmc_network_utils.robot
6Resource ../../lib/openbmc_ffdc.robot
7Library ../../lib/bmc_network_utils.py
8
9Suite Setup Suite Setup Execution
George Keishinga8cc1ad2019-03-13 02:58:34 -050010Test Teardown Test Teardown Execution
Prashanth Kattied0bedd2019-02-20 07:34:14 -060011
George Keishing9899a902023-09-07 20:57:53 +053012Force Tags Bmc_Network_Mac
Prashanth Kattid218f532019-06-13 04:22:34 -050013
Prashanth Kattied0bedd2019-02-20 07:34:14 -060014*** Variables ***
15
16# AA:AA:AA:AA:AA:AA series is a valid MAC and does not exist in
17# our network, so this is chosen to avoid MAC conflict.
18${valid_mac} AA:E2:84:14:28:79
Prashanth Katti46ca7ae2019-03-14 02:41:11 -050019${zero_mac} 00:00:00:00:00:00
20${broadcast_mac} FF:FF:FF:FF:FF:FF
Prashanth Katti63862132019-03-15 04:45:31 -050021${out_of_range_mac} AA:FF:FF:FF:FF:100
22
23# There will be 6 bytes in MAC address (e.g. xx.xx.xx.xx.xx.xx).
24# Here trying to configure xx.xx.xx.xx.xx
25${less_byte_mac} AA:AA:AA:AA:BB
26# Here trying to configure xx.xx.xx.xx.xx.xx.xx
27${more_byte_mac} AA:AA:AA:AA:AA:AA:BB
Prashanth Kattied0bedd2019-02-20 07:34:14 -060028
Prashanth Kattie8c87352019-03-21 06:23:41 -050029# MAC address with special characters.
30${special_char_mac} &A:$A:AA:AA:AA:^^
31
Prashanth Kattied0bedd2019-02-20 07:34:14 -060032*** Test Cases ***
33
34Configure Valid MAC And Verify
35 [Documentation] Configure valid MAC via Redfish and verify.
36 [Tags] Configure_Valid_MAC_And_Verify
37
kothaisdf078f42023-11-03 05:48:15 +000038 Configure MAC Settings ${valid_mac}
Prashanth Kattied0bedd2019-02-20 07:34:14 -060039
shrsuman123fdc51d22020-08-18 06:51:09 -050040 # Verify whether new MAC is configured on BMC and FW_Env.
Prashanth Kattied0bedd2019-02-20 07:34:14 -060041 Validate MAC On BMC ${valid_mac}
kothaisdf078f42023-11-03 05:48:15 +000042 Verify MAC Address Via FW_Env ${valid_mac}
Prashanth Kattied0bedd2019-02-20 07:34:14 -060043
Prashanth Katti46ca7ae2019-03-14 02:41:11 -050044Configure Zero MAC And Verify
45 [Documentation] Configure zero MAC via Redfish and verify.
46 [Tags] Configure_Zero_MAC_And_Verify
47
48 [Template] Configure MAC Settings
49 # MAC address scenario
kothaisdf078f42023-11-03 05:48:15 +000050 ${zero_mac} ${HTTP_BAD_REQUEST}
Prashanth Katti46ca7ae2019-03-14 02:41:11 -050051
Prashanth Katti46ca7ae2019-03-14 02:41:11 -050052Configure Broadcast MAC And Verify
53 [Documentation] Configure broadcast MAC via Redfish and verify.
54 [Tags] Configure_Broadcast_MAC_And_Verify
55
56 [Template] Configure MAC Settings
57 # MAC address scenario
kothaisdf078f42023-11-03 05:48:15 +000058 ${broadcast_mac} ${HTTP_BAD_REQUEST}
Prashanth Katti46ca7ae2019-03-14 02:41:11 -050059
Prashanth Kattie8c87352019-03-21 06:23:41 -050060Configure Invalid MAC And Verify
61 [Documentation] Configure invalid MAC address which is a string.
62 [Tags] Configure_Invalid_MAC_And_Verify
63
64 [Template] Configure MAC Settings
65 # MAC Address Expected_Result
kothaisdf078f42023-11-03 05:48:15 +000066 ${special_char_mac} ${HTTP_BAD_REQUEST}
Prashanth Kattie8c87352019-03-21 06:23:41 -050067
68Configure Valid MAC And Check Persistency
69 [Documentation] Configure valid MAC and check persistency.
70 [Tags] Configure_Valid_MAC_And_Check_Persistency
71
kothaisdf078f42023-11-03 05:48:15 +000072 Configure MAC Settings ${valid_mac}
Prashanth Kattie8c87352019-03-21 06:23:41 -050073
74 # Verify whether new MAC is configured on BMC.
75 Validate MAC On BMC ${valid_mac}
76
shrsuman123fdc51d22020-08-18 06:51:09 -050077 # Reboot BMC and check whether MAC is persistent on BMC and FW_Env.
Prashanth Kattie8c87352019-03-21 06:23:41 -050078 OBMC Reboot (off)
79 Validate MAC On BMC ${valid_mac}
kothaisdf078f42023-11-03 05:48:15 +000080 Verify MAC Address Via FW_Env ${valid_mac}
shrsuman123fdc51d22020-08-18 06:51:09 -050081
82Configure Invalid MAC And Verify On FW_Env
83 [Documentation] Configure Invalid MAC via Redfish and verify on FW_Env.
84 [Tags] Configure_Invalid_MAC_And_Verify_On_FW_Env
85
86 [Template] Configure MAC Settings
87
88 # invalid_MAC scenario
kothaisdf078f42023-11-03 05:48:15 +000089 ${zero_mac} ${HTTP_BAD_REQUEST}
90 ${broadcast_mac} ${HTTP_BAD_REQUEST}
91 ${special_char_mac} ${HTTP_BAD_REQUEST}
92 ${less_byte_mac} ${HTTP_BAD_REQUEST}
shrsuman123fdc51d22020-08-18 06:51:09 -050093
George Keishingeedd71a2020-09-17 00:40:36 -050094Configure Invalid MAC And Verify Persistency On FW_Env
shrsuman123fdc51d22020-08-18 06:51:09 -050095 [Documentation] Configure invalid MAC and verify persistency on FW_Env.
96 [Tags] Configure_Invalid_MAC_And_Verify_Persistency_On_FW_Env
97
kothaisdf078f42023-11-03 05:48:15 +000098 Configure MAC Settings ${special_char_mac} ${HTTP_BAD_REQUEST}
shrsuman123fdc51d22020-08-18 06:51:09 -050099
100 # Reboot BMC and check whether MAC is persistent on FW_Env.
101 OBMC Reboot (off)
kothaisdf078f42023-11-03 05:48:15 +0000102 Verify MAC Address Via FW_Env ${special_char_mac} ${HTTP_BAD_REQUEST}
Prashanth Katti46ca7ae2019-03-14 02:41:11 -0500103
Prashanth Katti63862132019-03-15 04:45:31 -0500104Configure Out Of Range MAC And Verify
105 [Documentation] Configure out of range MAC via Redfish and verify.
106 [Tags] Configure_Out_Of_Range_MAC_And_Verify
107
kothaisdf078f42023-11-03 05:48:15 +0000108 Configure MAC Settings ${out_of_range_mac} ${HTTP_BAD_REQUEST}
shrsuman123fdc51d22020-08-18 06:51:09 -0500109
110 # Verify whether new MAC is configured on FW_Env.
kothaisdf078f42023-11-03 05:48:15 +0000111 Verify MAC Address Via FW_Env ${out_of_range_mac} ${HTTP_BAD_REQUEST}
Prashanth Katti63862132019-03-15 04:45:31 -0500112
113Configure Less Byte MAC And Verify
114 [Documentation] Configure less byte MAC via Redfish and verify.
115 [Tags] Configure_Less_Byte_MAC_And_Verify
116
117 [Template] Configure MAC Settings
118 # MAC address scenario
kothaisdf078f42023-11-03 05:48:15 +0000119 ${less_byte_mac} ${HTTP_BAD_REQUEST}
Prashanth Katti63862132019-03-15 04:45:31 -0500120
121Configure More Byte MAC And Verify
122 [Documentation] Configure more byte MAC via Redfish and verify.
Tony Lee3112f4c2020-05-13 20:31:42 +0800123 [Tags] Configure_More_Byte_MAC_And_Verify
Prashanth Katti63862132019-03-15 04:45:31 -0500124
kothaisdf078f42023-11-03 05:48:15 +0000125 Configure MAC Settings ${more_byte_mac} ${HTTP_BAD_REQUEST}
shrsuman123fdc51d22020-08-18 06:51:09 -0500126 # Verify whether new MAC is configured on FW_Env.
kothaisdf078f42023-11-03 05:48:15 +0000127 Verify MAC Address Via FW_Env ${more_byte_mac} ${HTTP_BAD_REQUEST}
Sweta Potthurifb001362022-03-14 02:21:14 -0500128
Prashanth Katti63862132019-03-15 04:45:31 -0500129
Prashanth Kattied0bedd2019-02-20 07:34:14 -0600130*** Keywords ***
131
George Keishinga8cc1ad2019-03-13 02:58:34 -0500132Test Teardown Execution
133 [Documentation] Do the post test teardown.
134
Prashanth Kattie8c87352019-03-21 06:23:41 -0500135 # Revert to initial MAC address.
kothaisdf078f42023-11-03 05:48:15 +0000136 Configure MAC Settings ${initial_mac_address}
Prashanth Kattie8c87352019-03-21 06:23:41 -0500137
shrsuman123fdc51d22020-08-18 06:51:09 -0500138 # Verify whether new MAC is configured on BMC and FW_Env.
Prashanth Kattie8c87352019-03-21 06:23:41 -0500139 Validate MAC On BMC ${initial_mac_address}
shrsuman123fdc51d22020-08-18 06:51:09 -0500140 Validate MAC On Fw_Env ${initial_mac_address}
Prashanth Kattie8c87352019-03-21 06:23:41 -0500141
George Keishinga8cc1ad2019-03-13 02:58:34 -0500142 FFDC On Test Case Fail
143 Redfish.Logout
144
145
Prashanth Kattied0bedd2019-02-20 07:34:14 -0600146Suite Setup Execution
147 [Documentation] Do suite setup tasks.
148
149 Redfish.Login
Tony Lee8094d382020-04-02 13:14:47 +0800150 ${active_channel_config}= Get Active Channel Config
151 ${ethernet_interface}= Set Variable ${active_channel_config['${CHANNEL_NUMBER}']['name']}
Prashanth Kattied0bedd2019-02-20 07:34:14 -0600152
153 # Get BMC MAC address.
Tony Lee8094d382020-04-02 13:14:47 +0800154 ${resp}= redfish.Get ${REDFISH_NW_ETH_IFACE}${ethernet_interface}
Prashanth Kattied0bedd2019-02-20 07:34:14 -0600155 Set Suite Variable ${initial_mac_address} ${resp.dict['MACAddress']}
156
157 Validate MAC On BMC ${initial_mac_address}
158
159 Redfish.Logout
160
Prashanth Katti46ca7ae2019-03-14 02:41:11 -0500161
Prashanth Kattied0bedd2019-02-20 07:34:14 -0600162Configure MAC Settings
163 [Documentation] Configure MAC settings via Redfish.
kothaisdf078f42023-11-03 05:48:15 +0000164 [Arguments] ${mac_address} ${valid_status_codes}=[${HTTP_OK}]
Prashanth Kattied0bedd2019-02-20 07:34:14 -0600165
166 # Description of argument(s):
167 # mac_address MAC address of BMC.
168 # expected_result Expected status of MAC configuration.
169
Tony Lee8094d382020-04-02 13:14:47 +0800170 ${active_channel_config}= Get Active Channel Config
171 ${ethernet_interface}= Set Variable ${active_channel_config['${CHANNEL_NUMBER}']['name']}
172
Prashanth Kattied0bedd2019-02-20 07:34:14 -0600173 Redfish.Login
174 ${payload}= Create Dictionary MACAddress=${mac_address}
175
Tony Lee8094d382020-04-02 13:14:47 +0800176 Redfish.Patch ${REDFISH_NW_ETH_IFACE}${ethernet_interface} body=&{payload}
kothaisdf078f42023-11-03 05:48:15 +0000177 ... valid_status_codes=${valid_status_codes}
Prashanth Kattied0bedd2019-02-20 07:34:14 -0600178
179 # After any modification on network interface, BMC restarts network
Anves Kumar rayankulaed0124b2021-04-06 23:41:07 -0500180 # Note: Network restart takes around 15-18s after patch request processing.
181 Sleep ${NETWORK_TIMEOUT}s
Prashanth Kattied0bedd2019-02-20 07:34:14 -0600182
Anves Kumar rayankulaed0124b2021-04-06 23:41:07 -0500183 Redfish.Get ${REDFISH_NW_ETH_IFACE}${ethernet_interface}
Prashanth Kattied0bedd2019-02-20 07:34:14 -0600184
185 # Verify whether new MAC address is populated on BMC system.
186 # It should not allow to configure invalid settings.
Prashanth Kattied0bedd2019-02-20 07:34:14 -0600187 ${status}= Run Keyword And Return Status
188 ... Validate MAC On BMC ${mac_address}
189
kothaisdf078f42023-11-03 05:48:15 +0000190 Run Keyword If ${valid_status_codes} == ${HTTP_BAD_REQUEST}
Prashanth Kattied0bedd2019-02-20 07:34:14 -0600191 ... Should Be Equal ${status} ${False}
192 ... msg=Allowing the configuration of an invalid MAC.
193 ... ELSE
194 ... Should Be Equal ${status} ${True}
195 ... msg=Not allowing the configuration of a valid MAC.
196
kothaisdf078f42023-11-03 05:48:15 +0000197 Verify MAC Address Via FW_Env ${mac_address} ${valid_status_codes}
shrsuman123fdc51d22020-08-18 06:51:09 -0500198
199Verify MAC Address Via FW_Env
200 [Documentation] Verify MAC address on FW_Env.
kothaisdf078f42023-11-03 05:48:15 +0000201 [Arguments] ${mac_address} ${valid_status_codes}=[${HTTP_OK}]
shrsuman123fdc51d22020-08-18 06:51:09 -0500202
203 # Description of argument(s):
204 # mac_address MAC address of BMC.
205 # expected_result Expected status of MAC configuration.
206
207 ${status}= Run Keyword And Return Status
208 ... Validate MAC On FW_Env ${mac_address}
209
kothaisdf078f42023-11-03 05:48:15 +0000210 Run Keyword If ${valid_status_codes} == ${HTTP_BAD_REQUEST}
shrsuman123fdc51d22020-08-18 06:51:09 -0500211 ... Should Be Equal ${status} ${False}
212 ... msg=Allowing the configuration of an invalid MAC.
213 ... ELSE
214 ... Should Be Equal ${status} ${True}
215 ... msg=Not allowing the configuration of a valid MAC.