diff --git a/redfish/events/test_bmc_snmp_config.robot b/redfish/events/test_bmc_snmp_config.robot
new file mode 100644
index 0000000..377567b
--- /dev/null
+++ b/redfish/events/test_bmc_snmp_config.robot
@@ -0,0 +1,250 @@
+*** Settings ***
+Documentation  This testing requires special setup where SNMP trapd is
+...            configured and installed. For download, installation and
+...            configuration refer http://www.net-snmp.org/.
+
+Resource        ../../lib/snmp/resource.robot
+Resource        ../../lib/snmp/snmp_utils.robot
+Resource        ../../lib/openbmc_ffdc.robot
+Resource        ../../lib/logging_utils.robot
+
+Library         String
+Library         SSHLibrary
+
+Test Teardown   FFDC On Test Case Fail
+
+Force Tags      BMC_SNMP_Config
+
+*** Variables ***
+
+${CMD_INTERNAL_FAILURE}  busctl call xyz.openbmc_project.Logging /xyz/openbmc_project/logging
+...  xyz.openbmc_project.Logging.Create Create ssa{ss} xyz.openbmc_project.Common.Error.InternalFailure
+...  xyz.openbmc_project.Logging.Entry.Level.Error 0
+
+${CMD_FRU_CALLOUT}  busctl call xyz.openbmc_project.Logging /xyz/openbmc_project/logging
+...  xyz.openbmc_project.Logging.Create Create ssa{ss} xyz.openbmc_project.Common.Error.Timeout
+...  xyz.openbmc_project.Logging.Entry.Level.Error 2 "TIMEOUT_IN_MSEC" "5"
+...  "CALLOUT_INVENTORY_PATH" "/xyz/openbmc_project/inventory/system/chassis/motherboard"
+
+${CMD_INFORMATIONAL_ERROR}  busctl call xyz.openbmc_project.Logging /xyz/openbmc_project/logging
+...  xyz.openbmc_project.Logging.Create Create ssa{ss} xyz.openbmc_project.Common.Error.TestError2
+...  xyz.openbmc_project.Logging.Entry.Level.Informational 0
+
+${CMD_DEBUG_TRABALL_ERROR}=  /tmp/tarball/bin/logging-test -c AutoTestSimple
+${SNMP_TRAP_BMC_INTERNAL_FAILURE}  xyz.openbmc_project.Common.Error.InternalFailure
+${SNMP_TRAP_BMC_CALLOUT_ERROR}  xyz.openbmc_project.Common.Error.Timeout
+${SNMP_TRAP_BMC_INFORMATIONAL_ERROR}  xyz.openbmc_project.Common.Error.TestError2
+
+*** Test Cases ***
+Configure SNMP Manager On BMC And Verify
+    [Documentation]  Configure SNMP Manager On BMC And Verify.
+    [Tags]  Configure_SNMP_Manager_On_BMC_And_Verify
+
+    Configure SNMP Manager On BMC  ${SNMP_MGR1_IP}  ${SNMP_DEFAULT_PORT}  Valid
+    Verify SNMP Manager  ${SNMP_MGR1_IP}  ${SNMP_DEFAULT_PORT}
+
+    Delete SNMP Manager And Object  ${SNMP_MGR1_IP}  ${SNMP_DEFAULT_PORT}
+
+Configure SNMP Manager On BMC With Non Default Port And Verify
+    [Documentation]  Configure SNMP Manager On BMC And Verify.
+    [Tags]  Configure_SNMP_Manager_On_BMC_With_Non_Default_Port_And_Verify
+
+    Configure SNMP Manager On BMC  ${SNMP_MGR1_IP}  ${NON_DEFAULT_PORT1}  Valid
+    Verify SNMP Manager  ${SNMP_MGR1_IP}  ${NON_DEFAULT_PORT1}
+
+    Delete SNMP Manager And Object  ${SNMP_MGR1_IP}  ${NON_DEFAULT_PORT1}
+
+Configure SNMP Manager On BMC With Out Of Range Port And Verify
+    [Documentation]  Configure SNMP Manager On BMC with out-of range port and verify.
+    [Tags]  Configure_SNMP_Manager_On_BMC_With_Out_Of_Range_Port_And_Verify
+    [Template]  Configure SNMP Manager On BMC
+
+    # SNMP manager IP  Port                  Scenario
+    ${SNMP_MGR1_IP}    ${out_of_range_port}  error
+
+Configure SNMP Manager On BMC With Alpha Port And Verify
+    [Documentation]  Configure SNMP Manager On BMC with alpha port and verify.
+    [Tags]  Configure_SNMP_Manager_On_BMC_With_Alpha_Port_And_Verify
+    [Template]  Configure SNMP Manager On BMC
+
+    # SNMP manager IP  Port           Scenario
+    ${SNMP_MGR1_IP}    ${alpha_port}  error
+
+Configure SNMP Manager On BMC With Negative Port And Verify
+    [Documentation]  Configure SNMP Manager On BMC with negative port and verify.
+    [Tags]  Configure_SNMP_Manager_On_BMC_With_Negative_Port_And_Verify
+    [Template]  Configure SNMP Manager On BMC
+
+    # SNMP manager IP  Port              Scenario
+    ${SNMP_MGR1_IP}    ${negative_port}  error
+
+Configure SNMP Manager On BMC With Empty Port And Verify
+    [Documentation]  Configure SNMP Manager On BMC with empty port and verify.
+    [Tags]  Configure_SNMP_Manager_On_BMC_With_Empty_Port_And_Verify
+    [Template]  Configure SNMP Manager On BMC
+
+    # SNMP manager IP  Port           Scenario
+    ${SNMP_MGR1_IP}    ${empty_port}  error
+
+Configure SNMP Manager On BMC With Out Of Range IP And Verify
+    [Documentation]  Configure SNMP Manager On BMC with out-of range IP and verify.
+    [Tags]  Configure_SNMP_Manager_On_BMC_With_Out_Of_Range_IP_And_Verify
+    [Template]  Configure SNMP Manager On BMC
+
+    # SNMP manager IP   Port                  Scenario
+    ${out_of_range_ip}  ${SNMP_DEFAULT_PORT}  error
+
+Configure Multiple SNMP Managers And Verify
+    [Documentation]  Configure multiple SNMP Managers And Verify.
+    [Tags]  Configure_Multiple_SNMP_Managers_And_Verify
+
+    Configure SNMP Manager On BMC  ${SNMP_MGR1_IP}  ${SNMP_DEFAULT_PORT}  Valid
+    Configure SNMP Manager On BMC  ${SNMP_MGR2_IP}  ${SNMP_DEFAULT_PORT}  Valid
+    Verify SNMP Manager  ${SNMP_MGR1_IP}  ${SNMP_DEFAULT_PORT}
+    Verify SNMP Manager  ${SNMP_MGR2_IP}  ${SNMP_DEFAULT_PORT}
+
+    Delete SNMP Manager And Object  ${SNMP_MGR1_IP}  ${SNMP_DEFAULT_PORT}
+    Delete SNMP Manager And Object  ${SNMP_MGR2_IP}  ${SNMP_DEFAULT_PORT}
+
+Configure Multiple SNMP Managers With Non Default Port And Verify
+    [Documentation]  Configure multiple SNMP Managers with non-default port And Verify.
+    [Tags]  Configure_Multiple_SNMP_Managers_With_Non_Default_Port_And_Verify
+
+    Configure SNMP Manager On BMC  ${SNMP_MGR1_IP}  ${NON_DEFAULT_PORT1}  Valid
+    Configure SNMP Manager On BMC  ${SNMP_MGR2_IP}  ${NON_DEFAULT_PORT1}  Valid
+    Verify SNMP Manager  ${SNMP_MGR1_IP}  ${NON_DEFAULT_PORT1}
+    Verify SNMP Manager  ${SNMP_MGR2_IP}  ${NON_DEFAULT_PORT1}
+
+    Delete SNMP Manager And Object  ${SNMP_MGR1_IP}  ${NON_DEFAULT_PORT1}
+    Delete SNMP Manager And Object  ${SNMP_MGR2_IP}  ${NON_DEFAULT_PORT1}
+
+Configure Multiple SNMP Managers With Different Ports And Verify
+    [Documentation]  Configure multiple SNMP Managers with different ports And Verify.
+    [Tags]  Configure_Multiple_SNMP_Managers_With_Different_Ports_And_Verify
+
+    Configure SNMP Manager On BMC  ${SNMP_MGR1_IP}  ${SNMP_DEFAULT_PORT}  Valid
+    Configure SNMP Manager On BMC  ${SNMP_MGR2_IP}  ${NON_DEFAULT_PORT1}  Valid
+    Configure SNMP Manager On BMC  ${SNMP_MGR3_IP}  ${NON_DEFAULT_PORT2}  Valid
+
+    Verify SNMP Manager  ${SNMP_MGR1_IP}  ${SNMP_DEFAULT_PORT}
+    Verify SNMP Manager  ${SNMP_MGR2_IP}  ${NON_DEFAULT_PORT1}
+    Verify SNMP Manager  ${SNMP_MGR3_IP}  ${NON_DEFAULT_PORT2}
+
+    Delete SNMP Manager And Object  ${SNMP_MGR1_IP}  ${SNMP_DEFAULT_PORT}
+    Delete SNMP Manager And Object  ${SNMP_MGR2_IP}  ${NON_DEFAULT_PORT1}
+    Delete SNMP Manager And Object  ${SNMP_MGR3_IP}  ${NON_DEFAULT_PORT2}
+
+Generate Error On BMC And Verify If Trap Is Sent
+    [Documentation]  Generate Error On BMC And Verify If Trap Is Sent.
+    [Tags]  Generate_Error_On_BMC_And_Verify_If_Trap_Is_Sent
+    [Setup]  Install Tarball
+    [Template]  Create Error On BMC And Verify If Trap Is Sent
+
+    # event_log                   expected_error
+    ${CMD_DEBUG_TRABALL_ERROR}    ${SNMP_TRAP_BMC_ERROR}
+
+Generate Error On BMC And Verify Trap On SNMP
+    [Documentation]  Generate error on bmc and verify trap on SNMP.
+    [Tags]  Generate_Error_On_BMC_And_Verify_Trap_On_SNMP
+    [Template]  Create Error On BMC And Verify If Trap Is Sent
+
+     # event_log                  expected_error
+     ${CMD_INTERNAL_FAILURE}      ${SNMP_TRAP_BMC_INTERNAL_FAILURE}
+     ${CMD_FRU_CALLOUT}           ${SNMP_TRAP_BMC_CALLOUT_ERROR}
+     ${CMD_INFORMATIONAL_ERROR}   ${SNMP_TRAP_BMC_INFORMATIONAL_ERROR}
+
+Configure SNMP Manager With Less Octet IP And Verify
+     [Documentation]  Configure SNMP manager on BMC with less octet IP and verify.
+     [Tags]  Configure_SNMP_Manager_With_Less_Octet_IP_And_Verify
+     [Template]  Configure SNMP Manager On BMC
+
+     # SNMP manager IP   Port                  Scenario
+     10.10.10            ${SNMP_DEFAULT_PORT}  error
+
+Verify SNMP SysUpTime
+    [Documentation]  Verify SNMP SysUpTime.
+    [Tags]  Verify_SNMP_SysUpTime
+
+    Generate Error And Verify System Up Time
+
+
+Verify SNMP SysUpTime On BMC Reboot
+    [Documentation]  Verify SNMP SysUpTime on BMC reboot.
+    [Tags]  Verify_SNMP_SysUpTime_On_BMC_Reboot
+
+    # Reboot BMC to reset system uptime.
+    OBMC Reboot (off)
+
+    ${uptime}=  Generate Error And Verify System Up Time
+
+    # Check if uptime is reset after reboot.
+    Should Be True  ${uptime} <= 1  msg=SNMP SysUpTime is not reset on reboot
+
+
+*** Keywords ***
+
+Create Error On BMC And Verify If Trap Is Sent
+    [Documentation]  Generate error on BMC and verify if trap is sent.
+    [Arguments]  ${event_log}=${CMD_INTERNAL_FAILURE}  ${expected_error}=${SNMP_TRAP_BMC_INTERNAL_FAILURE}
+
+    # Description of argument(s):
+    # event_log                           Event logs to be created.
+    # expected_error                      Expected error on SNMP.
+
+    Configure SNMP Manager On BMC  ${SNMP_MGR1_IP}  ${SNMP_DEFAULT_PORT}  Valid
+
+    Start SNMP Manager
+    BMC Execute Command  ${event_log}
+    SSHLibrary.Switch Connection  snmp_server
+    ${SNMP_LISTEN_OUT}=  Read  delay=1s
+    Delete SNMP Manager And Object  ${SNMP_MGR1_IP}  ${SNMP_DEFAULT_PORT}
+    SSHLibrary.Execute Command  sudo killall snmptrapd
+    ${lines} =  Split To Lines 	 ${SNMP_LISTEN_OUT}
+    ${trap_info}=  Get From List  ${lines}  -1
+    ${SNMP_TRAP} =  Split String  ${trap_info}  \t
+
+    Should Contain  ${SNMP_TRAP}[0]  DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks:
+    Should Be Equal  ${SNMP_TRAP}[1]  SNMPv2-MIB::snmpTrapOID.0 = OID: SNMPv2-SMI::enterprises.49871.1.0.0.1
+    Should Match Regexp  ${SNMP_TRAP}[2]  SNMPv2-SMI::enterprises.49871.1.0.1.1 = Gauge32: \[0-9]*
+    Should Match Regexp  ${SNMP_TRAP}[3]  SNMPv2-SMI::enterprises.49871.1.0.1.2 = Opaque: UInt64: \[0-9]*
+    Should Match Regexp  ${SNMP_TRAP}[4]  SNMPv2-SMI::enterprises.49871.1.0.1.3 = INTEGER: \[0-9]
+    Should Be Equal  ${SNMP_TRAP}[5]  SNMPv2-SMI::enterprises.49871.1.0.1.4 = STRING: "${expected_error}"
+
+    [Return]  ${SNMP_TRAP}
+
+
+Generate Error And Verify System Up Time
+    [Documentation]  Generate error and verify system up time.
+
+    # Get system uptime on BMC.
+    # Example output of uptime:
+    # (8055.79 15032.86)
+
+    ${cmd_output}   ${stderr}  ${rc}=  BMC Execute Command  cat /proc/uptime
+    @{times}=  Split String  ${cmd_output}
+
+    ${bmc_uptime_in_minutes}=  Evaluate  int(${times}[0])/60
+
+    ${trap}=  Create Error On BMC And Verify If Trap Is Sent
+
+    # Extract System up time from SNMP trap.
+    # Example - SNMP trap:
+    # DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (252367) 0:42:03.67
+    # SNMPv2-MIB::snmpTrapOID.0 = OID: SNMPv2-SMI::enterprises.49871.1.0.0.1
+    # SNMPv2-SMI::enterprises.49871.1.0.1.1 = Gauge32: 54
+    # SNMPv2-SMI::enterprises.49871.1.0.1.2 = Opaque: UInt64: 4622921648578756984
+    # SNMPv2-SMI::enterprises.49871.1.0.1.3 = INTEGER: 3
+    # SNMPv2-SMI::enterprises.49871.1.0.1.4 = STRING:
+
+    @{words}=  Split String  ${trap}[0]  =
+
+    ${timeticks}=  Fetch From Right  ${words}[1]  (
+    ${snmp_sysuptime}=  Fetch From Left  ${timeticks}  )
+
+    # SNMP SysUptime will be in milli seconds.
+    # Convert into minutes.
+    ${sysuptime_in_minutes}=  Evaluate  int(${snmp_sysuptime})/6000
+
+    Should Be Equal As Integers  ${bmc_uptime_in_minutes}  ${sysuptime_in_minutes}
+
+    [Return]  ${sysuptime_in_minutes}
