3. Data Structures
Here are the data structures with brief descriptions:
- doca_comm_channel_init_attr
- Configuration attributes for endpoint initialization
- doca_dma_job_memcpy
- doca_dma_memcpy_result
- doca_dpi_config_t
- DPI init configuration
- doca_dpi_grpc_generic_packet
- Generic packet that holds payload or a whole packet as segment
- doca_dpi_grpc_result
- Dequeue result
- doca_dpi_parsing_info
- L2-L4 flow information
- doca_dpi_result
- Dequeue result
- doca_dpi_sig_data
- Extra signature data
- doca_dpi_sig_info
- Signature info
- doca_dpi_stat_info
- DPI statistics
- 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_error
- Doca flow error message struct
- doca_flow_fwd
- Forwarding configuration
- doca_flow_grpc_bindable_obj
- Bindable object configuration
- doca_flow_grpc_env_cfg
- Environment configuration
- doca_flow_grpc_fwd
- Forwarding configuration wrapper
- doca_flow_grpc_pipe_cfg
- Pipeline configuration wrapper
- doca_flow_grpc_response
- General DOCA Flow response struct
- doca_flow_ip_addr
- Doca flow ip address
- doca_flow_match
- Doca flow matcher information
- doca_flow_meta
- Doca flow meta data
- doca_flow_monitor
- Doca monitor action configuration
- doca_flow_pipe_attr
- Pipe attributes
- doca_flow_pipe_cfg
- Pipeline configuration
- doca_flow_port_cfg
- Doca flow port configuration
- doca_flow_query
- Flow query result
- doca_flow_resource_meter_cfg
- Doca flow meter 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_job
- Job structure describes request arguments for service provided by context
- doca_log_registrator
- Registers log source on program start
- doca_regex_job_request
- doca_regex_job_response
- doca_regex_match
[ Comm Channel ]
Public Variables
Variables
- uint32_t doca_comm_channel_init_attr::cookie [inherited]
Cookie returned when polling the event_channel.
- uint32_t doca_comm_channel_init_attr::flags [inherited]
Flags: 0 or DOCA_CC_INIT_FLAG_NONBLOCK.
- uint32_t doca_comm_channel_init_attr::maxmsgs [inherited]
Max. # of messages on queue.
- uint32_t doca_comm_channel_init_attr::msgsize [inherited]
Max. message size (bytes).
[ DOCA DMA engine ]
A job to be dispatched via the DMA library.
Public Variables
- struct doca_job base
- doca_buf * dst_buff
- uint64_t num_bytes_to_copy
- const doca_buf * src_buff
Variables
- struct doca_jobdoca_dma_job_memcpy::base [inherited]
Common job data
- doca_buf * doca_dma_job_memcpy::dst_buff [inherited]
Destination data buffer
- uint64_t doca_dma_job_memcpy::num_bytes_to_copy [inherited]
Number of bytes to copy
- const doca_buf * doca_dma_job_memcpy::src_buff [inherited]
Source data buffer
[ DOCA DMA engine ]
Result of a DMA Memcpy job. Will be held inside the doca_event::result field.
Public Variables
Variables
- doca_error_tdoca_dma_memcpy_result::result [inherited]
Operation result
[ Deep packet inspection Remote deep packet inspection (grpc) ]
Public Variables
- uint32_t max_packets_per_queue
- uint32_t max_sig_match_len
- uint16_t nb_queues
- const char * server_address
Variables
- uint32_t doca_dpi_config_t::max_packets_per_queue [inherited]
Number of packets concurrently processed by the DPI engine.
- uint32_t doca_dpi_config_t::max_sig_match_len [inherited]
The maximum length that DPI guarantee to provide a match on, including across consecutive packets. Must be <= 5000 For example: Signature = A.*B max_sig_match_len = 5 DPI guarantee that AAAAB will be found (len <= 5) DPI does not guarantee that AAAAAAAAAAAAB will be found (len > 5)
The minimum required overlap between two packets for regex match
- uint16_t doca_dpi_config_t::nb_queues [inherited]
Number of DPI queues
- const char * doca_dpi_config_t::server_address [inherited]
String representing the service ip, i.e. "127.0.0.1" or "192.168.100.3:5050". If no port is provided, it will use the service default port.
[ Remote deep packet inspection (grpc) ]
Public Variables
Variables
- uint16_t doca_dpi_grpc_generic_packet::seg_len [inherited]
The length of the data inside segment buffer
- uint8_t * doca_dpi_grpc_generic_packet::segment [inherited]
The buffer with data to be scanned by the DPI
[ Remote deep packet inspection (grpc) ]
Public Variables
- struct doca_dpi_sig_info info
- bool matched
- doca_dpi_grpc_generic_packet * pkt
- int status_flags
- void * user_data
Variables
- struct doca_dpi_sig_infodoca_dpi_grpc_result::info [inherited]
Signature information
- bool doca_dpi_grpc_result::matched [inherited]
Indicates flow was matched
- doca_dpi_grpc_generic_packet * doca_dpi_grpc_result::pkt [inherited]
Pkt provided on enqueue
- int doca_dpi_grpc_result::status_flags [inherited]
doca_dpi_flow_status flags
- void * doca_dpi_grpc_result::user_data [inherited]
User data provided on enqueue
[ Deep packet inspection Remote deep packet inspection (grpc) ]
Public Variables
- doca_dpi_parsing_info::@6 dst_ip
- doca_dpi_parsing_info::@4 dst_ip
- __be16 ethertype
- in_addr ipv4
- in6_addr ipv6
- in_port_t l4_dport
- uint8_t l4_protocol
- in_port_t l4_sport
- doca_dpi_parsing_info::@7 src_ip
- doca_dpi_parsing_info::@5 src_ip
Variables
- doca_dpi_parsing_info::@6 doca_dpi_parsing_info::dst_ip [inherited]
IP destination address
- doca_dpi_parsing_info::@4 doca_dpi_parsing_info::dst_ip [inherited]
IP destination address
- __be16 doca_dpi_parsing_info::ethertype [inherited]
Ethertype of the packet in network byte order
Ethertype of the packet in network byte order
- in_addr doca_dpi_parsing_info::ipv4 [inherited]
Ipv4 destination address in network byte order
Ipv4 source address in network byte order
- in6_addr doca_dpi_parsing_info::ipv6 [inherited]
Ipv6 destination address in network byte order
Ipv6 source address in network byte order
- in_port_t doca_dpi_parsing_info::l4_dport [inherited]
Layer 4 destination port in network byte order
Layer 4 destination port in network byte order
- uint8_t doca_dpi_parsing_info::l4_protocol [inherited]
Layer 4 protocol
- in_port_t doca_dpi_parsing_info::l4_sport [inherited]
Layer 4 source port in network byte order
Layer 4 source port in network byte order
- doca_dpi_parsing_info::@7 doca_dpi_parsing_info::src_ip [inherited]
IP source address
- doca_dpi_parsing_info::@5 doca_dpi_parsing_info::src_ip [inherited]
IP source address
[ Deep packet inspection ]
Public Variables
- struct doca_dpi_sig_info info
- bool matched
- rte_mbuf * pkt
- int status_flags
- void * user_data
Variables
- struct doca_dpi_sig_infodoca_dpi_result::info [inherited]
Signature information
- bool doca_dpi_result::matched [inherited]
Indicates flow was matched
- rte_mbuf * doca_dpi_result::pkt [inherited]
Pkt provided on enqueue
- int doca_dpi_result::status_flags [inherited]
doca_dpi_flow_status flags
- void * doca_dpi_result::user_data [inherited]
User data provided on enqueue
[ Deep packet inspection Remote deep packet inspection (grpc) ]
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 Remote deep packet inspection (grpc) ]
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 Remote deep packet inspection (grpc) ]
Public Variables
- uint32_t nb_http_parser_based
- uint32_t nb_matches
- uint32_t nb_other_l4
- uint32_t nb_other_l7
- uint32_t nb_scanned_pkts
- uint32_t nb_ssl_parser_based
- uint32_t nb_tcp_based
- uint32_t nb_udp_based
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 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.
[ flow ]
Public Variables
Variables
- enumdoca_flow_action_typedoca_flow_action_desc::type [inherited]
type
[ flow ]
Public Variables
- struct doca_flow_action_desc dst_ip
- struct doca_flow_action_desc dst_mac
- struct doca_flow_action_desc dst_port
- struct doca_flow_action_desc eth_type
- struct doca_flow_action_descs_meta meta
- struct doca_flow_action_desc src_ip
- struct doca_flow_action_desc src_mac
- struct doca_flow_action_desc src_port
- struct doca_flow_action_desc ttl
- struct doca_flow_action_desc tunnel
- struct doca_flow_action_desc vlan_id
Variables
- 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.
[ flow ]
Public Variables
- 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::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.
[ flow ]
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.
[ flow ]
Public Variables
- uint8_t action_idx
- bool decap
- struct doca_flow_encap_action encap
- uint32_t flags
- bool has_encap
- struct doca_flow_meta meta
- struct doca_flow_ip_addr mod_dst_ip
- uint8_t mod_dst_mac[DOCA_ETHER_ADDR_LEN]
- doca_be16_t mod_dst_port
- struct doca_flow_ip_addr mod_src_ip
- uint8_t mod_src_mac[DOCA_ETHER_ADDR_LEN]
- doca_be16_t mod_src_port
- doca_be16_t mod_vlan_id
- uint8_t ttl
Variables
- uint8_t doca_flow_actions::action_idx [inherited]
index according to place provided on creation
- bool doca_flow_actions::decap [inherited]
when true, will do decap
- struct doca_flow_encap_actiondoca_flow_actions::encap [inherited]
encap data information
- uint32_t doca_flow_actions::flags [inherited]
action flags
- bool doca_flow_actions::has_encap [inherited]
when true, will do encap
- struct doca_flow_metadoca_flow_actions::meta [inherited]
modify meta data, pipe action as mask
- struct doca_flow_ip_addrdoca_flow_actions::mod_dst_ip [inherited]
modify destination ip address
- uint8_t doca_flow_actions::mod_dst_mac[DOCA_ETHER_ADDR_LEN] [inherited]
modify VLAN ID
- doca_be16_tdoca_flow_actions::mod_dst_port [inherited]
modify layer 4 destination port
- struct doca_flow_ip_addrdoca_flow_actions::mod_src_ip [inherited]
modify source ip address
- uint8_t doca_flow_actions::mod_src_mac[DOCA_ETHER_ADDR_LEN] [inherited]
modify source mac address
- doca_be16_tdoca_flow_actions::mod_src_port [inherited]
modify layer 4 source port
- doca_be16_tdoca_flow_actions::mod_vlan_id [inherited]
modify destination mac address
- uint8_t doca_flow_actions::ttl [inherited]
modify(ADD) TTL value
[ flow ]
Public Variables
- uint64_t user_data
Variables
- uint64_t doca_flow_aged_query::user_data [inherited]
The user input context, otherwish the doca_flow_pipe_entry pointer
[ flow ]
Public Variables
- doca_flow_entry_process_cb cb
- const char * mode_args
- uint32_t nr_shared_resources[DOCA_FLOW_SHARED_RESOURCE_MAX]
- uint32_t queue_depth
- uint16_t queues
- struct doca_flow_resources resource
Variables
- doca_flow_entry_process_cbdoca_flow_cfg::cb [inherited]
callback for entry create/destroy
- const char * doca_flow_cfg::mode_args [inherited]
set doca flow architecture mode switch, vnf
- uint32_t doca_flow_cfg::nr_shared_resources[DOCA_FLOW_SHARED_RESOURCE_MAX] [inherited]
total shared resource per type
- uint32_t doca_flow_cfg::queue_depth [inherited]
Number of pre-configured queue_size, default to 128
- uint16_t doca_flow_cfg::queues [inherited]
queue id for each offload thread
- struct doca_flow_resourcesdoca_flow_cfg::resource [inherited]
resource quota
[ flow ]
Public Variables
- struct doca_flow_ip_addr dst_ip
- uint8_t dst_mac[DOCA_ETHER_ADDR_LEN]
- struct doca_flow_ip_addr src_ip
- uint8_t src_mac[DOCA_ETHER_ADDR_LEN]
- struct doca_flow_tun tun
- doca_be16_t vlan_tci
Variables
- struct doca_flow_ip_addrdoca_flow_encap_action::dst_ip [inherited]
destination ip address
- uint8_t doca_flow_encap_action::dst_mac[DOCA_ETHER_ADDR_LEN] [inherited]
destination mac address
- struct doca_flow_ip_addrdoca_flow_encap_action::src_ip [inherited]
source ip address
- uint8_t doca_flow_encap_action::src_mac[DOCA_ETHER_ADDR_LEN] [inherited]
source mac address
- struct doca_flow_tundoca_flow_encap_action::tun [inherited]
tunnel info
- doca_be16_tdoca_flow_encap_action::vlan_tci [inherited]
vlan tci
[ flow ]
Public Variables
- const char * message
- enumdoca_flow_error_type type
Variables
- const char * doca_flow_error::message [inherited]
Human-readable error message
- enumdoca_flow_error_typedoca_flow_error::type [inherited]
Cause field and error types
[ flow ]
Public Variables
- doca_flow_pipe * next_pipe
- int num_of_queues
- uint16_t port_id
- uint32_t rss_flags
- uint32_t rss_mark
- uint16_t * rss_queues
- enumdoca_flow_fwd_type type
Variables
- doca_flow_pipe * doca_flow_fwd::next_pipe [inherited]
next pipe pointer
- int doca_flow_fwd::num_of_queues [inherited]
number of queues
- uint16_t doca_flow_fwd::port_id [inherited]
destination port id
- uint32_t doca_flow_fwd::rss_flags [inherited]
rss offload types
- uint32_t doca_flow_fwd::rss_mark [inherited]
markid of each queues
- uint16_t * doca_flow_fwd::rss_queues [inherited]
rss queues array
- enumdoca_flow_fwd_typedoca_flow_fwd::type [inherited]
indicate the forwarding type
[ 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
- int nb_hairpin_q
- int nb_ports
- int nb_queues
- bool reserve_main_thread
Variables
- int doca_flow_grpc_env_cfg::nb_hairpin_q [inherited]
required hairpin queues
- int doca_flow_grpc_env_cfg::nb_ports [inherited]
required ports
- int doca_flow_grpc_env_cfg::nb_queues [inherited]
required queues
- bool doca_flow_grpc_env_cfg::reserve_main_thread [inherited]
reserve main thread or not
[ 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 ]
Public Variables
- int aging_res
- uint64_t entry_id
- enumdoca_flow_entry_status entry_status
- struct doca_flow_error error
- uint64_t nb_entries_processed
- uint64_t pipe_id
- bool success
Variables
- int doca_flow_grpc_response::aging_res [inherited]
return value from handle aging
- uint64_t doca_flow_grpc_response::entry_id [inherited]
entry id
- enumdoca_flow_entry_statusdoca_flow_grpc_response::entry_status [inherited]
return value of entry get status
- struct doca_flow_errordoca_flow_grpc_response::error [inherited]
Otherwise, this field contains the error information
- uint64_t doca_flow_grpc_response::nb_entries_processed [inherited]
return value from entries process
- uint64_t doca_flow_grpc_response::pipe_id [inherited]
pipe id
- bool doca_flow_grpc_response::success [inherited]
in case of success should be true
[ flow net define ]
Public Variables
- doca_be32_t ipv4_addr
- doca_be32_t ipv6_addr[4]
- uint8_t type
Variables
- doca_be32_tdoca_flow_ip_addr::ipv4_addr [inherited]
ipv4 address if type is ipv4
- doca_be32_tdoca_flow_ip_addr::ipv6_addr[4] [inherited]
ipv6 address if type is ipv6
- uint8_t doca_flow_ip_addr::type [inherited]
ip address type
[ flow ]
Public Variables
- uint32_t flags
- struct doca_flow_ip_addr in_dst_ip
- uint8_t in_dst_mac[DOCA_ETHER_ADDR_LEN]
- doca_be16_t in_dst_port
- doca_be16_t in_eth_type
- uint8_t in_l4_type
- struct doca_flow_ip_addr in_src_ip
- uint8_t in_src_mac[DOCA_ETHER_ADDR_LEN]
- doca_be16_t in_src_port
- uint8_t in_tcp_flags
- doca_be16_t in_vlan_tci
- struct doca_flow_meta meta
- struct doca_flow_ip_addr out_dst_ip
- uint8_t out_dst_mac[DOCA_ETHER_ADDR_LEN]
- doca_be16_t out_dst_port
- doca_be16_t out_eth_type
- uint8_t out_l4_type
- struct doca_flow_ip_addr out_src_ip
- uint8_t out_src_mac[DOCA_ETHER_ADDR_LEN]
- doca_be16_t out_src_port
- uint8_t out_tcp_flags
- doca_be16_t out_vlan_tci
- struct doca_flow_tun tun
Variables
- uint32_t doca_flow_match::flags [inherited]
match items which are no value
- struct doca_flow_ip_addrdoca_flow_match::in_dst_ip [inherited]
inner destination ip address if tunnel is used
- uint8_t doca_flow_match::in_dst_mac[DOCA_ETHER_ADDR_LEN] [inherited]
inner destination mac address
- doca_be16_tdoca_flow_match::in_dst_port [inherited]
inner layer 4 destination port if tunnel is used
- doca_be16_tdoca_flow_match::in_eth_type [inherited]
inner Ethernet layer type
- uint8_t doca_flow_match::in_l4_type [inherited]
inner layer 4 protocol type if tunnel is used
- struct doca_flow_ip_addrdoca_flow_match::in_src_ip [inherited]
inner source ip address if tunnel is used
- uint8_t doca_flow_match::in_src_mac[DOCA_ETHER_ADDR_LEN] [inherited]
inner source mac address
- doca_be16_tdoca_flow_match::in_src_port [inherited]
inner layer 4 source port if tunnel is used
- uint8_t doca_flow_match::in_tcp_flags [inherited]
inner tcp flags
- doca_be16_tdoca_flow_match::in_vlan_tci [inherited]
inner vlan tci
- struct doca_flow_metadoca_flow_match::meta [inherited]
Programmable meta data.
- struct doca_flow_ip_addrdoca_flow_match::out_dst_ip [inherited]
outer destination ip address
- uint8_t doca_flow_match::out_dst_mac[DOCA_ETHER_ADDR_LEN] [inherited]
outer destination mac address
- doca_be16_tdoca_flow_match::out_dst_port [inherited]
outer layer 4 destination port
- doca_be16_tdoca_flow_match::out_eth_type [inherited]
outer Ethernet layer type
- uint8_t doca_flow_match::out_l4_type [inherited]
outer layer 4 protocol type
- struct doca_flow_ip_addrdoca_flow_match::out_src_ip [inherited]
outer source ip address
- uint8_t doca_flow_match::out_src_mac[DOCA_ETHER_ADDR_LEN] [inherited]
outer source mac address
- doca_be16_tdoca_flow_match::out_src_port [inherited]
outer layer 4 source port
- uint8_t doca_flow_match::out_tcp_flags [inherited]
outer tcp flags
- doca_be16_tdoca_flow_match::out_vlan_tci [inherited]
outer vlan tci
- struct doca_flow_tundoca_flow_match::tun [inherited]
tunnel info
[ 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 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
Variables
- uint32_t doca_flow_meta::pkt_meta [inherited]
Shared with applicaiton via packet.
- uint32_t doca_flow_meta::port_meta [inherited]
Programmable source vport.
- uint32_t doca_flow_meta::u32[DOCA_FLOW_META_MAX/4-1] [inherited]
Programmable user data.
[ flow ]
Public Variables
- uint32_t aging
- uint64_t cbs
- uint64_t cir
- uint8_t flags
- uint32_t shared_counter_id
- uint32_t shared_meter_id
- uint64_t user_data
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
- uint64_t doca_flow_monitor::user_data [inherited]
aging user data input.
[ flow ]
Public Variables
- bool is_root
- const char * name
- uint8_t nb_actions
- uint32_t nb_flows
- enumdoca_flow_pipe_type type
Variables
- bool doca_flow_pipe_attr::is_root [inherited]
pipeline is root or not. If true it means the pipe is a root pipe executed on packet arrival.
- const char * doca_flow_pipe_attr::name [inherited]
name for the pipeline
- uint8_t doca_flow_pipe_attr::nb_actions [inherited]
maximum number of doca flow action array, default is 1 if not set
- uint32_t doca_flow_pipe_attr::nb_flows [inherited]
maximum number of flow rules, default is 8k if not set
- enumdoca_flow_pipe_typedoca_flow_pipe_attr::type [inherited]
type of pipe. enum doca_flow_pipe_type
[ flow ]
Public Variables
- * action_descs
- * actions
- struct doca_flow_pipe_attr attr
- doca_flow_match * match
- doca_flow_match * match_mask
- doca_flow_monitor * monitor
- 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_port * doca_flow_pipe_cfg::port [inherited]
port for the pipeline
[ flow ]
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
[ flow ]
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
[ flow ]
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).
[ flow ]
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
[ flow net define ]
Public Variables
- doca_be32_t gre_key
- doca_be32_t gtp_teid
- doca_be16_t protocol
- enumdoca_flow_tun_type type
- doca_be32_t vxlan_tun_id
Variables
- doca_be32_tdoca_flow_tun::gre_key [inherited]
gre key
- doca_be32_tdoca_flow_tun::gtp_teid [inherited]
gtp teid
- doca_be16_tdoca_flow_tun::protocol [inherited]
next protocol
- enumdoca_flow_tun_typedoca_flow_tun::type [inherited]
tunnel type
- doca_be32_tdoca_flow_tun::vxlan_tun_id [inherited]
vxlan vni(24) + reserved (8).
[ 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.
[ RegEx engine ]
Data required to dispatch a job to a RegEx engine.
Public Variables
- const doca_buf * buffer
- uint64_t id
- uint16_t rule_group_ids[4]
Variables
- const doca_buf * doca_regex_job_request::buffer [inherited]
Data for the job
- uint64_t doca_regex_job_request::id [inherited]
ID of the job, useful to correlate the response.
- uint16_t doca_regex_job_request::rule_group_ids[4] [inherited]
IDs which can be used to select which group of rules are used to process this job. Set each value to a non zero value to enable this feature or 0 to ignore it.
[ RegEx engine ]
Result of a RegEx search
Public Variables
- uint32_t detected_matches
- uint64_t id
- doca_regex_match * matches
- doca_regex_mempool * matches_mempool
- uint32_t num_matches
- uint64_t status_flags
Variables
- uint32_t doca_regex_job_response::detected_matches [inherited]
Total number of detected matches.
- uint64_t doca_regex_job_response::id [inherited]
ID of the enqueued job.
- doca_regex_match * doca_regex_job_response::matches [inherited]
Returned matches. Contains num_matches elements as a linked list
- doca_regex_mempool * doca_regex_job_response::matches_mempool [inherited]
Memory pool owning the matches
- uint32_t doca_regex_job_response::num_matches [inherited]
Total number of returned matches.
- uint64_t doca_regex_job_response::status_flags [inherited]
Response flags. A bit masked field for zero or more status flags. See doca_regex_status_flag
[ RegEx engine ]
Description of a RegEx match
Public Variables
- uint32_t length
- uint32_t match_start
- 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.