29 #include <rte_cycles.h>
30 #include <rte_launch.h>
31 #include <rte_ethdev.h>
46 #define DEFAULT_NB_METERS (1 << 13)
55 if (signum == SIGINT || signum == SIGTERM) {
56 DOCA_LOG_INFO(
"Signal %d received, preparing to exit", signum);
68 int main(
int argc,
char **argv)
71 int exit_status = EXIT_SUCCESS;
72 struct doca_log_backend *logger;
73 struct doca_log_backend *sdk_log;
77 .port_config.nb_queues = 4,
78 .port_config.nb_hairpin_q = 4,
79 .port_config.enable_mbuf_metadata = 1,
80 .reserve_main_thread =
true,
83 .dpdk_cfg = &dpdk_config,
86 .stats_timer = 100000,
92 struct doca_flow_tune_server_cfg *server_cfg;
138 exit_status = EXIT_FAILURE;
146 app_cfg.stats_timer *= rte_get_timer_hz();
154 if (vnf->
vnf_init(&port_cfg) != 0) {
156 exit_status = EXIT_FAILURE;
163 DOCA_LOG_ERR(
"Failed to create flow tune server configuration");
169 DOCA_LOG_DBG(
"DOCA Flow Tune Server isn't supported in this runtime version");
171 DOCA_LOG_ERR(
"Failed to initialize the flow tune server");
179 process_pkts_params.
vnf = vnf;
181 rte_eal_mp_wait_lcore();
doca_error_t dpdk_init(int argc, char **argv)
doca_error_t dpdk_queues_and_ports_init(struct application_dpdk_config *app_dpdk_config)
void dpdk_queues_and_ports_fini(struct application_dpdk_config *app_dpdk_config)
static struct app_gpu_cfg app_cfg
DOCA_EXPERIMENTAL doca_error_t doca_argp_start(int argc, char **argv)
Parse incoming arguments (cmd line/json).
DOCA_EXPERIMENTAL doca_error_t doca_argp_init(const char *program_name, void *program_config)
Initialize the parser interface.
DOCA_EXPERIMENTAL void doca_argp_set_dpdk_program(doca_argp_dpdk_cb_t callback)
Mark the program as based on DPDK API.
DOCA_EXPERIMENTAL doca_error_t doca_argp_destroy(void)
ARG Parser destroy.
enum doca_error doca_error_t
DOCA API return codes.
DOCA_STABLE const char * doca_error_get_descr(doca_error_t error)
Returns the description string of an error code.
@ DOCA_ERROR_NOT_SUPPORTED
DOCA_EXPERIMENTAL doca_error_t doca_flow_tune_server_init(struct doca_flow_tune_server_cfg *cfg)
Initialize a DOCA Flow Tune Server.
DOCA_EXPERIMENTAL doca_error_t doca_flow_tune_server_cfg_destroy(struct doca_flow_tune_server_cfg *cfg)
Destroy DOCA Flow Tune Server configuration struct.
DOCA_EXPERIMENTAL doca_error_t doca_flow_tune_server_cfg_create(struct doca_flow_tune_server_cfg **cfg)
Create DOCA Flow Tune Server configuration struct.
DOCA_EXPERIMENTAL void doca_flow_tune_server_destroy(void)
Destroy the DOCA Flow Tune Server.
DOCA_EXPERIMENTAL doca_error_t doca_log_backend_create_standard(void)
Create default, non configurable backend for application messages.
#define DOCA_LOG_ERR(format,...)
Generates an ERROR application log message.
#define DOCA_LOG_INFO(format,...)
Generates an INFO application log message.
DOCA_EXPERIMENTAL doca_error_t doca_log_backend_create_with_syslog(const char *name, struct doca_log_backend **backend)
Create a logging backend for application messages with a syslog output.
DOCA_EXPERIMENTAL doca_error_t doca_log_backend_create_with_file_sdk(FILE *fptr, struct doca_log_backend **backend)
Create a logging backend with a FILE* stream for SDK messages.
#define DOCA_LOG_DBG(format,...)
Generates a DEBUG application log message.
DOCA_EXPERIMENTAL doca_error_t doca_log_backend_set_sdk_level(struct doca_log_backend *backend, uint32_t level)
Set the log level limit for SDK logging backends.
struct app_vnf * simple_fwd_get_vnf(void)
static int simple_fwd_destroy(void)
#define DEFAULT_NB_METERS
int main(int argc, char **argv)
DOCA_LOG_REGISTER(SIMPLE_FWD_VNF)
static void signal_handler(int signum)
int simple_fwd_process_pkts(void *process_pkts_params)
void simple_fwd_process_pkts_stop(void)
void simple_fwd_map_queue(uint16_t nb_queues)
doca_error_t register_simple_fwd_params(void)
struct application_port_config port_config
struct simple_fwd_config * cfg