DPDK  18.05.1
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 
72 #ifdef __cplusplus
73 extern "C" {
74 #endif
75 
76 #include <stdint.h>
77 
78 #include <rte_service.h>
79 
80 #include "rte_eventdev.h"
81 
82 #define RTE_EVENT_ETH_RX_ADAPTER_MAX_INSTANCE 32
83 
84 /* struct rte_event_eth_rx_adapter_queue_conf flags definitions */
85 #define RTE_EVENT_ETH_RX_ADAPTER_QUEUE_FLOW_ID_VALID 0x1
86 
99  uint8_t event_port_id;
103  uint32_t max_nb_rx;
108 };
109 
134 typedef int (*rte_event_eth_rx_adapter_conf_cb) (uint8_t id, uint8_t dev_id,
135  struct rte_event_eth_rx_adapter_conf *conf,
136  void *arg);
137 
145  uint32_t rx_queue_flags;
149  uint16_t servicing_weight;
156  struct rte_event ev;
173 };
174 
182  uint64_t rx_poll_count;
184  uint64_t rx_packets;
186  uint64_t rx_enq_count;
188  uint64_t rx_enq_retry;
190  uint64_t rx_enq_start_ts;
192  uint64_t rx_enq_block_cycles;
196  uint64_t rx_enq_end_ts;
202 };
203 
228 int rte_event_eth_rx_adapter_create_ext(uint8_t id, uint8_t dev_id,
230  void *conf_arg);
231 
258 int rte_event_eth_rx_adapter_create(uint8_t id, uint8_t dev_id,
259  struct rte_event_port_conf *port_config);
260 
275 int rte_event_eth_rx_adapter_free(uint8_t id);
276 
313  uint16_t eth_dev_id,
314  int32_t rx_queue_id,
315  const struct rte_event_eth_rx_adapter_queue_conf *conf);
316 
341 int rte_event_eth_rx_adapter_queue_del(uint8_t id, uint16_t eth_dev_id,
342  int32_t rx_queue_id);
343 
357 int rte_event_eth_rx_adapter_start(uint8_t id);
358 
372 int rte_event_eth_rx_adapter_stop(uint8_t id);
373 
391  struct rte_event_eth_rx_adapter_stats *stats);
392 
407 
426 int rte_event_eth_rx_adapter_service_id_get(uint8_t id, uint32_t *service_id);
427 
428 #ifdef __cplusplus
429 }
430 #endif
431 #endif /* _RTE_EVENT_ETH_RX_ADAPTER_ */