9c90bc39a4d9b4914f4d827e08fc3a74166d0b18
[csit.git] / tests / vpp / func / ip6 / eth2p-ethip6-ip6basevrf-func.robot
1 # Copyright (c) 2019 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.Trace
17 | ...
18 | Resource | resources/libraries/robot/ip/ip4.robot
19 | Resource | resources/libraries/robot/ip/ip6.robot
20 | Resource | resources/libraries/robot/l2/l2_traffic.robot
21 | Resource | resources/libraries/robot/shared/default.robot
22 | Resource | resources/libraries/robot/shared/interfaces.robot
23 | Resource | resources/libraries/robot/shared/testing_path.robot
24 | Resource | resources/libraries/robot/shared/traffic.robot
25 | ...
26 | Force Tags | HW_ENV | VM_ENV | 3_NODE_DOUBLE_LINK_TOPO | SKIP_VPP_PATCH
27 | ...
28 | Test Setup | Set up functional test
29 | ...
30 | Test Teardown | Tear down functional test
31 | ...
32 | Documentation | *Vpn routed forwarding - baseline IPv6*
33 | ... | *[Top] Network Topologies:* TG=DUT1=DUT2=TG 3-node topology with two
34 | ... | links in between nodes.
35 | ... | *[Enc] Packet Encapsulations:* Eth-IPv6-ICMPv6
36 | ... | *[Cfg] DUT configuration:* Each DUT is configured with two VRF tables;
37 | ... | Separation of traffic is tested by IP packets; Neighbors and Routes are
38 | ... | set on DUT nodes; IP addresses are set on DUT interfaces.
39 | ... | *[Ver] TG verification:* Test ICMPv6 Echo Request packets
40 | ... | are sent by TG on link to DUT1, DUT2 or back to TG; On receipt TG
41 | ... | verifies packets for correctness and their IPv6 src-addr, dst-addr,
42 | ... | and MAC addresses.
43 | ... | *[Ref] Applicable standard specifications:*
44
45 *** Variables ***
46 | ${fib_table_1}= | 9
47 | ${fib_table_2}= | 99
48
49 | ${dut1_to_tg_ip1}= | 2001:62::3
50 | ${dut1_to_tg_ip2}= | 2001:62::4
51 | ${dut2_to_tg_ip1}= | 2003:62::3
52 | ${dut2_to_tg_ip2}= | 2003:62::4
53
54 | ${dut1_to_dut2_ip1}= | 2002:62::1
55 | ${dut1_to_dut2_ip2}= | 2002:62::2
56 | ${dut2_to_dut1_ip1}= | 2002:62::3
57 | ${dut2_to_dut1_ip2}= | 2002:62::4
58
59 | ${tg_dut1_ip1}= | 2001:62::1
60 | ${tg_dut1_ip2}= | 2001:62::2
61 | ${tg_dut2_ip1}= | 2003:62::1
62 | ${tg_dut2_ip2}= | 2003:62::2
63
64 | ${ip_prefix}= | 64
65 | ${timeout}= | 5
66
67 *** Test Cases ***
68 | TC01: TG packets routed to DUT ingress interface, VPP configured with two VRFs
69 | | [Documentation]
70 | | ... | [Top] TG=DUT1=DUT2=TG
71 | | ... | [Enc] Eth-IPv6-ICMPv6.
72 | | ... | [Cfg] DUT1 and DUT2 are both configured with two fib tables. Each
73 | | ... | table is assigned to 2 interfaces to separate the traffic. Interfaces
74 | | ... | are configured with IP addresses from *Variables*. Neighbors are
75 | | ... | configured for each DUTs ingress/egress ports, and each VRF is
76 | | ... | configured with just one route.
77 | | ... | [Ver] Packet is sent from TG->DUT1-if1 to DUT1->TG-if1 and from
78 | | ... | TG->DUT1-if2 to DUT1->TG-if2 and checked if arrived.
79 | | Given Configure path in double-link 3-node circular topology
80 | | ... | ${nodes['TG']} | ${nodes['DUT1']}
81 | | ... | ${nodes['DUT2']} | ${nodes['TG']}
82 | | And Set interfaces in double-link 3-node circular topology up
83 | | When Setup Env - 2xVRF Each Node
84 | | Then Send ICMP echo request and verify answer | ${tg_node}
85 | | ... | ${tg_to_dut1_if1} | ${dut1_to_tg_if1_mac}
86 | | ... | ${tg_to_dut1_if1_mac} | ${dut1_to_tg_ip1}
87 | | ... | ${tg_dut1_ip1} | ${timeout}
88 | | And Send ICMP echo request and verify answer | ${tg_node}
89 | | ... | ${tg_to_dut1_if2} | ${dut1_to_tg_if2_mac}
90 | | ... | ${tg_to_dut1_if2_mac} | ${dut1_to_tg_ip2}
91 | | ... | ${tg_dut1_ip2} | ${timeout}
92
93 | TC02: TG packets routed to DUT egress interface, VPP configured with two VRFs
94 | | [Documentation]
95 | | ... | [Top] TG=DUT1=DUT2=TG
96 | | ... | [Enc] Eth-IPv6-ICMPv6.
97 | | ... | [Cfg] DUT1 and DUT2 are both configured with two fib tables. Each
98 | | ... | table is assigned to 2 interfaces to separate the traffic. Interfaces
99 | | ... | are configured with IP addresses from *Variables*. Neighbors are
100 | | ... | configured for each DUTs ingress/egress ports, and each VRF is
101 | | ... | configured with just one route.
102 | | ... | [Ver] Packet is sent from TG->DUT1-if1 to DUT1->DUT2-if1 and from
103 | | ... | TG->DUT1-if2 to DUT1->DUT2-if2 and checked if arrived.
104 | | Given Configure path in double-link 3-node circular topology
105 | | ... | ${nodes['TG']} | ${nodes['DUT1']}
106 | | ... | ${nodes['DUT2']} | ${nodes['TG']}
107 | | And Set interfaces in double-link 3-node circular topology up
108 | | When Setup Env - 2xVRF Each Node
109 | | Then Send ICMP echo request and verify answer | ${tg_node}
110 | | ... | ${tg_to_dut1_if1} | ${dut1_to_tg_if1_mac} | ${tg_to_dut1_if1_mac}
111 | | ... | ${dut1_to_dut2_ip1} | ${tg_dut1_ip1} | ${timeout}
112 | | And Send ICMP echo request and verify answer | ${tg_node}
113 | | ... | ${tg_to_dut1_if2} | ${dut1_to_tg_if2_mac} | ${tg_to_dut1_if2_mac}
114 | | ... | ${dut1_to_dut2_ip2} | ${tg_dut1_ip2} | ${timeout}
115
116 | TC03: TG packets routed to DUT2 ingress interface through DUT1, VPP configured with two VRFs
117 | | [Documentation]
118 | | ... | [Top] TG=DUT1=DUT2=TG
119 | | ... | [Enc] Eth-IPv6-ICMPv6.
120 | | ... | [Cfg] DUT1 and DUT2 are both configured with two fib tables. Each
121 | | ... | table is assigned to 2 interfaces to separate the traffic. Interfaces
122 | | ... | are configured with IP addresses from *Variables*. Neighbors are
123 | | ... | configured for each DUTs ingress/egress ports, and each VRF is
124 | | ... | configured with just one route.
125 | | ... | [Ver] Packet is sent from TG->DUT1-if1 to DUT2->DUT1-if1 and from
126 | | ... | TG->DUT1-if2 to DUT2->DUT1-if2 and checked if arrived.
127 | | Given Configure path in double-link 3-node circular topology
128 | | ... | ${nodes['TG']} | ${nodes['DUT1']}
129 | | ... | ${nodes['DUT2']} | ${nodes['TG']}
130 | | And Set interfaces in double-link 3-node circular topology up
131 | | When Setup Env - 2xVRF Each Node
132 | | Then Send ICMP echo request and verify answer | ${tg_node}
133 | | ... | ${tg_to_dut1_if1} | ${dut1_to_tg_if1_mac} | ${tg_to_dut1_if1_mac}
134 | | ... | ${dut2_to_dut1_ip1} | ${tg_dut1_ip1} | ${timeout}
135 | | And Send ICMP echo request and verify answer | ${tg_node}
136 | | ... | ${tg_to_dut1_if2} | ${dut1_to_tg_if2_mac} | ${tg_to_dut1_if2_mac}
137 | | ... | ${dut2_to_dut1_ip2} | ${tg_dut1_ip2} | ${timeout}
138
139 | TC04: TG packets routed to DUT2 egress interface through DUT1, VPP configured with two VRFs
140 | | [Documentation]
141 | | ... | [Top] TG=DUT1=DUT2=TG
142 | | ... | [Enc] Eth-IPv6-ICMPv6.
143 | | ... | [Cfg] DUT1 and DUT2 are both configured with two fib tables. Each
144 | | ... | table is assigned to 2 interfaces to separate the traffic. Interfaces
145 | | ... | are configured with IP addresses from *Variables*. Neighbors are
146 | | ... | configured for each DUTs ingress/egress ports, and each VRF is
147 | | ... | configured with just one route.
148 | | ... | [Ver] Packet is sent from TG->DUT1-if1 to DUT2->TG-if1 and from
149 | | ... | TG->DUT1-if2 to DUT2->TG-if2 and checked if arrived.
150 | | Given Configure path in double-link 3-node circular topology
151 | | ... | ${nodes['TG']} | ${nodes['DUT1']}
152 | | ... | ${nodes['DUT2']} | ${nodes['TG']}
153 | | And Set interfaces in double-link 3-node circular topology up
154 | | When Setup Env - 2xVRF Each Node
155 | | Then Send ICMP echo request and verify answer | ${tg_node}
156 | | ... | ${tg_to_dut1_if1} | ${dut1_to_tg_if1_mac} | ${tg_to_dut1_if1_mac}
157 | | ... | ${dut2_to_tg_ip1} | ${tg_dut1_ip1} | ${timeout}
158 | | And Send ICMP echo request and verify answer | ${tg_node}
159 | | ... | ${tg_to_dut1_if2} | ${dut1_to_tg_if2_mac} | ${tg_to_dut1_if2_mac}
160 | | ... | ${dut2_to_tg_ip2} | ${tg_dut1_ip2} | ${timeout}
161
162 | TC05: TG packets routed to TG through DUT1 and DUT2, VPP configured with two VRFs
163 | | [Documentation]
164 | | ... | [Top] TG=DUT1=DUT2=TG
165 | | ... | [Enc] Eth-IPv6-ICMPv6.
166 | | ... | [Cfg] DUT1 and DUT2 are both configured with two fib tables. Each
167 | | ... | table is assigned to 2 interfaces to separate the traffic. Interfaces
168 | | ... | are configured with IP addresses from *Variables*. Neighbors are
169 | | ... | configured for each DUTs ingress/egress ports, and each VRF is
170 | | ... | configured with just one route.
171 | | ... | [Ver] Packet is sent from TG->DUT1-if1 to TG->DUT2-if1 and from
172 | | ... | TG->DUT1-if2 to TG->DUT2-if2 and checked if arrived.
173 | | Given Configure path in double-link 3-node circular topology
174 | | ... | ${nodes['TG']} | ${nodes['DUT1']}
175 | | ... | ${nodes['DUT2']} | ${nodes['TG']}
176 | | And Set interfaces in double-link 3-node circular topology up
177 | | When Setup Env - 2xVRF Each Node
178 | | Then Send packet and verify headers | ${tg_node} | ${tg_dut1_ip1}
179 | | ... | ${tg_dut2_ip1} | ${tg_to_dut1_if1} | ${tg_to_dut1_if1_mac}
180 | | ... | ${dut1_to_tg_if1_mac} | ${tg_to_dut2_if1} | ${dut2_to_tg_if1_mac}
181 | | ... | ${tg_to_dut2_if1_mac}
182 | | And Send packet and verify headers | ${tg_node}
183 | | ... | ${tg_dut1_ip2} | ${tg_dut2_ip2} | ${tg_to_dut1_if2}
184 | | ... | ${tg_to_dut1_if2_mac} | ${dut1_to_tg_if2_mac} | ${tg_to_dut2_if2}
185 | | ... | ${dut2_to_tg_if2_mac} | ${tg_to_dut2_if2_mac}
186
187 | TC06: TG packets not routed to DUT ingress interface in different VRF, VPP configured with two VRFs
188 | | [Documentation]
189 | | ... | [Top] TG=DUT1=DUT2=TG
190 | | ... | [Enc] Eth-IPv6-ICMPv6.
191 | | ... | [Cfg] DUT1 and DUT2 are both configured with two fib tables. Each
192 | | ... | table is assigned to 2 interfaces to separate the traffic. Interfaces
193 | | ... | are configured with IP addresses from *Variables*. Neighbors are
194 | | ... | configured for each DUTs ingress/egress ports, and each VRF is
195 | | ... | configured with just one route.
196 | | ... | [Ver] Packet is sent from TG->DUT1-if1 to DUT1->TG-if2 where it
197 | | ... | should not arrive.
198 | | [Tags] | SKIP_PATCH
199 | | Given Configure path in double-link 3-node circular topology
200 | | ... | ${nodes['TG']} | ${nodes['DUT1']}
201 | | ... | ${nodes['DUT2']} | ${nodes['TG']}
202 | | And Set interfaces in double-link 3-node circular topology up
203 | | When Setup Env - 2xVRF Each Node
204 | | Then Run Keyword And Expect Error | ICMP echo Rx timeout
205 | | ... | Send ICMP echo request and verify answer
206 | | ... | ${tg_node} | ${tg_to_dut1_if1}
207 | | ... | ${dut1_to_tg_if1_mac} | ${tg_to_dut1_if1_mac}
208 | | ... | ${dut1_to_tg_ip2} | ${tg_dut1_ip1} | ${timeout}
209 | | And Run Keyword And Expect Error | ICMP echo Rx timeout
210 | | ... | Send ICMP echo request and verify answer
211 | | ... | ${tg_node} | ${tg_to_dut1_if2}
212 | | ... | ${dut1_to_tg_if2_mac} | ${tg_to_dut1_if2_mac}
213 | | ... | ${dut1_to_tg_ip1} | ${tg_dut1_ip2} | ${timeout}
214
215 | TC07: TG packets not routed to DUT egress interface in different VRF, VPP configured with two VRFs
216 | | [Documentation]
217 | | ... | [Top] TG=DUT1=DUT2=TG
218 | | ... | [Enc] Eth-IPv6-ICMPv6.
219 | | ... | [Cfg] DUT1 and DUT2 are both configured with two fib tables. Each
220 | | ... | table is assigned to 2 interfaces to separate the traffic. Interfaces
221 | | ... | are configured with IP addresses from *Variables*. Neighbors are
222 | | ... | configured for each DUTs ingress/egress ports, and each VRF is
223 | | ... | configured with just one route.
224 | | ... | [Ver] Packet is sent from TG->DUT1-if1 to DUT1->DUT2-if2 where it
225 | | ... | should not arrive.
226 | | [Tags] | SKIP_PATCH
227 | | Given Configure path in double-link 3-node circular topology
228 | | ... | ${nodes['TG']} | ${nodes['DUT1']}
229 | | ... | ${nodes['DUT2']} | ${nodes['TG']}
230 | | And Set interfaces in double-link 3-node circular topology up
231 | | When Setup Env - 2xVRF Each Node
232 | | Then Run Keyword And Expect Error | ICMP echo Rx timeout
233 | | ... | Send ICMP echo request and verify answer
234 | | ... | ${tg_node} | ${tg_to_dut1_if1}
235 | | ... | ${dut1_to_tg_if1_mac} | ${tg_to_dut1_if1_mac}
236 | | ... | ${dut1_to_dut2_ip2} | ${tg_dut1_ip1} | ${timeout}
237 | | And Run Keyword And Expect Error | ICMP echo Rx timeout
238 | | ... | Send ICMP echo request and verify answer
239 | | ... | ${tg_node} | ${tg_to_dut1_if2}
240 | | ... | ${dut1_to_tg_if2_mac} | ${tg_to_dut1_if2_mac}
241 | | ... | ${dut1_to_dut2_ip1} | ${tg_dut1_ip2} | ${timeout}
242
243
244 | TC08: TG packets not routed to DUT2 ingress interface in different VRF through DUT1, VPP configured with two VRFs
245 | | [Documentation]
246 | | ... | [Top] TG=DUT1=DUT2=TG
247 | | ... | [Enc] Eth-IPv6-ICMPv6.
248 | | ... | [Cfg] DUT1 and DUT2 are both configured with two fib tables. Each
249 | | ... | table is assigned to 2 interfaces to separate the traffic. Interfaces
250 | | ... | are configured with IP addresses from *Variables*. Neighbors are
251 | | ... | configured for each DUTs ingress/egress ports, and each VRF is
252 | | ... | configured with just one route.
253 | | ... | [Ver] Packet is sent from TG->DUT1-if1 to DUT2->DUT1-if2 where it
254 | | ... | should not arrive.
255 | | [Tags] | SKIP_PATCH
256 | | Given Configure path in double-link 3-node circular topology
257 | | ... | ${nodes['TG']} | ${nodes['DUT1']}
258 | | ... | ${nodes['DUT2']} | ${nodes['TG']}
259 | | And Set interfaces in double-link 3-node circular topology up
260 | | When Setup Env - 2xVRF Each Node
261 | | Then Run Keyword And Expect Error | ICMP echo Rx timeout
262 | | ... | Send ICMP echo request and verify answer
263 | | ... | ${tg_node} | ${tg_to_dut1_if1}
264 | | ... | ${dut1_to_tg_if1_mac} | ${tg_to_dut1_if1_mac}
265 | | ... | ${dut2_to_dut1_ip2} | ${tg_dut1_ip1} | ${timeout}
266 | | And Run Keyword And Expect Error | ICMP echo Rx timeout
267 | | ... | Send ICMP echo request and verify answer
268 | | ... | ${tg_node} | ${tg_to_dut1_if2}
269 | | ... | ${dut1_to_tg_if2_mac} | ${tg_to_dut1_if2_mac}
270 | | ... | ${dut2_to_dut1_ip1} | ${tg_dut1_ip2} | ${timeout}
271
272 | TC09: TG packets not routed to DUT2 egress interface in different VRF through DUT1, VPP configured with two VRFs
273 | | [Documentation]
274 | | ... | [Top] TG=DUT1=DUT2=TG
275 | | ... | [Enc] Eth-IPv6-ICMPv6.
276 | | ... | [Cfg] DUT1 and DUT2 are both configured with two fib tables. Each
277 | | ... | table is assigned to 2 interfaces to separate the traffic. Interfaces
278 | | ... | are configured with IP addresses from *Variables*. Neighbors are
279 | | ... | configured for each DUTs ingress/egress ports, and each VRF is
280 | | ... | configured with just one route.
281 | | ... | [Ver] Packet is sent from TG->DUT1-if1 to DUT2->TG-if2 where it
282 | | ... | should not arrive.
283 | | [Tags] | SKIP_PATCH
284 | | Given Configure path in double-link 3-node circular topology
285 | | ... | ${nodes['TG']} | ${nodes['DUT1']}
286 | | ... | ${nodes['DUT2']} | ${nodes['TG']}
287 | | And Set interfaces in double-link 3-node circular topology up
288 | | When Setup Env - 2xVRF Each Node
289 | | Then Run Keyword And Expect Error | ICMP echo Rx timeout
290 | | ... | Send ICMP echo request and verify answer
291 | | ... | ${tg_node} | ${tg_to_dut1_if1}
292 | | ... | ${dut1_to_tg_if1_mac} | ${tg_to_dut1_if1_mac}
293 | | ... | ${dut2_to_tg_ip2} | ${tg_dut1_ip1} | ${timeout}
294 | | And Run Keyword And Expect Error | ICMP echo Rx timeout
295 | | ... | Send ICMP echo request and verify answer
296 | | ... | ${tg_node} | ${tg_to_dut1_if2}
297 | | ... | ${dut1_to_tg_if2_mac} | ${tg_to_dut1_if2_mac}
298 | | ... | ${dut2_to_tg_ip1} | ${tg_dut1_ip2} | ${timeout}
299
300 | TC10: TG packets not routed to TG in different VRF through DUT1 and DUT2, VPP configured with two VRFs
301 | | [Documentation]
302 | | ... | [Top] TG=DUT1=DUT2=TG.
303 | | ... | [Enc] Eth-IPv6-ICMPv6.
304 | | ... | [Cfg] DUT1 and DUT2 are both configured with two fib tables. Each
305 | | ... | table is assigned to 2 interfaces to separate the traffic. Interfaces
306 | | ... | are configured with IP addresses from *Variables*. Neighbors are
307 | | ... | configured for each DUTs ingress/egress ports, and each VRF is
308 | | ... | configured with just one route.
309 | | ... | [Ver] Packet is sent from TG->DUT1-if1 to TG->DUT2-if2 where it
310 | | ... | should not arrive.
311 | | [Tags] | SKIP_PATCH
312 | | Given Configure path in double-link 3-node circular topology
313 | | ... | ${nodes['TG']} | ${nodes['DUT1']}
314 | | ... | ${nodes['DUT2']} | ${nodes['TG']}
315 | | And Set interfaces in double-link 3-node circular topology up
316 | | When Setup Env - 2xVRF Each Node
317 | | Then Run Keyword And Expect Error | ICMP echo Rx timeout
318 | | ... | Send packet and verify headers | ${tg_node} | ${tg_dut1_ip1}
319 | | ... | ${tg_dut2_ip2} | ${tg_to_dut1_if1}
320 | | ... | ${tg_to_dut1_if1_mac} | ${dut1_to_tg_if1_mac} | ${tg_to_dut2_if2}
321 | | ... | ${dut2_to_tg_if2_mac} | ${tg_to_dut2_if2_mac}
322 | | And Run Keyword And Expect Error | ICMP echo Rx timeout
323 | | ... | Send packet and verify headers | ${tg_node} | ${tg_dut1_ip2}
324 | | ... | ${tg_dut2_ip1} | ${tg_to_dut1_if2}
325 | | ... | ${tg_to_dut1_if2_mac} | ${dut1_to_tg_if2_mac} | ${tg_to_dut2_if1}
326 | | ... | ${dut2_to_tg_if1_mac} | ${tg_to_dut2_if1_mac}
327
328 *** Keywords ***
329 | Setup Env - 2xVRF Each Node
330 | | [Documentation]
331 | | ... | Environment is set up with 2 fib tables on each DUT. DUT1-TG-IF1 and \
332 | | ... | DUT1-DUT2-IF1 are assigned to FIB1, and DUT1-TG-IF2 and DUT1-DUT2-IF2
333 | | ... | are assigned to FIB2 (the same done on DUT2, just opposite).
334 | | ... | IP addresses and IP Neighbors are subsequently set for interfaces.
335 | | ... | The last setting is route for each fib table.
336 | | ...
337 | | ${dut1_if1_idx}= | Get Interface SW Index
338 | | ... | ${dut1_node} | ${dut1_to_dut2_if1}
339 | | ${dut1_if2_idx}= | Get Interface SW Index
340 | | ... | ${dut1_node} | ${dut1_to_dut2_if2}
341 | | ${dut2_if1_idx}= | Get Interface SW Index
342 | | ... | ${dut2_node} | ${dut2_to_dut1_if1}
343 | | ${dut2_if2_idx}= | Get Interface SW Index
344 | | ... | ${dut2_node} | ${dut2_to_dut1_if2}
345
346 | | And Add Fib Table | ${dut1_node} | ${fib_table_1} | ipv6=${TRUE}
347 | | And Add Fib Table | ${dut1_node} | ${fib_table_2} | ipv6=${TRUE}
348 | | Assign Interface To Fib Table
349 | | ... | ${dut1_node} | ${dut1_to_dut2_if1} | ${fib_table_1} | ipv6=${TRUE}
350 | | Assign Interface To Fib Table
351 | | ... | ${dut1_node} | ${dut1_to_dut2_if2} | ${fib_table_2} | ipv6=${TRUE}
352 | | Assign Interface To Fib Table
353 | | ... | ${dut1_node} | ${dut1_to_tg_if1} | ${fib_table_1} | ipv6=${TRUE}
354 | | Assign Interface To Fib Table
355 | | ... | ${dut1_node} | ${dut1_to_tg_if2} | ${fib_table_2} | ipv6=${TRUE}
356
357 | | And Add Fib Table | ${dut2_node} | ${fib_table_1} | ipv6=${TRUE}
358 | | And Add Fib Table | ${dut2_node} | ${fib_table_2} | ipv6=${TRUE}
359 | | Assign Interface To Fib Table
360 | | ... | ${dut2_node} | ${dut2_to_dut1_if1} | ${fib_table_1} | ipv6=${TRUE}
361 | | Assign Interface To Fib Table
362 | | ... | ${dut2_node} | ${dut2_to_dut1_if2} | ${fib_table_2} | ipv6=${TRUE}
363 | | Assign Interface To Fib Table
364 | | ... | ${dut2_node} | ${dut2_to_tg_if1} | ${fib_table_1} | ipv6=${TRUE}
365 | | Assign Interface To Fib Table
366 | | ... | ${dut2_node} | ${dut2_to_tg_if2} | ${fib_table_2} | ipv6=${TRUE}
367
368 | | And VPP Interface Set IP Address
369 | | ... | ${dut1_node} | ${dut1_to_tg_if1} | ${dut1_to_tg_ip1} | ${ip_prefix}
370 | | And VPP Interface Set IP Address
371 | | ... | ${dut1_node} | ${dut1_to_tg_if2} | ${dut1_to_tg_ip2} | ${ip_prefix}
372 | | And VPP Interface Set IP Address
373 | | ... | ${dut1_node} | ${dut1_to_dut2_if1}
374 | | ... | ${dut1_to_dut2_ip1} | ${ip_prefix}
375 | | And VPP Interface Set IP Address
376 | | ... | ${dut1_node} | ${dut1_to_dut2_if2}
377 | | ... | ${dut1_to_dut2_ip2} | ${ip_prefix}
378
379 | | And VPP Interface Set IP Address
380 | | ... | ${dut2_node} | ${dut2_to_tg_if1} | ${dut2_to_tg_ip1} | ${ip_prefix}
381 | | And VPP Interface Set IP Address
382 | | ... | ${dut2_node} | ${dut2_to_tg_if2} | ${dut2_to_tg_ip2} | ${ip_prefix}
383 | | And VPP Interface Set IP Address
384 | | ... | ${dut2_node} | ${dut2_to_dut1_if1}
385 | | ... | ${dut2_to_dut1_ip1} | ${ip_prefix}
386 | | And VPP Interface Set IP Address
387 | | ... | ${dut2_node} | ${dut2_to_dut1_if2}
388 | | ... | ${dut2_to_dut1_ip2} | ${ip_prefix}
389
390 | | And VPP Add IP Neighbor | ${dut1_node} | ${dut1_to_tg_if1}
391 | | ... | ${tg_dut1_ip1} | ${tg_to_dut1_if1_mac}
392 | | And VPP Add IP Neighbor | ${dut1_node} | ${dut1_to_dut2_if1}
393 | | ... | ${dut2_to_dut1_ip1} | ${dut2_to_dut1_if1_mac}
394 | | And VPP Add IP Neighbor | ${dut2_node} | ${dut2_to_tg_if1}
395 | | ... | ${tg_dut2_ip1} | ${tg_to_dut2_if1_mac}
396 | | And VPP Add IP Neighbor | ${dut2_node} | ${dut2_to_dut1_if1}
397 | | ... | ${dut1_to_dut2_ip1} | ${dut1_to_dut2_if1_mac}
398
399 | | And VPP Add IP Neighbor | ${dut1_node} | ${dut1_to_tg_if2}
400 | | ... | ${tg_dut1_ip2} | ${tg_to_dut1_if2_mac}
401 | | And VPP Add IP Neighbor | ${dut1_node} | ${dut1_to_dut2_if2}
402 | | ... | ${dut2_to_dut1_ip2} | ${dut2_to_dut1_if2_mac}
403 | | And VPP Add IP Neighbor | ${dut2_node} | ${dut2_to_tg_if2}
404 | | ... | ${tg_dut2_ip2} | ${tg_to_dut2_if2_mac}
405 | | And VPP Add IP Neighbor | ${dut2_node} | ${dut2_to_dut1_if2}
406 | | ... | ${dut1_to_dut2_ip2} | ${dut1_to_dut2_if2_mac}
407
408 | | And Vpp Route Add | ${dut1_node} | ${tg_dut2_ip1} | ${ip_prefix}
409 | | ... | gateway=${dut2_to_dut1_ip1} | interface=${dut1_to_dut2_if1}
410 | | ... | vrf=${fib_table_1}
411 | | And Vpp Route Add | ${dut2_node} | ${tg_dut1_ip1} | ${ip_prefix}
412 | | ... | gateway=${dut1_to_dut2_ip1} | interface=${dut2_to_dut1_if1}
413 | | ... | vrf=${fib_table_1}
414
415 | | And Vpp Route Add | ${dut1_node} | ${tg_dut2_ip2} | ${ip_prefix}
416 | | ... | gateway=${dut2_to_dut1_ip2} | interface=${dut1_to_dut2_if2}
417 | | ... | vrf=${fib_table_2}
418 | | And Vpp Route Add | ${dut2_node} | ${tg_dut1_ip2} | ${ip_prefix}
419 | | ... | gateway=${dut1_to_dut2_ip2} | interface=${dut2_to_dut1_if2}
420 | | ... | vrf=${fib_table_2}
421
422 | | Vpp All RA Suppress Link Layer | ${nodes}