2. Data Structures

DOCA 2.7.0 API

Here are the data structures with brief descriptions:

Convenience type for representing opaque data
Doca dpa device buf declaration
Doca dpa device buf array declaration
Action description
Action descriptor array
Doca flow actions information
Doca flow crypto action information
Doca flow crypto encap action information
Doca flow crypto key configuration
CT aging connection info
CT aging user plugin connection event
Connection update information
Counter statistics
CT aging counter state
CT aging user plugin context
CT aging user plugin callbacks
Doca flow ct global configuration
Doca flow CT match pattern
Doca flow CT IPv4 match pattern
Doca flow CT IPv6 match pattern
CT packet meta data
Action descriptor field
Doca flow encap data information
Doca flow header format for entropy
Forwarding configuration
Doca flow GENEVE option single DW
Doca flow eth header
Doca flow vlan header
Doca flow packet format
Doca flow GENEVE header
Doca flow icmp header in match data
Doca flow ipv4 header in match data
Doca flow ipv6 header in match data
Doca flow tcp or udp port header in match data
Doca flow MPLS header
Doca flow psp header in match data and modify/encap actions
Doca flow tcp header in match data
Doca flow udp header in match data
Doca flow ip address
Doca flow matcher information
Doca flow match condition information
Doca flow meta data
Doca flow mirror target
Doca monitor action configuration
Doca flow nat64 action
User configuration structure using to create parser for single GENEVE TLV option
Doca flow parser meta data
Doca flow push data information
Flow query result
Doca flow decap resource configuration
Doca flow encap resource configuration
Doca flow ipsec SA resource configuration
Doca flow meter resource configuration
Doca flow mirror resource configuration
Doca flow psp resource configuration
Doca flow rss resource configuration
Doca flow shared resource configuration
Flow shared resources query result
Doca flow tunnel information
DOCA Flow Tune Server KPI result
DOCA Flow Tune Server shared resources
Struct to represent a gather list
Registers log source on program start
This struct provides meta data for a pcc user algo
Structure for response packet
Data structure to describe CPU mask for doca_rmax internal thread
Completion returned by input stream describing the incoming packets
Detailed completion error information
Out-of-band communication descriptor for Domain creation
UROM Worker domain lookups interface
UROM Worker plugin interface
UROM Worker command structure
UROM Worker command descriptor structure
UROM worker context
UROM Worker notification descriptor structure
UROM Worker notification structure

[DOCA Types]

Public Variables

void * ptr
uint64_t  u64


void * doca_data::ptr [inherited]

Data as a pointer

uint64_t doca_data::u64 [inherited]

Data as a 64-bit unsigned integer

[DOCA DPA Device - Buffer]

User of this struct should relate to it as an opaque and not access its fields, but rather use relevant API for it

Public Variables

uintptr_t  addr
uint64_t  len
doca_dpa_dev_mmap_t mmap
unsigned char  reserved[12]


uintptr_t doca_dpa_dev_buf::addr [inherited]

address held by doca dpa device buf

uint64_t doca_dpa_dev_buf::len [inherited]

length of doca dpa device buf

doca_dpa_dev_mmap_tdoca_dpa_dev_buf::mmap [inherited]

the mmap associated with the doca dpa device buf

unsigned char doca_dpa_dev_buf::reserved[12] [inherited]

reserved field

[DOCA DPA Device - Buffer]

User of this struct should relate to it as an opaque and not access its fields, but rather use relevant API for it

Public Variables

unsigned char  reserved[20]


doca_dpa_dev_buf * doca_dpa_dev_buf_arr::bufs [inherited]

doca dpa device bufs

unsigned char doca_dpa_dev_buf_arr::reserved[20] [inherited]

reserved field

[DOCA Flow]

Public Variables

uint8_t  nb_action_desc


doca_flow_action_desc * doca_flow_action_descs::desc_array [inherited]

action descriptor array pointer.

uint8_t doca_flow_action_descs::nb_action_desc [inherited]

maximum number of action descriptor array.

[DOCA Flow]

Public Variables

uint8_t  action_idx
struct doca_flow_crypto_action crypto
struct doca_flow_crypto_encap_action crypto_encap
struct doca_flow_resource_decap_cfg decap_cfg
enumdoca_flow_resource_type decap_type
struct doca_flow_resource_encap_cfg encap_cfg
enumdoca_flow_resource_type encap_type
uint32_t  flags
bool  has_crypto_encap
bool  has_push
struct doca_flow_meta meta
struct doca_flow_nat64_action nat64
struct doca_flow_header_format outer
struct doca_flow_parser_meta parser_meta
bool  pop
struct doca_flow_push_action push
uint32_t  shared_decap_id
uint32_t  shared_encap_id
struct doca_flow_tun tun


uint8_t doca_flow_actions::action_idx [inherited]

index according to place provided on creation

struct doca_flow_crypto_actiondoca_flow_actions::crypto [inherited]

crypto action information

struct doca_flow_crypto_encap_actiondoca_flow_actions::crypto_encap [inherited]

header/trailer reformat data information

struct doca_flow_resource_decap_cfgdoca_flow_actions::decap_cfg [inherited]

config for non_shared decap

enumdoca_flow_resource_typedoca_flow_actions::decap_type [inherited]

type of decap

struct doca_flow_resource_encap_cfgdoca_flow_actions::encap_cfg [inherited]

config for non_shared encap

enumdoca_flow_resource_typedoca_flow_actions::encap_type [inherited]

type of encap

uint32_t doca_flow_actions::flags [inherited]

action flags

bool doca_flow_actions::has_crypto_encap [inherited]

when true, do crypto reformat header/trailer

bool doca_flow_actions::has_push [inherited]

when true, push header

struct doca_flow_metadoca_flow_actions::meta [inherited]

modify meta data, pipe action as mask

struct doca_flow_nat64_actiondoca_flow_actions::nat64 [inherited]

nat64 action

struct doca_flow_header_formatdoca_flow_actions::outer [inherited]

modify outer headers

struct doca_flow_parser_metadoca_flow_actions::parser_meta [inherited]

copy from read-only meta data, pipe action as mask

bool doca_flow_actions::pop [inherited]

when true, pop header

struct doca_flow_push_actiondoca_flow_actions::push [inherited]

push header data information

uint32_t doca_flow_actions::shared_decap_id [inherited]

action for shared decap

uint32_t doca_flow_actions::shared_encap_id [inherited]

action for shared encap

struct doca_flow_tundoca_flow_actions::tun [inherited]

modify tunnel headers

[DOCA Flow]

Public Variables

enumdoca_flow_crypto_action_type action_type
uint32_t  crypto_id
enumdoca_flow_crypto_resource_type resource_type
bool  sn_en


enumdoca_flow_crypto_action_typedoca_flow_crypto_action::action_type [inherited]

crypto action type - none/encrypt/decrypt

uint32_t doca_flow_crypto_action::crypto_id [inherited]

shared resource id represents session

enumdoca_flow_crypto_resource_typedoca_flow_crypto_action::resource_type [inherited]

crypto action resource - none/ipsec_sa/psp

bool doca_flow_crypto_action::sn_en [inherited]

Enable SN/ESN generation on egress and antireplay on ingress

[DOCA Flow]

Public Variables

enumdoca_flow_crypto_encap_action_type action_type
uint16_t  data_size
uint8_t  encap_data[DOCA_FLOW_CRYPTO_HEADER_LEN_MAX]
uint16_t  icv_size
enumdoca_flow_crypto_encap_net_type net_type


enumdoca_flow_crypto_encap_action_typedoca_flow_crypto_encap_action::action_type [inherited]

action type - encap or decap

uint16_t doca_flow_crypto_encap_action::data_size [inherited]

reformat header length in bytes

uint8_t doca_flow_crypto_encap_action::encap_data[DOCA_FLOW_CRYPTO_HEADER_LEN_MAX] [inherited]

reformat header data to insert

uint16_t doca_flow_crypto_encap_action::icv_size [inherited]

trailer size in bytes

enumdoca_flow_crypto_encap_net_typedoca_flow_crypto_encap_action::net_type [inherited]

network type - mode, protocol, header

[Doca Flow Crypto]

Public Variables

uint32_t * key
enumdoca_flow_crypto_key_type key_type


uint32_t * doca_flow_crypto_key_cfg::key [inherited]

Key data based on key type

enumdoca_flow_crypto_key_typedoca_flow_crypto_key_cfg::key_type [inherited]

key type - 128/256

[Doca Flow CT]

doca flow CT action

Public Variables

uint32_t  action_handle
uint8_t  action_idx
struct doca_flow_ct_ip4 ip4
struct doca_flow_ct_ip6 ip6
struct doca_flow_header_l4_port l4_port
struct doca_flow_meta meta
enumdoca_flow_resource_type resource_type


uint32_t doca_flow_ct_actions::action_handle [inherited]

handle of a predefined shared action

uint8_t doca_flow_ct_actions::action_idx [inherited]

action template index

struct doca_flow_ct_ip4doca_flow_ct_actions::ip4 [inherited]

source and destination ipv4 addresses

struct doca_flow_ct_ip6doca_flow_ct_actions::ip6 [inherited]

source and destination ipv6 addresses

struct doca_flow_header_l4_portdoca_flow_ct_actions::l4_port [inherited]

UDP or TCP source and destination port

struct doca_flow_metadoca_flow_ct_actions::meta [inherited]

modify meta

enumdoca_flow_resource_typedoca_flow_ct_actions::resource_type [inherited]


[Doca Flow CT]

Public Variables

uint32_t  conn_version
uint32_t  ctr_origin
uint32_t  ctr_reply
uint32_t  ctr_shared
uint32_t  is_tcp
uint32_t  timeout
uint32_t  v
uint32_t  valid


uint32_t doca_flow_ct_aging_conn::conn_version [inherited]

+1 on connection reuse

uint32_t doca_flow_ct_aging_conn::ctr_origin [inherited]

Need origin direction counter

uint32_t doca_flow_ct_aging_conn::ctr_reply [inherited]

Need reply direction counter

uint32_t doca_flow_ct_aging_conn::ctr_shared [inherited]

Need shared counter for both direction

uint32_t doca_flow_ct_aging_conn::is_tcp [inherited]

Connection is TCP, default to UDP

uint32_t doca_flow_ct_aging_conn::timeout [inherited]

Timeout in seconds

uint32_t doca_flow_ct_aging_conn::v [inherited]

Union value, changed on connection change or reused

uint32_t doca_flow_ct_aging_conn::valid [inherited]

< Connection detail Connection is valid

[Doca Flow CT]

Public Variables

uint32_t  aging_conn_id
union doca_flow_ct_aging_conn conn
enumdoca_flow_entry_op op


uint32_t doca_flow_ct_aging_conn_event::aging_conn_id [inherited]

aging global connection ID

union doca_flow_ct_aging_conndoca_flow_ct_aging_conn_event::conn [inherited]

Connection info

enumdoca_flow_entry_opdoca_flow_ct_aging_conn_event::op [inherited]

Callback type: add, delete or update

[Doca Flow CT]

Public Variables

uint32_t  aging_conn_id
union doca_flow_ct_aging_conn conn_info
uint32_t  ctr_origin_id
uint32_t  ctr_reply_id


uint32_t doca_flow_ct_aging_conn_update_info::aging_conn_id [inherited]

Aging global connection ID

union doca_flow_ct_aging_conndoca_flow_ct_aging_conn_update_info::conn_info [inherited]

Connection info

uint32_t doca_flow_ct_aging_conn_update_info::ctr_origin_id [inherited]

Origin direction counter ID, UINT32_MAX to disable counter

uint32_t doca_flow_ct_aging_conn_update_info::ctr_reply_id [inherited]

Reply direction counter ID, UINT32_MAX to disable counter

[Doca Flow CT]

Public Variables

uint32_t  ctr_id
uint16_t  last_hit_s
uint64_t  total_bytes
uint64_t  total_pkts


uint32_t doca_flow_ct_aging_counter::ctr_id [inherited]

Counter ID

uint16_t doca_flow_ct_aging_counter::last_hit_s [inherited]

Last hit time in seconds

uint64_t doca_flow_ct_aging_counter::total_bytes [inherited]

Total bytes the counter received

uint64_t doca_flow_ct_aging_counter::total_pkts [inherited]

Total packets the counter received

[Doca Flow CT]

Public Variables

uint32_t  ctr_id
bool  inuse


uint32_t doca_flow_ct_aging_counter_state::ctr_id [inherited]

Counter global ID

bool doca_flow_ct_aging_counter_state::inuse [inherited]

Counter in use

[Doca Flow CT]

Public Variables

uint32_t  n_total_conns
uint32_t  n_total_counters
void * user_ctx


uint32_t doca_flow_ct_aging_ctx::n_total_conns [inherited]

Total connections

uint32_t doca_flow_ct_aging_ctx::n_total_counters [inherited]

Total allocated counters

void * doca_flow_ct_aging_ctx::user_ctx [inherited]

User set context

[Doca Flow CT]

Public Variables

doca_error_t  ( *aging_init_cb )( doca_flow_ct_aging_ctx* ctx )
void  ( *aging_shutdown_cb )( doca_flow_ct_aging_ctx* ctx )
void  ( *aging_timer_cb )( doca_flow_ct_aging_ctx* ctx, uint64_t current_time_s )
void  ( *conn_sync_cb )( doca_flow_ct_aging_ctx* ctx, doca_flow_ct_aging_conn_event* conn, uint32_t n )


doca_error_t ( *doca_flow_ct_aging_ops::aging_init_cb )( doca_flow_ct_aging_ctx* ctx )

Plugin init callback

void ( *doca_flow_ct_aging_ops::aging_shutdown_cb )( doca_flow_ct_aging_ctx* ctx )

Plugin shutdown callback

void ( *doca_flow_ct_aging_ops::aging_timer_cb )( doca_flow_ct_aging_ctx* ctx, uint64_t current_time_s )

Callback to check timeout connections based on counter statistics

void ( *doca_flow_ct_aging_ops::conn_sync_cb )( doca_flow_ct_aging_ctx* ctx, doca_flow_ct_aging_conn_event* conn, uint32_t n )

Before timer, Connection sync callback for changed connections

[Doca Flow Net]

doca flow CT ipV4

Public Variables

doca_be32_t dst_ip
doca_be32_t src_ip


doca_be32_tdoca_flow_ct_ip4::dst_ip [inherited]

ip dst address

doca_be32_tdoca_flow_ct_ip4::src_ip [inherited]

ip src address

[Doca Flow Net]

doca flow CT ipV6

Public Variables

doca_be32_t dst_ip[4]
doca_be32_t src_ip[4]


doca_be32_tdoca_flow_ct_ip6::dst_ip[4] [inherited]

ip dst address

doca_be32_tdoca_flow_ct_ip6::src_ip[4] [inherited]

ip src address

[Doca Flow CT]

Public Variables

doca_be32_t dst_ip
struct doca_flow_header_l4_port l4_port
doca_be32_t metadata
uint8_t  next_proto
doca_be32_t src_ip


doca_be32_tdoca_flow_ct_match4::dst_ip [inherited]

ip dst address

struct doca_flow_header_l4_portdoca_flow_ct_match4::l4_port [inherited]

UDP or TCP source and destination port

doca_be32_tdoca_flow_ct_match4::metadata [inherited]


uint8_t doca_flow_ct_match4::next_proto [inherited]

ip next protocol

doca_be32_tdoca_flow_ct_match4::src_ip [inherited]

ip src address

[Doca Flow CT]

Public Variables

doca_be32_t dst_ip[4]
struct doca_flow_header_l4_port l4_port
doca_be32_t metadata
uint8_t  next_proto
doca_be32_t src_ip[4]


doca_be32_tdoca_flow_ct_match6::dst_ip[4] [inherited]

ip dst address

struct doca_flow_header_l4_portdoca_flow_ct_match6::l4_port [inherited]

UDP or TCP source and destination port

doca_be32_tdoca_flow_ct_match6::metadata [inherited]


uint8_t doca_flow_ct_match6::next_proto [inherited]

ip next protocol

doca_be32_tdoca_flow_ct_match6::src_ip[4] [inherited]

ip src address

[Doca Flow CT]

Public Variables

uint32_t  data
uint32_t  hairpin
uint32_t  src
uint32_t  type
uint32_t  u32


uint32_t doca_flow_ct_meta::data [inherited]

Combination of reserved, zone, user action data and user data.

uint32_t doca_flow_ct_meta::hairpin [inherited]

Subject to forward using hairpin.

uint32_t doca_flow_ct_meta::src [inherited]

Source port in multi-port E-Switch mode

uint32_t doca_flow_ct_meta::type [inherited]

Refer to doca_flow_ct_meta_type.

uint32_t doca_flow_ct_meta::u32 [inherited]

CPU endian.

[Doca Flow CT]

ct packet sent to user via pkt_callback

Public Variables

void * buf
uint32_t  conn_id
uint32_t  data_sz_be
uint32_t  is_ipv6
uint32_t  is_last
uint32_t  is_tcp
union doca_flow_ct_meta meta
uint32_t  offset


void * doca_flow_ct_pkt::buf [inherited]

packet buffer, should not be changed by the user

uint32_t doca_flow_ct_pkt::conn_id [inherited]

connection id

uint32_t doca_flow_ct_pkt::data_sz_be [inherited]

packet size, may be changed by the user (if packet change)

uint32_t doca_flow_ct_pkt::is_ipv6 [inherited]

indication for ipv6

uint32_t doca_flow_ct_pkt::is_last [inherited]

indication for last packet in burst

uint32_t doca_flow_ct_pkt::is_tcp [inherited]

indication for tcp packet

union doca_flow_ct_metadoca_flow_ct_pkt::meta [inherited]

metadata in CPU endian

uint32_t doca_flow_ct_pkt::offset [inherited]

packet buffer start sending offset (changed by the user)

[DOCA Flow]

Field based on a string that is composed out of struct members separated by a dot.

The 1st segment determines the field location in packet "outer", "inner", "tunnel". The 2nd segment determines the protocol. The 3rd segment determines the field.

E.g. "outer.eth.src_mac" "tunnel.gre.protocol" "inner.ipv4.next_proto"

Public Variables

uint32_t  bit_offset
const char * field_string


uint32_t doca_flow_desc_field::bit_offset [inherited]

Field bit offset.

const char * doca_flow_desc_field::field_string [inherited]

Field selection by string.

[DOCA Flow]

Public Variables

uint32_t  idx
doca_flow_pipe * next_pipe
int  num_of_queues
doca_flow_fwd::@33::@41  ordered_list_pipe
doca_flow_pipe * pipe
uint16_t  port_id
enumdoca_flow_rss_hash_function rss_hash_func
uint32_t  rss_inner_flags
uint32_t  rss_outer_flags
uint16_t * rss_queues
uint32_t  shared_rss_id
doca_flow_target * target
enumdoca_flow_fwd_type type


uint32_t doca_flow_fwd::idx [inherited]

Index of the ordered list pipe entry.

doca_flow_pipe * doca_flow_fwd::next_pipe [inherited]

next pipe pointer

int doca_flow_fwd::num_of_queues [inherited]

number of queues

doca_flow_fwd::@33::@41 doca_flow_fwd::ordered_list_pipe [inherited]

next ordered list pipe configuration

doca_flow_pipe * doca_flow_fwd::pipe [inherited]

Ordered list pipe to select an entry from.

uint16_t doca_flow_fwd::port_id [inherited]

destination port id

enumdoca_flow_rss_hash_functiondoca_flow_fwd::rss_hash_func [inherited]

hash function

uint32_t doca_flow_fwd::rss_inner_flags [inherited]

rss offload inner types

uint32_t doca_flow_fwd::rss_outer_flags [inherited]

rss offload outer types

uint16_t * doca_flow_fwd::rss_queues [inherited]

rss queues array

uint32_t doca_flow_fwd::shared_rss_id [inherited]

shared rss id, only for pipe's fwd is NULL

doca_flow_target * doca_flow_fwd::target [inherited]

pointer to target handler

enumdoca_flow_fwd_typedoca_flow_fwd::type [inherited]

indicate the forwarding type

[Doca Flow Net]

This object describes single DW (4-bytes) from GENEVE option header. It describes either the first DW in the option including class, type and length or any other data DW.

Public Variables

doca_be16_t class_id
doca_be32_t data
uint8_t  type


doca_be16_tdoca_flow_geneve_option::class_id [inherited]

option class

doca_be32_tdoca_flow_geneve_option::data [inherited]

4 bytes of option data.

uint8_t doca_flow_geneve_option::type [inherited]

option type

[Doca Flow Net]

Public Variables

uint8_t  dst_mac[DOCA_FLOW_ETHER_ADDR_LEN]
uint8_t  src_mac[DOCA_FLOW_ETHER_ADDR_LEN]
doca_be16_t type


uint8_t doca_flow_header_eth::dst_mac[DOCA_FLOW_ETHER_ADDR_LEN] [inherited]

destination mac address

uint8_t doca_flow_header_eth::src_mac[DOCA_FLOW_ETHER_ADDR_LEN] [inherited]

source mac address

doca_be16_tdoca_flow_header_eth::type [inherited]

eth type

[Doca Flow Net]

Public Variables

doca_be16_t next_proto
uint8_t  o_c
uint8_t  ver_opt_len
doca_be32_t vni


doca_be16_tdoca_flow_header_geneve::next_proto [inherited]

next protocol

uint8_t doca_flow_header_geneve::o_c [inherited]

OAM packet (1) + critical options present (1) + reserved (6).

uint8_t doca_flow_header_geneve::ver_opt_len [inherited]

version (2) + options length (6).

doca_be32_tdoca_flow_header_geneve::vni [inherited]

geneve vni (24) + reserved (8).

[Doca Flow Net]

Public Variables

uint8_t  code
doca_be16_t ident
uint8_t  type


uint8_t doca_flow_header_icmp::code [inherited]

icmp code.

doca_be16_tdoca_flow_header_icmp::ident [inherited]

icmp identifier.

uint8_t doca_flow_header_icmp::type [inherited]

icmp type

[Doca Flow Net]

Public Variables

uint8_t  dscp_ecn
doca_be32_t dst_ip
doca_be16_t flags_fragment_offset
doca_be16_t identification
uint8_t  next_proto
doca_be32_t src_ip
doca_be16_t total_len
uint8_t  ttl
uint8_t  version_ihl


uint8_t doca_flow_header_ip4::dscp_ecn [inherited]

dscp and ecn

doca_be32_tdoca_flow_header_ip4::dst_ip [inherited]

ip dst address

doca_be16_tdoca_flow_header_ip4::flags_fragment_offset [inherited]

ip fragment flags (3) + ip fragment offset (13)

doca_be16_tdoca_flow_header_ip4::identification [inherited]

ip fragment identification

uint8_t doca_flow_header_ip4::next_proto [inherited]

ip next protocol

doca_be32_tdoca_flow_header_ip4::src_ip [inherited]

ip src address

doca_be16_tdoca_flow_header_ip4::total_len [inherited]

packet total length

uint8_t doca_flow_header_ip4::ttl [inherited]

time to live

uint8_t doca_flow_header_ip4::version_ihl [inherited]

version and internet header length

[Doca Flow Net]

Public Variables

doca_be32_t dst_ip[4]
doca_be32_t flow_label
uint8_t  hop_limit
uint8_t  next_proto
doca_be16_t payload_len
doca_be32_t src_ip[4]
uint8_t  traffic_class


doca_be32_tdoca_flow_header_ip6::dst_ip[4] [inherited]

ip dst address

doca_be32_tdoca_flow_header_ip6::flow_label [inherited]

reserved (12) + flow label (20)

uint8_t doca_flow_header_ip6::hop_limit [inherited]

hop limit

uint8_t doca_flow_header_ip6::next_proto [inherited]

ip next protocol

doca_be16_tdoca_flow_header_ip6::payload_len [inherited]

payload length

doca_be32_tdoca_flow_header_ip6::src_ip[4] [inherited]

ip src address

uint8_t doca_flow_header_ip6::traffic_class [inherited]

traffic class

[Doca Flow Net]


‎ 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Label | TC |S| TTL | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Public Variables

doca_be32_t label


doca_be32_tdoca_flow_header_mpls::label [inherited]

MPLS label.

[Doca Flow Net]

Public Variables

uint8_t  hdrextlen
doca_be64_t iv
uint8_t  nexthdr
uint8_t  res_cryptofst
uint8_t  s_d_ver_v
doca_be32_t spi
doca_be64_t vc


uint8_t doca_flow_header_psp::hdrextlen [inherited]

header extension length

doca_be64_tdoca_flow_header_psp::iv [inherited]

psp initialization vector

uint8_t doca_flow_header_psp::nexthdr [inherited]

next header IP protocol number

uint8_t doca_flow_header_psp::res_cryptofst [inherited]

reserved:2, crypto offset:6

uint8_t doca_flow_header_psp::s_d_ver_v [inherited]

Sample bit, drop bit, version:4, V bit

doca_be32_tdoca_flow_header_psp::spi [inherited]

psp session parameter index

doca_be64_tdoca_flow_header_psp::vc [inherited]

psp virtualization cookie

[Doca Flow Net]

Public Variables

uint8_t  data_offset
uint8_t  flags
struct doca_flow_header_l4_port l4_port


uint8_t doca_flow_header_tcp::data_offset [inherited]

tcp data offset

uint8_t doca_flow_header_tcp::flags [inherited]

tcp flags

struct doca_flow_header_l4_portdoca_flow_header_tcp::l4_port [inherited]

tcp source and destination port

[Doca Flow Net]

Public Variables

struct doca_flow_header_l4_port l4_port


struct doca_flow_header_l4_portdoca_flow_header_udp::l4_port [inherited]

udp source and destination port

[Doca Flow Net]

Public Variables

doca_be32_t ipv4_addr
doca_be32_t ipv6_addr[4]
enumdoca_flow_l3_type 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

enumdoca_flow_l3_typedoca_flow_ip_addr::type [inherited]

ip address type

[DOCA Flow]

Public Variables

uint32_t  flags
struct doca_flow_header_format inner
struct doca_flow_meta meta
struct doca_flow_header_format outer
struct doca_flow_parser_meta parser_meta
struct doca_flow_tun tun


uint32_t doca_flow_match::flags [inherited]

match items which are no value

struct doca_flow_header_formatdoca_flow_match::inner [inherited]

inner layer header format

struct doca_flow_metadoca_flow_match::meta [inherited]

Programmable meta data.

struct doca_flow_header_formatdoca_flow_match::outer [inherited]

outer layer header format

struct doca_flow_parser_metadoca_flow_match::parser_meta [inherited]

Read-only meta data.

struct doca_flow_tundoca_flow_match::tun [inherited]

tunnel info

[DOCA Flow]

Public Variables

struct doca_flow_desc_field a
struct doca_flow_desc_field b
enumdoca_flow_compare_op operation
uint32_t  width


struct doca_flow_desc_fielddoca_flow_match_condition::a [inherited]

Field descriptor A.

struct doca_flow_desc_fielddoca_flow_match_condition::b [inherited]

Field descriptor B.

enumdoca_flow_compare_opdoca_flow_match_condition::operation [inherited]

Condition compare operation.

uint32_t doca_flow_match_condition::width [inherited]

Field width.

[DOCA Flow]

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 doesn'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  mark
uint32_t  pkt_meta


uint32_t doca_flow_meta::mark [inherited]

Mark id.

uint32_t doca_flow_meta::pkt_meta [inherited]

Shared with application via packet.

uint32_t doca_flow_meta::u32[DOCA_FLOW_META_SCRATCH_PAD_MAX] [inherited]

Programmable user data.

[DOCA Flow]

Public Variables

struct doca_flow_encap_action encap
struct doca_flow_fwd fwd
bool  has_encap


struct doca_flow_encap_actiondoca_flow_mirror_target::encap [inherited]

Encap data.

struct doca_flow_fwddoca_flow_mirror_target::fwd [inherited]

Mirror target, must be filled.

bool doca_flow_mirror_target::has_encap [inherited]

Encap mirrored packets.

[DOCA Flow]

Public Variables

uint32_t  aging_sec
uint64_t  cbs
uint64_t  cir
enumdoca_flow_resource_type counter_type
enumdoca_flow_meter_limit_type limit_type
enum doca_flow_meter_color  meter_init_color
enumdoca_flow_resource_type meter_type
uint32_t  shared_counter_id
uint32_t  shared_meter_id
uint32_t  shared_mirror_id


uint32_t doca_flow_monitor::aging_sec [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).

enumdoca_flow_resource_typedoca_flow_monitor::counter_type [inherited]

Type of counter configuration.

enumdoca_flow_meter_limit_typedoca_flow_monitor::limit_type [inherited]

Meter rate limit type: bytes / packets per second

enum doca_flow_meter_color doca_flow_monitor::meter_init_color [inherited]

meter initial color

enumdoca_flow_resource_typedoca_flow_monitor::meter_type [inherited]

Type of meter configuration.

uint32_t doca_flow_monitor::shared_counter_id [inherited]

shared counter id

uint32_t doca_flow_monitor::shared_meter_id [inherited]

shared meter id

uint32_t doca_flow_monitor::shared_mirror_id [inherited]

shared mirror id.

[DOCA Flow]

Ordered list configuration.

Public Variables

const * elements
uint32_t  idx
uint32_t  size


const * doca_flow_ordered_list::elements [inherited]

An array of DOCA flow structure pointers, depending on types.

uint32_t doca_flow_ordered_list::idx [inherited]

List index among the lists of the pipe. At pipe creation, it must match the list position in the array of lists. At entry insertion, it determines which list to use.

uint32_t doca_flow_ordered_list::size [inherited]

Number of elements in the list.

[DOCA Flow]

Public Variables

enumdoca_flow_parser_geneve_opt_mode match_on_class_mode
doca_be16_t option_class
uint8_t  option_len
uint8_t  option_type


doca_be32_tdoca_flow_parser_geneve_opt_cfg::data_mask[DOCA_FLOW_GENEVE_DATA_OPTION_LEN_MAX] [inherited]

Data mask describing which DWs should be sampled.

enumdoca_flow_parser_geneve_opt_modedoca_flow_parser_geneve_opt_cfg::match_on_class_mode [inherited]

Indicator about class field role in this option.

doca_be16_tdoca_flow_parser_geneve_opt_cfg::option_class [inherited]

The class of the GENEVE TLV option.

uint8_t doca_flow_parser_geneve_opt_cfg::option_len [inherited]

The length of the GENEVE TLV option data in DW granularity.

uint8_t doca_flow_parser_geneve_opt_cfg::option_type [inherited]

The type of the GENEVE TLV option.

[DOCA Flow]

Parser meta data known as read-only hardware data that can be used to match.

Public Variables

uint8_t  inner_ip4_checksum_ok
uint8_t  inner_ip_fragmented
enumdoca_flow_l2_meta inner_l2_type
uint8_t  inner_l3_ok
enumdoca_flow_l3_meta inner_l3_type
uint8_t  inner_l4_checksum_ok
uint8_t  inner_l4_ok
enumdoca_flow_l4_meta inner_l4_type
uint8_t  ipsec_syndrome
enum doca_flow_meter_color  meter_color
uint8_t  outer_ip4_checksum_ok
uint8_t  outer_ip_fragmented
enumdoca_flow_l2_meta outer_l2_type
uint8_t  outer_l3_ok
enumdoca_flow_l3_meta outer_l3_type
uint8_t  outer_l4_checksum_ok
uint8_t  outer_l4_ok
enumdoca_flow_l4_meta outer_l4_type
uint32_t  port_meta
uint8_t  psp_syndrome
uint16_t  random


uint8_t doca_flow_parser_meta::inner_ip4_checksum_ok [inherited]

Whether inner IPv4 checksum is valid.

uint8_t doca_flow_parser_meta::inner_ip_fragmented [inherited]

Whether inner IP packet is fragmented.

enumdoca_flow_l2_metadoca_flow_parser_meta::inner_l2_type [inherited]

Innermost L2 packet type.

uint8_t doca_flow_parser_meta::inner_l3_ok [inherited]

Whether inner L3 layer is valid without checksum.

enumdoca_flow_l3_metadoca_flow_parser_meta::inner_l3_type [inherited]

Innermost L3 packet type.

uint8_t doca_flow_parser_meta::inner_l4_checksum_ok [inherited]

Whether inner L4 checksum is valid.

uint8_t doca_flow_parser_meta::inner_l4_ok [inherited]

Whether inner L4 layer is valid including checksum.

enumdoca_flow_l4_metadoca_flow_parser_meta::inner_l4_type [inherited]

Innermost L4 packet type.

uint8_t doca_flow_parser_meta::ipsec_syndrome [inherited]

IPsec decrypt/authentication syndrome.

enum doca_flow_meter_color doca_flow_parser_meta::meter_color [inherited]

Meter colors: Green, Yellow, Red.

uint8_t doca_flow_parser_meta::outer_ip4_checksum_ok [inherited]

Whether outer IPv4 checksum is valid.

uint8_t doca_flow_parser_meta::outer_ip_fragmented [inherited]

Whether outer IP packet is fragmented.

enumdoca_flow_l2_metadoca_flow_parser_meta::outer_l2_type [inherited]

Outermost L2 packet type.

uint8_t doca_flow_parser_meta::outer_l3_ok [inherited]

Whether outer L3 layer is valid without checksum.

enumdoca_flow_l3_metadoca_flow_parser_meta::outer_l3_type [inherited]

Outermost L3 packet type.

uint8_t doca_flow_parser_meta::outer_l4_checksum_ok [inherited]

Whether outer L4 checksum is valid.

uint8_t doca_flow_parser_meta::outer_l4_ok [inherited]

Whether outer L4 layer is valid including checksum.

enumdoca_flow_l4_metadoca_flow_parser_meta::outer_l4_type [inherited]

Outermost L4 packet type.

uint32_t doca_flow_parser_meta::port_meta [inherited]

Programmable source vport.

uint8_t doca_flow_parser_meta::psp_syndrome [inherited]

PSP decrypt/authentication syndrome.

uint16_t doca_flow_parser_meta::random [inherited]

Matches a random value. This value is not based on the packet data/headers. Application shouldn't assume that this value is kept during the packet lifetime.

[DOCA Flow]

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

[DOCA Flow]

Public Variables

struct doca_flow_header_eth eth
struct doca_flow_header_eth_vlan eth_vlan[DOCA_FLOW_VLAN_MAX]
bool  is_l2
uint16_t  l2_valid_headers


struct doca_flow_header_ethdoca_flow_resource_decap_cfg::eth [inherited]

ether head for is_l2 is false

struct doca_flow_header_eth_vlandoca_flow_resource_decap_cfg::eth_vlan[DOCA_FLOW_VLAN_MAX] [inherited]

vlan header array for is_l2 is false

bool doca_flow_resource_decap_cfg::is_l2 [inherited]

L2 or L3 tunnel flavor

uint16_t doca_flow_resource_decap_cfg::l2_valid_headers [inherited]

indicate which headers are valid

[DOCA Flow]

Public Variables

struct doca_flow_encap_action encap
bool  is_l2


struct doca_flow_encap_actiondoca_flow_resource_encap_cfg::encap [inherited]

Encap data

bool doca_flow_resource_encap_cfg::is_l2 [inherited]

L2 or L3 tunnel flavor

[DOCA Flow]

Public Variables

bool  esn_en
enumdoca_flow_crypto_icv_len icv_len
uint64_t  implicit_iv
struct doca_flow_crypto_key_cfg key_cfg
uint32_t  salt
uint64_t  sn_initial
enumdoca_flow_crypto_sn_offload_type sn_offload_type
enumdoca_flow_crypto_replay_win_size win_size


bool doca_flow_resource_ipsec_sa_cfg::esn_en [inherited]

Enable extended sequence number

enumdoca_flow_crypto_icv_lendoca_flow_resource_ipsec_sa_cfg::icv_len [inherited]

ICV value

uint64_t doca_flow_resource_ipsec_sa_cfg::implicit_iv [inherited]

implicit IV value

struct doca_flow_crypto_key_cfgdoca_flow_resource_ipsec_sa_cfg::key_cfg [inherited]

IPSec key configuration

uint32_t doca_flow_resource_ipsec_sa_cfg::salt [inherited]

salt value

uint64_t doca_flow_resource_ipsec_sa_cfg::sn_initial [inherited]

Initial sequence number

enumdoca_flow_crypto_sn_offload_typedoca_flow_resource_ipsec_sa_cfg::sn_offload_type [inherited]

SN offload type - increment or anti-replay

enumdoca_flow_crypto_replay_win_sizedoca_flow_resource_ipsec_sa_cfg::win_size [inherited]

Anti-replay window size - only valid when using DOCA_FLOW_CRYPTO_SN_OFFLOAD_AR

[DOCA Flow]

Public Variables

enumdoca_flow_meter_algorithm_type alg
uint64_t  cbs
uint64_t  cir
enumdoca_flow_meter_color_mode color_mode
uint64_t  ebs
uint64_t  eir
enumdoca_flow_meter_limit_type limit_type
uint64_t  pbs
uint64_t  pir


enumdoca_flow_meter_algorithm_typedoca_flow_resource_meter_cfg::alg [inherited]

Meter algorithm by RFCs

uint64_t doca_flow_resource_meter_cfg::cbs [inherited]

Committed Burst Size (bytes or packets).

uint64_t doca_flow_resource_meter_cfg::cir [inherited]

Committed Information Rate (bytes or packets per second).

enumdoca_flow_meter_color_modedoca_flow_resource_meter_cfg::color_mode [inherited]

Meter color mode: blind / aware

uint64_t doca_flow_resource_meter_cfg::ebs [inherited]

Excess Burst Size (EBS) (bytes or packets).

uint64_t doca_flow_resource_meter_cfg::eir [inherited]

Excess Information Rate (bytes or packets per seconds).

enumdoca_flow_meter_limit_typedoca_flow_resource_meter_cfg::limit_type [inherited]

Meter rate limit type: bytes / packets per second

uint64_t doca_flow_resource_meter_cfg::pbs [inherited]

Peak Burst Size (bytes or packets).

uint64_t doca_flow_resource_meter_cfg::pir [inherited]

Peak Information Rate (bytes or packets per seconds).

[DOCA Flow]

Public Variables

struct doca_flow_fwd fwd
int  nr_targets


struct doca_flow_fwddoca_flow_resource_mirror_cfg::fwd [inherited]

Original packet dst, can be filled optional.

int doca_flow_resource_mirror_cfg::nr_targets [inherited]

Mirror target number.

doca_flow_mirror_target * doca_flow_resource_mirror_cfg::target [inherited]

Mirror target pointer.

[DOCA Flow]

Public Variables

uint32_t  inner_flags
int  nr_queues
uint32_t  outer_flags
uint16_t * queues_array
enumdoca_flow_rss_hash_function rss_hash_func


uint32_t doca_flow_resource_rss_cfg::inner_flags [inherited]

rss offload inner types

int doca_flow_resource_rss_cfg::nr_queues [inherited]

number of queues

uint32_t doca_flow_resource_rss_cfg::outer_flags [inherited]

rss offload outer types

uint16_t * doca_flow_resource_rss_cfg::queues_array [inherited]

rss queues array

enumdoca_flow_rss_hash_functiondoca_flow_resource_rss_cfg::rss_hash_func [inherited]

hash function

[Doca Flow Net]

Public Variables

doca_be32_t esp_sn
doca_be32_t esp_spi
struct doca_flow_header_geneve geneve
union doca_flow_geneve_option geneve_options[DOCA_FLOW_GENEVE_OPT_LEN_MAX]
doca_be32_t gre_key
doca_be32_t gtp_teid
bool  key_present
struct doca_flow_header_mpls mpls[DOCA_FLOW_MPLS_LABELS_MAX]
uint8_t  nvgre_flow_id
doca_be32_t nvgre_vs_id
doca_be16_t protocol
enumdoca_flow_tun_type type
doca_be16_t vxlan_group_policy_id
uint8_t  vxlan_next_protocol
doca_be32_t vxlan_tun_id
enumdoca_flow_tun_ext_vxlan_type vxlan_type


doca_be32_tdoca_flow_tun::esp_sn [inherited]

ipsec sequence number

doca_be32_tdoca_flow_tun::esp_spi [inherited]

ipsec session parameter index

struct doca_flow_header_genevedoca_flow_tun::geneve [inherited]

geneve header

union doca_flow_geneve_optiondoca_flow_tun::geneve_options[DOCA_FLOW_GENEVE_OPT_LEN_MAX] [inherited]

geneve options as array of doca_be32_t

doca_be32_tdoca_flow_tun::gre_key [inherited]

gre key

doca_be32_tdoca_flow_tun::gtp_teid [inherited]

gtp teid

bool doca_flow_tun::key_present [inherited]

gre key is present

struct doca_flow_header_mplsdoca_flow_tun::mpls[DOCA_FLOW_MPLS_LABELS_MAX] [inherited]

mpls labels

uint8_t doca_flow_tun::nvgre_flow_id [inherited]

nvgre flow id.

doca_be32_tdoca_flow_tun::nvgre_vs_id [inherited]

nvgre virtual subnet id(24) + reserved (8).

doca_be16_tdoca_flow_tun::protocol [inherited]

next protocol

enumdoca_flow_tun_typedoca_flow_tun::type [inherited]

tunnel type

doca_be16_tdoca_flow_tun::vxlan_group_policy_id [inherited]

vxlan gbp group policy id

uint8_t doca_flow_tun::vxlan_next_protocol [inherited]

vxlan gpe next protocol

doca_be32_tdoca_flow_tun::vxlan_tun_id [inherited]

vxlan vni(24) + reserved (8).

enumdoca_flow_tun_ext_vxlan_typedoca_flow_tun::vxlan_type [inherited]

vxlan ext-type, standard, gpe, gbp

[DOCA Flow Tune Server]

Public Variables

uint64_t  nr_counter
uint64_t  nr_decap
uint64_t  nr_encap
uint64_t  nr_meter
uint64_t  nr_mirror
uint64_t  nr_psp
uint64_t  nr_rss


uint64_t doca_flow_tune_server_shared_resources_kpi_res::nr_counter [inherited]

Total number of shared counters

uint64_t doca_flow_tune_server_shared_resources_kpi_res::nr_decap [inherited]

Total number of shared decap

uint64_t doca_flow_tune_server_shared_resources_kpi_res::nr_encap [inherited]

Total number of shared encap

uint64_t doca_flow_tune_server_shared_resources_kpi_res::nr_meter [inherited]

Total number of shared meters

uint64_t doca_flow_tune_server_shared_resources_kpi_res::nr_mirror [inherited]

Total number of shared mirrors

uint64_t doca_flow_tune_server_shared_resources_kpi_res::nr_psp [inherited]

Total number of shared psp

uint64_t doca_flow_tune_server_shared_resources_kpi_res::nr_rss [inherited]

Total number of shared rss

[DOCA Types]

Public Variables

void * addr
uint64_t  len


void * doca_gather_list::addr [inherited]

Address of buffer in the list

uint64_t doca_gather_list::len [inherited]

Length of current buffer in bytes

doca_gather_list * doca_gather_list::next [inherited]

Pointer to next buffer in the list

[DOCA 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.

[DOCA PCC Device Algorithm Access]

Public Variables

uint64_t  algo_desc_addr
uint32_t  algo_desc_size
uint32_t  algo_id
uint32_t  algo_major_version
uint32_t  algo_minor_version


uint64_t doca_pcc_dev_algo_meta_data::algo_desc_addr [inherited]

pointer to description string

uint32_t doca_pcc_dev_algo_meta_data::algo_desc_size [inherited]

size of description string (null terminated)

uint32_t doca_pcc_dev_algo_meta_data::algo_id [inherited]

algo unique identifier

uint32_t doca_pcc_dev_algo_meta_data::algo_major_version [inherited]

algo major version

uint32_t doca_pcc_dev_algo_meta_data::algo_minor_version [inherited]

algo minor version

[DOCA PCC Device Notification Point]

Public Variables

uint8_t * data
size_t  size


uint8_t * doca_pcc_np_dev_response_packet::data [inherited]

data buffer for user to fill

size_t doca_pcc_np_dev_response_packet::size [inherited]

size of data buffer


gid struct

Public Variables

uint8_t  raw[DOCA_GID_BYTE_LENGTH]


uint8_t doca_rdma_gid::raw[DOCA_GID_BYTE_LENGTH] [inherited]

The raw value of the GID

[DOCA RMAX Engine]

Public Variables

doca_rmax_cpu_mask_t cpu_bits[DOCA_RMAX_CPU_SETSIZE/DOCA_RMAX_NCPUBITS]


doca_rmax_cpu_mask_tdoca_rmax_cpu_affinity_mask::cpu_bits[DOCA_RMAX_CPU_SETSIZE/DOCA_RMAX_NCPUBITS] [inherited]

CPU is included in affinity mask if the corresponding bit is set

[DOCA RMAX Engine]

Input stream starts to receive packets right after start and attaching any flow.

Public Variables

uint32_t  elements_count
uint32_t  memblk_ptr_arr_len
uint32_t  seqn_first
uint64_t  ts_first
uint64_t  ts_last


uint32_t doca_rmax_in_stream_completion::elements_count [inherited]

Number of packets received

* doca_rmax_in_stream_completion::memblk_ptr_arr [inherited]

Array of pointers to the beginning of the memory block as configured by input stream create step. The offset between packets inside memory block can be queried by doca_rmax_in_stream_get_memblk_stride_size

uint32_t doca_rmax_in_stream_completion::memblk_ptr_arr_len [inherited]

Number of memory blocks placed in memblk_ptr_arr. See doca_rmax_in_stream_get_memblks_count.

uint32_t doca_rmax_in_stream_completion::seqn_first [inherited]

Sequnce number of the first packet

uint64_t doca_rmax_in_stream_completion::ts_first [inherited]

Time of arrival of the first packet

uint64_t doca_rmax_in_stream_completion::ts_last [inherited]

Time of arrival of the last packet

[DOCA RMAX Engine]

Public Variables

int  code
const char * message


int doca_rmax_stream_error::code [inherited]

Raw Rivermax error code

const char * doca_rmax_stream_error::message [inherited]

Human-readable error

[DOCA UROM (Unified Resource and Offload Manager)DOCA UROM Domains]

Public Variables

doca_urom_domain_allgather_cb_t allgather
void * coll_info
uint32_t  n_oob_indexes
uint32_t  oob_index
doca_urom_domain_req_free_cb_t req_free
doca_urom_domain_req_test_cb_t req_test


doca_urom_domain_allgather_cb_tdoca_urom_domain_oob_coll::allgather [inherited]

Non-blocking Allgather callback

void * doca_urom_domain_oob_coll::coll_info [inherited]

Context or meta data required by the OOB collective

uint32_t doca_urom_domain_oob_coll::n_oob_indexes [inherited]

Number of endpoints participating in the oob operation (e.g., number of client processes representing a domain workers)

uint32_t doca_urom_domain_oob_coll::oob_index [inherited]

Integer value that represents the position of the calling processes in the given oob op: the data specified by "src_buf" will be placed at the offset "oob_index*size" in the "recv_buf". oob_index must be unique at every calling process and should be in the range [0:n_oob_indexes).

doca_urom_domain_req_free_cb_tdoca_urom_domain_oob_coll::req_free [inherited]

Request free callback

doca_urom_domain_req_test_cb_tdoca_urom_domain_oob_coll::req_test [inherited]

Request test callback

[DOCA UROM Plugins]

UROM plugin info structure

Public Variables

uint64_t  id
char  plugin_name[DOCA_UROM_PLUGIN_NAME_MAX_LEN]
uint64_t  version


uint64_t doca_urom_service_plugin_info::id [inherited]

Unique ID to send commands to the plugin

char doca_urom_service_plugin_info::plugin_name[DOCA_UROM_PLUGIN_NAME_MAX_LEN] [inherited]

The .so plugin file name, without ".so"

uint64_t doca_urom_service_plugin_info::version [inherited]

Plugin version

[DOCA UROM Plugins]

Public Variables

doca_error_t  ( *addr_lookup )( urom_worker_ctx* ctx, uint64_t domain_id, void* *addr )
doca_error_t  ( *memh_lookup )( urom_worker_ctx* ctx, uint64_t domain_id, int  seg, size_t* len, void* *memh )
doca_error_t  ( *mkey_lookup )( urom_worker_ctx* ctx, uint64_t domain_id, int  seg, size_t* len, void* *rkey )
doca_error_t  ( *seg_lookup )( urom_worker_ctx* ctx, uint64_t domain_id, uint64_t va, int* seg )


doca_error_t ( *urom_domain_lookups_iface::addr_lookup )( urom_worker_ctx* ctx, uint64_t domain_id, void* *addr )

Domain address lookup function.

doca_error_t ( *urom_domain_lookups_iface::memh_lookup )( urom_worker_ctx* ctx, uint64_t domain_id, int  seg, size_t* len, void* *memh )

Domain memory handle lookup function.

doca_error_t ( *urom_domain_lookups_iface::mkey_lookup )( urom_worker_ctx* ctx, uint64_t domain_id, int  seg, size_t* len, void* *rkey )

Domain memory key lookup function.

doca_error_t ( *urom_domain_lookups_iface::seg_lookup )( urom_worker_ctx* ctx, uint64_t domain_id, uint64_t va, int* seg )

Domain memory segment lookup function.

[DOCA UROM Plugins]

Public Variables

doca_error_t  ( *addr )( urom_worker_ctx* ctx, void* addr, size_t* addr_len )
void  ( *close )( urom_worker_ctx* ctx )
doca_error_t  ( *notif_pack )( urom_worker_notify* notif, size_t* packed_notif_len, void* packed_notif )
doca_error_t  ( *open )( urom_worker_ctx* ctx )
doca_error_t  ( *progress )( urom_worker_ctx* ctx, ucs_list_link_t* notif_list )
doca_error_t  ( *worker_cmd )( urom_worker_ctx* ctx, ucs_list_link_t* cmd_list )


urom_plugin_iface::DOCA_STRUCT_START [inherited]

Store which DOCA API version the plugin is compiled with.

doca_error_t ( *urom_plugin_iface::addr )( urom_worker_ctx* ctx, void* addr, size_t* addr_len )

Return address of worker component.

void ( *urom_plugin_iface::close )( urom_worker_ctx* ctx )

Close worker plugin context.

doca_error_t ( *urom_plugin_iface::notif_pack )( urom_worker_notify* notif, size_t* packed_notif_len, void* packed_notif )

Pack a worker notification before sending on the wire.

doca_error_t ( *urom_plugin_iface::open )( urom_worker_ctx* ctx )

Open worker plugin context, including resources initialization.

doca_error_t ( *urom_plugin_iface::progress )( urom_worker_ctx* ctx, ucs_list_link_t* notif_list )

Progress the worker component and add notifications to the end of notif_list.

Caller is responsible to free each entry in notif_list.


: if there is no notification should return DOCA_ERROR_EMPTY

doca_error_t ( *urom_plugin_iface::worker_cmd )( urom_worker_ctx* ctx, ucs_list_link_t* cmd_list )

Process worker commands.

Worker is responsible to free each entry removed from cmd_list. Entries are of type struct urom_cmd_desc.

[DOCA UROM Plugins]

Public Variables

uint64_t  len
uint8_t  plugin_cmd[]
uint64_t  type
uint64_t  urom_context


uint64_t urom_worker_cmd::len [inherited]

Plugin command length

uint8_t urom_worker_cmd::plugin_cmd[] [inherited]

Plugin command buffer

uint64_t urom_worker_cmd::type [inherited]

Plugin type that command belongs to

uint64_t urom_worker_cmd::urom_context [inherited]

UROM context, User shouldn't change it

[DOCA UROM Plugins]

Public Variables

uint64_t  dest_id
ucs_list_link_t  entry
struct urom_worker_cmd worker_cmd


uint64_t urom_worker_cmd_desc::dest_id [inherited]

Worker communication channel ID

ucs_list_link_t urom_worker_cmd_desc::entry [inherited]

Descriptor entry in linked list

struct urom_worker_cmdurom_worker_cmd_desc::worker_cmd [inherited]

UROM worker command

[DOCA UROM Plugins]

Public Variables

struct urom_domain_lookups_iface domain_iface
struct urom_plugin_iface iface
void * plugin_ctx


struct urom_domain_lookups_ifaceurom_worker_ctx::domain_iface [inherited]

Worker domain lookups interface

struct urom_plugin_ifaceurom_worker_ctx::iface [inherited]

Worker plugin interface

void * urom_worker_ctx::plugin_ctx [inherited]

Worker plugin context

[DOCA UROM Plugins]

Public Variables

uint64_t  dest_id
ucs_list_link_t  entry
struct urom_worker_notify worker_notif


uint64_t urom_worker_notif_desc::dest_id [inherited]

Worker communication channel ID, it's the user's responsibility to set it to be identical to the command descriptor id

ucs_list_link_t urom_worker_notif_desc::entry [inherited]

Descriptor entry in linked list

struct urom_worker_notifyurom_worker_notif_desc::worker_notif [inherited]

UROM worker notification

[DOCA UROM Plugins]

Public Variables

uint64_t  len
uint8_t  plugin_notif[]
uint32_t  reserved
doca_error_t status
uint64_t  type
uint64_t  urom_context


uint64_t urom_worker_notify::len [inherited]

Plugin notification length

uint8_t urom_worker_notify::plugin_notif[] [inherited]

Plugin notification buffer

uint32_t urom_worker_notify::reserved [inherited]

Reserved 4 bytes to align status address with 64 bits

doca_error_turom_worker_notify::status [inherited]

Notification status in DOCA terms

uint64_t urom_worker_notify::type [inherited]

Plugin type that notification belongs to

uint64_t urom_worker_notify::urom_context [inherited]

UROM context, it's the user's responsibility to set it to be identical to the command context

© Copyright 2024, NVIDIA. Last updated on May 7, 2024.