Create LISP test for csit_topology and for vpp_lite_topology
[one.git] / tests / data_plane / csit_topo / lisp_test.sh
1 #!/usr/bin/env bash
2 #
3 #
4 #         +------+                   +-----+
5 #         |      | VPP1_INT  TG_INT1 |     |
6 #         | VPP1 +-------------------+ TG  |
7 #         |      |                   |     |
8 #         |      |                   |     |
9 #         +--+---+                   +--+--+
10 #            | VPP1_INT                 | TG_INT2
11 #   ODL_INT  |                          |
12 # ODL -------|                          |
13 #            | VPP2_INT                 |
14 #         +--+---+                      |
15 #         |      | VPP2_INT             |
16 #         | VPP2 +----------------------+
17 #         |      |
18 #         |      |
19 #         +------+
20
21 set -x
22
23 USER="csit"
24 ODL_USER="admin"
25 ODL_PASSWD="admin"
26 VPP1_IP="192.168.255.101"
27 VPP2_IP="192.168.255.102"
28 TG_IP="192.168.255.100"
29 ODL_IP="192.168.255.10"
30 ODL_PORT="8181"
31 TMP_DIR="/tmp/vpp_${RANDOM}_lisp_test"
32 TG_INT1="eth2"
33 TG_INT2="eth3"
34 ODL_M_USER="user"
35 ODL_INT="eth2"
36 VPP_CONFIG_DIR="../configs/vpp_csit_config/"
37 VPP_CONFIG1="vpp1.conf"
38 VPP_CONFIG1_6="vpp1_6.conf"
39 VPP_CONFIG2="vpp2.conf"
40 VPP_CONFIG2_6="vpp2_6.conf"
41 VPP_RECONF2="vpp2_reconf.conf"
42 VPP_RECONF2_6="vpp2_reconf_6.conf"
43 ODL_CONFIG_DIR="../configs/odl/"
44 ODL_ADD_CONFIG1="add_ipv4_odl1.txt"
45 ODL_ADD_CONFIG1_6="add_ipv6_odl1.txt"
46 ODL_ADD_CONFIG2="add_ipv4_odl2.txt"
47 ODL_ADD_CONFIG2_6="add_ipv6_odl2.txt"
48 ODL_REPLACE_CONFIG2="replace_ipv4_odl2.txt"
49 ODL_REPLACE_CONFIG2_6="replace_ipv6_odl2.txt"
50
51 function ssh_vpp1 {
52     ssh ${USER}@${VPP1_IP} ${@} || exit
53 }
54
55 function ssh_vpp2 {
56     ssh ${USER}@${VPP2_IP} ${@} || exit
57 }
58
59 function ssh_tg {
60     ssh ${USER}@${TG_IP} ${@} || exit
61 }
62
63 function ssh_odl {
64     ssh ${ODL_M_USER}@${ODL_IP} ${@} || exit
65 }
66
67 curl -X DELETE http://${ODL_IP}:${ODL_PORT}/restconf/config/odl-mappingservice:mapping-database/ -u ${ODL_USER}:${ODL_PASSWD}
68
69 ssh_tg "sudo ip netns del net2 &> /dev/null || exit 0"
70 ssh_tg "sudo ip addr flush dev ${TG_INT1} &> /dev/null || exit 0"
71 ssh_tg "sudo ip route del 6.0.2.0/24 via 6.0.1.1 || exit 0"
72 ssh_tg "sudo ip route del 6:0:2::0/64 via 6:0:1::1 || exit 0"
73
74 ssh_odl "sudo ip addr flush dev ${ODL_INT} &> /dev/null || exit 0"
75 ssh_odl "sudo ip addr add 6.0.3.100/24 dev ${ODL_INT}"
76 ssh_odl "sudo ip addr add 6:0:3::100/64 dev ${ODL_INT}"
77
78 ssh_odl "sudo ethtool --offload  ${ODL_INT}  rx off tx off"
79
80 ssh_vpp1 "sudo stop vpp;  exit 0"
81 ssh_vpp2 "sudo stop vpp;  exit 0"
82
83 ssh_vpp1 "sudo start vpp;  exit 0"
84 ssh_vpp2 "sudo start vpp;  exit 0"
85
86 ssh_vpp1 "mkdir ${TMP_DIR}"
87 ssh_vpp2 "mkdir ${TMP_DIR}"
88
89 ssh_tg "sudo ip netns add net2"
90 ssh_tg "sudo ip link set dev ${TG_INT2} netns net2"
91
92 if [ "$#" == 0 ] || [ "$1" == "ip4" ] ; then
93   source lisp_ip4.sh
94 fi
95
96 if [ "$1" == "ip6" ] ; then
97   source lisp_ip6.sh
98 fi
99
100 if [ "$1" == "all" ] ; then
101   source lisp_ip4.sh
102   source lisp_ip6.sh
103
104   ping_lisp
105   ping_lisp6
106 fi
107
108 #clean tmp file
109 ssh_vpp1 "sudo rm -r ${TMP_DIR}"
110 ssh_vpp2 "sudo rm -r ${TMP_DIR}"
111
112 echo "Success"