Test Management Controller ID String Status via IPMI.

Test cases added:
    - Test Management Controller ID String Status via IPMI
    - Test Management Controller ID String Status via Raw IPMI

Change-Id: Iaa75e0c0fac3ccc35b766e90baf17f24b413e77f
Signed-off-by: Rahul Maheshwari <rahulmaheshwari@in.ibm.com>
diff --git a/data/ipmi_raw_cmd_table.py b/data/ipmi_raw_cmd_table.py
index 57805f6..3265fb0 100644
--- a/data/ipmi_raw_cmd_table.py
+++ b/data/ipmi_raw_cmd_table.py
@@ -45,5 +45,22 @@
             "dc d5 00 d5 00 d5 00 d5 00 00 00 00 00 00 00 00 00 00",
             "Byte position 2nd LSB e.g. d5 Instantaneous power readings",
         ],
+    },
+    'conf_param':
+    {
+        'Enabled':
+        [
+            # raw command, expected output, comment
+            "0x2c 0x12 0xdc 0x02 0x00 0x01",
+            "dc",
+            "Enabled nibble position 6th LSB e.g. 0x01",
+        ],
+        'Disabled':
+        [
+            # raw command, expected output, comment
+            "0x2c 0x12 0xdc 0x02 0x00 0x00",
+            "dc",
+            "Disable nibble position 6th LSB e.g. 0x00",
+        ]
     }
 }
diff --git a/test_lists/witherspoon/skip_test_witherspoon_GA1 b/test_lists/witherspoon/skip_test_witherspoon_GA1
index 1557026..a2b5d1f 100755
--- a/test_lists/witherspoon/skip_test_witherspoon_GA1
+++ b/test_lists/witherspoon/skip_test_witherspoon_GA1
@@ -40,6 +40,8 @@
 -e OCC_Active_Enable_And_Disable
 -e SDR_Test
 -e Test Turbo Processor Speed
+-e Test_Management_Controller_ID_String_Status_via_IPMI
+-e Test_Management_Controller_ID_String_Status_via_Raw_IPMI
 # NA for GA1 service pack.
 -e Verify_Core_Dump_Size
 -e REST_Upload_Stability_Test
diff --git a/tests/ipmi/test_general_ipmi.robot b/tests/ipmi/test_general_ipmi.robot
index 305ac2e..7145ede 100644
--- a/tests/ipmi/test_general_ipmi.robot
+++ b/tests/ipmi/test_general_ipmi.robot
@@ -87,6 +87,32 @@
     Get Management Controller ID String And Verify  ${initial_mc_id}
 
 
+Test Management Controller ID String Status via IPMI
+    [Documentation]  Test management controller ID string status via IPMI.
+    [Tags]  Test_Management_Controller_ID_String_Status_via_IPMI
+
+    # Disable management controller ID string status via IPMI and verify.
+    Run IPMI Standard Command  dcmi set_conf_param dhcp_config 0x00
+    Verify Management Controller ID String Status  disable
+
+    # Enable management controller ID string status via IPMI and verify.
+    Run IPMI Standard Command  dcmi set_conf_param dhcp_config 0x01
+    Verify Management Controller ID String Status  enable
+
+
+Test Management Controller ID String Status via Raw IPMI
+    [Documentation]  Test management controller ID string status via IPMI.
+    [Tags]  Test_Management_Controller_ID_String_Status_via_Raw_IPMI
+
+    # Disable management controller ID string status via raw IPMI and verify.
+    Run IPMI Standard Command  raw ${IPMI_RAW_CMD['conf_param']['Disabled'][0]}
+    Verify Management Controller ID String Status  disable
+
+    # Enable management controller ID string status via raw IPMI and verify.
+    Run IPMI Standard Command  raw ${IPMI_RAW_CMD['conf_param']['Enabled'][0]}
+    Verify Management Controller ID String Status  enable
+
+
 Verify Chassis Identify via IPMI
     [Documentation]  Verify "chassis identify" using IPMI command.
     [Tags]  Verify_Chassis_Identify_via_IPMI
@@ -663,6 +689,25 @@
     ...  Verify Power Reading Using REST  ${power_reading['instantaneous_power_reading']}
 
 
+Verify Management Controller ID String Status
+    [Documentation]  Verify management controller ID string status via IPMI.
+    [Arguments]  ${status}
+
+    # Example of dcmi get_conf_param command output:
+    # DHCP Discovery method   :
+    #           Management Controller ID String is disabled
+    #           Vendor class identifier DCMI IANA and Vendor class-specific Informationa are disabled
+    #   Initial timeout interval        : 4 seconds
+    #   Server contact timeout interval : 120 seconds
+    #   Server contact retry interval   : 64 seconds
+
+    ${resp}=  Run IPMI Standard Command  dcmi get_conf_param
+    ${resp}=  Get Lines Containing String  ${resp}
+    ...  Management Controller ID String  case_insensitive=True
+    Should Contain  ${resp}  ${status}
+    ...  msg=Management controller ID string is not ${status}
+
+
 Verify Power Reading Using REST
     [Documentation]  Verify power reading using REST.
     [Arguments]  ${power_reading}