1*d30ea906Sjfb8856606 /* SPDX-License-Identifier: BSD-3-Clause 2*d30ea906Sjfb8856606 * Copyright(c) 2016-2017 Intel Corporation 32bfe3f2eSlogwang */ 42bfe3f2eSlogwang 52bfe3f2eSlogwang #ifndef _INIT_H_ 62bfe3f2eSlogwang #define _INIT_H_ 72bfe3f2eSlogwang 82bfe3f2eSlogwang /* 92bfe3f2eSlogwang * #include <rte_ring.h> 102bfe3f2eSlogwang * #include "args.h" 112bfe3f2eSlogwang */ 122bfe3f2eSlogwang 132bfe3f2eSlogwang /* 142bfe3f2eSlogwang * Define a node structure with all needed info, including 152bfe3f2eSlogwang * stats from the nodes. 162bfe3f2eSlogwang */ 172bfe3f2eSlogwang struct node { 182bfe3f2eSlogwang struct rte_ring *rx_q; 192bfe3f2eSlogwang unsigned int node_id; 202bfe3f2eSlogwang /* these stats hold how many packets the node will actually receive, 212bfe3f2eSlogwang * and how many packets were dropped because the node's queue was full. 222bfe3f2eSlogwang * The port-info stats, in contrast, record how many packets were received 232bfe3f2eSlogwang * or transmitted on an actual NIC port. 242bfe3f2eSlogwang */ 252bfe3f2eSlogwang struct { 262bfe3f2eSlogwang uint64_t rx; 272bfe3f2eSlogwang uint64_t rx_drop; 282bfe3f2eSlogwang } stats; 292bfe3f2eSlogwang }; 302bfe3f2eSlogwang 312bfe3f2eSlogwang extern struct rte_efd_table *efd_table; 322bfe3f2eSlogwang extern struct node *nodes; 332bfe3f2eSlogwang 342bfe3f2eSlogwang /* 352bfe3f2eSlogwang * shared information between server and nodes: number of nodes, 362bfe3f2eSlogwang * port numbers, rx and tx stats etc. 372bfe3f2eSlogwang */ 382bfe3f2eSlogwang extern struct shared_info *info; 392bfe3f2eSlogwang 402bfe3f2eSlogwang extern struct rte_mempool *pktmbuf_pool; 412bfe3f2eSlogwang extern uint8_t num_nodes; 422bfe3f2eSlogwang extern unsigned int num_sockets; 432bfe3f2eSlogwang extern uint32_t num_flows; 442bfe3f2eSlogwang 452bfe3f2eSlogwang int init(int argc, char *argv[]); 462bfe3f2eSlogwang 472bfe3f2eSlogwang #endif /* ifndef _INIT_H_ */ 48