buildtools: use Python pmdinfogen
[dpdk.git] / app / test-eventdev / test_order_atq.c
index 3366cfc..71215a0 100644 (file)
@@ -19,7 +19,7 @@ order_atq_process_stage_0(struct rte_event *const ev)
 }
 
 static int
-order_atq_worker(void *arg)
+order_atq_worker(void *arg, const bool flow_id_cap)
 {
        ORDER_WORKER_INIT;
        struct rte_event ev;
@@ -34,6 +34,9 @@ order_atq_worker(void *arg)
                        continue;
                }
 
+               if (!flow_id_cap)
+                       order_flow_id_copy_from_mbuf(t, &ev);
+
                if (ev.sub_event_type == 0) { /* stage 0 from producer */
                        order_atq_process_stage_0(&ev);
                        while (rte_event_enqueue_burst(dev_id, port, &ev, 1)
@@ -50,7 +53,7 @@ order_atq_worker(void *arg)
 }
 
 static int
-order_atq_worker_burst(void *arg)
+order_atq_worker_burst(void *arg, const bool flow_id_cap)
 {
        ORDER_WORKER_INIT;
        struct rte_event ev[BURST_SIZE];
@@ -68,6 +71,9 @@ order_atq_worker_burst(void *arg)
                }
 
                for (i = 0; i < nb_rx; i++) {
+                       if (!flow_id_cap)
+                               order_flow_id_copy_from_mbuf(t, &ev[i]);
+
                        if (ev[i].sub_event_type == 0) { /*stage 0 */
                                order_atq_process_stage_0(&ev[i]);
                        } else if (ev[i].sub_event_type == 1) { /* stage 1 */
@@ -95,11 +101,19 @@ worker_wrapper(void *arg)
 {
        struct worker_data *w  = arg;
        const bool burst = evt_has_burst_mode(w->dev_id);
-
-       if (burst)
-               return order_atq_worker_burst(arg);
-       else
-               return order_atq_worker(arg);
+       const bool flow_id_cap = evt_has_flow_id(w->dev_id);
+
+       if (burst) {
+               if (flow_id_cap)
+                       return order_atq_worker_burst(arg, true);
+               else
+                       return order_atq_worker_burst(arg, false);
+       } else {
+               if (flow_id_cap)
+                       return order_atq_worker(arg, true);
+               else
+                       return order_atq_worker(arg, false);
+       }
 }
 
 static int