From d68951ac245150eeefa6e0f4156e4c1b5c9e9325 Mon Sep 17 00:00:00 2001 From: Jan Gelety Date: Tue, 12 Nov 2019 05:27:43 +0100 Subject: Python3: resources and libraries Change-Id: I1392c06b1d64f62b141d24c0d42a8e36913b15e2 Signed-off-by: Jan Gelety --- resources/libraries/robot/overlay/lisp.robot | 32 ++-- resources/libraries/robot/overlay/lisp_api.robot | 172 ++++++++++----------- .../robot/overlay/lisp_static_adjacency.robot | 20 +-- resources/libraries/robot/overlay/lispgpe.robot | 12 +- resources/libraries/robot/overlay/srv6.robot | 121 ++++++++------- resources/libraries/robot/overlay/vxlan.robot | 10 +- 6 files changed, 186 insertions(+), 181 deletions(-) (limited to 'resources/libraries/robot/overlay') diff --git a/resources/libraries/robot/overlay/lisp.robot b/resources/libraries/robot/overlay/lisp.robot index 826cc3a7b1..f9da0be399 100644 --- a/resources/libraries/robot/overlay/lisp.robot +++ b/resources/libraries/robot/overlay/lisp.robot @@ -23,10 +23,10 @@ *** Keywords *** | Configure topology for IPv4 LISP testing | | [Documentation] | Setup topology for IPv4 LISP testing. -| | ... +| | | | ... | *Example:* | | ... | \| Configure topology for IPv4 LISP testing \| -| | ... +| | | | Set interfaces in path up | | VPP Interface Set IP Address | | ... | ${dut1} | ${dut1_if1} | ${dut_if1_ip4} | ${ip4_plen} @@ -41,10 +41,10 @@ | Configure topology for IPv6 LISP testing | | [Documentation] | Setup topology fo IPv6 LISP testing. -| | ... +| | | | ... | *Example:* | | ... | \| Configure topology for IPv6 LISP testing \| -| | ... +| | | | Set interfaces in path up | | VPP Interface Set IP Address | | ... | ${dut1} | ${dut1_if1} | ${dut_if1_ip6} | ${ip6_plen} @@ -59,7 +59,7 @@ | Configure LISP in 2-node circular topology | | [Documentation] | Configure LISP topology in 2-node circular topology. -| | ... +| | | | ... | *Arguments:* | | ... | - dut1 - DUT1 node. Type: dictionary | | ... | - dut1_if - DUT1 node interface. Type: string @@ -70,27 +70,27 @@ | | ... | - is_gpe - To enable GPE. Other than zero to enable Type: integer | | ... | - vni_table - vni table Eid Table Mapping Type: integer | | ... | - vrf_table - vrf table Eid Table Mapping Type: integer -| | ... +| | | | ... | *Return:* | | ... | - No value returned -| | ... +| | | | ... | *Example:* | | ... | \| Configure LISP in 2-node circular topology \ | | ... | \| ${dut1} \| ${interface_name} \ | | ... | \| None \| ${locator_set} \| ${dut1_eid} \ | | ... | \| ${dut1_static_adjacency} \| -| | ... +| | | | [Arguments] | | ... | ${dut1} | ${dut1_if} | ${dut1_int_index} | | ... | ${locator_set} | ${dut1_eid} | | ... | ${dut1_static_adjacency} | | ... | ${is_gpe}=0 | | ... | ${vni_table}=0 | ${vrf_table}=0 -| | ... -# DUT1 settings: +| | +| | # DUT1 settings: | | ${dut1_int_index}= | Run Keyword If | ${dut1_int_index} is None -| | ... | Get Interface Sw Index | ${dut1} | ${dut1_if} -| | ... | ELSE | Set Variable | ${dut1_int_index} +| | ... | Get Interface Sw Index | ${dut1} | ${dut1_if} +| | ... | ELSE | Set Variable | ${dut1_int_index} | | Enable Lisp | ${dut1} | | Run keyword if | ${is_gpe} != 0 | | ... | Enable Lisp GPE | ${dut1} @@ -118,10 +118,10 @@ | Configure topology for IPv6 LISPoIP4 testing | | [Documentation] | Setup topology fo IPv6 LISPoIPV4 testing. -| | ... +| | | | ... | *Example:* | | ... | \| Configure topology for IPv6 LISPoIP4 testing \| -| | ... +| | | | Set interfaces in path up | | VPP Interface Set IP Address | | ... | ${dut1} | ${dut1_if1} | ${dut_if1_ip6} | ${ip6_plen} @@ -136,10 +136,10 @@ | Configure topology for IPv4 LISPoIP6 testing | | [Documentation] | Setup topology fo IPv4 LISPoIPV6 testing. -| | ... +| | | | ... | *Example:* | | ... | \| Configure topology for IPv4 LISPoIP6 testing \| -| | ... +| | | | Set interfaces in path up | | VPP Interface Set IP Address | | ... | ${dut1} | ${dut1_if1} | ${dut_if1_ip4} | ${ip4_plen} diff --git a/resources/libraries/robot/overlay/lisp_api.robot b/resources/libraries/robot/overlay/lisp_api.robot index b858ef48a7..21f17d51f1 100644 --- a/resources/libraries/robot/overlay/lisp_api.robot +++ b/resources/libraries/robot/overlay/lisp_api.robot @@ -24,24 +24,24 @@ | Generate LISP locator_set data | | [Documentation] | Generate lisp locator_set data for test | | ... | the lisp locator_set and locator API. -| | ... +| | | | ... | *Arguments:* | | ... | - dut_node - DUT node. Type: dictionary | | ... | - locator_set_number - Number how many locator_set data | | ... | will be generated. Type: integer -| | ... +| | | | ... | *Return:* | | ... | - No value returned -| | ... +| | | | ... | _NOTE:_ This KW sets following test case variables: | | ... | - locator_set_values - New generated locator_set data. | | ... | - locator_set_values_vat - New generated locator_set data expected\ | | ... | from VAT. -| | ... +| | | | ... | *Example:* | | ... | \| Given Generate LISP locator_set data \| ${nodes['DUT1']} \ | | ... | \| ${locator_set_number} \| -| | ... +| | | | [Arguments] | ${dut_node} | ${locator_set_number} | | ${locator_set_values} | ${locator_set_values_vat}= | | ... | Generate Unique Lisp Locator Set Data @@ -51,40 +51,40 @@ | Configure LISP locator_set data | | [Documentation] | Set the lisp locator_set and locator on the VPP node. -| | ... +| | | | ... | *Arguments:* | | ... | - dut_node - DUT node. Type: dictionary -| | ... +| | | | ... | *Return:* | | ... | - No value returned -| | ... +| | | | ... | _NOTE:_ This KW requires following test case variables: | | ... | - locator_set_values - Generated locator_set data from | | ... | KW locator_set data is prepared, which will be set on the VPP node. -| | ... +| | | | ... | *Example:* | | ... | \| When Configure LISP locator_set data \| ${nodes['DUT1']} \| -| | ... +| | | | [Arguments] | ${dut_node} | | Vpp Set Lisp Locator Set | ${dut_node} | ${locator_set_values} | LISP locator_set shpuld be configured correctly | | [Documentation] | Test if the locator_set is set correctly on the VPP node. -| | ... +| | | | ... | *Arguments:* | | ... | - dut_node - DUT node. Type: dictionary -| | ... +| | | | ... | *Return:* | | ... | - No value returned -| | ... +| | | | ... | _NOTE:_ This KW requires following test case variables: | | ... | - locator_set_values_vat - Generated locator_set data from | | ... | KW locator_set data is prepared, which are expected from VPP via VAT. -| | ... +| | | | ... | *Example:* | | ... | \| Then LISP locator_set should be configured correctly \ | | ... | \| ${nodes['DUT1']} \| -| | ... +| | | | [Arguments] | ${dut_node} | | ${show_locator_set}= | Vpp Show Lisp Locator Set | ${dut_node} | local | | Lisp Locator S Should Be Equal @@ -92,36 +92,36 @@ | Delete all LISP locator_set from VPP | | [Documentation] | Delete all lisp locator_set on the VPP node. -| | ... +| | | | ... | *Arguments:* | | ... | - dut_node - DUT node. Type: dictionary -| | ... +| | | | ... | *Return:* | | ... | - No value returned -| | ... +| | | | ... | _NOTE:_ This KW requires following test case variables: | | ... | - locator_set_values - Generated locator_set data from | | ... | KW locator_set data is prepared, which was set on the VPP node. -| | ... +| | | | ... | *Example:* | | ... | \| When Delete all LISP locator_set from VPP \ | | ... | \| ${nodes['DUT1']} \| -| | ... +| | | | [Arguments] | ${dut_node} | | Vpp Unset Lisp Locator Set | ${dut_node} | ${locator_set_values} | LISP locator_set should be unset | | [Documentation] | Test if all locator_set are unset from VPP node. -| | ... +| | | | ... | *Arguments:* | | ... | - dut_node - DUT node. Type: dictionary -| | ... +| | | | ... | *Return:* | | ... | - No value returned -| | ... +| | | | ... | *Example:* | | ... | \| Then LISP locator_set should be unset \| ${nodes['DUT1']} \| -| | ... +| | | | [Arguments] | ${dut_node} | | ${show_locator_set}= | Vpp Show Lisp Locator Set | ${dut_node} | ${EMPTY} | | Lisp Is Empty | ${show_locator_set} @@ -129,24 +129,24 @@ | Lisp locator_set data use for test reset locator_set are prepared | | [Documentation] | Generate lisp special type of locator_set data. | | ... | This data will be use for test reset locator_set. -| | ... +| | | | ... | *Arguments:* | | ... | - dut_node - DUT node. Type: dictionary | | ... | - locator_set_number - Number how many locator_set data | | ... | it will generate. Type: integer -| | ... +| | | | ... | *Return:* | | ... | - No value returned -| | ... +| | | | ... | _NOTE:_ This KW sets following test case variables: | | ... | - locator_set_values - New generate locator_set data. | | ... | - locator_set_values_vat - New generated locator_set data expected\ | | ... | from VAT. -| | ... +| | | | ... | *Example:* | | ... | \| Given Lisp locator_set data use for test reset locator_set \ | | ... | are prepared \| ${nodes['DUT1']} \| ${locator_set_number} \| -| | ... +| | | | [Arguments] | ${dut_node} | ${locator_set_number} | | ${locator_set_values} | ${locator_set_values_vat}= | | ... | Generate Duplicate Lisp Locator Set Data @@ -156,244 +156,244 @@ | Configure LISP eid address | | [Documentation] | Set the lisp eid address on the VPP node. -| | ... +| | | | ... | *Arguments:* | | ... | - dut_node - DUT node. Type: dictionary | | ... | - set_eid - Test eid data. Type: list -| | ... +| | | | ... | *Return:* | | ... | - No value returned -| | ... +| | | | ... | *Example:* | | ... | \| When Configure LISP eid address \| ${nodes['DUT1']} \ | | ... | \| ${eid_table} \| -| | ... +| | | | [Arguments] | ${dut_node} | ${set_eid} | | Vpp Set Lisp Eid Table | ${dut_node} | ${set_eid} | LISP eid address should be set correctly to eid table | | [Documentation] | Test if the locator_set is set correctly on the VPP node. -| | ... +| | | | ... | *Arguments:* | | ... | - dut_node - DUT node. Type: dictionary | | ... | - set_eid - Example eid data, which was set to the VPP node. | | ... | Type: list -| | ... +| | | | ... | *Return:* | | ... | - No value returned -| | ... +| | | | ... | _NOTE:_ This KW requires following test case variables: | | ... | - set_eid - Generated eid data, which will be set to the VPP node. -| | ... +| | | | ... | *Example:* | | ... | \| Then LISP eid address should be set correctly to eid table \ | | ... | \| ${nodes['DUT1']} \| ${eid_table} \| -| | ... +| | | | [Arguments] | ${dut_node} | ${set_eid} | | ${show_eid}= | Vpp Show Lisp Eid Table | ${dut_node} | | Lisp Should Be Equal | ${set_eid} | ${show_eid} | Delete all LISP eid address from VPP | | [Documentation] | Delete all lisp eid address from the VPP node. -| | ... +| | | | ... | *Arguments:* | | ... | - dut_node - DUT node. Type: dictionary | | ... | - set_eid - Eid data which will be removed from the VPP node. | | ... | Type: list -| | ... +| | | | ... | *Return:* | | ... | - No value returned -| | ... +| | | | ... | *Example:* | | ... | \| When Delete all LISP eid address from VPP \ | | ... | \| ${nodes['DUT1']} \| ${eid_table} \| -| | ... +| | | | [Arguments] | ${dut_node} | ${set_eid} | | Vpp Unset Lisp Eid Table | ${dut_node} | ${set_eid} | LISP eid table should be empty | | [Documentation] | Test if the eid table is empty. -| | ... +| | | | ... | *Arguments:* | | ... | - dut_node - DUT node. Type: dictionary -| | ... +| | | | ... | *Return:* | | ... | - No value returned -| | ... +| | | | ... | *Example:* | | ... | \| Then LISP eid table should be empty \| ${nodes['DUT1']} \| -| | ... +| | | | [Arguments] | ${dut_node} | | ${show_eid}= | Vpp Show Lisp Eid Table | ${dut_node} | | Lisp Is Empty | ${show_eid} | Configure LISP map resolver address | | [Documentation] | Set the lisp map resolver address in the VPP node. -| | ... +| | | | ... | *Arguments:* | | ... | - dut_node - DUT node. Type: dictionary | | ... | - set_map_resolver - Map resolver data, which will be set on | | ... | the VPP node. Type: list -| | ... +| | | | ... | *Return:* | | ... | - No value returned -| | ... +| | | | ... | *Example:* | | ... | \| When Configure LISP map resolver address \| ${nodes['DUT1']} \ | | ... | \| ${map_resolver} \| -| | ... +| | | | [Arguments] | ${dut_node} | ${set_map_resolver} | | Vpp Set Lisp Map Resolver | ${dut_node} | ${set_map_resolver} | LISP map resolver address should be configured correctly | | [Documentation] | Test if the map resolver address is set correctly | | ... | on the VPP node. -| | ... +| | | | ... | *Arguments:* | | ... | - dut_node - DUT node. Type: dictionary | | ... | - set_map_resolver - Map resolver data, which was set on | | ... | the VPP node. Type: list -| | ... +| | | | ... | *Return:* | | ... | - No value returned -| | ... +| | | | ... | *Example:* | | ... | \| Then LISP map resolver address should be configured correctly \ | | ... | \| ${nodes['DUT1']} \| ${map_resolver} \| -| | ... +| | | | [Arguments] | ${dut_node} | ${set_map_resolver} | | ${show_map_resolver}= | Vpp Show Lisp Map Resolver | ${dut_node} | | Lisp Should Be Equal | ${set_map_resolver} | ${show_map_resolver} | Delete all LISP map resolver address from VPP | | [Documentation] | Delete all lisp map resolver address on the VPP node. -| | ... +| | | | ... | *Arguments:* | | ... | - dut_node - DUT node. Type: dictionary | | ... | - map_resolver - Map resolver data, which will be remove from | | ... | the VPP. Type: list -| | ... +| | | | ... | *Return:* | | ... | - No value returned -| | ... +| | | | ... | *Example:* | | ... | \| When Delete all LISP map resolver address from VPP \ | | ... | \| ${nodes['DUT1']} \| ${map_resolver} \| -| | ... +| | | | [Arguments] | ${dut_node} | ${set_map_resolver} | | Vpp Unset Lisp Map Resolver | ${dut_node} | ${set_map_resolver} | LISP map resolver address should be empty | | [Documentation] | Test if the map resolver are empty. -| | ... +| | | | ... | *Arguments:* | | ... | - dut_node - DUT node. Type: dictionary -| | ... +| | | | ... | *Return:* | | ... | - No value returned -| | ... +| | | | ... | *Example:* | | ... | \| Then LISP map resolver address should be empty \ | | ... | \| ${nodes['DUT1']} \| -| | ... +| | | | [Arguments] | ${dut_node} | | ${show_map_resolver}= | Vpp Show Lisp Map Resolver | ${dut_node} | | Lisp Is Empty | ${show_map_resolver} | Enable LISP | | [Documentation] | Enable LISP on VPP node. -| | ... +| | | | ... | *Arguments:* | | ... | - dut_node - DUT node. Type: dictionary -| | ... +| | | | ... | *Return:* | | ... | - No value returned -| | ... +| | | | ... | *Example:* | | ... | \| Enable LISP \| ${nodes['DUT1']} \| -| | ... +| | | | [Arguments] | ${dut_node} | | Vpp Lisp Enable Disable | ${dut_node} | enable | LISP should be enabled | | [Documentation] | Check if the lisp is enabled. -| | ... +| | | | ... | *Arguments:* | | ... | - dut_node - DUT node. Type: dictionary | | ... | - lisp_status_data - Lisp status data, which was set on | | ... | the VPP node. Type: list -| | ... +| | | | ... | *Return:* | | ... | - No value returned -| | ... +| | | | ... | *Example:* | | ... | \| LISP should be enabled \| ${nodes['DUT1']} \ | | ... | \| ${lisp_status_data} \| -| | ... +| | | | [Arguments] | ${dut_node} | ${lisp_status_data} | | ${show_lisp_stat}= | Vpp Show Lisp State | ${dut_node} | | Lisp Should Be Equal | ${show_lisp_stat} | ${lisp_status_data[1]} | Disable LISP | | [Documentation] | Disable LISP on VPP node. -| | ... +| | | | ... | *Arguments:* | | ... | - dut_node - DUT node. Type: dictionary -| | ... +| | | | ... | *Return:* | | ... | - No value returned -| | ... +| | | | ... | *Example:* | | ... | \| Disable LISP \| ${nodes['DUT1']} \| -| | ... +| | | | [Arguments] | ${dut_node} | | Vpp Lisp Enable Disable | ${dut_node} | disable | LISP Should be disabled | | [Documentation] | LISP Should be disabled. -| | ... +| | | | ... | *Arguments:* | | ... | - dut_node - DUT node. Type: dictionary | | ... | - lisp_status_data - Lisp status data, which was set on | | ... | the VPP node. Type: list -| | ... +| | | | ... | *Return:* | | ... | - No value returned -| | ... +| | | | ... | *Example:* | | ... | \| LISP Should be disabled \| ${nodes['DUT1']} \ | | ... | \| ${lisp_status_data} \| -| | ... +| | | | [Arguments] | ${dut_node} | ${lisp_status_data} | | ${show_lisp_stat}= | Vpp Show Lisp State | ${dut_node} | | Lisp Should Be Equal | ${show_lisp_stat} | ${lisp_status_data[0]} | Enable Lisp Gpe | | [Documentation] | Enable Lisp Gpe on VPP node. -| | ... +| | | | ... | *Arguments:* | | ... | - dut_node - DUT node. Type: dictionary -| | ... +| | | | ... | *Return:* | | ... | - No value returned -| | ... +| | | | ... | *Example:* | | ... | \| Enable Lisp Gpe \| ${nodes['DUT1']} \| -| | ... +| | | | [Arguments] | ${dut_node} | | Vpp Lisp Gpe Enable Disable | ${dut_node} | enable | Disable Lisp Gpe | | [Documentation] | Disable Lisp Gpe on VPP node. -| | ... +| | | | ... | *Arguments:* | | ... | - dut_node - DUT node. Type: dictionary -| | ... +| | | | ... | *Return:* | | ... | - No value returned -| | ... +| | | | ... | *Example:* | | ... | \| Disable Lisp Gpe \| ${nodes['DUT1']} \| -| | ... +| | | | [Arguments] | ${dut_node} | | Vpp Lisp Gpe Enable Disable | ${dut_node} | disable diff --git a/resources/libraries/robot/overlay/lisp_static_adjacency.robot b/resources/libraries/robot/overlay/lisp_static_adjacency.robot index 55dab37d10..a68bb7e747 100644 --- a/resources/libraries/robot/overlay/lisp_static_adjacency.robot +++ b/resources/libraries/robot/overlay/lisp_static_adjacency.robot @@ -18,15 +18,15 @@ | Library | resources.libraries.python.LispSetup.LispLocalEid | Library | resources.libraries.python.LispSetup.LispLocatorSet | Library | resources.libraries.python.LispSetup.LispRemoteMapping -| ... +| | Resource | resources/libraries/robot/overlay/lisp_api.robot -| ... +| | Documentation | Lisp static adjacency suite keywords *** Keywords *** | Configure LISP topology in 3-node circular topology | | [Documentation] | Set up Lisp static adjacency topology. -| | ... +| | | | ... | *Arguments:* | | ... | - dut1_node - DUT1 node. Type: dictionary | | ... | - dut1_int_name - DUT1 node interface name. Type: string @@ -39,17 +39,17 @@ | | ... | - dut2_eid - Dut2 node eid address. Type: dictionary | | ... | - dut1_static_adjacency - Dut1 static adjacency. Type: dictionary | | ... | - dut2_static_adjacency - Dut2 static address. Type: dictionary -| | ... +| | | | ... | *Return:* | | ... | - No value returned -| | ... +| | | | ... | *Example:* | | ... | \| Configure LISP topology in 3-node circular topology \ | | ... | \| ${dut1_node} \| ${interface_name} \| None \ | | ... | \| ${dut2_node} \| ${interface_name} \| None \ | | ... | \| ${locator_set} \| ${dut1_eid} \| ${dut2_eid} \ | | ... | \| ${dut1_static_adjacency} \| ${dut2_static_adjacency} \| -| | ... +| | | | [Arguments] | ${dut1_node} | ${dut1_int_name} | ${dut1_int_index} | | ... | ${dut2_node} | ${dut2_int_name} | ${dut2_int_index} | | ... | ${locator_set} | ${dut1_eid} | ${dut2_eid} @@ -99,7 +99,7 @@ | Change LISP Configuration | | [Documentation] | Change configuration of the Lisp protocol. -| | ... +| | | | ... | *Arguments:* | | ... | - dut1_node - DUT1 node. Type: dictionary | | ... | - dut2_node - DUT2 node. Type: dictionary @@ -118,16 +118,16 @@ | | ... | Type: dictionary | | ... | - new_dut1_static_adjacency - New DUT1 static adjacency. | | ... | Type: dictionary -| | ... +| | | | ... | *Return:* | | ... | - No value returned -| | ... +| | | | ... | *Example:* | | ... | \| Change LISP Configuration \| ${dut1_node} \| ${dut2_node} \ | | ... | \| ${dut1_to_dut2} \| ${dut2_to_dut1} | "08:00:27:20:e0:0d" \ | | ... | \| "08:00:27:b1:94:b1" \| "6.3.0.1" \| "6.3.0.20" \| "24" \ | | ... | \| ${old_dut1_static_adjacency} \| ${new_dut1_static_adjacency} \| -| | ... +| | | | [Arguments] | ${dut1_node} | ${dut2_node} | ${dut1_to_dut2} | | ... | ${dut2_to_dut1} | ${dut1_to_dut2_mac} | ${dut2_to_dut1_mac} | | ... | ${new_dut1_ip} | ${new_dut2_ip} | ${prefix} diff --git a/resources/libraries/robot/overlay/lispgpe.robot b/resources/libraries/robot/overlay/lispgpe.robot index 5c611a56a9..1fa84da721 100644 --- a/resources/libraries/robot/overlay/lispgpe.robot +++ b/resources/libraries/robot/overlay/lispgpe.robot @@ -25,7 +25,7 @@ *** Keywords *** | Configure LISP GPE topology in 3-node circular topology | | [Documentation] | Configure LISP GPE topology in 3-node circular topology. -| | ... +| | | | ... | *Arguments:* | | ... | - dut1_node - DUT1 node. Type: dictionary | | ... | - dut1_if - DUT1 node interface. Type: string @@ -38,23 +38,23 @@ | | ... | - dut2_eid - DUT2 node eid address. Type: dictionary | | ... | - dut1_static_adjacency - DUT1 static adjacency. Type: dictionary | | ... | - dut2_static_adjacency - DUT2 static adjacency. Type: dictionary -| | ... +| | | | ... | *Return:* | | ... | - No value returned -| | ... +| | | | ... | *Example:* | | ... | \| Configure LISP GPE topology in 3-node circular topology \| ${dut1_node} \| ${interface_name} \ | | ... | \| None \| ${dut2_node} \| ${interface_name} \| None \ | | ... | \| ${locator_set} \| ${dut1_eid} \| ${dut2_eid} \ | | ... | \| ${dut1_static_adjacency} \| ${dut2_static_adjacency} \| -| | ... +| | | | [Arguments] | | ... | ${dut1_node} | ${dut1_if} | ${dut1_int_index} | | ... | ${dut2_node} | ${dut2_if} | ${dut2_int_index} | | ... | ${locator_set} | ${dut1_eid} | ${dut2_eid} | | ... | ${dut1_static_adjacency} | ${dut2_static_adjacency} | | ... | ${vni_table}=0 | ${vrf_table}=0 -| | ... +| | # DUT1 settings: | | ${dut1_int_index}= | Run Keyword If | ${dut1_int_index} is None | | | ... | Get Interface Sw Index | ${dut1_node} | ${dut1_if} @@ -89,7 +89,7 @@ | | ... | ${dut1_static_adjacency['prefix']} | | ... | ${dut1_static_adjacency['seid']} | | ... | ${dut1_static_adjacency['prefix']} -| | ... +| | # DUT2 settings: | | ${dut2_int_index}= | Run Keyword If | ${dut2_int_index} is None | | | ... | Get Interface Sw Index | ${dut2_node} | ${dut2_if} diff --git a/resources/libraries/robot/overlay/srv6.robot b/resources/libraries/robot/overlay/srv6.robot index dafc0fe566..8ac0343f9a 100644 --- a/resources/libraries/robot/overlay/srv6.robot +++ b/resources/libraries/robot/overlay/srv6.robot @@ -19,7 +19,7 @@ | Configure SR LocalSID on DUT | | [Documentation] | Create SRv6 LocalSID and binds it to a particular\ | | ... | behavior on the given DUT node. -| | ... +| | | | ... | *Arguments:* | | ... | - dut_node - DUT node where to create localSID on. Type: dictionary | | ... | - local_sid - LocalSID IPv6 address. Type: string @@ -42,9 +42,9 @@ | | ... | to SR-unaware appliance via static proxy). Type: string | | ... | - sid_list - SID list (Optional, default value: []; required for SRv6 | | ... | endpoint to SR-unaware appliance via static proxy). Type: list -| | ... +| | | | ... | *Example:* -| | ... +| | | | ... | \| Configure SR LocalSID on DUT \| ${nodes['DUT1']} \| B:: \| end \| | | ... | \| Configure SR LocalSID on DUT \| ${nodes['DUT1']} \| C:: \ | | ... | \| end.dx2 \| interface=GigabitEthernet0/10/0 \| @@ -58,12 +58,12 @@ | | ... | \| Configure SR LocalSID on DUT \| ${nodes['DUT2']} \| E:: \ | | ... | \| end.as \| next_hop=10.0.0.1 \| out_if=DUT2_VHOST1 \ | | ... | \| in_if=DUT2_VHOST2 \| src_addr=B:: \| sid_list=['C::', 'D::'] \| -| | ... +| | | | [Arguments] | ${dut_node} | ${local_sid} | ${behavior} | | ... | ${interface}=${None} | ${next_hop}=${None} | ${fib_table}=${None} | | ... | ${out_if}=${None} | ${in_if}=${None} | ${src_addr}=${None} | | ... | @{sid_list} -| | ... +| | | | Configure SR LocalSID | ${dut_node} | ${local_sid} | ${behavior} | | ... | interface=${interface} | next_hop=${next_hop} | fib_table=${fib_table} | | ... | out_if=${out_if} | in_if=${in_if} | src_addr=${src_addr} @@ -71,55 +71,55 @@ | Show SR LocalSIDs on DUT | | [Documentation] | Show SRv6 LocalSIDs on the given DUT node. -| | ... +| | | | ... | *Arguments:* | | ... | - dut_node - DUT node where to show SR localSIDs on. Type: dictionary -| | ... +| | | | ... | *Example:* -| | ... +| | | | ... | \| Show SR LocalSIDs on DUT \| ${nodes['DUT1']} \| -| | ... +| | | | [Arguments] | ${dut_node} -| | ... +| | | | Show SR LocalSIDs | ${dut_node} | Configure SR Policy on DUT | | [Documentation] | Create SRv6 policy on the given DUT node. -| | ... +| | | | ... | *Arguments:* | | ... | - dut_node - DUT node where to create SRv6 policy on. Type: dictionary | | ... | - bsid - BindingSID - local SID IPv6 address. Type: string | | ... | - mode - Encapsulation / insertion mode. Type: string | | ... | - sid_list - SID list. Type: list -| | ... +| | | | ... | *Example:* -| | ... +| | | | ... | \| Configure SR Policy on DUT \| ${nodes['DUT2']} \| A:: \| encap \ | | ... | \| B::\| C:: \| | | ... | \| Configure SR Policy on DUT \| ${nodes['DUT2']} \| D:: \| insert \ | | ... | \| E::\| F:: \| -| | ... +| | | | [Arguments] | ${dut_node} | ${bsid} | ${mode} | @{sid_list} -| | ... +| | | | Configure SR Policy | ${dut_node} | ${bsid} | ${sid_list} | mode=${mode} | Show SR Policies on DUT | | [Documentation] | Show SRv6 policies on the given DUT node. -| | ... +| | | | ... | *Arguments:* | | ... | - dut_node - DUT node where to show SR policies on. Type: dictionary -| | ... +| | | | ... | *Example:* -| | ... +| | | | ... | \| Show SR Policies on DUT \| ${nodes['DUT1']} \| -| | ... +| | | | [Arguments] | ${dut_node} -| | ... +| | | | Show SR Policies | ${dut_node} | Configure SR Steer on DUT | | [Documentation] | Create SRv6 steering policy on the given DUT node. -| | ... +| | | | ... | *Arguments:* | | ... | - dut_node - DUT node where to create SR steering policy on. | | ... | Type: dictionary @@ -131,99 +131,102 @@ | | ... | in case of L3 mode). Type: string | | ... | - prefix - IP address prefix (Optional, default value: None; required | | ... | for L3 mode). Type: integer -| | ... +| | | | ... | *Example:* -| | ... +| | | | ... | \| Configure SR Steer on DUT \| ${nodes['DUT1']} \| L2 \| B:: \ | | ... | \| interface=GigabitEthernet0/10/0 \| | | ... | \| Configure SR Steer on DUT \| ${nodes['DUT1']} \| L3 \| C:: \ | | ... | \| ip_address=2001::1 \| prefix=64 \| -| | ... +| | | | [Arguments] | ${dut_node} | ${mode} | ${bsid} | | ... | ${interface}=${None} | ${ip_addr}=${None} | ${prefix}=${None} -| | ... +| | | | Configure SR Steer | ${dut_node} | ${mode} | ${bsid} | | ... | interface=${interface} | ip_addr=${ip_addr} | prefix=${prefix} | Show SR Steering Policies on DUT | | [Documentation] | Show SRv6 steering policies on the given DUT node. -| | ... +| | | | ... | *Arguments:* | | ... | - dut_node - DUT node where to show SR steering policies on. | | ... | Type: dictionary -| | ... +| | | | ... | *Example:* -| | ... +| | | | ... | \| Show SR Steering Policies on DUT \| ${nodes['DUT1']} \| -| | ... +| | | | [Arguments] | ${dut_node} -| | ... +| | | | Show SR Steering Policies | ${dut_node} | Set SR Encaps Source Address on DUT | | [Documentation] | Set SRv6 encapsulation source address on the given DUT | | ... | node. -| | ... +| | | | ... | *Arguments:* | | ... | - dut_node - DUT node where to set SRv6 encapsulation source address | | ... | on. Type: dictionary | | ... | - ip6_addr - Local SID IPv6 address. Type: string -| | ... +| | | | ... | *Example:* -| | ... +| | | | ... | \| Set SR Encaps Source Address on DUT \| ${nodes['DUT1']} \| B:: \| -| | ... +| | | | [Arguments] | ${dut_node} | ${ip6_addr} -| | ... +| | | | Set SR Encaps Source Address | ${dut_node} | ip6_addr=${ip6_addr} | Show SR Policies on all DUTs | | [Documentation] | Show SRv6 policies on all DUT nodes in topology. -| | ... +| | | | ... | *Arguments:* | | ... | - nodes - Topology. Type: dictionary -| | ... +| | | | ... | *Example:* -| | ... +| | | | ... | \| Show SR Policies on all DUTs \| ${nodes} \| -| | ... +| | | | [Arguments] | ${nodes} -| | ... +| | | | ${duts}= | Get Matches | ${nodes} | DUT* -| | :FOR | ${dut} | IN | @{duts} +| | FOR | ${dut} | IN | @{duts} | | | Show SR Policies | ${nodes['${dut}']} +| | END | Show SR Steering Policies on all DUTs | | [Documentation] | Show SRv6 steering policies on all DUT nodes in topology. -| | ... +| | | | ... | *Arguments:* | | ... | - nodes - Topology. Type: dictionary -| | ... +| | | | ... | *Example:* -| | ... +| | | | ... | \| Show SR Steering Policies on all DUTs \| ${nodes} \| -| | ... +| | | | [Arguments] | ${nodes} -| | ... +| | | | ${duts}= | Get Matches | ${nodes} | DUT* -| | :FOR | ${dut} | IN | @{duts} +| | FOR | ${dut} | IN | @{duts} | | | Show SR Steering Policies | ${nodes['${dut}']} +| | END | Show SR LocalSIDs on all DUTs | | [Documentation] | Show SRv6 LocalSIDs on all DUT nodes in topology. -| | ... +| | | | ... | *Arguments:* | | ... | - nodes - Topology. Type: dictionary -| | ... +| | | | ... | *Example:* -| | ... +| | | | ... | \| Show SR LocalSIDs on all DUTs \| ${nodes} \| -| | ... +| | | | [Arguments] | ${nodes} -| | ... +| | | | ${duts}= | Get Matches | ${nodes} | DUT* -| | :FOR | ${dut} | IN | @{duts} +| | FOR | ${dut} | IN | @{duts} | | | Show SR LocalSIDs | ${nodes['${dut}']} +| | END | Initialize IPv6 forwarding over SRv6 with encapsulation with '${n}' x SID '${prepos}' decapsulation in 3-node circular topology | | [Documentation] @@ -232,7 +235,7 @@ | | ... | VPP interfaces. Setup IPv6 addresses on all interfaces. Set segment | | ... | routing for IPv6 for required number of SIDs and configure IPv6 routes | | ... | on both DUT nodes. -| | ... +| | | | VPP Interface Set IP Address | | ... | ${dut1} | ${dut1_if1} | ${dut1_if1_ip6} | ${prefix} | | VPP Interface Set IP Address @@ -242,12 +245,13 @@ | | VPP Interface Set IP Address | | ... | ${dut2} | ${dut2_if2} | ${dut2_if2_ip6} | ${prefix} | | Vpp All Ra Suppress Link Layer | ${nodes} -| | :FOR | ${number} | IN RANGE | 2 | ${dst_addr_nr}+2 +| | FOR | ${number} | IN RANGE | 2 | ${dst_addr_nr}+2 | | | ${hexa_nr}= | Convert To Hex | ${number} | | | VPP Add IP Neighbor | ${dut1} | | | ... | ${dut1_if1} | ${tg_if1_ip6_subnet}${hexa_nr} | ${tg_if1_mac} | | | VPP Add IP Neighbor | ${dut2} | | | ... | ${dut2_if2} | ${tg_if2_ip6_subnet}${hexa_nr} | ${tg_if2_mac} +| | END | | VPP Add IP Neighbor | | ... | ${dut1} | ${dut1_if2} | ${dut2_if1_ip6} | ${dut2_if1_mac} | | VPP Add IP Neighbor @@ -314,11 +318,11 @@ | | ... | interfaces. Setup IPv6 addresses on all interfaces. Set segment | | ... | routing for IPv6 with defined behaviour function and configure IPv6 | | ... | routes on both DUT nodes. -| | ... +| | | | ... | *Note:* | | ... | KW uses test variable rxq_count_int set by KW Add worker threads | | ... | and rxqueues to all DUTs -| | ... +| | | | ${sock1}= | Set Variable | memif-DUT1_CNF | | ${sock2}= | Set Variable | memif-DUT2_CNF | | Set up memif interfaces on DUT node | ${dut1} | ${sock1} | ${sock1} @@ -331,8 +335,9 @@ | | ... | ${rxq_count_int} | | VPP Set interface MTU | ${dut2} | ${dut2-memif-1-if1} | | VPP Set interface MTU | ${dut2} | ${dut2-memif-1-if2} -| | :FOR | ${dut} | IN | @{duts} +| | FOR | ${dut} | IN | @{duts} | | | Show Memif | ${nodes['${dut}']} +| | END | | VPP Interface Set IP Address | | ... | ${dut1} | ${dut1_if1} | ${dut1_if1_ip6} | ${prefix} | | VPP Interface Set IP Address diff --git a/resources/libraries/robot/overlay/vxlan.robot b/resources/libraries/robot/overlay/vxlan.robot index f03abdc11a..f98514e2a2 100644 --- a/resources/libraries/robot/overlay/vxlan.robot +++ b/resources/libraries/robot/overlay/vxlan.robot @@ -13,19 +13,19 @@ *** Settings *** | Library | resources.libraries.python.InterfaceUtil -| ... +| | Documentation | VXLAN keywords. *** Keywords *** | Get VXLAN dump | | [Documentation] | Get VXLAN dump. -| | ... +| | | | ... | *Arguments:* | | ... | - node - DUT node data. Type: dictionary | | ... | - interface - Interface on the VPP node (Optional). Type: string -| | ... +| | | | [Arguments] | ${dut_node} | ${interface}=${None} -| | ... +| | | | [Return] | ${vxlan_dump} -| | ... +| | | | ${vxlan_dump}= | VXLAN Dump | ${dut_node} | ${interface} -- cgit 1.2.3-korg