From fe1975eb1ac994df1bd759deda7154bb7dd9d7a7 Mon Sep 17 00:00:00 2001 From: Jan Gelety Date: Mon, 18 Mar 2019 13:30:11 +0100 Subject: CSIT-1468: InterfaceUtil migration from VAT to PAPI Change-Id: I0062710d58996be767a852dc00545fedd60a5c72 Signed-off-by: Jan Gelety --- resources/libraries/robot/ip/ip4.robot | 14 ++++++ resources/libraries/robot/ip/ip6.robot | 14 ++++++ resources/libraries/robot/overlay/vxlan.robot | 58 +++++++++++++++------- .../performance/performance_configuration.robot | 12 ++--- resources/libraries/robot/shared/interfaces.robot | 11 ++++ 5 files changed, 84 insertions(+), 25 deletions(-) (limited to 'resources/libraries/robot') diff --git a/resources/libraries/robot/ip/ip4.robot b/resources/libraries/robot/ip/ip4.robot index d811d0deea..bb0ae5be4c 100644 --- a/resources/libraries/robot/ip/ip4.robot +++ b/resources/libraries/robot/ip/ip4.robot @@ -40,6 +40,20 @@ | | :FOR | ${interface} | IN | @{interfaces} | | | Set Interface State | @{interface} | up | if_type=name +| Get interface Ipv4 addresses +| | [Documentation] | Get IPv4 address for the given interface of the node. +| | ... +| | ... | *Arguments:* +| | ... | - node - DUT node data. Type: dictionary +| | ... | - interface - Name of the interface on the VPP node. Type: string +| | ... +| | [Arguments] | ${node} | ${interface} +| | ... +| | [Return] | ${ip_data} +| | ... +| | ${ip_data}= | VPP get interface ip addresses +| | ... | ${node} | ${interface} | ipv4 + | Configure routes for IPv4 test | | [Documentation] | Setup routing on all VPP nodes required for IPv4 tests | | [Arguments] | ${nodes} | ${nodes_addr} diff --git a/resources/libraries/robot/ip/ip6.robot b/resources/libraries/robot/ip/ip6.robot index a780144443..6ef781f07e 100644 --- a/resources/libraries/robot/ip/ip6.robot +++ b/resources/libraries/robot/ip/ip6.robot @@ -26,6 +26,20 @@ | Documentation | IPv6 keywords *** Keywords *** +| Get interface Ipv6 addresses +| | [Documentation] | Get IPv6 address for the given interface of the node. +| | ... +| | ... | *Arguments:* +| | ... | - node - DUT node data. Type: dictionary +| | ... | - interface - Name of the interface on the VPP node. Type: string +| | ... +| | [Arguments] | ${node} | ${interface} +| | ... +| | [Return] | ${ip_data} +| | ... +| | ${ip_data}= | VPP get interface ip addresses +| | ... | ${node} | ${interface} | ipv6 + | Send IPv6 icmp echo request to DUT1 ingress inteface and verify answer | | [Documentation] | Type of the src_node must be TG and dst_node must be DUT | | [Arguments] | ${tg_node} | ${dut_node} | ${nodes_addr} diff --git a/resources/libraries/robot/overlay/vxlan.robot b/resources/libraries/robot/overlay/vxlan.robot index 69f4c10a88..66ffa3dfa1 100644 --- a/resources/libraries/robot/overlay/vxlan.robot +++ b/resources/libraries/robot/overlay/vxlan.robot @@ -17,19 +17,21 @@ | Resource | resources/libraries/robot/shared/interfaces.robot | Resource | resources/libraries/robot/l2/l2_bridge_domain.robot | Resource | resources/libraries/robot/l2/l2_xconnect.robot -| Library | resources.libraries.python.L2Util +| Library | resources.libraries.python.InterfaceUtil | Library | resources.libraries.python.IPUtil | Library | resources.libraries.python.IPv4Util | Library | resources.libraries.python.IPv6Util | Library | resources.libraries.python.IPv4Setup +| Library | resources.libraries.python.L2Util | Library | resources.libraries.python.NodePath *** Keywords *** | Configure IP addresses and neighbors on interfaces | | [Documentation] | *Set IPv4 addresses on interfaces on DUTs.* -| | ... | If interface index is None then is determines with Get Interface Sw Index -| | ... | in this case it is required the interface to be present in topology dict. -| | ... | It also executes VPP IP Probe to determine MACs to IPs on DUTs +| | ... | If interface index is None then is determines with Get Interface Sw +| | ... | Index in this case it is required the interface to be present in +| | ... | topology dict. It also executes VPP IP Probe to determine MACs to IPs +| | ... | on DUTs. | | ... | | ... | _Set testcase variables with IP addresses and prefix length:_ | | ... | - ${dut1s_ip_address} @@ -37,35 +39,38 @@ | | ... | - ${duts_ip_address_prefix} | | ... | | [Arguments] | ${DUT1} | ${DUT1_INT_NAME} | ${DUT1_INT_INDEX} -| | ... | ${DUT2} | ${DUT2_INT_NAME} | ${DUT2_INT_INDEX} +| | ... | ${DUT2} | ${DUT2_INT_NAME} | ${DUT2_INT_INDEX} | | Set Test Variable | ${dut1s_ip_address} | 172.16.0.1 | | Set Test Variable | ${dut2s_ip_address} | 172.16.0.2 | | Set Test Variable | ${duts_ip_address_prefix} | 24 | | ${DUT1_INT_KEY}= | Run Keyword If | ${DUT1_INT_INDEX} is None -| | | ... | Get Interface by name | ${DUT1} | ${DUT1_INT_NAME} +| | ... | Get Interface by name | ${DUT1} | ${DUT1_INT_NAME} | | ${DUT2_INT_KEY}= | Run Keyword If | ${DUT2_INT_INDEX} is None -| | | ... | Get Interface by name | ${DUT2} | ${DUT2_INT_NAME} +| | ... | Get Interface by name | ${DUT2} | ${DUT2_INT_NAME} | | ${DUT1_INT_INDEX}= | Run Keyword If | ${DUT1_INT_INDEX} is None -| | | ... | Get Interface Sw Index | ${DUT1} | ${DUT1_INT_KEY} -| | | ... | ELSE | Set Variable | ${DUT1_INT_INDEX} +| | ... | Get Interface Sw Index | ${DUT1} | ${DUT1_INT_KEY} +| | ... | ELSE | Set Variable | ${DUT1_INT_INDEX} | | ${DUT2_INT_INDEX}= | Run Keyword If | ${DUT2_INT_INDEX} is None -| | | ... | Get Interface Sw Index | ${DUT2} | ${DUT2_INT_KEY} -| | | ... | ELSE | Set Variable | ${DUT2_INT_INDEX} +| | ... | Get Interface Sw Index | ${DUT2} | ${DUT2_INT_KEY} +| | ... | ELSE | Set Variable | ${DUT2_INT_INDEX} | | ${DUT1_INT_MAC}= | Vpp Get Interface Mac | ${DUT1} | ${DUT1_INT_INDEX} | | ${DUT2_INT_MAC}= | Vpp Get Interface Mac | ${DUT2} | ${DUT2_INT_INDEX} | | Set Interface Address | ${DUT1} | ${DUT1_INT_INDEX} | | ... | ${dut1s_ip_address} | ${duts_ip_address_prefix} | | Set Interface Address | ${DUT2} | ${DUT2_INT_INDEX} | | ... | ${dut2s_ip_address} | ${duts_ip_address_prefix} -| | Add IP Neighbor | ${DUT1} | ${DUT1_INT_INDEX} | ${dut2s_ip_address} | ${DUT2_INT_MAC} -| | Add IP Neighbor | ${DUT2} | ${DUT2_INT_INDEX} | ${dut1s_ip_address} | ${DUT1_INT_MAC} +| | Add IP Neighbor | ${DUT1} | ${DUT1_INT_INDEX} | ${dut2s_ip_address} +| | ... | ${DUT2_INT_MAC} +| | Add IP Neighbor | ${DUT2} | ${DUT2_INT_INDEX} | ${dut1s_ip_address} +| | ... | ${DUT1_INT_MAC} | Add interfaces to L2BD | | [Arguments] | ${DUT} | ${BID} | ${INTERFACE_1} | ${INTERFACE_2} | | Vpp Add L2 Bridge Domain | ${DUT} | ${BID} | ${INTERFACE_1} | ${INTERFACE_2} | Create vlan interfaces for VXLAN -| | [Documentation] | *Create VLAN subinterface on interfaces on DUTs with given VLAN ID.* +| | [Documentation] | *Create VLAN subinterface on interfaces on DUTs with given +| | ... | VLAN ID.* | | ... | | ... | _Set testcase variables with name and index of created interfaces:_ | | ... | - ${dut1s_vlan_name} @@ -77,9 +82,9 @@ | | ${INT1_NAME}= | Get interface name | ${DUT1} | ${INT1} | | ${INT2_NAME}= | Get interface name | ${DUT2} | ${INT2} | | ${dut1s_vlan_name} | ${dut1s_vlan_index}= | Create Vlan Subinterface -| | | ... | ${DUT1} | ${INT1_NAME} | ${VLAN} +| | ... | ${DUT1} | ${INT1_NAME} | ${VLAN} | | ${dut2s_vlan_name} | ${dut2s_vlan_index}= | Create Vlan Subinterface -| | | ... | ${DUT2} | ${INT2_NAME} | ${VLAN} +| | ... | ${DUT2} | ${INT2_NAME} | ${VLAN} | | Set Interface State | ${DUT1} | ${dut1s_vlan_index} | up | | Set Interface State | ${DUT2} | ${dut2s_vlan_index} | up | | Set Test Variable | ${dut1s_vlan_name} @@ -111,8 +116,9 @@ | | ... | | ... | *Example:* | | ... -| | ... | \| Send VXLAN encapsulated packet and verify received packet \| ${tg_node} \| port4 \| port4 \ -| | ... | \| fa:16:3e:6d:f9:c5 \| fa:16:3e:e6:6d:9a \| 192.168.0.1 \ +| | ... | \| Send VXLAN encapsulated packet and verify received packet \ +| | ... | \| ${tg_node} \| port4 \| port4 \ +| | ... | \| fa:16:3e:6d:f9:c5 \| fa:16:3e:e6:6d:9a \| 192.168.0.1 \ | | ... | \| 192.168.0.2 \| ${101} \| 192.168.0.2 \| 192.168.0.1 \| ${102} \| | | ... | | [Arguments] | ${tg_node} | ${tx_if} | ${rx_if} @@ -132,4 +138,18 @@ | | ... | --rx_src_ip ${rx_src_ip} | | ... | --rx_dst_ip ${rx_dst_ip} | | ... | --rx_vni ${rx_vni} -| | Run Traffic Script On Node | send_vxlan_check_vxlan.py | ${tg_node} | ${args} +| | Run Traffic Script On Node | send_vxlan_check_vxlan.py | ${tg_node} +| | ... | ${args} + +| 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} diff --git a/resources/libraries/robot/performance/performance_configuration.robot b/resources/libraries/robot/performance/performance_configuration.robot index 8a305e4409..bd6a56eba6 100644 --- a/resources/libraries/robot/performance/performance_configuration.robot +++ b/resources/libraries/robot/performance/performance_configuration.robot @@ -64,7 +64,7 @@ | | | ... | Set Interface State | ${nodes['${dut}']} | ${${dut}_if2_1} | up | | | Run Keyword Unless | '${if2_status}' == 'PASS' | | | ... | Set Interface State | ${nodes['${dut}']} | ${${dut}_if2_2} | up -| | All VPP Interfaces Ready Wait | ${nodes} | timeout=${600} +| | All VPP Interfaces Ready Wait | ${nodes} | retries=${300} | | ${duts}= | Get Matches | ${nodes} | DUT* | | :FOR | ${dut} | IN | @{duts} | | | ${if1_status} | ${value}= | Run Keyword And Ignore Error @@ -83,7 +83,7 @@ | | | ... | VPP Set Interface MTU | ${nodes['${dut}']} | ${${dut}_if2_1} | | | Run Keyword Unless | '${if2_status}' == 'PASS' | | | ... | VPP Set Interface MTU | ${nodes['${dut}']} | ${${dut}_if2_2} -| | All VPP Interfaces Ready Wait | ${nodes} | timeout=${600} +| | All VPP Interfaces Ready Wait | ${nodes} | retries=${300} | Set single interfaces in path up | | [Documentation] @@ -104,7 +104,7 @@ | | | ... | Set Interface State | ${nodes['${dut}']} | ${${dut}_if1_1} | up | | | Run Keyword Unless | '${if1_status}' == 'PASS' | | | ... | Set Interface State | ${nodes['${dut}']} | ${${dut}_if1_2} | up -| | All VPP Interfaces Ready Wait | ${nodes} | timeout=${600} +| | All VPP Interfaces Ready Wait | ${nodes} | retries=${300} | | ${duts}= | Get Matches | ${nodes} | DUT* | | :FOR | ${dut} | IN | @{duts} | | | ${if1_status} | ${value}= | Run Keyword And Ignore Error @@ -2305,7 +2305,7 @@ | | ... | rxq_count_int=${rxq_count_int} | | Run Keyword | vnf_manager.Start All VMs | pinning=${True} | | Run Keyword If | ${use_tuned_cfs} | vnf_manager.Set Scheduler All VMs -| | All VPP Interfaces Ready Wait | ${nodes} | timeout=${600} +| | All VPP Interfaces Ready Wait | ${nodes} | retries=${300} | | VPP round robin RX placement on all DUTs | ${nodes} | prefix=Virtual | Configure guest VM with dpdk-testpmd connected via vhost-user @@ -2434,7 +2434,7 @@ | | | Configure guest VMs with dpdk-testpmd connected via vhost-user on node | | | ... | ${dut} | vm_count=${vm_count} | jumbo=${jumbo} | | | ... | perf_qemu_qsz=${perf_qemu_qsz} | use_tuned_cfs=${False} -| | All VPP Interfaces Ready Wait | ${nodes} | timeout=${90} +| | All VPP Interfaces Ready Wait | ${nodes} | retries=${45} | | VPP round robin RX placement on all DUTs | ${nodes} | prefix=Virtual | Configure guest VM with dpdk-testpmd-mac connected via vhost-user @@ -2573,7 +2573,7 @@ | | | Configure guest VMs with dpdk-testpmd-mac connected via vhost-user on node | | | ... | ${dut} | vm_count=${vm_count} | jumbo=${jumbo} | | | ... | perf_qemu_qsz=${perf_qemu_qsz} | use_tuned_cfs=${False} -| | All VPP Interfaces Ready Wait | ${nodes} | timeout=${90} +| | All VPP Interfaces Ready Wait | ${nodes} | retries=${45} | | VPP round robin RX placement on all DUTs | ${nodes} | prefix=Virtual | Initialize LISP IPv4 forwarding in 3-node circular topology diff --git a/resources/libraries/robot/shared/interfaces.robot b/resources/libraries/robot/shared/interfaces.robot index c2b897d6a0..5b6ebc743d 100644 --- a/resources/libraries/robot/shared/interfaces.robot +++ b/resources/libraries/robot/shared/interfaces.robot @@ -33,3 +33,14 @@ | | ${eth_mtu}= | Evaluate | ${mtu} - 14 - 4 | | Set Interface Ethernet MTU | ${tg_node} | ${tg_port} | ${eth_mtu} +| Get Vhost dump +| | [Documentation] | Get vhost-user dump. +| | ... +| | ... | *Arguments:* +| | ... | - node - DUT node data. Type: dictionary +| | ... +| | [Arguments] | ${dut_node} +| | ... +| | [Return] | ${vhost_dump} +| | ... +| | ${vhost_dump}= | Vhost User Dump | ${dut_node} -- cgit 1.2.3-korg