Added vmi multiple interfaces testcases

         -Added vmi multiple interface suite with below testcases
         -Configure VMI Both Interfaces In Same Subnet And Verify
         -Configure VMI Both Interfaces In Different Subnet And Verify

Change-Id: I2eaf860192bd95f7621ef719743788a46cd17b49
Signed-off-by: shrsuman123 <shrsuman@in.ibm.com>
diff --git a/openpower/ext_interfaces/test_vmi_multiple_interfaces.robot b/openpower/ext_interfaces/test_vmi_multiple_interfaces.robot
new file mode 100644
index 0000000..72d7db8
--- /dev/null
+++ b/openpower/ext_interfaces/test_vmi_multiple_interfaces.robot
@@ -0,0 +1,99 @@
+*** Settings ***
+
+Documentation    VMI multiple network interface tests.
+
+# This includes test scenarios where VMI has multiple interfaces.
+# So,assigns and verifies the combination of network mode in interfaces.
+
+Resource         ../../lib/external_intf/vmi_utils.robot
+
+Suite Setup       Suite Setup Execution
+Test Teardown     FFDC On Test Case Fail
+Suite Teardown    Suite Teardown Execution
+
+*** Variables ***
+
+${test_ipv4_1}              10.6.6.6
+${test_gateway_1}           10.6.6.1
+${test_netmask_1}           255.255.252.0
+
+${test_ipv4_2}              10.5.20.5
+${test_gateway_2}           10.5.20.1
+${test_netmask_2}           255.255.255.0
+${test_ipv4_3}              10.6.4.6
+
+*** Test Cases ***
+
+Configure VMI Both Interfaces In Same Subnet And Verify
+    [Documentation]  Configure VMI both interfaces in same subnet and verify.
+    [Tags]  Configure_VMI_Both_Interfaces_In_Same_Subnet_And_Verify
+    [Teardown]  Test Teardown Execution
+
+    Set Static IPv4 Address To VMI And Verify  ${test_ipv4_1}  ${test_gateway_1}
+    ...  ${test_netmask_1}
+    Set Static IPv4 Address To VMI And Verify  ${test_ipv4_3}  ${test_gateway_1}
+    ...  ${test_netmask_1}  ${HTTP_ACCEPTED}  ${interface_list}[1]
+
+Configure VMI Both Interfaces In Different Subnet And Verify
+    [Documentation]  Configure VMI both interfaces in different subnet and verify.
+    [Tags]  Configure_VMI_Both_Interfaces_In_Different_Subnet_And_Verify
+    [Teardown]  Test Teardown Execution
+
+    Set Static IPv4 Address To VMI And Verify  ${test_ipv4_1}  ${test_gateway_1}
+    ...  ${test_netmask_1}
+    Set Static IPv4 Address To VMI And Verify  ${test_ipv4_2}  ${test_gateway_2}
+    ...  ${test_netmask_2}  ${HTTP_ACCEPTED}  ${interface_list}[1]
+
+*** Keywords ***
+
+Suite Setup Execution
+    [Documentation]  Do suite setup execution task.
+
+    Redfish.Login
+    Redfish Power On  stack_mode=skip  quiet=1
+    Get Original Vmi Details
+
+
+Test Teardown Execution
+    [Documentation]  Do test teardown execution task.
+
+    FOR  ${interface}  IN   @{interface_list}
+        Delete VMI IPv4 Address  IPv4StaticAddresses  ${HTTP_ACCEPTED}  ${interface}
+    END
+
+    FFDC On Test Case Fail
+
+
+Get Original Vmi Details
+    [Documentation]  Get original details of VMI.
+
+    @{interface_list}=  Get VMI Interfaces
+    Set Suite Variable  @{interface_list}
+
+    FOR  ${interface}  IN   @{interface_list}
+        ${resp}=  Redfish.Get
+        ...  /redfish/v1/Systems/hypervisor/EthernetInterfaces/${interface}
+        ${ip_resp}=  Evaluate  json.loads(r'''${resp.text}''')  json
+        ${length}=  Get Length  ${ip_resp["IPv4StaticAddresses"]}
+        ${vmi_network_conf}=  Catenate  SEPARATOR=_   vmi_network_conf  ${interface}
+        ${vmi_network_conf_value}=  Run Keyword If  ${length} != ${0}
+        ...  Get VMI Network Interface Details  ${interface}
+        Set Suite Variable  ${${vmi_network_conf}}  ${vmi_network_conf_value}
+    END
+
+
+Suite Teardown Execution
+    [Documentation]  Do suite teardown execution task
+    ...  Set original vmi details and verify.
+
+    FOR  ${interface}  IN   @{interface_list}
+        Run Keyword If  ${vmi_network_conf_${interface}} != ${None}
+        ...  Set Static IPv4 Address To VMI And Verify
+        ...  ${vmi_network_conf_${interface}}[IPv4_Address]
+        ...  ${vmi_network_conf_${interface}}[IPv4_Gateway]
+        ...  ${vmi_network_conf_${interface}}[IPv4_SubnetMask]
+        ...  ${HTTP_ACCEPTED}  ${interface}
+    END
+
+    Redfish.Logout
+