IPv6 libraries and base code
Signed-off-by: Prashanth Katti <prkatti1@in.ibm.com>
Change-Id: I0bffbe24582f8adcf69755f318e3c2686eaab022
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}