New upstream version 18.08
[deb_dpdk.git] / drivers / net / softnic / rte_eth_softnic.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2017 Intel Corporation
3  */
4
5 #ifndef __INCLUDE_RTE_ETH_SOFTNIC_H__
6 #define __INCLUDE_RTE_ETH_SOFTNIC_H__
7
8 #include <stdint.h>
9
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13
14 /** Firmware. */
15 #ifndef SOFTNIC_FIRMWARE
16 #define SOFTNIC_FIRMWARE                                   "firmware.cli"
17 #endif
18
19 /** TCP connection port (0 = no connectivity). */
20 #ifndef SOFTNIC_CONN_PORT
21 #define SOFTNIC_CONN_PORT                                  0
22 #endif
23
24 /** NUMA node ID. */
25 #ifndef SOFTNIC_CPU_ID
26 #define SOFTNIC_CPU_ID                                     0
27 #endif
28
29 /** Traffic Manager: Number of scheduler queues. */
30 #ifndef SOFTNIC_TM_N_QUEUES
31 #define SOFTNIC_TM_N_QUEUES                                (64 * 1024)
32 #endif
33
34 /** Traffic Manager: Scheduler queue size (per traffic class). */
35 #ifndef SOFTNIC_TM_QUEUE_SIZE
36 #define SOFTNIC_TM_QUEUE_SIZE                              64
37 #endif
38
39 /**
40  * Soft NIC run.
41  *
42  * @param port_id
43  *    Port ID of the Soft NIC device.
44  * @return
45  *    Zero on success, error code otherwise.
46  */
47 int
48 rte_pmd_softnic_run(uint16_t port_id);
49
50 /**
51  * Soft NIC manage.
52  *
53  * @param port_id
54  *    Port ID of the Soft NIC device.
55  * @return
56  *    Zero on success, error code otherwise.
57  */
58 int __rte_experimental
59 rte_pmd_softnic_manage(uint16_t port_id);
60
61 #ifdef __cplusplus
62 }
63 #endif
64
65 #endif /* __INCLUDE_RTE_ETH_SOFTNIC_H__ */