VTS VXLAN vhost-user with single DUT, TG sends VXLAN
[csit.git] / resources / libraries / robot / performance / performance_configuration.robot
index 0eb4e61..21826a2 100644 (file)
 | | 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
 | | Set Test Variable | ${dut2_if1_pci}
 | | Set Test Variable | ${dut2_if2_pci}
 
+| Add single PCI device to DUTs in 3-node single link topology
+| | [Documentation]
+| | ... | Add single (first) PCI device on DUT1 to VPP configuration file.
+| | ... | Add single (last) PCI device on DUT2 to VPP configuration file.
+| | ...
+| | ${dut1_if1_pci}= | Get Interface PCI Addr | ${dut1} | ${dut1_if1}
+| | ${dut2_if2_pci}= | Get Interface PCI Addr | ${dut2} | ${dut2_if2}
+| | Run keyword | DUT1.Add DPDK Dev | ${dut1_if1_pci}
+| | Run keyword | DUT2.Add DPDK Dev | ${dut2_if2_pci}
+| | Set Test Variable | ${dut1_if1_pci}
+| | Set Test Variable | ${dut2_if2_pci}
+
 | Add PCI devices to DUTs in 2-node single link topology
 | | [Documentation]
 | | ... | Add PCI devices to VPP configuration file.
 | | Set Test Variable | ${dut1_if1_pci}
 | | Set Test Variable | ${dut1_if2_pci}
 
+| Add single PCI device to DUTs in 2-node single link topology
+| | [Documentation]
+| | ... | Add single (first) PCI device on DUT1 to VPP configuration file.
+| | ...
+| | ${dut1_if1_pci}= | Get Interface PCI Addr | ${dut1} | ${dut1_if1}
+| | Run keyword | DUT1.Add DPDK Dev | ${dut1_if1_pci}
+| | Set Test Variable | ${dut1_if1_pci}
+
 | Add VLAN Strip Offload switch off between DUTs in 3-node single link topology
 | | [Documentation]
 | | ... | Add VLAN Strip Offload switch off on PCI devices between DUTs to VPP
 | | | 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
 | | [Documentation]
 | | | 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:*
+| | ... | - ${rxq} - Number of Memif RX queues. Type: integer
+| | ... | - ${number} - Memif ID. Type: integer
+| | ...
+| | ... | *Note:*
+| | ... | Socket paths for Memif are defined in following format:
+| | ... | - /tmp/memif-DUT1_VNF${number}-${sid}
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Initialize L2 xconnect for single memif in 3-node circular \
+| | ... | topology \| 1 \| 1 \|
+| | ...
+| | [Arguments] | ${rxq}=${1} | ${number}=${1}
+| | ${sock}= | Set Variable | memif-DUT1_VNF
+| | Set up single memif interface on DUT node | ${dut1} | ${sock}
+| | ... | ${number} | dut1-memif-${number}-if1 | ${rxq} | ${rxq}
+| | 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} | ${rxq}
+| | 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:*
+| | ... | - ${rxq} - Number of Memif RX queues. Type: integer
+| | ... | - ${number} - Memif ID. Type: integer
+| | ...
+| | ... | *Note:*
+| | ... | Socket paths for Memif are defined in following format:
+| | ... | - /tmp/memif-DUT1_VNF${number}-${sid}
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Initialize L2 Bridge Domain for single memif in 3-node circular \
+| | ... | topology \| 1 \| 1 \|
+| | ...
+| | [Arguments] | ${rxq}=${1} | ${number}=${1}
+| | ${sock}= | Set Variable | memif-DUT1_VNF
+| | Set up single memif interface on DUT node | ${dut1} | ${sock}
+| | ... | ${number} | dut1-memif-${number}-if1 | ${rxq} | ${rxq}
+| | 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} | ${rxq}
+| | 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}