DPDK 21.11.9
rte_event_eth_tx_adapter.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2018 Intel Corporation.
3 */
4
5#ifndef _RTE_EVENT_ETH_TX_ADAPTER_
6#define _RTE_EVENT_ETH_TX_ADAPTER_
7
73#ifdef __cplusplus
74extern "C" {
75#endif
76
77#include <stdint.h>
78
79#include <rte_mbuf.h>
80
81#include "rte_eventdev.h"
82
95 uint32_t max_nb_tx;
100};
101
122typedef int (*rte_event_eth_tx_adapter_conf_cb) (uint8_t id, uint8_t dev_id,
124 void *arg);
125
130 uint64_t tx_retry;
132 uint64_t tx_packets;
134 uint64_t tx_dropped;
136};
137
152int
153rte_event_eth_tx_adapter_create(uint8_t id, uint8_t dev_id,
154 struct rte_event_port_conf *port_config);
155
173int
174rte_event_eth_tx_adapter_create_ext(uint8_t id, uint8_t dev_id,
176 void *conf_arg);
177
188int
190
200int
202
212int
214
230int
232 uint16_t eth_dev_id,
233 int32_t queue);
234
251int
253 uint16_t eth_dev_id,
254 int32_t queue);
255
265static __rte_always_inline void
266rte_event_eth_tx_adapter_txq_set(struct rte_mbuf *pkt, uint16_t queue)
267{
268 pkt->hash.txadapter.txq = queue;
269}
270
281static __rte_always_inline uint16_t
283{
284 return pkt->hash.txadapter.txq;
285}
286
300int
301rte_event_eth_tx_adapter_event_port_get(uint8_t id, uint8_t *event_port_id);
302
303#define RTE_EVENT_ETH_TX_ADAPTER_ENQUEUE_SAME_DEST 0x1
351static inline uint16_t
353 uint8_t port_id,
354 struct rte_event ev[],
355 uint16_t nb_events,
356 const uint8_t flags)
357{
358 const struct rte_event_fp_ops *fp_ops;
359 void *port;
360
361 fp_ops = &rte_event_fp_ops[dev_id];
362 port = fp_ops->data[port_id];
363#ifdef RTE_LIBRTE_EVENTDEV_DEBUG
364 if (dev_id >= RTE_EVENT_MAX_DEVS ||
365 port_id >= RTE_EVENT_MAX_PORTS_PER_DEV) {
366 rte_errno = EINVAL;
367 return 0;
368 }
369
370 if (port == NULL) {
371 rte_errno = EINVAL;
372 return 0;
373 }
374#endif
375 rte_eventdev_trace_eth_tx_adapter_enqueue(dev_id, port_id, ev,
376 nb_events, flags);
377 if (flags)
378 return fp_ops->txa_enqueue_same_dest(port, ev, nb_events);
379 else
380 return fp_ops->txa_enqueue(port, ev, nb_events);
381}
382
394int
396 struct rte_event_eth_tx_adapter_stats *stats);
397
407int
409
423int
424rte_event_eth_tx_adapter_service_id_get(uint8_t id, uint32_t *service_id);
425
426#ifdef __cplusplus
427}
428#endif
429#endif /* _RTE_EVENT_ETH_TX_ADAPTER_ */
#define __rte_always_inline
Definition: rte_common.h:233
#define rte_errno
Definition: rte_errno.h:29
int rte_event_eth_tx_adapter_service_id_get(uint8_t id, uint32_t *service_id)
int rte_event_eth_tx_adapter_event_port_get(uint8_t id, uint8_t *event_port_id)
int(* rte_event_eth_tx_adapter_conf_cb)(uint8_t id, uint8_t dev_id, struct rte_event_eth_tx_adapter_conf *conf, void *arg)
static __rte_always_inline void rte_event_eth_tx_adapter_txq_set(struct rte_mbuf *pkt, uint16_t queue)
int rte_event_eth_tx_adapter_free(uint8_t id)
int rte_event_eth_tx_adapter_create(uint8_t id, uint8_t dev_id, struct rte_event_port_conf *port_config)
int rte_event_eth_tx_adapter_queue_add(uint8_t id, uint16_t eth_dev_id, int32_t queue)
int rte_event_eth_tx_adapter_stats_reset(uint8_t id)
int rte_event_eth_tx_adapter_create_ext(uint8_t id, uint8_t dev_id, rte_event_eth_tx_adapter_conf_cb conf_cb, void *conf_arg)
int rte_event_eth_tx_adapter_stop(uint8_t id)
static uint16_t rte_event_eth_tx_adapter_enqueue(uint8_t dev_id, uint8_t port_id, struct rte_event ev[], uint16_t nb_events, const uint8_t flags)
int rte_event_eth_tx_adapter_stats_get(uint8_t id, struct rte_event_eth_tx_adapter_stats *stats)
static __rte_always_inline uint16_t rte_event_eth_tx_adapter_txq_get(struct rte_mbuf *pkt)
int rte_event_eth_tx_adapter_start(uint8_t id)
int rte_event_eth_tx_adapter_queue_del(uint8_t id, uint16_t eth_dev_id, int32_t queue)