3. Data Structures
Here are the data structures with brief descriptions:
- direction_cfg
- doca_data
- Convenience type for representing opaque data
- doca_encryption_key
- IPSec encryption key
- doca_flow_action_desc
- Action description
- doca_flow_action_desc_field
- Action descriptor field
- doca_flow_action_descs
- Action descriptor array
- doca_flow_actions
- Doca flow actions information
- doca_flow_cfg
- Doca flow global configuration
- doca_flow_crypto_action
- Doca flow crypto action information
- doca_flow_crypto_encap_action
- Doca flow crypto encap action information
- doca_flow_ct_cfg
- Doca flow ct global configuration
- doca_flow_ct_match
- Doca flow CT match pattern
- doca_flow_ct_match4
- Doca flow CT IPv4 match pattern
- doca_flow_ct_match6
- Doca flow CT IPv6 match pattern
- doca_flow_ct_meta
- CT packet meta data
- doca_flow_encap_action
- Doca flow encap data information
- doca_flow_fwd
- Forwarding configuration
- doca_flow_geneve_option
- Doca flow GENEVE option single DW
- 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_parser_geneve_opt_cfg
- User configuration structure using to create parser for single GENEVE TLV option
- doca_flow_parser_meta
- Doca flow parser meta data
- 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_gather_list
- Struct to represent a gather list
- 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
- doca_ipsec_sa_event_attrs
- IPSec sa events attributes - when turned on will trigger an event
- doca_log_registrator
- Registers log source on program start
- doca_pcc_dev_algo_meta_data
- This struct provides meta data for a pcc user algo
- doca_rdma_gid
- 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_stream_error
- Detailed completion error information
[ flow ]
Direction config
Public Variables
Variables
- bool direction_cfg::match_inner [inherited]
match packet inner layer
- doca_flow_meta * direction_cfg::meta_modify_mask [inherited]
meta mask to modify
- doca_flow_meta * direction_cfg::zone_match_mask [inherited]
Zone mask to match
[ 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
[ flow ]
Public Variables
Variables
- enumdoca_flow_action_typedoca_flow_action_desc::type [inherited]
type
[ flow ]
Field based on a string that is composed out of struct members separated by a dot.
The 1st segment determines the field location in packet "outer", "inner", "tunnel". The 2nd segment determines the protocol. The 3rd segment determines the field.
E.g. "outer.eth.src_mac" "tunnel.gre.protocol" "inner.ipv4.next_proto"
Public Variables
- uint32_t bit_offset
- const char * field_string
Variables
- uint32_t doca_flow_action_desc_field::bit_offset [inherited]
Field bit offset.
- const char * doca_flow_action_desc_field::field_string [inherited]
Field selection by string.
[ flow ]
Public Variables
- doca_flow_action_desc * desc_array
- uint8_t nb_action_desc
Variables
- doca_flow_action_desc * doca_flow_action_descs::desc_array [inherited]
action descriptor array pointer.
- uint8_t doca_flow_action_descs::nb_action_desc [inherited]
maximum number of action descriptor array.
[ flow ]
Public Variables
- uint8_t action_idx
- struct doca_flow_crypto_action crypto
- struct doca_flow_crypto_encap_action crypto_encap
- bool decap
- struct doca_flow_encap_action encap
- uint32_t flags
- bool has_crypto_encap
- bool has_encap
- bool has_push
- struct doca_flow_meta meta
- struct doca_flow_header_format outer
- struct doca_flow_parser_meta parser_meta
- bool pop
- struct doca_flow_push_action push
- struct doca_flow_tun tun
Variables
- uint8_t doca_flow_actions::action_idx [inherited]
index according to place provided on creation
- struct doca_flow_crypto_actiondoca_flow_actions::crypto [inherited]
crypto action information
- struct doca_flow_crypto_encap_actiondoca_flow_actions::crypto_encap [inherited]
header/trailer reformat data information
- 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_crypto_encap [inherited]
when true, do crypto reformat header/trailer
- 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
- struct doca_flow_parser_metadoca_flow_actions::parser_meta [inherited]
copy from read-only meta data, pipe action as mask
- bool doca_flow_actions::pop [inherited]
when true, pop header
- struct doca_flow_push_actiondoca_flow_actions::push [inherited]
push header data information nat64 action
- struct doca_flow_tundoca_flow_actions::tun [inherited]
modify tunnel headers
[ flow ]
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]
- doca_flow_pipe_process_cb pipe_process_cb
- uint32_t queue_depth
- uint16_t queues
- struct doca_flow_resources resource
- const uint8_t * rss_key
- uint32_t rss_key_len
- 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 pre-configured collisions for the acl module, default to 3, max to 8
- uint32_t doca_flow_cfg::nr_shared_resources[DOCA_FLOW_SHARED_RESOURCE_MAX] [inherited]
total shared resource per type
- doca_flow_pipe_process_cbdoca_flow_cfg::pipe_process_cb [inherited]
callback for pipe process completions
- 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
- const uint8_t * doca_flow_cfg::rss_key [inherited]
RSS optional hash key.
- uint32_t doca_flow_cfg::rss_key_len [inherited]
RSS hash key length in bytes.
- doca_flow_shared_resource_unbind_cbdoca_flow_cfg::unbind_cb [inherited]
callback for unbinding of a shared resource
[ flow ]
Public Variables
- enumdoca_flow_crypto_action_type action_type
- uint32_t crypto_id
- enumdoca_flow_crypto_protocol_type proto_type
- bool sn_en
Variables
- enumdoca_flow_crypto_action_typedoca_flow_crypto_action::action_type [inherited]
crypto action type - none/encrypt/decrypt
- uint32_t doca_flow_crypto_action::crypto_id [inherited]
shared resource id represents session
- enumdoca_flow_crypto_protocol_typedoca_flow_crypto_action::proto_type [inherited]
crypto action protocol - none/esp/psp
- bool doca_flow_crypto_action::sn_en [inherited]
Enable SN/ESN generation on egress and antireplay on ingress
[ flow ]
Public Variables
- enumdoca_flow_crypto_encap_action_type action_type
- uint16_t data_size
- uint8_t encap_data[DOCA_FLOW_CRYPTO_HEADER_LEN_MAX]
- uint16_t icv_size
- enumdoca_flow_crypto_encap_net_type net_type
Variables
- enumdoca_flow_crypto_encap_action_typedoca_flow_crypto_encap_action::action_type [inherited]
action type - encap or decap
- uint16_t doca_flow_crypto_encap_action::data_size [inherited]
reformat header length in bytes
- uint8_t doca_flow_crypto_encap_action::encap_data[DOCA_FLOW_CRYPTO_HEADER_LEN_MAX] [inherited]
reformat header data to insert
- uint16_t doca_flow_crypto_encap_action::icv_size [inherited]
trailer size in bytes
- enumdoca_flow_crypto_encap_net_typedoca_flow_crypto_encap_action::net_type [inherited]
network type - mode, protocol, header
[ flow ]
Public Variables
- doca_be32_t dst_ip
- struct doca_flow_header_l4_port l4_port
- uint8_t next_proto
- doca_be32_t src_ip
- uint32_t zone
Variables
- doca_be32_tdoca_flow_ct_match4::dst_ip [inherited]
ip dst address
- struct doca_flow_header_l4_portdoca_flow_ct_match4::l4_port [inherited]
UDP or TCP source and destination port
- uint8_t doca_flow_ct_match4::next_proto [inherited]
ip next protocol
- doca_be32_tdoca_flow_ct_match4::src_ip [inherited]
ip src address
- uint32_t doca_flow_ct_match4::zone [inherited]
meta to match
[ flow ]
Public Variables
- doca_be32_t dst_ip[4]
- struct doca_flow_header_l4_port l4_port
- uint8_t next_proto
- doca_be32_t src_ip[4]
- uint32_t zone
Variables
- doca_be32_tdoca_flow_ct_match6::dst_ip[4] [inherited]
ip dst address
- struct doca_flow_header_l4_portdoca_flow_ct_match6::l4_port [inherited]
UDP or TCP source and destination port
- uint8_t doca_flow_ct_match6::next_proto [inherited]
ip next protocol
- doca_be32_tdoca_flow_ct_match6::src_ip[4] [inherited]
ip src address
- uint32_t doca_flow_ct_match6::zone [inherited]
zone ID
[ flow ]
Public Variables
Variables
- uint32_t doca_flow_ct_meta::data [inherited]
Combination of reserved, zone, user action data and user data.
- uint32_t doca_flow_ct_meta::hairpin [inherited]
Subject to forward using hairpin.
- uint32_t doca_flow_ct_meta::src [inherited]
Source port in multi-port E-Switch mode
- uint32_t doca_flow_ct_meta::type [inherited]
Refer to doca_flow_ct_meta_type.
- uint32_t doca_flow_ct_meta::u32 [inherited]
CPU endian.
[ flow ]
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
[ flow ]
Public Variables
- uint32_t idx
- doca_flow_pipe * next_pipe
- int num_of_queues
- doca_flow_fwd::@9::@17 ordered_list_pipe
- doca_flow_pipe * pipe
- uint16_t port_id
- enumdoca_flow_rss_hash_function rss_hash_func
- uint32_t rss_inner_flags
- uint32_t rss_outer_flags
- uint16_t * rss_queues
- uint32_t shared_rss_id
- doca_flow_target * target
- enumdoca_flow_fwd_type type
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::@9::@17 doca_flow_fwd::ordered_list_pipe [inherited]
next ordered list pipe configuration
- doca_flow_pipe * doca_flow_fwd::pipe [inherited]
Ordered list pipe to select an entry from.
- uint16_t doca_flow_fwd::port_id [inherited]
destination port id
- enumdoca_flow_rss_hash_functiondoca_flow_fwd::rss_hash_func [inherited]
hash function
- uint32_t doca_flow_fwd::rss_inner_flags [inherited]
rss offload 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 net define ]
This object describes single DW (4-bytes) from GENEVE option header. It describes either the first DW in the option including class, type and length or any other data DW.
Public Variables
- doca_be16_t class_id
- doca_be32_t data
- uint8_t type
Variables
- doca_be16_tdoca_flow_geneve_option::class_id [inherited]
option class
- doca_be32_tdoca_flow_geneve_option::data [inherited]
4 bytes of option data.
- uint8_t doca_flow_geneve_option::type [inherited]
option type
[ 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
[ flow ]
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_l4_port transport
- 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_l4_portdoca_flow_header_format::transport [inherited]
transport layer source and destination port
- 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_tdoca_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
- uint16_t total_len
- uint8_t ttl
- uint8_t version_ihl
Variables
- uint8_t doca_flow_header_ip4::dscp_ecn [inherited]
dscp and ecn
- doca_be32_tdoca_flow_header_ip4::dst_ip [inherited]
ip dst address
- uint8_t doca_flow_header_ip4::next_proto [inherited]
ip next protocol
- doca_be32_tdoca_flow_header_ip4::src_ip [inherited]
ip src address
- uint16_t doca_flow_header_ip4::total_len [inherited]
packet total length
- uint8_t doca_flow_header_ip4::ttl [inherited]
time to live
- uint8_t doca_flow_header_ip4::version_ihl [inherited]
version and internet header length
[ flow net define ]
Public Variables
- uint8_t dscp_ecn
- doca_be32_t dst_ip[4]
- uint8_t hop_limit
- uint8_t next_proto
- uint16_t payload_len
- doca_be32_t src_ip[4]
Variables
- uint8_t doca_flow_header_ip6::dscp_ecn [inherited]
dscp and ecn
- doca_be32_tdoca_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
- uint16_t doca_flow_header_ip6::payload_len [inherited]
payload length
- doca_be32_tdoca_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
Variables
- doca_be32_tdoca_flow_header_mpls::label [inherited]
MPLS label.
[ flow net define ]
Public Variables
- uint8_t data_offset
- uint8_t flags
- struct doca_flow_header_l4_port l4_port
Variables
- uint8_t doca_flow_header_tcp::data_offset [inherited]
tcp data offset
- uint8_t doca_flow_header_tcp::flags [inherited]
tcp flags
- struct doca_flow_header_l4_portdoca_flow_header_tcp::l4_port [inherited]
tcp source and destination port
[ 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
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
- enumdoca_flow_l3_typedoca_flow_ip_addr::type [inherited]
ip address type
[ flow ]
Public Variables
- uint32_t flags
- struct doca_flow_header_format inner
- struct doca_flow_meta meta
- struct doca_flow_header_format outer
- struct doca_flow_parser_meta parser_meta
- struct doca_flow_tun tun
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_parser_metadoca_flow_match::parser_meta [inherited]
Read-only meta data.
- 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::mark [inherited]
Mark id.
- uint32_t doca_flow_meta::pkt_meta [inherited]
Shared with application via packet.
- uint32_t doca_flow_meta::u32[DOCA_FLOW_META_SCRATCH_PAD_MAX] [inherited]
Programmable user data.
[ flow ]
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.
[ flow ]
Public Variables
- bool aging_enabled
- uint32_t aging_sec
- uint64_t cbs
- uint64_t cir
- enumdoca_flow_resource_type counter_type
- enumdoca_flow_meter_limit_type limit_type
- enum doca_flow_meter_color meter_init_color
- enumdoca_flow_resource_type meter_type
- uint32_t shared_counter_id
- uint32_t shared_meter_id
- uint32_t shared_mirror_id
Variables
- bool doca_flow_monitor::aging_enabled [inherited]
Specify if aging is enabled
- uint32_t doca_flow_monitor::aging_sec [inherited]
aging time in seconds.
- uint64_t doca_flow_monitor::cbs [inherited]
Committed Burst Size (bytes).
- uint64_t doca_flow_monitor::cir [inherited]
Committed Information Rate (bytes/second).
- enumdoca_flow_resource_typedoca_flow_monitor::counter_type [inherited]
Type of counter configuration.
- enumdoca_flow_meter_limit_typedoca_flow_monitor::limit_type [inherited]
Meter rate limit type: bytes / packets per second
- enum doca_flow_meter_color doca_flow_monitor::meter_init_color [inherited]
meter initial color
- enumdoca_flow_resource_typedoca_flow_monitor::meter_type [inherited]
Type of meter configuration.
- uint32_t doca_flow_monitor::shared_counter_id [inherited]
shared counter id
- uint32_t doca_flow_monitor::shared_meter_id [inherited]
shared meter id
- uint32_t doca_flow_monitor::shared_mirror_id [inherited]
shared mirror id.
[ flow ]
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.
[ flow ]
Public Variables
- doca_be32_t data_mask[DOCA_FLOW_GENEVE_DATA_OPTION_LEN_MAX]
- enumdoca_flow_parser_geneve_opt_mode match_on_class_mode
- doca_be16_t option_class
- uint8_t option_len
- uint8_t option_type
Variables
- doca_be32_tdoca_flow_parser_geneve_opt_cfg::data_mask[DOCA_FLOW_GENEVE_DATA_OPTION_LEN_MAX] [inherited]
Data mask describing which DWs should be sampled.
- enumdoca_flow_parser_geneve_opt_modedoca_flow_parser_geneve_opt_cfg::match_on_class_mode [inherited]
Indicator about class field role in this option.
- doca_be16_tdoca_flow_parser_geneve_opt_cfg::option_class [inherited]
The class of the GENEVE TLV option.
- uint8_t doca_flow_parser_geneve_opt_cfg::option_len [inherited]
The length of the GENEVE TLV option data in DW granularity.
- uint8_t doca_flow_parser_geneve_opt_cfg::option_type [inherited]
The type of the GENEVE TLV option.
[ flow ]
Parser meta data known as read-only hardware data that can be used to match.
Public Variables
- uint8_t inner_ip4_checksum_ok
- uint8_t inner_ip_fragmented
- enumdoca_flow_l2_meta inner_l2_type
- uint8_t inner_l3_ok
- enumdoca_flow_l3_meta inner_l3_type
- uint8_t inner_l4_ok
- enumdoca_flow_l4_meta inner_l4_type
- uint8_t ipsec_syndrome
- enum doca_flow_meter_color meter_color
- uint8_t outer_ip4_checksum_ok
- uint8_t outer_ip_fragmented
- enumdoca_flow_l2_meta outer_l2_type
- uint8_t outer_l3_ok
- enumdoca_flow_l3_meta outer_l3_type
- uint8_t outer_l4_ok
- enumdoca_flow_l4_meta outer_l4_type
- uint32_t port_meta
- uint16_t random
Variables
- uint8_t doca_flow_parser_meta::inner_ip4_checksum_ok [inherited]
Whether inner IPv4 checksum is valid.
- uint8_t doca_flow_parser_meta::inner_ip_fragmented [inherited]
Whether inner IP packet is fragmented.
- enumdoca_flow_l2_metadoca_flow_parser_meta::inner_l2_type [inherited]
Innermost L2 packet type.
- uint8_t doca_flow_parser_meta::inner_l3_ok [inherited]
Whether inner L3 layer is valid without checksum.
- enumdoca_flow_l3_metadoca_flow_parser_meta::inner_l3_type [inherited]
Innermost L3 packet type.
- uint8_t doca_flow_parser_meta::inner_l4_ok [inherited]
Whether inner L4 layer is valid inculiding checksum.
- enumdoca_flow_l4_metadoca_flow_parser_meta::inner_l4_type [inherited]
Innermost L4 packet type.
- uint8_t doca_flow_parser_meta::ipsec_syndrome [inherited]
IPsec decrypt/authentication syndrome.
- enum doca_flow_meter_color doca_flow_parser_meta::meter_color [inherited]
Meter colors: Green, Yellow, Red.
- uint8_t doca_flow_parser_meta::outer_ip4_checksum_ok [inherited]
Whether outer IPv4 checksum is valid.
- uint8_t doca_flow_parser_meta::outer_ip_fragmented [inherited]
Whether outer IP packet is fragmented.
- enumdoca_flow_l2_metadoca_flow_parser_meta::outer_l2_type [inherited]
Outermost L2 packet type.
- uint8_t doca_flow_parser_meta::outer_l3_ok [inherited]
Whether outer L3 layer is valid without checksum.
- enumdoca_flow_l3_metadoca_flow_parser_meta::outer_l3_type [inherited]
Outermost L3 packet type.
- uint8_t doca_flow_parser_meta::outer_l4_ok [inherited]
Whether outer L4 layer is valid inculiding checksum.
- enumdoca_flow_l4_metadoca_flow_parser_meta::outer_l4_type [inherited]
Outermost L4 packet type.
- uint32_t doca_flow_parser_meta::port_meta [inherited]
Programmable source vport.
- uint16_t doca_flow_parser_meta::random [inherited]
Matches a random value. This value is not based on the packet data/headers. Application shouldn't assume that this value is kept during the packet lifetime.
[ flow ]
Public Variables
- uint8_t congestion_level_threshold
- enumdoca_flow_direction_info dir_info
- enumdoca_flow_pipe_domain domain
- bool enable_strict_matching
- bool is_resizable
- bool is_root
- bool miss_counter
- const char * name
- uint8_t nb_actions
- uint32_t nb_flows
- uint8_t nb_ordered_lists
- enumdoca_flow_pipe_type type
- void * user_ctx
Variables
- uint8_t doca_flow_pipe_attr::congestion_level_threshold [inherited]
Congestion threshold for pipe in percentage (0,100] - pipe notification
- enumdoca_flow_direction_infodoca_flow_pipe_attr::dir_info [inherited]
Optional direction hint for driver optimization, supported in switch mode only
- enumdoca_flow_pipe_domaindoca_flow_pipe_attr::domain [inherited]
pipe steering domain.
- bool doca_flow_pipe_attr::enable_strict_matching [inherited]
pipe supports strict matching or not. If true, relaxed matching is turned off
- bool doca_flow_pipe_attr::is_resizable [inherited]
pipe supports the resize operation
- 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.
- bool doca_flow_pipe_attr::miss_counter [inherited]
Counter pipe miss flow and query with doca_flow_query_pipe_miss()
- 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
- void * doca_flow_pipe_attr::user_ctx [inherited]
Pipe user context - pipe notification
[ flow ]
Public Variables
- * action_descs
- * actions
- * actions_masks
- 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
- * doca_flow_pipe_cfg::actions_masks [inherited]
actions mask 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
[ flow ]
Public Variables
- void * dev
- const char * devargs
- uint16_t port_id
- uint16_t priv_data_size
- enumdoca_flow_port_type type
Variables
- void * doca_flow_port_cfg::dev [inherited]
port's dev
- 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 size
- enumdoca_flow_port_typedoca_flow_port_cfg::type [inherited]
mapping type of port
[ flow ]
Public Variables
Variables
- enumdoca_flow_push_action_typedoca_flow_push_action::type [inherited]
header type to push
[ 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
- enumdoca_flow_crypto_protocol_typedoca_flow_resource_crypto_cfg::proto_type [inherited]
crypto action protocol - none/esp/psp
- void * doca_flow_resource_crypto_cfg::security_ctx [inherited]
security object handle
[ flow ]
Public Variables
- enumdoca_flow_meter_algorithm_type alg
- uint64_t cbs
- uint64_t cir
- enumdoca_flow_meter_color_mode color_mode
- uint64_t ebs
- uint64_t eir
- enumdoca_flow_meter_limit_type limit_type
- uint64_t pbs
- uint64_t pir
Variables
- enumdoca_flow_meter_algorithm_typedoca_flow_resource_meter_cfg::alg [inherited]
Meter algorithm by RFCs
- uint64_t doca_flow_resource_meter_cfg::cbs [inherited]
Committed Burst Size (bytes or packets).
- uint64_t doca_flow_resource_meter_cfg::cir [inherited]
Committed Information Rate (bytes or packets per second).
- enumdoca_flow_meter_color_modedoca_flow_resource_meter_cfg::color_mode [inherited]
Meter color mode: blind / aware
- uint64_t doca_flow_resource_meter_cfg::ebs [inherited]
Excess Burst Size (EBS) (bytes or packets).
- uint64_t doca_flow_resource_meter_cfg::eir [inherited]
Excess Information Rate (bytes or packets per seconds).
- enumdoca_flow_meter_limit_typedoca_flow_resource_meter_cfg::limit_type [inherited]
Meter rate limit type: bytes / packets per second
- uint64_t doca_flow_resource_meter_cfg::pbs [inherited]
Peak Burst Size (bytes or packets).
- uint64_t doca_flow_resource_meter_cfg::pir [inherited]
Peak Information Rate (bytes or packets per seconds).
[ flow ]
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.
[ flow ]
Public Variables
- uint32_t inner_flags
- int nr_queues
- uint32_t outer_flags
- uint16_t * queues_array
- enumdoca_flow_rss_hash_function rss_hash_func
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
- enumdoca_flow_rss_hash_functiondoca_flow_resource_rss_cfg::rss_hash_func [inherited]
hash function
[ 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 ]
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 esp_sn
- doca_be32_t esp_spi
- struct doca_flow_header_geneve geneve
- union doca_flow_geneve_option geneve_options[DOCA_FLOW_GENEVE_OPT_LEN_MAX]
- doca_be32_t gre_key
- doca_be32_t gtp_teid
- bool key_present
- struct doca_flow_header_mpls mpls[DOCA_FLOW_MPLS_LABELS_MAX]
- doca_be16_t protocol
- enumdoca_flow_tun_type type
- doca_be32_t vxlan_tun_id
Variables
- doca_be32_tdoca_flow_tun::esp_sn [inherited]
ipsec sequence number
- doca_be32_tdoca_flow_tun::esp_spi [inherited]
ipsec session parameter index
- struct doca_flow_header_genevedoca_flow_tun::geneve [inherited]
geneve header
- union doca_flow_geneve_optiondoca_flow_tun::geneve_options[DOCA_FLOW_GENEVE_OPT_LEN_MAX] [inherited]
geneve options as array of doca_be32_t
- doca_be32_tdoca_flow_tun::gre_key [inherited]
gre key
- doca_be32_tdoca_flow_tun::gtp_teid [inherited]
gtp teid
- bool doca_flow_tun::key_present [inherited]
gre key is present
- struct doca_flow_header_mplsdoca_flow_tun::mpls[DOCA_FLOW_MPLS_LABELS_MAX] [inherited]
mpls labels
- 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 Types ]
Public Variables
- void * addr
- uint64_t len
- doca_gather_list * next
Variables
- void * doca_gather_list::addr [inherited]
Address of buffer in the list
- uint64_t doca_gather_list::len [inherited]
Length of current buffer in bytes
- doca_gather_list * doca_gather_list::next [inherited]
Pointer to next buffer in the list
[ 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 - in antireplay set the lower bound of the window
[ 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 ]
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.
[ 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.
Public Variables
- uint64_t algo_desc_addr
- uint32_t algo_desc_size
- uint32_t algo_id
- uint32_t algo_major_version
- uint32_t algo_minor_version
Variables
- uint64_t doca_pcc_dev_algo_meta_data::algo_desc_addr [inherited]
pointer to description string
- uint32_t doca_pcc_dev_algo_meta_data::algo_desc_size [inherited]
size of description string (null terminated)
- uint32_t doca_pcc_dev_algo_meta_data::algo_id [inherited]
algo unique identifier
- uint32_t doca_pcc_dev_algo_meta_data::algo_major_version [inherited]
algo major version
- uint32_t doca_pcc_dev_algo_meta_data::algo_minor_version [inherited]
algo minor version
[ DOCA RDMA ]
gid struct
Public Variables
- uint8_t raw[DOCA_GID_BYTE_LENGTH]
Variables
- uint8_t doca_rdma_gid::raw[DOCA_GID_BYTE_LENGTH] [inherited]
The raw value of the GID
[ DOCA RMAX engine ]
Public Variables
- doca_rmax_cpu_mask_t cpu_bits[DOCA_RMAX_CPU_SETSIZE/DOCA_RMAX_NCPUBITS]
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
- int doca_rmax_stream_error::code [inherited]
Raw Rivermax error code
- const char * doca_rmax_stream_error::message [inherited]
Human-readable error