NVIDIA DOCA SDK Data Center on a Chip Framework Documentation
doca_flow.h File Reference
#include <stdio.h>
#include <stdint.h>
#include <stdbool.h>
#include <doca_compat.h>
#include <doca_error.h>
#include <doca_flow_net.h>
#include <doca_flow_crypto.h>
Include dependency graph for doca_flow.h:

Go to the source code of this file.

Data Structures

struct  doca_flow_resource_rss_cfg
 doca flow rss resource configuration More...
 
struct  doca_flow_meta
 doca flow meta data More...
 
struct  doca_flow_parser_meta
 doca flow parser meta data More...
 
struct  doca_flow_header_format
 doca flow packet format More...
 
struct  doca_flow_entropy_format
 doca flow header format for entropy More...
 
struct  doca_flow_match
 doca flow matcher information More...
 
struct  doca_flow_desc_field
 Action descriptor field. More...
 
struct  doca_flow_match_condition
 doca flow match condition information More...
 
struct  doca_flow_encap_action
 doca flow encap data information More...
 
struct  doca_flow_push_vlan_action
 doca flow push VLAN data information More...
 
struct  doca_flow_push_action
 doca flow push data information More...
 
struct  doca_flow_nat64_action
 doca flow nat64 action More...
 
struct  doca_flow_crypto_action
 doca flow crypto action information More...
 
struct  doca_flow_crypto_encap_action
 doca flow crypto encap action information More...
 
struct  doca_flow_resource_encap_cfg
 doca flow encap resource configuration More...
 
struct  doca_flow_resource_decap_cfg
 doca flow decap resource configuration More...
 
struct  doca_flow_actions
 doca flow actions information More...
 
struct  doca_flow_fwd
 forwarding configuration More...
 
struct  doca_flow_resource_meter_cfg
 doca flow meter resource configuration More...
 
struct  doca_flow_resource_psp_cfg
 doca flow psp resource configuration More...
 
struct  doca_flow_resource_ipsec_sa_cfg
 doca flow ipsec SA resource configuration More...
 
struct  doca_flow_mirror_target
 doca flow mirror target More...
 
struct  doca_flow_resource_mirror_cfg
 doca flow mirror resource configuration More...
 
struct  doca_flow_shared_resource_cfg
 doca flow shared resource configuration More...
 
struct  doca_flow_monitor
 doca monitor action configuration More...
 
struct  doca_flow_action_desc
 action description More...
 
struct  doca_flow_action_descs
 action descriptor array More...
 
struct  doca_flow_ordered_list_element
 Ordered list elements. More...
 
struct  doca_flow_ordered_list
 Ordered list configuration. More...
 
struct  doca_flow_resource_query
 flow resource query More...
 
struct  doca_flow_parser_geneve_opt_cfg
 User configuration structure using to create parser for single GENEVE TLV option. More...
 

Macros

#define DOCA_FLOW_META_SCRATCH_PAD_MAX   10
 
#define DOCA_FLOW_META_MAX   ((DOCA_FLOW_META_SCRATCH_PAD_MAX + 1) * 4)
 
#define DOCA_FLOW_MAX_ENTRY_ACTIONS_MEM_SIZE   (128)
 meter mark color More...
 
#define DOCA_FLOW_VLAN_MAX   2
 
#define DOCA_FLOW_PSP_DECRYPTION_ID   UINT32_MAX
 

Typedefs

typedef void(* doca_flow_pipe_process_cb) (struct doca_flow_pipe *pipe, enum doca_flow_pipe_status status, enum doca_flow_pipe_op op, void *user_ctx)
 doca flow pipe process callback More...
 
typedef void(* doca_flow_entry_process_cb) (struct doca_flow_pipe_entry *entry, uint16_t pipe_queue, enum doca_flow_entry_status status, enum doca_flow_entry_op op, void *user_ctx)
 doca flow entry process callback More...
 
typedef void(* doca_flow_shared_resource_unbind_cb) (enum doca_flow_shared_resource_type, uint32_t shared_resource_id, void *bindable_obj)
 doca flow shared resource unbind callback More...
 
typedef doca_error_t(* doca_flow_pipe_resize_nr_entries_changed_cb) (void *pipe_user_ctx, uint32_t nr_entries)
 doca flow pipe resize number of entries changed callback. More...
 
typedef doca_error_t(* doca_flow_pipe_resize_entry_relocate_cb) (void *pipe_user_ctx, uint16_t pipe_queue, void *entry_user_ctx, void **new_entry_user_ctx)
 doca flow pipe entry relocation callback. More...
 

Enumerations

enum  doca_flow_shared_resource_type {
  DOCA_FLOW_SHARED_RESOURCE_METER , DOCA_FLOW_SHARED_RESOURCE_COUNTER , DOCA_FLOW_SHARED_RESOURCE_RSS , DOCA_FLOW_SHARED_RESOURCE_MIRROR ,
  DOCA_FLOW_SHARED_RESOURCE_PSP , DOCA_FLOW_SHARED_RESOURCE_ENCAP , DOCA_FLOW_SHARED_RESOURCE_DECAP , DOCA_FLOW_SHARED_RESOURCE_IPSEC_SA
}
 Shared resource supported types. More...
 
enum  doca_flow_flags_type { DOCA_FLOW_NO_WAIT = 0 , DOCA_FLOW_WAIT_FOR_BATCH = (1 << 0) }
 doca flow flags type More...
 
enum  doca_flow_pipe_op { DOCA_FLOW_PIPE_OP_CONGESTION_REACHED , DOCA_FLOW_PIPE_OP_RESIZED , DOCA_FLOW_PIPE_OP_DESTROYED }
 doca flow pipe operation More...
 
enum  doca_flow_pipe_status { DOCA_FLOW_PIPE_STATUS_SUCCESS = 1 , DOCA_FLOW_PIPE_STATUS_ERROR }
 doca flow pipe status More...
 
enum  doca_flow_entry_op { DOCA_FLOW_ENTRY_OP_ADD , DOCA_FLOW_ENTRY_OP_DEL , DOCA_FLOW_ENTRY_OP_UPD , DOCA_FLOW_ENTRY_OP_AGED }
 doca flow entry operation More...
 
enum  doca_flow_entry_status { DOCA_FLOW_ENTRY_STATUS_IN_PROCESS , DOCA_FLOW_ENTRY_STATUS_SUCCESS , DOCA_FLOW_ENTRY_STATUS_ERROR }
 doca flow entry status More...
 
enum  doca_flow_rss_hash_function { DOCA_FLOW_RSS_HASH_FUNCTION_TOEPLITZ , DOCA_FLOW_RSS_HASH_FUNCTION_SYMMETRIC_TOEPLITZ }
 rss hash function type More...
 
enum  doca_flow_pipe_type {
  DOCA_FLOW_PIPE_BASIC , DOCA_FLOW_PIPE_CONTROL , DOCA_FLOW_PIPE_LPM , DOCA_FLOW_PIPE_CT ,
  DOCA_FLOW_PIPE_ACL , DOCA_FLOW_PIPE_ORDERED_LIST , DOCA_FLOW_PIPE_HASH
}
 doca flow pipe type More...
 
enum  doca_flow_pipe_domain { DOCA_FLOW_PIPE_DOMAIN_DEFAULT = 0 , DOCA_FLOW_PIPE_DOMAIN_SECURE_INGRESS , DOCA_FLOW_PIPE_DOMAIN_EGRESS , DOCA_FLOW_PIPE_DOMAIN_SECURE_EGRESS }
 doca flow pipe domain More...
 
enum  doca_flow_l2_meta { DOCA_FLOW_L2_META_NO_VLAN = 0 , DOCA_FLOW_L2_META_MULTI_VLAN , DOCA_FLOW_L2_META_SINGLE_VLAN , DOCA_FLOW_L2_META_CUSTOM_VLAN }
 doca flow l2 valid type for parser meta More...
 
enum  doca_flow_l3_meta { DOCA_FLOW_L3_META_NONE = 0 , DOCA_FLOW_L3_META_IPV4 , DOCA_FLOW_L3_META_IPV6 }
 doca flow l3 valid type for parser meta More...
 
enum  doca_flow_l4_meta {
  DOCA_FLOW_L4_META_NONE = 0 , DOCA_FLOW_L4_META_TCP , DOCA_FLOW_L4_META_UDP , DOCA_FLOW_L4_META_ICMP ,
  DOCA_FLOW_L4_META_ESP
}
 doca flow l4 valid type for parser meta More...
 
enum  doca_flow_crypto_syndrome { DOCA_FLOW_CRYPTO_SYNDROME_OK , DOCA_FLOW_CRYPTO_SYNDROME_ICV_FAIL , DOCA_FLOW_CRYPTO_SYNDROME_BAD_TRAILER }
 doca flow psp/ipsec syndrome valid values for parser meta More...
 
enum  doca_flow_pipe_hash_map_algorithm {
  DOCA_FLOW_PIPE_HASH_MAP_ALGORITHM_HASH = 1 << 0 , DOCA_FLOW_PIPE_HASH_MAP_ALGORITHM_RANDOM = 1 << 1 , DOCA_FLOW_PIPE_HASH_MAP_ALGORITHM_IDENTITY = 1 << 2 , DOCA_FLOW_PIPE_HASH_MAP_ALGORITHM_ROUND_ROBIN = 1 << 3 ,
  DOCA_FLOW_PIPE_HASH_MAP_ALGORITHM_FLOODING = 1 << 4 , DOCA_FLOW_PIPE_HASH_MAP_ALGORITHM_SELECT_ENABLED = 1 << 5
}
 DOCA Flow pipe map algorithm. More...
 
enum  doca_flow_match_tcp_flags {
  DOCA_FLOW_MATCH_TCP_FLAG_FIN = (1 << 0) , DOCA_FLOW_MATCH_TCP_FLAG_SYN = (1 << 1) , DOCA_FLOW_MATCH_TCP_FLAG_RST = (1 << 2) , DOCA_FLOW_MATCH_TCP_FLAG_PSH = (1 << 3) ,
  DOCA_FLOW_MATCH_TCP_FLAG_ACK = (1 << 4) , DOCA_FLOW_MATCH_TCP_FLAG_URG = (1 << 5) , DOCA_FLOW_MATCH_TCP_FLAG_ECE = (1 << 6) , DOCA_FLOW_MATCH_TCP_FLAG_CWR = (1 << 7)
}
 doca flow match flags More...
 
enum  doca_flow_l2_valid_header { DOCA_FLOW_L2_VALID_HEADER_VLAN_0 = (1 << 0) , DOCA_FLOW_L2_VALID_HEADER_VLAN_1 = (1 << 1) }
 doca flow l2 valid headers More...
 
enum  doca_flow_compare_op {
  DOCA_FLOW_COMPARE_EQ , DOCA_FLOW_COMPARE_NE , DOCA_FLOW_COMPARE_LT , DOCA_FLOW_COMPARE_LE ,
  DOCA_FLOW_COMPARE_GT , DOCA_FLOW_COMPARE_GE
}
 doca flow compare operation More...
 
enum  doca_flow_push_action_type { DOCA_FLOW_PUSH_ACTION_VLAN }
 doca flow push action type More...
 
enum  doca_flow_resource_type { DOCA_FLOW_RESOURCE_TYPE_NONE , DOCA_FLOW_RESOURCE_TYPE_SHARED , DOCA_FLOW_RESOURCE_TYPE_NON_SHARED }
 doca flow resource type More...
 
enum  doca_flow_target_type { DOCA_FLOW_TARGET_KERNEL }
 doca flow target type More...
 
enum  doca_flow_fwd_type {
  DOCA_FLOW_FWD_NONE = 0 , DOCA_FLOW_FWD_RSS , DOCA_FLOW_FWD_PORT , DOCA_FLOW_FWD_PIPE ,
  DOCA_FLOW_FWD_DROP , DOCA_FLOW_FWD_TARGET , DOCA_FLOW_FWD_ORDERED_LIST_PIPE , DOCA_FLOW_FWD_HASH_PIPE ,
  DOCA_FLOW_FWD_CHANGEABLE = 100
}
 forwarding action type More...
 
enum  doca_rss_type {
  DOCA_FLOW_RSS_IPV4 = (1 << 0) , DOCA_FLOW_RSS_IPV6 = (1 << 1) , DOCA_FLOW_RSS_UDP = (1 << 2) , DOCA_FLOW_RSS_TCP = (1 << 3) ,
  DOCA_FLOW_RSS_ESP = (1 << 4)
}
 rss offload types More...
 
enum  doca_flow_meter_algorithm_type { DOCA_FLOW_METER_ALGORITHM_TYPE_RFC2697 , DOCA_FLOW_METER_ALGORITHM_TYPE_RFC2698 , DOCA_FLOW_METER_ALGORITHM_TYPE_RFC4115 }
 Traffic meter algorithms. More...
 
enum  doca_flow_meter_limit_type { DOCA_FLOW_METER_LIMIT_TYPE_BYTES = 0 , DOCA_FLOW_METER_LIMIT_TYPE_PACKETS }
 Traffic meter limit type: per bytes or per packets for all meter parameters: cir, cbs, eir, ebs. More...
 
enum  doca_flow_meter_color_mode { DOCA_FLOW_METER_COLOR_MODE_BLIND = 0 , DOCA_FLOW_METER_COLOR_MODE_AWARE }
 Traffic meter init color mode when creating a pipe or entry: blind (fixed as green) or aware (configurable value). More...
 
enum  doca_flow_action_type { DOCA_FLOW_ACTION_AUTO = 0 , DOCA_FLOW_ACTION_ADD , DOCA_FLOW_ACTION_COPY }
 action type enumeration More...
 
enum  doca_flow_ordered_list_element_type { DOCA_FLOW_ORDERED_LIST_ELEMENT_ACTIONS , DOCA_FLOW_ORDERED_LIST_ELEMENT_MONITOR }
 Type of an ordered list element. More...
 
enum  doca_flow_direction_info { DOCA_FLOW_DIRECTION_BIDIRECTIONAL = 0 , DOCA_FLOW_DIRECTION_NETWORK_TO_HOST , DOCA_FLOW_DIRECTION_HOST_TO_NETWORK }
 doca flow direction info More...
 
enum  doca_flow_parser_geneve_opt_mode { DOCA_FLOW_PARSER_GENEVE_OPT_MODE_IGNORE , DOCA_FLOW_PARSER_GENEVE_OPT_MODE_FIXED , DOCA_FLOW_PARSER_GENEVE_OPT_MODE_MATCHABLE }
 Geneve TLV option class mode. More...
 
enum  doca_flow_port_operation_state { DOCA_FLOW_PORT_OPERATION_STATE_ACTIVE , DOCA_FLOW_PORT_OPERATION_STATE_ACTIVE_READY_TO_SWAP , DOCA_FLOW_PORT_OPERATION_STATE_STANDBY , DOCA_FLOW_PORT_OPERATION_STATE_UNCONNECTED }
 Defines the operation states for a port instance. More...
 

Functions

enum __attribute__ ((__packed__)) doca_flow_meter_color
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_init (struct doca_flow_cfg *cfg)
 Initialize the doca flow. More...
 
DOCA_STABLE void doca_flow_destroy (void)
 Destroy the doca flow. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_port_start (const struct doca_flow_port_cfg *cfg, struct doca_flow_port **port)
 Start a doca port. More...
 
DOCA_STABLE doca_error_t doca_flow_port_stop (struct doca_flow_port *port)
 Stop a doca port. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_port_pair (struct doca_flow_port *port, struct doca_flow_port *pair_port)
 pair two doca flow ports. More...
 
DOCA_STABLE uint8_t * doca_flow_port_priv_data (struct doca_flow_port *port)
 Get pointer of user private data. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_port_operation_state_modify (struct doca_flow_port *port, enum doca_flow_port_operation_state state)
 Modifies the operation state of a port instance. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_shared_resource_set_cfg (enum doca_flow_shared_resource_type type, uint32_t id, struct doca_flow_shared_resource_cfg *cfg)
 Configure a single shared resource. More...
 
DOCA_STABLE doca_error_t doca_flow_shared_resources_bind (enum doca_flow_shared_resource_type type, uint32_t *res_array, uint32_t res_array_len, void *bindable_obj)
 Binds a bulk of shared resources to a bindable object. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_shared_resources_query (enum doca_flow_shared_resource_type type, uint32_t *res_array, struct doca_flow_resource_query *query_results_array, uint32_t array_len)
 Extract information about shared counter. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_pipe_create (const struct doca_flow_pipe_cfg *cfg, const struct doca_flow_fwd *fwd, const struct doca_flow_fwd *fwd_miss, struct doca_flow_pipe **pipe)
 Create one new pipe. More...
 
DOCA_STABLE doca_error_t doca_flow_pipe_resize (struct doca_flow_pipe *pipe, uint8_t new_congestion_level, doca_flow_pipe_resize_nr_entries_changed_cb nr_entries_changed_cb, doca_flow_pipe_resize_entry_relocate_cb entry_relocation_cb)
 Resize pipe. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_pipe_add_entry (uint16_t pipe_queue, struct doca_flow_pipe *pipe, const struct doca_flow_match *match, const struct doca_flow_actions *actions, const struct doca_flow_monitor *monitor, const struct doca_flow_fwd *fwd, uint32_t flags, void *usr_ctx, struct doca_flow_pipe_entry **entry)
 Add one new entry to a pipe. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_pipe_update_entry (uint16_t pipe_queue, struct doca_flow_pipe *pipe, const struct doca_flow_actions *actions, const struct doca_flow_monitor *monitor, const struct doca_flow_fwd *fwd, const enum doca_flow_flags_type flags, struct doca_flow_pipe_entry *entry)
 Update the pipe entry with new actions. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_pipe_control_add_entry (uint16_t pipe_queue, uint32_t priority, struct doca_flow_pipe *pipe, const struct doca_flow_match *match, const struct doca_flow_match *match_mask, const struct doca_flow_match_condition *condition, const struct doca_flow_actions *actions, const struct doca_flow_actions *actions_mask, const struct doca_flow_action_descs *action_descs, const struct doca_flow_monitor *monitor, const struct doca_flow_fwd *fwd, void *usr_ctx, struct doca_flow_pipe_entry **entry)
 Add one new entry to a control pipe. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_pipe_lpm_add_entry (uint16_t pipe_queue, struct doca_flow_pipe *pipe, const struct doca_flow_match *match, const struct doca_flow_match *match_mask, const struct doca_flow_actions *actions, const struct doca_flow_monitor *monitor, const struct doca_flow_fwd *fwd, const enum doca_flow_flags_type flag, void *usr_ctx, struct doca_flow_pipe_entry **entry)
 Add one new entry to a lpm pipe. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_pipe_lpm_update_entry (uint16_t pipe_queue, struct doca_flow_pipe *pipe, const struct doca_flow_actions *actions, const struct doca_flow_monitor *monitor, const struct doca_flow_fwd *fwd, const enum doca_flow_flags_type flags, struct doca_flow_pipe_entry *entry)
 Update the lpm pipe entry with new actions. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_pipe_ordered_list_add_entry (uint16_t pipe_queue, struct doca_flow_pipe *pipe, uint32_t idx, const struct doca_flow_ordered_list *ordered_list, const struct doca_flow_fwd *fwd, enum doca_flow_flags_type flags, void *user_ctx, struct doca_flow_pipe_entry **entry)
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_pipe_acl_add_entry (uint16_t pipe_queue, struct doca_flow_pipe *pipe, const struct doca_flow_match *match, const struct doca_flow_match *match_mask, const uint32_t priority, const struct doca_flow_fwd *fwd, const enum doca_flow_flags_type flag, void *usr_ctx, struct doca_flow_pipe_entry **entry)
 Add one new entry to a acl pipe. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_pipe_hash_add_entry (uint16_t pipe_queue, struct doca_flow_pipe *pipe, uint32_t entry_index, const struct doca_flow_actions *actions, const struct doca_flow_monitor *monitor, const struct doca_flow_fwd *fwd, const enum doca_flow_flags_type flags, void *usr_ctx, struct doca_flow_pipe_entry **entry)
 Add one new entry to an hash pipe. More...
 
DOCA_STABLE doca_error_t doca_flow_pipe_remove_entry (uint16_t pipe_queue, uint32_t flags, struct doca_flow_pipe_entry *entry)
 Free one pipe entry. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_pipe_calc_hash (struct doca_flow_pipe *pipe, const struct doca_flow_match *match, uint32_t *hash)
 calc the hash for a given match on a given pipe. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_port_calc_entropy (struct doca_flow_port *port, struct doca_flow_entropy_format *header, uint16_t *entropy)
 Calculate the entropy. More...
 
DOCA_STABLE void doca_flow_pipe_destroy (struct doca_flow_pipe *pipe)
 Destroy one pipe. More...
 
DOCA_STABLE void doca_flow_port_pipes_flush (struct doca_flow_port *port)
 Flush pipes of one port. More...
 
DOCA_EXPERIMENTAL void doca_flow_port_pipes_dump (struct doca_flow_port *port, FILE *f)
 Dump pipes of one port. More...
 
DOCA_EXPERIMENTAL void doca_flow_pipe_dump (struct doca_flow_pipe *pipe, FILE *f)
 Dump pipe information (not including the entries) More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_resource_query_entry (struct doca_flow_pipe_entry *entry, struct doca_flow_resource_query *query_stats)
 Extract information about specific entry. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_resource_query_pipe_miss (struct doca_flow_pipe *pipe, struct doca_flow_resource_query *query_stats)
 Extract information about pipe miss entry. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_pipe_update_miss (struct doca_flow_pipe *pipe, const struct doca_flow_fwd *fwd_miss)
 Update the forward miss action. More...
 
DOCA_STABLE int doca_flow_aging_handle (struct doca_flow_port *port, uint16_t queue, uint64_t quota, uint64_t max_entries)
 Handle aging of entries. More...
 
DOCA_STABLE doca_error_t doca_flow_entries_process (struct doca_flow_port *port, uint16_t pipe_queue, uint64_t timeout, uint32_t max_processed_entries)
 Process entries in queue. More...
 
DOCA_STABLE enum doca_flow_entry_status doca_flow_pipe_entry_get_status (struct doca_flow_pipe_entry *entry)
 Get entry's status. More...
 
DOCA_STABLE struct doca_flow_port * doca_flow_port_switch_get (const struct doca_flow_port *port)
 Get doca flow switch port. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_mpls_label_encode (uint32_t label, uint8_t traffic_class, uint8_t ttl, bool bottom_of_stack, struct doca_flow_header_mpls *mpls)
 Prepare an MPLS label header in big-endian. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_mpls_label_decode (const struct doca_flow_header_mpls *mpls, uint32_t *label, uint8_t *traffic_class, uint8_t *ttl, bool *bottom_of_stack)
 Decode an MPLS label header. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_parser_geneve_opt_create (const struct doca_flow_port *port, const struct doca_flow_parser_geneve_opt_cfg tlv_list[], uint8_t nb_options, struct doca_flow_parser **parser)
 Creates GENEVE TLV parser for the selected port. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_parser_geneve_opt_destroy (struct doca_flow_parser *parser)
 Destroy GENEVE TLV parser. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_get_target (enum doca_flow_target_type type, struct doca_flow_target **target)
 Get doca flow forward target. More...
 
DOCA_STABLE doca_error_t doca_flow_cfg_create (struct doca_flow_cfg **cfg)
 Create DOCA Flow configuration struct. More...
 
DOCA_STABLE doca_error_t doca_flow_cfg_destroy (struct doca_flow_cfg *cfg)
 Destroy DOCA Flow configuration struct. More...
 
DOCA_STABLE doca_error_t doca_flow_cfg_set_pipe_queues (struct doca_flow_cfg *cfg, uint16_t pipe_queues)
 Set pipe queues. More...
 
DOCA_STABLE doca_error_t doca_flow_cfg_set_nr_counters (struct doca_flow_cfg *cfg, uint32_t nr_counters)
 Set number of counters to configure. More...
 
DOCA_STABLE doca_error_t doca_flow_cfg_set_nr_meters (struct doca_flow_cfg *cfg, uint32_t nr_meters)
 Set number of traffic meters to configure. More...
 
DOCA_STABLE doca_error_t doca_flow_cfg_set_nr_acl_collisions (struct doca_flow_cfg *cfg, uint8_t nr_acl_collisions)
 Set number of pre-configured collisions. More...
 
DOCA_STABLE doca_error_t doca_flow_cfg_set_mode_args (struct doca_flow_cfg *cfg, const char *mode_args)
 Set DOCA mode args. More...
 
DOCA_STABLE doca_error_t doca_flow_cfg_set_nr_shared_resource (struct doca_flow_cfg *cfg, uint32_t nr_shared_resource, enum doca_flow_shared_resource_type type)
 Set number of shared resource. More...
 
DOCA_STABLE doca_error_t doca_flow_cfg_set_queue_depth (struct doca_flow_cfg *cfg, uint32_t queue_depth)
 Set number of pre-configured queue_size. More...
 
DOCA_STABLE doca_error_t doca_flow_cfg_set_cb_pipe_process (struct doca_flow_cfg *cfg, doca_flow_pipe_process_cb cb)
 Set callback for pipe process completion. More...
 
DOCA_STABLE doca_error_t doca_flow_cfg_set_cb_entry_process (struct doca_flow_cfg *cfg, doca_flow_entry_process_cb cb)
 Set callback for entry create/destroy. More...
 
DOCA_STABLE doca_error_t doca_flow_cfg_set_cb_shared_resource_unbind (struct doca_flow_cfg *cfg, doca_flow_shared_resource_unbind_cb cb)
 Set callback for unbinding of a shared resource. More...
 
DOCA_STABLE doca_error_t doca_flow_cfg_set_rss_key (struct doca_flow_cfg *cfg, const uint8_t *rss_key, uint32_t rss_key_len)
 Set RSS hash key. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_cfg_set_default_rss (struct doca_flow_cfg *cfg, const struct doca_flow_resource_rss_cfg *rss)
 Set RSS global configuration. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_cfg_set_definitions (struct doca_flow_cfg *cfg, const struct doca_flow_definitions *defs)
 Set the definition object. More...
 
DOCA_STABLE doca_error_t doca_flow_port_cfg_create (struct doca_flow_port_cfg **cfg)
 Create DOCA Flow port configuration struct. More...
 
DOCA_STABLE doca_error_t doca_flow_port_cfg_destroy (struct doca_flow_port_cfg *cfg)
 Destroy DOCA Flow port configuration struct. More...
 
DOCA_STABLE doca_error_t doca_flow_port_cfg_set_devargs (struct doca_flow_port_cfg *cfg, const char *devargs)
 Set devargs. More...
 
DOCA_STABLE doca_error_t doca_flow_port_cfg_set_priv_data_size (struct doca_flow_port_cfg *cfg, uint16_t priv_data_size)
 Set user private data size. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_port_cfg_set_dev (struct doca_flow_port_cfg *cfg, struct doca_dev *dev)
 Set port's device. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_port_cfg_set_dev_rep (struct doca_flow_port_cfg *cfg, struct doca_dev_rep *dev)
 Set port's device for representor. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_port_cfg_set_port_id (struct doca_flow_port_cfg *cfg, uint16_t port_id)
 Set the logical port ID. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_port_cfg_set_rss_cfg (struct doca_flow_port_cfg *cfg, const struct doca_flow_resource_rss_cfg *rss_cfg)
 Set RSS optional configuration. More...
 
DOCA_STABLE doca_error_t doca_flow_port_cfg_set_ipsec_sn_offload_disable (struct doca_flow_port_cfg *cfg)
 Disable SN offload for ipsec - Anti-replay and sn increment will not be activated. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_port_cfg_set_operation_state (struct doca_flow_port_cfg *cfg, enum doca_flow_port_operation_state state)
 Set default rules operation state. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_port_cfg_set_actions_mem_size (struct doca_flow_port_cfg *cfg, uint32_t size)
 Set max memory size used by actions. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_port_cfg_set_service_threads_core (struct doca_flow_port_cfg *cfg, uint32_t core)
 Set service threads execution cpu core. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_port_cfg_set_service_threads_cycle (struct doca_flow_port_cfg *cfg, uint32_t cycle_ms)
 Set service threads max execution cycle. More...
 
DOCA_STABLE doca_error_t doca_flow_pipe_cfg_create (struct doca_flow_pipe_cfg **cfg, struct doca_flow_port *port)
 Create DOCA Flow pipe configuration struct. More...
 
DOCA_STABLE doca_error_t doca_flow_pipe_cfg_destroy (struct doca_flow_pipe_cfg *cfg)
 Destroy DOCA Flow pipe configuration struct. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_pipe_cfg_set_match (struct doca_flow_pipe_cfg *cfg, const struct doca_flow_match *match, const struct doca_flow_match *match_mask)
 Set pipe's match and match mask. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_pipe_cfg_set_actions (struct doca_flow_pipe_cfg *cfg, struct doca_flow_actions *const *actions, struct doca_flow_actions *const *actions_masks, struct doca_flow_action_descs *const *action_descs, size_t nr_actions)
 Set pipe's actions, actions mask and actions descriptor. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_pipe_cfg_set_monitor (struct doca_flow_pipe_cfg *cfg, const struct doca_flow_monitor *monitor)
 Set pipe's monitor. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_pipe_cfg_set_ordered_lists (struct doca_flow_pipe_cfg *cfg, struct doca_flow_ordered_list *const *ordered_lists, size_t nr_ordered_lists)
 Set pipe's ordered lists. More...
 
DOCA_STABLE doca_error_t doca_flow_pipe_cfg_set_name (struct doca_flow_pipe_cfg *cfg, const char *name)
 Set pipe's name. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_pipe_cfg_set_label (struct doca_flow_pipe_cfg *cfg, const char *label)
 Sets the label for the given pipe. More...
 
DOCA_STABLE doca_error_t doca_flow_pipe_cfg_set_type (struct doca_flow_pipe_cfg *cfg, enum doca_flow_pipe_type type)
 Set pipe's type. More...
 
DOCA_STABLE doca_error_t doca_flow_pipe_cfg_set_domain (struct doca_flow_pipe_cfg *cfg, enum doca_flow_pipe_domain domain)
 Set pipe's domain. More...
 
DOCA_STABLE doca_error_t doca_flow_pipe_cfg_set_is_root (struct doca_flow_pipe_cfg *cfg, bool is_root)
 Set if pipe is root or not. More...
 
DOCA_STABLE doca_error_t doca_flow_pipe_cfg_set_nr_entries (struct doca_flow_pipe_cfg *cfg, uint32_t nr_entries)
 Set pipe's maximum number of flow rules. More...
 
DOCA_STABLE doca_error_t doca_flow_pipe_cfg_set_is_resizable (struct doca_flow_pipe_cfg *cfg, bool is_resizable)
 Set if the pipe supports the resize operation. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_pipe_cfg_set_excluded_queue (struct doca_flow_pipe_cfg *cfg, uint16_t pipe_queue)
 Set pipe_queue as excluded in the pipe. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_pipe_cfg_set_dir_info (struct doca_flow_pipe_cfg *cfg, enum doca_flow_direction_info dir_info)
 Set pipe's Direction info. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_pipe_cfg_set_miss_counter (struct doca_flow_pipe_cfg *cfg, bool miss_counter)
 Set to enable pipe's miss counter. More...
 
DOCA_STABLE doca_error_t doca_flow_pipe_cfg_set_congestion_level_threshold (struct doca_flow_pipe_cfg *cfg, uint8_t congestion_level_threshold)
 Set pipe's congestion level threshold. More...
 
DOCA_STABLE doca_error_t doca_flow_pipe_cfg_set_user_ctx (struct doca_flow_pipe_cfg *cfg, void *user_ctx)
 Set pipe's user context. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_flow_pipe_cfg_set_hash_map_algorithm (struct doca_flow_pipe_cfg *cfg, uint32_t algorithm_flags)
 Set pipe map algorithm - supported only in hash pipe. More...