xref: /dpdk/examples/multi_process/client_server_mp/mp_server/init.h (revision 3998e2a07220844d3f3c17f76a781ced3efe0de0)
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2010-2014 Intel Corporation
3  */
4 
5 #ifndef _INIT_H_
6 #define _INIT_H_
7 
8 /*
9  * #include <rte_ring.h>
10  * #include "args.h"
11  */
12 
13 /*
14  * Define a client structure with all needed info, including
15  * stats from the clients.
16  */
17 struct client {
18 	struct rte_ring *rx_q;
19 	unsigned client_id;
20 	/* these stats hold how many packets the client will actually receive,
21 	 * and how many packets were dropped because the client's queue was full.
22 	 * The port-info stats, in contrast, record how many packets were received
23 	 * or transmitted on an actual NIC port.
24 	 */
25 	struct {
26 		volatile uint64_t rx;
27 		volatile uint64_t rx_drop;
28 	} stats;
29 };
30 
31 extern struct client *clients;
32 
33 /* the shared port information: port numbers, rx and tx stats etc. */
34 extern struct port_info *ports;
35 
36 extern struct rte_mempool *pktmbuf_pool;
37 extern uint8_t num_clients;
38 extern unsigned num_sockets;
39 extern struct port_info *ports;
40 
41 int init(int argc, char *argv[]);
42 
43 #endif /* ifndef _INIT_H_ */
44