NVIDIA DOCA SDK Data Center on a Chip Framework Documentation
flow_switch_to_wire_sample.c File Reference
#include <string.h>
#include <unistd.h>
#include <rte_byteorder.h>
#include <rte_ethdev.h>
#include <rte_mempool.h>
#include <rte_mbuf.h>
#include <rte_net.h>
#include <doca_log.h>
#include <doca_flow.h>
#include <doca_dev.h>
#include "flow_common.h"
#include "flow_switch_common.h"
Include dependency graph for flow_switch_to_wire_sample.c:

Go to the source code of this file.

Macros

#define NB_EGRESS_ENTRIES   3
 
#define NB_INGRESS_ENTRIES   2
 
#define NB_VPORT_ENTRIES   3
 
#define NB_TOTAL_ENTRIES   (NB_EGRESS_ENTRIES + NB_INGRESS_ENTRIES + NB_VPORT_ENTRIES + 1)
 
#define MAX_PKTS   16
 
#define WAIT_SECS   15
 

Functions

 DOCA_LOG_REGISTER (FLOW_SWITCH_TO_WIRE)
 
static void handle_rx_tx_pkts (uint32_t port_id, uint16_t nb_queues)
 
static doca_error_t create_rss_pipe (struct doca_flow_port *port, struct doca_flow_pipe **pipe)
 
static doca_error_t add_rss_pipe_entry (struct doca_flow_pipe *pipe, struct entries_status *status)
 
static doca_error_t create_switch_egress_pipe (struct doca_flow_port *sw_port, struct doca_flow_pipe **pipe)
 
static doca_error_t create_switch_ingress_pipe (struct doca_flow_port *sw_port, uint32_t mirror_id, struct doca_flow_pipe **pipe)
 
static doca_error_t create_switch_vport_pipe (struct doca_flow_port *sw_port, struct doca_flow_pipe **pipe)
 
static doca_error_t add_switch_egress_pipe_entries (struct doca_flow_pipe *pipe, struct entries_status *status)
 
static doca_error_t add_switch_ingress_pipe_entries (struct doca_flow_pipe *pipe, struct entries_status *status)
 
static doca_error_t add_switch_vport_pipe_entries (struct doca_flow_pipe *pipe, struct entries_status *status)
 
doca_error_t flow_switch_to_wire (int nb_queues, int nb_ports, struct flow_switch_ctx *ctx)
 

Variables

static struct doca_flow_pipe * pipe_egress
 
static struct doca_flow_pipe * pipe_ingress
 
static struct doca_flow_pipe * pipe_rss
 
static struct doca_flow_pipe * pipe_vport
 
static struct doca_flow_pipe_entry * egress_entries [NB_EGRESS_ENTRIES]
 
static struct doca_flow_pipe_entry * ingress_entries [NB_INGRESS_ENTRIES]
 
static struct doca_flow_pipe_entry * vport_entries [NB_VPORT_ENTRIES]
 
static struct doca_flow_pipe_entry * rss_entry
 

Macro Definition Documentation

◆ MAX_PKTS

#define MAX_PKTS   16

Definition at line 52 of file flow_switch_to_wire_sample.c.

◆ NB_EGRESS_ENTRIES

#define NB_EGRESS_ENTRIES   3

Definition at line 44 of file flow_switch_to_wire_sample.c.

◆ NB_INGRESS_ENTRIES

#define NB_INGRESS_ENTRIES   2

Definition at line 46 of file flow_switch_to_wire_sample.c.

◆ NB_TOTAL_ENTRIES

#define NB_TOTAL_ENTRIES   (NB_EGRESS_ENTRIES + NB_INGRESS_ENTRIES + NB_VPORT_ENTRIES + 1)

Definition at line 50 of file flow_switch_to_wire_sample.c.

◆ NB_VPORT_ENTRIES

#define NB_VPORT_ENTRIES   3

Definition at line 48 of file flow_switch_to_wire_sample.c.

◆ WAIT_SECS

#define WAIT_SECS   15

Definition at line 54 of file flow_switch_to_wire_sample.c.

Function Documentation

◆ add_rss_pipe_entry()

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

Definition at line 201 of file flow_switch_to_wire_sample.c.

◆ add_switch_egress_pipe_entries()

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

Definition at line 461 of file flow_switch_to_wire_sample.c.

◆ add_switch_ingress_pipe_entries()

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

Definition at line 519 of file flow_switch_to_wire_sample.c.

◆ add_switch_vport_pipe_entries()

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

Definition at line 573 of file flow_switch_to_wire_sample.c.

◆ create_rss_pipe()

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

Definition at line 140 of file flow_switch_to_wire_sample.c.

◆ create_switch_egress_pipe()

static doca_error_t create_switch_egress_pipe ( struct doca_flow_port *  sw_port,
struct doca_flow_pipe **  pipe 
)
static

Definition at line 228 of file flow_switch_to_wire_sample.c.

◆ create_switch_ingress_pipe()

static doca_error_t create_switch_ingress_pipe ( struct doca_flow_port *  sw_port,
uint32_t  mirror_id,
struct doca_flow_pipe **  pipe 
)
static

Definition at line 305 of file flow_switch_to_wire_sample.c.

◆ create_switch_vport_pipe()

static doca_error_t create_switch_vport_pipe ( struct doca_flow_port *  sw_port,
struct doca_flow_pipe **  pipe 
)
static

Definition at line 388 of file flow_switch_to_wire_sample.c.

◆ DOCA_LOG_REGISTER()

DOCA_LOG_REGISTER ( FLOW_SWITCH_TO_WIRE  )

◆ flow_switch_to_wire()

doca_error_t flow_switch_to_wire ( int  nb_queues,
int  nb_ports,
struct flow_switch_ctx ctx 
)

Definition at line 625 of file flow_switch_to_wire_sample.c.

◆ handle_rx_tx_pkts()

static void handle_rx_tx_pkts ( uint32_t  port_id,
uint16_t  nb_queues 
)
static

Definition at line 78 of file flow_switch_to_wire_sample.c.

Variable Documentation

◆ egress_entries

struct doca_flow_pipe_entry* egress_entries[NB_EGRESS_ENTRIES]
static

Definition at line 62 of file flow_switch_to_wire_sample.c.

◆ ingress_entries

struct doca_flow_pipe_entry* ingress_entries[NB_INGRESS_ENTRIES]
static

Definition at line 65 of file flow_switch_to_wire_sample.c.

◆ pipe_egress

struct doca_flow_pipe* pipe_egress
static

Definition at line 56 of file flow_switch_to_wire_sample.c.

◆ pipe_ingress

struct doca_flow_pipe* pipe_ingress
static

Definition at line 57 of file flow_switch_to_wire_sample.c.

◆ pipe_rss

struct doca_flow_pipe* pipe_rss
static

Definition at line 58 of file flow_switch_to_wire_sample.c.

◆ pipe_vport

struct doca_flow_pipe* pipe_vport
static

Definition at line 59 of file flow_switch_to_wire_sample.c.

◆ rss_entry

struct doca_flow_pipe_entry* rss_entry
static

Definition at line 70 of file flow_switch_to_wire_sample.c.

◆ vport_entries

struct doca_flow_pipe_entry* vport_entries[NB_VPORT_ENTRIES]
static

Definition at line 68 of file flow_switch_to_wire_sample.c.