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

Go to the source code of this file.

Macros

#define WAITING_TIME   5
 

Enumerations

enum  {
  ROOT , IP_SELECTOR , IPV4 , MODIFY ,
  PUSH , NUMBER_OF_PIPES
}
 

Functions

 DOCA_LOG_REGISTER (FLOW_FWD_MISS)
 
static doca_error_t create_pipe_cfg (struct doca_flow_port *port, const char *name, struct doca_flow_match *match, struct doca_flow_actions **actions, struct doca_flow_action_descs **descs, uint32_t nb_actions, uint32_t nb_flows, bool is_root, bool miss_counter, struct doca_flow_pipe_cfg **pipe_cfg)
 
static doca_error_t destroy_pipe_cfg (struct doca_flow_pipe_cfg *cfg)
 
static doca_error_t create_basic_pipe (struct doca_flow_port *port, const char *name, struct doca_flow_match *match, struct doca_flow_actions **actions, struct doca_flow_action_descs **descs, struct doca_flow_fwd *fwd, struct doca_flow_fwd *fwd_miss, uint32_t nb_actions, uint32_t nb_flows, bool is_root, bool miss_counter, struct doca_flow_pipe **pipe)
 
static doca_error_t create_modify_pipe (struct doca_flow_port *port, struct doca_flow_fwd *fwd, struct entries_status *status, struct doca_flow_pipe **pipe_ptr)
 
static doca_error_t create_push_pipe (struct doca_flow_port *port, struct doca_flow_fwd *fwd, struct entries_status *status, struct doca_flow_pipe **pipe_ptr)
 
static doca_error_t create_ipv4_pipe (struct doca_flow_port *port, struct doca_flow_fwd *fwd, struct doca_flow_pipe *modify_pipe, struct entries_status *status, struct doca_flow_pipe **pipe_ptr)
 
static doca_error_t create_ip_selector_pipe (struct doca_flow_port *port, struct doca_flow_pipe *ipv4_pipe, struct doca_flow_pipe *modify_pipe, struct entries_status *status, struct doca_flow_pipe **pipe_ptr)
 
static doca_error_t create_root_pipe (struct doca_flow_port *port, struct doca_flow_pipe *next_pipe, struct entries_status *status, struct doca_flow_pipe **pipe_ptr)
 
static doca_error_t miss_counters_query (struct doca_flow_pipe *root_pipe, struct doca_flow_pipe *ip_selector_pipe, bool miss_is_updated, int port_id)
 
static doca_error_t update_miss_fwd_next_pipe (struct doca_flow_pipe *pipe, struct doca_flow_pipe *next_pipe)
 
doca_error_t flow_fwd_miss (int nb_queues)
 

Macro Definition Documentation

◆ WAITING_TIME

#define WAITING_TIME   5

Definition at line 40 of file flow_fwd_miss_sample.c.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
ROOT 
IP_SELECTOR 
IPV4 
MODIFY 
PUSH 
NUMBER_OF_PIPES 

Definition at line 491 of file flow_fwd_miss_sample.c.

Function Documentation

◆ create_basic_pipe()

static doca_error_t create_basic_pipe ( struct doca_flow_port *  port,
const char *  name,
struct doca_flow_match match,
struct doca_flow_actions **  actions,
struct doca_flow_action_descs **  descs,
struct doca_flow_fwd fwd,
struct doca_flow_fwd fwd_miss,
uint32_t  nb_actions,
uint32_t  nb_flows,
bool  is_root,
bool  miss_counter,
struct doca_flow_pipe **  pipe 
)
static

Definition at line 146 of file flow_fwd_miss_sample.c.

◆ create_ip_selector_pipe()

static doca_error_t create_ip_selector_pipe ( struct doca_flow_port *  port,
struct doca_flow_pipe *  ipv4_pipe,
struct doca_flow_pipe *  modify_pipe,
struct entries_status status,
struct doca_flow_pipe **  pipe_ptr 
)
static

Definition at line 345 of file flow_fwd_miss_sample.c.

◆ create_ipv4_pipe()

static doca_error_t create_ipv4_pipe ( struct doca_flow_port *  port,
struct doca_flow_fwd fwd,
struct doca_flow_pipe *  modify_pipe,
struct entries_status status,
struct doca_flow_pipe **  pipe_ptr 
)
static

Definition at line 302 of file flow_fwd_miss_sample.c.

◆ create_modify_pipe()

static doca_error_t create_modify_pipe ( struct doca_flow_port *  port,
struct doca_flow_fwd fwd,
struct entries_status status,
struct doca_flow_pipe **  pipe_ptr 
)
static

Definition at line 195 of file flow_fwd_miss_sample.c.

◆ create_pipe_cfg()

static doca_error_t create_pipe_cfg ( struct doca_flow_port *  port,
const char *  name,
struct doca_flow_match match,
struct doca_flow_actions **  actions,
struct doca_flow_action_descs **  descs,
uint32_t  nb_actions,
uint32_t  nb_flows,
bool  is_root,
bool  miss_counter,
struct doca_flow_pipe_cfg **  pipe_cfg 
)
static

Definition at line 57 of file flow_fwd_miss_sample.c.

◆ create_push_pipe()

static doca_error_t create_push_pipe ( struct doca_flow_port *  port,
struct doca_flow_fwd fwd,
struct entries_status status,
struct doca_flow_pipe **  pipe_ptr 
)
static

Definition at line 258 of file flow_fwd_miss_sample.c.

◆ create_root_pipe()

static doca_error_t create_root_pipe ( struct doca_flow_port *  port,
struct doca_flow_pipe *  next_pipe,
struct entries_status status,
struct doca_flow_pipe **  pipe_ptr 
)
static

Definition at line 395 of file flow_fwd_miss_sample.c.

◆ destroy_pipe_cfg()

static doca_error_t destroy_pipe_cfg ( struct doca_flow_pipe_cfg *  cfg)
static

Definition at line 124 of file flow_fwd_miss_sample.c.

◆ DOCA_LOG_REGISTER()

DOCA_LOG_REGISTER ( FLOW_FWD_MISS  )

◆ flow_fwd_miss()

doca_error_t flow_fwd_miss ( int  nb_queues)

Definition at line 506 of file flow_fwd_miss_sample.c.

◆ miss_counters_query()

static doca_error_t miss_counters_query ( struct doca_flow_pipe *  root_pipe,
struct doca_flow_pipe *  ip_selector_pipe,
bool  miss_is_updated,
int  port_id 
)
static

Definition at line 442 of file flow_fwd_miss_sample.c.

◆ update_miss_fwd_next_pipe()

static doca_error_t update_miss_fwd_next_pipe ( struct doca_flow_pipe *  pipe,
struct doca_flow_pipe *  next_pipe 
)
static

Definition at line 484 of file flow_fwd_miss_sample.c.