Added coexistence of different combination of ipv6 address type

Changes:
    - Added the test case:
    Verify Coexistence Of All IPv6 Type Addresses Combination On BMC

    Tested:
        Ran and Tested on BMC Environment.
Change-Id: I2f93ccd1f9f3960cf827138fba37810aa6dd95c0
Signed-off-by: Abhijith Naik <Abhijith.Naik@ibm.com>
diff --git a/redfish/managers/test_bmc_ipv6.robot b/redfish/managers/test_bmc_ipv6.robot
index 5a9d572..1ba79a4 100644
--- a/redfish/managers/test_bmc_ipv6.robot
+++ b/redfish/managers/test_bmc_ipv6.robot
@@ -392,6 +392,24 @@
     ...    ${ipv6_leading_zero}  ${test_prefix_length}  ${ipv6_eliminate_zero}
 
 
+Verify Coexistence Of IPv6 Addresses Type Combination On BMC
+    [Documentation]  Verify coexistence of IPv6 addresses type combination on BMC.
+    [Tags]  Verify_Coexistence_Of_IPv6_Addresses_Type_Combination_On_BMC
+    [Setup]  Run Keywords
+    ...    Get The Initial DHCPv6 Setting On Each Interface  ${1}
+    ...    AND  Get The Initial SLAAC Setting On Each Interface  ${1}
+    [Teardown]  Run Keywords
+    ...    Set And Verify DHCPv6 Property  ${dhcpv6_channel_1}  ${1}
+    ...    AND  Set SLAAC Configuration State And Verify  ${slaac_channel_1}  [${HTTP_OK}]  ${1}
+    [Template]  Verify IPv6 Addresses Coexist
+
+   # type1  type2.
+    Static  DHCPv6
+    DHCPv6  SLAAC
+    SLAAC   Static
+    Static  Static
+
+
 *** Keywords ***
 
 Suite Setup Execution
@@ -1353,3 +1371,42 @@
     Verify All The Addresses Are Intact  ${1}
     Verify All The Addresses Are Intact  ${2}
     ...    ${eth1_initial_ipv4_addressorigin_list}  ${eth1_initial_ipv4_addr_list}
+
+
+Verify IPv6 Addresses Coexist
+    [Documentation]  Verify IPv6 address type coexist.
+    [Arguments]   ${ipv6_address_type1}  ${ipv6_address_type2}
+
+    # Description of the argument(s):
+    # ipv6_address_type1  IPv6 address type.
+    # ipv6_address_type2  IPv6 address type.
+    # Valid IPv6 address type (Static, DHCPv6, SLAAC).
+
+    IF  '${ipv6_address_type1}' == 'Static' and '${ipv6_address_type2}' == 'DHCPv6'
+        Configure IPv6 Address On BMC  ${test_ipv6_addr}  ${test_prefix_length}
+        Set And Verify DHCPv6 Property  Enabled
+    ELSE IF  '${ipv6_address_type1}' == 'DHCPv6' and '${ipv6_address_type2}' == 'SLAAC'
+        Set And Verify DHCPv6 Property  Enabled
+        Set SLAAC Configuration State And Verify  ${True}
+    ELSE IF  '${ipv6_address_type1}' == 'SLAAC' and '${ipv6_address_type2}' == 'Static'
+        Configure IPv6 Address On BMC  ${test_ipv6_addr}  ${test_prefix_length}
+        Set SLAAC Configuration State And Verify  ${True}
+    ELSE IF  '${ipv6_address_type1}' == 'Static' and '${ipv6_address_type2}' == 'Static'
+        Configure IPv6 Address On BMC  ${test_ipv6_addr}  ${test_prefix_length}
+        Configure IPv6 Address On BMC  ${test_ipv6_addr1}  ${test_prefix_length}
+    END
+
+    Sleep  ${NETWORK_TIMEOUT}s
+
+    # Verify coexistence.
+    Verify The Coexistence Of The Address Type  ${ipv6_address_type1}  ${ipv6_address_type2}
+
+    IF  '${ipv6_address_type1}' == 'Static' or '${ipv6_address_type2}' == 'Static'
+        Delete IPv6 Address  ${test_ipv6_addr}
+    END
+    IF  '${ipv6_address_type1}' == 'Static' and '${ipv6_address_type2}' == 'Static'
+        Delete IPv6 Address  ${test_ipv6_addr1}
+    END
+
+    Set And Verify DHCPv6 Property  Disabled
+    Set SLAAC Configuration State And Verify  ${False}