DPDK  21.11.7
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 
82 #ifdef __cplusplus
83 extern "C" {
84 #endif
85 
86 #include <stdint.h>
87 
88 #include <rte_service.h>
89 
90 #include "rte_eventdev.h"
91 
92 #define RTE_EVENT_ETH_RX_ADAPTER_MAX_INSTANCE 32
93 
94 /* struct rte_event_eth_rx_adapter_queue_conf flags definitions */
95 #define RTE_EVENT_ETH_RX_ADAPTER_QUEUE_FLOW_ID_VALID 0x1
96 
99 #define RTE_EVENT_ETH_RX_ADAPTER_QUEUE_EVENT_VECTOR 0x2
100 
110  uint8_t event_port_id;
114  uint32_t max_nb_rx;
119 };
120 
142 typedef int (*rte_event_eth_rx_adapter_conf_cb) (uint8_t id, uint8_t dev_id,
143  struct rte_event_eth_rx_adapter_conf *conf,
144  void *arg);
145 
150  uint32_t rx_queue_flags;
161  struct rte_event ev;
178  uint16_t vector_sz;
205  uint16_t event_buf_size;
207 };
208 
218  uint64_t rx_poll_count;
220  uint64_t rx_packets;
222  uint64_t rx_dropped;
224 };
225 
230  uint64_t rx_poll_count;
232  uint64_t rx_packets;
234  uint64_t rx_enq_count;
236  uint64_t rx_enq_retry;
238  uint64_t rx_dropped;
240  uint64_t rx_enq_start_ts;
246  uint64_t rx_enq_end_ts;
252  uint64_t rx_intr_packets;
258 };
259 
264  uint16_t min_sz;
268  uint16_t max_sz;
272  uint8_t log2_sz;
276  uint64_t min_timeout_ns;
280  uint64_t max_timeout_ns;
284 };
285 
290  uint16_t event_buf_size;
297 };
298 
339 typedef uint16_t (*rte_event_eth_rx_adapter_cb_fn)(uint16_t eth_dev_id,
340  uint16_t queue_id,
341  uint32_t enqueue_buf_size,
342  uint32_t enqueue_buf_count,
343  struct rte_event *ev,
344  uint16_t nb_event,
345  void *cb_arg,
346  uint16_t *nb_dropped);
347 
369 int rte_event_eth_rx_adapter_create_ext(uint8_t id, uint8_t dev_id,
371  void *conf_arg);
372 
396 int rte_event_eth_rx_adapter_create(uint8_t id, uint8_t dev_id,
397  struct rte_event_port_conf *port_config);
398 
421 __rte_experimental
422 int rte_event_eth_rx_adapter_create_with_params(uint8_t id, uint8_t dev_id,
423  struct rte_event_port_conf *port_config,
424  struct rte_event_eth_rx_adapter_params *rxa_params);
425 
437 int rte_event_eth_rx_adapter_free(uint8_t id);
438 
472  uint16_t eth_dev_id,
473  int32_t rx_queue_id,
474  const struct rte_event_eth_rx_adapter_queue_conf *conf);
475 
497 int rte_event_eth_rx_adapter_queue_del(uint8_t id, uint16_t eth_dev_id,
498  int32_t rx_queue_id);
499 
514 int rte_event_eth_rx_adapter_start(uint8_t id);
515 
526 int rte_event_eth_rx_adapter_stop(uint8_t id);
527 
542  struct rte_event_eth_rx_adapter_stats *stats);
543 
555 
571 int rte_event_eth_rx_adapter_service_id_get(uint8_t id, uint32_t *service_id);
572 
590 int rte_event_eth_rx_adapter_cb_register(uint8_t id, uint16_t eth_dev_id,
592  void *cb_arg);
593 
611  uint8_t dev_id, uint16_t eth_port_id,
613 
633 __rte_experimental
635  uint16_t eth_dev_id,
636  uint16_t rx_queue_id,
637  struct rte_event_eth_rx_adapter_queue_conf *queue_conf);
638 
658 __rte_experimental
659 int
661  uint16_t eth_dev_id,
662  uint16_t rx_queue_id,
664 
681 __rte_experimental
682 int
684  uint16_t eth_dev_id,
685  uint16_t rx_queue_id);
686 
687 #ifdef __cplusplus
688 }
689 #endif
690 #endif /* _RTE_EVENT_ETH_RX_ADAPTER_ */
__rte_experimental int rte_event_eth_rx_adapter_queue_stats_reset(uint8_t id, uint16_t eth_dev_id, uint16_t rx_queue_id)
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)
__rte_experimental int rte_event_eth_rx_adapter_queue_stats_get(uint8_t id, uint16_t eth_dev_id, uint16_t rx_queue_id, struct rte_event_eth_rx_adapter_queue_stats *stats)
int rte_event_eth_rx_adapter_vector_limits_get(uint8_t dev_id, uint16_t eth_port_id, struct rte_event_eth_rx_adapter_vector_limits *limits)
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)
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_event *ev, uint16_t nb_event, void *cb_arg, uint16_t *nb_dropped)
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)
__rte_experimental int rte_event_eth_rx_adapter_create_with_params(uint8_t id, uint8_t dev_id, struct rte_event_port_conf *port_config, struct rte_event_eth_rx_adapter_params *rxa_params)
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)
__rte_experimental int rte_event_eth_rx_adapter_queue_conf_get(uint8_t id, uint16_t eth_dev_id, uint16_t rx_queue_id, struct rte_event_eth_rx_adapter_queue_conf *queue_conf)
int rte_event_eth_rx_adapter_stop(uint8_t id)
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)
int 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)