app/testpmd: record Rx and dropped stats in flowgen
[dpdk.git] / drivers / bus / fslmc / fslmc_bus.c
index afbd82e..becc455 100644 (file)
@@ -13,7 +13,8 @@
 #include <rte_malloc.h>
 #include <rte_devargs.h>
 #include <rte_memcpy.h>
-#include <rte_ethdev_driver.h>
+#include <ethdev_driver.h>
+#include <rte_mbuf_dyn.h>
 
 #include <rte_fslmc.h>
 #include <fslmc_vfio.h>
 
 #include <dpaax_iova_table.h>
 
-int dpaa2_logtype_bus;
-
 #define VFIO_IOMMU_GROUP_PATH "/sys/kernel/iommu_groups"
 #define FSLMC_BUS_NAME fslmc
 
 struct rte_fslmc_bus rte_fslmc_bus;
 uint8_t dpaa2_virt_mode;
 
+#define DPAA2_SEQN_DYNFIELD_NAME "dpaa2_seqn_dynfield"
+int dpaa2_seqn_dynfield_offset = -1;
+
 uint32_t
 rte_fslmc_get_device_count(enum rte_dpaa2_dev_type device_type)
 {
@@ -37,8 +39,6 @@ rte_fslmc_get_device_count(enum rte_dpaa2_dev_type device_type)
        return rte_fslmc_bus.device_count[device_type];
 }
 
-RTE_DEFINE_PER_LCORE(struct dpaa2_portal_dqrr, dpaa2_held_bufs);
-
 static void
 cleanup_fslmc_device_list(void)
 {
@@ -378,9 +378,22 @@ rte_fslmc_probe(void)
        struct rte_dpaa2_device *dev;
        struct rte_dpaa2_driver *drv;
 
+       static const struct rte_mbuf_dynfield dpaa2_seqn_dynfield_desc = {
+               .name = DPAA2_SEQN_DYNFIELD_NAME,
+               .size = sizeof(dpaa2_seqn_t),
+               .align = __alignof__(dpaa2_seqn_t),
+       };
+
        if (TAILQ_EMPTY(&rte_fslmc_bus.device_list))
                return 0;
 
+       dpaa2_seqn_dynfield_offset =
+               rte_mbuf_dynfield_register(&dpaa2_seqn_dynfield_desc);
+       if (dpaa2_seqn_dynfield_offset < 0) {
+               DPAA2_BUS_ERR("Failed to register mbuf field for dpaa sequence number");
+               return 0;
+       }
+
        ret = fslmc_vfio_setup_group();
        if (ret) {
                DPAA2_BUS_ERR("Unable to setup VFIO %d", ret);
@@ -407,7 +420,7 @@ rte_fslmc_probe(void)
                return 0;
        }
 
-       probe_all = rte_fslmc_bus.bus.conf.scan_mode != RTE_BUS_SCAN_WHITELIST;
+       probe_all = rte_fslmc_bus.bus.conf.scan_mode != RTE_BUS_SCAN_ALLOWLIST;
 
        /* In case of PA, the FD addresses returned by qbman APIs are physical
         * addresses, which need conversion into equivalent VA address for
@@ -438,16 +451,15 @@ rte_fslmc_probe(void)
                                continue;
 
                        if (dev->device.devargs &&
-                         dev->device.devargs->policy == RTE_DEV_BLACKLISTED) {
-                               DPAA2_BUS_LOG(DEBUG, "%s Blacklisted, skipping",
+                           dev->device.devargs->policy == RTE_DEV_BLOCKED) {
+                               DPAA2_BUS_LOG(DEBUG, "%s Blocked, skipping",
                                              dev->device.name);
                                continue;
                        }
 
                        if (probe_all ||
                           (dev->device.devargs &&
-                          dev->device.devargs->policy ==
-                          RTE_DEV_WHITELISTED)) {
+                           dev->device.devargs->policy == RTE_DEV_ALLOWED)) {
                                ret = drv->probe(drv, dev);
                                if (ret) {
                                        DPAA2_BUS_ERR("Unable to probe");
@@ -603,6 +615,11 @@ fslmc_bus_dev_iterate(const void *start, const char *str,
        struct rte_dpaa2_device *dev;
        char *dup, *dev_name = NULL;
 
+       if (str == NULL) {
+               DPAA2_BUS_DEBUG("No device string");
+               return NULL;
+       }
+
        /* Expectation is that device would be name=device_name */
        if (strncmp(str, "name=", 5) != 0) {
                DPAA2_BUS_DEBUG("Invalid device string (%s)\n", str);
@@ -649,11 +666,4 @@ struct rte_fslmc_bus rte_fslmc_bus = {
 };
 
 RTE_REGISTER_BUS(FSLMC_BUS_NAME, rte_fslmc_bus.bus);
-
-RTE_INIT(fslmc_init_log)
-{
-       /* Bus level logs */
-       dpaa2_logtype_bus = rte_log_register("bus.fslmc");
-       if (dpaa2_logtype_bus >= 0)
-               rte_log_set_level(dpaa2_logtype_bus, RTE_LOG_NOTICE);
-}
+RTE_LOG_REGISTER_DEFAULT(dpaa2_logtype_bus, NOTICE);