blob: 62b91c72df45a4966dc1c04e49f4b8882f233c84 [file] [log] [blame]
*** 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
Suite Setup Suite Setup 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
Get PrefixLength And Verify
[Documentation] Get IPv6 prefix length and verify.
[Tags] Get_PrefixLength_And_Verify
FOR ${ipv6_network_configuration} IN @{ipv6_network_configurations}
Verify IPv6 On BMC ${ipv6_network_configuration['PrefixLength']}
END
Get IPv6 Default Gateway And Verify
[Documentation] Get IPv6 default gateway and verify.
${resp}= Redfish.Get ${REDFISH_NW_ETH_IFACE}${ethernet_interface}
${ipv6_gateway}= Get From Dictionary ${resp.dict} IPv6DefaultGateway
Verify IPv6 Default Gateway On BMC ${ipv6_gateway}
*** Keywords ***
Suite Setup Execution
[Documentation] Do suite setup execution.
${active_channel_config}= Get Active Channel Config
${ethernet_interface}= Set Variable ${active_channel_config['${CHANNEL_NUMBER}']['name']}
Set Suite variable ${ethernet_interface}
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}