net: add macro for MAC address print
[dpdk.git] / drivers / net / thunderx / nicvf_ethdev.c
index 959c8e4..561a98f 100644 (file)
@@ -23,8 +23,8 @@
 #include <rte_dev.h>
 #include <rte_eal.h>
 #include <rte_ether.h>
-#include <rte_ethdev_driver.h>
-#include <rte_ethdev_pci.h>
+#include <ethdev_driver.h>
+#include <ethdev_pci.h>
 #include <rte_interrupts.h>
 #include <rte_log.h>
 #include <rte_memory.h>
 #include "nicvf_svf.h"
 #include "nicvf_logs.h"
 
-static void nicvf_dev_stop(struct rte_eth_dev *dev);
+static int nicvf_dev_stop(struct rte_eth_dev *dev);
 static void nicvf_dev_stop_cleanup(struct rte_eth_dev *dev, bool cleanup);
 static void nicvf_vf_stop(struct rte_eth_dev *dev, struct nicvf *nic,
                          bool cleanup);
 static int nicvf_vlan_offload_config(struct rte_eth_dev *dev, int mask);
 static int nicvf_vlan_offload_set(struct rte_eth_dev *dev, int mask);
 
-RTE_LOG_REGISTER(nicvf_logtype_mbox, pmd.net.thunderx.mbox, NOTICE);
-RTE_LOG_REGISTER(nicvf_logtype_init, pmd.net.thunderx.init, NOTICE);
-RTE_LOG_REGISTER(nicvf_logtype_driver, pmd.net.thunderx.driver, NOTICE);
+RTE_LOG_REGISTER_SUFFIX(nicvf_logtype_mbox, mbox, NOTICE);
+RTE_LOG_REGISTER_SUFFIX(nicvf_logtype_init, init, NOTICE);
+RTE_LOG_REGISTER_SUFFIX(nicvf_logtype_driver, driver, NOTICE);
 
 static void
 nicvf_link_status_update(struct nicvf *nic,
@@ -83,9 +83,9 @@ nicvf_interrupt(void *arg)
                        nicvf_link_status_update(nic, &link);
                        rte_eth_linkstatus_set(dev, &link);
 
-                       _rte_eth_dev_callback_process(dev,
-                                                     RTE_ETH_EVENT_INTR_LSC,
-                                                     NULL);
+                       rte_eth_dev_callback_process(dev,
+                                                    RTE_ETH_EVENT_INTR_LSC,
+                                                    NULL);
                }
        }
 
@@ -176,7 +176,7 @@ nicvf_dev_set_mtu(struct rte_eth_dev *dev, uint16_t mtu)
                (frame_size + 2 * VLAN_TAG_SIZE > buffsz * NIC_HW_MAX_SEGS))
                return -EINVAL;
 
-       if (frame_size > RTE_ETHER_MAX_LEN)
+       if (frame_size > NIC_HW_L2_MAX_LEN)
                rxmode->offloads |= DEV_RX_OFFLOAD_JUMBO_FRAME;
        else
                rxmode->offloads &= ~DEV_RX_OFFLOAD_JUMBO_FRAME;
@@ -638,6 +638,7 @@ nicvf_qset_rbdr_alloc(struct rte_eth_dev *dev, struct nicvf *nic,
                                      NICVF_RBDR_BASE_ALIGN_BYTES, nic->node);
        if (rz == NULL) {
                PMD_INIT_LOG(ERR, "Failed to allocate mem for rbdr desc ring");
+               rte_free(rbdr);
                return -ENOMEM;
        }
 
@@ -1766,6 +1767,7 @@ nicvf_dev_stop_cleanup(struct rte_eth_dev *dev, bool cleanup)
        struct nicvf *nic = nicvf_pmd_priv(dev);
 
        PMD_INIT_FUNC_TRACE();
+       dev->data->dev_started = 0;
 
        /* Teardown secondary vf first */
        for (i = 0; i < nic->sqs_count; i++) {
@@ -1789,12 +1791,14 @@ nicvf_dev_stop_cleanup(struct rte_eth_dev *dev, bool cleanup)
                PMD_INIT_LOG(ERR, "Failed to reclaim CPI config %d", ret);
 }
 
-static void
+static int
 nicvf_dev_stop(struct rte_eth_dev *dev)
 {
        PMD_INIT_FUNC_TRACE();
 
        nicvf_dev_stop_cleanup(dev, false);
+
+       return 0;
 }
 
 static void
@@ -1852,13 +1856,15 @@ nicvf_vf_stop(struct rte_eth_dev *dev, struct nicvf *nic, bool cleanup)
        }
 }
 
-static void
+static int
 nicvf_dev_close(struct rte_eth_dev *dev)
 {
        size_t i;
        struct nicvf *nic = nicvf_pmd_priv(dev);
 
        PMD_INIT_FUNC_TRACE();
+       if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+               return 0;
 
        nicvf_dev_stop_cleanup(dev, true);
        nicvf_periodic_alarm_stop(nicvf_interrupt, dev);
@@ -1869,6 +1875,8 @@ nicvf_dev_close(struct rte_eth_dev *dev)
 
                nicvf_periodic_alarm_stop(nicvf_vf_interrupt, nic->snicvf[i]);
        }
+
+       return 0;
 }
 
 static int
@@ -2117,10 +2125,7 @@ static int
 nicvf_eth_dev_uninit(struct rte_eth_dev *dev)
 {
        PMD_INIT_FUNC_TRACE();
-
-       if (rte_eal_process_type() == RTE_PROC_PRIMARY)
-               nicvf_dev_close(dev);
-
+       nicvf_dev_close(dev);
        return 0;
 }
 static int
@@ -2151,6 +2156,7 @@ nicvf_eth_dev_init(struct rte_eth_dev *eth_dev)
 
        pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
        rte_eth_copy_pci_info(eth_dev, pci_dev);
+       eth_dev->data->dev_flags |= RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS;
 
        nic->device_id = pci_dev->id.device_id;
        nic->vendor_id = pci_dev->id.vendor_id;
@@ -2239,7 +2245,7 @@ nicvf_eth_dev_init(struct rte_eth_dev *eth_dev)
                PMD_INIT_LOG(ERR, "Failed to configure first skip");
                goto malloc_fail;
        }
-       PMD_INIT_LOG(INFO, "Port %d (%x:%x) mac=%02x:%02x:%02x:%02x:%02x:%02x",
+       PMD_INIT_LOG(INFO, "Port %d (%x:%x) mac=" RTE_ETHER_ADDR_PRT_FMT,
                eth_dev->data->port_id, nic->vendor_id, nic->device_id,
                nic->mac_addr[0], nic->mac_addr[1], nic->mac_addr[2],
                nic->mac_addr[3], nic->mac_addr[4], nic->mac_addr[5]);