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