examples/eventdev: add framework for caps based pipeline
authorPavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Wed, 10 Jan 2018 11:10:01 +0000 (16:40 +0530)
committerJerin Jacob <jerin.jacob@caviumnetworks.com>
Fri, 19 Jan 2018 15:09:56 +0000 (16:09 +0100)
Add framework to support capability based pipeline.
Based on the capability of event device and probed ethernet devices the
optimal pipeline configuration can be chosen.

Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Acked-by: Harry van Haaren <harry.van.haaren@intel.com>
examples/eventdev_pipeline_sw_pmd/pipeline_common.h

index 1dbc01f..00721ea 100644 (file)
@@ -34,6 +34,22 @@ struct worker_data {
        uint8_t port_id;
 } __rte_cache_aligned;
 
+typedef int (*worker_loop)(void *);
+typedef int (*consumer_loop)(void);
+typedef void (*schedule_loop)(unsigned int);
+typedef int (*eventdev_setup)(struct cons_data *, struct worker_data *);
+typedef void (*rx_adapter_setup)(uint16_t nb_ports);
+typedef void (*opt_check)(void);
+
+struct setup_data {
+       worker_loop worker;
+       consumer_loop consumer;
+       schedule_loop scheduler;
+       eventdev_setup evdev_setup;
+       rx_adapter_setup adptr_setup;
+       opt_check check_opt;
+};
+
 struct fastpath_data {
        volatile int done;
        uint32_t tx_lock;
@@ -47,6 +63,7 @@ struct fastpath_data {
        unsigned int sched_core[MAX_NUM_CORE];
        unsigned int worker_core[MAX_NUM_CORE];
        struct rte_eth_dev_tx_buffer *tx_buf[RTE_MAX_ETHPORTS];
+       struct setup_data cap;
 } __rte_cache_aligned;
 
 struct config_data {