X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Flibraries%2Frobot%2Fperformance%2Fperformance_configuration.robot;h=cd6f4028a4392d386a7d70e6bef101430f2bae30;hp=0eb4e612dfcdc0e52828ae0b40c738f69a78d309;hb=ac6cc22910ea0d3bda42c227d799f2d4e89bc9d0;hpb=44e82a32bb10129d1f85d12e5141de2a17d5ff1a diff --git a/resources/libraries/robot/performance/performance_configuration.robot b/resources/libraries/robot/performance/performance_configuration.robot index 0eb4e612df..cd6f4028a4 100644 --- a/resources/libraries/robot/performance/performance_configuration.robot +++ b/resources/libraries/robot/performance/performance_configuration.robot @@ -29,6 +29,7 @@ | Resource | resources/libraries/robot/shared/counters.robot | Resource | resources/libraries/robot/l2/l2_bridge_domain.robot | Resource | resources/libraries/robot/l2/l2_xconnect.robot +| Resource | resources/libraries/robot/l2/l2_patch.robot | Resource | resources/libraries/robot/ip/ip4.robot | Resource | resources/libraries/robot/ip/ip6.robot | Resource | resources/libraries/robot/vm/qemu.robot @@ -96,6 +97,25 @@ | | Vpp Route Add | ${dut1} | ${laddr_ip4} | 8 | ${tg_if1_ip4} | ${dut1_if1} | | Vpp Route Add | ${dut2} | ${raddr_ip4} | 8 | ${tg_if2_ip4} | ${dut2_if2} +| Initialize IPv4 forwarding in 2-node circular topology +| | [Documentation] +| | ... | Set UP state on VPP interfaces in path on nodes in 2-node circular +| | ... | topology. Get the interface MAC addresses and setup ARP on all VPP +| | ... | interfaces. Setup IPv4 addresses with /24 prefix on DUT-TG links and +| | ... | /30 prefix on DUT1 link. +| | ... +| | Set Interface State | ${dut1} | ${dut1_if1} | up +| | Set Interface State | ${dut1} | ${dut1_if2} | up +| | ${tg1_if1_mac}= | Get Interface MAC | ${tg} | ${tg_if1} +| | ${tg1_if2_mac}= | Get Interface MAC | ${tg} | ${tg_if2} +| | Add arp on dut | ${dut1} | ${dut1_if1} | 10.10.10.2 | ${tg1_if1_mac} +| | Add arp on dut | ${dut1} | ${dut1_if2} | 20.20.20.2 | ${tg1_if2_mac} +| | Configure IP addresses on interfaces | ${dut1} | ${dut1_if1} +| | ... | 10.10.10.1 | 24 +| | Configure IP addresses on interfaces | ${dut1} | ${dut1_if2} +| | ... | 20.20.20.1 | 24 +| | All Vpp Interfaces Ready Wait | ${nodes} + | Initialize IPv4 forwarding in 3-node circular topology | | [Documentation] | | ... | Set UP state on VPP interfaces in path on nodes in 3-node circular @@ -128,26 +148,6 @@ | | Vpp Route Add | ${dut2} | 10.10.10.0 | 24 | 1.1.1.1 | ${dut2_if1} | | All Vpp Interfaces Ready Wait | ${nodes} -| Initialize IPv4 forwarding in 2-node circular topology -| | [Documentation] -| | ... | Set UP state on VPP interfaces in path on nodes in 2-node circular -| | ... | topology. Get the interface MAC addresses and setup ARP on all VPP -| | ... | interfaces. Setup IPv4 addresses with /24 prefix on DUT-TG links and -| | ... | /30 prefix on DUT1 link. Set routing on DUT node with prefix /24 and -| | ... | next hop of neighbour DUT interface IPv4 address. -| | ... -| | Set Interface State | ${dut1} | ${dut1_if1} | up -| | Set Interface State | ${dut1} | ${dut1_if2} | up -| | ${tg1_if1_mac}= | Get Interface MAC | ${tg} | ${tg_if1} -| | ${tg1_if2_mac}= | Get Interface MAC | ${tg} | ${tg_if2} -| | Add arp on dut | ${dut1} | ${dut1_if1} | 10.10.10.3 | ${tg1_if1_mac} -| | Add arp on dut | ${dut1} | ${dut1_if2} | 20.20.20.3 | ${tg1_if2_mac} -| | Configure IP addresses on interfaces | ${dut1} | ${dut1_if1} -| | ... | 10.10.10.2 | 24 -| | Configure IP addresses on interfaces | ${dut1} | ${dut1_if2} -| | ... | 20.20.20.2 | 24 -| | All Vpp Interfaces Ready Wait | ${nodes} - | Initialize IPv4 forwarding with scaling in 3-node circular topology | | [Documentation] | | ... | Custom setup of IPv4 topology with scalability of ip routes on all @@ -513,6 +513,23 @@ | | Policer Classify Set Match IP | 10.10.10.2 | ${False} | | Policer Set Configuration +| Initialize IPv6 forwarding in 2-node circular topology +| | [Documentation] +| | ... | Set UP state on VPP interfaces in path on nodes in 2-node circular +| | ... | topology. Get the interface MAC addresses and setup neighbour on all +| | ... | VPP interfaces. Setup IPv6 addresses with /128 prefixes on all +| | ... | interfaces. +| | ... +| | ${prefix}= | Set Variable | 64 +| | ${tg1_if1_mac}= | Get Interface MAC | ${tg} | ${tg_if1} +| | ${tg1_if2_mac}= | Get Interface MAC | ${tg} | ${tg_if2} +| | VPP Set If IPv6 Addr | ${dut1} | ${dut1_if1} | 2001:1::1 | ${prefix} +| | VPP Set If IPv6 Addr | ${dut1} | ${dut1_if2} | 2001:2::1 | ${prefix} +| | Suppress ICMPv6 router advertisement message | ${nodes} +| | Add Ip Neighbor | ${dut1} | ${dut1_if1} | 2001:1::2 | ${tg1_if1_mac} +| | Add Ip Neighbor | ${dut1} | ${dut1_if2} | 2001:2::2 | ${tg1_if2_mac} +| | All Vpp Interfaces Ready Wait | ${nodes} + | Initialize IPv6 forwarding in 3-node circular topology | | [Documentation] | | ... | Set UP state on VPP interfaces in path on nodes in 3-node circular @@ -537,6 +554,7 @@ | | Add Ip Neighbor | ${dut2} | ${dut2_if1} | 2001:3::1 | ${dut1_if2_mac} | | Vpp Route Add | ${dut1} | 2001:2::0 | ${prefix} | 2001:3::2 | ${dut1_if2} | | Vpp Route Add | ${dut2} | 2001:1::0 | ${prefix} | 2001:3::1 | ${dut2_if1} +| | All Vpp Interfaces Ready Wait | ${nodes} | Initialize IPv6 forwarding with scaling in 3-node circular topology | | [Documentation] @@ -579,6 +597,7 @@ | | ... | interface=${dut2_if1} | count=${count} | | Vpp Route Add | ${dut2} | 2001:2::0 | ${host_prefix} | 2001:5::2 | | ... | interface=${dut2_if2} | count=${count} +| | All Vpp Interfaces Ready Wait | ${nodes} | Initialize IPv6 iAcl whitelist in 3-node circular topology | | [Documentation] @@ -687,6 +706,10 @@ | | ... | 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 +| | ... | | ${tg1_if1_mac}= | Get Interface MAC | ${tg} | ${tg_if1} | | ${tg1_if2_mac}= | Get Interface MAC | ${tg} | ${tg_if2} | | ${dut1_if2_mac}= | Get Interface MAC | ${dut1} | ${dut1_if2} @@ -694,9 +717,11 @@ | | ${sock1}= | Set Variable | memif-DUT1_VNF | | ${sock2}= | Set Variable | memif-DUT2_VNF | | Set up memif interfaces on DUT node | ${dut1} | ${sock1} | ${sock1} -| | ... | ${1} | dut1-memif-1-if1 | dut1-memif-1-if2 | ${rxq} | ${rxq} +| | ... | ${1} | dut1-memif-1-if1 | dut1-memif-1-if2 | ${rxq_count_int} +| | ... | ${rxq_count_int} | | Set up memif interfaces on DUT node | ${dut2} | ${sock2} | ${sock2} -| | ... | ${1} | dut2-memif-1-if1 | dut2-memif-1-if2 | ${rxq} | ${rxq} +| | ... | ${1} | dut2-memif-1-if1 | dut2-memif-1-if2 | ${rxq_count_int} +| | ... | ${rxq_count_int} | | ${duts}= | Get Matches | ${nodes} | DUT* | | :FOR | ${dut} | IN | @{duts} | | | Show Memif | ${nodes['${dut}']} @@ -781,6 +806,24 @@ | | ... | ELSE | Fail | Unsupported behaviour: ${behavior} | | All Vpp Interfaces Ready Wait | ${nodes} +| Initialize L2 patch +| | [Documentation] +| | ... | Setup L2 patch topology by cross connecting two interfaces on +| | ... | each DUT. Interfaces are brought up. +| | ... +| | ${duts}= | Get Matches | ${nodes} | DUT* +| | :FOR | ${dut} | IN | @{duts} +| | | Configure L2patch | ${nodes['${dut}']} | ${${dut}_if1} | ${${dut}_if2} +| | All Vpp Interfaces Ready Wait | ${nodes} + +| Initialize L2 xconnect in 2-node circular topology +| | [Documentation] +| | ... | Setup L2 xconnect topology by cross connecting two interfaces on +| | ... | each DUT. Interfaces are brought up. +| | ... +| | Configure L2XC | ${dut1} | ${dut1_if1} | ${dut1_if2} +| | All Vpp Interfaces Ready Wait | ${nodes} + | Initialize L2 xconnect in 3-node circular topology | | [Documentation] | | ... | Setup L2 xconnect topology by cross connecting two interfaces on @@ -1013,6 +1056,25 @@ | | Configure L2XC | ${dut2} | ${subif_index_2} | ${vhost_if1} | | Configure L2XC | ${dut2} | ${dut2_if2} | ${vhost_if2} +| Initialize L2 bridge domain in 2-node circular topology +| | [Documentation] +| | ... | Setup L2 DB topology by adding two interfaces on DUT into BD +| | ... | that is created automatically with index 1. Learning is enabled. +| | ... | Interfaces are brought up. +| | ... +| | ... | *Arguments:* +| | ... | - bd_id - Bridge domain ID. Type: integer +| | ... +| | ... | *Example:* +| | ... +| | ... | \| Initialize L2 bridge domain in 2-node circular topology \| 1 \| +| | ... +| | [Arguments] | ${bd_id}=${1} +| | ... +| | Add interface to bridge domain | ${dut1} | ${dut1_if1} | ${bd_id} +| | Add interface to bridge domain | ${dut1} | ${dut1_if2} | ${bd_id} +| | All Vpp Interfaces Ready Wait | ${nodes} + | Initialize L2 bridge domain in 3-node circular topology | | [Documentation] | | ... | Setup L2 DB topology by adding two interfaces on each DUT into BD @@ -1482,6 +1544,75 @@ | | Add interface to bridge domain | ${dut2} | ${vhost_if2} | ${bd_id2} | | Add interface to bridge domain | ${dut2} | ${dut2_if2} | ${bd_id2} +| Init L2 bridge domains with single DUT with Vhost-User and VXLANoIPv4 in 3-node circular topology +| | [Documentation] +| | ... | Create two Vhost-User interfaces on one VPP node. Add each +| | ... | Vhost-User interface into L2 bridge domains with learning enabled +| | ... | one connected to physical interface, the other to VXLAN. +| | ... | Setup VXLANoIPv4 between DUTs and TG by connecting physical and vxlan +| | ... | interfaces on the DUT. All interfaces are brought up. +| | ... | IPv4 addresses with prefix /24 are configured on interfaces between +| | ... | DUT and TG. +| | ... +| | ... | *Arguments:* +| | ... | - dut1_address - Address of physical interface on DUT1. Type: string +| | ... | - dut1_address_subnet - Subnet of the address of physical interface on +| | ... | DUT1. Type: string +| | ... | - dut2_address - Address of physical interface on DUT2. Type: string +| | ... | - dut2_address_subnet - Subnet of the address of physical interface on +| | ... | DUT2. Type: string +| | ... | - dut1_gw - Address of the _gateway_ to which the traffic will be +| | ... | forwarded on DUT1. Type: string +| | ... | - dut2_gw - Address of the _gateway_ to which the traffic will be +| | ... | forwarded on DUT2. Type: string +| | ... | - dut1_vxlans - List of VXLAN params to be configured on DUT1. +| | ... | Type: list of dicts, dict params vni, vtep +| | ... | - dut2_vxlans - List of VXLAN params to be configured on DUT2. +| | ... | Type: list of dicts, dict params vni, vtep +| | ... | - dut1_route_subnet - Subnet address to forward to _gateway_ on DUT1. +| | ... | Type: string +| | ... | - dut1_route_mask - Subnet address mask to forward to _gateway_ +| | ... | on DUT1. Type: string +| | ... | - dut2_route_subnet - Subnet address to forward to _gateway_ on DUT2. +| | ... | Type: string +| | ... | - dut2_route_mask - Subnet address mask to forward to _gateway_ +| | ... | on DUT2. Type: string +| | ... +| | ... | *Example:* +| | ... +| | [Arguments] | ${dut1_address} | ${dut1_address_subnet} | +| | ... | ${dut2_address} | ${dut2_address_subnet} | ${dut1_gw} | ${dut2_gw} | +| | ... | ${dut1_vxlans} | ${dut2_vxlans} | ${dut1_route_subnet} | +| | ... | ${dut1_route_mask} | ${dut2_route_subnet} | ${dut2_route_mask} +| | ... +| | Configure IP addresses on interfaces | ${dut1} | ${dut1_if1} | +| | ... | ${dut1_address} | ${dut1_address_subnet} +| | Configure IP addresses on interfaces | ${dut2} | ${dut2_if2} | +| | ... | ${dut2_address} | ${dut2_address_subnet} +| | ${dut1_bd_id1}= | Set Variable | 1 +| | ${dut1_bd_id2}= | Set Variable | 2 +| | ${dut2_bd_id1}= | Set Variable | 1 +| | :FOR | ${vxlan} | IN | @{dut1_vxlans} +| | | ${dut1s_vxlan}= | Create VXLAN interface | ${dut1} | ${vxlan.vni} +| | | ... | ${dut1_address} | ${vxlan.vtep} +| | | Add interface to bridge domain | ${dut1} | ${dut1s_vxlan} | ${dut1_bd_id1} +| | :FOR | ${vxlan} | IN | @{dut2_vxlans} +| | | ${dut2s_vxlan}= | Create VXLAN interface | ${dut2} | ${vxlan.vni} +| | | ... | ${dut2_address} | ${vxlan.vtep} +| | | Add interface to bridge domain | ${dut2} | ${dut2s_vxlan} | ${dut2_bd_id1} +| | ${tg_if1_mac}= | Get Interface MAC | ${tg} | ${tg_if1} +| | ${tg_if2_mac}= | Get Interface MAC | ${tg} | ${tg_if2} +| | Add arp on dut | ${dut1} | ${dut1_if1} | ${dut1_gw} | ${tg_if1_mac} +| | Add arp on dut | ${dut2} | ${dut2_if2} | ${dut2_gw} | ${tg_if2_mac} +| | Vpp Route Add | ${dut1} | ${dut1_route_subnet} | ${dut1_route_mask} +| | ... | ${dut1_gw} | ${dut1_if1} +| | Vpp Route Add | ${dut2} | ${dut2_route_subnet} | ${dut2_route_mask} +| | ... | ${dut2_gw} | ${dut2_if2} +| | Add interface to bridge domain | ${dut1} | ${dut1_if2} | ${dut1_bd_id2} +| | Add interface to bridge domain | ${dut2} | ${dut2_if1} | ${dut2_bd_id1} +| | Add interface to bridge domain | ${dut1} | ${vhost_if1} | ${dut1_bd_id1} +| | Add interface to bridge domain | ${dut1} | ${vhost_if2} | ${dut1_bd_id2} + | Initialize L2 bridge domains with Vhost-User in 2-node circular topology | | [Documentation] | | ... | Create two Vhost-User interfaces on all defined VPP nodes. Add each @@ -1697,30 +1828,30 @@ | | Add interface to bridge domain | ${dut2} | ${vhost_if2} | ${bd_id2} | | Add interface to bridge domain | ${dut2} | ${dut2_if2} | ${bd_id2} -| Add PCI devices to DUTs in 3-node single link topology +| Add PCI devices to all DUTs | | [Documentation] | | ... | Add PCI devices to VPP configuration file. | | ... -| | ${dut1_if1_pci}= | Get Interface PCI Addr | ${dut1} | ${dut1_if1} -| | ${dut1_if2_pci}= | Get Interface PCI Addr | ${dut1} | ${dut1_if2} -| | ${dut2_if1_pci}= | Get Interface PCI Addr | ${dut2} | ${dut2_if1} -| | ${dut2_if2_pci}= | Get Interface PCI Addr | ${dut2} | ${dut2_if2} -| | Run keyword | DUT1.Add DPDK Dev | ${dut1_if1_pci} | ${dut1_if2_pci} -| | Run keyword | DUT2.Add DPDK Dev | ${dut2_if1_pci} | ${dut2_if2_pci} -| | Set Test Variable | ${dut1_if1_pci} -| | Set Test Variable | ${dut1_if2_pci} -| | Set Test Variable | ${dut2_if1_pci} -| | Set Test Variable | ${dut2_if2_pci} - -| Add PCI devices to DUTs in 2-node single link topology +| | ${duts}= | Get Matches | ${nodes} | DUT* +| | :FOR | ${dut} | IN | @{duts} +| | | ${if1_pci}= | Get Interface PCI Addr | ${nodes['${dut}']} | ${${dut}_if1} +| | | ${if2_pci}= | Get Interface PCI Addr | ${nodes['${dut}']} | ${${dut}_if2} +| | | Run keyword | ${dut}.Add DPDK Dev | ${if1_pci} | ${if2_pci} +| | | Set Test Variable | ${${dut}_if1_pci} | ${if1_pci} +| | | Set Test Variable | ${${dut}_if2_pci} | ${if2_pci} + +| Add single PCI device to all DUTs | | [Documentation] -| | ... | Add PCI devices to VPP configuration file. +| | ... | Add single (first) PCI device on DUT1 and single (last) PCI device on +| | ... | DUT2 to VPP configuration file. | | ... -| | ${dut1_if1_pci}= | Get Interface PCI Addr | ${dut1} | ${dut1_if1} -| | ${dut1_if2_pci}= | Get Interface PCI Addr | ${dut1} | ${dut1_if2} -| | Run keyword | DUT1.Add DPDK Dev | ${dut1_if1_pci} | ${dut1_if2_pci} -| | Set Test Variable | ${dut1_if1_pci} -| | Set Test Variable | ${dut1_if2_pci} +| | ${duts}= | Get Matches | ${nodes} | DUT* +| | :FOR | ${dut} | IN | @{duts} +| | | ${if1_pci}= | Run Keyword If | '${dut}' == 'DUT1' | Get Interface PCI Addr +| | | ... | ${nodes['${dut}']} | ${${dut}_if1} | ELSE | Get Interface PCI Addr +| | | ... | ${nodes['${dut}']} | ${${dut}_if2} +| | | Run keyword | ${dut}.Add DPDK Dev | ${if1_pci} +| | | Set Test Variable | ${${dut}_if1_pci} | ${if1_pci} | Add VLAN Strip Offload switch off between DUTs in 3-node single link topology | | [Documentation] @@ -2458,7 +2589,7 @@ | | Configure deterministic mode for NAT44 | | ... | ${dut1} | 20.0.0.0 | 18 | 200.0.0.0 | 30 -| Initialize L2 xconnect for '${nr}' memif pairs and '${rxq}' rxqueues in 3-node circular topology +| Initialize L2 xconnect for '${nr}' memif pairs in 3-node circular topology | | [Documentation] | | ... | Create pairs of Memif interfaces on all defined VPP nodes. Cross | | ... | connect each Memif interface with one physical interface or virtual @@ -2471,9 +2602,13 @@ | | ... | Socket paths for Memif are defined in following format: | | ... | - /tmp/memif-DUT1_VNF${number}-${sid} | | ... +| | ... | KW uses test variable ${rxq_count_int} set by KW Add worker threads +| | ... | and rxqueues to all DUTs +| | ... | | ... | *Example:* | | ... -| | ... | \| Initialize L2 xconnect for 1 Memif in 3-node circular topology \| +| | ... | \| Initialize L2 xconnect for 1 memif pairs in 3-node circular \ +| | ... | topology \| | | ... | | Set Interface State | ${dut1} | ${dut1_if1} | up | | Set Interface State | ${dut1} | ${dut1_if2} | up @@ -2485,7 +2620,7 @@ | | | ${prev_index}= | Evaluate | ${number}-1 | | | Set up memif interfaces on DUT node | ${dut1} | | | ... | ${sock1} | ${sock2} | ${number} | dut1-memif-${number}-if1 -| | | ... | dut1-memif-${number}-if2 | ${rxq} | ${rxq} +| | | ... | dut1-memif-${number}-if2 | ${rxq_count_int} | ${rxq_count_int} | | | ${dut1_xconnect_if1}= | Set Variable If | ${number}==1 | ${dut1_if1} | | | ... | ${dut1-memif-${prev_index}-if2} | | | Configure L2XC | ${dut1} | ${dut1_xconnect_if1} @@ -2494,7 +2629,7 @@ | | | ${sock2}= | Set Variable | memif-DUT2_VNF | | | Set up memif interfaces on DUT node | ${dut2} | | | ... | ${sock1} | ${sock2} | ${number} | dut2-memif-${number}-if1 -| | | ... | dut2-memif-${number}-if2 | ${rxq} | ${rxq} +| | | ... | dut2-memif-${number}-if2 | ${rxq_count_int} | ${rxq_count_int} | | | ${dut2_xconnect_if1}= | Set Variable If | ${number}==1 | ${dut2_if1} | | | ... | ${dut2-memif-${prev_index}-if2} | | | Configure L2XC | ${dut2} | ${dut2_xconnect_if1} @@ -2504,11 +2639,9 @@ | | | Run Keyword If | ${number}==${nr} | Configure L2XC | | | ... | ${dut2} | ${dut2-memif-${number}-if2} | ${dut2_if2} | | All Vpp Interfaces Ready Wait | ${nodes} -| | ${duts}= | Get Matches | ${nodes} | DUT* -| | :FOR | ${dut} | IN | @{duts} -| | | Show Memif | ${nodes['${dut}']} +| | Show Memif on all DUTs | ${nodes} -| Initialize L2 Bridge Domain for '${nr}' memif pairs and '${rxq}' rxqueues in 3-node circular topology +| Initialize L2 Bridge Domain for '${nr}' memif pairs in 3-node circular topology | | [Documentation] | | ... | Create pairs of Memif interfaces on all defined VPP nodes. Put each | | ... | Memif interface to separate L2 bridge domain with one physical or @@ -2536,7 +2669,7 @@ | | | ${sock2}= | Set Variable | memif-DUT1_VNF | | | Set up memif interfaces on DUT node | ${dut1} | | | ... | ${sock1} | ${sock2} | ${number} | dut1-memif-${number}-if1 -| | | ... | dut1-memif-${number}-if2 | ${rxq} | ${rxq} +| | | ... | dut1-memif-${number}-if2 | ${rxq_count_int} | ${rxq_count_int} | | | ${bd_id2}= | Evaluate | ${number}+1 | | | Add interface to bridge domain | ${dut1} | | | ... | ${dut1-memif-${number}-if1} | ${number} @@ -2546,12 +2679,82 @@ | | | ${sock2}= | Set Variable | memif-DUT2_VNF | | | Set up memif interfaces on DUT node | ${dut2} | | | ... | ${sock1} | ${sock2} | ${number} | dut2-memif-${number}-if1 -| | | ... | dut2-memif-${number}-if2 | ${rxq} | ${rxq} +| | | ... | dut2-memif-${number}-if2 | ${rxq_count_int} | ${rxq_count_int} | | | Add interface to bridge domain | ${dut2} | | | ... | ${dut2-memif-${number}-if1} | ${number} | | | Add interface to bridge domain | ${dut2} | | | ... | ${dut2-memif-${number}-if2} | ${bd_id2} | | All Vpp Interfaces Ready Wait | ${nodes} -| | ${duts}= | Get Matches | ${nodes} | DUT* -| | :FOR | ${dut} | IN | @{duts} -| | | Show Memif | ${nodes['${dut}']} +| | Show Memif on all DUTs | ${nodes} + +| Initialize L2 xconnect for single memif in 3-node circular topology +| | [Documentation] +| | ... | Create single Memif interface on all defined VPP nodes. Cross +| | ... | connect Memif interface with one physical interface. +| | ... +| | ... | *Arguments:* +| | ... | - ${number} - Memif ID. Type: integer +| | ... +| | ... | *Note:* +| | ... | Socket paths for Memif are defined in following format: +| | ... | - /tmp/memif-DUT1_VNF${number}-${sid} +| | ... +| | ... | KW uses test variable ${rxq_count_int} set by KW Add worker threads +| | ... | and rxqueues to all DUTs +| | ... +| | ... | *Example:* +| | ... +| | ... | \| Initialize L2 xconnect for single memif in 3-node circular \ +| | ... | topology \| 1 \| +| | ... +| | [Arguments] | ${number}=${1} +| | ${sock}= | Set Variable | memif-DUT1_VNF +| | Set up single memif interface on DUT node | ${dut1} | ${sock} +| | ... | ${number} | dut1-memif-${number}-if1 | ${rxq_count_int} +| | ... | ${rxq_count_int} +| | Configure L2XC | ${dut1} | ${dut1_if1} | ${dut1-memif-${number}-if1} +| | ${sock}= | Set Variable | memif-DUT2_VNF +| | Set up single memif interface on DUT node | ${dut2} | ${sock} +| | ... | ${number} | dut2-memif-${number}-if1 | ${rxq_count_int} +| | ... | ${rxq_count_int} +| | Configure L2XC | ${dut2} | ${dut2_if2} | ${dut2-memif-${number}-if1} +| | All Vpp Interfaces Ready Wait | ${nodes} +| | Show Memif on all DUTs | ${nodes} + +| Initialize L2 Bridge Domain for single memif in 3-node circular topology +| | [Documentation] +| | ... | Create single Memif interface on all defined VPP nodes. Put Memif +| | ... | interface to separate L2 bridge domain with one physical interface. +| | ... +| | ... | *Arguments:* +| | ... | - ${number} - Memif ID. Type: integer +| | ... +| | ... | *Note:* +| | ... | Socket paths for Memif are defined in following format: +| | ... | - /tmp/memif-DUT1_VNF${number}-${sid} +| | ... +| | ... | KW uses test variable ${rxq_count_int} set by KW Add worker threads +| | ... | and rxqueues to all DUTs +| | ... +| | ... | *Example:* +| | ... +| | ... | \| Initialize L2 Bridge Domain for single memif in 3-node circular \ +| | ... | topology \| 1 \| +| | ... +| | [Arguments] | ${number}=${1} +| | ${sock}= | Set Variable | memif-DUT1_VNF +| | Set up single memif interface on DUT node | ${dut1} | ${sock} +| | ... | ${number} | dut1-memif-${number}-if1 | ${rxq_count_int} +| | ... | ${rxq_count_int} +| | Add interface to bridge domain | ${dut1} | ${dut1_if1} | ${number} +| | Add interface to bridge domain | ${dut1} | ${dut1-memif-${number}-if1} +| | ... | ${number} +| | ${sock}= | Set Variable | memif-DUT2_VNF +| | Set up single memif interface on DUT node | ${dut2} | ${sock} +| | ... | ${number} | dut2-memif-${number}-if1 | ${rxq_count_int} +| | ... | ${rxq_count_int} +| | Add interface to bridge domain | ${dut2} | ${dut2_if2} | ${number} +| | Add interface to bridge domain | ${dut2} | ${dut2-memif-${number}-if1} +| | ... | ${number} +| | All Vpp Interfaces Ready Wait | ${nodes} +| | Show Memif on all DUTs | ${nodes}