aboutsummaryrefslogtreecommitdiff
path: root/testcases/lib
diff options
context:
space:
mode:
authorAlexey Kodanev <alexey.kodanev@oracle.com>2014-10-07 15:01:21 +0400
committerAlexey Kodanev <alexey.kodanev@oracle.com>2014-12-04 16:26:36 +0300
commitd7dbcef6d87457c0772eeb6e8e3b00b58f368739 (patch)
tree28112f40d01976448eee2f351f1a9f0ee2b6b60a /testcases/lib
parent36bf9861728a53c5993d198df42755f60b7bc17f (diff)
network/test_net: add functions to manage IP addresses
* tst_init_iface() cleanup test interface * tst_add_ipaddr() add default IPv4 or IPv6 address * tst_restore_ipaddr() cleanup interface, then add default IPv4 and Ipv6 addresses Signed-off-by: Alexey Kodanev <alexey.kodanev@oracle.com>
Diffstat (limited to 'testcases/lib')
-rw-r--r--testcases/lib/test_net.sh64
1 files changed, 64 insertions, 0 deletions
diff --git a/testcases/lib/test_net.sh b/testcases/lib/test_net.sh
index 03eb25c41..ec3366b87 100644
--- a/testcases/lib/test_net.sh
+++ b/testcases/lib/test_net.sh
@@ -176,3 +176,67 @@ tst_ipaddr()
echo "${IPV4_NETWORK}.${tst_host}"
fi
}
+
+# tst_init_iface [TYPE] [LINK]
+# TYPE: { lhost | rhost }; Default value is 'lhost'.
+# LINK: link number starting from 0. Default value is '0'.
+tst_init_iface()
+{
+ local type=${1:-"lhost"}
+ local link_num=${2:-"0"}
+
+ local iface=$(tst_iface $type $link_num)
+ tst_resm TINFO "initialize '$type' '$iface' interface"
+
+ if [ "$type" = "lhost" ]; then
+ ip link set $iface down || tst_brkm TBROK "iface down failed"
+ ip route flush dev $iface || tst_brkm TBROK "route flush failed"
+ ip addr flush dev $iface || tst_brkm TBROK "addr flush failed"
+ ip link set $iface up || tst_brkm TBROK "iface up failed"
+ return
+ fi
+
+ tst_rhost_run -s -c "ip link set $iface down"
+ tst_rhost_run -s -c "ip route flush dev $iface"
+ tst_rhost_run -s -c "ip addr flush dev $iface"
+ tst_rhost_run -s -c "ip link set $iface up"
+}
+
+# tst_add_ipaddr [TYPE] [LINK]
+# TYPE: { lhost | rhost }; Default value is 'lhost'.
+# LINK: link number starting from 0. Default value is '0'.
+tst_add_ipaddr()
+{
+ local type=${1:-"lhost"}
+ local link_num=${2:-"0"}
+
+ local mask=24
+ [ "$TST_IPV6" ] && mask=64
+
+ if [ $type = "lhost" ]; then
+ tst_resm TINFO "set local addr $(tst_ipaddr)/$mask"
+ ip addr add $(tst_ipaddr)/$mask dev $iface || \
+ tst_brkm TBROK "failed to add IP address"
+ return
+ fi
+
+ tst_resm TINFO "set remote addr $(tst_ipaddr rhost)/$mask"
+ tst_rhost_run -s -c "ip addr add $(tst_ipaddr rhost)/$mask dev $iface"
+}
+
+# tst_restore_ipaddr [TYPE] [LINK]
+# Restore default ip addresses defined in network.sh
+# TYPE: { lhost | rhost }; Default value is 'lhost'.
+# LINK: link number starting from 0. Default value is '0'.
+tst_restore_ipaddr()
+{
+ local type=${1:-"lhost"}
+ local link_num=${2:-"0"}
+
+ tst_init_iface $type $link_num
+
+ local iface=$(tst_iface $type $link_num)
+
+ TST_IPV6= tst_add_ipaddr $type $link_num
+ TST_IPV6=6 tst_add_ipaddr $type $link_num
+}