Added new script to verify IPMI cmd via lanplus interface.

And also added a case to execute lanplus multiple times.

Created new resource file with keyword which contains Few ipmi commands
to execute over lanplus interface.

We can add more ipmi commands in future.

Tested: Run robot  ipmi/test_ipmi_lanplus.robot

Signed-off-by: Nagarjun B  <nagarjunb@ami.com>
Change-Id: Ic8f559e47b908a3b12af598a6e2b0c81bf947a37
diff --git a/ipmi/test_ipmi_lanplus.robot b/ipmi/test_ipmi_lanplus.robot
new file mode 100644
index 0000000..dfc2bba
--- /dev/null
+++ b/ipmi/test_ipmi_lanplus.robot
@@ -0,0 +1,28 @@
+*** Settings ***
+
+Documentation          To Verify Lanplus interface
+
+Resource               ../lib/ipmi_client.robot
+Resource               ../lib/ipmi_utils.robot
+Variables              ../data/ipmi_raw_cmd_table.py
+Library                ../lib/ipmi_utils.py
+
+*** Variables ***
+${LOOP_COUNT}          ${1}
+
+
+*** Test Cases ***
+
+Verify Lanplus Raw IPMI Commands Multiple Times
+    [Documentation]  Verify Lanplus interface With raw ipmi command for multiple times.
+    [Tags]  Verify_Lanplus_Raw_IPMI_Commands_Multiple_Times
+
+    Repeat Keyword  ${LOOP_COUNT} times  Verify Lanplus Interface Commands
+
+
+Verify Lanplus Interface
+    [Documentation]  Verify Lanplus interface.
+    [Tags]  verify_lanplus_interface
+
+    Verify Lanplus Interface Commands
+
diff --git a/lib/ipmi_utils.robot b/lib/ipmi_utils.robot
index a4e7533..d8dac62 100644
--- a/lib/ipmi_utils.robot
+++ b/lib/ipmi_utils.robot
@@ -48,3 +48,44 @@
 
     #### raw cmd for get SEL INFO.
     Run Inband IPMI Raw Command  ${IPMI_RAW_CMD['SEL_Info']['get'][0]}
+
+Verify Lanplus Interface Commands
+    [Documentation]  Execute set of IPMI raw Command via lanplus interface and
+    ...  verify it is executable from remote server. Set of IPMI raw commands
+    ...  includes system interface command which should not execute via lanplus
+    ...  interface.
+
+    #### raw cmd for get device ID.
+    Run External IPMI Raw Command  ${IPMI_RAW_CMD['Device ID']['Get'][0]}
+
+    #### Raw cmd for cold reset.
+    Run External IPMI Raw Command  ${IPMI_RAW_CMD['Cold Reset']['reset'][0]}
+
+    Wait Until Keyword Succeeds  2 min  10 sec  Is BMC Unpingable
+    Wait Until Keyword Succeeds  3 min  10 sec  Is BMC Operational
+    ## Waiting time to get Lanplus interface enabled.
+    Wait Until Keyword Succeeds  3 min  10 sec
+    ...  Run External IPMI Raw Command  ${IPMI_RAW_CMD['Device ID']['Get'][0]}
+
+    #### raw cmd for get device GUID.
+    Run External IPMI Raw Command  ${IPMI_RAW_CMD['Device GUID']['Get'][0]}
+
+    #### raw cmd for get IP addr.
+    Run External IPMI Raw Command  ${IPMI_RAW_CMD['lan_parameters']['get_ip'][0]}
+
+    #### raw cmd for get IP addr src.
+    Run External IPMI Raw Command  ${IPMI_RAW_CMD['lan_parameters']['get_ip_src'][0]}
+
+    #### raw cmd for get Dot1Q details.
+    Run External IPMI Raw Command  ${IPMI_RAW_CMD['lan_parameters']['get_dot1q'][0]}
+
+    ## Executing system interface command on lanplus interface.
+    #### raw cmd for get SDR Info.
+    Run Keyword and Expect Error  *Insufficient privilege level*
+    ...  Run External IPMI Raw Command  ${IPMI_RAW_CMD['SDR_Info']['get'][0]}
+
+    #### raw cmd for get Chassis status.
+    Run External IPMI Raw Command  ${IPMI_RAW_CMD['Chassis_status']['get'][0]}
+
+    #### raw cmd for get SEL INFO.
+    Run External IPMI Raw Command  ${IPMI_RAW_CMD['SEL_Info']['get'][0]}