1*** Settings *** 2 3Documentation Module to test IPMI asset tag functionality. 4Resource ../lib/ipmi_client.robot 5Resource ../lib/openbmc_ffdc.robot 6Variables ../data/ipmi_raw_cmd_table.py 7Variables ../data/ipmi_variable.py 8Library ../lib/bmc_network_utils.py 9Library ../lib/ipmi_utils.py 10 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 39 FOR ${capability} IN @{supported_capabilities} 40 Should Contain ${cmd_output} ${capability} ignore_case=True 41 ... msg=Supported DCMI capabilities not present. 42 END 43 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}'] 74 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']}'] 127