compat: provide experimental alias for matured ABI
[dpdk.git] / lib / librte_eventdev / rte_event_eth_rx_adapter.c
index 380d87a..f0000d1 100644 (file)
@@ -20,6 +20,7 @@
 
 #include "rte_eventdev.h"
 #include "rte_eventdev_pmd.h"
+#include "rte_eventdev_trace.h"
 #include "rte_event_eth_rx_adapter.h"
 
 #define BATCH_SIZE             32
@@ -763,8 +764,8 @@ rxa_buffer_mbufs(struct rte_event_eth_rx_adapter *rx_adapter,
        uint32_t rss;
        int do_rss;
        uint64_t ts;
-       struct rte_mbuf *cb_mbufs[BATCH_SIZE];
        uint16_t nb_cb;
+       uint16_t dropped;
 
        /* 0xffff ffff if PKT_RX_RSS_HASH is set, otherwise 0 */
        rss_mask = ~(((m->ol_flags & PKT_RX_RSS_HASH) != 0) - 1);
@@ -780,19 +781,6 @@ rxa_buffer_mbufs(struct rte_event_eth_rx_adapter *rx_adapter,
                }
        }
 
-
-       nb_cb = dev_info->cb_fn ? dev_info->cb_fn(eth_dev_id, rx_queue_id,
-                                               ETH_EVENT_BUFFER_SIZE,
-                                               buf->count, mbufs,
-                                               num,
-                                               dev_info->cb_arg,
-                                               cb_mbufs) :
-                                               num;
-       if (nb_cb < num) {
-               mbufs = cb_mbufs;
-               num = nb_cb;
-       }
-
        for (i = 0; i < num; i++) {
                m = mbufs[i];
 
@@ -806,6 +794,21 @@ rxa_buffer_mbufs(struct rte_event_eth_rx_adapter *rx_adapter,
                ev++;
        }
 
+       if (dev_info->cb_fn) {
+
+               dropped = 0;
+               nb_cb = dev_info->cb_fn(eth_dev_id, rx_queue_id,
+                                       ETH_EVENT_BUFFER_SIZE, buf->count, ev,
+                                       num, dev_info->cb_arg, &dropped);
+               if (unlikely(nb_cb > num))
+                       RTE_EDEV_LOG_ERR("Rx CB returned %d (> %d) events",
+                               nb_cb, num);
+               else
+                       num = nb_cb;
+               if (dropped)
+                       rx_adapter->stats.rx_dropped += dropped;
+       }
+
        buf->count += num;
 }
 
@@ -1996,6 +1999,8 @@ rte_event_eth_rx_adapter_create_ext(uint8_t id, uint8_t dev_id,
        event_eth_rx_adapter[id] = rx_adapter;
        if (conf_cb == rxa_default_conf_cb)
                rx_adapter->default_cb_arg = 1;
+       rte_eventdev_trace_eth_rx_adapter_create(id, dev_id, conf_cb,
+               conf_arg);
        return 0;
 }
 
@@ -2045,6 +2050,7 @@ rte_event_eth_rx_adapter_free(uint8_t id)
        rte_free(rx_adapter);
        event_eth_rx_adapter[id] = NULL;
 
+       rte_eventdev_trace_eth_rx_adapter_free(id);
        return 0;
 }
 
@@ -2140,6 +2146,8 @@ rte_event_eth_rx_adapter_queue_add(uint8_t id,
                rte_spinlock_unlock(&rx_adapter->rx_lock);
        }
 
+       rte_eventdev_trace_eth_rx_adapter_queue_add(id, eth_dev_id,
+               rx_queue_id, queue_conf, ret);
        if (ret)
                return ret;
 
@@ -2261,18 +2269,22 @@ unlock_ret:
                                rxa_sw_adapter_queue_count(rx_adapter));
        }
 
+       rte_eventdev_trace_eth_rx_adapter_queue_del(id, eth_dev_id,
+               rx_queue_id, ret);
        return ret;
 }
 
 int
 rte_event_eth_rx_adapter_start(uint8_t id)
 {
+       rte_eventdev_trace_eth_rx_adapter_start(id);
        return rxa_ctrl(id, 1);
 }
 
 int
 rte_event_eth_rx_adapter_stop(uint8_t id)
 {
+       rte_eventdev_trace_eth_rx_adapter_stop(id);
        return rxa_ctrl(id, 0);
 }