[v2] net/cpfl: fix datapath function configuration
Checks
Commit Message
Vector datapath is not support any advanced features for now, so disable
vector path if TX checksum offload or RX scatter is enabled.
Fixes: 2f39845891e6 ("net/cpfl: add AVX512 data path for single queue model")
Signed-off-by: Wenjun Wu <wenjun1.wu@intel.com>
---
v2: disable vector path for scatter cases.
---
drivers/net/cpfl/cpfl_rxtx_vec_common.h | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
@@ -25,7 +25,11 @@
RTE_ETH_RX_OFFLOAD_TIMESTAMP)
#define CPFL_TX_NO_VECTOR_FLAGS ( \
RTE_ETH_TX_OFFLOAD_TCP_TSO | \
- RTE_ETH_TX_OFFLOAD_MULTI_SEGS)
+ RTE_ETH_TX_OFFLOAD_MULTI_SEGS | \
+ RTE_ETH_TX_OFFLOAD_IPV4_CKSUM | \
+ RTE_ETH_TX_OFFLOAD_SCTP_CKSUM | \
+ RTE_ETH_TX_OFFLOAD_UDP_CKSUM | \
+ RTE_ETH_TX_OFFLOAD_TCP_CKSUM)
static inline int
cpfl_rx_vec_queue_default(struct idpf_rx_queue *rxq)
@@ -81,6 +85,9 @@ cpfl_rx_vec_dev_check_default(struct rte_eth_dev *dev)
struct cpfl_rx_queue *cpfl_rxq;
int i, default_ret, splitq_ret, ret = CPFL_SCALAR_PATH;
+ if (dev->data->scattered_rx)
+ return CPFL_SCALAR_PATH;
+
for (i = 0; i < dev->data->nb_rx_queues; i++) {
cpfl_rxq = dev->data->rx_queues[i];
default_ret = cpfl_rx_vec_queue_default(&cpfl_rxq->base);