diff --git a/redfish/managers/test_bmc_ipv6.robot b/redfish/managers/test_bmc_ipv6.robot
index 9759a67..913ace8 100644
--- a/redfish/managers/test_bmc_ipv6.robot
+++ b/redfish/managers/test_bmc_ipv6.robot
@@ -15,7 +15,7 @@
 
 *** Variables ***
 ${test_ipv6_addr}          2001:db8:3333:4444:5555:6666:7777:8888
-${test_ipv6_invalid_addr}  2001:db8:3333:4444:5555:6666:7777:JJJJ
+${test_ipv6_invalid_addr}  2001:db8:3333:4444:5555:6666:7777:JJKK
 
 # Valid prefix length is a intiger ranges from 1 to 128.
 ${test_prefix_lenght}     64
@@ -50,6 +50,26 @@
     Verify IPv6 Default Gateway On BMC  ${ipv6_gateway}
 
 
+Verify All Configured IPv6 And PrefixLength On BMC
+    [Documentation]  Verify IPv6 address and its prefix length on BMC.
+    [Tags]  Verify_All_Configured_IPv6_And_PrefixLength_On_BMC
+
+    FOR  ${ipv6_network_configuration}  IN  @{ipv6_network_configurations}
+      Verify IPv6 And PrefixLength On BMC  ${ipv6_network_configuration['Address']}
+      ...  ${ipv6_network_configuration['PrefixLength']}
+    END
+
+
+Configure IPv6 Address And Verify
+    [Documentation]  Configure IPv6 address and verify.
+    [Tags]  Configure_IPv6_Address_And_Verify
+    [Template]  Configure IPv6 Address On BMC
+
+
+    # IPv6 address     Prefix length
+    ${test_ipv6_addr}  ${test_prefix_length}
+
+
 *** Keywords ***
 
 Suite Setup Execution
@@ -164,3 +184,90 @@
 
     @{ipv6_network_configurations}=  Get From Dictionary  ${resp.dict}  IPv6StaticAddresses
     [Return]  @{ipv6_network_configurations}
+
+
+Verify IPv6 And PrefixLength
+    [Documentation]  Verify IPv6 address and prefix length on BMC.
+    [Arguments]  ${ipv6_addr}  ${prefix_len}
+
+    # Description of the argument(s):
+    # ipv6_addr   IPv6 address to be verified.
+    # prefix_len  PrefixLength value to be verified.
+
+    # Catenate IPv6 address and its prefix length.
+    ${ipv6_with_prefix}=  Catenate  ${ipv6_addr}/${prefix_len}
+
+    # Get IPv6 address details on BMC using IP command.
+    @{ip_data}=  Get BMC IPv6 Info
+
+    # Verify if IPv6 and prefix length is configured on BMC.
+
+    Should Contain  ${ip_data}  ${ipv6_with_prefix}
+    ...  msg=IPv6 and prefix length pair does not exist.
+
+
+Configure IPv6 Address On BMC
+    [Documentation]  Add IPv6 Address on BMC.
+    [Arguments]  ${ipv6_addr}  ${prefix_len}  ${valid_status_codes}=${HTTP_OK}
+
+    # Description of argument(s):
+    # ipv6_addr           IPv6 address to be added (e.g. "2001:EEEE:2222::2022").
+    # prefix_len          Prefix length for the IPv6 to be added
+    #                     (e.g. "64").
+    # valid_status_codes  Expected return code from patch operation
+    #                     (e.g. "200").
+
+    ${empty_dict}=  Create Dictionary
+    ${ipv6_data}=  Create Dictionary  Address=${ipv6_addr}
+    ...  PrefixLength=${prefix_len}
+
+    ${patch_list}=  Create List
+
+    # Get existing static IPv6 configurations on BMC.
+    ${ipv6_network_configurations}=  Get IPv6 Network Configuration
+    ${num_entries}=  Get Length  ${ipv6_network_configurations}
+
+    FOR  ${INDEX}  IN RANGE  0  ${num_entries}
+      Append To List  ${patch_list}  ${empty_dict}
+    END
+
+    ${valid_status_codes}=  Run Keyword If  '${valid_status_codes}' == '${HTTP_OK}'
+    ...  Set Variable   ${HTTP_OK},${HTTP_NO_CONTENT}
+    ...  ELSE  Set Variable  ${valid_status_codes}
+
+    # We need not check for existence of IPv6 on BMC while adding.
+    Append To List  ${patch_list}  ${ipv6_data}
+    ${data}=  Create Dictionary  IPv6StaticAddresses=${patch_list}
+
+    ${active_channel_config}=  Get Active Channel Config
+    ${ethernet_interface}=  Set Variable  ${active_channel_config['${CHANNEL_NUMBER}']['name']}
+
+    Redfish.patch  ${REDFISH_NW_ETH_IFACE}${ethernet_interface}  body=&{data}
+    ...  valid_status_codes=[${valid_status_codes}]
+
+    Return From Keyword If  '${valid_status_codes}' != '${HTTP_OK},${HTTP_NO_CONTENT}'
+
+    # Note: Network restart takes around 15-18s after patch request processing.
+    Sleep  ${NETWORK_TIMEOUT}s
+    Wait For Host To Ping  ${OPENBMC_HOST}  ${NETWORK_TIMEOUT}
+
+    Verify IPv6 And PrefixLength  ${ipv6_addr}  ${prefix_len}
+
+    # Verify if existing static IPv6 addresses still exist.
+    FOR  ${ipv6_network_configuration}  IN  @{ipv6_network_configurations}
+      Verify IPv6 On BMC  ${ipv6_network_configuration['Address']}
+    END
+
+    Validate IPv6 Network Config On BMC
+
+
+Validate IPv6 Network Config On BMC
+    [Documentation]  Check that IPv6 network info obtained via redfish matches info
+    ...              obtained via CLI.
+    @{network_configurations}=  Get IPv6 Network Configuration
+    ${ipv6_data}=  Get BMC IPv6 Info
+    FOR  ${ipv6_network_configuration}  IN  @{ipv6_network_configurations}
+      Should Contain Match  ${ipv6_data}  ${ipv6_network_configuration['Address']}/*
+      ...  msg=IPv6 address does not exist.
+    END
+
