HC Test: add test for vlan sub-interface ipv6 address
[csit.git] / tests / func / honeycomb / mgmt-cfg-int-subint-apihc-apivat-func.robot
index 9ee12e1..f050a4d 100644 (file)
 | Resource | resources/libraries/robot/honeycomb/bridge_domain.robot
 | Resource | resources/libraries/robot/honeycomb/interfaces.robot
 | Variables | resources/test_data/honeycomb/sub_interfaces.py
-| Suite Teardown | Run keywords
-| ... | Run Keyword If Any Tests Failed
+| Suite Teardown
 | ... | Restart Honeycomb And VPP And Clear Persisted Configuration | ${node}
-| ... | AND | Honeycomb removes all bridge domains | ${node}
 | Force Tags | honeycomb_sanity
 | Documentation | *Honeycomb sub-interface management test suite.*
 
 *** Variables ***
-# Test interface 1 and its sub-interface parameters:
+# Test interfaces and their sub-interface parameters:
 | ${super_if}= | ${node['interfaces']['port1']['name']}
+| ${super_if2}= | ${node['interfaces']['port3']['name']}
 | ${sub_if_id}= | ${sub_if_1_settings['identifier']}
 | ${sub_if_name}= | ${super_if}.${sub_if_id}
+| ${sub_if2_name}= | ${super_if2}.${sub_if_id}
 
 *** Test Cases ***
-| TC01: Honycomb creates sub-interface
+| TC01: Honeycomb creates sub-interface
 | | [Documentation] | Check if Honeycomb creates a sub-interface.
 | | ...
 | | Given Honeycomb sets interface state | ${node} | ${super_if} | down
 | | ... | ${node} | ${sub_if_name}
 | | ... | ${ipv4_2['address']} | ${ipv4_2['prefix-length']}
 
+| TC18: Honeycomb modifies sub-interface exact tag match
+| | [Documentation] | Check if Honeycomb can modify a sub-interface with exact\
+| | ... | tag match.
+| | Given Honeycomb sets interface state | ${node} | ${super_if2} | down
+| | And sub-interface configuration from Honeycomb should be empty
+| | ... | ${node} | ${super_if2} | ${sub_if_id}
+| | And interface configuration from VAT should be empty
+| | ... | ${node} | ${sub_if2_name}
+| | When Honeycomb creates sub-interface | ${node} | ${super_if2}
+| | ... | ${sub_if_2_match} | ${sub_if_2_tags} | ${sub_if_2_settings}
+| | Then Sub-interface configuration from Honeycomb should be
+| | ... | ${node} | ${super_if2} | ${sub_if_id} | ${sub_if_2_oper}
+| | And Sub-interface configuration from VAT should be
+| | ... | ${node} | ${sub_if2_name} | ${sub_if_2_oper}
+| | And sub-interface indices from Honeycomb and VAT should correspond
+| | ... | ${node} | ${super_if2} | ${sub_if_id}
+
+| TC19: Honeycomb configures sub-interface ipv6 address
+| | [Documentation] | Check if Honeycomb can configure an ipv6 address on the\
+| | ... | sub-interface.
+| | ...
+| | Given sub-interface ipv6 address from Honeycomb should be empty
+| | ... | ${node} | ${super_if} | ${sub_if_id}
+| | And sub-interface ipv6 address from VAT should be empty
+| | ... | ${node} | ${sub_if_name}
+| | When Honeycomb sets sub-interface ipv6 address
+| | ... | ${node} | ${super_if} | ${sub_if_id}
+| | ... | ${ipv6['address']} | ${ipv6['prefix-length']}
+| | Then sub-interface IPv6 address from Honeycomb should contain
+| | ... | ${node} | ${super_if} | ${sub_if_id}
+| | ... | ${ipv6['address']} | ${ipv6['prefix-length']}
+| | And sub-interface IPv6 address from VAT should contain
+| | ... | ${node} | ${sub_if_name}
+| | ... | ${ipv6['address']} | ${ipv6['prefix-length']}
+
+| TC20: Honeycomb removes sub-interface ipv6 address
+| | [Documentation] | Check if Honeycomb can remove configured ipv6 addresses\
+| | ... | from the sub-interface.
+| | ...
+| | Given sub-interface IPv6 address from Honeycomb should contain
+| | ... | ${node} | ${super_if} | ${sub_if_id}
+| | ... | ${ipv6['address']} | ${ipv6['prefix-length']}
+| | Run Keyword And Continue On Failure
+| | ... | And sub-interface IPv6 address from VAT should contain
+| | ... | ${node} | ${sub_if_name}
+| | ... | ${ipv6['address']} | ${ipv6['prefix-length']}
+| | When Honeycomb removes all sub-interface ipv6 addresses
+| | ... | ${node} | ${super_if} | ${sub_if_id}
+| | Then sub-interface ipv6 address from Honeycomb should be empty
+| | ... | ${node} | ${super_if} | ${sub_if_id}
+| | And sub-interface ipv6 address from VAT should be empty
+| | ... | ${node} | ${sub_if_name}
+
+| TC21: Honeycomb modifies existing sub-interface ipv6 address
+| | [Documentation] | Check if Honeycomb can modify an ipv6 address already\
+| | ... | configured on the sub-interface.
+| | [Teardown] | Honeycomb removes all sub-interface ipv6 addresses
+| | ... | ${node} | ${super_if} | ${sub_if_id}
+| | Given sub-interface ipv6 address from Honeycomb should be empty
+| | ... | ${node} | ${super_if} | ${sub_if_id}
+| | And sub-interface ipv6 address from VAT should be empty
+| | ... | ${node} | ${sub_if_name}
+| | When Honeycomb sets sub-interface ipv6 address
+| | ... | ${node} | ${super_if} | ${sub_if_id}
+| | ... | ${ipv6['address']} | ${ipv6['prefix-length']}
+| | And Honeycomb sets sub-interface ipv6 address
+| | ... | ${node} | ${super_if} | ${sub_if_id}
+| | ... | ${ipv6_2['address']} | ${ipv6_2['prefix-length']}
+| | Then sub-interface IPv6 address from Honeycomb should contain
+| | ... | ${node} | ${super_if} | ${sub_if_id}
+| | ... | ${ipv6_2['address']} | ${ipv6_2['prefix-length']}
+| | And sub-interface IPv6 address from VAT should contain
+| | ... | ${node} | ${sub_if_name}
+| | ... | ${ipv6_2['address']} | ${ipv6_2['prefix-length']}
+
+
 *** Keywords ***
 | Set super and sub interfaces up
 | | [Documentation] | Honeycomb sets super-interface and sub-interface up, in \