3. Data Structures
Here are the data structures with brief descriptions:
- doca_compress_deflate_job
- doca_compress_lz4_job
- doca_ct_cfg
- Doca ct global configuration
- doca_dma_job_memcpy
- doca_dma_memcpy_result
- doca_dpa_dev_event_remote_t
- doca_dpi_job
- DOCA_DPI job definition
- doca_dpi_parsing_info
- L2-L4 flow information, used to uniquely define a flow
- doca_dpi_result
- DOCA_DPI result definition
- doca_dpi_sig_data
- Extra signature data
- doca_dpi_sig_info
- Signature info
- doca_dpi_stat_info
- DPI statistics
- doca_ec_job
- Galois multiplication. This job will galois multiply the src buffer with the coding matrix and output the result to dst buffer
- doca_ec_job_create
- Jobs to be dispatched via EC library. This job will galois multiply the src buffer with the coding matrix and output the result to dst buffer
- doca_ec_job_recover
- Recover job recover lost data blocks by using the remaining data blocks and redundancy blocks
- doca_ec_job_update
- Update job Update redundancy blocks because a few data blocks were updated
- doca_encryption_key
- IPSec encryption key
- doca_event
- Activity completion event
- doca_flow_action_desc
- Action description
- doca_flow_action_descs
- Action descriptions
- doca_flow_action_descs_meta
- Metadata action description per field
- doca_flow_action_field
- Extended modification action
- doca_flow_actions
- Doca flow actions information
- doca_flow_aged_query
- Aged flow query callback context
- doca_flow_cfg
- Doca flow global configuration
- doca_flow_encap_action
- Doca flow encap data information
- doca_flow_fwd
- Forwarding configuration
- doca_flow_grpc_bindable_obj
- Bindable object configuration
- doca_flow_grpc_fwd
- Forwarding configuration wrapper
- doca_flow_grpc_pipe_cfg
- Pipeline configuration wrapper
- doca_flow_header_eth
- Doca flow eth header
- doca_flow_header_eth_vlan
- Doca flow vlan header
- doca_flow_header_format
- Doca flow packet format
- doca_flow_header_geneve
- Doca flow GENEVE header
- doca_flow_header_icmp
- Doca flow icmp header in match data
- doca_flow_header_ip4
- Doca flow ipv4 header in match data
- doca_flow_header_ip6
- Doca flow ipv6 header in match data
- doca_flow_header_l4_port
- Doca flow tcp or udp port header in match data
- doca_flow_header_mpls
- Doca flow MPLS header
- doca_flow_header_tcp
- Doca flow tcp header in match data
- doca_flow_header_udp
- Doca flow udp header in match data
- doca_flow_ip_addr
- Doca flow ip address
- doca_flow_match
- Doca flow matcher information
- doca_flow_meta
- Doca flow meta data
- doca_flow_mirror_target
- Doca flow mirror target
- doca_flow_monitor
- Doca monitor action configuration
- doca_flow_ordered_list
- doca_flow_pipe_attr
- Pipe attributes
- doca_flow_pipe_cfg
- Pipeline configuration
- doca_flow_port_cfg
- Doca flow port configuration
- doca_flow_push_action
- Doca flow push data information
- doca_flow_query
- Flow query result
- doca_flow_resource_crypto_cfg
- Doca flow crypto resource configuration
- doca_flow_resource_meter_cfg
- Doca flow meter resource configuration
- doca_flow_resource_mirror_cfg
- Doca flow mirror resource configuration
- doca_flow_resource_rss_cfg
- Doca flow rss resource configuration
- doca_flow_resources
- Doca flow resource quota
- doca_flow_shared_resource_cfg
- Doca flow shared resource configuration
- doca_flow_shared_resource_result
- Flow shared resources query result
- doca_flow_tun
- Doca flow tunnel information
- doca_ipsec_sa_attr_egress
- IPSec sa egress attributes - attributes for outgoing data
- doca_ipsec_sa_attr_ingress
- IPSec sa egress attributes - attributes for incoming data
- doca_ipsec_sa_attr_sn
- IPSec sa sn attributes - attributes for sequence number - only if SN or AR enabled
- doca_ipsec_sa_attrs
- IPSec attributes for create jobs
- doca_ipsec_sa_create_job
- DOCA IPSec SA creation job
- doca_ipsec_sa_destroy_job
- DOCA IPSec SA destroy job
- doca_ipsec_sa_event_attrs
- IPSec sa events attributes - when turned on will trigger an event
- doca_job
- Job structure describes request arguments for service provided by context
- doca_log_registrator
- Registers log source on program start
- doca_pci_bdf
- The PCI address of a device - same as the address in lspci
- doca_rdma_gid
- doca_rdma_job_atomic
- doca_rdma_job_read_write
- doca_rdma_job_recv
- doca_rdma_job_send
- doca_rdma_result
- doca_regex_job_search
- doca_regex_match
- doca_regex_search_result
- doca_rmax_cpu_affinity_mask
- Data structure to describe CPU mask for doca_rmax internal thread
- doca_rmax_in_stream_completion
- Completion returned by input stream describing the incoming packets
- doca_rmax_job_rx_data
- Receive data job
- doca_rmax_stream_error
- Detailed completion error information
- doca_sha_job
- doca_sha_partial_job
- doca_sync_event_job_get
- doca_sync_event_job_update_add
- doca_sync_event_job_update_set
- doca_sync_event_job_wait
- doca_sync_event_result
[ DOCA COMPRESS engine ]
DOCA COMPRESS Deflate job to be dispatched via COMPRESS library.
Public Variables
- struct doca_job base
- doca_buf * dst_buff
- uint64_t * output_chksum
- const doca_buf * src_buff
Variables
- struct doca_jobdoca_compress_deflate_job::base [inherited]
Common job data.
- doca_buf * doca_compress_deflate_job::dst_buff [inherited]
Destination data buffer.
- uint64_t * doca_compress_deflate_job::output_chksum [inherited]
Output checksum. If it is a compress job the checksum calculated is of the src_buf. If it is a decompress job the checksum result calculated is of the dst_buf. When the job processing will end, the output_chksum will contain the CRC checksum result in the lower 32bit and the Adler checksum result in the upper 32bit.
- const doca_buf * doca_compress_deflate_job::src_buff [inherited]
Source data buffer.
[ DOCA COMPRESS engine ]
DOCA COMPRESS LZ4 job to be dispatched via COMPRESS library.
Public Variables
- struct doca_job base
- doca_buf * dst_buff
- uint64_t * output_chksum
- const doca_buf * src_buff
Variables
- struct doca_jobdoca_compress_lz4_job::base [inherited]
Common job data.
- doca_buf * doca_compress_lz4_job::dst_buff [inherited]
Destination data buffer.
- uint64_t * doca_compress_lz4_job::output_chksum [inherited]
Output checksum. If it is a compress job the checksum calculated is of the src_buf. If it is a decompress job the checksum result calculated is of the dst_buf. When the job processing will end, the output_chksum will contain the CRC checksum result in the lower 32bit and the Adler checksum result in the upper 32bit.
- const doca_buf * doca_compress_lz4_job::src_buff [inherited]
Source data buffer. The source buffer must be from local memory. Note: when using doca_buf linked list, the length of the first data element in the source buffer must be at least 4B.
[ ct ]
Public Variables
- uint16_t aging_core
- uint32_t flags
- void * ib_dev
- void * ib_pd
- uint32_t nb_arm_queues
- uint32_t nb_arm_sessions[DOCA_CT_SESSION_MAX]
- uint16_t tcp_session_del_s
- uint16_t tcp_timeout_s
- uint16_t udp_timeout_s
Variables
- uint16_t doca_ct_cfg::aging_core [inherited]
CT aging thread bind to CPU core.
- uint32_t doca_ct_cfg::flags [inherited]
CT behavior flags
- void * doca_ct_cfg::ib_dev [inherited]
IB verbs device context
- void * doca_ct_cfg::ib_pd [inherited]
device protection domain
- uint32_t doca_ct_cfg::nb_arm_queues [inherited]
number of ARM CT queues(thread).
- uint32_t doca_ct_cfg::nb_arm_sessions[DOCA_CT_SESSION_MAX] [inherited]
number of ARM CT sessions.
- uint16_t doca_ct_cfg::tcp_session_del_s [inherited]
time to kill TCP session after RST/FIN.
- uint16_t doca_ct_cfg::tcp_timeout_s [inherited]
TCP timeout in second.
- uint16_t doca_ct_cfg::udp_timeout_s [inherited]
UDP timeout in second.
[ DOCA DMA engine ]
A job to be dispatched via the DMA library.
Public Variables
Variables
- struct doca_jobdoca_dma_job_memcpy::base [inherited]
Common job data
- doca_buf * doca_dma_job_memcpy::dst_buff [inherited]
Destination data buffer
- 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
Variables
- doca_error_tdoca_dma_memcpy_result::result [inherited]
Operation result
[ DPA Host DPA Device ]
DPA remote event handle type definition
Public Variables
- uint64_t data[2]
Variables
- uint64_t doca_dpa_dev_event_remote_t::data[2] [inherited]
Remote DPA event opaque
[ Deep packet inspection ]
Public Variables
- struct doca_job base
- doca_dpi_flow_ctx * flow_ctx
- bool initiator
- uint32_t payload_offset
- doca_buf * pkt
- doca_dpi_result * result
Variables
- struct doca_jobdoca_dpi_job::base [inherited]
Opaque struct.
- doca_dpi_flow_ctx * doca_dpi_job::flow_ctx [inherited]
The flow context handler, created by calling doca_dpi_flow_create().
- bool doca_dpi_job::initiator [inherited]
Indicates to which direction the packet belongs. 1 - if the packet arrives from client to server. 0 - if the packet arrives from server to client. Typically, the first packet will arrive from the initiator (client).
- uint32_t doca_dpi_job::payload_offset [inherited]
Indicates where the packet's payload begins.
- doca_buf * doca_dpi_job::pkt [inherited]
The packet to be inspected.
- doca_dpi_result * doca_dpi_job::result [inherited]
The inspection result buffer, caller must pre-allocate it and ensure it is not freed until result is returned.
[ Deep packet inspection ]
Public Variables
- doca_dpi_parsing_info::@0 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::@1 src_ip
Variables
- doca_dpi_parsing_info::@0 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
- 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
- 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
- doca_dpi_parsing_info::@1 doca_dpi_parsing_info::src_ip [inherited]
IP source address
[ Deep packet inspection ]
Public Variables
- struct doca_dpi_sig_info info
- bool matched
- doca_buf * pkt
- int status_flags
Variables
- struct doca_dpi_sig_infodoca_dpi_result::info [inherited]
Signature information
- bool doca_dpi_result::matched [inherited]
Indicates flow was matched
- doca_buf * doca_dpi_result::pkt [inherited]
The packet inspected for this result.
- int doca_dpi_result::status_flags [inherited]
doca_dpi_flow_status flags
[ Deep packet inspection ]
Public Variables
Variables
- 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 inspection ]
Public Variables
Variables
- 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 inspection ]
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
Variables
- 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 Erasure Coding engine ]
-
recommended to work with other jobs for EC workflow
-
src_buff and dst_buff should be in multiplication of block size. for example create job:
coding matrix is 10x4 - 10 original blocks, 4 redundancy blocks src_buff size : 10x64KB = 640KB rdnc_buff size : 4x64KB = 256KB
buff size should be at 64B padd. For example: 500B size should be padd to be 512B. minimum 64B.
Public Variables
- struct doca_job base
- doca_matrix * coding_matrix
- doca_buf * dst_buff
- const doca_buf * src_buff
Variables
- struct doca_jobdoca_ec_job::base [inherited]
Common job data.
- doca_matrix * doca_ec_job::coding_matrix [inherited]
coding matrix (see below doca_ec_matrix_from_raw)
- doca_buf * doca_ec_job::dst_buff [inherited]
Destination data buffer.
- const doca_buf * doca_ec_job::src_buff [inherited]
Source data buffer.
[ DOCA Erasure Coding engine ]
src_buff and dst_buff should be in multiplication of block size. for example create job:
coding matrix is 10x4 - 10 original blocks, 4 redundancy blocks src_buff size : 10x64KB = 640KB rdnc_buff size : 4x64KB = 256KB
buff size should be at 64B padd. For example: 500B size should be padd to be 512B. minimum 64B.
create job: create redundancy blocks (backup blocks):
Public Variables
- struct doca_job base
- doca_matrix * create_matrix
- doca_buf * dst_rdnc_buff
- const doca_buf * src_original_data_buff
Variables
- struct doca_jobdoca_ec_job_create::base [inherited]
Common job data.
- doca_matrix * doca_ec_job_create::create_matrix [inherited]
create matrix (see below doca_ec_matrix_gen)
- doca_buf * doca_ec_job_create::dst_rdnc_buff [inherited]
Destination redundancy data buffer.
- const doca_buf * doca_ec_job_create::src_original_data_buff [inherited]
Source original data buffer.
[ DOCA Erasure Coding engine ]
src_buff and dst_buff should be in multiplication of block size. for example create job:
coding matrix is 10x4 - 10 original blocks, 4 redundancy blocks src_buff size : 10x64KB = 640KB rdnc_buff size : 4x64KB = 256KB
buff size should be at 64B padd. For example: 500B size should be padd to be 512B. minimum 64B.
Public Variables
- struct doca_job base
- doca_buf * dst_recovered_data_buff
- doca_matrix * recover_matrix
- const doca_buf * src_remaining_data_buff
Variables
- struct doca_jobdoca_ec_job_recover::base [inherited]
Common job data.
- doca_buf * doca_ec_job_recover::dst_recovered_data_buff [inherited]
Destination data buffer.
- doca_matrix * doca_ec_job_recover::recover_matrix [inherited]
recover matrix (see below doca_ec_recover_matrix_create)
- const doca_buf * doca_ec_job_recover::src_remaining_data_buff [inherited]
Source remaining blocks buffer.
[ DOCA Erasure Coding engine ]
src_buff and dst_buff should be in multiplication of block size. for example create job:
coding matrix is 10x4 - 10 original blocks, 4 redundancy blocks src_buff size : 10x64KB = 640KB rdnc_buff size : 4x64KB = 256KB
buff size should be at 64B padd. For example: 500B size should be padd to be 512B. minimum 64B.
Public Variables
- struct doca_job base
- doca_buf * dst_updated_rdnc_buff
- const doca_buf * src_data_rdnc_buff
- doca_matrix * update_matrix
Variables
- struct doca_jobdoca_ec_job_update::base [inherited]
Common job data.
- doca_buf * doca_ec_job_update::dst_updated_rdnc_buff [inherited]
Destination updated redundancy blocks.
- const doca_buf * doca_ec_job_update::src_data_rdnc_buff [inherited]
Source old & new data with rdnc blocks.
- doca_matrix * doca_ec_job_update::update_matrix [inherited]
update matrix (see below doca_ec_update_matrix_gen)
[ IPsec ]
Public Variables
- uint64_t implicit_iv
- void * raw_key
- uint32_t salt
- enumdoca_encryption_key_type type
Variables
- uint64_t doca_encryption_key::implicit_iv [inherited]
The IV is inserted into the GCM engine is calculated by
- void * doca_encryption_key::raw_key [inherited]
Raw key buffer. Actual size of this buffer defined by type.
- uint32_t doca_encryption_key::salt [inherited]
The salt is inserted into the GCM engine is calculated by
- enumdoca_encryption_key_typedoca_encryption_key::type [inherited]
size of enc key
[ 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
Variables
- 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.
[ ct ]
Public Variables
Variables
- enumdoca_flow_action_typedoca_flow_action_desc::type [inherited]
type
[ ct ]
Public Variables
- struct doca_flow_action_desc dscp_ecn
- 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
Variables
- struct doca_flow_action_descdoca_flow_action_descs::dscp_ecn [inherited]
action description of DSCP/ECN.
- 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.
[ ct ]
Public Variables
- struct doca_flow_action_desc hash
- struct doca_flow_action_desc pkt_meta
- struct doca_flow_action_desc u32[DOCA_FLOW_META_MAX/4-1]
Variables
- struct doca_flow_action_descdoca_flow_action_descs_meta::hash [inherited]
action description of hash. This field is read only, used by copy only as src.
- 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.
[ ct ]
Public Variables
Variables
- 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.
[ ct ]
Public Variables
- uint8_t action_idx
- uint32_t crypto_id
- bool decap
- struct doca_flow_encap_action encap
- uint32_t flags
- bool has_encap
- bool has_push
- struct doca_flow_meta meta
- struct doca_flow_header_format outer
- bool pop
- enumdoca_flow_crypto_protocol_type proto_type
- struct doca_flow_push_action push
- doca_flow_actions::@12 security
- struct doca_flow_tun tun
Variables
- uint8_t doca_flow_actions::action_idx [inherited]
index according to place provided on creation
- uint32_t doca_flow_actions::crypto_id [inherited]
Crypto shared action id
- 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
- 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_header_formatdoca_flow_actions::outer [inherited]
modify outer headers
- bool doca_flow_actions::pop [inherited]
when true, pop header
- enumdoca_flow_crypto_protocol_typedoca_flow_actions::proto_type [inherited]
Crypto shared action type
- struct doca_flow_push_actiondoca_flow_actions::push [inherited]
push header data information
- doca_flow_actions::@12 doca_flow_actions::security [inherited]
security shared action
- struct doca_flow_tundoca_flow_actions::tun [inherited]
modify tunnel headers
[ ct ]
Public Variables
- uint64_t user_data
Variables
- uint64_t doca_flow_aged_query::user_data [inherited]
The user input context, otherwise the doca_flow_pipe_entry pointer
[ ct ]
Public Variables
- doca_flow_entry_process_cb cb
- uint64_t flags
- const char * mode_args
- uint8_t nr_acl_collisions
- uint32_t nr_shared_resources[DOCA_FLOW_SHARED_RESOURCE_MAX]
- uint32_t queue_depth
- uint16_t queues
- struct doca_flow_resources resource
- doca_flow_shared_resource_unbind_cb unbind_cb
Variables
- doca_flow_entry_process_cbdoca_flow_cfg::cb [inherited]
callback for entry create/destroy
- uint64_t doca_flow_cfg::flags [inherited]
configuraton flags
- const char * doca_flow_cfg::mode_args [inherited]
set doca flow architecture mode switch, vnf
- uint8_t doca_flow_cfg::nr_acl_collisions [inherited]
number of collisions for the acl module
- 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
- doca_flow_shared_resource_unbind_cbdoca_flow_cfg::unbind_cb [inherited]
callback for unbinding of a shared resource
[ ct ]
Public Variables
- struct doca_flow_header_format outer
- struct doca_flow_tun tun
Variables
- struct doca_flow_header_formatdoca_flow_encap_action::outer [inherited]
outer header format
- struct doca_flow_tundoca_flow_encap_action::tun [inherited]
tunnel info
[ ct ]
Public Variables
- uint32_t idx
- doca_flow_pipe * next_pipe
- int num_of_queues
- doca_flow_fwd::@13::@21 ordered_list_pipe
- doca_flow_pipe * pipe
- uint16_t port_id
- 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
Variables
- 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::@13::@21 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
- uint32_t doca_flow_fwd::rss_inner_flags [inherited]
rss offload outer 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
[ Flow ]
Public Variables
- uint64_t pipe_id
- uint32_t port_id
- enumdoca_flow_grpc_bindable_obj_type type
Variables
- 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
[ Flow ]
Public Variables
- doca_flow_fwd * fwd
- uint64_t next_pipe_id
Variables
- 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
[ Flow ]
Public Variables
- doca_flow_pipe_cfg * cfg
- uint16_t port_id
Variables
- doca_flow_pipe_cfg * doca_flow_grpc_pipe_cfg::cfg [inherited]
doca_flow_pipe_cfg struct
- uint16_t doca_flow_grpc_pipe_cfg::port_id [inherited]
port id
[ flow net define ]
Public Variables
- uint8_t dst_mac[DOCA_ETHER_ADDR_LEN]
- uint8_t src_mac[DOCA_ETHER_ADDR_LEN]
- doca_be16_t type
Variables
- uint8_t doca_flow_header_eth::dst_mac[DOCA_ETHER_ADDR_LEN] [inherited]
destination mac address
- uint8_t doca_flow_header_eth::src_mac[DOCA_ETHER_ADDR_LEN] [inherited]
source mac address
- doca_be16_tdoca_flow_header_eth::type [inherited]
eth type
[ flow net define ]
Public Variables
Variables
- doca_be16_tdoca_flow_header_eth_vlan::tci [inherited]
vlan tci
[ ct ]
Public Variables
- struct doca_flow_header_eth eth
- struct doca_flow_header_eth_vlan eth_vlan[DOCA_FLOW_VLAN_MAX]
- struct doca_flow_header_icmp icmp
- struct doca_flow_header_ip4 ip4
- struct doca_flow_header_ip6 ip6
- uint16_t l2_valid_headers
- enumdoca_flow_l3_type l3_type
- enumdoca_flow_l4_type_ext l4_type_ext
- struct doca_flow_header_tcp tcp
- struct doca_flow_header_udp udp
Variables
- struct doca_flow_header_ethdoca_flow_header_format::eth [inherited]
ether head
- struct doca_flow_header_eth_vlandoca_flow_header_format::eth_vlan[DOCA_FLOW_VLAN_MAX] [inherited]
vlan header array
- struct doca_flow_header_icmpdoca_flow_header_format::icmp [inherited]
icmp header
- struct doca_flow_header_ip4doca_flow_header_format::ip4 [inherited]
ipv4 head
- struct doca_flow_header_ip6doca_flow_header_format::ip6 [inherited]
ipv6 head
- uint16_t doca_flow_header_format::l2_valid_headers [inherited]
indicate which headers are valid
- enumdoca_flow_l3_typedoca_flow_header_format::l3_type [inherited]
layer 3 protocol type
- enumdoca_flow_l4_type_extdoca_flow_header_format::l4_type_ext [inherited]
l4 layer extend type
- struct doca_flow_header_tcpdoca_flow_header_format::tcp [inherited]
tcp header
- struct doca_flow_header_udpdoca_flow_header_format::udp [inherited]
udp header
[ flow net define ]
Public Variables
- doca_be16_t next_proto
- uint8_t o_c
- uint8_t ver_opt_len
- doca_be32_t vni
Variables
- 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_t doca_flow_header_geneve::vni [inherited]
geneve vni (24) + reserved (8).
[ flow net define ]
Public Variables
- uint8_t code
- doca_be16_t ident
- uint8_t type
Variables
- 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
[ flow net define ]
Public Variables
- uint8_t dscp_ecn
- doca_be32_t dst_ip
- uint8_t next_proto
- doca_be32_t src_ip
- uint8_t ttl
- uint8_t version_ihl
Variables
- uint8_t doca_flow_header_ip4::dscp_ecn [inherited]
dscp and ecn
- doca_be32_t doca_flow_header_ip4::dst_ip [inherited]
ip dst address
- uint8_t doca_flow_header_ip4::next_proto [inherited]
ip next protocol
- doca_be32_t doca_flow_header_ip4::src_ip [inherited]
ip src address
- 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
[ flow net define ]
Public Variables
- uint8_t dscp_ecn
- doca_be32_t dst_ip[4]
- uint8_t hop_limit
- uint8_t next_proto
- doca_be32_t src_ip[4]
Variables
- uint8_t doca_flow_header_ip6::dscp_ecn [inherited]
dscp and ecn
- doca_be32_t doca_flow_header_ip6::dst_ip[4] [inherited]
ip dst address
- uint8_t doca_flow_header_ip6::hop_limit [inherited]
hop limit
- uint8_t doca_flow_header_ip6::next_proto [inherited]
ip next protocol
- doca_be32_t doca_flow_header_ip6::src_ip[4] [inherited]
ip src address
[ flow net define ]
Public Variables
Variables
- doca_be16_tdoca_flow_header_l4_port::dst_port [inherited]
destination port
- doca_be16_tdoca_flow_header_l4_port::src_port [inherited]
source port
[ flow net define ]
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
Variables
- doca_be32_t doca_flow_header_mpls::label [inherited]
MPLS label.
[ flow net define ]
Public Variables
- uint8_t flags
- struct doca_flow_header_l4_port l4_port
Variables
- 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
[ flow net define ]
Public Variables
- struct doca_flow_header_l4_port l4_port
Variables
- struct doca_flow_header_l4_portdoca_flow_header_udp::l4_port [inherited]
udp source and destination port
[ flow net define ]
Public Variables
- doca_be32_t ipv4_addr
- doca_be32_t ipv6_addr[4]
- enumdoca_flow_l3_type type
Variables
- doca_be32_t doca_flow_ip_addr::ipv4_addr [inherited]
ipv4 address if type is ipv4
- doca_be32_t doca_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
[ ct ]
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_tun tun
Variables
- 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_tundoca_flow_match::tun [inherited]
tunnel info
[ ct ]
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
- uint8_t align[2]
- uint32_t hairpin
- uint32_t hash
- uint8_t ipsec_syndrome
- uint32_t mark
- uint8_t nisp_syndrome
- uint32_t pkt_meta
- uint32_t port_meta
- uint32_t src
- uint32_t type
- uint32_t u32[DOCA_FLOW_META_MAX/4-1]
- uint32_t zone
Variables
- uint8_t doca_flow_meta::align[2] [inherited]
Structure alignment.
- uint32_t doca_flow_meta::hairpin [inherited]
Subject to forward using hairpin.
- uint32_t doca_flow_meta::hash [inherited]
Hash calculation to copy. Only used by modify field action, not matchable.
- uint8_t doca_flow_meta::ipsec_syndrome [inherited]
IPsec decrypt/authentication syndrome.
- uint32_t doca_flow_meta::mark [inherited]
Mark id.
- uint8_t doca_flow_meta::nisp_syndrome [inherited]
NISP decrypt/authentication syndrome.
- uint32_t doca_flow_meta::pkt_meta [inherited]
Shared with application via packet.
- uint32_t doca_flow_meta::port_meta [inherited]
Programmable source vport.
- uint32_t doca_flow_meta::src [inherited]
Source port in multi-port E-Switch mode
- uint32_t doca_flow_meta::type [inherited]
0: traffic 1: SYN 2: RST 3: FIN.
- uint32_t doca_flow_meta::u32[DOCA_FLOW_META_MAX/4-1] [inherited]
Programmable user data.
- uint32_t doca_flow_meta::zone [inherited]
Zone ID for CT processing.
[ ct ]
Public Variables
- struct doca_flow_encap_action encap
- struct doca_flow_fwd fwd
- bool has_encap
Variables
- 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.
[ ct ]
Public Variables
- uint32_t aging
- uint64_t cbs
- uint64_t cir
- uint8_t flags
- uint32_t shared_counter_id
- uint32_t shared_meter_id
- uint32_t shared_mirror_id
- void * user_data
Variables
- 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
- uint32_t doca_flow_monitor::shared_mirror_id [inherited]
shared mirror id.
- void * doca_flow_monitor::user_data [inherited]
aging user data input.
[ ct ]
Ordered list configuration.
Public Variables
Variables
- 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.
[ ct ]
Public Variables
- enumdoca_flow_pipe_domain domain
- bool is_root
- const char * name
- uint8_t nb_actions
- uint32_t nb_flows
- uint8_t nb_ordered_lists
- enumdoca_flow_pipe_type type
Variables
- enumdoca_flow_pipe_domaindoca_flow_pipe_attr::domain [inherited]
pipe steering domain.
- 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
- uint8_t doca_flow_pipe_attr::nb_ordered_lists [inherited]
number of ordered lists in the array, default 0, mutually exclusive with nb_actions
- enumdoca_flow_pipe_typedoca_flow_pipe_attr::type [inherited]
type of pipe. enum doca_flow_pipe_type
[ ct ]
Public Variables
- * action_descs
- * actions
- struct doca_flow_pipe_attr attr
- doca_flow_match * match
- doca_flow_match * match_mask
- doca_flow_monitor * monitor
- * ordered_lists
- doca_flow_port * port
Variables
- * 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_pipe_cfg::ordered_lists [inherited]
array of ordered list types
- doca_flow_port * doca_flow_pipe_cfg::port [inherited]
port for the pipeline
[ ct ]
Public Variables
- const char * devargs
- uint16_t port_id
- uint16_t priv_data_size
- enumdoca_flow_port_type type
Variables
- 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
[ ct ]
Public Variables
Variables
- enumdoca_flow_push_action_typedoca_flow_push_action::type [inherited]
header type to push
[ ct ]
Public Variables
- uint64_t total_bytes
- uint64_t total_pkts
Variables
- 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
[ ct ]
Public Variables
- enumdoca_flow_crypto_action_type action_type
- struct doca_flow_fwd fwd
- enumdoca_flow_crypto_header_type header_type
- uint8_t key[DOCA_FLOW_CRYPTO_KEY_LEN_MAX]
- uint16_t key_sz
- enumdoca_flow_crypto_net_type net_type
- enumdoca_flow_crypto_protocol_type proto_type
- uint8_t reformat_data[DOCA_FLOW_CRYPTO_REFORMAT_LEN_MAX]
- uint16_t reformat_data_sz
- enumdoca_flow_crypto_icv_size reformat_icv_sz
- enumdoca_flow_crypto_reformat_type reformat_type
- void * security_ctx
Variables
- enumdoca_flow_crypto_action_typedoca_flow_resource_crypto_cfg::action_type [inherited]
crypto action
- struct doca_flow_fwddoca_flow_resource_crypto_cfg::fwd [inherited]
Crypto action continuation
- enumdoca_flow_crypto_header_typedoca_flow_resource_crypto_cfg::header_type [inherited]
packet header type
- uint8_t doca_flow_resource_crypto_cfg::key[DOCA_FLOW_CRYPTO_KEY_LEN_MAX] [inherited]
Crypto key buffer
- uint16_t doca_flow_resource_crypto_cfg::key_sz [inherited]
key size in bytes
- enumdoca_flow_crypto_net_typedoca_flow_resource_crypto_cfg::net_type [inherited]
packet network mode type
- enumdoca_flow_crypto_protocol_typedoca_flow_resource_crypto_cfg::proto_type [inherited]
packet reformat action
- uint8_t doca_flow_resource_crypto_cfg::reformat_data[DOCA_FLOW_CRYPTO_REFORMAT_LEN_MAX] [inherited]
reformat header buffer
- uint16_t doca_flow_resource_crypto_cfg::reformat_data_sz [inherited]
reformat header length in bytes
- enumdoca_flow_crypto_icv_sizedoca_flow_resource_crypto_cfg::reformat_icv_sz [inherited]
Intergtity Check Value in reformat action
- enumdoca_flow_crypto_reformat_typedoca_flow_resource_crypto_cfg::reformat_type [inherited]
packet reformat action
- void * doca_flow_resource_crypto_cfg::security_ctx [inherited]
crypto object handle
[ ct ]
Public Variables
Variables
- 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).
[ ct ]
Public Variables
- struct doca_flow_fwd fwd
- int nr_targets
- doca_flow_mirror_target * target
Variables
- 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.
[ ct ]
Public Variables
- uint32_t inner_flags
- int nr_queues
- uint32_t outer_flags
- uint16_t * queues_array
Variables
- 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
[ ct ]
Public Variables
- uint32_t nb_counters
- uint32_t nb_meters
Variables
- 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
[ ct ]
Public Variables
Variables
- enumdoca_flow_pipe_domaindoca_flow_shared_resource_cfg::domain [inherited]
Shared resource steering domain
[ flow net define ]
Public Variables
- doca_be32_t audp_hdr[DOCA_FLOW_AUDP_DWORD]
- doca_be32_t esp_sn
- doca_be32_t esp_spi
- struct doca_flow_header_geneve geneve
- doca_be32_t gre_key
- doca_be32_t gtp_teid
- bool key_present
- struct doca_flow_header_mpls mpls[DOCA_FLOW_MPLS_LABELS_MAX]
- doca_be32_t nisp_hdr[DOCA_FLOW_NISP_DWORD]
- doca_be16_t protocol
- enumdoca_flow_tun_type type
- doca_be32_t vxlan_tun_id
Variables
- doca_be32_t doca_flow_tun::audp_hdr[DOCA_FLOW_AUDP_DWORD] [inherited]
Opaque audp tunnel header
- doca_be32_t doca_flow_tun::esp_sn [inherited]
ipsec sequence number
- doca_be32_t doca_flow_tun::esp_spi [inherited]
ipsec session parameter index
- struct doca_flow_header_genevedoca_flow_tun::geneve [inherited]
geneve header
- doca_be32_t doca_flow_tun::gre_key [inherited]
gre key
- doca_be32_t doca_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
- doca_be32_t doca_flow_tun::nisp_hdr[DOCA_FLOW_NISP_DWORD] [inherited]
Opaque nisp tunnel header
- doca_be16_tdoca_flow_tun::protocol [inherited]
next protocol
- enumdoca_flow_tun_typedoca_flow_tun::type [inherited]
tunnel type
- doca_be32_t doca_flow_tun::vxlan_tun_id [inherited]
vxlan vni(24) + reserved (8).
[ IPsec ]
Public Variables
- uint32_t sn_inc_enable
Variables
- uint32_t doca_ipsec_sa_attr_egress::sn_inc_enable [inherited]
when set sn increment offloaded
[ IPsec ]
Public Variables
Variables
- uint32_t doca_ipsec_sa_attr_ingress::antireplay_enable [inherited]
when enabled activates anti-replay protection window.
- enumdoca_ipsec_replay_win_sizedoca_ipsec_sa_attr_ingress::replay_win_sz [inherited]
Anti replay window size to enable sequence replay attack handling.
[ IPsec ]
Public Variables
- uint32_t esn_enable
- uint32_t esn_overlap
- uint64_t sn_initial
Variables
- uint32_t doca_ipsec_sa_attr_sn::esn_enable [inherited]
when set esn is enabled
- uint32_t doca_ipsec_sa_attr_sn::esn_overlap [inherited]
new/old indication of the High sequence number MSB - when set is old
- uint64_t doca_ipsec_sa_attr_sn::sn_initial [inherited]
set the initial sequence number
[ IPsec ]
Public Variables
- enumdoca_ipsec_direction direction
- struct doca_ipsec_sa_attr_egress egress
- struct doca_ipsec_sa_event_attrs event
- enumdoca_ipsec_icv_length icv_length
- struct doca_ipsec_sa_attr_ingress ingress
- struct doca_encryption_key key
- struct doca_ipsec_sa_attr_sn sn_attr
Variables
- enumdoca_ipsec_directiondoca_ipsec_sa_attrs::direction [inherited]
egress/ingress
- struct doca_ipsec_sa_attr_egressdoca_ipsec_sa_attrs::egress [inherited]
< egress/ingress attr egress attr
- struct doca_ipsec_sa_event_attrsdoca_ipsec_sa_attrs::event [inherited]
Reserve future use - ipsec events flags
- enumdoca_ipsec_icv_lengthdoca_ipsec_sa_attrs::icv_length [inherited]
Authentication Tag length
- struct doca_ipsec_sa_attr_ingressdoca_ipsec_sa_attrs::ingress [inherited]
ingress attr
- struct doca_encryption_keydoca_ipsec_sa_attrs::key [inherited]
IPSec encryption key
- struct doca_ipsec_sa_attr_sndoca_ipsec_sa_attrs::sn_attr [inherited]
sn attributes
[ IPsec ]
The result of this job if doca_workq_progress_retrieve returns:
-
DOCA_SUCCESS - struct doca_event { .result.ptr } should point to new created `struct doca_ipsec_sa` object.
-
DOCA_ERROR_IO_FAILED - struct doca_event { .result.u64 } should contain IPSec CTX specific error status code.
Public Variables
- struct doca_job base
- struct doca_ipsec_sa_attrs sa_attrs
Variables
- struct doca_jobdoca_ipsec_sa_create_job::base [inherited]
doca job object
- struct doca_ipsec_sa_attrsdoca_ipsec_sa_create_job::sa_attrs [inherited]
ipsec sa attr
[ IPsec ]
The result of this job as struct doca_event { .result.u64 } should contain SA destroy completion status code.
Public Variables
Variables
- struct doca_jobdoca_ipsec_sa_destroy_job::base [inherited]
doca job object
- doca_ipsec_sa * doca_ipsec_sa_destroy_job::sa [inherited]
ipsec sa object (from create)
[ IPsec ]
Public Variables
- uint32_t esn_overlap_event_arm
- uint32_t hard_lifetime_arm
- uint32_t remove_flow_enable
- uint32_t remove_flow_packet_count
- uint32_t remove_flow_soft_lifetime
- uint32_t soft_lifetime_arm
Variables
- uint32_t doca_ipsec_sa_event_attrs::esn_overlap_event_arm [inherited]
1 when armed/to arm 0 otherwise.
- uint32_t doca_ipsec_sa_event_attrs::hard_lifetime_arm [inherited]
1 when armed/to arm 0 otherwise.
- uint32_t doca_ipsec_sa_event_attrs::remove_flow_enable [inherited]
1 when remove flow enabled/to enable; 0 otherwise.
- uint32_t doca_ipsec_sa_event_attrs::remove_flow_packet_count [inherited]
Packet counter, Decrements for every packet passing through the SA. Event are triggered occurs when the counter reaches soft- lifetime and hard-lifetime (0). When counter reaches hard-lifetime, all passing packets will return a relevant Syndrome.
- uint32_t doca_ipsec_sa_event_attrs::remove_flow_soft_lifetime [inherited]
Soft Lifetime threshold value. When remove_flow_packet_count reaches this value a soft lifetime event is triggered (if armed). See remove_flow_packet_count field in this struct fro more details.
- uint32_t doca_ipsec_sa_event_attrs::soft_lifetime_arm [inherited]
1 when armed/to arm 0 otherwise.
[ 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
Variables
- 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:
DOCA_LOG_REGISTER(dpi)
void foo { DOCA_LOG_INFO("Message"); }
The macro also takes care of the dtor() logic on teardown.
[ DOCA RDMA ]
gid struct
Public Variables
- uint8_t raw[DOCA_RDMA_GID_BYTE_LEN]
Variables
- uint8_t doca_rdma_gid::raw[DOCA_RDMA_GID_BYTE_LEN] [inherited]
The raw value of the GID
[ DOCA RDMA ]
RDMA atomic job.
Public Variables
- struct doca_job base
- uint64_t cmp_data
- doca_buf * cmp_or_add_dest_buff
- const doca_rdma_addr * rdma_peer_addr
- doca_buf * result_buff
- uint64_t swap_or_add_data
Variables
- struct doca_jobdoca_rdma_job_atomic::base [inherited]
Common job data
- uint64_t doca_rdma_job_atomic::cmp_data [inherited]
Value to compare for compare and swap.
- doca_buf * doca_rdma_job_atomic::cmp_or_add_dest_buff [inherited]
Destination data buffer
- const doca_rdma_addr * doca_rdma_job_atomic::rdma_peer_addr [inherited]
Optional: For RDMA context of type DC
- doca_buf * doca_rdma_job_atomic::result_buff [inherited]
Result of the atomic operation: remote original data before add, or remote original data before compare
- uint64_t doca_rdma_job_atomic::swap_or_add_data [inherited]
For add, the increment value for cmp, the new value to swap
[ DOCA RDMA ]
RDMA read/write job.
Public Variables
- struct doca_job base
- doca_buf * dst_buff
- doca_be32_t immediate_data
- const doca_rdma_addr * rdma_peer_addr
- const doca_buf * src_buff
Variables
- struct doca_jobdoca_rdma_job_read_write::base [inherited]
Common job data
- doca_buf * doca_rdma_job_read_write::dst_buff [inherited]
Destination data buffer
- doca_be32_t doca_rdma_job_read_write::immediate_data [inherited]
Immediate data for write with imm
- const doca_rdma_addr * doca_rdma_job_read_write::rdma_peer_addr [inherited]
Optional: For RDMA context of type DC
- const doca_buf * doca_rdma_job_read_write::src_buff [inherited]
Source data buffer
[ DOCA RDMA ]
The jobs to be dispatched via the RDMA library RDMA receive job.
Public Variables
Variables
- struct doca_jobdoca_rdma_job_recv::base [inherited]
Common job data
- doca_buf * doca_rdma_job_recv::dst_buff [inherited]
Destination data buffer, chain len must not exceed recv_buf_chain_len property
[ DOCA RDMA ]
RDMA send job.
Public Variables
- struct doca_job base
- doca_be32_t immediate_data
- const doca_rdma_addr * rdma_peer_addr
- const doca_buf * src_buff
Variables
- struct doca_jobdoca_rdma_job_send::base [inherited]
Common job data
- doca_be32_t doca_rdma_job_send::immediate_data [inherited]
Immediate data
- const doca_rdma_addr * doca_rdma_job_send::rdma_peer_addr [inherited]
Optional: For RDMA context of type UD or DC
- const doca_buf * doca_rdma_job_send::src_buff [inherited]
Source data buffer
[ DOCA RDMA ]
Result of a RDMA jobs. Will be held inside the doca_event::result field. RDMA Context results_fields_set() should be used to define which ones are required
Public Variables
- doca_be32_t immediate_data
- uint32_t length
- enumdoca_rdma_opcode_t opcode
- doca_rdma_addr * rdma_peer_addr
- doca_error_t result
Variables
- doca_be32_t doca_rdma_result::immediate_data [inherited]
Immediate data, valid only if opcode indicates
- uint32_t doca_rdma_result::length [inherited]
Length of transferred data in case of doca_rdma_job_recv or doca_rdma_job_read completion
- enumdoca_rdma_opcode_tdoca_rdma_result::opcode [inherited]
Opcode in case of doca_rdma_job_recv completion
- doca_rdma_addr * doca_rdma_result::rdma_peer_addr [inherited]
Peer Address for UD and DC
- doca_error_tdoca_rdma_result::result [inherited]
Operation result
[ RegEx engine ]
Data required to dispatch a job to a RegEx engine.
Public Variables
- uint8_t allow_batching
- struct doca_job base
- const doca_buf * buffer
- doca_regex_search_result * result
- uint16_t rule_group_ids[4]
Variables
- uint8_t doca_regex_job_search::allow_batching [inherited]
Set this to 1 to allow a RegEx device to choose to aggregate jobs into batches. Batching can improve throughput at the cost of latency. Set this to 0 to force this job to begin executing immediately, this will also force any previously enqueued jobs that have been batched and not yet dispatched to begin processing. Not all devices will support batching. If a device does not have batching support this flag is ignored.
- struct doca_jobdoca_regex_job_search::base [inherited]
Common job data.
- const doca_buf * doca_regex_job_search::buffer [inherited]
Data for the job.
- doca_regex_search_result * doca_regex_job_search::result [inherited]
Pointer to where the job response is stored. The caller must ensure this pointer is valid when submitting a job and it must remain valid until a response for the job has been retrieved from the RegEx engine. This object will be the returned via the event.result.ptr field.
- uint16_t doca_regex_job_search::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 ]
Description of a RegEx match
Public Variables
- uint32_t length
- uint32_t match_start
- doca_regex_match * next
- uint32_t rule_id
Variables
- 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.
[ RegEx engine ]
Result of a RegEx search
Public Variables
- uint32_t detected_matches
- doca_regex_match * matches
- doca_regex_mempool * matches_mempool
- uint32_t num_matches
- uint64_t status_flags
Variables
- uint32_t doca_regex_search_result::detected_matches [inherited]
Total number of detected matches.
- doca_regex_match * doca_regex_search_result::matches [inherited]
Returned matches. Contains num_matches elements as a linked list.
- doca_regex_mempool * doca_regex_search_result::matches_mempool [inherited]
Memory pool owning the matches.
- uint32_t doca_regex_search_result::num_matches [inherited]
Total number of returned matches.
- uint64_t doca_regex_search_result::status_flags [inherited]
Response flags. A bit masked field for zero or more status flags. See doca_regex_status_flag.
[ DOCA RMAX engine ]
Public Variables
- doca_rmax_cpu_mask_t cpu_bits[DOCA_RMAX_CPU_SETSIZE/DOCA_RMAX_NCPUBITS]
Variables
- 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
- * memblk_ptr_arr
- uint32_t memblk_ptr_arr_len
- uint32_t seqn_first
- uint64_t ts_first
- uint64_t ts_last
Variables
- 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
Variables
- struct doca_jobdoca_rmax_job_rx_data::base [inherited]
Common job data
[ DOCA RMAX engine ]
Public Variables
Variables
- int doca_rmax_stream_error::code [inherited]
Raw Rivermax error code
- const char * doca_rmax_stream_error::message [inherited]
Human-readable error
[ engine ]
DOCA SHA job definition. -- "struct doca_sha_job" is used for one-shot SHA calculation. -- Its typical usage is: -- construct a job: struct doca_sha_job job = { .base.type = DOCA_SHA_JOB_SHA1, .req_buf = user_req_buf, .resp_buf = user_resp_buf, .flags = DOCA_SHA_JOB_FLAGS_NONE }; -- submit job: doca_workq_submit(workq, &job.base); -- retrieve event: doca_workq_progress_retrieve(workq, &event, DOCA_WORKQ_RETRIEVE_FLAGS_NONE);
-- For doca_workq_submit() return code: -- DOCA_SUCCESS: -- The job is submitted successfully. It also means: this submitted source data cannot be freely manipulated until its response is received. -- DOCA_ERROR_INVALID_VALUE: -- Some of the job attribute members use illegal value. for example, response buffer length is < 20bytes for SHA1; request buffer length == 0, and the job type attribute is not supported. -- DOCA_ERROR_NO_MEMORY: -- The job resouce is exhausted for now, we need to call progress_retrieve() first to receive response and free job resource, then call job_submit() to try again to submit the same job. -- DOCA_ERROR_BAD_STATE: -- sha_ctx is corrupted now, need reset.
-- For doca_workq_progress_retrieve() return code: -- DOCA_SUCCESS: -- we get a response from SHA engine. user can utilise doca_job's user_data field to setup special data to correlate the returned event and the corresponding job. -- DOCA_ERROR_AGAIN: -- In order to get a response, we need to call progress_retrieve() again. -- DOCA_ERROR_IO_FAILED: -- abnormal occurs in the SHA engine hardware queue, sha_ctx and workq need to be re-initialized. -- DOCA_ERROR_INVALID_VALUE: -- received invalid input.
Public Variables
Variables
- struct doca_jobdoca_sha_job::base [inherited]
Opaque structure.
- uint64_t doca_sha_job::flags [inherited]
SHA job flags. For the last segment of a doca_sha_partial_job, use DOCA_SHA_JOB_FLAGS_SHA_PARTIAL_FINAL. Otherwise, use DOCA_SHA_JOB_FLAGS_NONE.
- doca_buf * doca_sha_job::req_buf [inherited]
User request. SHA engine accessible buffer pointed to the user input data. The req_buf can be a linked_list doca_buf, so that a chained multiple bufs can be used as valid request.
- doca_buf * doca_sha_job::resp_buf [inherited]
User response. The response byte count can be decided by DOCA_SHAXXX_BYTE_COUNT macro. The chained doca_buf is descouraged to be used as a response. Although resp_buf can be a linked_list doca_buf, no submission failure, but only the head element of the chained buf is used for now, because the SHA output is no more than 64bytes.
[ engine ]
DOCA SHA_PARTIAL job definition. -- "struct doca_sha_partial_job" is used for stateful SHA calculation. -- Its typical usage for a job composed of 3 segments is: -- get a session handle: doca_sha_partial_session *session; doca_sha_partial_session_create(ctx, workq, &session); -- construct the 1st job: struct doca_sha_partial_job job = { .sha_job.base.type = DOCA_SHA_JOB_SHA1_PARTIAL, .sha_job.req_buf = user_req_buf_of_1st_segment, .sha_job.resp_buf = user_resp_buf, .sha_job.flags = DOCA_SHA_JOB_FLAGS_NONE, .session = session, }; -- submit 1st segment: doca_workq_submit(workq, &job.sha_job.base); -- retrieve 1st event: doca_workq_progress_retrieve(workq, &event, DOCA_WORKQ_RETRIEVE_FLAGS_NONE); The purpose of this call is to make sure the 1st_segment processing is finished before we can continue to send the next segment, because it is necessary to sequentially process all segment for generating correct SHA result. And the "user_resp_buf" at this moment contains garbage values. -- after the DOCA_SUCCESS event of the 1st segment is received, we can continue to submit 2nd segment: -- construct the 2nd job: struct doca_sha_partial_job job = { .sha_job.base.type = DOCA_SHA_JOB_SHA1_PARTIAL, .sha_job.req_buf = user_req_buf_of_2nd_segment, .sha_job.resp_buf = user_resp_buf, .sha_job.flags = DOCA_SHA_JOB_FLAGS_NONE, .session = session, }; -- submit 2nd segment: doca_workq_submit(workq, &job.sha_job.base); -- retrieve 2nd event: doca_workq_progress_retrieve(workq, &event, DOCA_WORKQ_RETRIEVE_FLAGS_NONE); The purpose of this call is also to make sure the 2nd_segment processing is finished. And the "user_resp_buf" at this moment still contains garbage values. -- after the DOCA_SUCCESS event of the 2nd segment is received, we can continue to submit 3rd/final segment: -- construct the 3rd job: struct doca_sha_partial_job job = { .sha_job.base.type = DOCA_SHA_JOB_SHA1_PARTIAL, .sha_job.req_buf = user_req_buf_of_3rd_segment, .sha_job.resp_buf = user_resp_buf, .sha_job.flags = DOCA_SHA_JOB_FLAGS_SHA_PARTIAL_FINAL, .session = session, }; -- submit 3rd segment: doca_workq_submit(workq, &job.sha_job.base); -- retrieve 3rd event: doca_workq_progress_retrieve(workq, &event, DOCA_WORKQ_RETRIEVE_FLAGS_NONE); -- After the DOCA_SUCCESS event of the 3rd segment is received, the whole job processing is done. We can get the expected SHA result from "user_resp_buf". -- release session: doca_sha_partial_session_destroy(ctx, workq, session); -- During the whole process, please make sure to use the same "session" handle. -- And for the last segment, the "DOCA_SHA_JOB_FLAGS_SHA_PARTIAL_FINAL" flag must be set.
-- For doca_workq_submit() return code: -- DOCA_SUCCESS: -- The job is submitted successfully. It also means: this submitted source data cannot be freely manipulated until its response is received. -- DOCA_ERROR_INVALID_VALUE: -- Some of the job attribute members use illegal value. for example, response buffer length is < 20bytes for SHA1; request buffer length == 0, and the job type attribute is not supported. -- DOCA_ERROR_NO_MEMORY: -- The job resouce is exhausted for now, we need to call progress_retrieve() first to receive response and free job resource, then call job_submit() to try again to submit the same job. -- DOCA_ERROR_BAD_STATE: -- sha_ctx is corrupted now, need reset.
-- For doca_workq_progress_retrieve() return code: -- DOCA_SUCCESS: -- we get a response from SHA engine. user can utilise doca_job's user_data field to setup special data to correlate the returned event and the corresponding job. -- DOCA_ERROR_AGAIN: -- In order to get a response, we need to call progress_retrieve() again. -- DOCA_ERROR_IO_FAILED: -- abnormal occurs in the SHA engine hardware queue, sha_ctx and workq need to be re-initialized. -- DOCA_ERROR_INVALID_VALUE: -- received invalid input.
Note: -- sha_partial_job session requirement: -- make sure the same doca_sha_partial_session used for all segments of a whole job. -- before 1st segment submission, call doca_sha_partial_session_create() to grab a session handle. -- from the 1st to the last segment submission, always reuse the same session handle. -- after the last segment processing, to prevent a session resource leak, the user must explicitly call doca_sha_partial_session_destroy() to release this session handle. -- The doca_sha_partial_session_destroy() is provided to let user to free session handle at his will. -- If a session handle is released before the whole stateful SHA is finished, or if different handles are used for a stateful SHA, the job submission may fail due to job validity check failure; even the job submission successes, and the engine is not stalled, a wrong SHA result is expected. -- The "session" resource is limited, it is user's responsibility to make sure all allocated "session" handles are released. -- If "DOCA_SHA_JOB_FLAGS_SHA_PARTIAL_FINAL" is not properly set, the engine will not be stalled, but a wrong SHA result is expected.
-- sha_partial_job segment length requirement: -- only the last segment allows seg-byte-count != multiple-of-64 for sha1 and sha256. For example, for the above example code, the 1st and 2nd segment byte length must be multiple of 64. -- only the last segment allows seg-byte-count != multiple-of-128 for sha512. -- If the above requirement is not met, job_submission will fail.
Public Variables
- doca_sha_partial_session * session
- struct doca_sha_job sha_job
Variables
- doca_sha_partial_session * doca_sha_partial_job::session [inherited]
An opaque structure for user. Used to maintain state for stateful SHA calculation.
- struct doca_sha_jobdoca_sha_partial_job::sha_job [inherited]
A basic sha_job.
[ DOCA Sync Event ]
Get job to be dispatched on a DOCA WorkQ which attached to the Sync Event. Get the value of the Sync Event.
Public Variables
Variables
- struct doca_jobdoca_sync_event_job_get::base [inherited]
Inherits from DOCA Job
- uint64_t * doca_sync_event_job_get::value [inherited]
The Sync Event value
[ DOCA Sync Event ]
Add job to be dispatched on a DOCA WorkQ which attached to some Sync Event. Atomically increment the value of the Sync Event by the given value.
Public Variables
Variables
- struct doca_jobdoca_sync_event_job_update_add::base [inherited]
Inherits from DOCA Job
- uint64_t * doca_sync_event_job_update_add::fetched [inherited]
Fetched Sync Event value
- uint64_t doca_sync_event_job_update_add::value [inherited]
Value to set the Sync Event to
[ DOCA Sync Event ]
Set job to be dispatched on a DOCA WorkQ which attached to some Sync Event. Set the value of the Sync Event to the given value.
Public Variables
Variables
- struct doca_jobdoca_sync_event_job_update_set::base [inherited]
Inherits from DOCA Job
- uint64_t doca_sync_event_job_update_set::value [inherited]
Value to set the Sync Event to
[ DOCA Sync Event ]
Wait job to be dispatched on a DOCA WorkQ which attached to some Sync Event. Wait for the Sync Event to be grater than the given value.
Public Variables
Variables
- struct doca_jobdoca_sync_event_job_wait::base [inherited]
Inherits from DOCA Job
- uint64_t doca_sync_event_job_wait::mask [inherited]
Mask for comparing the Sync Event value
- uint64_t doca_sync_event_job_wait::value [inherited]
Threshold to wait for the Sync Event to be grater than
[ DOCA Sync Event ]
Result of a Sync Event job. Held inside the doca_event::result.u64 field.
Public Variables
Variables
- doca_error_tdoca_sync_event_result::result [inherited]
Operation status