[dpdk-dev] [PATCH v2 2/2] net/dpaa2: non supported offloads are ignored with warning

Sunil Kumar Kori sunil.kori at nxp.com
Mon Apr 23 14:33:37 CEST 2018


Fixes: 0ebce6129bc6 ("net/dpaa2: support new ethdev offload APIs")
Cc: shreyansh.jain at nxp.com

Signed-off-by: Sunil Kumar Kori <sunil.kori at nxp.com>
---
 drivers/net/dpaa2/dpaa2_ethdev.c | 37 +++++++++++++++++++++++++++++--------
 1 file changed, 29 insertions(+), 8 deletions(-)

diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c
index 54ab9eb..a47c723 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.c
+++ b/drivers/net/dpaa2/dpaa2_ethdev.c
@@ -27,6 +27,25 @@
 #include "dpaa2_ethdev.h"
 #include <fsl_qbman_debug.h>
 
+/* Non-Supported Rx offloads */
+static uint64_t dev_rx_offloads_not_supported =
+		DEV_RX_OFFLOAD_TCP_LRO |
+		DEV_RX_OFFLOAD_MACSEC_STRIP |
+		DEV_RX_OFFLOAD_HEADER_SPLIT |
+		DEV_RX_OFFLOAD_VLAN_EXTEND |
+		DEV_RX_OFFLOAD_SECURITY;
+
+/* Non-Supported Tx offloads */
+static uint64_t dev_tx_offloads_not_supported =
+		DEV_TX_OFFLOAD_TCP_TSO |
+		DEV_TX_OFFLOAD_UDP_TSO |
+		DEV_TX_OFFLOAD_VXLAN_TNL_TSO |
+		DEV_TX_OFFLOAD_GRE_TNL_TSO |
+		DEV_TX_OFFLOAD_IPIP_TNL_TSO |
+		DEV_TX_OFFLOAD_GENEVE_TNL_TSO |
+		DEV_TX_OFFLOAD_MACSEC_INSERT |
+		DEV_TX_OFFLOAD_SECURITY;
+
 struct rte_dpaa2_xstats_name_off {
 	char name[RTE_ETH_XSTATS_NAME_SIZE];
 	uint8_t page_id; /* dpni statistics page id */
@@ -289,18 +308,20 @@ dpaa2_eth_dev_configure(struct rte_eth_dev *dev)
 	PMD_INIT_FUNC_TRACE();
 
 	dpaa2_dev_info_get(dev, &dev_info);
-	if ((~(dev_info.rx_offload_capa) & rx_offloads) != 0) {
-		DPAA2_PMD_ERR("Some Rx offloads are not supported "
-			"requested 0x%" PRIx64 " supported 0x%" PRIx64,
+	/* Rx offloads validation */
+	if (dev_rx_offloads_not_supported & rx_offloads) {
+		DPAA2_PMD_ERR(
+		"Rx offloads not supported - Requested 0x%" PRIx64 " supported 0x%" PRIx64,
 			rx_offloads, dev_info.rx_offload_capa);
-		return -ENOTSUP;
+			return -ENOTSUP;
 	}
 
-	if ((~(dev_info.tx_offload_capa) & tx_offloads) != 0) {
-		DPAA2_PMD_ERR("Some Tx offloads are not supported "
-			"requested 0x%" PRIx64 " supported 0x%" PRIx64,
+	/* Tx offloads validation */
+	if (dev_tx_offloads_not_supported & tx_offloads) {
+		DPAA2_PMD_ERR(
+		"Tx offloads not supported - Requested 0x%" PRIx64 " Supported 0x%" PRIx64,
 			tx_offloads, dev_info.tx_offload_capa);
-		return -ENOTSUP;
+			return -ENOTSUP;
 	}
 
 	if (rx_offloads & DEV_RX_OFFLOAD_JUMBO_FRAME) {
-- 
2.9.3



More information about the dev mailing list