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

Go to the source code of this file.

Data Structures

struct  entry_ctx
 

Macros

#define PIPE_SIZE   10
 
#define PERCENTAGE   80
 
#define MAX_ENTRIES   80
 

Functions

 DOCA_LOG_REGISTER (FLOW_PIPE_RESIZE)
 
static doca_error_t pipe_resize_sample_nr_entries_changed_cb (void *pipe_user_ctx, uint32_t nr_entries)
 
static doca_error_t pipe_resize_sample_entry_relocate_cb (void *pipe_user_ctx, uint16_t pipe_queue, void *entry_user_ctx, void **new_entry_user_ctx)
 
static doca_error_t create_resizable_pipe (struct doca_flow_port *port, bool is_basic_pipe, uint16_t nb_queues, struct doca_flow_pipe **pipe)
 
static void remove_resizable_pipe_entries (void)
 
static doca_error_t add_resizable_pipe_entries (struct doca_flow_pipe *pipe, int port_id, uint16_t nb_queues, bool is_basic_pipe)
 
static void pipe_process_cb (struct doca_flow_pipe *pipe, enum doca_flow_pipe_status status, enum doca_flow_pipe_op op, void *user_ctx)
 
doca_error_t flow_pipe_resize (uint16_t nb_queues, struct flow_switch_ctx *ctx, bool is_basic_pipe)
 

Variables

static bool resize_cb_received
 
static bool congestion_notified
 
static int congestion_reached_flag
 
static struct doca_flow_port * ports [3]
 
static struct doca_flow_pipe_entry * entry [MAX_ENTRIES]
 
static struct entry_ctx entry_ctx [MAX_ENTRIES]
 
static doca_flow_pipe_resize_nr_entries_changed_cb nr_entries_changed_cb = pipe_resize_sample_nr_entries_changed_cb
 
static doca_flow_pipe_resize_entry_relocate_cb entry_relocation_cb = pipe_resize_sample_entry_relocate_cb
 

Macro Definition Documentation

◆ MAX_ENTRIES

#define MAX_ENTRIES   80

Definition at line 39 of file flow_pipe_resize_sample.c.

◆ PERCENTAGE

#define PERCENTAGE   80

Definition at line 38 of file flow_pipe_resize_sample.c.

◆ PIPE_SIZE

#define PIPE_SIZE   10

Definition at line 37 of file flow_pipe_resize_sample.c.

Function Documentation

◆ add_resizable_pipe_entries()

static doca_error_t add_resizable_pipe_entries ( struct doca_flow_pipe *  pipe,
int  port_id,
uint16_t  nb_queues,
bool  is_basic_pipe 
)
static

Definition at line 237 of file flow_pipe_resize_sample.c.

◆ create_resizable_pipe()

static doca_error_t create_resizable_pipe ( struct doca_flow_port *  port,
bool  is_basic_pipe,
uint16_t  nb_queues,
struct doca_flow_pipe **  pipe 
)
static

Definition at line 105 of file flow_pipe_resize_sample.c.

◆ DOCA_LOG_REGISTER()

DOCA_LOG_REGISTER ( FLOW_PIPE_RESIZE  )

◆ flow_pipe_resize()

doca_error_t flow_pipe_resize ( uint16_t  nb_queues,
struct flow_switch_ctx ctx,
bool  is_basic_pipe 
)

Definition at line 431 of file flow_pipe_resize_sample.c.

◆ pipe_process_cb()

static void pipe_process_cb ( struct doca_flow_pipe *  pipe,
enum doca_flow_pipe_status  status,
enum doca_flow_pipe_op  op,
void *  user_ctx 
)
static

Definition at line 388 of file flow_pipe_resize_sample.c.

◆ pipe_resize_sample_entry_relocate_cb()

static doca_error_t pipe_resize_sample_entry_relocate_cb ( void *  pipe_user_ctx,
uint16_t  pipe_queue,
void *  entry_user_ctx,
void **  new_entry_user_ctx 
)
static

Definition at line 76 of file flow_pipe_resize_sample.c.

◆ pipe_resize_sample_nr_entries_changed_cb()

static doca_error_t pipe_resize_sample_nr_entries_changed_cb ( void *  pipe_user_ctx,
uint32_t  nr_entries 
)
static

Definition at line 60 of file flow_pipe_resize_sample.c.

◆ remove_resizable_pipe_entries()

static void remove_resizable_pipe_entries ( void  )
static

Definition at line 215 of file flow_pipe_resize_sample.c.

Variable Documentation

◆ congestion_notified

bool congestion_notified
static

Definition at line 41 of file flow_pipe_resize_sample.c.

◆ congestion_reached_flag

int congestion_reached_flag
static

Definition at line 43 of file flow_pipe_resize_sample.c.

◆ entry

struct doca_flow_pipe_entry* entry[MAX_ENTRIES]
static

Definition at line 46 of file flow_pipe_resize_sample.c.

◆ entry_ctx

Definition at line 46 of file flow_pipe_resize_sample.c.

◆ entry_relocation_cb

◆ nr_entries_changed_cb

◆ ports

struct doca_flow_port* ports[3]
static

Definition at line 45 of file flow_pipe_resize_sample.c.

◆ resize_cb_received

bool resize_cb_received
static

Definition at line 40 of file flow_pipe_resize_sample.c.