Add dpdk max-simd-bitwidth configuration.
[csit.git] / resources / libraries / robot / shared / interfaces.robot
index 4fdc1ee..30c0940 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
 | | ... | *Set UP state on VPP interfaces in path on all DUT nodes and set
 | | ... | maximal MTU.*
 | |
+| | ... | *Arguments:*
+| | ... | - validate - Validate interfaces are up.
+| | ... | Type: boolean
+| |
+| | [Arguments] | ${validate}=${True}
+| |
 | | FOR | ${dut} | IN | @{duts}
 | | | Set interfaces in path up on node | ${dut}
 | | END
-| | All VPP Interfaces Ready Wait | ${nodes} | retries=${60}
+| | Run Keyword If | ${validate}
+| | ... | All VPP Interfaces Ready Wait | ${nodes} | retries=${60}
 
 | Set interfaces in path up on node
 | | [Documentation]
 | |
 | | Run Keyword | Pre-initialize layer ${driver} on all DUTs
 
+| Pre-initialize layer tap on all DUTs
+| | [Documentation]
+| | ... | Pre-initialize tap driver. Currently no operation.
+| |
+| | No operation
+
+| Pre-initialize layer vhost on all DUTs
+| | [Documentation]
+| | ... | Pre-initialize vhost driver. Currently no operation.
+| |
+| | No operation
+
 | Pre-initialize layer vfio-pci on all DUTs
 | | [Documentation]
 | | ... | Pre-initialize vfio-pci driver by adding related sections to startup
 | | | ... | ${dut}.Add DPDK Dev Default TXD | ${nic_txq_size}
 | | | Run Keyword If | '${crypto_type}' != '${None}'
 | | | ... | ${dut}.Add DPDK Cryptodev | ${thr_count_int}
+| | | Run Keyword | ${dut}.Add DPDK Max Simd Bitwidth | ${GRAPH_NODE_VARIANT}
 | | END
 | | ${_vlan_strip} | ${value}= | Run Keyword And Ignore Error
 | | ... | Variable Should Exist | ${vlan_strip_off}
 | | ... | *Arguments:*
 | | ... | - driver - NIC driver used in test [vfio-pci|avf|rdma-core].
 | | ... | Type: string
+| | ... | - validate - Validate interfaces are up.
+| | ... | Type: boolean
 | |
 | | ... | *Example:*
 | |
 | | ... | \| Initialize layer driver \| vfio-pci \|
 | |
-| | [Arguments] | ${driver}
+| | [Arguments] | ${driver} | ${validate}=${True}
 | |
 | | FOR | ${dut} | IN | @{duts}
 | | | Initialize layer driver on node | ${dut} | ${driver}
 | | END
 | | Set Test Variable | ${int} | vf
-| | Set interfaces in path up
+| | Set interfaces in path up | validate=${validate}
 
 | Initialize layer driver on node
 | | [Documentation]
 | | | Run Keyword | Initialize layer ${driver} on node | ${dut} | ${pf}
 | | END
 
+| Initialize layer tap on node
+| | [Documentation]
+| | ... | Initialize tap interfaces on DUT.
+| |
+| | ... | *Arguments:*
+| | ... | - dut - DUT node.
+| | ... | Type: string
+| | ... | - pf - TAP ID (logical port).
+| | ... | Type: integer
+| |
+| | ... | *Example:*
+| |
+| | ... | \| Initialize layer tap on node \| DUT1 \| 0 \|
+| |
+| | [Arguments] | ${dut} | ${pf}
+| |
+| | Create Namespace
+| | ... | ${nodes['${dut}']} | tap${${pf}-1}_namespace
+| | ${tap_feature_mask}= | Create Tap feature mask | gso=${enable_gso}
+| | ${_tap}=
+| | ... | And Add Tap Interface | ${nodes['${dut}']} | tap${${pf}-1}
+| | ... | host_namespace=tap${${pf}-1}_namespace
+| | ... | num_rx_queues=${rxq_count_int}
+| | ... | rxq_size=${nic_rxq_size} | txq_size=${nic_txq_size}
+| | ... | tap_feature_mask=${tap_feature_mask}
+| | ${_mac}=
+| | ... | Get Interface MAC | ${nodes['${dut}']} | tap${pf}
+| | ${_tap}= | Create List | ${_tap}
+| | ${_mac}= | Create List | ${_mac}
+| | Vhost User Affinity
+| | ... | ${nodes['${dut}']} | ${${dut}_pf${pf}}[0]
+| | ... | skip_cnt=${${CPU_CNT_MAIN}+${CPU_CNT_SYSTEM}+${cpu_count_int}}
+| | Set Test Variable
+| | ... | ${${dut}_vf${pf}} | ${_tap}
+| | Set Test Variable
+| | ... | ${${dut}_vf${pf}_mac} | ${_mac}
+
+| Initialize layer vhost on node
+| | [Documentation]
+| | ... | Initialize vhost interfaces on DUT.
+| |
+| | ... | *Arguments:*
+| | ... | - dut - DUT node.
+| | ... | Type: string
+| | ... | - pf - VHOST ID (logical port).
+| | ... | Type: integer
+| |
+| | ... | *Example:*
+| |
+| | ... | \| Initialize layer vhost on node \| DUT1 \| 0 \|
+| |
+| | [Arguments] | ${dut} | ${pf}
+| |
+| | ${virtio_feature_mask}= | Create Virtio feature mask | gso=${enable_gso}
+| | ${vhost}= | Vpp Create Vhost User Interface
+| | ... | ${nodes['${dut}']} | /var/run/vpp/sock-${pf}-1
+| | ... | is_server=${True} | virtio_feature_mask=${virtio_feature_mask}
+| | ${_mac}=
+| | ... | Get Interface MAC | ${nodes['${dut}']} | vhost${pf}
+| | ${_vhost}= | Create List | ${_vhost}
+| | ${_mac}= | Create List | ${_mac}
+| | Set Test Variable
+| | ... | ${${dut}_vf${pf}} | ${_vhost}
+| | Set Test Variable
+| | ... | ${${dut}_vf${pf}_mac} | ${_mac}
+
 | Initialize layer vfio-pci on node
 | | [Documentation]
 | | ... | Initialize vfio-pci interfaces on DUT on NIC PF.
 | | ... | ${nodes['${dut}']} | ${bond_mode} | load_balance=${lb_mode}
 | | ... | mac=00:00:00:01:01:01
 | | Set Interface State | ${nodes['${dut}']} | ${if_index} | up
-| | VPP Enslave Physical Interface
+| | VPP Add Bond Member
 | | ... | ${nodes['${dut}']} | ${${dut}_${int}1_1} | ${if_index}
-| | VPP Enslave Physical Interface
+| | VPP Add Bond Member
 | | ... | ${nodes['${dut}']} | ${${dut}_${int}2_1} | ${if_index}
 | | FOR | ${id} | IN RANGE | 1 | ${count} + 1
 | | | Set Test Variable | ${${dut}_bond1_${id}} | ${if_index}
 | | ... | Type: string
 | | ... | - ${is_server} - Server side of connection (Optional).
 | | ... | Type: boolean
-| | ... | - ${enable_gso} - Generic segmentation offloading (Optional).
-| | ... | Type: boolean
+| | ... | - ${virtio_feature_mask} - Enabled Virtio feature flags (Optional).
+| | ... | Type: integer
 | |
 | | ... | _NOTE:_ This KW sets following test case variable:
 | | ... | - ${${vhost_if1}} - First Vhost-User interface.
 | |
 | | [Arguments] | ${dut_node} | ${sock1} | ${sock2} | ${vhost_if1}=vhost_if1
 | | ... | ${vhost_if2}=vhost_if2 | ${is_server}=${False}
-| | ... | ${enable_gso}=${False}
+| | ... | ${virtio_feature_mask}=${None}
 | |
 | | ${vhost_1}= | Vpp Create Vhost User Interface
 | | ... | ${dut_node} | ${sock1} | is_server=${is_server}
-| | ... | enable_gso=${enable_gso}
+| | ... | virtio_feature_mask=${virtio_feature_mask}
 | | ${vhost_2}= | Vpp Create Vhost User Interface
 | | ... | ${dut_node} | ${sock2} | is_server=${is_server}
-| | ... | enable_gso=${enable_gso}
+| | ... | virtio_feature_mask=${virtio_feature_mask}
 | | ${vhost_1_key}= | Get Interface By SW Index | ${dut_node} | ${vhost_1}
 | | ${vhost_2_key}= | Get Interface By SW Index | ${dut_node} | ${vhost_2}
 | | ${vhost_1_mac}= | Get Interface MAC | ${dut_node} | ${vhost_1_key}