blob: 0c28039c0c483ef8f9e8dc1ce76ab94717149079 [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
Tony Lee3fdd31e2020-02-15 11:21:40 +08006Variables ../data/ipmi_raw_cmd_table.py
Tony Lee18c6f9a2020-02-18 17:00:20 +08007Variables ../data/ipmi_variable.py
8Library ../lib/bmc_network_utils.py
9Library ../lib/ipmi_utils.py
Rahul Maheshwari71525ad2019-08-01 05:54:06 -050010
11Test Teardown FFDC On Test Case Fail
12
13*** Test Cases ***
14
15Verify Get DCMI Capabilities
16 [Documentation] Verify get DCMI capabilities command output.
17 [Tags] Verify_Get_DCMI_Capabilities
18 ${cmd_output}= Run IPMI Standard Command dcmi discover
19
20 @{supported_capabilities}= Create List
21 # Supported DCMI capabilities:
22 ... Mandatory platform capabilties
23 ... Optional platform capabilties
24 ... Power management available
25 ... Managebility access capabilties
26 ... In-band KCS channel available
27 # Mandatory platform attributes:
28 ... 200 SEL entries
29 ... SEL automatic rollover is enabled
30 # Optional Platform Attributes:
31 ... Slave address of device: 0h (8bits)(Satellite/External controller)
32 ... Channel number is 0h (Primary BMC)
33 ... Device revision is 0
34 # Manageability Access Attributes:
35 ... Primary LAN channel number: 1 is available
36 ... Secondary LAN channel is not available for OOB
37 ... No serial channel is available
38
Rahul Maheshwari3a1d9912020-02-25 03:13:14 -060039 FOR ${capability} IN @{supported_capabilities}
40 Should Contain ${cmd_output} ${capability} ignore_case=True
41 ... msg=Supported DCMI capabilities not present.
42 END
Tony Lee3fdd31e2020-02-15 11:21:40 +080043
44
45Test Get Self Test Results via IPMI Raw Command
46 [Documentation] Get self test results via IPMI raw command and verify the output.
47 [Tags] Test_Get_Self_Test_Results_via_IPMI
48
49 ${resp}= Run IPMI Standard Command raw ${IPMI_RAW_CMD['Self_Test_Results']['Get'][0]}
50
51 # 55h = No error. All Self Tests Passed.
52 # 56h = Self Test function not implemented in this controller.
53 Should Contain Any ${resp} 55 00 56 00
54
55
56Test Get Device GUID Via IPMI Raw Command
57 [Documentation] Get device GUID via IPMI raw command and verify it using Redfish.
58 [Tags] Test_Get_Device_GUID_via_IPMI_and_Verify_via_Redfish
59 [Teardown] Run Keywords Redfish.Logout AND FFDC On Test Case Fail
60 # Get GUIDS via IPMI.
61 # This should match the /redfish/v1/Managers/bmc's UUID data.
62 ${guids}= Run IPMI Standard Command raw ${IPMI_RAW_CMD['Device GUID']['Get'][0]}
63 # Reverse the order and remove space delims.
64 ${guids}= Split String ${guids}
65 Reverse List ${guids}
66 ${guids}= Evaluate "".join(${guids})
67
68 Redfish.Login
69 ${uuid}= Redfish.Get Attribute /redfish/v1/Managers/bmc UUID
70 ${uuid}= Remove String ${uuid} -
71
72 Rprint Vars guids uuid
73 Valid Value uuid ['${guids}']
Tony Lee18c6f9a2020-02-18 17:00:20 +080074
75
76Verify Get Channel Info via IPMI
77 [Documentation] Verify get channel info via IPMI.
78 [Tags] Verify_Get_Channel_Info_via_IPMI
79
80 # Get channel info via ipmi command "ipmitool channel info [channel number]".
81 # Verify channel info with files "channel_access.json" and "channel_config.json" in BMC.
82
83 # Example output from 'Get Channel Info':
84 # channel_info:
85 # [channel_0x2_info]:
86 # [channel_medium_type]: 802.3 LAN
87 # [channel_protocol_type]: IPMB-1.0
88 # [session_support]: multi-session
89 # [active_session_count]: 0
90 # [protocol_vendor_id]: 7154
91 # [volatile(active)_settings]:
92 # [alerting]: enabled
93 # [per-message_auth]: enabled
94 # [user_level_auth]: enabled
95 # [access_mode]: always available
96
97 ${channel_info_ipmi}= Get Channel Info ${CHANNEL_NUMBER}
98 ${active_channel_config}= Get Active Channel Config
99 ${channel_access_config}= Get Channel Access Config
100 Rprint Vars channel_info_ipmi active_channel_config channel_access_config
101
102 Valid Value medium_type_ipmi_conf_map['${channel_info_ipmi['channel_0x${CHANNEL_NUMBER}_info']['channel_medium_type']}']
103 ... ['${active_channel_config['${CHANNEL_NUMBER}']['channel_info']['medium_type']}']
104
105 Valid Value protocol_type_ipmi_conf_map['${channel_info_ipmi['channel_0x${CHANNEL_NUMBER}_info']['channel_protocol_type']}']
106 ... ['${active_channel_config['${CHANNEL_NUMBER}']['channel_info']['protocol_type']}']
107
108 Valid Value channel_info_ipmi['channel_0x${CHANNEL_NUMBER}_info']['session_support']
109 ... ['${active_channel_config['${CHANNEL_NUMBER}']['channel_info']['session_supported']}']
110
111 Valid Value channel_info_ipmi['channel_0x${CHANNEL_NUMBER}_info']['active_session_count']
112 ... ['${active_channel_config['${CHANNEL_NUMBER}']['active_sessions']}']
113 # IPMI Spec: The IPMI Enterprise Number is: 7154 (decimal)
114 Valid Value channel_info_ipmi['channel_0x${CHANNEL_NUMBER}_info']['protocol_vendor_id'] ['7154']
115
116 Valid Value disabled_ipmi_conf_map['${channel_info_ipmi['channel_0x${CHANNEL_NUMBER}_info']['alerting']}']
117 ... ['${channel_access_config['${CHANNEL_NUMBER}']['alerting_disabled']}']
118
119 Valid Value disabled_ipmi_conf_map['${channel_info_ipmi['channel_0x${CHANNEL_NUMBER}_info']['per-message_auth']}']
120 ... ['${channel_access_config['${CHANNEL_NUMBER}']['per_msg_auth_disabled']}']
121
122 Valid Value disabled_ipmi_conf_map['${channel_info_ipmi['channel_0x${CHANNEL_NUMBER}_info']['user_level_auth']}']
123 ... ['${channel_access_config['${CHANNEL_NUMBER}']['user_auth_disabled']}']
124
125 Valid Value access_mode_ipmi_conf_map['${channel_info_ipmi['channel_0x${CHANNEL_NUMBER}_info']['access_mode']}']
126 ... ['${channel_access_config['${CHANNEL_NUMBER}']['access_mode']}']