1*** Settings *** 2Resource ../lib/utils.robot 3Resource ../lib/connection_client.robot 4Resource ../lib/boot_utils.robot 5Library ../lib/gen_misc.py 6Library ../lib/utils.py 7Library ../lib/bmc_network_utils.py 8 9 10*** Keywords *** 11 12Get BMC IPv6 Info 13 [Documentation] Get system IPv6 address and prefix length. 14 15 # Get system IP address and prefix length details using "ip addr" 16 # Sample Output of "ip addr": 17 # 1: eth0: <BROADCAST,MULTIAST> mtu 1500 qdisc mq state UP qlen 1000 18 # link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff 19 # inet xx.xx.xx.xx/24 brd xx.xx.xx.xx scope global eth0 20 # inet6 fe80::xxxx:xxxx:xxxx:xxxx/64 scope link 21 # inet6 xxxx::xxxx:xxxx:xxxx:xxxx/64 scope global 22 23 ${cmd_output} ${stderr} ${rc}= BMC Execute Command /sbin/ip addr 24 25 # Get line having IPv6 address details. 26 ${lines}= Get Lines Containing String ${cmd_output} inet6 27 28 # List IP address details. 29 @{ip_components}= Split To Lines ${lines} 30 31 @{ipv6_data}= Create List 32 33 # Get all IP addresses and prefix lengths on system. 34 FOR ${ip_component} IN @{ip_components} 35 @{if_info}= Split String ${ip_component} 36 ${ip_n_prefix}= Get From List ${if_info} 1 37 Append To List ${ipv6_data} ${ip_n_prefix} 38 END 39 40 [Return] ${ipv6_data} 41 42 43Verify IPv6 On BMC 44 [Documentation] Verify IPv6 on BMC. 45 [Arguments] ${ipv6} 46 47 # Description of argument(s): 48 # ipv6 IPv6 address to be verified (e.g. "2001::1234:1234"). 49 50 # Get IPv6 address details on BMC using IP command. 51 @{ip_data}= Get BMC IPv6 Info 52 Should Contain Match ${ip_data} ${ipv6}/* 53 ... msg=IPv6 address does not exist. 54 55 56Verify IPv6 Default Gateway On BMC 57 [Documentation] Verify IPv6 default gateway on BMC. 58 [Arguments] ${gateway_ip}=${EMPTY} 59 60 # Description of argument(s): 61 # gateway_ip Gateway IPv6 address. 62 63 ${route_info}= Get BMC IPv6 Route Info 64 65 # If gateway IP is empty it will not have route entry. 66 67 Run Keyword If '${gateway_ip}' == '${EMPTY}' 68 ... Pass Execution Gateway IP is not configured. 69 ... ELSE 70 ... Should Contain ${route_info} ${gateway_ip} 71 ... msg=Gateway IP address not matching 72 73 74Get BMC IPv6 Route Info 75 [Documentation] Get IPv6 route info on BMC. 76 77 # Sample output of "ip -6 route": 78 # unreachable ::/96 dev lo metric 1024 error -113 79 # unreachable ::ffff:0.0.0.0/96 dev lo metric 1024 error -113 80 # 2xxx:xxxx:0:1::/64 dev eth0 proto kernel metric 256 81 # fe80::/64 dev eth1 proto kernel metric 256 82 # fe80::/64 dev eth0 proto kernel metric 256 83 # fe80::/64 dev eth2 proto kernel metric 256 84 85 86 ${cmd_output} ${stderr} ${rc}= BMC Execute Command 87 ... /sbin/ip -6 route 88 89 [Return] ${cmd_output} 90