Added coexistence of link local static ipv6 dhcpv6 and SLAAC test

Changes:
    - Added the test case:
    Coexistence Of Link Local Static IPv6 DHCPv6 And SLAAC On BMC

    Tested:
        Ran and Tested on BMC Environment.
Change-Id: I381e147ccbcc022735246f8d0d340107c6e75403
Signed-off-by: Abhijith Naik <Abhijith.Naik@ibm.com>
diff --git a/lib/bmc_ipv6_utils.robot b/lib/bmc_ipv6_utils.robot
index 5854029..c393583 100644
--- a/lib/bmc_ipv6_utils.robot
+++ b/lib/bmc_ipv6_utils.robot
@@ -113,3 +113,18 @@
     Should Contain  ${ipv6_addressorigin_list}  ${ipv6_address_type}
     Should Not Be Empty  ${ipv6_type_addr}  msg=${ipv6_address_type} address is not present
     RETURN  @{ipv6_addressorigin_list}  ${ipv6_type_addr}
+
+
+Verify The Coexistence Of The Address Type
+    [Documentation]  Verify the coexistence of the address type.
+    [Arguments]  @{ipv6_address_types}
+
+    # Description of the argument(s):
+    # ipv6_address_types  Types of IPv6 address to be checked.
+
+    FOR  ${ipv6_address_type}  IN  @{ipv6_address_types}
+        @{ipv6_address_origin_list}  ${ipv6_type_addr}=
+        ...  Get Address Origin List And Address For Type  ${ipv6_address_type}
+        Should Contain    ${ipv6_address_origin_list}  ${ipv6_address_type}
+        Should Not Be Empty    ${ipv6_type_addr}  msg=${ipv6_address_type} address is not present
+    END
\ No newline at end of file
diff --git a/redfish/managers/test_bmc_ipv6.robot b/redfish/managers/test_bmc_ipv6.robot
index 7d8b902..ce17a9a 100644
--- a/redfish/managers/test_bmc_ipv6.robot
+++ b/redfish/managers/test_bmc_ipv6.robot
@@ -338,6 +338,24 @@
     Check Coexistence Of Link Local And SLAAC
 
 
+Verify Coexistence Of All IPv6 Type Addresses On BMC
+    [Documentation]  Verify coexistence of link local, static, DHCPv6 and SLAAC ipv6 addresses.
+    [Tags]  Verify_Coexistence_Of_All_IPv6_Type_Addresses_On_BMC
+    [Setup]  Run Keywords  Configure IPv6 Address On BMC  ${test_ipv6_addr}  ${test_prefix_length}
+    ...      AND  Get The Initial DHCPv6 Setting On Each Interface  ${1}
+    ...      AND  Set And Verify DHCPv6 Property  Enabled
+    ...      AND  Get The Initial SLAAC Setting On Each Interface  ${1}
+    ...      AND  Set SLAAC Configuration State And Verify  ${True}
+    [Teardown]  Run Keywords  Delete IPv6 Address  ${test_ipv6_addr}
+    ...         AND  Set And Verify DHCPv6 Property  ${dhcpv6_channel_1}  ${1}
+    ...         AND  Set SLAAC Configuration State And Verify  ${slaac_channel_1}  [${HTTP_OK}]  ${1}
+
+    Sleep  ${NETWORK_TIMEOUT}s
+
+    # Verify link local, static, DHCPv6 and SLAAC ipv6 addresses coexist.
+    Verify The Coexistence Of The Address Type  LinkLocal  Static  DHCPv6  SLAAC
+
+
 *** Keywords ***
 
 Suite Setup Execution