diff options
author | Alexey Kodanev <alexey.kodanev@oracle.com> | 2014-10-07 15:01:21 +0400 |
---|---|---|
committer | Alexey Kodanev <alexey.kodanev@oracle.com> | 2014-12-04 16:26:36 +0300 |
commit | d7dbcef6d87457c0772eeb6e8e3b00b58f368739 (patch) | |
tree | 28112f40d01976448eee2f351f1a9f0ee2b6b60a /testcases/lib | |
parent | 36bf9861728a53c5993d198df42755f60b7bc17f (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.sh | 64 |
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 +} |