DPDK  18.08.0
rte_event_eth_rx_adapter.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2017 Intel Corporation.
3  * All rights reserved.
4  */
5 
6 #ifndef _RTE_EVENT_ETH_RX_ADAPTER_
7 #define _RTE_EVENT_ETH_RX_ADAPTER_
8 
85 #ifdef __cplusplus
86 extern "C" {
87 #endif
88 
89 #include <stdint.h>
90 
91 #include <rte_service.h>
92 
93 #include "rte_eventdev.h"
94 
95 #define RTE_EVENT_ETH_RX_ADAPTER_MAX_INSTANCE 32
96 
97 /* struct rte_event_eth_rx_adapter_queue_conf flags definitions */
98 #define RTE_EVENT_ETH_RX_ADAPTER_QUEUE_FLOW_ID_VALID 0x1
99 
112  uint8_t event_port_id;
116  uint32_t max_nb_rx;
121 };
122 
147 typedef int (*rte_event_eth_rx_adapter_conf_cb) (uint8_t id, uint8_t dev_id,
148  struct rte_event_eth_rx_adapter_conf *conf,
149  void *arg);
150 
158  uint32_t rx_queue_flags;
169  struct rte_event ev;
186 };
187 
195  uint64_t rx_poll_count;
197  uint64_t rx_packets;
199  uint64_t rx_enq_count;
201  uint64_t rx_enq_retry;
203  uint64_t rx_enq_start_ts;
209  uint64_t rx_enq_end_ts;
215  uint64_t rx_intr_packets;
217 };
218 
251 typedef uint16_t (*rte_event_eth_rx_adapter_cb_fn)(uint16_t eth_dev_id,
252  uint16_t queue_id,
253  uint32_t enqueue_buf_size,
254  uint32_t enqueue_buf_count,
255  struct rte_mbuf **mbuf,
256  uint16_t nb_mbuf,
257  void *cb_arg,
258  struct rte_mbuf **enq_buf);
259 
284 int rte_event_eth_rx_adapter_create_ext(uint8_t id, uint8_t dev_id,
286  void *conf_arg);
287 
314 int rte_event_eth_rx_adapter_create(uint8_t id, uint8_t dev_id,
315  struct rte_event_port_conf *port_config);
316 
331 int rte_event_eth_rx_adapter_free(uint8_t id);
332 
369  uint16_t eth_dev_id,
370  int32_t rx_queue_id,
371  const struct rte_event_eth_rx_adapter_queue_conf *conf);
372 
397 int rte_event_eth_rx_adapter_queue_del(uint8_t id, uint16_t eth_dev_id,
398  int32_t rx_queue_id);
399 
413 int rte_event_eth_rx_adapter_start(uint8_t id);
414 
428 int rte_event_eth_rx_adapter_stop(uint8_t id);
429 
447  struct rte_event_eth_rx_adapter_stats *stats);
448 
463 
482 int rte_event_eth_rx_adapter_service_id_get(uint8_t id, uint32_t *service_id);
483 
504 int __rte_experimental
506  uint16_t eth_dev_id,
508  void *cb_arg);
509 
510 #ifdef __cplusplus
511 }
512 #endif
513 #endif /* _RTE_EVENT_ETH_RX_ADAPTER_ */
int __rte_experimental rte_event_eth_rx_adapter_cb_register(uint8_t id, uint16_t eth_dev_id, rte_event_eth_rx_adapter_cb_fn cb_fn, void *cb_arg)
int rte_event_eth_rx_adapter_start(uint8_t id)
int rte_event_eth_rx_adapter_free(uint8_t id)
int rte_event_eth_rx_adapter_stats_get(uint8_t id, struct rte_event_eth_rx_adapter_stats *stats)
int rte_event_eth_rx_adapter_create_ext(uint8_t id, uint8_t dev_id, rte_event_eth_rx_adapter_conf_cb conf_cb, void *conf_arg)
int rte_event_eth_rx_adapter_service_id_get(uint8_t id, uint32_t *service_id)
int rte_event_eth_rx_adapter_stats_reset(uint8_t id)
int rte_event_eth_rx_adapter_queue_add(uint8_t id, uint16_t eth_dev_id, int32_t rx_queue_id, const struct rte_event_eth_rx_adapter_queue_conf *conf)
int rte_event_eth_rx_adapter_queue_del(uint8_t id, uint16_t eth_dev_id, int32_t rx_queue_id)
int rte_event_eth_rx_adapter_create(uint8_t id, uint8_t dev_id, struct rte_event_port_conf *port_config)
int rte_event_eth_rx_adapter_stop(uint8_t id)
uint16_t(* rte_event_eth_rx_adapter_cb_fn)(uint16_t eth_dev_id, uint16_t queue_id, uint32_t enqueue_buf_size, uint32_t enqueue_buf_count, struct rte_mbuf **mbuf, uint16_t nb_mbuf, void *cb_arg, struct rte_mbuf **enq_buf)
int(* rte_event_eth_rx_adapter_conf_cb)(uint8_t id, uint8_t dev_id, struct rte_event_eth_rx_adapter_conf *conf, void *arg)