21036dc0c054a685341a4eadcfcefee6facffcb3
[csit.git] / resources / libraries / robot / overlay / lisp.robot
1 # Copyright (c) 2020 Cisco and/or its affiliates.
2 # Licensed under the Apache License, Version 2.0 (the "License");
3 # you may not use this file except in compliance with the License.
4 # You may obtain a copy of the License at:
5 #
6 #     http://www.apache.org/licenses/LICENSE-2.0
7 #
8 # Unless required by applicable law or agreed to in writing, software
9 # distributed under the License is distributed on an "AS IS" BASIS,
10 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11 # See the License for the specific language governing permissions and
12 # limitations under the License.
13
14 *** Settings ***
15 | Library  | resources.libraries.python.IPUtil
16 | Library  | resources.libraries.python.LispSetup.LispAdjacency
17 | Library  | resources.libraries.python.LispSetup.LispEidTableMap
18 | Library  | resources.libraries.python.LispSetup.LispLocator
19 | Library  | resources.libraries.python.LispSetup.LispLocalEid
20 | Library  | resources.libraries.python.LispSetup.LispLocatorSet
21 | Library  | resources.libraries.python.LispSetup.LispRemoteMapping
22 |
23 | Resource | resources/libraries/robot/shared/default.robot
24 | Resource | resources/libraries/robot/overlay/lisp_api.robot
25
26 *** Keywords ***
27 | Configure topology for IPv4 LISP testing
28 | | [Documentation] | Setup topology for IPv4 LISP testing.
29 | |
30 | | ... | *Example:*
31 | | ... | \| Configure topology for IPv4 LISP testing \|
32 | |
33 | | Set interfaces in path up
34 | | VPP Interface Set IP Address
35 | | ... | ${dut1} | ${DUT1_${int}1}[0] | ${dut_if1_ip4} | ${ip4_plen}
36 | | VPP Interface Set IP Address
37 | | ... | ${dut1} | ${DUT1_${int}2}[0] | ${dut_if2_ip4} | ${ip4_plen}
38 | | VPP Add IP Neighbor
39 | | ... | ${dut1} | ${DUT1_${int}1}[0] | ${src_ip4} | ${TG_pf1_mac}[0]
40 | | VPP Add IP Neighbor
41 | | ... | ${dut1} | ${DUT1_${int}2}[0] | ${dst_ip4} | ${TG_pf2_mac}[0]
42 | | VPP Add IP Neighbor
43 | | ... | ${dut1} | ${DUT1_${int}2}[0] | ${tg_if2_ip4} | ${TG_pf2_mac}[0]
44
45 | Configure topology for IPv6 LISP testing
46 | | [Documentation] | Setup topology fo IPv6 LISP testing.
47 | |
48 | | ... | *Example:*
49 | | ... | \| Configure topology for IPv6 LISP testing \|
50 | |
51 | | Set interfaces in path up
52 | | VPP Interface Set IP Address
53 | | ... | ${dut1} | ${DUT1_${int}1}[0] | ${dut_if1_ip6} | ${ip6_plen}
54 | | VPP Interface Set IP Address
55 | | ... | ${dut1} | ${DUT1_${int}2}[0] | ${dut_if2_ip6} | ${ip6_plen}
56 | | VPP Add IP Neighbor
57 | | ... | ${dut1} | ${DUT1_${int}1}[0] | ${src_ip6} | ${TG_pf1_mac}[0]
58 | | VPP Add IP Neighbor
59 | | ... | ${dut1} | ${DUT1_${int}2}[0] | ${dst_ip6} | ${TG_pf2_mac}[0]
60 | | VPP Add IP Neighbor
61 | | ... | ${dut1} | ${DUT1_${int}2}[0] | ${tg_if2_ip6} | ${TG_pf2_mac}[0]
62
63 | Configure LISP topology in 3-node circular topology
64 | | [Documentation] | Set up Lisp static adjacency topology.
65 | |
66 | | ... | *Arguments:*
67 | | ... | - dut1_node - DUT1 node. Type: dictionary
68 | | ... | - dut1_int_name - DUT1 node interface name. Type: string
69 | | ... | - dut1_int_index - DUT1 node interface index. Type: integer
70 | | ... | - dut2_node - DUT2 node. Type: dictionary
71 | | ... | - dut2_int_name - DUT2 node interface name. Type: string
72 | | ... | - dut2_int_index - DUT2 node interface index. Type: integer
73 | | ... | - locator_set - Locator set values. Type: dictionary
74 | | ... | - dut1_eid - Dut1 node eid address. Type: dictionary
75 | | ... | - dut2_eid - Dut2 node eid address. Type: dictionary
76 | | ... | - dut1_static_adjacency - Dut1 static adjacency. Type: dictionary
77 | | ... | - dut2_static_adjacency - Dut2 static address. Type: dictionary
78 | |
79 | | ... | *Return:*
80 | | ... | - No value returned
81 | |
82 | | ... | *Example:*
83 | | ... | \| Configure LISP topology in 3-node circular topology \
84 | | ... | \| ${dut1_node} \| ${interface_name} \| None \
85 | | ... | \| ${dut2_node} \| ${interface_name} \| None \
86 | | ... | \| ${locator_set} \| ${dut1_eid} \| ${dut2_eid} \
87 | | ... | \| ${dut1_static_adjacency} \| ${dut2_static_adjacency} \|
88 | |
89 | | [Arguments] | ${dut1_node} | ${dut1_int_name} | ${dut1_int_index}
90 | | ... | ${dut2_node} | ${dut2_int_name} | ${dut2_int_index}
91 | | ... | ${locator_set} | ${dut1_eid} | ${dut2_eid}
92 | | ... | ${dut1_static_adjacency} | ${dut2_static_adjacency}
93 | | ${dut1_int_index}= | Run Keyword If | ${dut1_int_index} is None
94 | | ... | Get Interface Sw Index | ${dut1_node} | ${dut1_int_name}
95 | | ... | ELSE | Set Variable | ${dut1_int_index}
96 | | ${dut2_int_index}= | Run Keyword If | ${dut2_int_index} is None
97 | | ... | Get Interface Sw Index | ${dut2_node} | ${dut2_int_name}
98 | | ... | ELSE | Set Variable | ${dut2_int_index}
99 | | Enable Lisp | ${dut1_node}
100 | | Vpp Add Lisp Locator Set | ${dut1_node} | ${locator_set['locator_name']}
101 | | Vpp Add Lisp Locator | ${dut1_node} | ${locator_set['locator_name']}
102 | | ... | ${dut1_int_index} | ${locator_set['priority']}
103 | | ... | ${locator_set['weight']}
104 | | Vpp Add Lisp Local Eid | ${dut1_node} | ${dut1_eid['locator_name']}
105 | | ... | ${dut1_eid['vni']} | ${dut1_eid['eid']} | ${dut1_eid['prefix']}
106 | | Vpp Add Lisp Remote Mapping | ${dut1_node} | ${dut1_static_adjacency['vni']}
107 | | ... | ${dut1_static_adjacency['deid']}
108 | | ... | ${dut1_static_adjacency['prefix']}
109 | | ... | ${dut1_static_adjacency['seid']}
110 | | ... | ${dut1_static_adjacency['prefix']}
111 | | ... | ${dut1_static_adjacency['rloc']}
112 | | Vpp Add Lisp Adjacency | ${dut1_node} | ${dut1_static_adjacency['vni']}
113 | | ... | ${dut1_static_adjacency['deid']}
114 | | ... | ${dut1_static_adjacency['prefix']}
115 | | ... | ${dut1_static_adjacency['seid']}
116 | | ... | ${dut1_static_adjacency['prefix']}
117 | | Enable Lisp | ${dut2_node}
118 | | Vpp Add Lisp Locator Set | ${dut2_node} | ${locator_set['locator_name']}
119 | | Vpp Add Lisp Locator | ${dut2_node} | ${locator_set['locator_name']}
120 | | ... | ${dut2_int_index} | ${locator_set['priority']}
121 | | ... | ${locator_set['weight']}
122 | | Vpp Add Lisp Local Eid | ${dut2_node} | ${dut2_eid['locator_name']}
123 | | ... | ${dut2_eid['vni']} | ${dut2_eid['eid']} | ${dut2_eid['prefix']}
124 | | Vpp Add Lisp Remote Mapping | ${dut2_node} | ${dut2_static_adjacency['vni']}
125 | | ... | ${dut2_static_adjacency['deid']}
126 | | ... | ${dut2_static_adjacency['prefix']}
127 | | ... | ${dut2_static_adjacency['seid']}
128 | | ... | ${dut2_static_adjacency['prefix']}
129 | | ... | ${dut2_static_adjacency['rloc']}
130 | | Vpp Add Lisp Adjacency | ${dut2_node} | ${dut2_static_adjacency['vni']}
131 | | ... | ${dut2_static_adjacency['deid']}
132 | | ... | ${dut2_static_adjacency['prefix']}
133 | | ... | ${dut2_static_adjacency['seid']}
134 | | ... | ${dut2_static_adjacency['prefix']}
135
136 | Configure LISP in 2-node circular topology
137 | | [Documentation] | Configure LISP topology in 2-node circular topology.
138 | |
139 | | ... | *Arguments:*
140 | | ... | - dut1 - DUT1 node. Type: dictionary
141 | | ... | - dut1_if - DUT1 node interface. Type: string
142 | | ... | - dut1_int_index - DUT1 node interface index. Type: integer
143 | | ... | - locator_set - Locator set values. Type: dictionary
144 | | ... | - dut1_eid - DUT1 node eid address. Type: dictionary
145 | | ... | - dut1_static_adjacency - DUT1 static adjacency. Type: dictionary
146 | | ... | - is_gpe - To enable GPE. Other than zero to enable Type: integer
147 | | ... | - vni_table - vni table Eid Table Mapping Type: integer
148 | | ... | - vrf_table - vrf table Eid Table Mapping Type: integer
149 | |
150 | | ... | *Return:*
151 | | ... | - No value returned
152 | |
153 | | ... | *Example:*
154 | | ... | \| Configure LISP in 2-node circular topology \
155 | | ... | \| ${dut1} \| ${interface_name} \
156 | | ... | \| None \| ${locator_set} \| ${dut1_eid} \
157 | | ... | \| ${dut1_static_adjacency} \|
158 | |
159 | | [Arguments]
160 | | ... | ${dut1} | ${dut1_if} | ${dut1_int_index}
161 | | ... | ${locator_set} | ${dut1_eid}
162 | | ... | ${dut1_static_adjacency}
163 | | ... | ${is_gpe}=0
164 | | ... | ${vni_table}=0 | ${vrf_table}=0
165 | |
166 | | # DUT1 settings:
167 | | ${dut1_int_index}= | Run Keyword If | ${dut1_int_index} is None
168 | | ... | Get Interface Sw Index | ${dut1} | ${dut1_if}
169 | | ... | ELSE | Set Variable | ${dut1_int_index}
170 | | Enable Lisp | ${dut1}
171 | | Run keyword if | ${is_gpe} != 0
172 | | ... | Enable Lisp GPE | ${dut1}
173 | | Vpp Add Lisp Locator Set | ${dut1} | ${locator_set['locator_name']}
174 | | Vpp Add Lisp Locator | ${dut1} | ${locator_set['locator_name']}
175 | | ... | ${dut1_int_index} | ${locator_set['priority']}
176 | | ... | ${locator_set['weight']}
177 | | Run keyword if | ${is_gpe} != 0
178 | | ... | Vpp Lisp Eid Table Mapping | ${dut1}
179 | | ... | ${vni_table}
180 | | ... | vrf=${vrf_table}
181 | | Vpp Add Lisp Local Eid | ${dut1} | ${dut1_eid['locator_name']}
182 | | ... | ${dut1_eid['vni']} | ${dut1_eid['eid']} | ${dut1_eid['prefix']}
183 | | Vpp Add Lisp Remote Mapping | ${dut1} | ${dut1_static_adjacency['vni']}
184 | | ... | ${dut1_static_adjacency['deid']}
185 | | ... | ${dut1_static_adjacency['prefix']}
186 | | ... | ${dut1_static_adjacency['seid']}
187 | | ... | ${dut1_static_adjacency['prefix']}
188 | | ... | ${dut1_static_adjacency['rloc']}
189 | | Vpp Add Lisp Adjacency | ${dut1} | ${dut1_static_adjacency['vni']}
190 | | ... | ${dut1_static_adjacency['deid']}
191 | | ... | ${dut1_static_adjacency['prefix']}
192 | | ... | ${dut1_static_adjacency['seid']}
193 | | ... | ${dut1_static_adjacency['prefix']}
194
195 | Configure topology for IPv6 LISPoIP4 testing
196 | | [Documentation] | Setup topology fo IPv6 LISPoIPV4 testing.
197 | |
198 | | ... | *Example:*
199 | | ... | \| Configure topology for IPv6 LISPoIP4 testing \|
200 | |
201 | | Set interfaces in path up
202 | | VPP Interface Set IP Address
203 | | ... | ${dut1} | ${DUT1_${int}1}[0] | ${dut_if1_ip6} | ${ip6_plen}
204 | | VPP Interface Set IP Address
205 | | ... | ${dut1} | ${DUT1_${int}2}[0] | ${dut_if2_ip4} | ${ip4_plen}
206 | | VPP Add IP Neighbor
207 | | ... | ${dut1} | ${DUT1_${int}1}[0] | ${src_ip6} | ${TG_pf1_mac}[0]
208 | | VPP Add IP Neighbor
209 | | ... | ${dut1} | ${DUT1_${int}2}[0] | ${dst_ip6} | ${TG_pf2_mac}[0]
210 | | VPP Add IP Neighbor
211 | | ... | ${dut1} | ${DUT1_${int}2}[0] | ${tg_if2_ip4} | ${TG_pf2_mac}[0]
212
213 | Configure topology for IPv4 LISPoIP6 testing
214 | | [Documentation] | Setup topology fo IPv4 LISPoIPV6 testing.
215 | |
216 | | ... | *Example:*
217 | | ... | \| Configure topology for IPv4 LISPoIP6 testing \|
218 | |
219 | | Set interfaces in path up
220 | | VPP Interface Set IP Address
221 | | ... | ${dut1} | ${DUT1_${int}1}[0] | ${dut_if1_ip4} | ${ip4_plen}
222 | | VPP Interface Set IP Address
223 | | ... | ${dut1} | ${DUT1_${int}2}[0] | ${dut_if2_ip6} | ${ip6_plen}
224 | | VPP Add IP Neighbor
225 | | ... | ${dut1} | ${DUT1_${int}1}[0] | ${src_ip4} | ${TG_pf1_mac}[0]
226 | | VPP Add IP Neighbor
227 | | ... | ${dut1} | ${DUT1_${int}2}[0] | ${dst_ip4} | ${TG_pf2_mac}[0]
228 | | VPP Add IP Neighbor
229 | | ... | ${dut1} | ${DUT1_${int}2}[0] | ${tg_if2_ip6} | ${TG_pf2_mac}[0]
230
231 | Initialize LISP IPv4 forwarding in 3-node circular topology
232 | | [Documentation] | Custom setup of IPv4 addresses on all DUT nodes and TG \
233 | | ... | Don`t set route.
234 | |
235 | | ... | *Arguments:*
236 | | ... | - dut1_dut2_address - Ip address from DUT1 to DUT2. Type: string
237 | | ... | - dut1_tg_address - Ip address from DUT1 to tg. Type: string
238 | | ... | - dut2_dut1_address - Ip address from DUT2 to DUT1. Type: string
239 | | ... | - dut1_tg_address - Ip address from DUT1 to tg. Type: string
240 | | ... | - duts_prefix - ip prefix. Type: int
241 | |
242 | | ... | *Return:*
243 | | ... | - No value returned
244 | |
245 | | ... | *Example:*
246 | | ... | \| Initialize LISP IPv4 forwarding in 3-node circular topology \
247 | | ... | \| ${dut1_dut2_address} \| ${dut1_tg_address} \
248 | | ... | \| ${dut2_dut1_address} \| ${dut2_tg_address} \| ${duts_prefix} \|
249 | |
250 | | [Arguments] | ${dut1_dut2_address} | ${dut1_tg_address}
251 | | ... | ${dut2_dut1_address} | ${dut2_tg_address} | ${duts_prefix}
252 | |
253 | | Set interfaces in path up
254 | | VPP Add IP Neighbor
255 | | ... | ${dut1} | ${DUT1_${int}1}[0] | 10.10.10.2 | ${TG_pf1_mac}[0]
256 | | VPP Add IP Neighbor
257 | | ... | ${dut1} | ${DUT1_${int}2}[0] | ${dut2_dut1_address}
258 | | ... | ${DUT2_${int}1_mac}[0]
259 | | VPP Add IP Neighbor
260 | | ... | ${dut2} | ${DUT2_${int}1}[0] | ${dut1_dut2_address}
261 | | ... | ${DUT1_${int}2_mac}[0]
262 | | VPP Add IP Neighbor
263 | | ... | ${dut2} | ${DUT2_${int}2}[0] | 20.20.20.2 | ${TG_pf2_mac}[0]
264 | | VPP Interface Set IP Address
265 | | ... | ${dut1} | ${DUT1_${int}1}[0] | ${dut1_tg_address} | ${duts_prefix}
266 | | VPP Interface Set IP Address
267 | | ... | ${dut1} | ${DUT1_${int}2}[0] | ${dut1_dut2_address} | ${duts_prefix}
268 | | VPP Interface Set IP Address
269 | | ... | ${dut2} | ${DUT2_${int}1}[0] | ${dut2_dut1_address} | ${duts_prefix}
270 | | VPP Interface Set IP Address
271 | | ... | ${dut2} | ${DUT2_${int}2}[0] | ${dut2_tg_address} | ${duts_prefix}
272
273 | Initialize LISP GPE IPv4 over IPsec in 3-node circular topology
274 | | [Documentation] | Setup Lisp GPE IPv4 forwarding over IPsec.
275 | |
276 | | ... | *Arguments:*
277 | | ... | - encr_alg - Encryption algorithm. Type: string
278 | | ... | - auth_alg - Authentication algorithm. Type: string
279 | |
280 | | ... | *Return:*
281 | | ... | - No value returned
282 | |
283 | | ... | *Example:*
284 | | ... | \| Initialize LISP GPE IPv4 over IPsec in 3-node circular topology\
285 | | ... | \| ${encr_alg} \| ${auth_alg}
286 | |
287 | | [Arguments] | ${encr_alg} | ${auth_alg}
288 | |
289 | | Generate keys for IPSec | ${encr_alg} | ${auth_alg}
290 | | Initialize LISP IPv4 forwarding in 3-node circular topology
291 | | ... | ${dut1_to_dut2_ip4} | ${dut1_to_tg_ip4} | ${dut2_to_dut1_ip4}
292 | | ... | ${dut2_to_tg_ip4} | ${prefix4}
293 | | Configure LISP GPE topology in 3-node circular topology
294 | | ... | ${dut1} | ${DUT1_${int}2}[0] | ${NONE}
295 | | ... | ${dut2} | ${DUT2_${int}1}[0] | ${NONE}
296 | | ... | ${duts_locator_set} | ${dut1_ip4_eid} | ${dut2_ip4_eid}
297 | | ... | ${dut1_ip4_static_adjacency} | ${dut2_ip4_static_adjacency}
298 | | Configure manual keyed connection for IPSec
299 | | ... | ${dut1} | ${DUT1_${int}2}[0] | ${encr_alg} | ${encr_key}
300 | | ... | ${auth_alg} | ${auth_key} | ${dut1_spi} | ${dut2_spi}
301 | | ... | ${dut1_to_dut2_ip4} | ${dut2_to_dut1_ip4}
302 | | Configure manual keyed connection for IPSec
303 | | ... | ${dut2} | ${DUT2_${int}1}[0] | ${encr_alg} | ${encr_key}
304 | | ... | ${auth_alg} | ${auth_key} | ${dut2_spi} | ${dut1_spi}
305 | | ... | ${dut2_to_dut1_ip4} | ${dut1_to_dut2_ip4}
306
307 | Initialize LISP IPv6 forwarding in 3-node circular topology
308 | | [Documentation] | Custom setup of IPv6 topology on all DUT nodes \
309 | | ... | Don`t set route.
310 | |
311 | | ... | *Arguments:*
312 | | ... | - dut1_dut2_address - Ip address from DUT1 to DUT2. Type: string
313 | | ... | - dut1_tg_address - Ip address from DUT1 to tg. Type: string
314 | | ... | - dut2_dut1_address - Ip address from DUT2 to DUT1. Type: string
315 | | ... | - dut1_tg_address - Ip address from DUT1 to tg. Type: string
316 | | ... | - duts_prefix - ip prefix. Type: int
317 | |
318 | | ... | *Return:*
319 | | ... | - No value returned
320 | |
321 | | ... | *Example:*
322 | | ... | \| Initialize LISP IPv6 forwarding in 3-node circular topology \
323 | | ... | \| ${dut1_dut2_address} \| ${dut1_tg_address} \
324 | | ... | \| ${dut2_dut1_address} \| ${dut2_tg_address} \| ${duts_prefix} \|
325 | |
326 | | [Arguments] | ${dut1_dut2_address} | ${dut1_tg_address}
327 | | ... | ${dut2_dut1_address} | ${dut2_tg_address} | ${prefix}
328 | |
329 | | Set interfaces in path up
330 | | VPP Interface Set IP Address
331 | | ... | ${dut1} | ${DUT1_${int}1}[0] | ${dut1_tg_address} | ${prefix}
332 | | VPP Interface Set IP Address
333 | | ... | ${dut1} | ${DUT1_${int}2}[0] | ${dut1_dut2_address} | ${prefix}
334 | | VPP Interface Set IP Address
335 | | ... | ${dut2} | ${DUT2_${int}1}[0] | ${dut2_dut1_address} | ${prefix}
336 | | VPP Interface Set IP Address
337 | | ... | ${dut2} | ${DUT2_${int}2}[0] | ${dut2_tg_address} | ${prefix}
338 | | Vpp Interfaces RA Suppress On All Nodes | ${nodes}
339 | | VPP Add IP Neighbor
340 | | ... | ${dut1} | ${DUT1_${int}1}[0] | 2001:1::2 | ${TG_pf1_mac}[0]
341 | | VPP Add IP Neighbor
342 | | ... | ${dut2} | ${DUT2_${int}1}[0] | 2001:2::2 | ${TG_pf2_mac}[0]
343 | | VPP Add IP Neighbor
344 | | ... | ${dut1} | ${DUT1_${int}2}[0] | ${dut2_dut1_address}
345 | | ... | ${DUT2_${int}1_mac}[0]
346 | | VPP Add IP Neighbor
347 | | ... | ${dut2} | ${DUT2_${int}1}[0] | ${dut1_dut2_address}
348 | | ... | ${DUT1_${int}2_mac}[0]
349
350 | Initialize LISP IPv4 over IPv6 forwarding in 3-node circular topology
351 | | [Documentation] | Custom setup of IPv4 over IPv6 topology on all DUT nodes \
352 | | ... | Don`t set route.
353 | |
354 | | ... | *Arguments:*
355 | | ... | - dut1_dut2_ip6_address - IPv6 address from DUT1 to DUT2.
356 | | ... | Type: string
357 | | ... | - dut1_tg_ip4_address - IPv4 address from DUT1 to tg. Type: string
358 | | ... | - dut2_dut1_ip6_address - IPv6 address from DUT2 to DUT1.
359 | | ... | Type: string
360 | | ... | - dut1_tg_ip4_address - IPv4 address from DUT1 to tg. Type: string
361 | | ... | - prefix4 - IPv4 prefix. Type: int
362 | | ... | - prefix6 - IPv6 prefix. Type: int
363 | |
364 | | ... | *Return:*
365 | | ... | - No value returned
366 | |
367 | | ... | *Example:*
368 | | ... | \| Lisp IPv4 over IPv6 forwarding initialized in a 3-node circular \
369 | | ... | topology \| ${dut1_dut2_ip6_address} \| ${dut1_tg_ip4_address} \
370 | | ... | \| ${dut2_dut1_ip6_address} \| ${dut2_tg_ip4_address} \
371 | | ... | \| ${prefix4} \| ${prefix6} \|
372 | |
373 | | [Arguments] | ${dut1_dut2_ip6_address} | ${dut1_tg_ip4_address}
374 | | ... | ${dut2_dut1_ip6_address} | ${dut2_tg_ip4_address}
375 | | ... | ${prefix4} | ${prefix6}
376 | |
377 | | Set interfaces in path up
378 | | VPP Interface Set IP Address
379 | | ... | ${dut1} | ${DUT1_${int}1}[0] | ${dut1_tg_ip4_address} | ${prefix4}
380 | | VPP Interface Set IP Address
381 | | ... | ${dut1} | ${DUT1_${int}2}[0] | ${dut1_dut2_ip6_address} | ${prefix6}
382 | | VPP Interface Set IP Address
383 | | ... | ${dut2} | ${DUT2_${int}1}[0] | ${dut2_dut1_ip6_address} | ${prefix6}
384 | | VPP Interface Set IP Address
385 | | ... | ${dut2} | ${DUT2_${int}2}[0] | ${dut2_tg_ip4_address} | ${prefix4}
386 | | Vpp Interfaces RA Suppress On All Nodes | ${nodes}
387 | | VPP Add IP Neighbor
388 | | ... | ${dut1} | ${DUT1_${int}1}[0] | 10.10.10.2 | ${TG_pf1_mac}[0]
389 | | VPP Add IP Neighbor
390 | | ... | ${dut2} | ${DUT2_${int}2}[0] | 20.20.20.2 | ${TG_pf2_mac}[0]
391 | | VPP Add IP Neighbor
392 | | ... | ${dut1} | ${DUT1_${int}2}[0] | ${dut2_dut1_ip6_address}
393 | | ... | ${DUT2_${int}1_mac}[0]
394 | | VPP Add IP Neighbor
395 | | ... | ${dut2} | ${DUT2_${int}1}[0] | ${dut1_dut2_ip6_address}
396 | | ... | ${DUT1_${int}2_mac}[0]
397
398 | Initialize LISP IPv6 over IPv4 forwarding in 3-node circular topology
399 | | [Documentation] | Custom setup of IPv4 over IPv6 topology on all DUT nodes \
400 | | ... | Don`t set route.
401 | |
402 | | ... | *Arguments:*
403 | | ... | - dut1_dut2_ip4_address - IPv4 address from DUT1 to DUT2.
404 | | ... | Type: string
405 | | ... | - dut1_tg_ip6_address - IPv6 address from DUT1 to tg. Type: string
406 | | ... | - dut2_dut1_ip4_address - IPv4 address from DUT2 to DUT1.
407 | | ... | Type: string
408 | | ... | - dut1_tg_ip6_address - IPv6 address from DUT1 to tg. Type: string
409 | | ... | - prefix4 - IPv4 prefix. Type: int
410 | | ... | - prefix6 - IPv6 prefix. Type: int
411 | |
412 | | ... | *Return:*
413 | | ... | - No value returned
414 | |
415 | | ... | *Example:*
416 | | ... | \| Lisp IPv6 over IPv4 forwarding initialized in a 3-node circular \
417 | | ... | topology \| ${dut1_dut2_ip4_address} \| ${dut1_tg_ip6_address} \
418 | | ... | \| ${dut2_dut1_ip4_address} \| ${dut2_tg_ip6_address} \
419 | | ... | \| ${prefix6} \| ${prefix4} \|
420 | |
421 | | [Arguments] | ${dut1_dut2_ip4_address} | ${dut1_tg_ip6_address}
422 | | ... | ${dut2_dut1_ip4_address} | ${dut2_tg_ip6_address}
423 | | ... | ${prefix6} | ${prefix4}
424 | |
425 | | Set interfaces in path up
426 | | VPP Interface Set IP Address
427 | | ... | ${dut1} | ${DUT1_${int}1}[0] | ${dut1_tg_ip6_address} | ${prefix6}
428 | | VPP Interface Set IP Address
429 | | ... | ${dut1} | ${DUT1_${int}2}[0] | ${dut1_dut2_ip4_address} | ${prefix4}
430 | | VPP Interface Set IP Address
431 | | ... | ${dut2} | ${DUT2_${int}1}[0] | ${dut2_dut1_ip4_address} | ${prefix4}
432 | | VPP Interface Set IP Address
433 | | ... | ${dut2} | ${DUT2_${int}2}[0] | ${dut2_tg_ip6_address} | ${prefix6}
434 | | Vpp Interfaces RA Suppress On All Nodes | ${nodes}
435 | | VPP Add IP Neighbor
436 | | ... | ${dut1} | ${DUT1_${int}1}[0] | 2001:1::2 | ${TG_pf1_mac}[0]
437 | | VPP Add IP Neighbor
438 | | ... | ${dut2} | ${DUT2_${int}2}[0] | 2001:2::2 | ${TG_pf2_mac}[0]
439 | | VPP Add IP Neighbor
440 | | ... | ${dut1} | ${DUT1_${int}2}[0] | ${dut2_dut1_ip4_address}
441 | | ... | ${DUT2_${int}1_mac}[0]
442 | | VPP Add IP Neighbor
443 | | ... | ${dut2} | ${DUT2_${int}1}[0] | ${dut1_dut2_ip4_address}
444 | | ... | ${DUT1_${int}2_mac}[0]