On 03/28/2018 03:15 AM, Rasesh Mody wrote:
From: Harish Patil <harish.pa...@cavium.com>

Ethdev RX/TX offloads API has changed since:
commit ce17eddefc20 ("ethdev: introduce Rx queue offloads API")
commit cba7f53b717d ("ethdev: introduce Tx queue offloads API")

This patch makes use of new offload flags as suggested and fix
the default RX/TX configuration. Also indent the code properly
around those changes.

Signed-off-by: Harish Patil <harish.pa...@cavium.com>
Signed-off-by: Rasesh Mody <rasesh.m...@cavium.com>
---
  drivers/net/qede/qede_ethdev.c |  103 ++++++++++++++++++++++------------------
  drivers/net/qede/qede_rxtx.c   |    2 +-
  drivers/net/qede/qede_rxtx.h   |    2 -
  3 files changed, 59 insertions(+), 48 deletions(-)

diff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c
index a91f436..6a51e3d 100644
--- a/drivers/net/qede/qede_ethdev.c
+++ b/drivers/net/qede/qede_ethdev.c

[...]

@@ -1534,26 +1527,46 @@ static int qede_dev_configure(struct rte_eth_dev 
*eth_dev)
        dev_info->reta_size = ECORE_RSS_IND_TABLE_SIZE;
        dev_info->hash_key_size = ECORE_RSS_KEY_SIZE * sizeof(uint32_t);
        dev_info->flow_type_rss_offloads = (uint64_t)QEDE_RSS_OFFLOAD_ALL;
-
-       dev_info->default_txconf = (struct rte_eth_txconf) {
-               .txq_flags = QEDE_TXQ_FLAGS,
-       };
-
-       dev_info->rx_offload_capa = (DEV_RX_OFFLOAD_VLAN_STRIP       |
-                                    DEV_RX_OFFLOAD_IPV4_CKSUM  |
+       dev_info->rx_offload_capa = (DEV_RX_OFFLOAD_IPV4_CKSUM       |
                                     DEV_RX_OFFLOAD_UDP_CKSUM   |
                                     DEV_RX_OFFLOAD_TCP_CKSUM   |
                                     DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM |
-                                    DEV_RX_OFFLOAD_TCP_LRO);
-
+                                    DEV_RX_OFFLOAD_TCP_LRO     |
+                                    DEV_RX_OFFLOAD_CRC_STRIP   |
+                                    DEV_RX_OFFLOAD_SCATTER     |
+                                    DEV_RX_OFFLOAD_JUMBO_FRAME |
+                                    DEV_RX_OFFLOAD_VLAN_FILTER |
+                                    DEV_RX_OFFLOAD_VLAN_STRIP);
+       dev_info->rx_queue_offload_capa = 0;
+
+       /* TX offloads are on a per-packet basis, so it is applicable
+        * to both at port and queue levels.
+        */
        dev_info->tx_offload_capa = (DEV_TX_OFFLOAD_VLAN_INSERT      |
                                     DEV_TX_OFFLOAD_IPV4_CKSUM  |
                                     DEV_TX_OFFLOAD_UDP_CKSUM   |
                                     DEV_TX_OFFLOAD_TCP_CKSUM   |
                                     DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM |
-                                    DEV_TX_OFFLOAD_TCP_TSO |
+                                    DEV_TX_OFFLOAD_QINQ_INSERT |
+                                    DEV_TX_OFFLOAD_MULTI_SEGS  |
+                                    DEV_TX_OFFLOAD_TCP_TSO     |
                                     DEV_TX_OFFLOAD_VXLAN_TNL_TSO |
                                     DEV_TX_OFFLOAD_GENEVE_TNL_TSO);
+       dev_info->tx_queue_offload_capa = dev_info->tx_offload_capa;
+
+       dev_info->default_txconf = (struct rte_eth_txconf) {
+               .txq_flags = DEV_TX_OFFLOAD_MULTI_SEGS,

It is incorrect to initialize TxQ flags using Tx offload define.

+       };
+
+       dev_info->default_rxconf = (struct rte_eth_rxconf) {
+               /* Packets are always dropped if no descriptors are available */
+               .rx_drop_en = 1,
+               /* The below RX offloads are always enabled */
+               .offloads = (DEV_RX_OFFLOAD_CRC_STRIP  |
+                            DEV_RX_OFFLOAD_IPV4_CKSUM |
+                            DEV_RX_OFFLOAD_TCP_CKSUM  |
+                            DEV_RX_OFFLOAD_UDP_CKSUM),
+       };
memset(&link, 0, sizeof(struct qed_link_output));
        qdev->ops->common->get_link(edev, &link);

Reply via email to