diff --git a/redfish/managers/test_bmc_ipv6.robot b/redfish/managers/test_bmc_ipv6.robot
index 78a8af2..d11a4a1 100644
--- a/redfish/managers/test_bmc_ipv6.robot
+++ b/redfish/managers/test_bmc_ipv6.robot
@@ -114,11 +114,11 @@
     Verify IPv6 On BMC  ${test_ipv6_addr}
 
 
-Enable SLAACv6 On BMC And Verify
-    [Documentation]  Enable SLAACv6 on BMC and verify.
-    [Tags]  Enable_SLAACv6_On_BMC_And_Verify
+Enable SLAAC On BMC And Verify
+    [Documentation]  Enable SLAAC on BMC and verify.
+    [Tags]  Enable_SLAAC_On_BMC_And_Verify
 
-    Set SLAACv6 Configuration State And Verify  ${True}
+    Set SLAAC Configuration State And Verify  ${True}
 
 
 Enable DHCPv6 Property On BMC And Verify
@@ -198,18 +198,17 @@
 Verify BMC Gets SLAAC Address On Enabling SLAAC
     [Documentation]  On enabling SLAAC verify SLAAC address comes up.
     [Tags]  Verify_BMC_Gets_SLAAC_Address_On_Enabling_SLAAC
-    [Setup]  Set SLAACv6 Configuration State And Verify  ${False}
+    [Setup]  Set SLAAC Configuration State And Verify  ${False}
 
-    Set SLAACv6 Configuration State And Verify  ${True}
+    Set SLAAC Configuration State And Verify  ${True}
     Sleep  ${NETWORK_TIMEOUT}
-    Check BMC Gets SLAACv6 Address
+    Check BMC Gets SLAAC Address
 
 
 Enable And Verify DHCPv6 Property On Eth1 When DHCPv6 Property Enabled On Eth0
     [Documentation]  Verify DHCPv6 on eth1 when DHCPv6 property is enabled on eth0.
     [Tags]  Enable_And_Verify_DHCPv6_Property_On_Eth1_When_DHCPv6_Property_Enabled_On_Eth0
-    [Setup]  Run Keywords  Get The Initial DHCPv6 Setting  ${1}  dhcpv6_channel_1
-    ...  AND  Get The Initial DHCPv6 Setting  ${2}  dhcpv6_channel_2
+    [Setup]  Get The Initial DHCPv6 Settings
     [Teardown]  Run Keywords  Set And Verify DHCPv6 Property  ${dhcpv6_channel_1}  ${1}
     ...  AND  Set And Verify DHCPv6 Property  ${dhcpv6_channel_2}  ${2}
 
@@ -217,6 +216,20 @@
     Set And Verify DHCPv6 Property  Enabled  ${2}
 
 
+Enable And Verify SLAAC Property On Eth1 When SLAAC Property Enabled On Eth0
+    [Documentation]  Enable and verify SLAAC property on Eth1 when SLAAC property enabled on Eth0.
+    [Tags]  Enable_And_Verify_SLAAC_Property_On_Eth1_When_SLAAC_Property_Enabled_On_Eth0
+    [Setup]  Get The Initial SLAAC Settings
+    [Teardown]  Run Keywords  Set SLAAC Configuration State And Verify  ${slaac_channel_1}  [${HTTP_OK}]  ${1}
+    ...  AND  Set SLAAC Configuration State And Verify  ${slaac_channel_2}  [${HTTP_OK}]  ${2}
+
+    Set SLAAC Configuration State And Verify   ${True}  [${HTTP_OK}]  ${1}
+    Set SLAAC Configuration State And Verify   ${True}  [${HTTP_OK}]  ${2}
+
+    # Check all the addresses and address origins remain intact.
+    Verify All The Addresses Are Intact
+
+
 *** Keywords ***
 
 Suite Setup Execution
@@ -230,6 +243,14 @@
 
     Set Suite variable  ${ethernet_interface}
 
+    ${initial_ipv4_addressorigin_list}  ${initial_ipv4_addr_list}=  Get Address Origin List And IPv4 or IPv6 Address  IPv4Addresses
+    ${initial_ipv6_addressorigin_list}  ${initial_ipv6_addr_list}=  Get Address Origin List And IPv4 or IPv6 Address  IPv6Addresses
+
+    Set Suite Variable   ${initial_ipv4_addressorigin_list}
+    Set Suite Variable   ${initial_ipv4_addr_list}
+    Set Suite Variable   ${initial_ipv6_addressorigin_list}
+    Set Suite Variable   ${initial_ipv6_addr_list}
+
 
 Test Setup Execution
     [Documentation]  Test setup execution.
@@ -578,13 +599,14 @@
     Validate IPv6 Network Config On BMC
 
 
-Set SLAACv6 Configuration State And Verify
-    [Documentation]  Set SLAACv6 configuration state and verify.
-    [Arguments]  ${slaac_state}  ${valid_status_codes}=[${HTTP_OK},${HTTP_ACCEPTED},${HTTP_NO_CONTENT}]
+Set SLAAC Configuration State And Verify
+    [Documentation]  Set SLAAC configuration state and verify.
+    [Arguments]  ${slaac_state}  ${valid_status_codes}=[${HTTP_OK},${HTTP_ACCEPTED},${HTTP_NO_CONTENT}]  ${channel_number}=${CHANNEL_NUMBER}
 
     # Description of argument(s):
-    # slaac_state         SLAACv6 state('True' or 'False').
+    # slaac_state         SLAAC state('True' or 'False').
     # valid_status_code   Expected valid status codes.
+    # channel_number      Channel number 1(eth0) or 2(eth1).
 
     ${active_channel_config}=  Get Active Channel Config
     ${ethernet_interface}=  Set Variable  ${active_channel_config['${CHANNEL_NUMBER}']['name']}
@@ -593,12 +615,12 @@
     ${resp}=  Redfish.Patch  ${REDFISH_NW_ETH_IFACE}${ethernet_interface}
     ...  body=${data}  valid_status_codes=${valid_status_codes}
 
-    # Verify SLAACv6 is set correctly.
+    # Verify SLAAC is set correctly.
     ${resp}=  Redfish.Get  ${REDFISH_NW_ETH_IFACE}${ethernet_interface}
     ${slaac_verify}=  Get From Dictionary  ${resp.dict}  StatelessAddressAutoConfig
 
     IF  '${slaac_verify['IPv6AutoConfigEnabled']}' != '${slaac_state}'
-        Fail  msg=SLAACv6 not set properly.
+        Fail  msg=SLAAC not set properly.
     END
 
 Set And Verify DHCPv6 Property
@@ -814,9 +836,7 @@
     # Verify the address origin contains static and linklocal.
     @{ipv6_addressorigin_list}  ${ipv6_linklocal_addr}=  Get Address Origin List And Address For Type  LinkLocal
 
-    Should Not Be Empty  ${ipv6_linklocal_addr}  msg=LinkLocal address is not present.
     Should Match Regexp  ${ipv6_linklocal_addr}        ${linklocal_addr_format}
-    Should Contain       ${ipv6_addressorigin_list}    LinkLocal
     Should Contain       ${ipv6_addressorigin_list}    Static
 
 
@@ -825,8 +845,6 @@
 
     # Fetch the linklocal address.
     @{ipv6_addressorigin_list}  ${ipv6_linklocal_addr}=  Get Address Origin List And Address For Type  LinkLocal
-    Should Contain  ${ipv6_addressorigin_list}  LinkLocal
-    Should Not Be Empty  ${ipv6_linklocal_addr}  msg=LinkLocal address is not present.
 
     # Follow EUI64 from MAC.
     ${system_mac}=  Get BMC MAC Address
@@ -842,27 +860,58 @@
     Should Be Equal  ${linklocal}  ${ipv6_linklocal_addr}
 
 
-Check BMC Gets SLAACv6 Address
-    [Documentation]  Check BMC gets slaacv6 address.
+Check BMC Gets SLAAC Address
+    [Documentation]  Check BMC gets slaac address.
 
     @{ipv6_addressorigin_list}  ${ipv6_slaac_addr}=  Get Address Origin List And Address For Type  SLAAC
 
-    Should Contain  ${ipv6_addressorigin_list}  SLAAC
-    Should Not Be Empty  ${ipv6_slaac_addr}  msg=SLAACv6 address is not present.
 
-
-Get The Initial DHCPv6 Setting
-    [Documentation]  Get the initial DHCPv6 setting and store in a variable.
-    [Arguments]  ${channel_number}  ${initial_dhcpv6_before}
+Get The Initial DHCPv6 Setting On Each Interface
+    [Documentation]  Get the initial DHCPv6 setting of each interface.
+    [Arguments]  ${channel_number}
 
     # Description of the argument(s):
-    # channel_number         Channel number 1 or 2.
-    # initial_dhcpv6_before  Variable to store initial DHCPv6 setting.
+    # channel_number    Channel number 1 or 2.
 
     ${ethernet_interface}=  Set Variable  ${active_channel_config['${channel_number}']['name']}
     ${resp}=  Redfish.Get  ${REDFISH_NW_ETH_IFACE}${ethernet_interface}
     ${initial_dhcpv6_iface}=  Get From Dictionary  ${resp.dict}  DHCPv6
-    Set Test Variable  ${${initial_dhcpv6_before}}  ${initial_dhcpv6_iface['OperatingMode']}
+    IF  ${channel_number}==${1}
+        Set Test Variable  ${dhcpv6_channel_1}  ${initial_dhcpv6_iface['OperatingMode']}
+    ELSE
+        Set Test Variable  ${dhcpv6_channel_2}  ${initial_dhcpv6_iface['OperatingMode']}
+    END
+
+
+Get The Initial DHCPv6 Settings
+    [Documentation]  Get the initial DHCPv6 settings of both the interfaces.
+
+    Get The Initial DHCPv6 Setting On Each Interface  ${1}
+    Get The Initial DHCPv6 Setting On Each Interface  ${2}
+
+
+Get The Initial SLAAC Settings
+    [Documentation]  Get the initial SLAAC settings of both the interfaces.
+
+    Get The Initial SLAAC Setting On Each Interface  ${1}
+    Get The Initial SLAAC Setting On Each Interface   ${2}
+
+
+Get The Initial SLAAC Setting On Each Interface
+    [Documentation]  Get the initial SLAAC setting of the interface.
+    [Arguments]  ${channel_number}
+
+    # Description of the argument(s):
+    # channel_number     Channel number 1 or 2.
+
+    ${ethernet_interface}=  Set Variable  ${active_channel_config['${channel_number}']['name']}
+    ${resp}=  Redfish.Get  ${REDFISH_NW_ETH_IFACE}${ethernet_interface}
+    ${initial_slaac_iface}=  Get From Dictionary  ${resp.dict}  StatelessAddressAutoConfig
+    IF  ${channel_number}==${1}
+        Set Test Variable  ${slaac_channel_1}  ${initial_slaac_iface['IPv6AutoConfigEnabled']}
+    ELSE
+        Set Test Variable  ${slaac_channel_2}  ${initial_slaac_iface['IPv6AutoConfigEnabled']}
+    END
 
 
 Get Address Origin List And Address For Type
@@ -884,4 +933,48 @@
             Set Test Variable  ${ipv6_type_addr}  ${ipv6_address['Address']}
         END
     END
+    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}
+
+
+Get Address Origin List And IPv4 or IPv6 Address
+    [Documentation]  Get address origin list and address for type.
+    [Arguments]  ${ip_address_type}
+
+    # Description of the argument(s):
+    # ipv4_address_type  Type of IPv4 or IPv6 address to be checked.
+
+    ${resp}=  Redfish.Get  ${REDFISH_NW_ETH_IFACE}${active_channel_config['${CHANNEL_NUMBER}']['name']}
+    @{ip_addresses}=  Get From Dictionary  ${resp.dict}  ${ip_address_type}
+
+    ${ip_addressorigin_list}=  Create List
+    ${ip_addr_list}=  Create List
+    FOR  ${ip_address}  IN  @{ip_addresses}
+        ${ip_addressorigin}=  Get From Dictionary  ${ip_address}  AddressOrigin
+        Append To List  ${ip_addressorigin_list}  ${ip_addressorigin}
+        Append To List  ${ip_addr_list}  ${ip_address['Address']}
+    END
+    RETURN  ${ip_addressorigin_list}  ${ip_addr_list}
+
+
+Verify All The Addresses Are Intact
+    [Documentation]  Verify all the addresses and address origins remain intact.
+
+    # Verify that it will not impact the IPv4 configuration.
+    Sleep  ${NETWORK_TIMEOUT}
+    Wait For Host To Ping  ${OPENBMC_HOST}  ${NETWORK_TIMEOUT}
+
+    # IPv6 address must be present.
+    @{ipv6_addressorigin_list}  ${ipv6_slaac_addr}=  Get Address Origin List And Address For Type  SLAAC
+    @{ipv6_addressorigin_list}  ${ipv6_linklocal_addr}=  Get Address Origin List And Address For Type  LinkLocal
+
+    # IPv4 and IPv6 addresses must remain intact.
+    ${ipv4_addressorigin_list}  ${ipv4_addr_list}=  Get Address Origin List And IPv4 or IPv6 Address  IPv4Addresses
+    ${ipv6_addressorigin_list}  ${ipv6_addr_list}=  Get Address Origin List And IPv4 or IPv6 Address  IPv6Addresses
+
+    ${ipv6_is_subset}=  Evaluate  set(${initial_ipv6_addr_list}).issubset(set(${ipv6_addr_list}))
+    Should Be True  ${ipv6_is_subset}
+
+    Should be Equal  ${initial_ipv4_addressorigin_list}  ${ipv4_addressorigin_list}
+    Should be Equal  ${initial_ipv4_addr_list}  ${ipv4_addr_list}
