diff --git a/lib/ipmi_utils.py b/lib/ipmi_utils.py
index ed5e370..38d98f7 100644
--- a/lib/ipmi_utils.py
+++ b/lib/ipmi_utils.py
@@ -251,3 +251,46 @@
     result = vf.key_value_outbuf_to_dict(ret_values, process_indent=1)
 
     return result
+
+
+def get_sdr_info():
+
+    r"""
+    Get IPMI sdr info data and return it as a dictionary.
+
+    The data is obtained by issuing the IPMI "sdr info" command.  An
+    example is shown below:
+
+    SDR Version                         : 0x51
+    Record Count                        : 216
+    Free Space                          : unspecified
+    Most recent Addition                :
+    Most recent Erase                   :
+    SDR overflow                        : no
+    SDR Repository Update Support       : unspecified
+    Delete SDR supported                : no
+    Partial Add SDR supported           : no
+    Reserve SDR repository supported    : no
+    SDR Repository Alloc info supported : no
+
+    For the data shown above, the following dictionary will be returned.
+    mc_info:
+
+      [sdr_version]:                         0x51
+      [record_Count]:                        216
+      [free_space]:                          unspecified
+      [most_recent_addition]:
+      [most_recent_erase]:
+      [sdr_overflow]:                        no
+      [sdr_repository_update_support]:       unspecified
+      [delete_sdr_supported]:                no
+      [partial_add_sdr_supported]:           no
+      [reserve_sdr_repository_supported]:    no
+      [sdr_repository_alloc_info_supported]: no
+    """
+
+    status, ret_values = \
+        grk.run_key_u("Run IPMI Standard Command  sdr info")
+    result = vf.key_value_outbuf_to_dict(ret_values, process_indent=1)
+
+    return result
diff --git a/tests/ipmi/test_general_ipmi.robot b/tests/ipmi/test_general_ipmi.robot
index 9a0594d..7cf4294 100644
--- a/tests/ipmi/test_general_ipmi.robot
+++ b/tests/ipmi/test_general_ipmi.robot
@@ -466,8 +466,72 @@
     Should Contain X Times  ${mc_info['aux_firmware_rev_info']}  0x00  4
 
 
+Verify SDR Info
+    [Documentation]  Verify sdr info command output.
+    [Tags]  Verify_SDR_Info
+
+    # Example of SDR info command output:
+    # SDR Version                         : 0x51
+    # Record Count                        : 216
+    # Free Space                          : unspecified
+    # Most recent Addition                :
+    # Most recent Erase                   :
+    # SDR overflow                        : no
+    # SDR Repository Update Support       : unspecified
+    # Delete SDR supported                : no
+    # Partial Add SDR supported           : no
+    # Reserve SDR repository supported    : no
+    # SDR Repository Alloc info supported : no
+
+    ${sdr_info}=  Get SDR Info
+    Should Be Equal  ${sdr_info['sdr_version']}  0x51
+
+    # Get sensor count from "sdr elist all" command output.
+    ${sensor_count}=  Get Sensor Count
+    Should Be Equal As Strings
+    ...  ${sdr_info['record_count']}  ${sensor_count}
+
+    Should Be Equal  ${sdr_info['free_space']}  unspecified
+    Should Be Equal  ${sdr_info['most_recent_addition']}  ${EMPTY}
+    Should Be Equal  ${sdr_info['most_recent_erase']}  ${EMPTY}
+    Should Be Equal  ${sdr_info['sdr_overflow']}  no
+    Should Be Equal  ${sdr_info['sdr_repository_update_support']}  unspecified
+    Should Be Equal  ${sdr_info['delete_sdr_supported']}  no
+    Should Be Equal  ${sdr_info['partial_add_sdr_supported']}  no
+    Should Be Equal  ${sdr_info['reserve_sdr_repository_supported']}  no
+    Should Be Equal  ${sdr_info['sdr_repository_alloc_info_supported']}  no
+
+
 *** Keywords ***
 
+Get Sensor Count
+    [Documentation]  Get sensors count using "sdr elist all" command.
+
+    # Example of "sdr elist all" command output:
+    # BootProgress     | 03h | ok  | 34.2 |
+    # OperatingSystemS | 05h | ok  | 35.1 |
+    # AttemptsLeft     | 07h | ok  | 34.1 |
+    # occ0             | 08h | ok  | 210.1 | Device Disabled
+    # occ1             | 09h | ok  | 210.2 | Device Disabled
+    # p0_core0_temp    | 11h | ns  |  3.1 | Disabled
+    # cpu0_core0       | 12h | ok  | 208.1 | Presence detected
+    # p0_core1_temp    | 14h | ns  |  3.2 | Disabled
+    # cpu0_core1       | 15h | ok  | 208.2 | Presence detected
+    # p0_core2_temp    | 17h | ns  |  3.3 | Disabled
+    # ..
+    # ..
+    # ..
+    # ..
+    # ..
+    # ..
+    # fan3             | 00h | ns  | 29.4 | Logical FRU @35h
+    # bmc              | 00h | ns  |  6.1 | Logical FRU @3Ch
+    # ethernet         | 00h | ns  |  1.1 | Logical FRU @46h
+
+    ${output}=  Run IPMI Standard Command  sdr elist all
+    ${sensor_list}=  Split String  ${output}  \n
+    ${sensor_count}=  Get Length  ${sensor_list}
+    [Return]  ${sensor_count}
 
 Set Management Controller ID String
     [Documentation]  Set the management controller ID string.
