19e5626d2SGeorge Keishing*** Settings *** 29e5626d2SGeorge KeishingDocumentation This testing requires special setup where SNMP trapd is 39e5626d2SGeorge Keishing... configured and installed. For download, installation and 49e5626d2SGeorge Keishing... configuration refer http://www.net-snmp.org/. 59e5626d2SGeorge Keishing 69e5626d2SGeorge KeishingResource ../../lib/snmp/resource.robot 79e5626d2SGeorge KeishingResource ../../lib/snmp/snmp_utils.robot 89e5626d2SGeorge KeishingResource ../../lib/openbmc_ffdc.robot 99e5626d2SGeorge KeishingResource ../../lib/logging_utils.robot 109e5626d2SGeorge Keishing 119e5626d2SGeorge KeishingLibrary String 129e5626d2SGeorge KeishingLibrary SSHLibrary 139e5626d2SGeorge Keishing 149e5626d2SGeorge KeishingTest Teardown FFDC On Test Case Fail 159e5626d2SGeorge Keishing 16*6fb70d98SMatt FischerTest Tags BMC_SNMP_Config 179e5626d2SGeorge Keishing 189e5626d2SGeorge Keishing*** Variables *** 199e5626d2SGeorge Keishing 209e5626d2SGeorge Keishing${CMD_INTERNAL_FAILURE} busctl call xyz.openbmc_project.Logging /xyz/openbmc_project/logging 219e5626d2SGeorge Keishing... xyz.openbmc_project.Logging.Create Create ssa{ss} xyz.openbmc_project.Common.Error.InternalFailure 229e5626d2SGeorge Keishing... xyz.openbmc_project.Logging.Entry.Level.Error 0 239e5626d2SGeorge Keishing 249e5626d2SGeorge Keishing${CMD_FRU_CALLOUT} busctl call xyz.openbmc_project.Logging /xyz/openbmc_project/logging 259e5626d2SGeorge Keishing... xyz.openbmc_project.Logging.Create Create ssa{ss} xyz.openbmc_project.Common.Error.Timeout 269e5626d2SGeorge Keishing... xyz.openbmc_project.Logging.Entry.Level.Error 2 "TIMEOUT_IN_MSEC" "5" 279e5626d2SGeorge Keishing... "CALLOUT_INVENTORY_PATH" "/xyz/openbmc_project/inventory/system/chassis/motherboard" 289e5626d2SGeorge Keishing 299e5626d2SGeorge Keishing${CMD_INFORMATIONAL_ERROR} busctl call xyz.openbmc_project.Logging /xyz/openbmc_project/logging 309e5626d2SGeorge Keishing... xyz.openbmc_project.Logging.Create Create ssa{ss} xyz.openbmc_project.Common.Error.TestError2 319e5626d2SGeorge Keishing... xyz.openbmc_project.Logging.Entry.Level.Informational 0 329e5626d2SGeorge Keishing 339e5626d2SGeorge Keishing${CMD_DEBUG_TRABALL_ERROR}= /tmp/tarball/bin/logging-test -c AutoTestSimple 349e5626d2SGeorge Keishing${SNMP_TRAP_BMC_INTERNAL_FAILURE} xyz.openbmc_project.Common.Error.InternalFailure 359e5626d2SGeorge Keishing${SNMP_TRAP_BMC_CALLOUT_ERROR} xyz.openbmc_project.Common.Error.Timeout 369e5626d2SGeorge Keishing${SNMP_TRAP_BMC_INFORMATIONAL_ERROR} xyz.openbmc_project.Common.Error.TestError2 379e5626d2SGeorge Keishing 389e5626d2SGeorge Keishing*** Test Cases *** 399e5626d2SGeorge KeishingConfigure SNMP Manager On BMC And Verify 409e5626d2SGeorge Keishing [Documentation] Configure SNMP Manager On BMC And Verify. 419e5626d2SGeorge Keishing [Tags] Configure_SNMP_Manager_On_BMC_And_Verify 429e5626d2SGeorge Keishing 439e5626d2SGeorge Keishing Configure SNMP Manager On BMC ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT} Valid 449e5626d2SGeorge Keishing Verify SNMP Manager ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT} 459e5626d2SGeorge Keishing 469e5626d2SGeorge Keishing Delete SNMP Manager And Object ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT} 479e5626d2SGeorge Keishing 489e5626d2SGeorge KeishingConfigure SNMP Manager On BMC With Non Default Port And Verify 499e5626d2SGeorge Keishing [Documentation] Configure SNMP Manager On BMC And Verify. 509e5626d2SGeorge Keishing [Tags] Configure_SNMP_Manager_On_BMC_With_Non_Default_Port_And_Verify 519e5626d2SGeorge Keishing 529e5626d2SGeorge Keishing Configure SNMP Manager On BMC ${SNMP_MGR1_IP} ${NON_DEFAULT_PORT1} Valid 539e5626d2SGeorge Keishing Verify SNMP Manager ${SNMP_MGR1_IP} ${NON_DEFAULT_PORT1} 549e5626d2SGeorge Keishing 559e5626d2SGeorge Keishing Delete SNMP Manager And Object ${SNMP_MGR1_IP} ${NON_DEFAULT_PORT1} 569e5626d2SGeorge Keishing 579e5626d2SGeorge KeishingConfigure SNMP Manager On BMC With Out Of Range Port And Verify 589e5626d2SGeorge Keishing [Documentation] Configure SNMP Manager On BMC with out-of range port and verify. 599e5626d2SGeorge Keishing [Tags] Configure_SNMP_Manager_On_BMC_With_Out_Of_Range_Port_And_Verify 609e5626d2SGeorge Keishing [Template] Configure SNMP Manager On BMC 619e5626d2SGeorge Keishing 629e5626d2SGeorge Keishing # SNMP manager IP Port Scenario 639e5626d2SGeorge Keishing ${SNMP_MGR1_IP} ${out_of_range_port} error 649e5626d2SGeorge Keishing 659e5626d2SGeorge KeishingConfigure SNMP Manager On BMC With Alpha Port And Verify 669e5626d2SGeorge Keishing [Documentation] Configure SNMP Manager On BMC with alpha port and verify. 679e5626d2SGeorge Keishing [Tags] Configure_SNMP_Manager_On_BMC_With_Alpha_Port_And_Verify 689e5626d2SGeorge Keishing [Template] Configure SNMP Manager On BMC 699e5626d2SGeorge Keishing 709e5626d2SGeorge Keishing # SNMP manager IP Port Scenario 719e5626d2SGeorge Keishing ${SNMP_MGR1_IP} ${alpha_port} error 729e5626d2SGeorge Keishing 739e5626d2SGeorge KeishingConfigure SNMP Manager On BMC With Negative Port And Verify 749e5626d2SGeorge Keishing [Documentation] Configure SNMP Manager On BMC with negative port and verify. 759e5626d2SGeorge Keishing [Tags] Configure_SNMP_Manager_On_BMC_With_Negative_Port_And_Verify 769e5626d2SGeorge Keishing [Template] Configure SNMP Manager On BMC 779e5626d2SGeorge Keishing 789e5626d2SGeorge Keishing # SNMP manager IP Port Scenario 799e5626d2SGeorge Keishing ${SNMP_MGR1_IP} ${negative_port} error 809e5626d2SGeorge Keishing 819e5626d2SGeorge KeishingConfigure SNMP Manager On BMC With Empty Port And Verify 829e5626d2SGeorge Keishing [Documentation] Configure SNMP Manager On BMC with empty port and verify. 839e5626d2SGeorge Keishing [Tags] Configure_SNMP_Manager_On_BMC_With_Empty_Port_And_Verify 849e5626d2SGeorge Keishing [Template] Configure SNMP Manager On BMC 859e5626d2SGeorge Keishing 869e5626d2SGeorge Keishing # SNMP manager IP Port Scenario 879e5626d2SGeorge Keishing ${SNMP_MGR1_IP} ${empty_port} error 889e5626d2SGeorge Keishing 899e5626d2SGeorge KeishingConfigure SNMP Manager On BMC With Out Of Range IP And Verify 909e5626d2SGeorge Keishing [Documentation] Configure SNMP Manager On BMC with out-of range IP and verify. 919e5626d2SGeorge Keishing [Tags] Configure_SNMP_Manager_On_BMC_With_Out_Of_Range_IP_And_Verify 929e5626d2SGeorge Keishing [Template] Configure SNMP Manager On BMC 939e5626d2SGeorge Keishing 949e5626d2SGeorge Keishing # SNMP manager IP Port Scenario 959e5626d2SGeorge Keishing ${out_of_range_ip} ${SNMP_DEFAULT_PORT} error 969e5626d2SGeorge Keishing 979e5626d2SGeorge KeishingConfigure Multiple SNMP Managers And Verify 989e5626d2SGeorge Keishing [Documentation] Configure multiple SNMP Managers And Verify. 999e5626d2SGeorge Keishing [Tags] Configure_Multiple_SNMP_Managers_And_Verify 1009e5626d2SGeorge Keishing 1019e5626d2SGeorge Keishing Configure SNMP Manager On BMC ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT} Valid 1029e5626d2SGeorge Keishing Configure SNMP Manager On BMC ${SNMP_MGR2_IP} ${SNMP_DEFAULT_PORT} Valid 1039e5626d2SGeorge Keishing Verify SNMP Manager ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT} 1049e5626d2SGeorge Keishing Verify SNMP Manager ${SNMP_MGR2_IP} ${SNMP_DEFAULT_PORT} 1059e5626d2SGeorge Keishing 1069e5626d2SGeorge Keishing Delete SNMP Manager And Object ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT} 1079e5626d2SGeorge Keishing Delete SNMP Manager And Object ${SNMP_MGR2_IP} ${SNMP_DEFAULT_PORT} 1089e5626d2SGeorge Keishing 1099e5626d2SGeorge KeishingConfigure Multiple SNMP Managers With Non Default Port And Verify 1109e5626d2SGeorge Keishing [Documentation] Configure multiple SNMP Managers with non-default port And Verify. 1119e5626d2SGeorge Keishing [Tags] Configure_Multiple_SNMP_Managers_With_Non_Default_Port_And_Verify 1129e5626d2SGeorge Keishing 1139e5626d2SGeorge Keishing Configure SNMP Manager On BMC ${SNMP_MGR1_IP} ${NON_DEFAULT_PORT1} Valid 1149e5626d2SGeorge Keishing Configure SNMP Manager On BMC ${SNMP_MGR2_IP} ${NON_DEFAULT_PORT1} Valid 1159e5626d2SGeorge Keishing Verify SNMP Manager ${SNMP_MGR1_IP} ${NON_DEFAULT_PORT1} 1169e5626d2SGeorge Keishing Verify SNMP Manager ${SNMP_MGR2_IP} ${NON_DEFAULT_PORT1} 1179e5626d2SGeorge Keishing 1189e5626d2SGeorge Keishing Delete SNMP Manager And Object ${SNMP_MGR1_IP} ${NON_DEFAULT_PORT1} 1199e5626d2SGeorge Keishing Delete SNMP Manager And Object ${SNMP_MGR2_IP} ${NON_DEFAULT_PORT1} 1209e5626d2SGeorge Keishing 1219e5626d2SGeorge KeishingConfigure Multiple SNMP Managers With Different Ports And Verify 1229e5626d2SGeorge Keishing [Documentation] Configure multiple SNMP Managers with different ports And Verify. 1239e5626d2SGeorge Keishing [Tags] Configure_Multiple_SNMP_Managers_With_Different_Ports_And_Verify 1249e5626d2SGeorge Keishing 1259e5626d2SGeorge Keishing Configure SNMP Manager On BMC ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT} Valid 1269e5626d2SGeorge Keishing Configure SNMP Manager On BMC ${SNMP_MGR2_IP} ${NON_DEFAULT_PORT1} Valid 1279e5626d2SGeorge Keishing Configure SNMP Manager On BMC ${SNMP_MGR3_IP} ${NON_DEFAULT_PORT2} Valid 1289e5626d2SGeorge Keishing 1299e5626d2SGeorge Keishing Verify SNMP Manager ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT} 1309e5626d2SGeorge Keishing Verify SNMP Manager ${SNMP_MGR2_IP} ${NON_DEFAULT_PORT1} 1319e5626d2SGeorge Keishing Verify SNMP Manager ${SNMP_MGR3_IP} ${NON_DEFAULT_PORT2} 1329e5626d2SGeorge Keishing 1339e5626d2SGeorge Keishing Delete SNMP Manager And Object ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT} 1349e5626d2SGeorge Keishing Delete SNMP Manager And Object ${SNMP_MGR2_IP} ${NON_DEFAULT_PORT1} 1359e5626d2SGeorge Keishing Delete SNMP Manager And Object ${SNMP_MGR3_IP} ${NON_DEFAULT_PORT2} 1369e5626d2SGeorge Keishing 1379e5626d2SGeorge KeishingGenerate Error On BMC And Verify If Trap Is Sent 1389e5626d2SGeorge Keishing [Documentation] Generate Error On BMC And Verify If Trap Is Sent. 1399e5626d2SGeorge Keishing [Tags] Generate_Error_On_BMC_And_Verify_If_Trap_Is_Sent 1409e5626d2SGeorge Keishing [Setup] Install Tarball 1419e5626d2SGeorge Keishing [Template] Create Error On BMC And Verify If Trap Is Sent 1429e5626d2SGeorge Keishing 1439e5626d2SGeorge Keishing # event_log expected_error 1449e5626d2SGeorge Keishing ${CMD_DEBUG_TRABALL_ERROR} ${SNMP_TRAP_BMC_ERROR} 1459e5626d2SGeorge Keishing 1469e5626d2SGeorge KeishingGenerate Error On BMC And Verify Trap On SNMP 1479e5626d2SGeorge Keishing [Documentation] Generate error on bmc and verify trap on SNMP. 1489e5626d2SGeorge Keishing [Tags] Generate_Error_On_BMC_And_Verify_Trap_On_SNMP 1499e5626d2SGeorge Keishing [Template] Create Error On BMC And Verify If Trap Is Sent 1509e5626d2SGeorge Keishing 1519e5626d2SGeorge Keishing # event_log expected_error 1529e5626d2SGeorge Keishing ${CMD_INTERNAL_FAILURE} ${SNMP_TRAP_BMC_INTERNAL_FAILURE} 1539e5626d2SGeorge Keishing ${CMD_FRU_CALLOUT} ${SNMP_TRAP_BMC_CALLOUT_ERROR} 1549e5626d2SGeorge Keishing ${CMD_INFORMATIONAL_ERROR} ${SNMP_TRAP_BMC_INFORMATIONAL_ERROR} 1559e5626d2SGeorge Keishing 1569e5626d2SGeorge KeishingConfigure SNMP Manager With Less Octet IP And Verify 1579e5626d2SGeorge Keishing [Documentation] Configure SNMP manager on BMC with less octet IP and verify. 1589e5626d2SGeorge Keishing [Tags] Configure_SNMP_Manager_With_Less_Octet_IP_And_Verify 1599e5626d2SGeorge Keishing [Template] Configure SNMP Manager On BMC 1609e5626d2SGeorge Keishing 1619e5626d2SGeorge Keishing # SNMP manager IP Port Scenario 1629e5626d2SGeorge Keishing 10.10.10 ${SNMP_DEFAULT_PORT} error 1639e5626d2SGeorge Keishing 1649e5626d2SGeorge KeishingVerify SNMP SysUpTime 1659e5626d2SGeorge Keishing [Documentation] Verify SNMP SysUpTime. 1669e5626d2SGeorge Keishing [Tags] Verify_SNMP_SysUpTime 1679e5626d2SGeorge Keishing 1689e5626d2SGeorge Keishing Generate Error And Verify System Up Time 1699e5626d2SGeorge Keishing 1709e5626d2SGeorge Keishing 1719e5626d2SGeorge KeishingVerify SNMP SysUpTime On BMC Reboot 1729e5626d2SGeorge Keishing [Documentation] Verify SNMP SysUpTime on BMC reboot. 1739e5626d2SGeorge Keishing [Tags] Verify_SNMP_SysUpTime_On_BMC_Reboot 1749e5626d2SGeorge Keishing 1759e5626d2SGeorge Keishing # Reboot BMC to reset system uptime. 1769e5626d2SGeorge Keishing OBMC Reboot (off) 1779e5626d2SGeorge Keishing 1789e5626d2SGeorge Keishing ${uptime}= Generate Error And Verify System Up Time 1799e5626d2SGeorge Keishing 1809e5626d2SGeorge Keishing # Check if uptime is reset after reboot. 1819e5626d2SGeorge Keishing Should Be True ${uptime} <= 1 msg=SNMP SysUpTime is not reset on reboot 1829e5626d2SGeorge Keishing 1839e5626d2SGeorge Keishing 1849e5626d2SGeorge Keishing*** Keywords *** 1859e5626d2SGeorge Keishing 1869e5626d2SGeorge KeishingCreate Error On BMC And Verify If Trap Is Sent 1879e5626d2SGeorge Keishing [Documentation] Generate error on BMC and verify if trap is sent. 1889e5626d2SGeorge Keishing [Arguments] ${event_log}=${CMD_INTERNAL_FAILURE} ${expected_error}=${SNMP_TRAP_BMC_INTERNAL_FAILURE} 1899e5626d2SGeorge Keishing 1909e5626d2SGeorge Keishing # Description of argument(s): 1919e5626d2SGeorge Keishing # event_log Event logs to be created. 1929e5626d2SGeorge Keishing # expected_error Expected error on SNMP. 1939e5626d2SGeorge Keishing 1949e5626d2SGeorge Keishing Configure SNMP Manager On BMC ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT} Valid 1959e5626d2SGeorge Keishing 1969e5626d2SGeorge Keishing Start SNMP Manager 1979e5626d2SGeorge Keishing BMC Execute Command ${event_log} 1989e5626d2SGeorge Keishing SSHLibrary.Switch Connection snmp_server 1999e5626d2SGeorge Keishing ${SNMP_LISTEN_OUT}= Read delay=1s 2009e5626d2SGeorge Keishing Delete SNMP Manager And Object ${SNMP_MGR1_IP} ${SNMP_DEFAULT_PORT} 2019e5626d2SGeorge Keishing SSHLibrary.Execute Command sudo killall snmptrapd 2029e5626d2SGeorge Keishing ${lines} = Split To Lines ${SNMP_LISTEN_OUT} 2039e5626d2SGeorge Keishing ${trap_info}= Get From List ${lines} -1 2049e5626d2SGeorge Keishing ${SNMP_TRAP} = Split String ${trap_info} \t 2059e5626d2SGeorge Keishing 2069e5626d2SGeorge Keishing Should Contain ${SNMP_TRAP}[0] DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: 2079e5626d2SGeorge Keishing Should Be Equal ${SNMP_TRAP}[1] SNMPv2-MIB::snmpTrapOID.0 = OID: SNMPv2-SMI::enterprises.49871.1.0.0.1 2089e5626d2SGeorge Keishing Should Match Regexp ${SNMP_TRAP}[2] SNMPv2-SMI::enterprises.49871.1.0.1.1 = Gauge32: \[0-9]* 2099e5626d2SGeorge Keishing Should Match Regexp ${SNMP_TRAP}[3] SNMPv2-SMI::enterprises.49871.1.0.1.2 = Opaque: UInt64: \[0-9]* 2109e5626d2SGeorge Keishing Should Match Regexp ${SNMP_TRAP}[4] SNMPv2-SMI::enterprises.49871.1.0.1.3 = INTEGER: \[0-9] 2119e5626d2SGeorge Keishing Should Be Equal ${SNMP_TRAP}[5] SNMPv2-SMI::enterprises.49871.1.0.1.4 = STRING: "${expected_error}" 2129e5626d2SGeorge Keishing 213409df05dSGeorge Keishing RETURN ${SNMP_TRAP} 2149e5626d2SGeorge Keishing 2159e5626d2SGeorge Keishing 2169e5626d2SGeorge KeishingGenerate Error And Verify System Up Time 2179e5626d2SGeorge Keishing [Documentation] Generate error and verify system up time. 2189e5626d2SGeorge Keishing 2199e5626d2SGeorge Keishing # Get system uptime on BMC. 2209e5626d2SGeorge Keishing # Example output of uptime: 2219e5626d2SGeorge Keishing # (8055.79 15032.86) 2229e5626d2SGeorge Keishing 2239e5626d2SGeorge Keishing ${cmd_output} ${stderr} ${rc}= BMC Execute Command cat /proc/uptime 2249e5626d2SGeorge Keishing @{times}= Split String ${cmd_output} 2259e5626d2SGeorge Keishing 2269e5626d2SGeorge Keishing ${bmc_uptime_in_minutes}= Evaluate int(${times}[0])/60 2279e5626d2SGeorge Keishing 2289e5626d2SGeorge Keishing ${trap}= Create Error On BMC And Verify If Trap Is Sent 2299e5626d2SGeorge Keishing 2309e5626d2SGeorge Keishing # Extract System up time from SNMP trap. 2319e5626d2SGeorge Keishing # Example - SNMP trap: 2329e5626d2SGeorge Keishing # DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (252367) 0:42:03.67 2339e5626d2SGeorge Keishing # SNMPv2-MIB::snmpTrapOID.0 = OID: SNMPv2-SMI::enterprises.49871.1.0.0.1 2349e5626d2SGeorge Keishing # SNMPv2-SMI::enterprises.49871.1.0.1.1 = Gauge32: 54 2359e5626d2SGeorge Keishing # SNMPv2-SMI::enterprises.49871.1.0.1.2 = Opaque: UInt64: 4622921648578756984 2369e5626d2SGeorge Keishing # SNMPv2-SMI::enterprises.49871.1.0.1.3 = INTEGER: 3 2379e5626d2SGeorge Keishing # SNMPv2-SMI::enterprises.49871.1.0.1.4 = STRING: 2389e5626d2SGeorge Keishing 2399e5626d2SGeorge Keishing @{words}= Split String ${trap}[0] = 2409e5626d2SGeorge Keishing 2419e5626d2SGeorge Keishing ${timeticks}= Fetch From Right ${words}[1] ( 2429e5626d2SGeorge Keishing ${snmp_sysuptime}= Fetch From Left ${timeticks} ) 2439e5626d2SGeorge Keishing 2449e5626d2SGeorge Keishing # SNMP SysUptime will be in milli seconds. 2459e5626d2SGeorge Keishing # Convert into minutes. 2469e5626d2SGeorge Keishing ${sysuptime_in_minutes}= Evaluate int(${snmp_sysuptime})/6000 2479e5626d2SGeorge Keishing 2489e5626d2SGeorge Keishing Should Be Equal As Integers ${bmc_uptime_in_minutes} ${sysuptime_in_minutes} 2499e5626d2SGeorge Keishing 250409df05dSGeorge Keishing RETURN ${sysuptime_in_minutes} 251