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