blob: 7050afdc5c89b9086ec162aabf35023bea3016fe [file] [log] [blame]
*** 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.
Verify IPv6 Default Gateway On BMC
[Documentation] Verify IPv6 default gateway on BMC.
[Arguments] ${gateway_ip}=${EMPTY}
# Description of argument(s):
# gateway_ip Gateway IPv6 address.
${route_info}= Get BMC IPv6 Route Info
# If gateway IP is empty it will not have route entry.
Run Keyword If '${gateway_ip}' == '${EMPTY}'
... Pass Execution Gateway IP is not configured.
... ELSE
... Should Contain ${route_info} ${gateway_ip}
... msg=Gateway IP address not matching
Get BMC IPv6 Route Info
[Documentation] Get IPv6 route info on BMC.
# Sample output of "ip -6 route":
# unreachable ::/96 dev lo metric 1024 error -113
# unreachable ::ffff:0.0.0.0/96 dev lo metric 1024 error -113
# 2xxx:xxxx:0:1::/64 dev eth0 proto kernel metric 256
# fe80::/64 dev eth1 proto kernel metric 256
# fe80::/64 dev eth0 proto kernel metric 256
# fe80::/64 dev eth2 proto kernel metric 256
${cmd_output} ${stderr} ${rc}= BMC Execute Command
... /sbin/ip -6 route
[Return] ${cmd_output}