blob: 2a2af87ff97e37dd3c6a9d53c47cc0a81b3af335 [file] [log] [blame]
Rahul Maheshwari71525ad2019-08-01 05:54:06 -05001*** Settings ***
2
3Documentation Module to test IPMI asset tag functionality.
4Resource ../lib/ipmi_client.robot
5Resource ../lib/openbmc_ffdc.robot
nagarjunb2298450742022-04-19 12:00:02 +05306Resource ../lib/bmc_network_utils.robot
Nandish-Matti18179e72023-10-26 10:29:55 -05007Resource ../lib/energy_scale_utils.robot
Tony Lee3fdd31e2020-02-15 11:21:40 +08008Variables ../data/ipmi_raw_cmd_table.py
Tony Lee18c6f9a2020-02-18 17:00:20 +08009Variables ../data/ipmi_variable.py
10Library ../lib/bmc_network_utils.py
11Library ../lib/ipmi_utils.py
Rahul Maheshwari71525ad2019-08-01 05:54:06 -050012
nagarjunb2298450742022-04-19 12:00:02 +053013Suite Setup IPMI General Test Suite Setup
Rahul Maheshwari71525ad2019-08-01 05:54:06 -050014Test Teardown FFDC On Test Case Fail
15
George Keishing87dc4422023-10-20 12:56:30 +053016Force Tags IPMI_General
17
Rahul Maheshwari71525ad2019-08-01 05:54:06 -050018*** Test Cases ***
19
Tony Lee3fdd31e2020-02-15 11:21:40 +080020Test Get Self Test Results via IPMI Raw Command
21 [Documentation] Get self test results via IPMI raw command and verify the output.
George Keishingb98036a2022-01-31 12:39:47 -060022 [Tags] Test_Get_Self_Test_Results_via_IPMI_Raw_Command
Tony Lee3fdd31e2020-02-15 11:21:40 +080023
24 ${resp}= Run IPMI Standard Command raw ${IPMI_RAW_CMD['Self_Test_Results']['Get'][0]}
25
26 # 55h = No error. All Self Tests Passed.
27 # 56h = Self Test function not implemented in this controller.
28 Should Contain Any ${resp} 55 00 56 00
29
30
31Test Get Device GUID Via IPMI Raw Command
32 [Documentation] Get device GUID via IPMI raw command and verify it using Redfish.
George Keishingb98036a2022-01-31 12:39:47 -060033 [Tags] Test_Get_Device_GUID_Via_IPMI_Raw_Command
Tony Lee3fdd31e2020-02-15 11:21:40 +080034 [Teardown] Run Keywords Redfish.Logout AND FFDC On Test Case Fail
35 # Get GUIDS via IPMI.
ganesanb4d430282023-04-27 14:33:23 +000036 # This should match the /redfish/v1/Managers/${MANAGER_ID}'s UUID data.
Tony Lee3fdd31e2020-02-15 11:21:40 +080037 ${guids}= Run IPMI Standard Command raw ${IPMI_RAW_CMD['Device GUID']['Get'][0]}
38 # Reverse the order and remove space delims.
39 ${guids}= Split String ${guids}
40 Reverse List ${guids}
41 ${guids}= Evaluate "".join(${guids})
42
43 Redfish.Login
ganesanb4d430282023-04-27 14:33:23 +000044 ${uuid}= Redfish.Get Attribute /redfish/v1/Managers/${MANAGER_ID} UUID
Tony Lee3fdd31e2020-02-15 11:21:40 +080045 ${uuid}= Remove String ${uuid} -
46
47 Rprint Vars guids uuid
48 Valid Value uuid ['${guids}']
Tony Lee18c6f9a2020-02-18 17:00:20 +080049
50
51Verify Get Channel Info via IPMI
52 [Documentation] Verify get channel info via IPMI.
53 [Tags] Verify_Get_Channel_Info_via_IPMI
54
55 # Get channel info via ipmi command "ipmitool channel info [channel number]".
Tony Lee87c9cb92020-03-04 14:47:09 +080056 # Verify channel info with files "channel_access_volatile.json", "channel_access_nv.json"
57 # and "channel_config.json" in BMC.
Tony Lee18c6f9a2020-02-18 17:00:20 +080058
59 # Example output from 'Get Channel Info':
60 # channel_info:
61 # [channel_0x2_info]:
62 # [channel_medium_type]: 802.3 LAN
63 # [channel_protocol_type]: IPMB-1.0
64 # [session_support]: multi-session
65 # [active_session_count]: 0
66 # [protocol_vendor_id]: 7154
Tony Lee87c9cb92020-03-04 14:47:09 +080067 # [volatile(active)_settings]:
68 # [alerting]: enabled
69 # [per-message_auth]: enabled
70 # [user_level_auth]: enabled
71 # [access_mode]: always available
72 # [Non-Volatile Settings]:
73 # [alerting]: enabled
74 # [per-message_auth]: enabled
75 # [user_level_auth]: enabled
76 # [access_mode]: always available
Tony Lee18c6f9a2020-02-18 17:00:20 +080077
78 ${channel_info_ipmi}= Get Channel Info ${CHANNEL_NUMBER}
79 ${active_channel_config}= Get Active Channel Config
Tony Lee87c9cb92020-03-04 14:47:09 +080080 ${channel_volatile_data_config}= Get Channel Access Config /run/ipmi/channel_access_volatile.json
81 ${channel_nv_data_config}= Get Channel Access Config /var/lib/ipmi/channel_access_nv.json
82
George Keishing33be3592022-03-08 08:52:25 -060083 Rprint Vars channel_info_ipmi
84 Rprint Vars active_channel_config
85 Rprint Vars channel_volatile_data_config
86 Rprint Vars channel_nv_data_config
Tony Lee18c6f9a2020-02-18 17:00:20 +080087
88 Valid Value medium_type_ipmi_conf_map['${channel_info_ipmi['channel_0x${CHANNEL_NUMBER}_info']['channel_medium_type']}']
89 ... ['${active_channel_config['${CHANNEL_NUMBER}']['channel_info']['medium_type']}']
90
91 Valid Value protocol_type_ipmi_conf_map['${channel_info_ipmi['channel_0x${CHANNEL_NUMBER}_info']['channel_protocol_type']}']
92 ... ['${active_channel_config['${CHANNEL_NUMBER}']['channel_info']['protocol_type']}']
93
94 Valid Value channel_info_ipmi['channel_0x${CHANNEL_NUMBER}_info']['session_support']
95 ... ['${active_channel_config['${CHANNEL_NUMBER}']['channel_info']['session_supported']}']
96
97 Valid Value channel_info_ipmi['channel_0x${CHANNEL_NUMBER}_info']['active_session_count']
98 ... ['${active_channel_config['${CHANNEL_NUMBER}']['active_sessions']}']
99 # IPMI Spec: The IPMI Enterprise Number is: 7154 (decimal)
100 Valid Value channel_info_ipmi['channel_0x${CHANNEL_NUMBER}_info']['protocol_vendor_id'] ['7154']
101
Tony Lee87c9cb92020-03-04 14:47:09 +0800102 # Verify volatile(active)_settings
103 Valid Value disabled_ipmi_conf_map['${channel_info_ipmi['volatile(active)_settings']['alerting']}']
104 ... ['${channel_volatile_data_config['${CHANNEL_NUMBER}']['alerting_disabled']}']
Tony Lee18c6f9a2020-02-18 17:00:20 +0800105
Tony Lee87c9cb92020-03-04 14:47:09 +0800106 Valid Value disabled_ipmi_conf_map['${channel_info_ipmi['volatile(active)_settings']['per-message_auth']}']
107 ... ['${channel_volatile_data_config['${CHANNEL_NUMBER}']['per_msg_auth_disabled']}']
Tony Lee18c6f9a2020-02-18 17:00:20 +0800108
Tony Lee87c9cb92020-03-04 14:47:09 +0800109 Valid Value disabled_ipmi_conf_map['${channel_info_ipmi['volatile(active)_settings']['user_level_auth']}']
110 ... ['${channel_volatile_data_config['${CHANNEL_NUMBER}']['user_auth_disabled']}']
Tony Lee18c6f9a2020-02-18 17:00:20 +0800111
Tony Lee87c9cb92020-03-04 14:47:09 +0800112 Valid Value access_mode_ipmi_conf_map['${channel_info_ipmi['volatile(active)_settings']['access_mode']}']
113 ... ['${channel_volatile_data_config['${CHANNEL_NUMBER}']['access_mode']}']
114
115 # Verify Non-Volatile Settings
116 Valid Value disabled_ipmi_conf_map['${channel_info_ipmi['non-volatile_settings']['alerting']}']
117 ... ['${channel_nv_data_config['${CHANNEL_NUMBER}']['alerting_disabled']}']
118
119 Valid Value disabled_ipmi_conf_map['${channel_info_ipmi['non-volatile_settings']['per-message_auth']}']
120 ... ['${channel_nv_data_config['${CHANNEL_NUMBER}']['per_msg_auth_disabled']}']
121
122 Valid Value disabled_ipmi_conf_map['${channel_info_ipmi['non-volatile_settings']['user_level_auth']}']
123 ... ['${channel_nv_data_config['${CHANNEL_NUMBER}']['user_auth_disabled']}']
124
125 Valid Value access_mode_ipmi_conf_map['${channel_info_ipmi['non-volatile_settings']['access_mode']}']
126 ... ['${channel_nv_data_config['${CHANNEL_NUMBER}']['access_mode']}']
Tony Lee0754c5f2020-03-13 19:38:24 +0800127
128
129Test Get Channel Authentication Capabilities via IPMI
nagarjunb2298450742022-04-19 12:00:02 +0530130 [Documentation] Verify channel authentication capabilities via IPMI.
Tony Lee0754c5f2020-03-13 19:38:24 +0800131 [Tags] Test_Get_Channel_Authentication_Capabilities_via_IPMI
nagarjunb2298450742022-04-19 12:00:02 +0530132 [Template] Verify Channel Auth Capabilities
Tony Lee0754c5f2020-03-13 19:38:24 +0800133
nagarjunb2298450742022-04-19 12:00:02 +0530134 FOR ${channel} IN @{active_channel_list}
135 FOR ${privilege} IN 4 3 2
136 # Input Channel Privilege Level
137 ${channel} ${privilege}
138 END
139 END
Tony Lee0754c5f2020-03-13 19:38:24 +0800140
nagarjunb2298450742022-04-19 12:00:02 +0530141
142Test Get Channel Authentication Capabilities IPMI Command For Invalid Channel
143 [Documentation] Verify get channel authentication capabilities for invalid channel.
144 [Tags] Test_Get_Channel_Authentication_Capabilities_IPMI_Command_For_Invalid_Channel
George Keishing13b7afd2022-05-23 07:36:16 -0500145 [Template] Verify Channel Auth Capabilities For Invalid Channel
nagarjunb2298450742022-04-19 12:00:02 +0530146
147 FOR ${channel} IN @{inactive_channel_list}
148 # Input Channel
149 ${channel}
150 END
151
152
George Keishing13b7afd2022-05-23 07:36:16 -0500153Verify Get Channel Authentication Capabilities IPMI Raw Command With Invalid Data Length
154 [Documentation] Verify get channel authentication capabilities IPMI raw command with invalid data length.
155 [Tags] Verify_Get_Channel_Authentication_Capabilities_IPMI_Raw_Command_With_Invalid_Data_Length
nagarjunb2298450742022-04-19 12:00:02 +0530156 [Template] Verify Channel Auth Command For Invalid Data Length
157
158 # Bytes
159 low
160 high
Tony Lee2d071822020-02-19 16:37:58 +0800161
162
163Verify Set Session Privilege Level via IPMI Raw Command
164 [Documentation] Set session privilege with given privilege level and verify the response with
165 ... expected level.
166 [Tags] Verify_Set_Session_Privilege_Level_via_IPMI_Raw_Command
167 [Template] Set Session Privilege Level And Verify
168
169 # privilege_level expected_level
170 0x00 04
171 0x02 02
172 0x03 03
173 0x04 04
174
175
George Keishingb98036a2022-01-31 12:39:47 -0600176Verify Set Invalid Session Privilege Level Via IPMI Raw Command
Tony Lee94f1a6c2020-03-25 10:37:46 +0800177 [Documentation] Verify set invalid session privilege level via IPMI raw command.
178 [Tags] Verify_Set_Invalid_Session_Privilege_Level_Via_IPMI_Raw_Command
179 [Template] Set Invalid Session Privilege Level And Verify
180
181 # invalid_privilege_level
Nagarjun Bbb3365c2023-05-25 14:40:57 +0530182 0x01
Tony Lee94f1a6c2020-03-25 10:37:46 +0800183 0x05
184 0x06
185 0x07
186 0x0F
187
188
George Keishingb98036a2022-01-31 12:39:47 -0600189Verify Close Session Via IPMI
Tony Leed12b40d2020-03-19 10:45:21 +0800190 [Documentation] Verify close session via IPMI.
191 [Tags] Verify_Close_Session_Via_IPMI
192
193 # The "close session command" can be tested with any out-of-band IPMI command.
194 # When the session is about to close, it will execute the close session command at the end.
195
196 ${cmd}= Catenate mc info -vvv 2>&1 | grep "Closed Session"
197 ${cmd_output}= Run External IPMI Standard Command ${cmd}
198
199 Should Contain ${cmd_output} Closed Session
200
201
Ashwini Chandrappa4ec70852021-09-07 09:10:36 -0500202Verify Chassis Identify via IPMI
203 [Documentation] Set chassis identify using IPMI and verify.
204 [Tags] Verify_Chassis_Identify_via_IPMI
205 [Setup] Redfish.Login
206 [Teardown] Redfish.logout
207
208 # Set to default "chassis identify" and verify that LED blinks for 15s.
209 Run IPMI Standard Command chassis identify
manimozhik1263acd2023-11-08 06:44:41 +0000210 Verify Identify LED State Via Redfish True
Ashwini Chandrappa4ec70852021-09-07 09:10:36 -0500211
212 Sleep 18s
manimozhik1263acd2023-11-08 06:44:41 +0000213 Verify Identify LED State Via Redfish False
Ashwini Chandrappa4ec70852021-09-07 09:10:36 -0500214
215 # Set "chassis identify" to 10s and verify that the LED blinks for 10s.
216 Run IPMI Standard Command chassis identify 10
manimozhik1263acd2023-11-08 06:44:41 +0000217 Verify Identify LED State Via Redfish True
Ashwini Chandrappa4ec70852021-09-07 09:10:36 -0500218
219 Sleep 12s
manimozhik1263acd2023-11-08 06:44:41 +0000220 Verify Identify LED State Via Redfish False
Ashwini Chandrappa4ec70852021-09-07 09:10:36 -0500221
222
223Verify Chassis Identify Off And Force Identify On via IPMI
224 [Documentation] Set chassis identify to "off" and "force" using IPMI and verify.
225 [Tags] Verify_Chassis_Identify_Off_And_Force_Identify_On_via_IPMI
226 [Setup] Redfish.Login
227 [Teardown] Redfish.logout
228
229 # Set the LED to "Force Identify On".
230 Run IPMI Standard Command chassis identify force
manimozhik1263acd2023-11-08 06:44:41 +0000231 Verify Identify LED State Via Redfish True
Ashwini Chandrappa4ec70852021-09-07 09:10:36 -0500232
233 # Set "chassis identify" to 0 and verify that the LED turns off.
234 Run IPMI Standard Command chassis identify 0
manimozhik1263acd2023-11-08 06:44:41 +0000235 Verify Identify LED State Via Redfish False
Ashwini Chandrappa4ec70852021-09-07 09:10:36 -0500236
237
Nandish-Matti18179e72023-10-26 10:29:55 -0500238Set Power Cap Value Via IPMI And Verify Using Redfish
239 [Documentation] Set power cap value via IPMI and verify using Redfish.
240 [Setup] Redfish.Login
241 [Teardown] Run Keywords Set Power Cap Value Via Redfish ${initial_power_value} AND Redfish.Logout
242 [Tags] Set_Power_Cap_Value_Via_IPMI_And_Verify_Using_Redfish
243
244 # Get initial power cap value via Redfish.
245 ${power_limit_watts}= Get System Power Cap Limit
246 ${initial_power_value}= Set Variable ${power_limit_watts['SetPoint']}
247
248 # Get the allowable min and max power cap value via Redfish.
249 ${min_power_value}= Set Variable ${power_limit_watts['AllowableMin']}
250 ${max_power_value}= Set Variable ${power_limit_watts['AllowableMax']}
251
252 # Generate a random power cap value within the allowable range.
253 ${random_power_cap}= Evaluate random.randint(${min_power_value}, ${max_power_value}) modules=random
254
255 # Set power cap value via IPMI.
256 Run Keyword Run IPMI Standard Command dcmi power set_limit limit ${random_power_cap}
257
258 # Verify the power cap value with the Redfish value.
259 ${updated_power_limits}= Get System Power Cap Limit
260 Should Be Equal ${updated_power_limits['SetPoint']} ${random_power_cap}
261
262
Nandish-Matti43d80bc2023-11-01 23:35:44 -0500263Verify Power Cap Value Via IPMI
264 [Documentation] Verify the power cap value via IPMI, set to non-zero using Redfish
265 ... if initial power cap value is zero.
266 [Tags] Verify_Power_Cap_Value_Via_IPMI
267 [Setup] Redfish.Login
268 [Teardown] Run Keywords Set Power Cap Value Via Redfish ${initial_power_value} AND Redfish.Logout
269
270 # Get power cap value via Redfish.
271 ${power_cap_limit}= Get System Power Cap Limit
272
George Keishingc55a8992023-11-13 12:03:43 +0530273 # Get initial power cap value.
Nandish-Matti43d80bc2023-11-01 23:35:44 -0500274 ${initial_power_value}= Set Variable ${power_cap_limit['SetPoint']}
275
276 # Update power cap value via Redfish if the initial power cap value is zero.
277 IF ${initial_power_value} == 0
278 # Get the allowable min and max power cap value via Redfish.
279 ${min_power_value}= Set Variable ${power_cap_limit['AllowableMin']}
280 ${max_power_value}= Set Variable ${power_cap_limit['AllowableMax']}
281
282 # Generate a random power cap value within the allowable range.
283 ${random_power_cap}= Evaluate random.randint(${min_power_value}, ${max_power_value}) modules=random
284
285 # Set power value via Redfish.
286 Set Power Cap Value Via Redfish ${random_power_cap}
287 END
288
289 # Get power cap value via IPMI.
290 ${cmd}= Catenate dcmi power get_limit | grep "Power Limit:"
291 ${resp}= Run IPMI Standard Command ${cmd}
292
293 # The output will be as below.
294 # Power Limit: 1472 Watts
295
296 # Truncate power limit: and watts from output.
297 ${output_limit}= Strip String ${resp} mode=left characters=Power Limit:
298 ${ipmi_power_cap_value}= Strip String ${output_limit} mode=both characters= Watts
299
300 # Perform a comparison of power cap values obtained from both IPMI and Redfish.
301 ${redfish_power_cap_value}= Convert To String ${random_power_cap}
302 Should Be Equal ${ipmi_power_cap_value} ${redfish_power_cap_value}
303
304
Tony Lee2d071822020-02-19 16:37:58 +0800305*** Keywords ***
306
nagarjunb2298450742022-04-19 12:00:02 +0530307IPMI General Test Suite Setup
308 [Documentation] Get active and inactive/invalid channels from channel_config.json file
309 ... in list type and set it as suite variable.
310
311 # Get active channel list and set as suite variable.
312 @{active_channel_list}= Get Active Ethernet Channel List
313 Set Suite Variable @{active_channel_list}
314
315 # Get Inactive/Invalid channel list and set as suite variable.
316 @{inactive_channel_list}= Get Invalid Channel Number List
317 Set Suite Variable @{inactive_channel_list}
318
319
Tony Lee2d071822020-02-19 16:37:58 +0800320Set Session Privilege Level And Verify
321 [Documentation] Set session privilege with given privilege level and verify the response with
322 ... expected level.
323 [Arguments] ${privilege_level} ${expected_level}
324 # Description of argument(s):
325 # privilege_level Requested Privilege Level.
George Keishing33be3592022-03-08 08:52:25 -0600326 # expected_level New Privilege Level (or present level if ‘return present privilege level’
327 # was selected).
Tony Lee2d071822020-02-19 16:37:58 +0800328
Tony Leeb49853c2020-06-03 15:27:56 +0800329 ${resp}= Run External IPMI Raw Command
Tony Lee94f1a6c2020-03-25 10:37:46 +0800330 ... 0x06 0x3b ${privilege_level}
Tony Lee2d071822020-02-19 16:37:58 +0800331 Should Contain ${resp} ${expected_level}
Tony Lee94f1a6c2020-03-25 10:37:46 +0800332
333
334Set Invalid Session Privilege Level And Verify
335 [Documentation] Set invalid session privilege level and verify the response.
336 [Arguments] ${privilege_level}
337 # Description of argument(s):
338 # privilege_level Requested Privilege Level.
339
340 # Verify requested level exceeds Channel and/or User Privilege Limit.
Tony Leeb49853c2020-06-03 15:27:56 +0800341 ${msg}= Run Keyword And Expect Error * Run External IPMI Raw Command
Tony Lee94f1a6c2020-03-25 10:37:46 +0800342 ... 0x06 0x3b ${privilege_level}
Nagarjun Bbb3365c2023-05-25 14:40:57 +0530343
344 # 0x05 is OEM proprietary level.
345 IF ${privilege_level} == 0x05
346 Should Contain ${msg} Unknown rsp=0x81
347 ELSE
George Keishingc2b95042023-06-27 12:25:33 +0530348 # According to IPMI spec privilege level except 0x00-0x05, others are
349 # reserved. So if we try to set those privilege we will get rsp as
350 # 0xcc(Invalid data filed in request)
Nagarjun Bbb3365c2023-05-25 14:40:57 +0530351 Should Contain ${msg} Invalid data field in request rsp=0xcc
352 END
Ashwini Chandrappa4ec70852021-09-07 09:10:36 -0500353
354
355Verify Identify LED State Via Redfish
356 [Documentation] Verify that Redfish identify LED system with given state.
357 [Arguments] ${expected_state}
358 # Description of argument(s):
359 # expected_led_status Expected value of Identify LED.
360
George Keishingb0614552022-07-08 02:52:57 -0500361 # Get the following URI(s) and iterate to find the attribute IndicatorLED.
362 # Example:
363 # /redfish/v1/Systems/system
364 # /redfish/v1/Systems/hypervisor
365
George Keishing52eb7c22022-03-11 10:58:53 -0600366 # Python module: get_member_list(resource_path)
367 ${systems}= Redfish_Utils.Get Member List /redfish/v1/Systems
368 FOR ${system} IN @{systems}
manimozhik1263acd2023-11-08 06:44:41 +0000369 ${led_value}= Redfish.Get Attribute ${system} LocationIndicatorActive
George Keishingf6b4d532022-07-08 07:07:54 -0500370 # Get attribute return None if IndicatorLED does not exist in the URI.
George Keishingb0614552022-07-08 02:52:57 -0500371 Continue For Loop If '${led_value}' == 'None'
George Keishing52eb7c22022-03-11 10:58:53 -0600372 Should Be True '${led_value}' == '${expected_state}'
373 END
nagarjunb2298450742022-04-19 12:00:02 +0530374
375
376Verify Channel Auth Capabilities
377 [Documentation] Verify authentication capabilities for given channel and privilege.
378 [Arguments] ${channel} ${privilege_level}
379
380 # Description of argument(s):
381 # channel Interface channel number.
George Keishing13b7afd2022-05-23 07:36:16 -0500382 # privilege_level User Privilege level (e.g. 4-Administator, 3-Operator, 2-Readonly).
nagarjunb2298450742022-04-19 12:00:02 +0530383
384 # Python module: get_channel_auth_capabilities(channel_number, privilege_level)
385 ${channel_auth_cap}= Get Channel Auth Capabilities ${channel} ${privilege_level}
386 Rprint Vars channel_auth_cap
387
388 Valid Value channel_auth_cap['channel_number'] ['${channel}']
389 Valid Value channel_auth_cap['kg_status'] ['default (all zeroes)']
390 Valid Value channel_auth_cap['per_message_authentication'] ['enabled']
391 Valid Value channel_auth_cap['user_level_authentication'] ['enabled']
392 Valid Value channel_auth_cap['non-null_user_names_exist'] ['yes']
393 Valid Value channel_auth_cap['null_user_names_exist'] ['no']
394 Valid Value channel_auth_cap['anonymous_login_enabled'] ['no']
395 Valid Value channel_auth_cap['channel_supports_ipmi_v1.5'] ['no']
396 Valid Value channel_auth_cap['channel_supports_ipmi_v2.0'] ['yes']
397
398
George Keishing13b7afd2022-05-23 07:36:16 -0500399Verify Channel Auth Capabilities For Invalid Channel
nagarjunb2298450742022-04-19 12:00:02 +0530400 [Documentation] Verify authentication capabilities of invalid channels.
401 [Arguments] ${channel}
402
403 # Description of argument(s):
404 # channel Interface channel number.
405
406 ${channel_in_hex}= Convert To Hex ${channel} prefix=0x
407 ${cmd}= Catenate ${IPMI_RAW_CMD['Get Channel Auth Cap']['get'][0]} ${channel_in_hex} 0x04
408
409 Verify Invalid IPMI Command ${cmd} 0xcc
410
411
412Verify Channel Auth Command For Invalid Data Length
413 [Documentation] Verify channel authentication command for invalid data length.
414 [Arguments] ${byte_length}
415
416 # Description of argument(s):
417 # byte_length high or low.
418 # e.g. high - add extra byte to request data like "0x06 0x38 0x01 0x04 0x01".
419 # low - reduce bytes in actual request data like "0x06 0x38".
420
421 ${req_cmd}= Run Keyword If '${byte_length}' == 'low'
422 ... Catenate ${IPMI_RAW_CMD['Get Channel Auth Cap']['get'][0]} ${CHANNEL_NUMBER}
423 ... ELSE
424 ... Catenate ${IPMI_RAW_CMD['Get Channel Auth Cap']['get'][0]} ${CHANNEL_NUMBER} 0x04 0x01
425
426 Verify Invalid IPMI Command ${req_cmd} 0xc7
Nandish-Matti18179e72023-10-26 10:29:55 -0500427
428
429Set Power Cap Value Via Redfish
430 [Documentation] Set power cap value via Redfish.
431 [Arguments] ${power_cap_value}
432
433 # Description of argument(s):
434 # power_cap_value Power cap value which need to be set.
435
436 # Set power cap value based on argument.
437 Redfish.Patch /redfish/v1/Chassis/chassis/EnvironmentMetrics
438 ... body={"PowerLimitWatts":{"SetPoint": ${power_cap_value}}}
439 ... valid_status_codes=[${HTTP_OK}, ${HTTP_NO_CONTENT}]