NVIDIA DOCA SDK Data Center on a Chip Framework Documentation
flow_loopback_sample.c File Reference
#include <string.h>
#include <unistd.h>
#include <stdint.h>
#include <signal.h>
#include <rte_ethdev.h>
#include <doca_log.h>
#include <doca_flow.h>
#include <doca_bitfield.h>
#include "flow_common.h"
Include dependency graph for flow_loopback_sample.c:

Go to the source code of this file.

Macros

#define PACKET_BURST   128 /* The number of packets in the rx queue */
 

Functions

 DOCA_LOG_REGISTER (FLOW_LOOPBACK)
 
static void signal_handler (int signum)
 
static void process_packets (int ingress_port)
 
static doca_error_t create_rss_tcp_ip_pipe (struct doca_flow_port *port, struct doca_flow_pipe *miss_pipe, struct doca_flow_pipe **pipe)
 
static doca_error_t add_rss_tcp_ip_pipe_entry (struct doca_flow_pipe *pipe, struct entries_status *status)
 
static doca_error_t create_rss_udp_ip_pipe (struct doca_flow_port *port, struct doca_flow_pipe **pipe)
 
static doca_error_t add_rss_rss_udp_ip_pipe_entry (struct doca_flow_pipe *pipe, struct entries_status *status)
 
static doca_error_t create_loopback_pipe (struct doca_flow_port *port, uint16_t port_id, struct doca_flow_pipe **pipe)
 
static doca_error_t add_loopback_pipe_entry (struct doca_flow_pipe *pipe, struct entries_status *status, uint8_t dst_mac[6])
 
static int populate_macs (const int nb_ports, uint8_t mac_addresses[2][6])
 
doca_error_t flow_loopback (int nb_queues, uint8_t mac_addresses[2][6])
 

Variables

static bool force_quit = false
 

Macro Definition Documentation

◆ PACKET_BURST

#define PACKET_BURST   128 /* The number of packets in the rx queue */

Definition at line 41 of file flow_loopback_sample.c.

Function Documentation

◆ add_loopback_pipe_entry()

static doca_error_t add_loopback_pipe_entry ( struct doca_flow_pipe *  pipe,
struct entries_status status,
uint8_t  dst_mac[6] 
)
static

Definition at line 401 of file flow_loopback_sample.c.

◆ add_rss_rss_udp_ip_pipe_entry()

static doca_error_t add_rss_rss_udp_ip_pipe_entry ( struct doca_flow_pipe *  pipe,
struct entries_status status 
)
static

Definition at line 275 of file flow_loopback_sample.c.

◆ add_rss_tcp_ip_pipe_entry()

static doca_error_t add_rss_tcp_ip_pipe_entry ( struct doca_flow_pipe *  pipe,
struct entries_status status 
)
static

Definition at line 166 of file flow_loopback_sample.c.

◆ create_loopback_pipe()

static doca_error_t create_loopback_pipe ( struct doca_flow_port *  port,
uint16_t  port_id,
struct doca_flow_pipe **  pipe 
)
static

Definition at line 310 of file flow_loopback_sample.c.

◆ create_rss_tcp_ip_pipe()

static doca_error_t create_rss_tcp_ip_pipe ( struct doca_flow_port *  port,
struct doca_flow_pipe *  miss_pipe,
struct doca_flow_pipe **  pipe 
)
static

Definition at line 89 of file flow_loopback_sample.c.

◆ create_rss_udp_ip_pipe()

static doca_error_t create_rss_udp_ip_pipe ( struct doca_flow_port *  port,
struct doca_flow_pipe **  pipe 
)
static

Definition at line 203 of file flow_loopback_sample.c.

◆ DOCA_LOG_REGISTER()

DOCA_LOG_REGISTER ( FLOW_LOOPBACK  )

◆ flow_loopback()

doca_error_t flow_loopback ( int  nb_queues,
uint8_t  mac_addresses[2][6] 
)

Definition at line 501 of file flow_loopback_sample.c.

◆ populate_macs()

static int populate_macs ( const int  nb_ports,
uint8_t  mac_addresses[2][6] 
)
static

Definition at line 457 of file flow_loopback_sample.c.

◆ process_packets()

static void process_packets ( int  ingress_port)
static

Definition at line 63 of file flow_loopback_sample.c.

◆ signal_handler()

static void signal_handler ( int  signum)
static

Definition at line 50 of file flow_loopback_sample.c.

Variable Documentation

◆ force_quit

bool force_quit = false
static

Definition at line 43 of file flow_loopback_sample.c.