blob: 1c0c50787cc1a1d193ed361507e8bfd7f7098760 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
source config.sh
source odl_utils.sh
source topologies/2_node_topo.sh
ODL_CONFIG_FILE1="map1.json"
ODL_CONFIG_FILE2="map2.json"
if [ "$1" == "clean" ] ; then
2_node_topo_clean
exit 0
fi
if [[ $(id -u) != 0 ]]; then
echo "Error: run this as a root."
exit 1
fi
function send_ping_from_ns
{
ip netns exec "${1}" "${2}" -w 20 -c 1 "${3}"
assert_rc_ok $? 2_node_topo_clean "No ICMP Response!"
}
function send_ping_from_ns_expect_failure
{
ip netns exec "${1}" "${2}" -w 10 -c 1 "${3}"
assert_rc_not_ok $? 2_node_topo_clean "Reply received, but failure expected!"
}
function remove_sd_mapping {
curl -X POST -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Content-Type: application/json" -H "Cache-Control: no-cache" -H "Postman-Token: 1e4f00f4-74eb-20d7-97da-89963f37713b" -d '{
"input": {
"eid": {
"address-type": "ietf-lisp-address-types:source-dest-key-lcaf",
"source-dest-key": {
"source": "'$1'",
"dest": "'$2'"
}
}
}
}' "http://${ODL_IP}:8181/restconf/operations/odl-mappingservice:remove-mapping"
}
function remove_mapping1 {
curl -X DELETE -H "Content-Type: application/json" -H "Cache-Control: no-cache" "http://${ODL_IP}:${ODL_PORT}/restconf/config/odl-mappingservice:mapping-database/virtual-network-identifier/0/mapping/${1}/northbound/"
}
function test_src_dst_overwrite
{
2_node_topo_setup
maybe_pause
test_result=1
# send ping request
send_ping_from_ns vppns1 ${1} ${2}
maybe_pause
# Replace ODL mapping with negative one
post_curl "add-mapping" "replace1.json"
# wait for SMR being resolved
sleep 2
maybe_pause
# now ping should fail
send_ping_from_ns_expect_failure vppns1 ${1} ${2}
maybe_pause
# Replace ODL mapping with positive one
post_curl "add-mapping" "replace2.json"
# wait for SMR being resolved
sleep 2
maybe_pause
# expect ping reply again
send_ping_from_ns vppns1 ${1} ${2}
rc=$?
maybe_pause
2_node_topo_clean
print_status $rc "No ICMP response!"
exit $test_result
}
function test_src_dst_overwrite_superset
{
2_node_topo_setup
maybe_pause
test_result=1
# send ping request
send_ping_from_ns vppns1 ${1} ${2}
maybe_pause
# Replace ODL mapping with negative one
post_curl "add-mapping" "replace1.json"
remove_sd_mapping "6.0.1.0/24" "6.0.2.0/24"
# wait for SMR being resolved
sleep 2
maybe_pause
# now ping should fail
send_ping_from_ns_expect_failure vppns1 ${1} ${2}
maybe_pause
# Replace ODL mapping with positive one
post_curl "add-mapping" "replace2.json"
remove_sd_mapping "6.0.0.0/16" "6.0.2.0/24"
# wait for SMR being resolved
sleep 2
maybe_pause
# expect ping reply again
send_ping_from_ns vppns1 ${1} ${2}
rc=$?
maybe_pause
2_node_topo_clean
print_status $rc "No ICMP response!"
exit $test_result
}
|