diff --git a/lib/ipmi_client.robot b/lib/ipmi_client.robot
index 65fec87..52bd897 100755
--- a/lib/ipmi_client.robot
+++ b/lib/ipmi_client.robot
@@ -4,6 +4,9 @@
 ...             command. IPMI raw command will use dbus-send command
 Resource        ../lib/resource.txt
 Resource        ../lib/connection_client.robot
+Resource        ../lib/utils.robot
+Resource        ../lib/state_manager.robot
+
 Library         String
 
 *** Variables ***
@@ -13,31 +16,34 @@
 ${cmdByte}=            ${EMPTY}
 ${arrayByte}=          array:byte:
 ${IPMI_EXT_CMD}=       ipmitool -I lanplus -C 3 -P
+${IPMI_INBAND_CMD}=    ipmitool -C 3
 ${HOST}=               -H
 ${RAW}=                raw
 
 *** Keywords ***
 
 Run IPMI Command
-    [Arguments]    ${args}
-    ${resp}=     Run Keyword If   '${IPMI_COMMAND}'=='External'
-    ...    Run External IPMI RAW Command   ${args}
-    ...          ELSE IF          '${IPMI_COMMAND}'=='Dbus'
-    ...    Run Dbus IPMI RAW Command   ${args}
-    ...          ELSE             Fail
-    ...    msg=Invalid IPMI Command type provided : ${IPMI_COMMAND}
-    [Return]    ${resp}
+    [Arguments]  ${args}
+    ${resp}=  Run Keyword If  '${IPMI_COMMAND}' == 'External'
+    ...  Run External IPMI RAW Command  ${args}
+    ...  ELSE IF  '${IPMI_COMMAND}' == 'Inband'
+    ...  Run Inband IPMI RAW Command  ${args}
+    ...  ELSE IF  '${IPMI_COMMAND}' == 'Dbus'
+    ...  Run Dbus IPMI RAW Command  ${args}
+    ...  ELSE  Fail  msg=Invalid IPMI Command type provided : ${IPMI_COMMAND}
+    [Return]  ${resp}
 
 Run IPMI Standard Command
-    [Arguments]    ${args}
-    ${resp}=     Run Keyword If   '${IPMI_COMMAND}'=='External'
-    ...    Run External IPMI Standard Command   ${args}
-    ...          ELSE IF          '${IPMI_COMMAND}'=='Dbus'
-    ...    Run Dbus IPMI Standard Command   ${args}
-    ...          ELSE             Fail
-    ...    msg=Invalid IPMI Command type provided : ${IPMI_COMMAND}
+    [Arguments]  ${args}
+    ${resp}=  Run Keyword If  '${IPMI_COMMAND}' == 'External'
+    ...  Run External IPMI Standard Command  ${args}
+    ...  ELSE IF  '${IPMI_COMMAND}' == 'Inband'
+    ...  Run Inband IPMI Standard Command  ${args}
+    ...  ELSE IF  '${IPMI_COMMAND}' == 'Dbus'
+    ...  Run Dbus IPMI Standard Command  ${args}
+    ...  ELSE  Fail  msg=Invalid IPMI Command type provided : ${IPMI_COMMAND}
 
-    [Return]    ${resp}
+    [Return]  ${resp}
 
 Run Dbus IPMI RAW Command
     [Arguments]    ${args}
@@ -57,6 +63,44 @@
     Should Be Equal    ${output}    ${0}    msg=${stderr}
     [Return]    ${stdout}
 
+Run Inband IPMI Raw Command
+    [Documentation]  Run Inband IPMI raw command.
+    [Arguments]  ${args}  ${os_host}=${OS_HOST}  ${os_username}=${OS_USERNAME}
+    ...          ${os_password}=${OS_PASSWORD}
+
+    # Desription of arguments:
+    # ${args}  parameters to IPMI command.
+    # ${os_host} IP address of the OS Host.
+    # ${os_username}  OS Host Login user name.
+    # ${os_password}  OS Host Login passwrd.
+
+    Login To OS Host  ${os_host}  ${os_username}  ${os_password}
+    Check If IPMI Tool Exist
+
+    ${inband_raw_cmd}=  Catenate  ${IPMI_INBAND_CMD}  ${RAW}  ${args}
+    ${stdout}  ${stderr}=  Execute Command  ${inband_raw_cmd}  return_stderr=True
+    Should Be Empty  ${stderr}  msg=${stdout}
+    [Return]  ${stdout}
+
+Run Inband IPMI Standard Command
+    [Documentation]  Run Inband IPMI standard command.
+    [Arguments]  ${args}  ${os_host}=${OS_HOST}  ${os_username}=${OS_USERNAME}
+    ...          ${os_password}=${OS_PASSWORD}
+
+    # Desription of arguments:
+    # ${args}  parameters to IPMI command.
+    # ${os_host} IP address of the OS Host.
+    # ${os_username}  OS Host Login user name.
+    # ${os_password}  OS Host Login passwrd.
+
+    Login To OS Host  ${os_host}  ${os_username}  ${os_password}
+    Check If IPMI Tool Exist
+
+    ${inband_std_cmd}=  Catenate  ${IPMI_INBAND_CMD}  ${args}
+    ${stdout}  ${stderr}=  Execute Command  ${inband_std_cmd}  return_stderr=True
+    Should Be Empty  ${stderr}  msg=${stdout}
+    [Return]  ${stdout}
+
 Run External IPMI RAW Command
     [Arguments]    ${args}
     ${ipmi_raw_cmd}=   Catenate  SEPARATOR=
@@ -75,6 +119,10 @@
     Should Be Equal    ${rc}    ${0}    msg=${output}
     [Return]   ${output}
 
+Check If IPMI Tool Exist
+    [Documentation]  Check if IPMI Tool installed or not.
+    ${output}=  Execute Command  which ipmitool
+    Should Not Be Empty  ${output}  msg=ipmitool not installed.
 
 Byte Conversion
     [Documentation]   Byte Conversion method receives IPMI RAW commands as
