net/mlx5: add free on completion queue
[dpdk.git] / drivers / net / fm10k / fm10k_ethdev.c
index dc8bc75..581c690 100644 (file)
 int fm10k_logtype_init;
 int fm10k_logtype_driver;
 
+#ifdef RTE_LIBRTE_FM10K_DEBUG_RX
+int fm10k_logtype_rx;
+#endif
+#ifdef RTE_LIBRTE_FM10K_DEBUG_TX
+int fm10k_logtype_tx;
+#endif
+#ifdef RTE_LIBRTE_FM10K_DEBUG_TX_FREE
+int fm10k_logtype_tx_free;
+#endif
+
 static void fm10k_close_mbx_service(struct fm10k_hw *hw);
 static int fm10k_dev_promiscuous_enable(struct rte_eth_dev *dev);
 static int fm10k_dev_promiscuous_disable(struct rte_eth_dev *dev);
@@ -451,6 +461,9 @@ fm10k_dev_configure(struct rte_eth_dev *dev)
 
        PMD_INIT_FUNC_TRACE();
 
+       if (dev->data->dev_conf.rxmode.mq_mode & ETH_MQ_RX_RSS_FLAG)
+               dev->data->dev_conf.rxmode.offloads |= DEV_RX_OFFLOAD_RSS_HASH;
+
        /* multipe queue mode checking */
        ret  = fm10k_check_mq_mode(dev);
        if (ret != 0) {
@@ -1795,7 +1808,8 @@ static uint64_t fm10k_get_rx_port_offloads_capa(struct rte_eth_dev *dev)
                           DEV_RX_OFFLOAD_UDP_CKSUM   |
                           DEV_RX_OFFLOAD_TCP_CKSUM   |
                           DEV_RX_OFFLOAD_JUMBO_FRAME |
-                          DEV_RX_OFFLOAD_HEADER_SPLIT);
+                          DEV_RX_OFFLOAD_HEADER_SPLIT |
+                          DEV_RX_OFFLOAD_RSS_HASH);
 }
 
 static int
@@ -3196,19 +3210,19 @@ eth_fm10k_dev_init(struct rte_eth_dev *dev)
 
        /* Make sure Switch Manager is ready before going forward. */
        if (hw->mac.type == fm10k_mac_pf) {
-               int switch_ready = 0;
+               bool switch_ready = false;
 
                for (i = 0; i < MAX_QUERY_SWITCH_STATE_TIMES; i++) {
                        fm10k_mbx_lock(hw);
                        hw->mac.ops.get_host_state(hw, &switch_ready);
                        fm10k_mbx_unlock(hw);
-                       if (switch_ready)
+                       if (switch_ready == true)
                                break;
                        /* Delay some time to acquire async LPORT_MAP info. */
                        rte_delay_us(WAIT_SWITCH_MSG_US);
                }
 
-               if (switch_ready == 0) {
+               if (switch_ready == false) {
                        PMD_INIT_LOG(ERR, "switch is not ready");
                        return -1;
                }
@@ -3313,4 +3327,22 @@ RTE_INIT(fm10k_init_log)
        fm10k_logtype_driver = rte_log_register("pmd.net.fm10k.driver");
        if (fm10k_logtype_driver >= 0)
                rte_log_set_level(fm10k_logtype_driver, RTE_LOG_NOTICE);
+
+#ifdef RTE_LIBRTE_FM10K_DEBUG_RX
+       fm10k_logtype_rx = rte_log_register("pmd.net.fm10k.rx");
+       if (fm10k_logtype_rx >= 0)
+               rte_log_set_level(fm10k_logtype_rx, RTE_LOG_DEBUG);
+#endif
+
+#ifdef RTE_LIBRTE_FM10K_DEBUG_TX
+       fm10k_logtype_tx = rte_log_register("pmd.net.fm10k.tx");
+       if (fm10k_logtype_tx >= 0)
+               rte_log_set_level(fm10k_logtype_tx, RTE_LOG_DEBUG);
+#endif
+
+#ifdef RTE_LIBRTE_FM10K_DEBUG_TX_FREE
+       fm10k_logtype_tx_free = rte_log_register("pmd.net.fm10k.tx_free");
+       if (fm10k_logtype_tx_free >= 0)
+               rte_log_set_level(fm10k_logtype_tx_free, RTE_LOG_DEBUG);
+#endif
 }