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