#include <rte_common.h>
#include <rte_eventdev.h>
#include <rte_event_eth_tx_adapter.h>
+#include <rte_service.h>
#include <rte_spinlock.h>
#include "l3fwd.h"
typedef void (*adapter_setup_cb)(void);
typedef int (*event_loop_cb)(void *);
+struct l3fwd_event_queues {
+ uint8_t *event_q_id;
+ uint8_t nb_queues;
+};
+
+struct l3fwd_event_ports {
+ uint8_t *event_p_id;
+ uint8_t nb_ports;
+ rte_spinlock_t lock;
+};
+
+struct l3fwd_event_rx_adptr {
+ uint32_t service_id;
+ uint8_t nb_rx_adptr;
+ uint8_t *rx_adptr;
+};
+
+struct l3fwd_event_tx_adptr {
+ uint32_t service_id;
+ uint8_t nb_tx_adptr;
+ uint8_t *tx_adptr;
+};
+
struct l3fwd_event_setup_ops {
event_device_setup_cb event_device_setup;
event_queue_setup_cb event_queue_setup;
};
struct l3fwd_event_resources {
+ struct rte_event_port_conf def_p_conf;
+ struct l3fwd_event_rx_adptr rx_adptr;
+ struct l3fwd_event_tx_adptr tx_adptr;
+ uint8_t disable_implicit_release;
struct l3fwd_event_setup_ops ops;
+ struct rte_mempool * (*pkt_pool)[NB_SOCKETS];
+ struct l3fwd_event_queues evq;
+ struct l3fwd_event_ports evp;
+ uint32_t port_mask;
+ uint8_t per_port_pool;
+ uint8_t event_d_id;
uint8_t sched_type;
uint8_t tx_mode_q;
+ uint8_t deq_depth;
+ uint8_t has_burst;
uint8_t enabled;
uint8_t eth_rx_queues;
};