Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
rte_swx_table.h(3)		      DPDK		      rte_swx_table.h(3)

NAME
     rte_swx_table.h

SYNOPSIS
     #include <stdint.h>
     #include <rte_os.h>
     #include 'rte_swx_hash_func.h'

   Data Structures
     struct rte_swx_table_params
     struct rte_swx_table_entry
     struct rte_swx_table_ops

   Typedefs
     typedef   uint64_t(*   rte_swx_table_footprint_get_t)  (struct  rte_swx_ta-
	 ble_params *params,  struct  rte_swx_table_entry_list	*entries,  const
	 char *args)
     typedef uint64_t(* rte_swx_table_mailbox_size_get_t) (void)
     typedef   void  *(*  rte_swx_table_create_t)  (struct  rte_swx_table_params
	 *params, struct rte_swx_table_entry_list *entries,  const  char  *args,
	 int numa_node)
     typedef int(* rte_swx_table_add_t) (void *table, struct rte_swx_table_entry
	 *entry)
     typedef  int(*  rte_swx_table_delete_t)  (void  *table,  struct rte_swx_ta-
	 ble_entry *entry)
     typedef int(* rte_swx_table_lookup_t) (void *table, void *mailbox,  uint8_t
	 **key,  uint64_t  *action_id,	uint8_t **action_data, size_t *entry_id,
	 int *hit)
     typedef void(* rte_swx_table_free_t) (void *table)

   Enumerations
     enum rte_swx_table_match_type {  RTE_SWX_TABLE_MATCH_WILDCARD,  RTE_SWX_TA-
	 BLE_MATCH_LPM, RTE_SWX_TABLE_MATCH_EXACT }

   Functions
     RTE_TAILQ_HEAD (rte_swx_table_entry_list, rte_swx_table_entry)

Detailed Description
     RTE SWX Table

     Table interface.

     Definition in file rte_swx_table.h.

Typedef Documentation
   typedef   uint64_t(*   rte_swx_table_footprint_get_t)   (struct   rte_swx_ta-
     ble_params *params, struct rte_swx_table_entry_list  *entries,  const  char
     *args)
     Table memory footprint get

     Parameters
	 params Table create parameters.
	 entries Table entries.
	 args Any additional table create arguments. It may be NULL.

     Returns
	 Table memory footprint in bytes, if successful, or zero, on error.

     Definition at line 133 of file rte_swx_table.h.

   typedef uint64_t(* rte_swx_table_mailbox_size_get_t) (void)
     Table mailbox size get

     The  mailbox  is used to store the context of a lookup operation that is in
     progress and it is passed as a parameter to the lookup operation. This  al-
     lows for multiple concurrent lookup operations into the same table.

     Returns
	 Table memory footprint in bytes, on success, or zero, on error.

     Definition at line 148 of file rte_swx_table.h.

   typedef   void   *(*   rte_swx_table_create_t)  (struct  rte_swx_table_params
     *params, struct rte_swx_table_entry_list *entries, const  char  *args,  int
     numa_node)
     Table create

     Parameters
	 params Table creation parameters.
	 entries Entries to be added to the table at creation time.
	 args Any additional table create arguments. It may be NULL.
	 numa_node Non-Uniform Memory Access (NUMA) node.

     Returns
	 Table handle, on success, or NULL, on error.

     Definition at line 165 of file rte_swx_table.h.

   typedef  int(*  rte_swx_table_add_t) (void *table, struct rte_swx_table_entry
     *entry)
     Table entry add

     Parameters
	 table Table handle.
	 entry Entry to be added to the table.

     Returns
	 0 on success or the following error codes otherwise:  -EINVAL:  Invalid
	 table handle, entry or entry field; -ENOSPC: Table full.

     Definition at line 183 of file rte_swx_table.h.

   typedef  int(* rte_swx_table_delete_t) (void *table, struct rte_swx_table_en-
     try *entry)
     Table entry delete

     Parameters
	 table Table handle.
	 entry Entry to be deleted from the table. The entry action_id	and  ac-
	 tion_data fields are ignored.

     Returns
	 0  on	success or the following error codes otherwise: -EINVAL: Invalid
	 table handle, entry or entry field; -ENOSPC: Table full.

     Definition at line 200 of file rte_swx_table.h.

   typedef int(* rte_swx_table_lookup_t) (void *table,	void  *mailbox,  uint8_t
     **key,  uint64_t  *action_id,  uint8_t **action_data, size_t *entry_id, int
     *hit)
     Table lookup

     The table lookup operation searches a given key in the table and  upon  its
     completion  it returns an indication of whether the key is found in the ta-
     ble (lookup hit) or not (lookup miss). In case of lookup hit, the action_id
     and the action_data associated with the key are also returned.

     Multiple invocations of this function may be required in order to	complete
     a	single	table lookup operation for a given table and a given lookup key.
     The completion of the table lookup operation is flagged by a  return  value
     of  1;  in  case of a return value of 0, the function must be invoked again
     with exactly the same arguments.

     The mailbox argument is used to store the	context  of  an  on-going  table
     lookup  operation. The mailbox mechanism allows for multiple concurrent ta-
     ble lookup operations into the same table.

     The typical reason an implementation may choose to split the  table  lookup
     operation into multiple steps is to hide the latency of the inherent memory
     read operations: before a read operation with the source data likely not in
     the  CPU cache, the source data prefetch is issued and the table lookup op-
     eration is postponed in favor of some other unrelated work, which	the  CPU
     executes in parallel with the source data being fetched into the CPU cache;
     later  on, the table lookup operation is resumed, this time with the source
     data likely to be read from the CPU cache with no CPU pipeline stall, which
     significantly improves the table lookup performance.

     The table entry consists of the action ID and the action data.  Each  table
     entry  is	unique, although different table entries can have identical con-
     tent, i.e. same values for the action ID and the action data. The table en-
     try ID is also returned by the table lookup operation. It can  be	used  to
     index  into  an  external array of resources such as counters, registers or
     meters to identify the resource directly associated with the current  table
     entry  with  no need to store the corresponding index into the table entry.
     The index of the external resource is thus auto-generated instead of  being
     stored in the table entry.

     Parameters
	 table Table handle.
	 mailbox Mailbox for the current table lookup operation.
	 key  Lookup  key.  Its size mult be equal to the table key_size. If the
	 latter is zero, then the lookup key must be NULL.
	 action_id ID of the action associated with the key.  Must  point  to  a
	 valid	64-bit	variable. Only valid when the function returns 1 and hit
	 is set to true.
	 action_data Action data for the action_id action. Must point to a valid
	 array of table action_data_size bytes. Only valid when the function re-
	 turns 1 and hit is set to true.
	 entry_id Table entry unique ID. Must point to a valid 32-bit  variable.
	 Only valid when the function returns 1 and hit is set to true.
	 hit  Only  valid when the function returns 1. Set to non-zero (true) on
	 table lookup hit and to zero (false) on table lookup miss.

     Returns
	 0 when the table lookup operation is not yet completed, and 1 when  the
	 table	lookup	operation  is  completed. No other return values are al-
	 lowed.

     Definition at line 265 of file rte_swx_table.h.

   typedef void(* rte_swx_table_free_t) (void *table)
     Table free

     Parameters
	 table Table handle.

     Definition at line 280 of file rte_swx_table.h.

Enumeration Type Documentation
   enum rte_swx_table_match_type
     Match type.

     Enumerator

     RTE_SWX_TABLE_MATCH_WILDCARD
	    Wildcard Match (WM).

     RTE_SWX_TABLE_MATCH_LPM
	    Longest Prefix Match (LPM).

     RTE_SWX_TABLE_MATCH_EXACT
	    Exact Match (EM).

     Definition at line 21 of file rte_swx_table.h.

Function Documentation
   RTE_TAILQ_HEAD (rte_swx_table_entry_list, rte_swx_table_entry)
     List of table entries.

Author
     Generated automatically by Doxygen for DPDK from the source code.

Version 25.11.0 		 Thu Aug 27 2026	      rte_swx_table.h(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=RTE_SWX_TABLE_MATCH_WILDCARD&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help