1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright(c) 2010-2014 Intel Corporation 3 */ 4 5 #ifndef __INCLUDE_RTE_PORT_ETHDEV_H__ 6 #define __INCLUDE_RTE_PORT_ETHDEV_H__ 7 8 #ifdef __cplusplus 9 extern "C" { 10 #endif 11 12 /** 13 * @file 14 * RTE Port Ethernet Device 15 * 16 * ethdev_reader: input port built on top of pre-initialized NIC RX queue 17 * ethdev_writer: output port built on top of pre-initialized NIC TX queue 18 * 19 ***/ 20 21 #include <stdint.h> 22 23 #include "rte_port.h" 24 25 /** ethdev_reader port parameters */ 26 struct rte_port_ethdev_reader_params { 27 /** NIC RX port ID */ 28 uint16_t port_id; 29 30 /** NIC RX queue ID */ 31 uint16_t queue_id; 32 }; 33 34 /** ethdev_reader port operations */ 35 extern struct rte_port_in_ops rte_port_ethdev_reader_ops; 36 37 /** ethdev_writer port parameters */ 38 struct rte_port_ethdev_writer_params { 39 /** NIC RX port ID */ 40 uint16_t port_id; 41 42 /** NIC RX queue ID */ 43 uint16_t queue_id; 44 45 /** Recommended burst size to NIC TX queue. The actual burst size can be 46 bigger or smaller than this value. */ 47 uint32_t tx_burst_sz; 48 }; 49 50 /** ethdev_writer port operations */ 51 extern struct rte_port_out_ops rte_port_ethdev_writer_ops; 52 53 /** ethdev_writer_nodrop port parameters */ 54 struct rte_port_ethdev_writer_nodrop_params { 55 /** NIC RX port ID */ 56 uint16_t port_id; 57 58 /** NIC RX queue ID */ 59 uint16_t queue_id; 60 61 /** Recommended burst size to NIC TX queue. The actual burst size can be 62 bigger or smaller than this value. */ 63 uint32_t tx_burst_sz; 64 65 /** Maximum number of retries, 0 for no limit */ 66 uint32_t n_retries; 67 }; 68 69 /** ethdev_writer_nodrop port operations */ 70 extern struct rte_port_out_ops rte_port_ethdev_writer_nodrop_ops; 71 72 #ifdef __cplusplus 73 } 74 #endif 75 76 #endif 77