b1a4304f87a118e9985078631f787d312f899bb7
[csit.git] / tests / vpp / func / honeycomb / mgmt-cfg-int-subint-apihc-apivat-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/honeycomb/honeycomb.robot
17 | Resource | resources/libraries/robot/honeycomb/sub_interface.robot
18 | Resource | resources/libraries/robot/honeycomb/bridge_domain.robot
19 | Resource | resources/libraries/robot/honeycomb/interfaces.robot
20 | Variables | resources/test_data/honeycomb/sub_interfaces.py
21 | ...
22 | Suite Setup | Set Up Honeycomb Functional Test Suite | ${node}
23 | ...
24 | Suite Teardown | Tear Down Honeycomb Functional Test Suite | ${node}
25 | ...
26 | Force Tags | HC_FUNC
27 | ...
28 | Documentation | *Honeycomb sub-interface management test suite.*
29
30 *** Variables ***
31 # Test interfaces and their sub-interface parameters:
32 | ${super_if}= | ${node['interfaces']['port1']['name']}
33 | ${super_if2}= | ${node['interfaces']['port3']['name']}
34 | ${sub_if_id}= | ${sub_if_1_settings['identifier']}
35 | ${sub_if_name}= | ${super_if}.${sub_if_id}
36 | ${sub_if2_name}= | ${super_if2}.${sub_if_id}
37
38 *** Test Cases ***
39 | TC01: Honeycomb creates sub-interface
40 | | [Documentation] | Check if Honeycomb creates a sub-interface.
41 | | ...
42 | | Given Honeycomb configures interface state | ${node} | ${super_if} | down
43 | | And sub-interface Operational Data From Honeycomb Should Be empty
44 | | ... | ${node} | ${super_if} | ${sub_if_id}
45 | | And interface Operational Data From VAT Should Be empty
46 | | ... | ${node} | ${sub_if_name}
47 | | When Honeycomb creates sub-interface | ${node} | ${super_if}
48 | | ... | ${sub_if_1_match} | ${sub_if_1_tags} | ${sub_if_1_settings}
49 | | Then Sub-interface Operational Data From Honeycomb Should Be
50 | | ... | ${node} | ${super_if} | ${sub_if_id} | ${sub_if_1_oper}
51 | | And Sub-interface Operational Data From VAT Should Be
52 | | ... | ${node} | ${sub_if_name} | ${sub_if_1_oper}
53 | | And sub-interface indices from Honeycomb and VAT should correspond
54 | | ... | ${node} | ${super_if} | ${sub_if_id}
55
56 | TC02: Honeycomb sets interface and sub-interface up
57 | | [Documentation] | Honeycomb changes the state of interface\
58 | | ... | and of its sub-interface to up.
59 | | ...
60 | | Given interface state from Honeycomb should be
61 | | ... | ${node} | ${super_if} | down
62 | | And interface state from VAT should be
63 | | ... | ${node} | ${super_if} | down
64 | | Sub-interface state from Honeycomb should be
65 | | ... | ${node} | ${super_if} | ${sub_if_id} | down | down
66 | | Sub-interface state from VAT should be
67 | | ... | ${node} | ${sub_if_name} | down | down
68 | | When Honeycomb configures interface state
69 | | ... | ${node} | ${super_if} | up
70 | | Then interface state from Honeycomb should be
71 | | ... | ${node} | ${super_if} | up
72 | | And interface state from VAT should be
73 | | ... | ${node} | ${super_if} | up
74 | | When Honeycomb sets the sub-interface up
75 | | ... | ${node} | ${super_if} | ${sub_if_id}
76 | | Then Sub-interface state from Honeycomb should be
77 | | ... | ${node} | ${super_if} | ${sub_if_id} | up | up
78 | | And sub-interface state from VAT should be
79 | | ... | ${node} | ${sub_if_name} | up | up
80
81 | TC03: Honeycomb sets sub-interface down while its super-interface is up
82 | | [Documentation] | Honeycomb sets the sub-interface down while its \
83 | | ... | super-interface is up. It must be possible.
84 | | ...
85 | | [Teardown] | Set super and sub interfaces up
86 | | ... | ${node} | ${super_if} | ${sub_if_id}
87 | | ...
88 | | Given sub-interface state from Honeycomb should be
89 | | ... | ${node} | ${super_if} | ${sub_if_id} | up | up
90 | | And sub-interface state from VAT should be
91 | | ... | ${node} | ${sub_if_name} | up | up
92 | | And interface state from Honeycomb should be
93 | | ... | ${node} | ${super_if} | up
94 | | And interface state from VAT should be
95 | | ... | ${node} | ${super_if} | up
96 | | When Honeycomb sets the sub-interface down
97 | | ... | ${node} | ${super_if} | ${sub_if_id}
98 | | Then interface state from Honeycomb should be
99 | | ... | ${node} | ${super_if} | up
100 | | And interface state from VAT should be
101 | | ... | ${node} | ${super_if} | up
102 | | And sub-interface state from Honeycomb should be
103 | | ... | ${node} | ${super_if} | ${sub_if_id} | down | up
104 | | And sub-interface state from VAT should be
105 | | ... | ${node} | ${sub_if_name} | down | up
106
107 | TC04: Honeycomb sets interface and sub-interface down
108 | | [Documentation] | Honeycomb changes the state of interface down and then \
109 | | ... | changes the state of its sub-interface down, in this order.
110 | | ...
111 | | [Teardown] | Set super and sub interfaces down
112 | | ... | ${node} | ${super_if} | ${sub_if_id}
113 | | ...
114 | | Given interface state from Honeycomb should be
115 | | ... | ${node} | ${super_if} | up
116 | | And interface state from VAT should be
117 | | ... | ${node} | ${super_if} | up
118 | | When Honeycomb configures interface state
119 | | ... | ${node} | ${super_if} | down
120 | | Then interface state from Honeycomb should be
121 | | ... | ${node} | ${super_if} | down
122 | | And interface state from VAT should be
123 | | ... | ${node} | ${super_if} | down
124 | | Given sub-interface state from Honeycomb should be
125 | | ... | ${node} | ${super_if} | ${sub_if_id} | up | down
126 | | And sub-interface state from VAT should be
127 | | ... | ${node} | ${sub_if_name} | up | down
128 | | When Honeycomb sets the sub-interface down
129 | | ... | ${node} | ${super_if} | ${sub_if_id}
130 | | Then sub-interface state from Honeycomb should be
131 | | ... | ${node} | ${super_if} | ${sub_if_id} | down | down
132 | | And sub-interface state from VAT should be
133 | | ... | ${node} | ${sub_if_name} | down | down
134
135 | TC05: Honeycomb fails to set sub-interface up while its super-interface is down
136 | | [Documentation] | Honeycomb tries to set the sub-interface up while its \
137 | | ... | super-interface is down. It must not be possible.
138 | | ...
139 | | Given interface state from Honeycomb should be
140 | | ... | ${node} | ${super_if} | down
141 | | And interface state from VAT should be
142 | | ... | ${node} | ${super_if} | down
143 | | And sub-interface state from Honeycomb should be
144 | | ... | ${node} | ${super_if} | ${sub_if_id} | down | down
145 | | And sub-interface state from VAT should be
146 | | ... | ${node} | ${sub_if_name} | down | down
147 | | When Honeycomb fails to set sub-interface up
148 | | ... | ${node} | ${super_if} | ${sub_if_id}
149 | | Then interface state from Honeycomb should be
150 | | ... | ${node} | ${super_if} | down
151 | | And interface state from VAT should be
152 | | ... | ${node} | ${super_if} | down
153 | | And sub-interface state from Honeycomb should be
154 | | ... | ${node} | ${super_if} | ${sub_if_id} | down | down
155 | | And sub-interface state from VAT should be
156 | | ... | ${node} | ${sub_if_name} | down | down
157
158 | TC06: Honeycomb fails to delete sub-interface
159 | | [Documentation] | Check if Honeycomb can delete an existing sub-interface.
160 | | ...
161 | | [Setup] | Set super and sub interfaces down
162 | | ... | ${node} | ${super_if} | ${sub_if_id}
163 | | ...
164 | | Given sub-interface Operational Data From Honeycomb Should Be
165 | | ... | ${node} | ${super_if} | ${sub_if_id} | ${sub_if_1_oper}
166 | | And sub-interface Operational Data From VAT Should Be
167 | | ... | ${node} | ${sub_if_name} | ${sub_if_1_oper}
168 | | When Honeycomb fails to remove all sub-interfaces
169 | | ... | ${node} | ${super_if}
170 | | Then sub-interface Operational Data From Honeycomb Should Be
171 | | ... | ${node} | ${super_if} | ${sub_if_id} | ${sub_if_1_oper}
172 | | And sub-interface Operational Data From VAT Should Be
173 | | ... | ${node} | ${sub_if_name} | ${sub_if_1_oper}
174
175 | TC07: Honeycomb adds sub-interface to new bridge domain
176 | | [Documentation] | Check if Honeycomb adds a sub-interface to bridge domain.
177 | | ...
178 | | [Setup] | Set super and sub interfaces down
179 | | ... | ${node} | ${super_if} | ${sub_if_id}
180 | | ...
181 | | Given sub-interface Operational Data From Honeycomb Should Be
182 | | ... | ${node} | ${super_if} | ${sub_if_id} | ${sub_if_1_oper}
183 | | And sub-interface Operational Data From VAT Should Be
184 | | ... | ${node} | ${sub_if_name} | ${sub_if_1_oper}
185 | | When Honeycomb creates first L2 bridge domain
186 | | ... | ${node} | ${bd_name} | ${bd_settings}
187 | | Then bridge domain Operational Data From Honeycomb Should Be
188 | | ... | ${node} | ${bd_name} | ${bd_settings}
189 | | When Honeycomb adds sub-interface to bridge domain
190 | | ... | ${node} | ${super_if} | ${sub_if_id} | ${sub_bd_settings}
191 | | Then sub-interface bridge domain Operational Data From Honeycomb Should Be
192 | | ... | ${node} | ${super_if} | ${sub_if_id} | ${sub_bd_settings}
193 | | And sub-interface bridge domain Operational Data From VAT Should Be
194 | | ... | ${node} | ${sub_if_name} | ${sub_bd_settings}
195 | | And sub-interface Operational Data From VAT Should Be
196 | | ... | ${node} | ${sub_if_name} | ${sub_if_1_oper}
197
198 | TC08: Honeycomb enables tag-rewrite pop 1
199 | | [Documentation] | Check if Honeycomb enables tag-rewrite and sets its \
200 | | ... | parameters correctly. Case: pop 1.
201 | | ...
202 | | [Teardown] | Honeycomb disables tag rewrite
203 | | ... | ${node} | ${super_if} | ${sub_if_id}
204 | | ...
205 | | Given rewrite tag from Honeycomb should be empty
206 | | ... | ${node} | ${super_if} | ${sub_if_id}
207 | | When Honeycomb configures tag rewrite
208 | | ... | ${node} | ${super_if} | ${sub_if_id} | ${tag_rewrite_pop_1}
209 | | Then rewrite tag from Honeycomb should be
210 | | ... | ${node} | ${super_if} | ${sub_if_id} | ${tag_rewrite_pop_1_oper}
211 | | And rewrite tag from VAT should be
212 | | ... | ${node} | ${sub_if_name} | ${tag_rewrite_pop_1_VAT}
213
214 | TC09: Honeycomb enables tag-rewrite push
215 | | [Documentation] | Check if Honeycomb enables tag-rewrite and sets its \
216 | | ... | parameters correctly. Case: push.
217 | | ...
218 | | [Teardown] | Honeycomb disables tag rewrite
219 | | ... | ${node} | ${super_if} | ${sub_if_id}
220 | | ...
221 | | Given rewrite tag from Honeycomb should be empty
222 | | ... | ${node} | ${super_if} | ${sub_if_id}
223 | | When Honeycomb configures tag rewrite
224 | | ... | ${node} | ${super_if} | ${sub_if_id} | ${tag_rewrite_push}
225 | | Then rewrite tag from Honeycomb should be
226 | | ... | ${node} | ${super_if} | ${sub_if_id} | ${tag_rewrite_push_oper}
227 | | And rewrite tag from VAT should be
228 | | ... | ${node} | ${sub_if_name} | ${tag_rewrite_push_VAT}
229
230 | TC10: Honeycomb enables tag-rewrite translate 1-2
231 | | [Documentation] | Check if Honeycomb enables tag-rewrite and sets its \
232 | | ... | parameters correctly. Case: translate 1-2.
233 | | ...
234 | | [Teardown] | Honeycomb disables tag rewrite
235 | | ... | ${node} | ${super_if} | ${sub_if_id}
236 | | ...
237 | | Given rewrite tag from Honeycomb should be empty
238 | | ... | ${node} | ${super_if} | ${sub_if_id}
239 | | When Honeycomb configures tag rewrite
240 | | ... | ${node} | ${super_if} | ${sub_if_id} | ${tag_rewrite_translate_1_2}
241 | | Then rewrite tag from Honeycomb should be
242 | | ... | ${node} | ${super_if} | ${sub_if_id}
243 | | ... | ${tag_rewrite_translate_1_2_oper}
244 | | And rewrite tag from VAT should be
245 | | ... | ${node} | ${sub_if_name} | ${tag_rewrite_translate_1_2_VAT}
246
247 | TC11: Honeycomb disables tag-rewrite
248 | | [Documentation] | Check if Honeycomb disables the tag-rewrite.
249 | | ...
250 | | [Teardown] | Honeycomb disables tag rewrite
251 | | ... | ${node} | ${super_if} | ${sub_if_id}
252 | | ...
253 | | When Honeycomb configures tag rewrite
254 | | ... | ${node} | ${super_if} | ${sub_if_id} | ${tag_rewrite_pop_1}
255 | | Then rewrite tag from Honeycomb should be
256 | | ... | ${node} | ${super_if} | ${sub_if_id} | ${tag_rewrite_pop_1_oper}
257 | | When Honeycomb configures tag rewrite
258 | | ... | ${node} | ${super_if} | ${sub_if_id} | ${tag_rewrite_disabled}
259 | | Then rewrite tag from Honeycomb should be empty
260 | | ... | ${node} | ${super_if} | ${sub_if_id}
261 | | And rewrite tag from VAT should be
262 | | ... | ${node} | ${sub_if_name} | ${tag_rewrite_disabled_VAT}
263
264 | TC12: Honeycomb enables tag-rewrite pop 1 again
265 | | [Documentation] | Check if Honeycomb can enable tag-rewrite again, once it \
266 | | ... | was disabled by Honeycomb.
267 | | ...
268 | | [Teardown] | Honeycomb disables tag rewrite
269 | | ... | ${node} | ${super_if} | ${sub_if_id}
270 | | ...
271 | | Given rewrite tag from Honeycomb should be empty
272 | | ... | ${node} | ${super_if} | ${sub_if_id}
273 | | When Honeycomb configures tag rewrite
274 | | ... | ${node} | ${super_if} | ${sub_if_id} | ${tag_rewrite_pop_1}
275 | | Then rewrite tag from Honeycomb should be
276 | | ... | ${node} | ${super_if} | ${sub_if_id} | ${tag_rewrite_pop_1_oper}
277 | | And rewrite tag from VAT should be
278 | | ... | ${node} | ${sub_if_name} | ${tag_rewrite_pop_1_VAT}
279
280 | TC13: Honeycomb modifies the tag-rewrite
281 | | [Documentation] | Honeycomb sets the tag-rewrite:
282 | | ... | 1. pop 1, then
283 | | ... | 2. push, then
284 | | ... | 3. translate 1 - 2
285 | | ... | Then Honeycomb disables the tag-rewrite.
286 | | ...
287 | | [Teardown] | Honeycomb disables tag rewrite
288 | | ... | ${node} | ${super_if} | ${sub_if_id}
289 | | ...
290 | | Given rewrite tag from Honeycomb should be empty
291 | | ... | ${node} | ${super_if} | ${sub_if_id}
292 | | When Honeycomb configures tag rewrite
293 | | ... | ${node} | ${super_if} | ${sub_if_id} | ${tag_rewrite_pop_1}
294 | | Then rewrite tag from Honeycomb should be
295 | | ... | ${node} | ${super_if} | ${sub_if_id} | ${tag_rewrite_pop_1_oper}
296 | | And rewrite tag from VAT should be
297 | | ... | ${node} | ${sub_if_name} | ${tag_rewrite_pop_1_VAT}
298 | | When Honeycomb configures tag rewrite
299 | | ... | ${node} | ${super_if} | ${sub_if_id} | ${tag_rewrite_push}
300 | | Then rewrite tag from Honeycomb should be
301 | | ... | ${node} | ${super_if} | ${sub_if_id} | ${tag_rewrite_push_oper}
302 | | And rewrite tag from VAT should be
303 | | ... | ${node} | ${sub_if_name} | ${tag_rewrite_push_VAT}
304 | | When Honeycomb configures tag rewrite
305 | | ... | ${node} | ${super_if} | ${sub_if_id} | ${tag_rewrite_translate_1_2}
306 | | Then rewrite tag from Honeycomb should be
307 | | ... | ${node} | ${super_if} | ${sub_if_id}
308 | | ... | ${tag_rewrite_translate_1_2_oper}
309 | | And rewrite tag from VAT should be
310 | | ... | ${node} | ${sub_if_name} | ${tag_rewrite_translate_1_2_VAT}
311 | | When Honeycomb configures tag rewrite
312 | | ... | ${node} | ${super_if} | ${sub_if_id} | ${tag_rewrite_disabled}
313 | | Then rewrite tag from Honeycomb should be empty
314 | | ... | ${node} | ${super_if} | ${sub_if_id}
315 | | And rewrite tag from VAT should be
316 | | ... | ${node} | ${sub_if_name} | ${tag_rewrite_disabled_VAT}
317
318 | TC14: Honeycomb fails to set wrong vlan-type in tag-rewrite
319 | | [Documentation] | Check that Honeycomb does not accept wrong values of \
320 | | ... | vlan-type in tag-rewrite.
321 | | ...
322 | | Given rewrite tag from Honeycomb should be empty
323 | | ... | ${node} | ${super_if} | ${sub_if_id}
324 | | When Honeycomb fails to set wrong rewrite tag
325 | | ... | ${node} | ${super_if} | ${sub_if_id}
326 | | ... | ${tag_rewrite_translate_1_2_wrong}
327 | | Then rewrite tag from Honeycomb should be empty
328 | | ... | ${node} | ${super_if} | ${sub_if_id}
329 | | And rewrite tag from VAT should be
330 | | ... | ${node} | ${sub_if_name} | ${tag_rewrite_disabled_VAT}
331
332 | TC15: Honeycomb configures sub-interface ipv4 address
333 | | [Documentation] | Check if Honeycomb can configure an ipv4 address on the\
334 | | ... | sub-interface.
335 | | ...
336 | | Given sub-interface ipv4 address from Honeycomb should be empty
337 | | ... | ${node} | ${super_if} | ${sub_if_id}
338 | | And sub-interface ipv4 address from VAT should be empty
339 | | ... | ${node} | ${sub_if_name}
340 | | When Honeycomb sets sub-interface ipv4 address
341 | | ... | ${node} | ${super_if} | ${sub_if_id}
342 | | ... | ${ipv4['address']} | ${ipv4['prefix-length']}
343 | | Then sub-interface ipv4 address from Honeycomb should be
344 | | ... | ${node} | ${super_if} | ${sub_if_id}
345 | | ... | ${ipv4['address']} | ${ipv4['prefix-length']}
346 | | And sub-interface ipv4 address from VAT should be
347 | | ... | ${node} | ${sub_if_name}
348 | | ... | ${ipv4['address']} | ${ipv4['prefix-length']}
349
350 | TC16: Honeycomb removes sub-interface ipv4 address
351 | | [Documentation] | Check if Honeycomb can remove configured ipv4 addresses\
352 | | ... | from the sub-interface.
353 | | ...
354 | | Given sub-interface ipv4 address from Honeycomb should be
355 | | ... | ${node} | ${super_if} | ${sub_if_id}
356 | | ... | ${ipv4['address']} | ${ipv4['prefix-length']}
357 | | Run Keyword And Continue On Failure
358 | | ... | And sub-interface ipv4 address from VAT should be
359 | | ... | ${node} | ${sub_if_name}
360 | | ... | ${ipv4['address']} | ${ipv4['prefix-length']}
361 | | When Honeycomb removes all sub-interface ipv4 addresses
362 | | ... | ${node} | ${super_if} | ${sub_if_id}
363 | | Then sub-interface ipv4 address from Honeycomb should be empty
364 | | ... | ${node} | ${super_if} | ${sub_if_id}
365 | | And sub-interface ipv4 address from VAT should be empty
366 | | ... | ${node} | ${sub_if_name}
367
368 | TC17: Honeycomb modifies existing sub-interface ipv4 address
369 | | [Documentation] | Check if Honeycomb can modify an ipv4 address already\
370 | | ... | configured on the sub-interface.
371 | | ...
372 | | [Teardown] | Honeycomb removes all sub-interface ipv4 addresses
373 | | ... | ${node} | ${super_if} | ${sub_if_id}
374 | | ...
375 | | Given sub-interface ipv4 address from Honeycomb should be empty
376 | | ... | ${node} | ${super_if} | ${sub_if_id}
377 | | And sub-interface ipv4 address from VAT should be empty
378 | | ... | ${node} | ${sub_if_name}
379 | | When Honeycomb sets sub-interface ipv4 address
380 | | ... | ${node} | ${super_if} | ${sub_if_id}
381 | | ... | ${ipv4['address']} | ${ipv4['prefix-length']}
382 | | And Honeycomb sets sub-interface ipv4 address
383 | | ... | ${node} | ${super_if} | ${sub_if_id}
384 | | ... | ${ipv4_2['address']} | ${ipv4_2['prefix-length']}
385 | | Then sub-interface ipv4 address from Honeycomb should be
386 | | ... | ${node} | ${super_if} | ${sub_if_id}
387 | | ... | ${ipv4_2['address']} | ${ipv4_2['prefix-length']}
388 | | And sub-interface ipv4 address from VAT should be
389 | | ... | ${node} | ${sub_if_name}
390 | | ... | ${ipv4_2['address']} | ${ipv4_2['prefix-length']}
391
392 | TC18: Honeycomb modifies sub-interface exact tag match
393 | | [Documentation] | Check if Honeycomb can modify a sub-interface with exact\
394 | | ... | tag match.
395 | | ...
396 | | Given Honeycomb configures interface state | ${node} | ${super_if2} | down
397 | | And sub-interface Operational Data From Honeycomb Should Be empty
398 | | ... | ${node} | ${super_if2} | ${sub_if_id}
399 | | And interface Operational Data From VAT Should Be empty
400 | | ... | ${node} | ${sub_if2_name}
401 | | When Honeycomb creates sub-interface | ${node} | ${super_if2}
402 | | ... | ${sub_if_2_match} | ${sub_if_2_tags} | ${sub_if_2_settings}
403 | | Then Sub-interface Operational Data From Honeycomb Should Be
404 | | ... | ${node} | ${super_if2} | ${sub_if_id} | ${sub_if_2_oper}
405 | | And Sub-interface Operational Data From VAT Should Be
406 | | ... | ${node} | ${sub_if2_name} | ${sub_if_2_oper}
407 | | And sub-interface indices from Honeycomb and VAT should correspond
408 | | ... | ${node} | ${super_if2} | ${sub_if_id}
409
410 | TC19: Honeycomb configures sub-interface ipv6 address
411 | | [Documentation] | Check if Honeycomb can configure an ipv6 address on the\
412 | | ... | sub-interface.
413 | | ...
414 | | Given sub-interface ipv6 address from Honeycomb should be empty
415 | | ... | ${node} | ${super_if} | ${sub_if_id}
416 | | And sub-interface ipv6 address from VAT should be empty
417 | | ... | ${node} | ${sub_if_name}
418 | | When Honeycomb sets sub-interface ipv6 address
419 | | ... | ${node} | ${super_if} | ${sub_if_id}
420 | | ... | ${ipv6['address']} | ${ipv6['prefix-length']}
421 | | Then sub-interface IPv6 address from Honeycomb should contain
422 | | ... | ${node} | ${super_if} | ${sub_if_id}
423 | | ... | ${ipv6['address']} | ${ipv6['prefix-length']}
424 | | And sub-interface IPv6 address from VAT should contain
425 | | ... | ${node} | ${sub_if_name}
426 | | ... | ${ipv6['address']} | ${ipv6['prefix-length']}
427
428 | TC20: Honeycomb removes sub-interface ipv6 address
429 | | [Documentation] | Check if Honeycomb can remove configured ipv6 addresses\
430 | | ... | from the sub-interface.
431 | | ...
432 | | Given sub-interface IPv6 address from Honeycomb should contain
433 | | ... | ${node} | ${super_if} | ${sub_if_id}
434 | | ... | ${ipv6['address']} | ${ipv6['prefix-length']}
435 | | Run Keyword And Continue On Failure
436 | | ... | And sub-interface IPv6 address from VAT should contain
437 | | ... | ${node} | ${sub_if_name}
438 | | ... | ${ipv6['address']} | ${ipv6['prefix-length']}
439 | | When Honeycomb removes all sub-interface ipv6 addresses
440 | | ... | ${node} | ${super_if} | ${sub_if_id}
441 | | Then sub-interface ipv6 address from Honeycomb should be empty
442 | | ... | ${node} | ${super_if} | ${sub_if_id}
443 | | And sub-interface ipv6 address from VAT should be empty
444 | | ... | ${node} | ${sub_if_name}
445
446 | TC21: Honeycomb modifies existing sub-interface ipv6 address
447 | | [Documentation] | Check if Honeycomb can modify an ipv6 address already\
448 | | ... | configured on the sub-interface.
449 | | ...
450 | | [Teardown] | Honeycomb removes all sub-interface ipv6 addresses
451 | | ... | ${node} | ${super_if} | ${sub_if_id}
452 | | ...
453 | | Given sub-interface ipv6 address from Honeycomb should be empty
454 | | ... | ${node} | ${super_if} | ${sub_if_id}
455 | | And sub-interface ipv6 address from VAT should be empty
456 | | ... | ${node} | ${sub_if_name}
457 | | When Honeycomb sets sub-interface ipv6 address
458 | | ... | ${node} | ${super_if} | ${sub_if_id}
459 | | ... | ${ipv6['address']} | ${ipv6['prefix-length']}
460 | | And Honeycomb sets sub-interface ipv6 address
461 | | ... | ${node} | ${super_if} | ${sub_if_id}
462 | | ... | ${ipv6_2['address']} | ${ipv6_2['prefix-length']}
463 | | Then sub-interface IPv6 address from Honeycomb should contain
464 | | ... | ${node} | ${super_if} | ${sub_if_id}
465 | | ... | ${ipv6_2['address']} | ${ipv6_2['prefix-length']}
466 | | And sub-interface IPv6 address from VAT should contain
467 | | ... | ${node} | ${sub_if_name}
468 | | ... | ${ipv6_2['address']} | ${ipv6_2['prefix-length']}
469
470 | TC22: Honeycomb can configure unnumbered sub-interface
471 | | [Documentation] | Check if Honeycomb can configure an unnumbered interface\
472 | | ... | on a sub-interface, borrowing the IP address of a physical interface.
473 | | ...
474 # CSIT-734: Intermittent failures of all unnumbered interface cases
475 | | [Tags] | EXPECTED_FAILING
476 | | Given sub-interface ipv4 address from Honeycomb should be empty
477 | | ... | ${node} | ${super_if} | ${sub_if_id}
478 | | And sub-interface ipv4 address from VAT should be empty
479 | | ... | ${node} | ${sub_if_name}
480 | | And Honeycomb sets interface IPv4 address | ${node}
481 | | ... | ${super_if2} | ${ipv4['address']} | ${ipv4['prefix-length']}
482 | | When Honeycomb adds unnumbered configuration to interface
483 | | ... | ${node} | ${super_if}.${sub_if_id} | ${super_if2}
484 | | Then IPv4 address from Honeycomb should be
485 | | ... | ${node} | ${super_if2} | ${ipv4['address']} | ${ipv4['prefix-length']}
486 | | And IPv4 address from VAT should be
487 | | ... | ${node} | ${super_if2}
488 | | ... | ${ipv4['address']} | ${ipv4['prefix-length']} | ${ipv4['netmask']}
489 | | And sub-interface ipv4 address from Honeycomb should be
490 | | ... | ${node} | ${super_if} | ${sub_if_id}
491 | | ... | ${ipv4['address']} | ${ipv4['prefix-length']}
492 | | And sub-interface ipv4 address from VAT should be
493 | | ... | ${node} | ${sub_if_name}
494 | | ... | ${ipv4['address']} | ${ipv4['prefix-length']}
495
496 | TC23: Honeycomb removes sub-interface unnumbered configuration
497 | | [Documentation] | Check if Honeycomb can remove unnumbered configuration\
498 | | ... | from a sub-interface.
499 | | ...
500 # CSIT-734: Intermittent failures of all unnumbered interface cases
501 | | [Tags] | EXPECTED_FAILING
502 | | [Teardown] | Honeycomb removes interface IPv4 addresses | ${node}
503 | | ... | ${super_if2}
504 | | ...
505 | | Given IPv4 address from Honeycomb should be
506 | | ... | ${node} | ${super_if2} | ${ipv4['address']} | ${ipv4['prefix-length']}
507 | | And IPv4 address from VAT should be
508 | | ... | ${node} | ${super_if2}
509 | | ... | ${ipv4['address']} | ${ipv4['prefix-length']} | ${ipv4['netmask']}
510 | | And sub-interface ipv4 address from Honeycomb should be
511 | | ... | ${node} | ${super_if} | ${sub_if_id}
512 | | ... | ${ipv4['address']} | ${ipv4['prefix-length']}
513 | | And sub-interface ipv4 address from VAT should be
514 | | ... | ${node} | ${sub_if_name}
515 | | ... | ${ipv4['address']} | ${ipv4['prefix-length']}
516 | | When Honeycomb removes unnumbered configuration from interface
517 | | ... | ${node} | ${super_if}.${sub_if_id}
518 | | Then IPv4 address from Honeycomb should be
519 | | ... | ${node} | ${super_if2} | ${ipv4['address']} | ${ipv4['prefix-length']}
520 | | And IPv4 address from VAT should be
521 | | ... | ${node} | ${super_if2}
522 | | ... | ${ipv4['address']} | ${ipv4['prefix-length']} | ${ipv4['netmask']}
523 | | And sub-interface ipv4 address from Honeycomb should be empty
524 | | ... | ${node} | ${super_if} | ${sub_if_id}
525 | | And sub-interface ipv4 address from VAT should be empty
526 | | ... | ${node} | ${sub_if_name}
527
528 | TC24: Honeycomb can configure unnumbered interface using a sub-interface
529 | | [Documentation] | Check if Honeycomb can configure an unnumbered interface\
530 | | ... | on an interface, borrowing the IP address of a sub-interface.
531 | | ...# CSIT-734: Intermittent failures of all unnumbered interface cases
532 | | [Tags] | EXPECTED_FAILING
533 | | Given IPv4 address from Honeycomb should be empty | ${node} | ${super_if2}
534 | | And ipv4 address from VAT should be empty | ${node} | ${super_if2}
535 | | And sub-interface ipv4 address from Honeycomb should be empty
536 | | ... | ${node} | ${super_if} | ${sub_if_id}
537 | | And sub-interface ipv4 address from VAT should be empty
538 | | ... | ${node} | ${sub_if_name}
539 | | And Honeycomb sets sub-interface ipv4 address
540 | | ... | ${node} | ${super_if} | ${sub_if_id}
541 | | ... | ${ipv4['address']} | ${ipv4['prefix-length']}
542 | | When Honeycomb adds unnumbered configuration to interface
543 | | ... | ${node} | ${super_if2} | ${super_if}.${sub_if_id}
544 | | Then IPv4 address from Honeycomb should be
545 | | ... | ${node} | ${super_if2} | ${ipv4['address']} | ${ipv4['prefix-length']}
546 | | And IPv4 address from VAT should be
547 | | ... | ${node} | ${super_if2}
548 | | ... | ${ipv4['address']} | ${ipv4['prefix-length']} | ${ipv4['netmask']}
549 | | And sub-interface ipv4 address from Honeycomb should be
550 | | ... | ${node} | ${super_if} | ${sub_if_id}
551 | | ... | ${ipv4['address']} | ${ipv4['prefix-length']}
552 | | And sub-interface ipv4 address from VAT should be
553 | | ... | ${node} | ${sub_if_name}
554 | | ... | ${ipv4['address']} | ${ipv4['prefix-length']}
555
556 *** Keywords ***
557 | Set super and sub interfaces up
558 | | [Documentation] | Honeycomb sets super-interface and sub-interface up, in \
559 | | ... | this order.
560 | | ...
561 | | ... | *Arguments:*
562 | | ... | - node - Information about a DUT node. Type: dictionary
563 | | ... | - super_interface - Super interface. Type: string
564 | | ... | - identifier - Sub-interface identifier. Type: integer or string
565 | | ...
566 | | ... | *Example:*
567 | | ... | \| Set super and sub interfaces up\
568 | | ... | \| ${nodes['DUT1']} \| GigabitEthernet0/8/0 \| 1 \|
569 | | ...
570 | | [Arguments] | ${node} | ${super_interface} | ${identifier}
571 | | ...
572 | | Honeycomb configures interface state
573 | | ... | ${node} | ${super_interface} | up
574 | | Honeycomb sets the sub-interface up
575 | | ... | ${node} | ${super_interface} | ${identifier}
576
577 | Set super and sub interfaces down
578 | | [Documentation] | Honeycomb sets super-interface and sub-interface down, in\
579 | | ... | this order.
580 | | ...
581 | | ... | *Arguments:*
582 | | ... | - node - Information about a DUT node. Type: dictionary
583 | | ... | - super_interface - Super interface. Type: string
584 | | ... | - identifier - Sub-interface identifier. Type: integer or string
585 | | ...
586 | | ... | *Example:*
587 | | ... | \| Set super and sub interfaces down\
588 | | ... | \| ${nodes['DUT1']} \| GigabitEthernet0/8/0 \| 1 \|
589 | | ...
590 | | [Arguments] | ${node} | ${super_interface} | ${identifier}
591 | | ...
592 | | Honeycomb configures interface state
593 | | ... | ${node} | ${super_interface} | down
594 | | Honeycomb sets the sub-interface down
595 | | ... | ${node} | ${super_interface} | ${identifier}
596
597 | Honeycomb disables tag rewrite
598 | | [Documentation] |
599 | | ...
600 | | ... | *Arguments:*
601 | | ... | - node - Information about a DUT node. Type: dictionary
602 | | ... | - super_if - Super-interface. Type: string
603 | | ... | - identifier - Sub-interface ID. Type: integer or string
604 | | ...
605 | | ... | *Example:*
606 | | ... | \| Honeycomb disables tag rewrite \
607 | | ... | \| ${nodes['DUT1']} \| GigabitEthernet0/8/0 \| 1 \|
608 | | ...
609 | | [Arguments] | ${node} | ${super_if} | ${sub_if_id}
610 | | ...
611 | | Honeycomb configures tag rewrite
612 | | ... | ${node} | ${super_if} | ${sub_if_id} | ${tag_rewrite_disabled}