ethdev: add return value to stats get dev op
[dpdk.git] / drivers / net / dpaa2 / dpaa2_ethdev.c
index 7b09a87..1ac607c 100644 (file)
@@ -182,6 +182,12 @@ dpaa2_vlan_offload_set(struct rte_eth_dev *dev, int mask)
                        RTE_LOG(ERR, PMD, "Unable to set vlan filter = %d\n",
                                ret);
        }
+
+       if (mask & ETH_VLAN_EXTEND_MASK) {
+               if (dev->data->dev_conf.rxmode.hw_vlan_extend)
+                       RTE_LOG(INFO, PMD,
+                               "VLAN extend offload not supported\n");
+       }
 }
 
 static int
@@ -328,8 +334,10 @@ fail:
 static int
 dpaa2_eth_dev_configure(struct rte_eth_dev *dev)
 {
-       struct rte_eth_dev_data *data = dev->data;
-       struct rte_eth_conf *eth_conf = &data->dev_conf;
+       struct dpaa2_dev_priv *priv = dev->data->dev_private;
+       struct fsl_mc_io *dpni = priv->hw;
+       struct rte_eth_conf *eth_conf = &dev->data->dev_conf;
+       int rx_ip_csum_offload = false;
        int ret;
 
        PMD_INIT_FUNC_TRACE();
@@ -358,6 +366,37 @@ dpaa2_eth_dev_configure(struct rte_eth_dev *dev)
                }
        }
 
+       if (eth_conf->rxmode.hw_ip_checksum)
+               rx_ip_csum_offload = true;
+
+       ret = dpni_set_offload(dpni, CMD_PRI_LOW, priv->token,
+                              DPNI_OFF_RX_L3_CSUM, rx_ip_csum_offload);
+       if (ret) {
+               PMD_INIT_LOG(ERR, "Error to set RX l3 csum:Error = %d\n", ret);
+               return ret;
+       }
+
+       ret = dpni_set_offload(dpni, CMD_PRI_LOW, priv->token,
+                              DPNI_OFF_RX_L4_CSUM, rx_ip_csum_offload);
+       if (ret) {
+               PMD_INIT_LOG(ERR, "Error to get RX l4 csum:Error = %d\n", ret);
+               return ret;
+       }
+
+       ret = dpni_set_offload(dpni, CMD_PRI_LOW, priv->token,
+                              DPNI_OFF_TX_L3_CSUM, true);
+       if (ret) {
+               PMD_INIT_LOG(ERR, "Error to set TX l3 csum:Error = %d\n", ret);
+               return ret;
+       }
+
+       ret = dpni_set_offload(dpni, CMD_PRI_LOW, priv->token,
+                              DPNI_OFF_TX_L4_CSUM, true);
+       if (ret) {
+               PMD_INIT_LOG(ERR, "Error to get TX l4 csum:Error = %d\n", ret);
+               return ret;
+       }
+
        /* update the current status */
        dpaa2_dev_link_update(dev, 0);
 
@@ -387,8 +426,8 @@ dpaa2_dev_rx_queue_setup(struct rte_eth_dev *dev,
 
        PMD_INIT_FUNC_TRACE();
 
-       PMD_INIT_LOG(DEBUG, "dev =%p, queue =%d, pool = %p, conf =%p",
-                    dev, rx_queue_id, mb_pool, rx_conf);
+       PMD_DRV_LOG(DEBUG, "dev =%p, queue =%d, pool = %p, conf =%p",
+                   dev, rx_queue_id, mb_pool, rx_conf);
 
        if (!priv->bp_list || priv->bp_list->mp != mb_pool) {
                bpid = mempool_to_bpid(mb_pool);
@@ -437,8 +476,8 @@ dpaa2_dev_rx_queue_setup(struct rte_eth_dev *dev,
                taildrop.threshold = CONG_THRESHOLD_RX_Q;
                taildrop.units = DPNI_CONGESTION_UNIT_BYTES;
                taildrop.oal = CONG_RX_OAL;
-               PMD_INIT_LOG(DEBUG, "Enabling Early Drop on queue = %d",
-                            rx_queue_id);
+               PMD_DRV_LOG(DEBUG, "Enabling Early Drop on queue = %d",
+                           rx_queue_id);
                ret = dpni_set_taildrop(dpni, CMD_PRI_LOW, priv->token,
                                        DPNI_CP_QUEUE, DPNI_QUEUE_RX,
                                        dpaa2_q->tc_index, flow_id, &taildrop);
@@ -701,34 +740,6 @@ dpaa2_dev_start(struct rte_eth_dev *dev)
                dpaa2_q->fqid = qid.fqid;
        }
 
-       ret = dpni_set_offload(dpni, CMD_PRI_LOW, priv->token,
-                              DPNI_OFF_RX_L3_CSUM, true);
-       if (ret) {
-               PMD_INIT_LOG(ERR, "Error to set RX l3 csum:Error = %d\n", ret);
-               return ret;
-       }
-
-       ret = dpni_set_offload(dpni, CMD_PRI_LOW, priv->token,
-                              DPNI_OFF_RX_L4_CSUM, true);
-       if (ret) {
-               PMD_INIT_LOG(ERR, "Error to get RX l4 csum:Error = %d\n", ret);
-               return ret;
-       }
-
-       ret = dpni_set_offload(dpni, CMD_PRI_LOW, priv->token,
-                              DPNI_OFF_TX_L3_CSUM, true);
-       if (ret) {
-               PMD_INIT_LOG(ERR, "Error to set TX l3 csum:Error = %d\n", ret);
-               return ret;
-       }
-
-       ret = dpni_set_offload(dpni, CMD_PRI_LOW, priv->token,
-                              DPNI_OFF_TX_L4_CSUM, true);
-       if (ret) {
-               PMD_INIT_LOG(ERR, "Error to get TX l4 csum:Error = %d\n", ret);
-               return ret;
-       }
-
        /*checksum errors, send them to normal path and set it in annotation */
        err_cfg.errors = DPNI_ERROR_L3CE | DPNI_ERROR_L4CE;
 
@@ -972,7 +983,7 @@ dpaa2_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)
                PMD_DRV_LOG(ERR, "setting the max frame length failed");
                return -1;
        }
-       PMD_DRV_LOG(INFO, "MTU is configured %d for the device\n", mtu);
+       PMD_DRV_LOG(INFO, "MTU is configured %d for the device", mtu);
        return 0;
 }
 
@@ -1050,7 +1061,7 @@ dpaa2_dev_set_mac_addr(struct rte_eth_dev *dev,
                        "error: Setting the MAC ADDR failed %d\n", ret);
 }
 static
-void dpaa2_dev_stats_get(struct rte_eth_dev *dev,
+int dpaa2_dev_stats_get(struct rte_eth_dev *dev,
                         struct rte_eth_stats *stats)
 {
        struct dpaa2_dev_priv *priv = dev->data->dev_private;
@@ -1065,12 +1076,12 @@ void dpaa2_dev_stats_get(struct rte_eth_dev *dev,
 
        if (!dpni) {
                RTE_LOG(ERR, PMD, "dpni is NULL\n");
-               return;
+               return -EINVAL;
        }
 
        if (!stats) {
                RTE_LOG(ERR, PMD, "stats is NULL\n");
-               return;
+               return -EINVAL;
        }
 
        /*Get Counters from page_0*/
@@ -1105,11 +1116,11 @@ void dpaa2_dev_stats_get(struct rte_eth_dev *dev,
        stats->oerrors = value.page_2.egress_discarded_frames;
        stats->imissed = value.page_2.ingress_nobuffer_discards;
 
-       return;
+       return 0;
 
 err:
        RTE_LOG(ERR, PMD, "Operation not completed:Error Code = %d\n", retcode);
-       return;
+       return retcode;
 };
 
 static int
@@ -1727,7 +1738,7 @@ dpaa2_dev_init(struct rte_eth_dev *eth_dev)
        priv->nb_tx_queues = attr.num_tx_tcs;
 
        PMD_DRV_LOG(DEBUG, "RX-TC= %d, nb_rx_queues= %d, nb_tx_queues=%d",
-                   priv->num_tc, priv->nb_rx_queues, priv->nb_tx_queues);
+                   priv->num_rx_tc, priv->nb_rx_queues, priv->nb_tx_queues);
 
        priv->hw = dpni_dev;
        priv->hw_id = hw_id;
@@ -1794,6 +1805,7 @@ dpaa2_dev_init(struct rte_eth_dev *eth_dev)
        eth_dev->tx_pkt_burst = dpaa2_dev_tx;
        rte_fslmc_vfio_dmamap();
 
+       RTE_LOG(INFO, PMD, "%s: netdev created\n", eth_dev->data->name);
        return 0;
 init_err:
        dpaa2_dev_uninit(eth_dev);
@@ -1854,6 +1866,7 @@ dpaa2_dev_uninit(struct rte_eth_dev *eth_dev)
        eth_dev->rx_pkt_burst = NULL;
        eth_dev->tx_pkt_burst = NULL;
 
+       RTE_LOG(INFO, PMD, "%s: netdev created\n", eth_dev->data->name);
        return 0;
 }