diff --git a/lib/bmc_ipv6_utils.robot b/lib/bmc_ipv6_utils.robot
new file mode 100644
index 0000000..b9e88a3
--- /dev/null
+++ b/lib/bmc_ipv6_utils.robot
@@ -0,0 +1,53 @@
+*** Settings ***
+Resource                ../lib/utils.robot
+Resource                ../lib/connection_client.robot
+Resource                ../lib/boot_utils.robot
+Library                 ../lib/gen_misc.py
+Library                 ../lib/utils.py
+Library                 ../lib/bmc_network_utils.py
+
+
+*** Keywords ***
+
+Get BMC IPv6 Info
+    [Documentation]  Get system IPv6 address and prefix length.
+
+    # Get system IP address and prefix length details using "ip addr"
+    # Sample Output of "ip addr":
+    # 1: eth0: <BROADCAST,MULTIAST> mtu 1500 qdisc mq state UP qlen 1000
+    #     link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
+    #     inet xx.xx.xx.xx/24 brd xx.xx.xx.xx scope global eth0
+    #     inet6 fe80::xxxx:xxxx:xxxx:xxxx/64 scope link
+    #     inet6 xxxx::xxxx:xxxx:xxxx:xxxx/64 scope global
+
+    ${cmd_output}  ${stderr}  ${rc}=  BMC Execute Command  /sbin/ip addr
+
+    # Get line having IPv6 address details.
+    ${lines}=  Get Lines Containing String  ${cmd_output}  inet6
+
+    # List IP address details.
+    @{ip_components}=  Split To Lines  ${lines}
+
+    @{ipv6_data}=  Create List
+
+    # Get all IP addresses and prefix lengths on system.
+    FOR  ${ip_component}  IN  @{ip_components}
+      @{if_info}=  Split String  ${ip_component}
+      ${ip_n_prefix}=  Get From List  ${if_info}  1
+      Append To List  ${ipv6_data}  ${ip_n_prefix}
+    END
+
+    [Return]  ${ipv6_data}
+
+
+Verify IPv6 On BMC
+    [Documentation]  Verify IPv6 on BMC.
+    [Arguments]  ${ipv6}
+
+    # Description of argument(s):
+    # ipv6  IPv6 address to be verified (e.g. "2001::1234:1234").
+
+    # Get IPv6 address details on BMC using IP command.
+    @{ip_data}=  Get BMC IPv6 Info
+    Should Contain Match  ${ip_data}  ${ipv6}/*
+    ...  msg=IPv6 address does not exist.
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}
