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

Go to the source code of this file.

Macros

#define NB_ACTION_DESC   (1)
 
#define TEST_LPM_EM_TAG   1
 
#define META_U32_BIT_OFFSET(idx)   (offsetof(struct doca_flow_meta, u32[(idx)]) << 3)
 

Functions

 DOCA_LOG_REGISTER (FLOW_LPM_EM)
 
static doca_error_t create_classifier_pipe (struct doca_flow_port *port, struct doca_flow_pipe *main_pipe, struct doca_flow_pipe **pipe)
 
static doca_error_t add_classifier_pipe_entry (struct doca_flow_pipe *pipe, struct entries_status *status, struct doca_flow_pipe_entry **entry)
 
static doca_error_t create_main_pipe (struct doca_flow_port *port, struct doca_flow_pipe *next_pipe, struct doca_flow_pipe **pipe)
 
static doca_error_t add_main_pipe_entry (struct doca_flow_pipe *pipe, struct entries_status *status, struct doca_flow_pipe_entry **entry)
 
static doca_error_t create_lpm_pipe (struct doca_flow_port *port, struct doca_flow_pipe **pipe)
 
static doca_error_t add_lpm_one_entry (struct doca_flow_pipe *pipe, uint16_t port_id, doca_be32_t src_ip_addr, doca_be32_t src_ip_addr_mask, uint32_t exact_match_meta, uint32_t exact_match_vni, uint8_t *exact_match_inner_dmac, const enum doca_flow_flags_type flag, struct entries_status *status, struct doca_flow_pipe_entry **entry)
 
static doca_error_t add_lpm_pipe_entries (struct doca_flow_pipe *pipe, uint16_t port_id, struct entries_status *status, struct doca_flow_pipe_entry **entries)
 
doca_error_t flow_lpm_em (int nb_queues)
 

Macro Definition Documentation

◆ META_U32_BIT_OFFSET

#define META_U32_BIT_OFFSET (   idx)    (offsetof(struct doca_flow_meta, u32[(idx)]) << 3)

Definition at line 39 of file flow_lpm_em_sample.c.

◆ NB_ACTION_DESC

#define NB_ACTION_DESC   (1)

Definition at line 37 of file flow_lpm_em_sample.c.

◆ TEST_LPM_EM_TAG

#define TEST_LPM_EM_TAG   1

Definition at line 38 of file flow_lpm_em_sample.c.

Function Documentation

◆ add_classifier_pipe_entry()

static doca_error_t add_classifier_pipe_entry ( struct doca_flow_pipe *  pipe,
struct entries_status status,
struct doca_flow_pipe_entry **  entry 
)
static

Definition at line 117 of file flow_lpm_em_sample.c.

◆ add_lpm_one_entry()

static doca_error_t add_lpm_one_entry ( struct doca_flow_pipe *  pipe,
uint16_t  port_id,
doca_be32_t  src_ip_addr,
doca_be32_t  src_ip_addr_mask,
uint32_t  exact_match_meta,
uint32_t  exact_match_vni,
uint8_t *  exact_match_inner_dmac,
const enum doca_flow_flags_type  flag,
struct entries_status status,
struct doca_flow_pipe_entry **  entry 
)
static

Definition at line 328 of file flow_lpm_em_sample.c.

◆ add_lpm_pipe_entries()

static doca_error_t add_lpm_pipe_entries ( struct doca_flow_pipe *  pipe,
uint16_t  port_id,
struct entries_status status,
struct doca_flow_pipe_entry **  entries 
)
static

Definition at line 377 of file flow_lpm_em_sample.c.

◆ add_main_pipe_entry()

static doca_error_t add_main_pipe_entry ( struct doca_flow_pipe *  pipe,
struct entries_status status,
struct doca_flow_pipe_entry **  entry 
)
static

Definition at line 228 of file flow_lpm_em_sample.c.

◆ create_classifier_pipe()

static doca_error_t create_classifier_pipe ( struct doca_flow_port *  port,
struct doca_flow_pipe *  main_pipe,
struct doca_flow_pipe **  pipe 
)
static

Definition at line 50 of file flow_lpm_em_sample.c.

◆ create_lpm_pipe()

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

Definition at line 250 of file flow_lpm_em_sample.c.

◆ create_main_pipe()

static doca_error_t create_main_pipe ( struct doca_flow_port *  port,
struct doca_flow_pipe *  next_pipe,
struct doca_flow_pipe **  pipe 
)
static

Definition at line 140 of file flow_lpm_em_sample.c.

◆ DOCA_LOG_REGISTER()

DOCA_LOG_REGISTER ( FLOW_LPM_EM  )

◆ flow_lpm_em()

doca_error_t flow_lpm_em ( int  nb_queues)

Definition at line 466 of file flow_lpm_em_sample.c.