DPDK 25.03.0-rc0
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
79#include <stdint.h>
80
81#include <rte_compat.h>
82#include <rte_mbuf.h>
83
84#include "rte_eventdev.h"
85
86#ifdef __cplusplus
87extern "C" {
88#endif
89
102 uint32_t max_nb_tx;
107};
108
113 uint32_t max_nb_tx;
136 uint16_t rsvd[29];
138};
139
160typedef int (*rte_event_eth_tx_adapter_conf_cb) (uint8_t id, uint8_t dev_id,
162 void *arg);
163
168 uint64_t tx_retry;
170 uint64_t tx_packets;
172 uint64_t tx_dropped;
174};
175
204int
205rte_event_eth_tx_adapter_create(uint8_t id, uint8_t dev_id,
206 struct rte_event_port_conf *port_config);
207
225int
226rte_event_eth_tx_adapter_create_ext(uint8_t id, uint8_t dev_id,
228 void *conf_arg);
229
240int
242
252int
254
264int
266
282int
284 uint16_t eth_dev_id,
285 int32_t queue);
286
303int
305 uint16_t eth_dev_id,
306 int32_t queue);
307
317static __rte_always_inline void
318rte_event_eth_tx_adapter_txq_set(struct rte_mbuf *pkt, uint16_t queue)
319{
320 pkt->hash.txadapter.txq = queue;
321}
322
333static __rte_always_inline uint16_t
335{
336 return pkt->hash.txadapter.txq;
337}
338
352int
353rte_event_eth_tx_adapter_event_port_get(uint8_t id, uint8_t *event_port_id);
354
355#define RTE_EVENT_ETH_TX_ADAPTER_ENQUEUE_SAME_DEST 0x1
403static inline uint16_t
405 uint8_t port_id,
406 struct rte_event ev[],
407 uint16_t nb_events,
408 const uint8_t flags)
409{
410 const struct rte_event_fp_ops *fp_ops;
411 void *port;
412
413 fp_ops = &rte_event_fp_ops[dev_id];
414 port = fp_ops->data[port_id];
415#ifdef RTE_LIBRTE_EVENTDEV_DEBUG
416 if (dev_id >= RTE_EVENT_MAX_DEVS ||
417 port_id >= RTE_EVENT_MAX_PORTS_PER_DEV) {
418 rte_errno = EINVAL;
419 return 0;
420 }
421
422 if (port == NULL) {
423 rte_errno = EINVAL;
424 return 0;
425 }
426#endif
427 rte_eventdev_trace_eth_tx_adapter_enqueue(dev_id, port_id, ev,
428 nb_events, flags);
429 if (flags)
430 return fp_ops->txa_enqueue_same_dest(port, ev, nb_events);
431 else
432 return fp_ops->txa_enqueue(port, ev, nb_events);
433}
434
446int
448 struct rte_event_eth_tx_adapter_stats *stats);
449
459int
461
475int
476rte_event_eth_tx_adapter_service_id_get(uint8_t id, uint32_t *service_id);
477
495int
497 uint16_t tx_queue_id,
498 uint8_t *txa_inst_id);
529int
530rte_event_eth_tx_adapter_queue_start(uint16_t eth_dev_id, uint16_t tx_queue_id);
531
547int
548rte_event_eth_tx_adapter_queue_stop(uint16_t eth_dev_id, uint16_t tx_queue_id);
549
560__rte_experimental
561int
563 struct rte_event_eth_tx_adapter_runtime_params *txa_params);
564
582__rte_experimental
583int
586
600__rte_experimental
601int
604
605#ifdef __cplusplus
606}
607#endif
608#endif /* _RTE_EVENT_ETH_TX_ADAPTER_ */
#define __rte_always_inline
Definition: rte_common.h:413
#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)
__rte_experimental int rte_event_eth_tx_adapter_runtime_params_init(struct rte_event_eth_tx_adapter_runtime_params *txa_params)
int rte_event_eth_tx_adapter_queue_stop(uint16_t eth_dev_id, uint16_t tx_queue_id)
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)
__rte_experimental int rte_event_eth_tx_adapter_runtime_params_set(uint8_t id, struct rte_event_eth_tx_adapter_runtime_params *params)
int rte_event_eth_tx_adapter_instance_get(uint16_t eth_dev_id, uint16_t tx_queue_id, uint8_t *txa_inst_id)
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_queue_start(uint16_t eth_dev_id, uint16_t tx_queue_id)
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)
__rte_experimental int rte_event_eth_tx_adapter_runtime_params_get(uint8_t id, struct rte_event_eth_tx_adapter_runtime_params *params)
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)