diff --git a/data/ipmi_raw_cmd_table.py b/data/ipmi_raw_cmd_table.py
index 7a5cbea..bc8c69c 100644
--- a/data/ipmi_raw_cmd_table.py
+++ b/data/ipmi_raw_cmd_table.py
@@ -193,7 +193,17 @@
             "00 00 00 00 00 00 00 00 00 00 00 00",
             "When the payload is activated, the first four bytes are the session ID,"
             "otherwise it should be 00."
-        ]
+        ],
+        'Get_User_Access_Payload':
+        [
+            # raw command,
+            "0x06 0x4d"
+        ],
+        'Set_User_Access_Payload':
+        [
+            # raw command,
+            "0x06 0x4c"
+        ],
     },
     'BIOS_POST_Code':
     {
diff --git a/ipmi/test_ipmi_payload.robot b/ipmi/test_ipmi_payload.robot
index ed9d47c..8fb65a4 100644
--- a/ipmi/test_ipmi_payload.robot
+++ b/ipmi/test_ipmi_payload.robot
@@ -3,7 +3,20 @@
 
 Resource            ../lib/ipmi_client.robot
 Resource            ../lib/openbmc_ffdc.robot
+Resource            ../lib/bmc_network_utils.robot
 Variables           ../data/ipmi_raw_cmd_table.py
+Library             ../lib/ipmi_utils.py
+
+
+Test Teardown       FFDC On Test Case Fail
+
+
+*** Variables ***
+${user_priv}                    2
+${operator_priv}                3
+${admin_level_priv}             4
+${no_access_priv}               15
+${new_user_passwd}             0penBmc1
 
 
 *** Test Cases ***
@@ -67,6 +80,40 @@
     Should Not Contain  ${resp}  ${IPMI_RAW_CMD['Payload']['Get_Payload_Instance_Info'][1]}
 
 
+Verify Set User Access Payload For Standard Payload SOL
+    [Documentation]  Disable standard payload for SOL and verify IPMI sol activate command does not work.
+    [Tags]  Verify_Set_User_Access_Payload_For_Standard_Payload_SOL
+    [Teardown]  Run Keywords  Set User Access Payload For Given User  ${user_id_in_hex}
+    ...  AND  Delete Created User  ${userid}
+    ...  AND  FFDC On Test Case Fail
+
+    ${userid}  ${username}=  Create And Verify IPMI User
+    ${user_id_in_hex}=  Convert To Hex  ${userid}
+    ${userid_in_hex_format}=  Convert To Hex  ${userid}  prefix=0x  length=2
+
+    # Get default user access payload values.
+    ${default_user_access_payload}=  Get User Access Payload For Given Channel  ${userid_in_hex_format}
+
+    # Disable Standard payload 1 via set user access payload command.
+    Set User Access Payload For Given User  ${user_id_in_hex}  Disable
+
+    Verify Standard Payload  ${userid_in_hex_format}  ${username}  Disabled
+
+
+Verify Set User Access Payload For Operator Privileged User
+    [Documentation]  Try to set user access payload using operator privileged user and expect error.
+    [Tags]  Verify_Set_User_Access_Payload_For_Operator_Privileged_User
+    [Teardown]  Run Keywords  Delete Created User  ${userid}  AND  FFDC On Test Case Fail
+
+    ${userid}  ${username}=  Create And Verify IPMI User  ${operator_priv}  Operator
+
+    ${payload_raw_cmd}=  Catenate  ${IPMI_RAW_CMD['Payload']['Set_User_Access_Payload'][0]}
+    ...  ${CHANNEL_NUMBER} 0x${user_id} 0x02 0x00 0x00 0x00
+
+    Run Keyword and Expect Error  *Unable to establish IPMI*
+    ...  Run External IPMI Raw Command  ${payload_raw_cmd}  U=${userid}  P=${new_user_passwd}  L=Operator
+
+
 *** Keywords ***
 
 Get Payload Activation Status
@@ -96,3 +143,142 @@
     ${resp}=  Run IPMI Command
     ...  ${IPMI_RAW_CMD['Payload']['Deactivate_Payload'][0]}
     Should Be Empty  ${resp}
+
+
+Get User Access Payload For Given Channel
+    [Documentation]  Execute get user access payload IPMI command for given channel
+    ...              and return response.
+    [Arguments]  ${user_id}  ${channel_number}=${CHANNEL_NUMBER}
+
+    # Description of argument(s):
+    # user_id         The user ID (e.g. "1", "2", etc.).
+    # channel_number  Input channel number(e.g. "1", "2").
+
+    ${raw_command}=  Catenate  ${IPMI_RAW_CMD['Payload']['Get_User_Access_Payload'][0]}
+    ...  ${channel_number} ${user_id}
+    ${resp}=  Run External IPMI Raw Command  ${raw_command}
+    [Return]  ${resp}
+
+
+Create And Verify IPMI User
+    [Documentation]  Create IPMI User, set password, set privilege and enable the user.
+    [Arguments]  ${user_privilege_level}=${admin_level_priv}   ${privilege}=Administrator
+
+    # Description of argument(s):
+    # user_privilege_level   User Privilege level in integer.
+    #                        (e.g. 4-Administrator, 3-Operator, 2-Readonly).
+    # privilege              User Privilege in Wordings.
+    #                        (e.g. "Administrator", "Operator", "ReadOnly").
+
+    ${random_user_id}  ${random_user_name}=  Create Random IPMI User
+    Set User Password  ${random_user_id}  ${new_user_passwd}  16
+    Set And Verify User Access Privilege  ${random_user_id}  ${user_privilege_level}
+    Verify Username And Password  ${random_user_name}  ${new_user_passwd}  L=${privilege}
+
+    [Return]  ${random_user_id}  ${random_user_name}
+
+
+Set User Password
+    [Documentation]  Set user password for given user ID.
+    [Arguments]  ${user_id}  ${password}  ${password_option}
+
+    # Description of argument(s):
+    # user_id          The user ID (e.g. "1", "2", etc.).
+    # password         The user password (e.g. "0penBmc", "0penBmc1", etc.).
+    # password_option  Password length option to be given in IPMI command (e.g. "16", "20").
+
+    Run IPMI Standard Command  user set password ${user_id} ${password} ${password_option}
+
+Set And Verify User Access Privilege
+    [Documentation]  Set User Access Privilege, enable and verify user for given user ID.
+    [Arguments]  ${user_id}  ${privilege_level}
+
+    # Description of argument(s):
+    # user_id           The user ID (e.g. "1", "2", etc.).
+    # privilege_level   User Privilege level in hex value.
+    #                   (e.g. 0x04-Administrator, 0x03-Operator, 0x02-Readonly).
+
+    Set Channel Access  ${_user_id}  ipmi=on privilege=${privilege_level}
+
+    # Delay added for user privilege to get set.
+    Sleep  5s
+
+    Enable IPMI User And Verify  ${user_id}
+
+
+Verify Username And Password
+    [Documentation]  Verify that newly created user is able to run IPMI command
+    ...  with given username and password.
+    [Arguments]  ${username}  ${password}  &{options}
+
+    # Description of argument(s):
+    # username    The user name (e.g. "root", "robert", etc.).
+    # password    The user password (e.g. "0penBmc", "0penBmc1", etc.).
+    # options     Additional ipmitool command options  (e.g "-L=Operator","-C=3").
+
+    Wait Until Keyword Succeeds  15 sec  5 sec  Run External IPMI Raw Command
+    ...  ${IPMI_RAW_CMD['Device GUID']['Get'][0]}  U=${username}  P=${password}  &{options}
+
+
+Verify Standard Payload
+    [Documentation]  Verify standard payload is disabled or enabled.
+    [Arguments]  ${user_id}  ${user_name}  ${standard_payload}=Enabled
+
+    # Description of argument(s):
+    # user_id            The user ID (e.g. "1", "2", etc.).
+    # username           The user name (e.g. "root", "robert", etc.).
+    # standard_payload   Enabled or Disabled.
+
+    # Verify the standard payload 1 (sol) is disabled.
+    ${get_user_access_payload}=  Get User Access Payload For Given Channel  ${user_id}
+    @{get_user_access_cmd_resp_list}=  Split String  ${get_user_access_payload}
+
+    Run Keyword If  '${standard_payload}' == 'Disabled'
+    ...  Should Be Equal  ${get_user_access_cmd_resp_list}[0]  00
+    ...  ELSE
+    ...  Should Be Equal  ${get_user_access_cmd_resp_list}[0]  02
+
+    Run Keyword If  '${standard_payload}' == 'Disabled'
+    ...  Verify Sol Activate Disabled  ${user_name}
+
+
+Verify Sol Activate Disabled
+    [Documentation]  Verify SOL activate IPMI command is not working.
+    [Arguments]  ${user_name}
+
+    # Description of argument(s):
+    # username    The user name (e.g. "root", "robert", etc.).
+
+    ${resp}=  Run External IPMI Standard Command
+    ...  sol activate  expected_rc=${1}  U=${username}  P=${new_user_passwd}
+
+    Should Contain  ${resp}  SOL payload disabled
+
+
+Set User Access Payload For Given User
+    [Documentation]  Set the user access payload on given user, channel and return response.
+    [Arguments]  ${user_id}  ${operation_mode}=Enable  ${oempayload_value}=0x00  ${standard_payload_value}=0x02
+
+    # Description of argument(s):
+    # user_id                  The user ID (e.g. "1", "2", etc.).
+    # operation_mode          Enable or Disable payload type.
+    # oempayload_value        Oempayload in hex (e.g. "0x00", "0x01", "0x02", "0x04" etc).
+    # standard_payload_value  Standard payload type IPMI or SOL.
+    #                         (e.g.  0x01 - IPMI, 0x02- SOL).
+
+    # If operation mode is disable 2nd byte of raw command is 4${user_id}.
+    # (e.g) 2n byte will be 0x4a (if user_id is a).
+    # If operation mode is enable 2nd byte of raw command is 0${user_id}.
+    # (e.g.) 3rd byte will be 0x0a (if user_id is a).
+    # 0x02- standard payload for SOL, 0x01 standard payload for IPMI.
+    # 3rd byte represent standard payload enables 1 (SOL).
+    # 4th to 6th byte represent standard payload enables 2 and OEM payload 1 & 2 respectively.
+
+    ${operation_mode_value}=  Set Variable If  '${operation_mode}' == 'Enable'
+    ...  0  4
+    ${set_cmd}=  Catenate  ${IPMI_RAW_CMD['Payload']['Set_User_Access_Payload'][0]}
+    ...  ${CHANNEL_NUMBER} 0x${operation_mode_value}${user_id} ${standard_payload_value} 0x00 ${oempayload_value} 0x00
+
+    ${resp}=  Run IPMI Command  ${set_cmd}
+
+    [Return]  ${resp}
\ No newline at end of file
diff --git a/ipmi/test_ipmi_user.robot b/ipmi/test_ipmi_user.robot
index a1d2c7e..5f2511a 100644
--- a/ipmi/test_ipmi_user.robot
+++ b/ipmi/test_ipmi_user.robot
@@ -521,27 +521,6 @@
 
 *** Keywords ***
 
-Create Random IPMI User
-    [Documentation]  Create IPMI user with random username and userid and return those fields.
-
-    ${random_username}=  Generate Random String  8  [LETTERS]
-    ${random_userid}=  Find Free User Id
-    IPMI Create User  ${random_userid}  ${random_username}
-    [Return]  ${random_userid}  ${random_username}
-
-
-Enable IPMI User And Verify
-    [Documentation]  Enable the userid and verify that it has been enabled.
-    [Arguments]  ${userid}
-
-    # Description of argument(s):
-    # userid   A numeric userid (e.g. "4").
-
-    Run IPMI Standard Command  user enable ${userid}
-    ${user_info}=  Get User Info  ${userid}
-    Valid Value  user_info['enable_status']  ['enabled']
-
-
 Set Default Password For IPMI Root User
     [Documentation]  Set default password for IPMI root user (i.e. 0penBmc).
     # Set default password for root user.
@@ -655,16 +634,6 @@
     FFDC On Test Case Fail
 
 
-Delete Created User
-    [Documentation]  Delete created IPMI user.
-    [Arguments]  ${userid}
-    # Description of argument(s):
-    # userid  The user ID (e.g. "1", "2", etc.).
-
-    Run IPMI Standard Command  user set name ${userid} ""
-    Sleep  5s
-
-
 Check Active Ethernet Channels
     [Documentation]  Check active ethernet channels and set suite variables.
 
@@ -795,4 +764,4 @@
 
         Exit For Loop If  ${is_empty} == ${True}
     END
-    [Return]  ${random_userid}
+    [Return]  ${random_userid}
\ No newline at end of file
diff --git a/lib/ipmi_client.robot b/lib/ipmi_client.robot
index 52e46c7..f856bf4 100755
--- a/lib/ipmi_client.robot
+++ b/lib/ipmi_client.robot
@@ -404,6 +404,37 @@
     Should Be Equal  ${user_info['user_name']}  ${username}
 
 
+Enable IPMI User And Verify
+    [Documentation]  Enable the userid and verify that it has been enabled.
+    [Arguments]  ${userid}
+
+    # Description of argument(s):
+    # userid   A numeric userid (e.g. "4").
+
+    Run IPMI Standard Command  user enable ${userid}
+    ${user_info}=  Get User Info  ${userid}
+    Valid Value  user_info['enable_status']  ['enabled']
+
+
+Create Random IPMI User
+    [Documentation]  Create IPMI user with random username and userid and return those fields.
+
+    ${random_username}=  Generate Random String  8  [LETTERS]
+    ${random_userid}=  Evaluate  random.randint(2, 15)  modules=random
+    IPMI Create User  ${random_userid}  ${random_username}
+    [Return]  ${random_userid}  ${random_username}
+
+
+Delete Created User
+    [Documentation]  Delete created IPMI user.
+    [Arguments]  ${userid}
+    # Description of argument(s):
+    # userid  The user ID (e.g. "1", "2", etc.).
+
+    Run IPMI Standard Command  user set name ${userid} ""
+    Sleep  5s
+
+
 Set Channel Access
     [Documentation]  Verify that user is able to run IPMI command
     ...  with given username and password.
@@ -572,4 +603,4 @@
 
     ${resp}=  Run External IPMI Raw Command  ${ipmi_cmd}  fail_on_err=0
 
-    Should Contain  ${resp}  rsp=${error_code}
+    Should Contain  ${resp}  rsp=${error_code}
\ No newline at end of file
