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