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