FD.io VPP  v21.10.1-2-g0a485f517
Vector Packet Processing
gro.h File Reference
+ Include dependency graph for gro.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

union  gro_flow_key_t
 
struct  gro_flow_t
 
struct  gro_flow_table_t
 

Macros

#define GRO_FLOW_TABLE_MAX_SIZE   16
 
#define GRO_FLOW_TABLE_FLUSH   1e-5
 
#define GRO_FLOW_N_BUFFERS   64
 
#define GRO_FLOW_TIMEOUT   1e-5 /* 10 micro-seconds */
 
#define GRO_TO_VECTOR_SIZE(X)   (X + GRO_FLOW_TABLE_MAX_SIZE)
 

Functions

static_always_inline void gro_flow_set_flow_key (gro_flow_t *to, gro_flow_key_t *from)
 
static_always_inline u8 gro_flow_is_equal (gro_flow_key_t *first, gro_flow_key_t *second)
 
static_always_inline void gro_flow_set_timeout (vlib_main_t *vm, gro_flow_t *gro_flow, f64 timeout_expire)
 timeout_expire is in between 3 to 10 microseconds 3e-6 1e-5 More...
 
static_always_inline u8 gro_flow_is_timeout (vlib_main_t *vm, gro_flow_t *gro_flow)
 
static_always_inline void gro_flow_store_packet (gro_flow_t *gro_flow, u32 bi0)
 
static_always_inline u32 gro_flow_table_init (gro_flow_table_t **flow_table, u8 is_l2, u32 node_index)
 
static_always_inline void gro_flow_table_set_timeout (vlib_main_t *vm, gro_flow_table_t *flow_table, f64 timeout_expire)
 
static_always_inline u8 gro_flow_table_is_timeout (vlib_main_t *vm, gro_flow_table_t *flow_table)
 
static_always_inline u8 gro_flow_table_is_enable (gro_flow_table_t *flow_table)
 
static_always_inline void gro_flow_table_set_is_enable (gro_flow_table_t *flow_table, u8 is_enable)
 
static_always_inline void gro_flow_table_free (gro_flow_table_t *flow_table)
 
static_always_inline void gro_flow_table_set_node_index (gro_flow_table_t *flow_table, u32 node_index)
 
static_always_inline gro_flow_tgro_flow_table_new_flow (gro_flow_table_t *flow_table)
 
static_always_inline gro_flow_tgro_flow_table_get_flow (gro_flow_table_t *flow_table, gro_flow_key_t *flow_key)
 
static_always_inline gro_flow_tgro_flow_table_find_or_add_flow (gro_flow_table_t *flow_table, gro_flow_key_t *flow_key)
 
static_always_inline void gro_flow_table_reset_flow (gro_flow_table_t *flow_table, gro_flow_t *gro_flow)
 
static_always_inline u8gro_flow_table_format (u8 *s, va_list *args)
 

Macro Definition Documentation

◆ GRO_FLOW_N_BUFFERS

#define GRO_FLOW_N_BUFFERS   64

Definition at line 25 of file gro.h.

◆ GRO_FLOW_TABLE_FLUSH

#define GRO_FLOW_TABLE_FLUSH   1e-5

Definition at line 24 of file gro.h.

◆ GRO_FLOW_TABLE_MAX_SIZE

#define GRO_FLOW_TABLE_MAX_SIZE   16

Definition at line 23 of file gro.h.

◆ GRO_FLOW_TIMEOUT

#define GRO_FLOW_TIMEOUT   1e-5 /* 10 micro-seconds */

Definition at line 26 of file gro.h.

◆ GRO_TO_VECTOR_SIZE

#define GRO_TO_VECTOR_SIZE (   X)    (X + GRO_FLOW_TABLE_MAX_SIZE)

Definition at line 27 of file gro.h.

Function Documentation

◆ gro_flow_is_equal()

static_always_inline u8 gro_flow_is_equal ( gro_flow_key_t first,
gro_flow_key_t second 
)

Definition at line 77 of file gro.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gro_flow_is_timeout()

static_always_inline u8 gro_flow_is_timeout ( vlib_main_t vm,
gro_flow_t gro_flow 
)

Definition at line 102 of file gro.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gro_flow_set_flow_key()

static_always_inline void gro_flow_set_flow_key ( gro_flow_t to,
gro_flow_key_t from 
)

Definition at line 66 of file gro.h.

+ Here is the caller graph for this function:

◆ gro_flow_set_timeout()

static_always_inline void gro_flow_set_timeout ( vlib_main_t vm,
gro_flow_t gro_flow,
f64  timeout_expire 
)

timeout_expire is in between 3 to 10 microseconds 3e-6 1e-5

Definition at line 95 of file gro.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gro_flow_store_packet()

static_always_inline void gro_flow_store_packet ( gro_flow_t gro_flow,
u32  bi0 
)

Definition at line 110 of file gro.h.

+ Here is the caller graph for this function:

◆ gro_flow_table_find_or_add_flow()

static_always_inline gro_flow_t* gro_flow_table_find_or_add_flow ( gro_flow_table_t flow_table,
gro_flow_key_t flow_key 
)

Definition at line 223 of file gro.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gro_flow_table_format()

static_always_inline u8* gro_flow_table_format ( u8 s,
va_list *  args 
)

Definition at line 255 of file gro.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gro_flow_table_free()

static_always_inline void gro_flow_table_free ( gro_flow_table_t flow_table)

Definition at line 171 of file gro.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gro_flow_table_get_flow()

static_always_inline gro_flow_t* gro_flow_table_get_flow ( gro_flow_table_t flow_table,
gro_flow_key_t flow_key 
)

Definition at line 207 of file gro.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gro_flow_table_init()

static_always_inline u32 gro_flow_table_init ( gro_flow_table_t **  flow_table,
u8  is_l2,
u32  node_index 
)

Definition at line 120 of file gro.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gro_flow_table_is_enable()

static_always_inline u8 gro_flow_table_is_enable ( gro_flow_table_t flow_table)

Definition at line 155 of file gro.h.

+ Here is the caller graph for this function:

◆ gro_flow_table_is_timeout()

static_always_inline u8 gro_flow_table_is_timeout ( vlib_main_t vm,
gro_flow_table_t flow_table 
)

Definition at line 147 of file gro.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gro_flow_table_new_flow()

static_always_inline gro_flow_t* gro_flow_table_new_flow ( gro_flow_table_t flow_table)

Definition at line 185 of file gro.h.

+ Here is the caller graph for this function:

◆ gro_flow_table_reset_flow()

static_always_inline void gro_flow_table_reset_flow ( gro_flow_table_t flow_table,
gro_flow_t gro_flow 
)

Definition at line 244 of file gro.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gro_flow_table_set_is_enable()

static_always_inline void gro_flow_table_set_is_enable ( gro_flow_table_t flow_table,
u8  is_enable 
)

Definition at line 164 of file gro.h.

◆ gro_flow_table_set_node_index()

static_always_inline void gro_flow_table_set_node_index ( gro_flow_table_t flow_table,
u32  node_index 
)

Definition at line 178 of file gro.h.

◆ gro_flow_table_set_timeout()

static_always_inline void gro_flow_table_set_timeout ( vlib_main_t vm,
gro_flow_table_t flow_table,
f64  timeout_expire 
)

Definition at line 139 of file gro.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function: