diff --git a/redfish/managers/test_bmc_ipv6.robot b/redfish/managers/test_bmc_ipv6.robot
new file mode 100644
index 0000000..87b8a30
--- /dev/null
+++ b/redfish/managers/test_bmc_ipv6.robot
@@ -0,0 +1,138 @@
+*** Settings ***
+Documentation  Network interface IPv6 configuration and verification
+               ...  tests.
+
+Resource       ../../lib/bmc_redfish_resource.robot
+Resource       ../../lib/openbmc_ffdc.robot
+Resource       ../../lib/bmc_ipv6_utils.robot
+Library        ../../lib/bmc_network_utils.py
+Library        Collections
+
+Test Setup     Test Setup Execution
+Test Teardown  Test Teardown Execution
+
+
+*** Variables ***
+${test_ipv6_addr}          2001:db8:3333:4444:5555:6666:7777:8888
+${test_ipv6_invalid_addr}  2001:db8:3333:4444:5555:6666:7777:JJJJ
+
+# Valid prefix length is a intiger ranges from 1 to 128.
+${test_prefix_lenght}     64
+
+
+*** Test Cases ***
+
+Get IPv6 Address And Verify
+    [Documentation]  Get IPv6 Address And Verify.
+    [Tags]  Get_IPv6_Address_And_Verify
+
+    FOR  ${ipv6_network_configuration}  IN  @{ipv6_network_configurations}
+      Verify IPv6 On BMC  ${ipv6_network_configuration['Address']}
+    END
+
+
+*** Keywords ***
+
+Test Setup Execution
+    [Documentation]  Test setup execution.
+
+    Redfish.Login
+
+    @{ipv6_network_configurations}=  Get IPv6 Network Configuration
+    Set Test Variable  @{ipv6_network_configurations}
+
+    # Get BMC IPv6 address and prefix length.
+    ${ipv6_data}=  Get BMC IPv6 Info
+    Set Test Variable  ${ipv6_data}
+
+
+Test Teardown Execution
+    [Documentation]  Test teardown execution.
+
+    FFDC On Test Case Fail
+    Redfish.Logout
+
+
+Get IPv6 Network Configuration
+    [Documentation]  Get Ipv6 network configuration.
+    # Sample output:
+    # {
+    #  "@odata.id": "/redfish/v1/Managers/bmc/EthernetInterfaces/eth0",
+    #  "@odata.type": "#EthernetInterface.v1_4_1.EthernetInterface",
+    #   "DHCPv4": {
+    #    "DHCPEnabled": false,
+    #    "UseDNSServers": false,
+    #    "UseDomainName": true,
+    #    "UseNTPServers": false
+    #  },
+    #  "DHCPv6": {
+    #    "OperatingMode": "Disabled",
+    #    "UseDNSServers": false,
+    #    "UseDomainName": true,
+    #    "UseNTPServers": false
+    #  },
+    #  "Description": "Management Network Interface",
+    #  "FQDN": "localhost",
+    #  "HostName": "localhost",
+    #  "IPv4Addresses": [
+    #    {
+    #      "Address": "xx.xx.xx.xx",
+    #      "AddressOrigin": "Static",
+    #      "Gateway": "xx.xx.xx.1",
+    #      "SubnetMask": "xx.xx.xx.0"
+    #    },
+    #    {
+    #      "Address": "169.254.xx.xx",
+    #      "AddressOrigin": "IPv4LinkLocal",
+    #      "Gateway": "0.0.0.0",
+    #      "SubnetMask": "xx.xx.0.0"
+    #    },
+    #  ],
+    #  "IPv4StaticAddresses": [
+    #    {
+    #      "Address": "xx.xx.xx.xx",
+    #      "AddressOrigin": "Static",
+    #      "Gateway": "xx.xx.xx.1",
+    #      "SubnetMask": "xx.xx.0.0"
+    #    }
+    # }
+    #  ],
+    #  "IPv6AddressPolicyTable": [],
+    #  "IPv6Addresses": [
+    #    {
+    #      "Address": "fe80::xxxx:xxxx:xxxx:xxxx",
+    #      "AddressOrigin": "LinkLocal",
+    #      "AddressState": null,
+    #      "PrefixLength": xx
+    #    }
+    #  ],
+    #  "IPv6DefaultGateway": "",
+    #  "IPv6StaticAddresses": [
+    #    { "Address": "xxxx:xxxx:xxxx:xxxx::xxxx",
+    #      "AddressOrigin": "Static",
+    #      "AddressState": null,
+    #      "PrefixLength": xxx
+    #    }
+    #  ],
+    #  "Id": "eth0",
+    #  "InterfaceEnabled": true,
+    #  "LinkStatus": "LinkUp",
+    #  "MACAddress": "xx:xx:xx:xx:xx:xx",
+    #  "Name": "Manager Ethernet Interface",
+    #  "NameServers": [],
+    #  "SpeedMbps": 0,
+    #  "StaticNameServers": [],
+    #  "Status": {
+    #    "Health": "OK",
+    #    "HealthRollup": "OK",
+    #    "State": "Enabled"
+    #  },
+    #  "VLANs": {
+    #    "@odata.id": "/redfish/v1/Managers/bmc/EthernetInterfaces/eth0/VLANs"
+
+
+    ${active_channel_config}=  Get Active Channel Config
+    ${resp}=  Redfish.Get  ${REDFISH_NW_ETH_IFACE}${active_channel_config['${CHANNEL_NUMBER}']['name']}
+
+    @{ipv6_network_configurations}=  Get From Dictionary  ${resp.dict}  IPv6StaticAddresses
+    [Return]  @{ipv6_network_configurations}
