2017-12-19 15:49:01 +00:00
|
|
|
/* SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
* Copyright(c) 2017 Intel Corporation
|
2017-10-10 10:18:14 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __INCLUDE_RTE_ETH_SOFTNIC_H__
|
|
|
|
#define __INCLUDE_RTE_ETH_SOFTNIC_H__
|
|
|
|
|
|
|
|
#include <stdint.h>
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
2018-07-06 17:20:54 +00:00
|
|
|
/** Firmware. */
|
|
|
|
#ifndef SOFTNIC_FIRMWARE
|
|
|
|
#define SOFTNIC_FIRMWARE "firmware.cli"
|
2017-10-10 10:18:15 +00:00
|
|
|
#endif
|
|
|
|
|
2018-07-06 17:21:06 +00:00
|
|
|
/** TCP connection port (0 = no connectivity). */
|
|
|
|
#ifndef SOFTNIC_CONN_PORT
|
|
|
|
#define SOFTNIC_CONN_PORT 0
|
|
|
|
#endif
|
|
|
|
|
2018-07-06 17:20:54 +00:00
|
|
|
/** NUMA node ID. */
|
|
|
|
#ifndef SOFTNIC_CPU_ID
|
|
|
|
#define SOFTNIC_CPU_ID 0
|
2017-10-10 10:18:14 +00:00
|
|
|
#endif
|
|
|
|
|
2019-01-10 13:26:25 +00:00
|
|
|
/**
|
|
|
|
* Service cores:
|
|
|
|
*
|
|
|
|
* 0 = The current device is run explicitly by the application. The firmware
|
|
|
|
* creates one or several pipelines for the current device and maps them to
|
|
|
|
* CPU cores that should not be service cores. The application is required
|
|
|
|
* to call rte_pmd_softnic_run() for the current device on each of these CPU
|
|
|
|
* cores in order to make the current device work.
|
|
|
|
*
|
|
|
|
* 1 = The current device is run on the service cores transparently to the
|
|
|
|
* application. The firmware creates one or several pipelines for the
|
|
|
|
* current device and maps them to CPU cores that should be service cores.
|
|
|
|
* Each of these service cores is calling rte_pmd_softnic_run() for the
|
|
|
|
* current device in order to make the current device work. The application
|
|
|
|
* is not allowed to call rte_pmd_softnic_run() for the current device.
|
|
|
|
*/
|
|
|
|
#ifndef SOFTNIC_SC
|
|
|
|
#define SOFTNIC_SC 1
|
|
|
|
#endif
|
|
|
|
|
2018-07-06 17:20:59 +00:00
|
|
|
/** Traffic Manager: Number of scheduler queues. */
|
|
|
|
#ifndef SOFTNIC_TM_N_QUEUES
|
|
|
|
#define SOFTNIC_TM_N_QUEUES (64 * 1024)
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/** Traffic Manager: Scheduler queue size (per traffic class). */
|
|
|
|
#ifndef SOFTNIC_TM_QUEUE_SIZE
|
|
|
|
#define SOFTNIC_TM_QUEUE_SIZE 64
|
|
|
|
#endif
|
|
|
|
|
2017-10-10 10:18:14 +00:00
|
|
|
/**
|
2018-07-06 17:20:54 +00:00
|
|
|
* Soft NIC run.
|
2017-10-10 10:18:14 +00:00
|
|
|
*
|
2018-07-06 17:20:54 +00:00
|
|
|
* @param port_id
|
|
|
|
* Port ID of the Soft NIC device.
|
2017-10-10 10:18:14 +00:00
|
|
|
* @return
|
2018-07-06 17:20:54 +00:00
|
|
|
* Zero on success, error code otherwise.
|
2017-10-10 10:18:14 +00:00
|
|
|
*/
|
|
|
|
int
|
|
|
|
rte_pmd_softnic_run(uint16_t port_id);
|
|
|
|
|
2018-07-06 17:21:06 +00:00
|
|
|
/**
|
|
|
|
* Soft NIC manage.
|
|
|
|
*
|
|
|
|
* @param port_id
|
|
|
|
* Port ID of the Soft NIC device.
|
|
|
|
* @return
|
|
|
|
* Zero on success, error code otherwise.
|
|
|
|
*/
|
2019-06-29 11:58:53 +00:00
|
|
|
int
|
2018-07-06 17:21:06 +00:00
|
|
|
rte_pmd_softnic_manage(uint16_t port_id);
|
|
|
|
|
2017-10-10 10:18:14 +00:00
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif /* __INCLUDE_RTE_ETH_SOFTNIC_H__ */
|