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

Go to the source code of this file.

Macros

#define UPF_ACCEL_PSC_EXTENSION_CODE   0x85
 
#define UPF_ACCEL_BUILD_VNI(uint24_vni)   (DOCA_HTOBE32((uint32_t)uint24_vni << 8)) /* Create VNI match field */
 

Functions

 DOCA_LOG_REGISTER (UPF_ACCEL::PIPELINE)
 
doca_error_t upf_accel_pipe_static_entry_add (struct upf_accel_ctx *upf_accel_ctx, enum upf_accel_port port_id, uint16_t pipe_queue, struct doca_flow_pipe *pipe, const struct doca_flow_match *match, const struct doca_flow_actions *actions, const struct doca_flow_monitor *mon, const struct doca_flow_fwd *fwd, uint32_t flags, void *usr_ctx, struct doca_flow_pipe_entry **entry)
 
static doca_error_t upf_accel_pipe_create (struct upf_accel_pipe_cfg *pipe_cfg, struct doca_flow_pipe **pipe)
 
static doca_error_t upf_accel_pipe_drop_create (struct upf_accel_ctx *upf_accel_ctx, struct upf_accel_pipe_cfg *pipe_cfg, enum upf_accel_pipe_drop_type drop_type)
 
static doca_error_t upf_accel_pipe_drops_create (struct upf_accel_ctx *upf_accel_ctx, struct upf_accel_pipe_cfg *pipe_cfg)
 
static doca_error_t upf_accel_pipe_to_sw_create (struct upf_accel_ctx *upf_accel_ctx, struct upf_accel_pipe_cfg *pipe_cfg, bool is_ul, struct doca_flow_pipe **pipe)
 
static doca_error_t upf_accel_pipe_tx_root_create (struct upf_accel_ctx *upf_accel_ctx, struct upf_accel_pipe_cfg *pipe_cfg, struct doca_flow_pipe **pipe)
 
static doca_error_t upf_accel_pipe_encap_counter_create (struct upf_accel_ctx *upf_accel_ctx, struct upf_accel_pipe_cfg *pipe_cfg, struct doca_flow_fwd *fwd, struct doca_flow_pipe **pipe)
 
static doca_error_t upf_accel_pipe_vxlan_encap_create (struct upf_accel_ctx *upf_accel_ctx, struct upf_accel_pipe_cfg *pipe_cfg, struct doca_flow_pipe **pipe)
 
static doca_error_t upf_accel_pipe_far_create (struct upf_accel_ctx *upf_accel_ctx, struct upf_accel_pipe_cfg *pipe_cfg, struct doca_flow_pipe **pipe)
 
static doca_error_t upf_accel_pipe_decap_create (struct upf_accel_ctx *upf_accel_ctx, struct upf_accel_pipe_cfg *pipe_cfg, struct doca_flow_pipe **pipe)
 
static doca_error_t upf_accel_pipe_vxlan_decap_create (struct upf_accel_ctx *upf_accel_ctx, struct upf_accel_pipe_cfg *pipe_cfg, struct doca_flow_pipe *fwd_pipe, struct doca_flow_pipe **pipe)
 
static doca_error_t upf_accel_pipe_color_match_create (struct upf_accel_ctx *upf_accel_ctx, struct upf_accel_pipe_cfg *pipe_cfg, struct doca_flow_pipe *green_fwd_pipe, struct doca_flow_pipe **pipe)
 
static doca_error_t upf_accel_pipe_shared_meter_create (struct upf_accel_ctx *upf_accel_ctx, struct upf_accel_pipe_cfg *pipe_cfg, struct doca_flow_pipe **pipe)
 
static doca_error_t upf_accel_pipe_meter_chain_create (struct upf_accel_ctx *upf_accel_ctx, struct upf_accel_pipe_cfg *pipe_cfg, struct doca_flow_pipe *color_pipe_next_pipe)
 
static doca_error_t upf_accel_pipe_8t_create (struct upf_accel_ctx *upf_accel_ctx, struct upf_accel_pipe_cfg *pipe_cfg, struct doca_flow_pipe **pipe)
 
static doca_error_t upf_accel_pipe_7t_create (struct upf_accel_ctx *upf_accel_ctx, struct upf_accel_pipe_cfg *pipe_cfg, struct doca_flow_pipe **pipe)
 
static doca_error_t upf_accel_pipe_5t_create (struct upf_accel_ctx *upf_accel_ctx, struct upf_accel_pipe_cfg *pipe_cfg, struct doca_flow_pipe **pipe)
 
static doca_error_t upf_accel_pipe_ext_gtp_create (struct upf_accel_ctx *upf_accel_ctx, struct upf_accel_pipe_cfg *pipe_cfg, struct doca_flow_pipe **pipe)
 
static doca_error_t upf_accel_pipe_uldl_create (struct upf_accel_ctx *upf_accel_ctx, struct upf_accel_pipe_cfg *pipe_cfg, struct doca_flow_pipe **pipe)
 
static doca_error_t upf_accel_pipe_root_create (struct upf_accel_ctx *upf_accel_ctx, struct upf_accel_pipe_cfg *pipe_cfg, struct doca_flow_pipe *fwd_pipe, struct doca_flow_pipe **pipe)
 
static doca_error_t upf_accel_pipeline_rx_create (struct upf_accel_ctx *upf_accel_ctx, enum upf_accel_port port_id)
 
static doca_error_t upf_accel_pipeline_tx_create (struct upf_accel_ctx *upf_accel_ctx, enum upf_accel_port port_id)
 
static doca_error_t upf_accel_pipe_vxlan_insert (struct upf_accel_ctx *upf_accel_ctx, const struct upf_accel_vxlan *vxlan, enum upf_accel_port port_id)
 
static doca_error_t upf_accel_vxlan_rules_add (struct upf_accel_ctx *upf_accel_ctx)
 
doca_error_t upf_accel_pipeline_create (struct upf_accel_ctx *upf_accel_ctx)
 

Macro Definition Documentation

◆ UPF_ACCEL_BUILD_VNI

#define UPF_ACCEL_BUILD_VNI (   uint24_vni)    (DOCA_HTOBE32((uint32_t)uint24_vni << 8)) /* Create VNI match field */

Definition at line 41 of file upf_accel_pipeline.c.

◆ UPF_ACCEL_PSC_EXTENSION_CODE

#define UPF_ACCEL_PSC_EXTENSION_CODE   0x85

Definition at line 39 of file upf_accel_pipeline.c.

Function Documentation

◆ DOCA_LOG_REGISTER()

DOCA_LOG_REGISTER ( UPF_ACCEL::PIPELINE  )

◆ upf_accel_pipe_5t_create()

static doca_error_t upf_accel_pipe_5t_create ( struct upf_accel_ctx upf_accel_ctx,
struct upf_accel_pipe_cfg pipe_cfg,
struct doca_flow_pipe **  pipe 
)
static

Definition at line 1047 of file upf_accel_pipeline.c.

◆ upf_accel_pipe_7t_create()

static doca_error_t upf_accel_pipe_7t_create ( struct upf_accel_ctx upf_accel_ctx,
struct upf_accel_pipe_cfg pipe_cfg,
struct doca_flow_pipe **  pipe 
)
static

Definition at line 997 of file upf_accel_pipeline.c.

◆ upf_accel_pipe_8t_create()

static doca_error_t upf_accel_pipe_8t_create ( struct upf_accel_ctx upf_accel_ctx,
struct upf_accel_pipe_cfg pipe_cfg,
struct doca_flow_pipe **  pipe 
)
static

Definition at line 947 of file upf_accel_pipeline.c.

◆ upf_accel_pipe_color_match_create()

static doca_error_t upf_accel_pipe_color_match_create ( struct upf_accel_ctx upf_accel_ctx,
struct upf_accel_pipe_cfg pipe_cfg,
struct doca_flow_pipe *  green_fwd_pipe,
struct doca_flow_pipe **  pipe 
)
static

Definition at line 757 of file upf_accel_pipeline.c.

◆ upf_accel_pipe_create()

static doca_error_t upf_accel_pipe_create ( struct upf_accel_pipe_cfg pipe_cfg,
struct doca_flow_pipe **  pipe 
)
static

Definition at line 73 of file upf_accel_pipeline.c.

◆ upf_accel_pipe_decap_create()

static doca_error_t upf_accel_pipe_decap_create ( struct upf_accel_ctx upf_accel_ctx,
struct upf_accel_pipe_cfg pipe_cfg,
struct doca_flow_pipe **  pipe 
)
static

Definition at line 592 of file upf_accel_pipeline.c.

◆ upf_accel_pipe_drop_create()

static doca_error_t upf_accel_pipe_drop_create ( struct upf_accel_ctx upf_accel_ctx,
struct upf_accel_pipe_cfg pipe_cfg,
enum upf_accel_pipe_drop_type  drop_type 
)
static

Definition at line 149 of file upf_accel_pipeline.c.

◆ upf_accel_pipe_drops_create()

static doca_error_t upf_accel_pipe_drops_create ( struct upf_accel_ctx upf_accel_ctx,
struct upf_accel_pipe_cfg pipe_cfg 
)
static

Definition at line 204 of file upf_accel_pipeline.c.

◆ upf_accel_pipe_encap_counter_create()

static doca_error_t upf_accel_pipe_encap_counter_create ( struct upf_accel_ctx upf_accel_ctx,
struct upf_accel_pipe_cfg pipe_cfg,
struct doca_flow_fwd fwd,
struct doca_flow_pipe **  pipe 
)
static

Definition at line 364 of file upf_accel_pipeline.c.

◆ upf_accel_pipe_ext_gtp_create()

static doca_error_t upf_accel_pipe_ext_gtp_create ( struct upf_accel_ctx upf_accel_ctx,
struct upf_accel_pipe_cfg pipe_cfg,
struct doca_flow_pipe **  pipe 
)
static

Definition at line 1095 of file upf_accel_pipeline.c.

◆ upf_accel_pipe_far_create()

static doca_error_t upf_accel_pipe_far_create ( struct upf_accel_ctx upf_accel_ctx,
struct upf_accel_pipe_cfg pipe_cfg,
struct doca_flow_pipe **  pipe 
)
static

Definition at line 527 of file upf_accel_pipeline.c.

◆ upf_accel_pipe_meter_chain_create()

static doca_error_t upf_accel_pipe_meter_chain_create ( struct upf_accel_ctx upf_accel_ctx,
struct upf_accel_pipe_cfg pipe_cfg,
struct doca_flow_pipe *  color_pipe_next_pipe 
)
static

Definition at line 885 of file upf_accel_pipeline.c.

◆ upf_accel_pipe_root_create()

static doca_error_t upf_accel_pipe_root_create ( struct upf_accel_ctx upf_accel_ctx,
struct upf_accel_pipe_cfg pipe_cfg,
struct doca_flow_pipe *  fwd_pipe,
struct doca_flow_pipe **  pipe 
)
static

Definition at line 1222 of file upf_accel_pipeline.c.

◆ upf_accel_pipe_shared_meter_create()

static doca_error_t upf_accel_pipe_shared_meter_create ( struct upf_accel_ctx upf_accel_ctx,
struct upf_accel_pipe_cfg pipe_cfg,
struct doca_flow_pipe **  pipe 
)
static

Definition at line 834 of file upf_accel_pipeline.c.

◆ upf_accel_pipe_static_entry_add()

doca_error_t upf_accel_pipe_static_entry_add ( struct upf_accel_ctx upf_accel_ctx,
enum upf_accel_port  port_id,
uint16_t  pipe_queue,
struct doca_flow_pipe *  pipe,
const struct doca_flow_match match,
const struct doca_flow_actions actions,
const struct doca_flow_monitor mon,
const struct doca_flow_fwd fwd,
uint32_t  flags,
void *  usr_ctx,
struct doca_flow_pipe_entry **  entry 
)

Definition at line 43 of file upf_accel_pipeline.c.

◆ upf_accel_pipe_to_sw_create()

static doca_error_t upf_accel_pipe_to_sw_create ( struct upf_accel_ctx upf_accel_ctx,
struct upf_accel_pipe_cfg pipe_cfg,
bool  is_ul,
struct doca_flow_pipe **  pipe 
)
static

Definition at line 230 of file upf_accel_pipeline.c.

◆ upf_accel_pipe_tx_root_create()

static doca_error_t upf_accel_pipe_tx_root_create ( struct upf_accel_ctx upf_accel_ctx,
struct upf_accel_pipe_cfg pipe_cfg,
struct doca_flow_pipe **  pipe 
)
static

Definition at line 305 of file upf_accel_pipeline.c.

◆ upf_accel_pipe_uldl_create()

static doca_error_t upf_accel_pipe_uldl_create ( struct upf_accel_ctx upf_accel_ctx,
struct upf_accel_pipe_cfg pipe_cfg,
struct doca_flow_pipe **  pipe 
)
static

Definition at line 1152 of file upf_accel_pipeline.c.

◆ upf_accel_pipe_vxlan_decap_create()

static doca_error_t upf_accel_pipe_vxlan_decap_create ( struct upf_accel_ctx upf_accel_ctx,
struct upf_accel_pipe_cfg pipe_cfg,
struct doca_flow_pipe *  fwd_pipe,
struct doca_flow_pipe **  pipe 
)
static

Definition at line 672 of file upf_accel_pipeline.c.

◆ upf_accel_pipe_vxlan_encap_create()

static doca_error_t upf_accel_pipe_vxlan_encap_create ( struct upf_accel_ctx upf_accel_ctx,
struct upf_accel_pipe_cfg pipe_cfg,
struct doca_flow_pipe **  pipe 
)
static

Definition at line 452 of file upf_accel_pipeline.c.

◆ upf_accel_pipe_vxlan_insert()

static doca_error_t upf_accel_pipe_vxlan_insert ( struct upf_accel_ctx upf_accel_ctx,
const struct upf_accel_vxlan vxlan,
enum upf_accel_port  port_id 
)
static

Definition at line 1488 of file upf_accel_pipeline.c.

◆ upf_accel_pipeline_create()

doca_error_t upf_accel_pipeline_create ( struct upf_accel_ctx upf_accel_ctx)

Definition at line 1583 of file upf_accel_pipeline.c.

◆ upf_accel_pipeline_rx_create()

static doca_error_t upf_accel_pipeline_rx_create ( struct upf_accel_ctx upf_accel_ctx,
enum upf_accel_port  port_id 
)
static

Definition at line 1296 of file upf_accel_pipeline.c.

◆ upf_accel_pipeline_tx_create()

static doca_error_t upf_accel_pipeline_tx_create ( struct upf_accel_ctx upf_accel_ctx,
enum upf_accel_port  port_id 
)
static

Definition at line 1419 of file upf_accel_pipeline.c.

◆ upf_accel_vxlan_rules_add()

static doca_error_t upf_accel_vxlan_rules_add ( struct upf_accel_ctx upf_accel_ctx)
static

Definition at line 1556 of file upf_accel_pipeline.c.