47 struct doca_flow_port;
52 struct doca_flow_pipe;
57 struct doca_flow_pipe_entry;
62 struct doca_flow_target;
67 struct doca_flow_parser;
72 struct doca_flow_definitions;
82 struct doca_flow_port_cfg;
87 struct doca_flow_pipe_cfg;
214 uint32_t shared_resource_id,
254 #define DOCA_FLOW_META_SCRATCH_PAD_MAX 10
259 #define DOCA_FLOW_META_MAX ((DOCA_FLOW_META_SCRATCH_PAD_MAX + 1) * 4)
264 #define DOCA_FLOW_MAX_ENTRY_ACTIONS_MEM_SIZE (128)
268 DOCA_FLOW_METER_COLOR_RED = 0,
270 DOCA_FLOW_METER_COLOR_YELLOW,
272 DOCA_FLOW_METER_COLOR_GREEN,
424 #define DOCA_FLOW_VLAN_MAX 2
621 #define DOCA_FLOW_PSP_DECRYPTION_ID UINT32_MAX
1352 uint32_t *res_array,
1353 uint32_t res_array_len,
1354 void *bindable_obj);
1379 uint32_t *res_array,
1381 uint32_t array_len);
1421 struct doca_flow_pipe **pipe);
1457 uint16_t pipe_queue,
1458 void *entry_user_ctx,
1459 void **new_entry_user_ctx);
1480 uint8_t new_congestion_level,
1528 struct doca_flow_pipe *pipe,
1535 struct doca_flow_pipe_entry **
entry);
1564 struct doca_flow_pipe *pipe,
1569 struct doca_flow_pipe_entry *
entry);
1614 struct doca_flow_pipe *pipe,
1624 struct doca_flow_pipe_entry **
entry);
1661 struct doca_flow_pipe *pipe,
1669 struct doca_flow_pipe_entry **
entry);
1697 struct doca_flow_pipe *pipe,
1702 struct doca_flow_pipe_entry *
entry);
1737 struct doca_flow_pipe *pipe,
1743 struct doca_flow_pipe_entry **
entry);
1774 struct doca_flow_pipe *pipe,
1777 const uint32_t priority,
1781 struct doca_flow_pipe_entry **
entry);
1816 struct doca_flow_pipe *pipe,
1817 uint32_t entry_index,
1823 struct doca_flow_pipe_entry **
entry);
2045 uint16_t pipe_queue,
2047 uint32_t max_processed_entries);
2097 uint8_t traffic_class,
2099 bool bottom_of_stack,
2125 uint8_t *traffic_class,
2127 bool *bottom_of_stack);
2164 struct doca_flow_parser **parser);
2329 uint32_t nr_shared_resource,
2778 size_t nr_ordered_lists);
2959 uint8_t congestion_level_threshold);
static enum doca_flow_pipe_domain domain
static struct doca_flow_fwd fwd_miss
static struct doca_flow_actions actions
static struct doca_flow_monitor monitor
static struct doca_flow_fwd fwd
static struct doca_flow_match match_mask
static doca_flow_pipe_resize_nr_entries_changed_cb nr_entries_changed_cb
static doca_flow_pipe_resize_entry_relocate_cb entry_relocation_cb
static struct doca_flow_pipe_entry * entry[MAX_ENTRIES]
#define DOCA_EXPERIMENTAL
To set a Symbol (or specifically a function) as experimental.
#define DOCA_STABLE
To set a Symbol (or specifically a function) as stable API, i.e. it won't be changed.
enum doca_error doca_error_t
DOCA API return codes.
doca_flow_crypto_sn_offload_type
doca flow crypto SN offload type
doca_flow_crypto_replay_win_size
doca flow crypto replay window size
doca_flow_crypto_icv_len
doca flow crypto ICV length
doca_flow_crypto_encap_net_type
doca flow crypto operation encapsulation header type
doca_flow_crypto_resource_type
doca flow crypto operation resource type
doca_flow_crypto_encap_action_type
doca flow crypto operation reformat type
doca_flow_crypto_action_type
doca flow crypto operation action type
doca_flow_l4_type_ext
doca flow layer 4 packet extend type
doca_flow_l3_type
doca flow layer 3 packet type
#define DOCA_FLOW_GENEVE_DATA_OPTION_LEN_MAX
#define DOCA_FLOW_CRYPTO_HEADER_LEN_MAX
doca_flow_port_operation_state
Defines the operation states for a port instance.
doca_rss_type
rss offload types
DOCA_STABLE doca_error_t doca_flow_pipe_cfg_destroy(struct doca_flow_pipe_cfg *cfg)
Destroy DOCA Flow pipe configuration struct.
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.
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_STABLE doca_error_t doca_flow_cfg_set_mode_args(struct doca_flow_cfg *cfg, const char *mode_args)
Set DOCA mode args.
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.
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.
DOCA_STABLE doca_error_t doca_flow_pipe_cfg_set_name(struct doca_flow_pipe_cfg *cfg, const char *name)
Set pipe's name.
doca_flow_l2_valid_header
doca flow l2 valid headers
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.
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
DOCA_EXPERIMENTAL void doca_flow_pipe_dump(struct doca_flow_pipe *pipe, FILE *f)
Dump pipe information (not including the entries)
doca_flow_shared_resource_type
Shared resource supported types.
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.
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.
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.
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.
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.
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.
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.
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.
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.
doca_flow_entry_op
doca flow entry operation
doca_flow_direction_info
doca flow direction info
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.
doca_flow_pipe_op
doca flow pipe operation
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.
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.
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.
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.
DOCA_EXPERIMENTAL doca_error_t doca_flow_parser_geneve_opt_destroy(struct doca_flow_parser *parser)
Destroy GENEVE TLV parser.
DOCA_STABLE doca_error_t doca_flow_port_cfg_set_devargs(struct doca_flow_port_cfg *cfg, const char *devargs)
Set devargs.
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.
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.
DOCA_STABLE doca_error_t doca_flow_cfg_create(struct doca_flow_cfg **cfg)
Create DOCA Flow configuration struct.
#define DOCA_FLOW_META_SCRATCH_PAD_MAX
DOCA_STABLE uint8_t * doca_flow_port_priv_data(struct doca_flow_port *port)
Get pointer of user private data.
doca_flow_pipe_hash_map_algorithm
DOCA Flow pipe map algorithm.
DOCA_STABLE void doca_flow_port_pipes_flush(struct doca_flow_port *port)
Flush pipes of one port.
doca_flow_pipe_type
doca flow pipe type
doca_flow_parser_geneve_opt_mode
Geneve TLV option class mode.
doca_flow_l3_meta
doca flow l3 valid type for parser meta
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.
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.
DOCA_EXPERIMENTAL doca_error_t doca_flow_init(struct doca_flow_cfg *cfg)
Initialize the doca flow.
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.
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.
doca_flow_flags_type
doca flow flags type
doca_flow_meter_color_mode
Traffic meter init color mode when creating a pipe or entry: blind (fixed as green) or aware (configu...
doca_flow_action_type
action type enumeration
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.
doca_flow_rss_hash_function
rss hash function type
doca_flow_ordered_list_element_type
Type of an ordered list element.
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.
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.
DOCA_STABLE enum doca_flow_entry_status doca_flow_pipe_entry_get_status(struct doca_flow_pipe_entry *entry)
Get entry's status.
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.
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.
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.
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.
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.
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.
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.
doca_flow_target_type
doca flow target type
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.
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.
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.
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.
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.
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.
DOCA_STABLE void doca_flow_pipe_destroy(struct doca_flow_pipe *pipe)
Destroy one pipe.
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.
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.
doca_flow_push_action_type
doca flow push action type
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.
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.
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.
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.
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.
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
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.
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.
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.
#define DOCA_FLOW_VLAN_MAX
doca_flow_pipe_status
doca flow pipe status
enum __attribute__((__packed__)) doca_flow_meter_color
DOCA_EXPERIMENTAL void doca_flow_port_pipes_dump(struct doca_flow_port *port, FILE *f)
Dump pipes of one port.
DOCA_STABLE doca_error_t doca_flow_port_stop(struct doca_flow_port *port)
Stop a doca port.
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.
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.
doca_flow_compare_op
doca flow compare operation
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.
doca_flow_match_tcp_flags
doca flow match flags
doca_flow_crypto_syndrome
doca flow psp/ipsec syndrome valid values for parser meta
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.
doca_flow_resource_type
doca flow resource type
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.
doca_flow_fwd_type
forwarding action type
doca_flow_entry_status
doca flow entry status
DOCA_STABLE void doca_flow_destroy(void)
Destroy the doca flow.
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.
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.
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.
doca_flow_meter_algorithm_type
Traffic meter algorithms.
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.
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.
doca_flow_meter_limit_type
Traffic meter limit type: per bytes or per packets for all meter parameters: cir, cbs,...
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.
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.
DOCA_STABLE doca_error_t doca_flow_port_cfg_create(struct doca_flow_port_cfg **cfg)
Create DOCA Flow port configuration struct.
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.
doca_flow_l4_meta
doca flow l4 valid type for parser meta
DOCA_STABLE doca_error_t doca_flow_port_cfg_destroy(struct doca_flow_port_cfg *cfg)
Destroy DOCA Flow port configuration struct.
DOCA_STABLE doca_error_t doca_flow_cfg_set_pipe_queues(struct doca_flow_cfg *cfg, uint16_t pipe_queues)
Set pipe queues.
DOCA_STABLE struct doca_flow_port * doca_flow_port_switch_get(const struct doca_flow_port *port)
Get doca flow switch port.
doca_flow_pipe_domain
doca flow pipe domain
doca_flow_l2_meta
doca flow l2 valid type for parser meta
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
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.
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.
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.
DOCA_STABLE doca_error_t doca_flow_cfg_destroy(struct doca_flow_cfg *cfg)
Destroy DOCA Flow configuration struct.
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.
@ DOCA_FLOW_PORT_OPERATION_STATE_UNCONNECTED
@ DOCA_FLOW_PORT_OPERATION_STATE_STANDBY
@ DOCA_FLOW_PORT_OPERATION_STATE_ACTIVE
@ DOCA_FLOW_PORT_OPERATION_STATE_ACTIVE_READY_TO_SWAP
@ DOCA_FLOW_L2_VALID_HEADER_VLAN_1
@ DOCA_FLOW_L2_VALID_HEADER_VLAN_0
@ DOCA_FLOW_SHARED_RESOURCE_METER
@ DOCA_FLOW_SHARED_RESOURCE_ENCAP
@ DOCA_FLOW_SHARED_RESOURCE_COUNTER
@ DOCA_FLOW_SHARED_RESOURCE_PSP
@ DOCA_FLOW_SHARED_RESOURCE_RSS
@ DOCA_FLOW_SHARED_RESOURCE_MIRROR
@ DOCA_FLOW_SHARED_RESOURCE_IPSEC_SA
@ DOCA_FLOW_SHARED_RESOURCE_DECAP
@ DOCA_FLOW_ENTRY_OP_AGED
@ DOCA_FLOW_DIRECTION_HOST_TO_NETWORK
@ DOCA_FLOW_DIRECTION_BIDIRECTIONAL
@ DOCA_FLOW_DIRECTION_NETWORK_TO_HOST
@ DOCA_FLOW_PIPE_OP_DESTROYED
@ DOCA_FLOW_PIPE_OP_CONGESTION_REACHED
@ DOCA_FLOW_PIPE_OP_RESIZED
@ DOCA_FLOW_PIPE_HASH_MAP_ALGORITHM_FLOODING
@ DOCA_FLOW_PIPE_HASH_MAP_ALGORITHM_SELECT_ENABLED
@ DOCA_FLOW_PIPE_HASH_MAP_ALGORITHM_IDENTITY
@ DOCA_FLOW_PIPE_HASH_MAP_ALGORITHM_RANDOM
@ DOCA_FLOW_PIPE_HASH_MAP_ALGORITHM_ROUND_ROBIN
@ DOCA_FLOW_PIPE_HASH_MAP_ALGORITHM_HASH
@ DOCA_FLOW_PIPE_ORDERED_LIST
@ DOCA_FLOW_PARSER_GENEVE_OPT_MODE_FIXED
@ DOCA_FLOW_PARSER_GENEVE_OPT_MODE_IGNORE
@ DOCA_FLOW_PARSER_GENEVE_OPT_MODE_MATCHABLE
@ DOCA_FLOW_WAIT_FOR_BATCH
@ DOCA_FLOW_METER_COLOR_MODE_BLIND
@ DOCA_FLOW_METER_COLOR_MODE_AWARE
@ DOCA_FLOW_RSS_HASH_FUNCTION_SYMMETRIC_TOEPLITZ
@ DOCA_FLOW_RSS_HASH_FUNCTION_TOEPLITZ
@ DOCA_FLOW_ORDERED_LIST_ELEMENT_ACTIONS
@ DOCA_FLOW_ORDERED_LIST_ELEMENT_MONITOR
@ DOCA_FLOW_TARGET_KERNEL
@ DOCA_FLOW_PUSH_ACTION_VLAN
@ DOCA_FLOW_PIPE_STATUS_SUCCESS
@ DOCA_FLOW_PIPE_STATUS_ERROR
@ DOCA_FLOW_MATCH_TCP_FLAG_URG
@ DOCA_FLOW_MATCH_TCP_FLAG_FIN
@ DOCA_FLOW_MATCH_TCP_FLAG_ECE
@ DOCA_FLOW_MATCH_TCP_FLAG_CWR
@ DOCA_FLOW_MATCH_TCP_FLAG_RST
@ DOCA_FLOW_MATCH_TCP_FLAG_PSH
@ DOCA_FLOW_MATCH_TCP_FLAG_SYN
@ DOCA_FLOW_MATCH_TCP_FLAG_ACK
@ DOCA_FLOW_CRYPTO_SYNDROME_ICV_FAIL
@ DOCA_FLOW_CRYPTO_SYNDROME_OK
@ DOCA_FLOW_CRYPTO_SYNDROME_BAD_TRAILER
@ DOCA_FLOW_RESOURCE_TYPE_NONE
@ DOCA_FLOW_RESOURCE_TYPE_SHARED
@ DOCA_FLOW_RESOURCE_TYPE_NON_SHARED
@ DOCA_FLOW_FWD_ORDERED_LIST_PIPE
@ DOCA_FLOW_FWD_HASH_PIPE
@ DOCA_FLOW_FWD_CHANGEABLE
@ DOCA_FLOW_ENTRY_STATUS_SUCCESS
@ DOCA_FLOW_ENTRY_STATUS_IN_PROCESS
@ DOCA_FLOW_ENTRY_STATUS_ERROR
@ DOCA_FLOW_METER_ALGORITHM_TYPE_RFC4115
@ DOCA_FLOW_METER_ALGORITHM_TYPE_RFC2697
@ DOCA_FLOW_METER_ALGORITHM_TYPE_RFC2698
@ DOCA_FLOW_METER_LIMIT_TYPE_PACKETS
@ DOCA_FLOW_METER_LIMIT_TYPE_BYTES
@ DOCA_FLOW_PIPE_DOMAIN_EGRESS
@ DOCA_FLOW_PIPE_DOMAIN_SECURE_INGRESS
@ DOCA_FLOW_PIPE_DOMAIN_SECURE_EGRESS
@ DOCA_FLOW_PIPE_DOMAIN_DEFAULT
@ DOCA_FLOW_L2_META_MULTI_VLAN
@ DOCA_FLOW_L2_META_CUSTOM_VLAN
@ DOCA_FLOW_L2_META_SINGLE_VLAN
@ DOCA_FLOW_L2_META_NO_VLAN
uint16_t doca_be16_t
Declare DOCA endianity types.
const struct ip_frag_config * cfg
enum doca_flow_action_type type
struct doca_flow_desc_field dst
struct doca_flow_desc_field src
struct doca_flow_action_desc::@108::@110 field_op
struct doca_flow_action_desc * desc_array
doca flow actions information
struct doca_flow_nat64_action nat64
struct doca_flow_crypto_encap_action crypto_encap
struct doca_flow_resource_encap_cfg encap_cfg
struct doca_flow_header_format outer
enum doca_flow_resource_type encap_type
struct doca_flow_push_action push
struct doca_flow_meta meta
enum doca_flow_resource_type decap_type
struct doca_flow_crypto_action crypto
struct doca_flow_resource_decap_cfg decap_cfg
struct doca_flow_parser_meta parser_meta
doca flow crypto action information
struct doca_flow_crypto_action::@73::@75 ipsec_sa
enum doca_flow_crypto_action_type action_type
enum doca_flow_crypto_resource_type resource_type
doca flow crypto encap action information
enum doca_flow_crypto_encap_action_type action_type
enum doca_flow_crypto_encap_net_type net_type
uint8_t encap_data[DOCA_FLOW_CRYPTO_HEADER_LEN_MAX]
doca flow crypto key configuration
const char * field_string
doca flow encap data information
struct doca_flow_header_format outer
struct doca_flow_fwd::@80::@91 hash_pipe
struct doca_flow_pipe * next_pipe
struct doca_flow_pipe * pipe
struct doca_flow_fwd::@80::@88 ordered_list_pipe
struct doca_flow_target * target
enum doca_flow_pipe_hash_map_algorithm algorithm
enum doca_flow_fwd_type type
enum doca_flow_resource_type rss_type
struct doca_flow_resource_rss_cfg rss
doca flow match condition information
enum doca_flow_compare_op operation
struct doca_flow_match_condition::@68::@70 field_op
struct doca_flow_desc_field a
struct doca_flow_desc_field b
doca flow matcher information
struct doca_flow_header_format inner
struct doca_flow_parser_meta parser_meta
struct doca_flow_header_format outer
struct doca_flow_meta meta
struct doca_flow_encap_action encap
doca monitor action configuration
enum doca_flow_meter_limit_type limit_type
struct doca_flow_monitor::@101::@105 non_shared_meter
uint32_t shared_mirror_id
struct doca_flow_monitor::@101::@106 shared_meter
struct doca_flow_monitor::@103::@107 shared_counter
enum doca_flow_resource_type counter_type
enum doca_flow_meter_color meter_init_color
enum doca_flow_resource_type meter_type
uint32_t shared_counter_id
enum doca_flow_l3_type original_l3_type
struct doca_flow_monitor * monitor
struct doca_flow_action_descs * action_descs
enum doca_flow_ordered_list_element_type type
struct doca_flow_actions * actions_mask
struct doca_flow_actions * actions
Ordered list configuration.
struct doca_flow_ordered_list_element * elements
User configuration structure using to create parser for single GENEVE TLV option.
enum doca_flow_parser_geneve_opt_mode match_on_class_mode
doca_be32_t data_mask[DOCA_FLOW_GENEVE_DATA_OPTION_LEN_MAX]
doca flow push data information
struct doca_flow_push_vlan_action vlan
enum doca_flow_push_action_type type
doca flow push VLAN data information
struct doca_flow_header_eth_vlan vlan_hdr
doca flow decap resource configuration
uint16_t l2_valid_headers
struct doca_flow_header_eth eth
struct doca_flow_header_eth_vlan eth_vlan[DOCA_FLOW_VLAN_MAX]
doca flow encap resource configuration
struct doca_flow_encap_action encap
doca flow ipsec SA resource configuration
uint32_t lifetime_threshold
struct doca_flow_crypto_key_cfg key_cfg
enum doca_flow_crypto_sn_offload_type sn_offload_type
enum doca_flow_crypto_icv_len icv_len
enum doca_flow_crypto_replay_win_size win_size
doca flow meter resource configuration
struct doca_flow_resource_meter_cfg::@94::@97 rfc2698
enum doca_flow_meter_color_mode color_mode
enum doca_flow_meter_limit_type limit_type
struct doca_flow_resource_meter_cfg::@94::@96 rfc2697
enum doca_flow_meter_algorithm_type alg
struct doca_flow_resource_meter_cfg::@94::@98 rfc4115
doca flow mirror resource configuration
struct doca_flow_mirror_target * target
doca flow psp resource configuration
struct doca_flow_crypto_key_cfg key_cfg
struct doca_flow_resource_query::@115::@117 counter
struct doca_flow_resource_query::@115::@118 ipsec_sa
doca flow shared resource configuration
struct doca_flow_resource_psp_cfg psp_cfg
struct doca_flow_resource_ipsec_sa_cfg ipsec_sa_cfg
struct doca_flow_resource_rss_cfg rss_cfg
struct doca_flow_resource_meter_cfg meter_cfg
struct doca_flow_resource_encap_cfg encap_cfg
struct doca_flow_resource_mirror_cfg mirror_cfg
struct doca_flow_resource_decap_cfg decap_cfg
doca flow tunnel information