diff options
author | Andrej Kozemcak <akozemca@cisco.com> | 2016-05-11 10:57:58 +0200 |
---|---|---|
committer | Andrej Kozemcak <akozemca@cisco.com> | 2016-05-11 16:45:56 +0200 |
commit | 676362e1714afe4e7bb1557828580e710670b602 (patch) | |
tree | 2a4c31822d0267eeb2d784eca5346b9f37465831 /tests/data_plane/csit_topo | |
parent | abfb56e73fed33d0b2f738ace59ae5b37cd2b60d (diff) |
Create LISP test for csit_topology and for vpp_lite_topology
Change-Id: If0a886c761a41c9914c10d2ae3abf9f7711151c6
Signed-off-by: Andrej Kozemcak <akozemca@cisco.com>
Diffstat (limited to 'tests/data_plane/csit_topo')
-rw-r--r-- | tests/data_plane/csit_topo/README | 9 | ||||
-rw-r--r-- | tests/data_plane/csit_topo/lisp_ip4.sh | 45 | ||||
-rw-r--r-- | tests/data_plane/csit_topo/lisp_ip6.sh | 45 | ||||
-rwxr-xr-x | tests/data_plane/csit_topo/lisp_test.sh | 112 |
4 files changed, 211 insertions, 0 deletions
diff --git a/tests/data_plane/csit_topo/README b/tests/data_plane/csit_topo/README new file mode 100644 index 0000000..6d2f10d --- /dev/null +++ b/tests/data_plane/csit_topo/README @@ -0,0 +1,9 @@ +# example use +# Test ip4 topology +./lisp_test.sh or ./lisp_test ip4 + +# Test ip6 topology +./lisp_test ip6 + +# Test ip4 and ip6 topology +./lisp_test all diff --git a/tests/data_plane/csit_topo/lisp_ip4.sh b/tests/data_plane/csit_topo/lisp_ip4.sh new file mode 100644 index 0000000..55c8a91 --- /dev/null +++ b/tests/data_plane/csit_topo/lisp_ip4.sh @@ -0,0 +1,45 @@ +#!/usr/bin/env bash + +function ping_lisp { + local RESULTS + RESULTS=$(ssh_tg "ping -c 10 6.0.2.2") + if [ $? -ne 0 ] ; then + echo "Can not ping other machine" + ssh_vpp1 "sudo rm -r ${TMP_DIR}" + ssh_vpp2 "sudo rm -r ${TMP_DIR}" + exit -1 + fi +} + +curl -X POST http://${ODL_IP}:${ODL_PORT}/restconf/operations/odl-mappingservice:add-mapping \ + -H "Content-Type: application/json" --data-binary "@${ODL_CONFIG_DIR}${ODL_ADD_CONFIG1}" \ + -u ${ODL_USER}:${ODL_PASSWD} +curl -X POST http://${ODL_IP}:${ODL_PORT}/restconf/operations/odl-mappingservice:add-mapping \ + -H "Content-Type: application/json" --data-binary "@${ODL_CONFIG_DIR}${ODL_ADD_CONFIG2}" \ + -u ${ODL_USER}:${ODL_PASSWD} + +rsync -avz ${VPP_CONFIG_DIR}${VPP_CONFIG1} ${USER}@${VPP1_IP}:${TMP_DIR}/vpp1.conf +rsync -avz ${VPP_CONFIG_DIR}${VPP_CONFIG2} ${USER}@${VPP2_IP}:${TMP_DIR}/vpp2.conf + +ssh_vpp1 "sudo vpp_api_test < ${TMP_DIR}/vpp1.conf" +ssh_vpp2 "sudo vpp_api_test < ${TMP_DIR}/vpp2.conf" + +ssh_tg "sudo ip addr add 6.0.1.2/24 dev ${TG_INT1}" +ssh_tg "sudo ip link set ${TG_INT1} up" +ssh_tg "sudo ip route add 6.0.2.0/24 via 6.0.1.1" +ssh_tg "sudo ip netns exec net2 ip addr add 6.0.2.2/24 dev ${TG_INT2}" +ssh_tg "sudo ip netns exec net2 ip link set lo up" +ssh_tg "sudo ip netns exec net2 ip link set ${TG_INT2} up" +ssh_tg "sudo ip netns exec net2 ip route add 6.0.1.0/24 via 6.0.2.1" + +ping_lisp + +rsync -avz ${VPP_CONFIG_DIR}${VPP_RECONF2} ${USER}@${VPP2_IP}:${TMP_DIR}/vpp2_reconf.conf + +ssh_vpp2 "sudo vpp_api_test < ${TMP_DIR}/vpp2_reconf.conf" + +curl -X POST http://${ODL_IP}:${ODL_PORT}/restconf/operations/odl-mappingservice:update-mapping \ + -H "Content-Type: application/json" --data-binary "@${ODL_CONFIG_DIR}${ODL_REPLACE_CONFIG2}" \ + -u ${ODL_USER}:${ODL_PASSWD} + +ping_lisp diff --git a/tests/data_plane/csit_topo/lisp_ip6.sh b/tests/data_plane/csit_topo/lisp_ip6.sh new file mode 100644 index 0000000..eb0c172 --- /dev/null +++ b/tests/data_plane/csit_topo/lisp_ip6.sh @@ -0,0 +1,45 @@ +#!/usr/bin/env bash + +function ping_lisp6 { + local RESULTS + RESULTS=$(ssh_tg "ping6 -c 10 6:0:2::2") + if [ $? -ne 0 ] ; then + echo "Can not ping other machine" + ssh_vpp1 "sudo rm -r ${TMP_DIR}" + ssh_vpp2 "sudo rm -r ${TMP_DIR}" + exit -1 + fi +} + +curl -X POST http://${ODL_IP}:${ODL_PORT}/restconf/operations/odl-mappingservice:add-mapping \ + -H "Content-Type: application/json" --data-binary "@${ODL_CONFIG_DIR}${ODL_ADD_CONFIG1_6}" \ + -u ${ODL_USER}:${ODL_PASSWD} +curl -X POST http://${ODL_IP}:${ODL_PORT}/restconf/operations/odl-mappingservice:add-mapping \ + -H "Content-Type: application/json" --data-binary "@${ODL_CONFIG_DIR}${ODL_ADD_CONFIG2_6}" \ + -u ${ODL_USER}:${ODL_PASSWD} + +rsync -avz ${VPP_CONFIG_DIR}${VPP_CONFIG1_6} ${USER}@${VPP1_IP}:${TMP_DIR}/vpp1_6.conf +rsync -avz ${VPP_CONFIG_DIR}${VPP_CONFIG2_6} ${USER}@${VPP2_IP}:${TMP_DIR}/vpp2_6.conf + +ssh_vpp1 "sudo vpp_api_test < ${TMP_DIR}/vpp1_6.conf" +ssh_vpp2 "sudo vpp_api_test < ${TMP_DIR}/vpp2_6.conf" + +ssh_tg "sudo ip addr add 6:0:1::2/64 dev ${TG_INT1}" +ssh_tg "sudo ip link set ${TG_INT1} up" +ssh_tg "sudo ip route add 6:0:2::0/64 via 6:0:1::1 || exit 0" +ssh_tg "sudo ip netns exec net2 ip addr add 6:0:2::2/64 dev ${TG_INT2}" +ssh_tg "sudo ip netns exec net2 ip link set lo up" +ssh_tg "sudo ip netns exec net2 ip link set ${TG_INT2} up" +ssh_tg "sudo ip netns exec net2 ip route add 6:0:1::/64 via 6:0:2::1" + +ping_lisp6 + +rsync -avz ${VPP_CONFIG_DIR}${VPP_RECONF2_6} ${USER}@${VPP2_IP}:${TMP_DIR}/vpp2_reconf_6.conf + +ssh_vpp2 "sudo vpp_api_test < ${TMP_DIR}/vpp2_reconf_6.conf" + +curl -X POST http://${ODL_IP}:${ODL_PORT}/restconf/operations/odl-mappingservice:update-mapping \ + -H "Content-Type: application/json" --data-binary "@${ODL_CONFIG_DIR}${ODL_REPLACE_CONFIG2_6}" \ + -u ${ODL_USER}:${ODL_PASSWD} + +ping_lisp6 diff --git a/tests/data_plane/csit_topo/lisp_test.sh b/tests/data_plane/csit_topo/lisp_test.sh new file mode 100755 index 0000000..303b6fc --- /dev/null +++ b/tests/data_plane/csit_topo/lisp_test.sh @@ -0,0 +1,112 @@ +#!/usr/bin/env bash +# +# +# +------+ +-----+ +# | | VPP1_INT TG_INT1 | | +# | VPP1 +-------------------+ TG | +# | | | | +# | | | | +# +--+---+ +--+--+ +# | VPP1_INT | TG_INT2 +# ODL_INT | | +# ODL -------| | +# | VPP2_INT | +# +--+---+ | +# | | VPP2_INT | +# | VPP2 +----------------------+ +# | | +# | | +# +------+ + +set -x + +USER="csit" +ODL_USER="admin" +ODL_PASSWD="admin" +VPP1_IP="192.168.255.101" +VPP2_IP="192.168.255.102" +TG_IP="192.168.255.100" +ODL_IP="192.168.255.10" +ODL_PORT="8181" +TMP_DIR="/tmp/vpp_${RANDOM}_lisp_test" +TG_INT1="eth2" +TG_INT2="eth3" +ODL_M_USER="user" +ODL_INT="eth2" +VPP_CONFIG_DIR="../configs/vpp_csit_config/" +VPP_CONFIG1="vpp1.conf" +VPP_CONFIG1_6="vpp1_6.conf" +VPP_CONFIG2="vpp2.conf" +VPP_CONFIG2_6="vpp2_6.conf" +VPP_RECONF2="vpp2_reconf.conf" +VPP_RECONF2_6="vpp2_reconf_6.conf" +ODL_CONFIG_DIR="../configs/odl/" +ODL_ADD_CONFIG1="add_ipv4_odl1.txt" +ODL_ADD_CONFIG1_6="add_ipv6_odl1.txt" +ODL_ADD_CONFIG2="add_ipv4_odl2.txt" +ODL_ADD_CONFIG2_6="add_ipv6_odl2.txt" +ODL_REPLACE_CONFIG2="replace_ipv4_odl2.txt" +ODL_REPLACE_CONFIG2_6="replace_ipv6_odl2.txt" + +function ssh_vpp1 { + ssh ${USER}@${VPP1_IP} ${@} || exit +} + +function ssh_vpp2 { + ssh ${USER}@${VPP2_IP} ${@} || exit +} + +function ssh_tg { + ssh ${USER}@${TG_IP} ${@} || exit +} + +function ssh_odl { + ssh ${ODL_M_USER}@${ODL_IP} ${@} || exit +} + +curl -X DELETE http://${ODL_IP}:${ODL_PORT}/restconf/config/odl-mappingservice:mapping-database/ -u ${ODL_USER}:${ODL_PASSWD} + +ssh_tg "sudo ip netns del net2 &> /dev/null || exit 0" +ssh_tg "sudo ip addr flush dev ${TG_INT1} &> /dev/null || exit 0" +ssh_tg "sudo ip route del 6.0.2.0/24 via 6.0.1.1 || exit 0" +ssh_tg "sudo ip route del 6:0:2::0/64 via 6:0:1::1 || exit 0" + +ssh_odl "sudo ip addr flush dev ${ODL_INT} &> /dev/null || exit 0" +ssh_odl "sudo ip addr add 6.0.3.100/24 dev ${ODL_INT}" +ssh_odl "sudo ip addr add 6:0:3::100/64 dev ${ODL_INT}" + +ssh_odl "sudo ethtool --offload ${ODL_INT} rx off tx off" + +ssh_vpp1 "sudo stop vpp; exit 0" +ssh_vpp2 "sudo stop vpp; exit 0" + +ssh_vpp1 "sudo start vpp; exit 0" +ssh_vpp2 "sudo start vpp; exit 0" + +ssh_vpp1 "mkdir ${TMP_DIR}" +ssh_vpp2 "mkdir ${TMP_DIR}" + +ssh_tg "sudo ip netns add net2" +ssh_tg "sudo ip link set dev ${TG_INT2} netns net2" + +if [ "$#" == 0 ] || [ "$1" == "ip4" ] ; then + source lisp_ip4.sh +fi + +if [ "$1" == "ip6" ] ; then + source lisp_ip6.sh +fi + +if [ "$1" == "all" ] ; then + source lisp_ip4.sh + source lisp_ip6.sh + + ping_lisp + ping_lisp6 +fi + +#clean tmp file +ssh_vpp1 "sudo rm -r ${TMP_DIR}" +ssh_vpp2 "sudo rm -r ${TMP_DIR}" + +echo "Success"
\ No newline at end of file |