diff options
Diffstat (limited to 'resources/libraries/robot/honeycomb/persistence.robot')
-rw-r--r-- | resources/libraries/robot/honeycomb/persistence.robot | 164 |
1 files changed, 115 insertions, 49 deletions
diff --git a/resources/libraries/robot/honeycomb/persistence.robot b/resources/libraries/robot/honeycomb/persistence.robot index a1c08c2ec1..2744ba6377 100644 --- a/resources/libraries/robot/honeycomb/persistence.robot +++ b/resources/libraries/robot/honeycomb/persistence.robot @@ -87,7 +87,7 @@ | | Setup DUT | ${node} | | Setup Honeycomb service on DUTs | ${node} -| Honeycomb configures every setting +| Multi-Feature Persistence Test Configuration | | [Documentation] | Uses Honeycomb to set basic settings for VxLAN,\ | | ... | bridge domains, TAP, vhost-user and VLAN. | | ... @@ -97,7 +97,7 @@ | | ... | | ... | *Example:* | | ... -| | ... | \| Honeycomb configures every setting \| ${nodes['DUT1']} \ +| | ... | \| Multi-Feature Persistence Test Configuration \| ${nodes['DUT1']} \ | | ... | \| GigabitEthernet0/8/0 \| | | ... | | [Arguments] | ${node} | ${interface} @@ -119,7 +119,7 @@ | | Honeycomb configures tag rewrite | | ... | ${node} | ${interface} | ${sub_if_id} | ${tag_rewrite_pop_1} -| Honeycomb and VPP should verify every setting +| Multi-Feature persistence Test Verification | | [Documentation] | Uses Honeycomb and VAT to verify settings for VxLAN,\ | | ... | bridge domains, TAP, vhost-user and VLAN. | | ... @@ -129,40 +129,43 @@ | | ... | | ... | *Example:* | | ... -| | ... | \| Honeycomb and VPP should verify every setting \| ${nodes['DUT1']} \ +| | ... | \| Multi-Feature persistence Test Verification \| ${nodes['DUT1']} \ | | ... | \| GigabitEthernet0/8/0 \| | | ... | | [Arguments] | ${node} | ${interface} -| | VxLAN configuration from Honeycomb should be +| | VxLAN Operational Data From Honeycomb Should Be | | ... | ${node} | ${vx_interface} | ${vxlan_settings} -| | VxLAN configuration from VAT should be +| | VxLAN Operational Data From VAT Should Be | | ... | ${node} | ${vxlan_settings} -| | Bridge domain configuration from Honeycomb should be +| | Bridge domain Operational Data From Honeycomb Should Be | | ... | ${node} | ${bd_name} | ${bd_settings} -| | Bridge domain configuration from VAT should be +| | Bridge domain Operational Data From VAT Should Be | | ... | ${node} | ${0} | ${bd_settings} -| | TAP configuration from Honeycomb should be +| | TAP Operational Data From Honeycomb Should Be | | ... | ${node} | ${tap_interface} | ${tap_settings} -| | TAP configuration from VAT should be +| | TAP Operational Data From VAT Should Be | | ... | ${node} | ${tap_interface} | ${tap_settings} -| | Vhost-user configuration from Honeycomb should be +| | Vhost-user Operational Data From Honeycomb Should Be | | ... | ${node} | ${vhost_interface} | ${vhost_user_client} -| | Vhost-user configuration from VAT should be +| | Vhost-user Operational Data From VAT Should Be | | ... | ${node} | ${vhost_user_client} -| | Sub-interface configuration from Honeycomb should be +| | Sub-interface Operational Data From Honeycomb Should Be | | ... | ${node} | ${interface} | ${sub_if_id} | ${sub_if_1_oper} -| | Sub-interface configuration from VAT should be +| | Sub-interface Operational Data From VAT Should Be | | ... | ${node} | ${sub_if_name} | ${sub_if_1_oper} | | Interface state from Honeycomb should be | ${node} | ${interface} | up | | Interface state from VAT should be | ${node} | ${interface} | up -| | Sub-interface bridge domain configuration from Honeycomb should be +| | Sub-interface bridge domain Operational Data From Honeycomb Should Be | | ... | ${node} | ${interface} | ${sub_if_id} | ${sub_bd_settings} -| | Sub-interface bridge domain configuration from VAT should be +| | Sub-interface bridge domain Operational Data From VAT Should Be | | ... | ${node} | ${sub_if_name} | ${sub_bd_settings} | | Rewrite tag from Honeycomb should be | | ... | ${node} | ${interface} | ${sub_if_id} | ${tag_rewrite_pop_1_oper} | | Rewrite tag from VAT should be | | ... | ${node} | ${sub_if_name} | ${tag_rewrite_pop_1_VAT} +| | ${data_conf}= | InterfaceAPI.Get all interfaces cfg data | ${node} +| | ${data_oper}= | InterfaceAPI.Get all interfaces oper data | ${node} +| | Compare interface lists | ${data_conf} | ${data_oper} | Honeycomb and VPP should have default configuration | | [Documentation] | Uses Honeycomb and VAT to verify settings for VxLAN,\ @@ -178,83 +181,146 @@ | | ... | ${nodes['DUT1']} \| | | ... | | [Arguments] | ${node} -| | VxLAN configuration from Honeycomb should be empty +| | VxLAN Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${vx_interface} -| | VxLAN configuration from VAT should be empty | ${node} +| | VxLAN Operational Data From VAT Should Be empty | ${node} | | Honeycomb should show no bridge domains | ${node} | | VAT should show no bridge domains | ${node} -| | TAP configuration from Honeycomb should be empty +| | TAP Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${tap_interface} -| | TAP configuration from VAT should be empty +| | TAP Operational Data From VAT Should Be empty | | ... | ${node} | ${tap_interface} -| | Vhost-user configuration from Honeycomb should be empty +| | Vhost-user Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${vhost_interface} -| | Vhost-user configuration from VAT should be empty +| | Vhost-user Operational Data From VAT Should Be empty | | ... | ${node} | | interface state from Honeycomb should be | | ... | ${node} | ${interface} | down | | And interface state from VAT should be | | ... | ${node} | ${interface} | down -| Honeycomb and VPP should not have default configuration -| | [Documentation] | Uses Honeycomb and VAT to verify settings for VxLAN,\ -| | ... | bridge domains, TAP, vhost-user and VLAN. Expects any\ -| | ... | configuration other than default. +| Persistence file is damaged during restart +| | [Documentation] | Shuts down Honeycomb, modifies persistence files to\ +| | ... | simulate damage, then restarts VPP and starts up Honeycomb again. | | ... | | ... | *Arguments:* | | ... | - node - information about a DUT node. Type: dictionary | | ... | | ... | *Example:* | | ... -| | ... | \| Honeycomb and VPP should not have default configuration \ -| | ... | \| ${nodes['DUT1']} \| +| | ... | \| Persistence file is damaged during restart \| ${nodes['DUT1']} \| | | ... | | [Arguments] | ${node} -| | Run keyword and expect error | * -| | ... | Honeycomb and VPP should have default configuration | ${node} +| | Stop Honeycomb service on DUTs | ${node} +| | Modify persistence files | ${node} | { | abc +| | Setup DUT | ${node} +| | Setup Honeycomb service on DUTs | ${node} -| Honeycomb should show no rogue interfaces -| | [Documentation] | Checks if operational data contains interfaces not\ -| | ... | present in configuration and vice versa. +| Log persisted configuration on node +| | [Documentation] | Logs the content of Honeycomb's persitence files. | | ... | | ... | *Arguments:* | | ... | - node - information about a DUT node. Type: dictionary | | ... | | ... | *Example:* | | ... -| | ... | \| Honeycomb should show no rogue interfaces \| ${nodes['DUT1']} \| +| | ... | \| Log persisted configuration on node \| ${nodes['DUT1']} \| | | ... | | [Arguments] | ${node} -| | ${data_conf}= | InterfaceAPI.Get all interfaces cfg data | ${node} -| | ${data_oper}= | InterfaceAPI.Get all interfaces oper data | ${node} -| | Compare interface lists | ${data_conf} | ${data_oper} +| | Log persisted configuration | ${node} -| Persistence file is damaged during restart -| | [Documentation] | Shuts down Honeycomb, modifies persistence files to\ -| | ... | simulate damage, then restarts VPP and starts up Honeycomb again. +| Interface Persistence Setup +| | [Documentation] | Configure interface state, ipv4 and ipv6 addresses +| | ... | and neighbors. | | ... | | ... | *Arguments:* | | ... | - node - information about a DUT node. Type: dictionary | | ... | | ... | *Example:* | | ... -| | ... | \| Persistence file is damaged during restart \| ${nodes['DUT1']} \| +| | ... | \| Interface Persistence Setup \| ${nodes['DUT1']} \| | | ... | | [Arguments] | ${node} -| | Stop Honeycomb service on DUTs | ${node} -| | Modify persistence files | ${node} | { | abc -| | Setup DUT | ${node} -| | Setup Honeycomb service on DUTs | ${node} +| | Honeycomb and VPP should have default configuration | ${node} +| | Import Variables | resources/test_data/honeycomb/interface_ip.py +| | Honeycomb sets interface state | ${node} | ${interface} | up +| | Honeycomb sets interface ipv4 address with prefix +| | ... | ${node} | ${interface} | ${ipv4_address} | ${ipv4_prefix} +| | Honeycomb adds interface ipv4 neighbor +| | ... | ${node} | ${interface} | ${ipv4_neighbor} | ${neighbor_mac} +| | Honeycomb sets interface ipv6 address +| | ... | ${node} | ${interface} | ${ipv6_address} | ${ipv6_prefix} +| | Honeycomb adds interface ipv6 neighbor +| | ... | ${node} | ${interface} | ${ipv6_neighbor} | ${neighbor_mac} -| Log persisted configuration on node -| | [Documentation] | Logs the content of Honeycomb's persitence files. +| Interface Persistence Check +| | [Documentation] | Verify interface state, ipv4 and ipv6 addresses +| | ... | and neighbors. | | ... | | ... | *Arguments:* | | ... | - node - information about a DUT node. Type: dictionary | | ... | | ... | *Example:* | | ... -| | ... | \| Log persisted configuration on node \| ${nodes['DUT1']} \| +| | ... | \| Interface Persistence Check \| ${nodes['DUT1']} \| +| | ... +| | [Arguments] | ${node} +| | Interface state from Honeycomb should be | ${node} | ${interface} | up +| | IPv4 address from Honeycomb should be +| | ... | ${node} | ${interface} | ${ipv4_address} | ${ipv4_prefix} +| | IPv4 address from VAT should be +| | ... | ${node} | ${interface} | ${ipv4_address} +| | ... | ${ipv4_prefix} | ${ipv4_mask} +| | IPv4 neighbor from Honeycomb should be +| | ... | ${node} | ${interface} | ${ipv4_neighbor} | ${neighbor_mac} +| | IPv6 address from Honeycomb should contain +| | ... | ${node} | ${interface} | ${ipv6_address} | ${ipv6_prefix} +| | IPv6 address from VAT should contain +| | ... | ${node} | ${interface} | ${ipv6_address} | ${ipv6_prefix} +| | IPv6 neighbor from Honeycomb should be +| | ... | ${node} | ${interface} | ${ipv6_neighbor} | ${neighbor_mac} + +| Bridge Domain Persistence Setup +| | [Documentation] | Configure bridge domain, BD interface assignment +| | ... | and L2 fib entry. +| | ... +| | ... | *Arguments:* +| | ... | - node - information about a DUT node. Type: dictionary +| | ... +| | ... | *Example:* +| | ... +| | ... | \| Bridge Domain Persistence Setup \| ${nodes['DUT1']} \| | | ... | | [Arguments] | ${node} -| | Log persisted configuration | ${node}
\ No newline at end of file +| | Honeycomb and VPP should have default configuration | ${node} +| | Import Variables | resources/test_data/honeycomb/l2_fib.py +| | ... | ${node} | ${interface} | ${interface} +| | Honeycomb creates first l2 bridge domain +| | ... | ${node} | ${bd_name} | ${bd_settings} +| | Honeycomb adds interface to bridge domain +| | ... | ${node} | ${interface} | ${bd_name} | ${if_bd_settings} +| | Honeycomb adds L2 FIB entry to bridge domain +| | ... | ${node} | ${bd_name} | ${l2_fib_forward_cfg} + +| Bridge Domain Persistence Check +| | [Documentation] | Verify bridge domain, BD interface assignment +| | ... | and L2 fib entry. +| | ... +| | ... | *Arguments:* +| | ... | - node - information about a DUT node. Type: dictionary +| | ... +| | ... | *Example:* +| | ... +| | ... | \| Bridge Domain Persistence Check \| ${nodes['DUT1']} \| +| | ... +| | [Arguments] | ${node} +| | Bridge domain Operational Data From Honeycomb Should Be +| | ... | ${node} | ${bd_name} | ${bd_settings} +| | Bridge domain Operational Data From VAT Should Be +| | ... | ${node} | ${0} | ${bd_settings} +| | Bridge domain Operational Interface Assignment should be +| | ... | ${node} | ${interface} | ${if_bd_settings} +| | L2 FIB Entry from Honeycomb should be +| | ... | ${node} | ${bd_name} | ${l2_fib_forward_oper} +| | L2 FIB entry from VAT should be +| | ... | ${node} | ${bd_index} | ${l2_fib_forward_vat}
\ No newline at end of file |