NVIDIA DOCA SDK Data Center on a Chip Framework Documentation
simple_fwd_vnf_core.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
#include <sys/time.h>
#include <inttypes.h>
#include <sys/types.h>
#include <sys/queue.h>
#include <netinet/in.h>
#include <setjmp.h>
#include <stdarg.h>
#include <ctype.h>
#include <errno.h>
#include <stdbool.h>
#include <rte_eal.h>
#include <rte_common.h>
#include <rte_malloc.h>
#include <rte_ether.h>
#include <rte_ethdev.h>
#include <rte_mempool.h>
#include <rte_mbuf.h>
#include <rte_net.h>
#include <rte_flow.h>
#include <doca_argp.h>
#include <doca_flow.h>
#include <doca_log.h>
#include <dpdk_utils.h>
#include <utils.h>
#include "simple_fwd_ft.h"
#include "simple_fwd_port.h"
#include "simple_fwd_vnf_core.h"
Include dependency graph for simple_fwd_vnf_core.c:

Go to the source code of this file.

Data Structures

struct  vnf_per_core_params
 

Macros

#define VNF_PKT_L2(M)   rte_pktmbuf_mtod(M, uint8_t *) /* A marco that points to the start of the data in the mbuf */
 
#define VNF_PKT_LEN(M)   rte_pktmbuf_pkt_len(M) /* A marco that returns the length of the packet */
 
#define VNF_RX_BURST_SIZE   (32) /* Burst size of packets to read, RX burst read size */
 

Functions

 DOCA_LOG_REGISTER (SIMPLE_FWD_VNF :Core)
 
static void vnf_adjust_mbuf (struct rte_mbuf *m, struct simple_fwd_pkt_info *pinfo)
 
static void simple_fwd_process_offload (struct rte_mbuf *mbuf, uint16_t queue_id, struct app_vnf *vnf)
 
int simple_fwd_process_pkts (void *process_pkts_params)
 
void simple_fwd_process_pkts_stop (void)
 
static doca_error_t stats_callback (void *param, void *config)
 
static doca_error_t nr_queues_callback (void *param, void *config)
 
static doca_error_t rx_only_callback (void *param, void *config)
 
static doca_error_t hw_offload_callback (void *param, void *config)
 
static doca_error_t hairpinq_callback (void *param, void *config)
 
static doca_error_t age_thread_callback (void *param, void *config)
 
doca_error_t register_simple_fwd_params (void)
 
void simple_fwd_map_queue (uint16_t nb_queues)
 
void simple_fwd_destroy (struct app_vnf *vnf)
 

Variables

static volatile bool force_quit
 
static struct vnf_per_core_params core_params_arr [RTE_MAX_LCORE]
 

Macro Definition Documentation

◆ VNF_PKT_L2

#define VNF_PKT_L2 (   M)    rte_pktmbuf_mtod(M, uint8_t *) /* A marco that points to the start of the data in the mbuf */

Definition at line 64 of file simple_fwd_vnf_core.c.

◆ VNF_PKT_LEN

#define VNF_PKT_LEN (   M)    rte_pktmbuf_pkt_len(M) /* A marco that returns the length of the packet */

Definition at line 65 of file simple_fwd_vnf_core.c.

◆ VNF_RX_BURST_SIZE

#define VNF_RX_BURST_SIZE   (32) /* Burst size of packets to read, RX burst read size */

Definition at line 66 of file simple_fwd_vnf_core.c.

Function Documentation

◆ age_thread_callback()

static doca_error_t age_thread_callback ( void *  param,
void *  config 
)
static

Definition at line 264 of file simple_fwd_vnf_core.c.

◆ DOCA_LOG_REGISTER()

DOCA_LOG_REGISTER ( SIMPLE_FWD_VNF :Core  )

◆ hairpinq_callback()

static doca_error_t hairpinq_callback ( void *  param,
void *  config 
)
static

Definition at line 248 of file simple_fwd_vnf_core.c.

◆ hw_offload_callback()

static doca_error_t hw_offload_callback ( void *  param,
void *  config 
)
static

Definition at line 232 of file simple_fwd_vnf_core.c.

◆ nr_queues_callback()

static doca_error_t nr_queues_callback ( void *  param,
void *  config 
)
static

Definition at line 194 of file simple_fwd_vnf_core.c.

◆ register_simple_fwd_params()

doca_error_t register_simple_fwd_params ( void  )

Definition at line 278 of file simple_fwd_vnf_core.c.

◆ rx_only_callback()

static doca_error_t rx_only_callback ( void *  param,
void *  config 
)
static

Definition at line 216 of file simple_fwd_vnf_core.c.

◆ simple_fwd_destroy()

void simple_fwd_destroy ( struct app_vnf vnf)

Definition at line 416 of file simple_fwd_vnf_core.c.

◆ simple_fwd_map_queue()

void simple_fwd_map_queue ( uint16_t  nb_queues)

Definition at line 397 of file simple_fwd_vnf_core.c.

◆ simple_fwd_process_offload()

static void simple_fwd_process_offload ( struct rte_mbuf *  mbuf,
uint16_t  queue_id,
struct app_vnf vnf 
)
static

Definition at line 104 of file simple_fwd_vnf_core.c.

◆ simple_fwd_process_pkts()

int simple_fwd_process_pkts ( void *  process_pkts_params)

Definition at line 121 of file simple_fwd_vnf_core.c.

◆ simple_fwd_process_pkts_stop()

void simple_fwd_process_pkts_stop ( void  )

Definition at line 166 of file simple_fwd_vnf_core.c.

◆ stats_callback()

static doca_error_t stats_callback ( void *  param,
void *  config 
)
static

Definition at line 178 of file simple_fwd_vnf_core.c.

◆ vnf_adjust_mbuf()

static void vnf_adjust_mbuf ( struct rte_mbuf *  m,
struct simple_fwd_pkt_info pinfo 
)
static

Definition at line 87 of file simple_fwd_vnf_core.c.

Variable Documentation

◆ core_params_arr

struct vnf_per_core_params core_params_arr[RTE_MAX_LCORE]
static

Definition at line 69 of file simple_fwd_vnf_core.c.

◆ force_quit

volatile bool force_quit
static

Definition at line 69 of file simple_fwd_vnf_core.c.