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