xref: /dpdk/app/graph/ethdev_priv.h (revision 0f32dac4bbf74761972249090523f4581ca13126)
13850cb06SSunil Kumar Kori /* SPDX-License-Identifier: BSD-3-Clause
23850cb06SSunil Kumar Kori  * Copyright(c) 2023 Marvell.
33850cb06SSunil Kumar Kori  */
43850cb06SSunil Kumar Kori 
53850cb06SSunil Kumar Kori #ifndef APP_GRAPH_ETHDEV_PRIV_H
63850cb06SSunil Kumar Kori #define APP_GRAPH_ETHDEV_PRIV_H
73850cb06SSunil Kumar Kori 
83850cb06SSunil Kumar Kori #include "ethdev.h"
93850cb06SSunil Kumar Kori 
103850cb06SSunil Kumar Kori #define NS_PER_SEC 1E9
113850cb06SSunil Kumar Kori 
123850cb06SSunil Kumar Kori #define ETHDEV_RXQ_RSS_MAX	16
133850cb06SSunil Kumar Kori #define ETHDEV_RX_DESC_DEFAULT 1024
143850cb06SSunil Kumar Kori #define ETHDEV_TX_DESC_DEFAULT 1024
153850cb06SSunil Kumar Kori 
163850cb06SSunil Kumar Kori struct ethdev_rss_config {
173850cb06SSunil Kumar Kori 	uint32_t queue_id[ETHDEV_RXQ_RSS_MAX];
183850cb06SSunil Kumar Kori 	uint32_t n_queues;
193850cb06SSunil Kumar Kori };
203850cb06SSunil Kumar Kori 
213850cb06SSunil Kumar Kori struct ethdev_config {
223850cb06SSunil Kumar Kori 	char dev_name[RTE_ETH_NAME_MAX_LEN];
233850cb06SSunil Kumar Kori 	uint16_t port_id;
243850cb06SSunil Kumar Kori 
253850cb06SSunil Kumar Kori 	struct {
263850cb06SSunil Kumar Kori 		uint32_t n_queues;
273850cb06SSunil Kumar Kori 		uint32_t queue_size;
283850cb06SSunil Kumar Kori 		char mempool_name[RTE_MEMPOOL_NAMESIZE];
293850cb06SSunil Kumar Kori 		struct rte_mempool *mp;
303850cb06SSunil Kumar Kori 		struct ethdev_rss_config *rss;
313850cb06SSunil Kumar Kori 	} rx;
323850cb06SSunil Kumar Kori 
333850cb06SSunil Kumar Kori 	struct {
343850cb06SSunil Kumar Kori 		uint32_t n_queues;
353850cb06SSunil Kumar Kori 		uint32_t queue_size;
363850cb06SSunil Kumar Kori 	} tx;
373850cb06SSunil Kumar Kori 
383850cb06SSunil Kumar Kori 	int promiscuous;
393850cb06SSunil Kumar Kori 	uint32_t mtu;
403850cb06SSunil Kumar Kori };
413850cb06SSunil Kumar Kori 
423850cb06SSunil Kumar Kori struct ethdev {
433850cb06SSunil Kumar Kori 	TAILQ_ENTRY(ethdev) next;
44*0eb39f1dSRakesh Kudurumalla 	uint16_t tx_port_id;
453850cb06SSunil Kumar Kori 	struct ethdev_config config;
463850cb06SSunil Kumar Kori 	struct ipv4_addr_config ip4_addr;
473850cb06SSunil Kumar Kori 	struct ipv6_addr_config ip6_addr;
483850cb06SSunil Kumar Kori };
493850cb06SSunil Kumar Kori TAILQ_HEAD(ethdev_head, ethdev);
503850cb06SSunil Kumar Kori #endif
51