3. Data Structures

Here are the data structures with brief descriptions:

Configuration attributes for endpoint initialization
DPI init configuration
Generic packet that holds payload or a whole packet as segment
Dequeue result
L2-L4 flow information
Dequeue result
Extra signature data
Signature info
DPI statistics
Activity completion event
Action description
Action descriptions
Metadata action description per field
Extended modification action
Doca flow actions information
Aged flow query callback context
Doca flow global configuration
Doca flow encap data information
Doca flow error message struct
Forwarding configuration
Bindable object configuration
Environment configuration
Forwarding configuration wrapper
Pipeline configuration wrapper
General DOCA Flow response struct
Doca flow ip address
Doca flow matcher information
Doca flow meta data
Doca monitor action configuration
Pipe attributes
Pipeline configuration
Doca flow port configuration
Flow query result
Doca flow meter resource configuration
Doca flow resource quota
Doca flow shared resource configuration
Flow shared resources query result
Doca flow tunnel information
Job structure describes request arguments for service provided by context
Registers log source on program start

[Comm Channel]

Public Variables

uint32_t  cookie
uint32_t  flags
uint32_t  maxmsgs
uint32_t  msgsize


uint32_t doca_comm_channel_init_attr::cookie [inherited]

Cookie returned when polling the event_channel.

uint32_t doca_comm_channel_init_attr::flags [inherited]


uint32_t doca_comm_channel_init_attr::maxmsgs [inherited]

Max. # of messages on queue.

uint32_t doca_comm_channel_init_attr::msgsize [inherited]

Max. message size (bytes).

[DOCA DMA engine]

A job to be dispatched via the DMA library.

Public Variables

struct doca_job base
doca_buf * dst_buff
uint64_t  num_bytes_to_copy
const doca_buf * src_buff


struct doca_jobdoca_dma_job_memcpy::base [inherited]

Common job data

doca_buf * doca_dma_job_memcpy::dst_buff [inherited]

Destination data buffer

uint64_t doca_dma_job_memcpy::num_bytes_to_copy [inherited]

Number of bytes to copy

const doca_buf * doca_dma_job_memcpy::src_buff [inherited]

Source data buffer

[DOCA DMA engine]

Result of a DMA Memcpy job. Will be held inside the doca_event::result field.

Public Variables

doca_error_t result


doca_error_tdoca_dma_memcpy_result::result [inherited]

Operation result

[Deep packet inspectionRemote deep packet inspection (grpc)]

Public Variables

uint32_t  max_packets_per_queue
uint32_t  max_sig_match_len
uint16_t  nb_queues
const char * server_address


uint32_t doca_dpi_config_t::max_packets_per_queue [inherited]

Number of packets concurrently processed by the DPI engine.

uint32_t doca_dpi_config_t::max_sig_match_len [inherited]

The maximum length that DPI guarantee to provide a match on, including across consecutive packets. Must be <= 5000 For example: Signature = A.*B max_sig_match_len = 5 DPI guarantee that AAAAB will be found (len <= 5) DPI does not guarantee that AAAAAAAAAAAAB will be found (len > 5)

The minimum required overlap between two packets for regex match

uint16_t doca_dpi_config_t::nb_queues [inherited]

Number of DPI queues

const char * doca_dpi_config_t::server_address [inherited]

String representing the service ip, i.e. "" or "". If no port is provided, it will use the service default port.

[Remote deep packet inspection (grpc)]

Public Variables

uint16_t  seg_len
uint8_t * segment


uint16_t doca_dpi_grpc_generic_packet::seg_len [inherited]

The length of the data inside segment buffer

uint8_t * doca_dpi_grpc_generic_packet::segment [inherited]

The buffer with data to be scanned by the DPI

[Remote deep packet inspection (grpc)]

Public Variables

struct doca_dpi_sig_info info
bool  matched
int  status_flags
void * user_data


struct doca_dpi_sig_infodoca_dpi_grpc_result::info [inherited]

Signature information

bool doca_dpi_grpc_result::matched [inherited]

Indicates flow was matched

doca_dpi_grpc_generic_packet * doca_dpi_grpc_result::pkt [inherited]

Pkt provided on enqueue

int doca_dpi_grpc_result::status_flags [inherited]

doca_dpi_flow_status flags

void * doca_dpi_grpc_result::user_data [inherited]

User data provided on enqueue

[Deep packet inspectionRemote deep packet inspection (grpc)]

Public Variables

doca_dpi_parsing_info::@6  dst_ip
doca_dpi_parsing_info::@4  dst_ip
__be16  ethertype
in_addr  ipv4
in6_addr  ipv6
in_port_t  l4_dport
uint8_t  l4_protocol
in_port_t  l4_sport
doca_dpi_parsing_info::@7  src_ip
doca_dpi_parsing_info::@5  src_ip


doca_dpi_parsing_info::@6 doca_dpi_parsing_info::dst_ip [inherited]

IP destination address

doca_dpi_parsing_info::@4 doca_dpi_parsing_info::dst_ip [inherited]

IP destination address

__be16 doca_dpi_parsing_info::ethertype [inherited]

Ethertype of the packet in network byte order

Ethertype of the packet in network byte order

in_addr doca_dpi_parsing_info::ipv4 [inherited]

Ipv4 destination address in network byte order

Ipv4 source address in network byte order

in6_addr doca_dpi_parsing_info::ipv6 [inherited]

Ipv6 destination address in network byte order

Ipv6 source address in network byte order

in_port_t doca_dpi_parsing_info::l4_dport [inherited]

Layer 4 destination port in network byte order

Layer 4 destination port in network byte order

uint8_t doca_dpi_parsing_info::l4_protocol [inherited]

Layer 4 protocol

in_port_t doca_dpi_parsing_info::l4_sport [inherited]

Layer 4 source port in network byte order

Layer 4 source port in network byte order

doca_dpi_parsing_info::@7 doca_dpi_parsing_info::src_ip [inherited]

IP source address

doca_dpi_parsing_info::@5 doca_dpi_parsing_info::src_ip [inherited]

IP source address

[Deep packet inspection]

Public Variables

struct doca_dpi_sig_info info
bool  matched
rte_mbuf * pkt
int  status_flags
void * user_data


struct doca_dpi_sig_infodoca_dpi_result::info [inherited]

Signature information

bool doca_dpi_result::matched [inherited]

Indicates flow was matched

rte_mbuf * doca_dpi_result::pkt [inherited]

Pkt provided on enqueue

int doca_dpi_result::status_flags [inherited]

doca_dpi_flow_status flags

void * doca_dpi_result::user_data [inherited]

User data provided on enqueue

[Deep packet inspectionRemote deep packet inspection (grpc)]

Public Variables

char  name[1024]
uint32_t  sig_id


char doca_dpi_sig_data::name[1024] [inherited]

Signature name

uint32_t doca_dpi_sig_data::sig_id [inherited]

Signature ID as provided in the signature

[Deep packet inspectionRemote deep packet inspection (grpc)]

Public Variables

int  action
uint32_t  sig_id


int doca_dpi_sig_info::action [inherited]

The action as provided in the signature

uint32_t doca_dpi_sig_info::sig_id [inherited]

Signature ID as provided in the signature

[Deep packet inspectionRemote deep packet inspection (grpc)]

Public Variables

uint32_t  nb_http_parser_based
uint32_t  nb_matches
uint32_t  nb_other_l4
uint32_t  nb_other_l7
uint32_t  nb_scanned_pkts
uint32_t  nb_ssl_parser_based
uint32_t  nb_tcp_based
uint32_t  nb_udp_based


uint32_t doca_dpi_stat_info::nb_http_parser_based [inherited]

Total number of http signature matches

uint32_t doca_dpi_stat_info::nb_matches [inherited]

Total number of signature matches

uint32_t doca_dpi_stat_info::nb_other_l4 [inherited]

Total number of other l4 signature matches

uint32_t doca_dpi_stat_info::nb_other_l7 [inherited]

Total number of other l7 signature matches

uint32_t doca_dpi_stat_info::nb_scanned_pkts [inherited]

Total number of scanned packets

uint32_t doca_dpi_stat_info::nb_ssl_parser_based [inherited]

Total number of ssl signature matches

uint32_t doca_dpi_stat_info::nb_tcp_based [inherited]

Total number of tcp signature matches

uint32_t doca_dpi_stat_info::nb_udp_based [inherited]

Total number of udp signature matches

[DOCA Context]

Event structure defines activity completion of: 1. Completion event of submitted job. 2. CTX received event as a result of some external activity.

Public Variables

doca_data  result
int  type
doca_data  user_data


doca_data doca_event::result [inherited]

Event result defined per action type arguments. If the result is as small as 64 bit (E.g., status or similar), it can be accessed as result.u64. Otherwise the data is pointed to by result.ptr, where the size is fixed for each action type.

int doca_event::type [inherited]

The type of the event originating activity.

doca_data doca_event::user_data [inherited]

Defines the origin of the given event. For events originating from submitted jobs, this will hold the same user_data provided as part of the job. For events originating from external activity, refer to the documentation of the specific event type.


Public Variables

struct doca_flow_action_desc dst_ip
struct doca_flow_action_desc dst_mac
struct doca_flow_action_desc dst_port
struct doca_flow_action_desc eth_type
struct doca_flow_action_descs_meta meta
struct doca_flow_action_desc src_ip
struct doca_flow_action_desc src_mac
struct doca_flow_action_desc src_port
struct doca_flow_action_desc ttl
struct doca_flow_action_desc tunnel
struct doca_flow_action_desc vlan_id


struct doca_flow_action_descdoca_flow_action_descs::dst_ip [inherited]

action description of destination IP.

struct doca_flow_action_descdoca_flow_action_descs::dst_mac [inherited]

action description of destination MAC.

struct doca_flow_action_descdoca_flow_action_descs::dst_port [inherited]

action description of destination L4 port.

struct doca_flow_action_descdoca_flow_action_descs::eth_type [inherited]

action description of ether type.

struct doca_flow_action_descs_metadoca_flow_action_descs::meta [inherited]

action description of meta data.

struct doca_flow_action_descdoca_flow_action_descs::src_ip [inherited]

action description of source IP.

struct doca_flow_action_descdoca_flow_action_descs::src_mac [inherited]

action description of source MAC.

struct doca_flow_action_descdoca_flow_action_descs::src_port [inherited]

action description of source L4 port.

struct doca_flow_action_descdoca_flow_action_descs::ttl [inherited]

action description of IPv4 TTL.

struct doca_flow_action_descdoca_flow_action_descs::tunnel [inherited]

action description of tunnel.

struct doca_flow_action_descdoca_flow_action_descs::vlan_id [inherited]

action description of VLAN ID.


Public Variables

struct doca_flow_action_desc pkt_meta
struct doca_flow_action_desc u32[DOCA_FLOW_META_MAX/4-1]


struct doca_flow_action_descdoca_flow_action_descs_meta::pkt_meta [inherited]

action description of pkt_meta.

struct doca_flow_action_descdoca_flow_action_descs_meta::u32[DOCA_FLOW_META_MAX/4-1] [inherited]

action description of meta.


Public Variables

void * address
uint32_t  offset


void * doca_flow_action_field::address [inherited]

Field address of pipe match to decide field type and byte offset.

uint32_t doca_flow_action_field::offset [inherited]

If address is not NULL, bit offset within the field from the address. Otherwise, bit offset from the start of context field.


Public Variables

uint8_t  action_idx
bool  decap
struct doca_flow_encap_action encap
uint32_t  flags
bool  has_encap
struct doca_flow_meta meta
struct doca_flow_ip_addr mod_dst_ip
uint8_t  mod_dst_mac[DOCA_ETHER_ADDR_LEN]
doca_be16_t mod_dst_port
struct doca_flow_ip_addr mod_src_ip
uint8_t  mod_src_mac[DOCA_ETHER_ADDR_LEN]
doca_be16_t mod_src_port
doca_be16_t mod_vlan_id
uint8_t  ttl


uint8_t doca_flow_actions::action_idx [inherited]

index according to place provided on creation

bool doca_flow_actions::decap [inherited]

when true, will do decap

struct doca_flow_encap_actiondoca_flow_actions::encap [inherited]

encap data information

uint32_t doca_flow_actions::flags [inherited]

action flags

bool doca_flow_actions::has_encap [inherited]

when true, will do encap

struct doca_flow_metadoca_flow_actions::meta [inherited]

modify meta data, pipe action as mask

struct doca_flow_ip_addrdoca_flow_actions::mod_dst_ip [inherited]

modify destination ip address

uint8_t doca_flow_actions::mod_dst_mac[DOCA_ETHER_ADDR_LEN] [inherited]

modify VLAN ID

doca_be16_tdoca_flow_actions::mod_dst_port [inherited]

modify layer 4 destination port

struct doca_flow_ip_addrdoca_flow_actions::mod_src_ip [inherited]

modify source ip address

uint8_t doca_flow_actions::mod_src_mac[DOCA_ETHER_ADDR_LEN] [inherited]

modify source mac address

doca_be16_tdoca_flow_actions::mod_src_port [inherited]

modify layer 4 source port

doca_be16_tdoca_flow_actions::mod_vlan_id [inherited]

modify destination mac address

uint8_t doca_flow_actions::ttl [inherited]

modify(ADD) TTL value


Public Variables

uint64_t  user_data


uint64_t doca_flow_aged_query::user_data [inherited]

The user input context, otherwish the doca_flow_pipe_entry pointer


Public Variables

doca_flow_entry_process_cb cb
const char * mode_args
uint32_t  nr_shared_resources[DOCA_FLOW_SHARED_RESOURCE_MAX]
uint32_t  queue_depth
uint16_t  queues
struct doca_flow_resources resource


doca_flow_entry_process_cbdoca_flow_cfg::cb [inherited]

callback for entry create/destroy

const char * doca_flow_cfg::mode_args [inherited]

set doca flow architecture mode switch, vnf

uint32_t doca_flow_cfg::nr_shared_resources[DOCA_FLOW_SHARED_RESOURCE_MAX] [inherited]

total shared resource per type

uint32_t doca_flow_cfg::queue_depth [inherited]

Number of pre-configured queue_size, default to 128

uint16_t doca_flow_cfg::queues [inherited]

queue id for each offload thread

struct doca_flow_resourcesdoca_flow_cfg::resource [inherited]

resource quota


Public Variables

struct doca_flow_ip_addr dst_ip
uint8_t  dst_mac[DOCA_ETHER_ADDR_LEN]
struct doca_flow_ip_addr src_ip
uint8_t  src_mac[DOCA_ETHER_ADDR_LEN]
struct doca_flow_tun tun
doca_be16_t vlan_tci


struct doca_flow_ip_addrdoca_flow_encap_action::dst_ip [inherited]

destination ip address

uint8_t doca_flow_encap_action::dst_mac[DOCA_ETHER_ADDR_LEN] [inherited]

destination mac address

struct doca_flow_ip_addrdoca_flow_encap_action::src_ip [inherited]

source ip address

uint8_t doca_flow_encap_action::src_mac[DOCA_ETHER_ADDR_LEN] [inherited]

source mac address

struct doca_flow_tundoca_flow_encap_action::tun [inherited]

tunnel info

doca_be16_tdoca_flow_encap_action::vlan_tci [inherited]

vlan tci


Public Variables

const char * message
enumdoca_flow_error_type type


const char * doca_flow_error::message [inherited]

Human-readable error message

enumdoca_flow_error_typedoca_flow_error::type [inherited]

Cause field and error types


Public Variables

doca_flow_pipe * next_pipe
int  num_of_queues
uint16_t  port_id
uint32_t  rss_flags
uint32_t  rss_mark
uint16_t * rss_queues
enumdoca_flow_fwd_type type


doca_flow_pipe * doca_flow_fwd::next_pipe [inherited]

next pipe pointer

int doca_flow_fwd::num_of_queues [inherited]

number of queues

uint16_t doca_flow_fwd::port_id [inherited]

destination port id

uint32_t doca_flow_fwd::rss_flags [inherited]

rss offload types

uint32_t doca_flow_fwd::rss_mark [inherited]

markid of each queues

uint16_t * doca_flow_fwd::rss_queues [inherited]

rss queues array

enumdoca_flow_fwd_typedoca_flow_fwd::type [inherited]

indicate the forwarding type


Public Variables

uint64_t  pipe_id
uint32_t  port_id
enumdoca_flow_grpc_bindable_obj_type type


uint64_t doca_flow_grpc_bindable_obj::pipe_id [inherited]

pipe id if type is pipe

uint32_t doca_flow_grpc_bindable_obj::port_id [inherited]

port id if type is port

enumdoca_flow_grpc_bindable_obj_typedoca_flow_grpc_bindable_obj::type [inherited]

bindable object type


Public Variables

int  nb_hairpin_q
int  nb_ports
int  nb_queues
bool  reserve_main_thread


int doca_flow_grpc_env_cfg::nb_hairpin_q [inherited]

required hairpin queues

int doca_flow_grpc_env_cfg::nb_ports [inherited]

required ports

int doca_flow_grpc_env_cfg::nb_queues [inherited]

required queues

bool doca_flow_grpc_env_cfg::reserve_main_thread [inherited]

reserve main thread or not


Public Variables

uint64_t  next_pipe_id


doca_flow_fwd * doca_flow_grpc_fwd::fwd [inherited]

doca flow fwd struct

uint64_t doca_flow_grpc_fwd::next_pipe_id [inherited]

next pipe id


Public Variables

int  aging_res
uint64_t  entry_id
enumdoca_flow_entry_status entry_status
struct doca_flow_error error
uint64_t  nb_entries_processed
uint64_t  pipe_id
bool  success


int doca_flow_grpc_response::aging_res [inherited]

return value from handle aging

uint64_t doca_flow_grpc_response::entry_id [inherited]

entry id

enumdoca_flow_entry_statusdoca_flow_grpc_response::entry_status [inherited]

return value of entry get status

struct doca_flow_errordoca_flow_grpc_response::error [inherited]

Otherwise, this field contains the error information

uint64_t doca_flow_grpc_response::nb_entries_processed [inherited]

return value from entries process

uint64_t doca_flow_grpc_response::pipe_id [inherited]

pipe id

bool doca_flow_grpc_response::success [inherited]

in case of success should be true

[flow net define]

Public Variables

doca_be32_t ipv4_addr
doca_be32_t ipv6_addr[4]
uint8_t  type


doca_be32_tdoca_flow_ip_addr::ipv4_addr [inherited]

ipv4 address if type is ipv4

doca_be32_tdoca_flow_ip_addr::ipv6_addr[4] [inherited]

ipv6 address if type is ipv6

uint8_t doca_flow_ip_addr::type [inherited]

ip address type


Public Variables

uint32_t  flags
struct doca_flow_ip_addr in_dst_ip
uint8_t  in_dst_mac[DOCA_ETHER_ADDR_LEN]
doca_be16_t in_dst_port
doca_be16_t in_eth_type
uint8_t  in_l4_type
struct doca_flow_ip_addr in_src_ip
uint8_t  in_src_mac[DOCA_ETHER_ADDR_LEN]
doca_be16_t in_src_port
uint8_t  in_tcp_flags
doca_be16_t in_vlan_tci
struct doca_flow_meta meta
struct doca_flow_ip_addr out_dst_ip
uint8_t  out_dst_mac[DOCA_ETHER_ADDR_LEN]
doca_be16_t out_dst_port
doca_be16_t out_eth_type
uint8_t  out_l4_type
struct doca_flow_ip_addr out_src_ip
uint8_t  out_src_mac[DOCA_ETHER_ADDR_LEN]
doca_be16_t out_src_port
uint8_t  out_tcp_flags
doca_be16_t out_vlan_tci
struct doca_flow_tun tun


uint32_t doca_flow_match::flags [inherited]

match items which are no value

struct doca_flow_ip_addrdoca_flow_match::in_dst_ip [inherited]

inner destination ip address if tunnel is used

uint8_t doca_flow_match::in_dst_mac[DOCA_ETHER_ADDR_LEN] [inherited]

inner destination mac address

doca_be16_tdoca_flow_match::in_dst_port [inherited]

inner layer 4 destination port if tunnel is used

doca_be16_tdoca_flow_match::in_eth_type [inherited]

inner Ethernet layer type

uint8_t doca_flow_match::in_l4_type [inherited]

inner layer 4 protocol type if tunnel is used

struct doca_flow_ip_addrdoca_flow_match::in_src_ip [inherited]

inner source ip address if tunnel is used

uint8_t doca_flow_match::in_src_mac[DOCA_ETHER_ADDR_LEN] [inherited]

inner source mac address

doca_be16_tdoca_flow_match::in_src_port [inherited]

inner layer 4 source port if tunnel is used

uint8_t doca_flow_match::in_tcp_flags [inherited]

inner tcp flags

doca_be16_tdoca_flow_match::in_vlan_tci [inherited]

inner vlan tci

struct doca_flow_metadoca_flow_match::meta [inherited]

Programmable meta data.

struct doca_flow_ip_addrdoca_flow_match::out_dst_ip [inherited]

outer destination ip address

uint8_t doca_flow_match::out_dst_mac[DOCA_ETHER_ADDR_LEN] [inherited]

outer destination mac address

doca_be16_tdoca_flow_match::out_dst_port [inherited]

outer layer 4 destination port

doca_be16_tdoca_flow_match::out_eth_type [inherited]

outer Ethernet layer type

uint8_t doca_flow_match::out_l4_type [inherited]

outer layer 4 protocol type

struct doca_flow_ip_addrdoca_flow_match::out_src_ip [inherited]

outer source ip address

uint8_t doca_flow_match::out_src_mac[DOCA_ETHER_ADDR_LEN] [inherited]

outer source mac address

doca_be16_tdoca_flow_match::out_src_port [inherited]

outer layer 4 source port

uint8_t doca_flow_match::out_tcp_flags [inherited]

outer tcp flags

doca_be16_tdoca_flow_match::out_vlan_tci [inherited]

outer vlan tci

struct doca_flow_tundoca_flow_match::tun [inherited]

tunnel info


Meta data known as scratch data can be used to match or modify within pipes. Meta data can be set with value in previous pipes and match in later pipes. User can customize meta data structure as long as overall size doens't exceed limit. To match meta data, mask must be specified when creating pipe. Struct must be aligned to 32 bits. No initial value for Meta data, must match after setting value.

Public Variables

uint32_t  pkt_meta
uint32_t  port_meta
uint32_t  u32[DOCA_FLOW_META_MAX/4-1]


uint32_t doca_flow_meta::pkt_meta [inherited]

Shared with applicaiton via packet.

uint32_t doca_flow_meta::port_meta [inherited]

Programmable source vport.

uint32_t doca_flow_meta::u32[DOCA_FLOW_META_MAX/4-1] [inherited]

Programmable user data.


Public Variables

uint32_t  aging
uint64_t  cbs
uint64_t  cir
uint8_t  flags
uint32_t  shared_counter_id
uint32_t  shared_meter_id
uint64_t  user_data


uint32_t doca_flow_monitor::aging [inherited]

aging time in seconds.

uint64_t doca_flow_monitor::cbs [inherited]

Committed Burst Size (bytes).

uint64_t doca_flow_monitor::cir [inherited]

Committed Information Rate (bytes/second).

uint8_t doca_flow_monitor::flags [inherited]

indicate which actions be included

uint32_t doca_flow_monitor::shared_counter_id [inherited]

shared counter id

uint32_t doca_flow_monitor::shared_meter_id [inherited]

shared meter id

uint64_t doca_flow_monitor::user_data [inherited]

aging user data input.


Public Variables

bool  is_root
const char * name
uint8_t  nb_actions
uint32_t  nb_flows
enumdoca_flow_pipe_type type


bool doca_flow_pipe_attr::is_root [inherited]

pipeline is root or not. If true it means the pipe is a root pipe executed on packet arrival.

const char * doca_flow_pipe_attr::name [inherited]

name for the pipeline

uint8_t doca_flow_pipe_attr::nb_actions [inherited]

maximum number of doca flow action array, default is 1 if not set

uint32_t doca_flow_pipe_attr::nb_flows [inherited]

maximum number of flow rules, default is 8k if not set

enumdoca_flow_pipe_typedoca_flow_pipe_attr::type [inherited]

type of pipe. enum doca_flow_pipe_type


Public Variables

struct doca_flow_pipe_attr attr
doca_flow_port * port


* doca_flow_pipe_cfg::action_descs [inherited]

action array descriptions

* doca_flow_pipe_cfg::actions [inherited]

actions array for the pipeline

struct doca_flow_pipe_attrdoca_flow_pipe_cfg::attr [inherited]

attributes of pipe

doca_flow_match * doca_flow_pipe_cfg::match [inherited]

matcher for the pipeline

doca_flow_match * doca_flow_pipe_cfg::match_mask [inherited]

match mask for the pipeline

doca_flow_monitor * doca_flow_pipe_cfg::monitor [inherited]

monitor for the pipeline

doca_flow_port * doca_flow_pipe_cfg::port [inherited]

port for the pipeline


Public Variables

const char * devargs
uint16_t  port_id
uint16_t  priv_data_size
enumdoca_flow_port_type type


const char * doca_flow_port_cfg::devargs [inherited]

specific per port type cfg

uint16_t doca_flow_port_cfg::port_id [inherited]

dpdk port id

uint16_t doca_flow_port_cfg::priv_data_size [inherited]

user private data

enumdoca_flow_port_typedoca_flow_port_cfg::type [inherited]

mapping type of port


Public Variables

uint64_t  total_bytes
uint64_t  total_pkts


uint64_t doca_flow_query::total_bytes [inherited]

total bytes hit this flow

uint64_t doca_flow_query::total_pkts [inherited]

total packets hit this flow


Public Variables

uint64_t  cbs
uint64_t  cir


uint64_t doca_flow_resource_meter_cfg::cbs [inherited]

Committed Burst Size (bytes).

uint64_t doca_flow_resource_meter_cfg::cir [inherited]

Committed Information Rate (bytes/second).


Public Variables

uint32_t  nb_counters
uint32_t  nb_meters


uint32_t doca_flow_resources::nb_counters [inherited]

Number of counters to configure

uint32_t doca_flow_resources::nb_meters [inherited]

Number of traffic meters to configure

[DOCA Context]

A context of given type may serve one or more request types defined as action type (see definition of enum doca_action_type).

DOCA Job layout

SDK job --> +--------------------------+ | DOCA Job (base) | | type | | flags | | ctx | | user data | | | +------------+-------------+ <-- job arguments | | variable size | arguments | SDK specific | . | structure | . | | . | | . | | . | | . | | | +------------+-------------+

Public Variables

doca_ctx * ctx
int  flags
int  type
doca_data  user_data


doca_ctx * doca_job::ctx [inherited]

Doca CTX targeted by the job.

int doca_job::flags [inherited]

Job submission flags (see `enum doca_job_flags`).

int doca_job::type [inherited]

Defines the type of the job.

doca_data doca_job::user_data [inherited]

Job identifier provided by user. Will be returned back on completion.

[Logging Management]

Should be used to register the log source. For example:


void foo { DOCA_LOG_INFO("Message"); }


The macro also takes care of the dtor() logic on teardown.

[RegEx engine]

Data required to dispatch a job to a RegEx engine.

Public Variables

const doca_buf * buffer
uint64_t  id
uint16_t  rule_group_ids[4]


const doca_buf * doca_regex_job_request::buffer [inherited]

Data for the job

uint64_t doca_regex_job_request::id [inherited]

ID of the job, useful to correlate the response.

uint16_t doca_regex_job_request::rule_group_ids[4] [inherited]

IDs which can be used to select which group of rules are used to process this job. Set each value to a non zero value to enable this feature or 0 to ignore it.

[RegEx engine]

Result of a RegEx search

Public Variables

uint32_t  detected_matches
uint64_t  id
doca_regex_mempool * matches_mempool
uint32_t  num_matches
uint64_t  status_flags


uint32_t doca_regex_job_response::detected_matches [inherited]

Total number of detected matches.

uint64_t doca_regex_job_response::id [inherited]

ID of the enqueued job.

doca_regex_match * doca_regex_job_response::matches [inherited]

Returned matches. Contains num_matches elements as a linked list

doca_regex_mempool * doca_regex_job_response::matches_mempool [inherited]

Memory pool owning the matches

uint32_t doca_regex_job_response::num_matches [inherited]

Total number of returned matches.

uint64_t doca_regex_job_response::status_flags [inherited]

Response flags. A bit masked field for zero or more status flags. See doca_regex_status_flag

[RegEx engine]

Description of a RegEx match

Public Variables

uint32_t  length
uint32_t  match_start
uint32_t  rule_id


uint32_t doca_regex_match::length [inherited]

Length of matched value.

uint32_t doca_regex_match::match_start [inherited]

Index relative to the start of the job / stream where the match begins

doca_regex_match * doca_regex_match::next [inherited]

Allows matches to be linked together for easy management and iteration

uint32_t doca_regex_match::rule_id [inherited]

ID of rule used to generate this match.

© Copyright 2023, NVIDIA. Last updated on Sep 28, 2022.