xref: /dpdk/lib/port/rte_port_ethdev.h (revision 719834a6849e1daf4a70ff7742bbcc3ae7e25607)
199a2dd95SBruce Richardson /* SPDX-License-Identifier: BSD-3-Clause
299a2dd95SBruce Richardson  * Copyright(c) 2010-2014 Intel Corporation
399a2dd95SBruce Richardson  */
499a2dd95SBruce Richardson 
599a2dd95SBruce Richardson #ifndef __INCLUDE_RTE_PORT_ETHDEV_H__
699a2dd95SBruce Richardson #define __INCLUDE_RTE_PORT_ETHDEV_H__
799a2dd95SBruce Richardson 
899a2dd95SBruce Richardson /**
999a2dd95SBruce Richardson  * @file
1099a2dd95SBruce Richardson  * RTE Port Ethernet Device
1199a2dd95SBruce Richardson  *
1299a2dd95SBruce Richardson  * ethdev_reader: input port built on top of pre-initialized NIC RX queue
1399a2dd95SBruce Richardson  * ethdev_writer: output port built on top of pre-initialized NIC TX queue
143e4c5be9SThomas Monjalon  */
1599a2dd95SBruce Richardson 
1699a2dd95SBruce Richardson #include <stdint.h>
1799a2dd95SBruce Richardson 
1899a2dd95SBruce Richardson #include "rte_port.h"
1999a2dd95SBruce Richardson 
20*719834a6SMattias Rönnblom #ifdef __cplusplus
21*719834a6SMattias Rönnblom extern "C" {
22*719834a6SMattias Rönnblom #endif
23*719834a6SMattias Rönnblom 
2499a2dd95SBruce Richardson /** ethdev_reader port parameters */
2599a2dd95SBruce Richardson struct rte_port_ethdev_reader_params {
2699a2dd95SBruce Richardson 	/** NIC RX port ID */
2799a2dd95SBruce Richardson 	uint16_t port_id;
2899a2dd95SBruce Richardson 
2999a2dd95SBruce Richardson 	/** NIC RX queue ID */
3099a2dd95SBruce Richardson 	uint16_t queue_id;
3199a2dd95SBruce Richardson };
3299a2dd95SBruce Richardson 
3399a2dd95SBruce Richardson /** ethdev_reader port operations */
3499a2dd95SBruce Richardson extern struct rte_port_in_ops rte_port_ethdev_reader_ops;
3599a2dd95SBruce Richardson 
3699a2dd95SBruce Richardson /** ethdev_writer port parameters */
3799a2dd95SBruce Richardson struct rte_port_ethdev_writer_params {
3899a2dd95SBruce Richardson 	/** NIC RX port ID */
3999a2dd95SBruce Richardson 	uint16_t port_id;
4099a2dd95SBruce Richardson 
4199a2dd95SBruce Richardson 	/** NIC RX queue ID */
4299a2dd95SBruce Richardson 	uint16_t queue_id;
4399a2dd95SBruce Richardson 
4499a2dd95SBruce Richardson 	/** Recommended burst size to NIC TX queue. The actual burst size can be
4599a2dd95SBruce Richardson 	bigger or smaller than this value. */
4699a2dd95SBruce Richardson 	uint32_t tx_burst_sz;
4799a2dd95SBruce Richardson };
4899a2dd95SBruce Richardson 
4999a2dd95SBruce Richardson /** ethdev_writer port operations */
5099a2dd95SBruce Richardson extern struct rte_port_out_ops rte_port_ethdev_writer_ops;
5199a2dd95SBruce Richardson 
5299a2dd95SBruce Richardson /** ethdev_writer_nodrop port parameters */
5399a2dd95SBruce Richardson struct rte_port_ethdev_writer_nodrop_params {
5499a2dd95SBruce Richardson 	/** NIC RX port ID */
5599a2dd95SBruce Richardson 	uint16_t port_id;
5699a2dd95SBruce Richardson 
5799a2dd95SBruce Richardson 	/** NIC RX queue ID */
5899a2dd95SBruce Richardson 	uint16_t queue_id;
5999a2dd95SBruce Richardson 
6099a2dd95SBruce Richardson 	/** Recommended burst size to NIC TX queue. The actual burst size can be
6199a2dd95SBruce Richardson 	bigger or smaller than this value. */
6299a2dd95SBruce Richardson 	uint32_t tx_burst_sz;
6399a2dd95SBruce Richardson 
6499a2dd95SBruce Richardson 	/** Maximum number of retries, 0 for no limit */
6599a2dd95SBruce Richardson 	uint32_t n_retries;
6699a2dd95SBruce Richardson };
6799a2dd95SBruce Richardson 
6899a2dd95SBruce Richardson /** ethdev_writer_nodrop port operations */
6999a2dd95SBruce Richardson extern struct rte_port_out_ops rte_port_ethdev_writer_nodrop_ops;
7099a2dd95SBruce Richardson 
7199a2dd95SBruce Richardson #ifdef __cplusplus
7299a2dd95SBruce Richardson }
7399a2dd95SBruce Richardson #endif
7499a2dd95SBruce Richardson 
7599a2dd95SBruce Richardson #endif
76