xref: /dpdk/examples/server_node_efd/efd_server/init.h (revision 7faf4bd32566446fa0815eef743523ce6a95a355)
1*7faf4bd3SDavid Marchand /* SPDX-License-Identifier: BSD-3-Clause
2*7faf4bd3SDavid Marchand  * Copyright(c) 2016-2017 Intel Corporation
3*7faf4bd3SDavid Marchand  */
4*7faf4bd3SDavid Marchand 
5*7faf4bd3SDavid Marchand #ifndef _INIT_H_
6*7faf4bd3SDavid Marchand #define _INIT_H_
7*7faf4bd3SDavid Marchand 
8*7faf4bd3SDavid Marchand /*
9*7faf4bd3SDavid Marchand  * #include <rte_ring.h>
10*7faf4bd3SDavid Marchand  * #include "args.h"
11*7faf4bd3SDavid Marchand  */
12*7faf4bd3SDavid Marchand 
13*7faf4bd3SDavid Marchand /*
14*7faf4bd3SDavid Marchand  * Define a node structure with all needed info, including
15*7faf4bd3SDavid Marchand  * stats from the nodes.
16*7faf4bd3SDavid Marchand  */
17*7faf4bd3SDavid Marchand struct node {
18*7faf4bd3SDavid Marchand 	struct rte_ring *rx_q;
19*7faf4bd3SDavid Marchand 	unsigned int node_id;
20*7faf4bd3SDavid Marchand 	/* these stats hold how many packets the node will actually receive,
21*7faf4bd3SDavid Marchand 	 * and how many packets were dropped because the node's queue was full.
22*7faf4bd3SDavid Marchand 	 * The port-info stats, in contrast, record how many packets were received
23*7faf4bd3SDavid Marchand 	 * or transmitted on an actual NIC port.
24*7faf4bd3SDavid Marchand 	 */
25*7faf4bd3SDavid Marchand 	struct {
26*7faf4bd3SDavid Marchand 		uint64_t rx;
27*7faf4bd3SDavid Marchand 		uint64_t rx_drop;
28*7faf4bd3SDavid Marchand 	} stats;
29*7faf4bd3SDavid Marchand };
30*7faf4bd3SDavid Marchand 
31*7faf4bd3SDavid Marchand extern struct rte_efd_table *efd_table;
32*7faf4bd3SDavid Marchand extern struct node *nodes;
33*7faf4bd3SDavid Marchand 
34*7faf4bd3SDavid Marchand /*
35*7faf4bd3SDavid Marchand  * shared information between server and nodes: number of nodes,
36*7faf4bd3SDavid Marchand  * port numbers, rx and tx stats etc.
37*7faf4bd3SDavid Marchand  */
38*7faf4bd3SDavid Marchand extern struct shared_info *info;
39*7faf4bd3SDavid Marchand 
40*7faf4bd3SDavid Marchand extern struct rte_mempool *pktmbuf_pool;
41*7faf4bd3SDavid Marchand extern uint8_t num_nodes;
42*7faf4bd3SDavid Marchand extern unsigned int num_sockets;
43*7faf4bd3SDavid Marchand extern uint32_t num_flows;
44*7faf4bd3SDavid Marchand 
45*7faf4bd3SDavid Marchand int init(int argc, char *argv[]);
46*7faf4bd3SDavid Marchand 
47*7faf4bd3SDavid Marchand #endif /* ifndef _INIT_H_ */
48