/* SPDX-License-Identifier: BSD-3-Clause
*
- * Copyright (c) 2016-2018 Solarflare Communications Inc.
- * All rights reserved.
+ * Copyright(c) 2019-2020 Xilinx, Inc.
+ * Copyright(c) 2016-2019 Solarflare Communications Inc.
*
* This software was jointly developed between OKTET Labs (under contract
* for Solarflare) and Solarflare Communications, Inc.
struct sfc_dp dp;
unsigned int features;
-#define SFC_DP_TX_FEAT_VLAN_INSERT 0x1
-#define SFC_DP_TX_FEAT_TSO 0x2
-#define SFC_DP_TX_FEAT_MULTI_SEG 0x4
-#define SFC_DP_TX_FEAT_MULTI_PROCESS 0x8
-#define SFC_DP_TX_FEAT_MULTI_POOL 0x10
-#define SFC_DP_TX_FEAT_REFCNT 0x20
-#define SFC_DP_TX_FEAT_TSO_ENCAP 0x40
+#define SFC_DP_TX_FEAT_MULTI_PROCESS 0x1
+ /**
+ * Tx offload capabilities supported by the datapath on device
+ * level only if HW/FW supports it.
+ */
+ uint64_t dev_offload_capa;
+ /**
+ * Tx offload capabilities supported by the datapath per-queue
+ * if HW/FW supports it.
+ */
+ uint64_t queue_offload_capa;
sfc_dp_tx_get_dev_info_t *get_dev_info;
sfc_dp_tx_qsize_up_rings_t *qsize_up_rings;
sfc_dp_tx_qcreate_t *qcreate;
/** Get Tx datapath ops by the datapath TxQ handle */
const struct sfc_dp_tx *sfc_dp_tx_by_dp_txq(const struct sfc_dp_txq *dp_txq);
+static inline uint64_t
+sfc_dp_tx_offload_capa(const struct sfc_dp_tx *dp_tx)
+{
+ return dp_tx->dev_offload_capa | dp_tx->queue_offload_capa;
+}
+
static inline int
sfc_dp_tx_prepare_pkt(struct rte_mbuf *m,
uint32_t tso_tcp_header_offset_limit,