diff --git a/data/variables.py b/data/variables.py
index c0340bb..55eb8c0 100644
--- a/data/variables.py
+++ b/data/variables.py
@@ -18,6 +18,8 @@
 TIME_MANAGER_URI = OPENBMC_BASE_URI + 'TimeManager/'
 
 # State Manager base variables.
+BMC_REBOOT_TRANS = 'xyz.openbmc_project.State.BMC.Transition.Reboot'
+
 HOST_POWEROFF_TRANS = 'xyz.openbmc_project.State.Host.Transition.Off'
 HOST_POWERON_TRANS = 'xyz.openbmc_project.State.Host.Transition.On'
 HOST_POWEROFF_STATE = 'xyz.openbmc_project.State.Host.HostState.Off'
diff --git a/lib/state_manager.robot b/lib/state_manager.robot
index 0ff1456..97533dc 100755
--- a/lib/state_manager.robot
+++ b/lib/state_manager.robot
@@ -4,6 +4,8 @@
 
 *** Variables ***
 
+${BMC_READY_STATE}           Ready
+${BMC_NOT_READY_STATE}       NotReady
 ${QUIET}  ${0}
 
 *** Keywords ***
@@ -63,3 +65,70 @@
     ...  Read Attribute  ${CHASSIS_STATE_URI}  CurrentPowerState
     ...  quiet=${quiet}
     [Return]  ${state.rsplit('.', 1)[1]}
+
+
+Get BMC State
+    [Documentation]  Return the state of the BMC.
+    [Arguments]  ${quiet}=${QUIET}
+    # quiet - Suppress REST output logging to console.
+    ${state}=
+    ...  Read Attribute  ${BMC_STATE_URI}  CurrentBMCState  quiet=${quiet}
+    [Return]  ${state.rsplit('.', 1)[1]}
+
+
+Put BMC State
+    [Documentation]  Put BMC in given state.
+    [Arguments]  ${expected_state}
+    # expected_state - expected BMC state
+
+    ${bmc_state}=  Get BMC State
+    Run Keyword If  '${bmc_state}' == '${expected_state}'
+    ...  Log  BMC is already in ${expected_state} state
+    ...  ELSE  Run Keywords  Initiate BMC Reboot  AND
+    ...  Wait for BMC state  ${expected_state}
+
+
+Initiate BMC Reboot
+    [Documentation]  Initiate BMC reboot.
+    ${args}=  Create Dictionary   data=${BMC_REBOOT_TRANS}
+    Write Attribute
+    ...  ${BMC_STATE_URI}  RequestedBMCTransition   data=${args}
+
+    ${session_active}=   Check If BMC Reboot Is Initiated
+    Run Keyword If   '${session_active}' == '${True}'
+    ...    Fail   msg=BMC Reboot didn't occur
+
+    Check If BMC is Up
+
+Check If BMC Reboot Is Initiated
+    [Documentation]  Checks whether BMC Reboot is initiated by checking
+    ...              BMC connection loss.
+    # Reboot adds 3 seconds delay before forcing reboot
+    # To minimize race conditions, we wait for 7 seconds
+    Sleep  7s
+    ${alive}=   Run Keyword and Return Status
+    ...    Open Connection And Log In
+    Return From Keyword If   '${alive}' == '${False}'    ${False}
+    [Return]    ${True}
+
+Is BMC Ready
+    [Documentation]  Check if BMC state is Ready.
+    ${bmc_state}=  Get BMC State
+    Should Be Equal  ${BMC_READY_STATE}  ${bmc_state}
+
+Is BMC Not Ready
+    [Documentation]  Check if BMC state is Not Ready.
+    ${bmc_state}=  Get BMC State
+    Should Be Equal  ${BMC_NOT_READY_STATE}  ${bmc_state}
+
+Wait for BMC state
+    [Documentation]  Wait until given BMC state is reached.
+    [Arguments]  ${state}
+    # state - BMC state to wait for
+    Run Keyword If  '${state}' == '${BMC_READY_STATE}'
+    ...    Wait Until Keyword Succeeds
+    ...    10 min  10 sec  Is BMC Ready
+    ...  ELSE IF  '${state}' == '${BMC_NOT_READY_STATE}'
+    ...    Wait Until Keyword Succeeds
+    ...    10 min  10 sec  Is BMC Not Ready
+    ...  ELSE  Fail  msg=Invalid BMC state
