net/sfc: fix Rx queue offloads reporting in queue info
[dpdk.git] / drivers / net / sfc / sfc_ethdev.c
index c3f37bc..36a8077 100644 (file)
@@ -13,6 +13,7 @@
 #include <rte_pci.h>
 #include <rte_bus_pci.h>
 #include <rte_errno.h>
+#include <rte_string_fns.h>
 
 #include "efx.h"
 
@@ -84,7 +85,6 @@ static void
 sfc_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 {
        struct sfc_adapter *sa = dev->data->dev_private;
-       const efx_nic_cfg_t *encp = efx_nic_cfg_get(sa->nic);
        struct sfc_rss *rss = &sa->rss;
        uint64_t txq_offloads_def = 0;
 
@@ -138,20 +138,6 @@ sfc_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 
        dev_info->default_txconf.offloads |= txq_offloads_def;
 
-       dev_info->default_txconf.txq_flags = ETH_TXQ_FLAGS_NOXSUMSCTP;
-       if ((~sa->dp_tx->features & SFC_DP_TX_FEAT_VLAN_INSERT) ||
-           !encp->enc_hw_tx_insert_vlan_enabled)
-               dev_info->default_txconf.txq_flags |= ETH_TXQ_FLAGS_NOVLANOFFL;
-
-       if (~sa->dp_tx->features & SFC_DP_TX_FEAT_MULTI_SEG)
-               dev_info->default_txconf.txq_flags |= ETH_TXQ_FLAGS_NOMULTSEGS;
-
-       if (~sa->dp_tx->features & SFC_DP_TX_FEAT_MULTI_POOL)
-               dev_info->default_txconf.txq_flags |= ETH_TXQ_FLAGS_NOMULTMEMP;
-
-       if (~sa->dp_tx->features & SFC_DP_TX_FEAT_REFCNT)
-               dev_info->default_txconf.txq_flags |= ETH_TXQ_FLAGS_NOREFCOUNT;
-
        if (rss->context_type != EFX_RX_SCALE_UNAVAILABLE) {
                uint64_t rte_hf = 0;
                unsigned int i;
@@ -663,7 +649,7 @@ sfc_xstats_get_names(struct rte_eth_dev *dev,
        for (i = 0; i < EFX_MAC_NSTATS; ++i) {
                if (EFX_MAC_STAT_SUPPORTED(port->mac_stats_mask, i)) {
                        if (xstats_names != NULL && nstats < xstats_count)
-                               strncpy(xstats_names[nstats].name,
+                               strlcpy(xstats_names[nstats].name,
                                        efx_mac_stat_name(sa->nic, i),
                                        sizeof(xstats_names[0].name));
                        nstats++;
@@ -741,9 +727,8 @@ sfc_xstats_get_names_by_id(struct rte_eth_dev *dev,
                if ((ids == NULL) || (ids[nb_written] == nb_supported)) {
                        char *name = xstats_names[nb_written++].name;
 
-                       strncpy(name, efx_mac_stat_name(sa->nic, i),
+                       strlcpy(name, efx_mac_stat_name(sa->nic, i),
                                sizeof(xstats_names[0].name));
-                       name[sizeof(xstats_names[0].name) - 1] = '\0';
                }
 
                ++nb_supported;
@@ -889,14 +874,12 @@ sfc_dev_set_mtu(struct rte_eth_dev *dev, uint16_t mtu)
        }
 
        /*
-        * The driver does not use it, but other PMDs update jumbo_frame
+        * The driver does not use it, but other PMDs update jumbo frame
         * flag and max_rx_pkt_len when MTU is set.
         */
        if (mtu > ETHER_MAX_LEN) {
                struct rte_eth_rxmode *rxmode = &dev->data->dev_conf.rxmode;
-
                rxmode->offloads |= DEV_RX_OFFLOAD_JUMBO_FRAME;
-               rxmode->jumbo_frame = 1;
        }
 
        dev->data->dev_conf.rxmode.max_rx_pkt_len = sa->port.pdu;
@@ -1072,9 +1055,7 @@ sfc_rx_queue_info_get(struct rte_eth_dev *dev, uint16_t rx_queue_id,
        qinfo->conf.rx_free_thresh = rxq->refill_threshold;
        qinfo->conf.rx_drop_en = 1;
        qinfo->conf.rx_deferred_start = rxq_info->deferred_start;
-       qinfo->conf.offloads = DEV_RX_OFFLOAD_IPV4_CKSUM |
-                              DEV_RX_OFFLOAD_UDP_CKSUM |
-                              DEV_RX_OFFLOAD_TCP_CKSUM;
+       qinfo->conf.offloads = dev->data->dev_conf.rxmode.offloads;
        if (rxq_info->type_flags & EFX_RXQ_FLAG_SCATTER) {
                qinfo->conf.offloads |= DEV_RX_OFFLOAD_SCATTER;
                qinfo->scattered_rx = 1;
@@ -1104,7 +1085,6 @@ sfc_tx_queue_info_get(struct rte_eth_dev *dev, uint16_t tx_queue_id,
 
        memset(qinfo, 0, sizeof(*qinfo));
 
-       qinfo->conf.txq_flags = txq_info->txq->flags;
        qinfo->conf.offloads = txq_info->txq->offloads;
        qinfo->conf.tx_free_thresh = txq_info->txq->free_thresh;
        qinfo->conf.tx_deferred_start = txq_info->deferred_start;
@@ -2109,11 +2089,10 @@ RTE_PMD_REGISTER_PARAM_STRING(net_sfc_efx,
        SFC_KVARG_TX_DATAPATH "=" SFC_KVARG_VALUES_TX_DATAPATH " "
        SFC_KVARG_PERF_PROFILE "=" SFC_KVARG_VALUES_PERF_PROFILE " "
        SFC_KVARG_FW_VARIANT "=" SFC_KVARG_VALUES_FW_VARIANT " "
+       SFC_KVARG_RXD_WAIT_TIMEOUT_NS "=<long> "
        SFC_KVARG_STATS_UPDATE_PERIOD_MS "=<long>");
 
-RTE_INIT(sfc_driver_register_logtype);
-static void
-sfc_driver_register_logtype(void)
+RTE_INIT(sfc_driver_register_logtype)
 {
        int ret;