FD.io VPP  v20.09-64-g4f7b92f0a
Vector Packet Processing
gro_func.h File Reference
+ Include dependency graph for gro_func.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Enumerations

enum  gro_packet_action_t { GRO_PACKET_ACTION_NONE = 0, GRO_PACKET_ACTION_ENQUEUE = 1, GRO_PACKET_ACTION_FLUSH = 2 }
 

Functions

static_always_inline u8 gro_is_bad_packet (vlib_buffer_t *b, u8 flags, i16 l234_sz)
 
static_always_inline void gro_get_ip4_flow_from_packet (u32 *sw_if_index, ip4_header_t *ip4, tcp_header_t *tcp, gro_flow_key_t *flow_key, int is_l2)
 
static_always_inline void gro_get_ip6_flow_from_packet (u32 *sw_if_index, ip6_header_t *ip6, tcp_header_t *tcp, gro_flow_key_t *flow_key, int is_l2)
 
static_always_inline u32 gro_is_ip4_or_ip6_packet (vlib_buffer_t *b0, int is_l2)
 
static_always_inline gro_packet_action_t gro_tcp_sequence_check (tcp_header_t *tcp0, tcp_header_t *tcp1, u32 payload_len0)
 
static_always_inline void gro_merge_buffers (vlib_main_t *vm, vlib_buffer_t *b0, vlib_buffer_t *b1, u32 bi1, u32 payload_len1, u16 l234_sz1)
 
static_always_inline u32 gro_get_packet_data (vlib_main_t *vm, vlib_buffer_t *b0, generic_header_offset_t *gho0, gro_flow_key_t *flow_key0, int is_l2)
 
static_always_inline u32 gro_coalesce_buffers (vlib_main_t *vm, vlib_buffer_t *b0, vlib_buffer_t *b1, u32 bi1, int is_l2)
 
static_always_inline void gro_fixup_header (vlib_main_t *vm, vlib_buffer_t *b0, u32 ack_number, int is_l2)
 
static_always_inline u32 vnet_gro_flow_table_flush (vlib_main_t *vm, gro_flow_table_t *flow_table, u32 *to)
 
static_always_inline void vnet_gro_flow_table_schedule_node_on_dispatcher (vlib_main_t *vm, gro_flow_table_t *flow_table)
 
static_always_inline u32 vnet_gro_flow_table_inline (vlib_main_t *vm, gro_flow_table_t *flow_table, u32 bi0, u32 *to)
 
static_always_inline u32 vnet_gro_inline (vlib_main_t *vm, gro_flow_table_t *flow_table, u32 *from, u16 n_left_from, u32 *to)
 coalesce buffers with flow tables More...
 
static_always_inline u32 vnet_gro_simple_inline (vlib_main_t *vm, u32 *from, u16 n_left_from, int is_l2)
 coalesce buffers in opportunistic way without flow tables More...
 

Enumeration Type Documentation

◆ gro_packet_action_t

Enumerator
GRO_PACKET_ACTION_NONE 
GRO_PACKET_ACTION_ENQUEUE 
GRO_PACKET_ACTION_FLUSH 

Definition at line 100 of file gro_func.h.

Function Documentation

◆ gro_coalesce_buffers()

static_always_inline u32 gro_coalesce_buffers ( vlib_main_t vm,
vlib_buffer_t b0,
vlib_buffer_t b1,
u32  bi1,
int  is_l2 
)

Definition at line 203 of file gro_func.h.

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

◆ gro_fixup_header()

static_always_inline void gro_fixup_header ( vlib_main_t vm,
vlib_buffer_t b0,
u32  ack_number,
int  is_l2 
)

Definition at line 308 of file gro_func.h.

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

◆ gro_get_ip4_flow_from_packet()

static_always_inline void gro_get_ip4_flow_from_packet ( u32 sw_if_index,
ip4_header_t ip4,
tcp_header_t tcp,
gro_flow_key_t flow_key,
int  is_l2 
)

Definition at line 35 of file gro_func.h.

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

◆ gro_get_ip6_flow_from_packet()

static_always_inline void gro_get_ip6_flow_from_packet ( u32 sw_if_index,
ip6_header_t ip6,
tcp_header_t tcp,
gro_flow_key_t flow_key,
int  is_l2 
)

Definition at line 48 of file gro_func.h.

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

◆ gro_get_packet_data()

static_always_inline u32 gro_get_packet_data ( vlib_main_t vm,
vlib_buffer_t b0,
generic_header_offset_t gho0,
gro_flow_key_t flow_key0,
int  is_l2 
)

Definition at line 143 of file gro_func.h.

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

◆ gro_is_bad_packet()

static_always_inline u8 gro_is_bad_packet ( vlib_buffer_t b,
u8  flags,
i16  l234_sz 
)

Definition at line 27 of file gro_func.h.

+ Here is the caller graph for this function:

◆ gro_is_ip4_or_ip6_packet()

static_always_inline u32 gro_is_ip4_or_ip6_packet ( vlib_buffer_t b0,
int  is_l2 
)

Definition at line 61 of file gro_func.h.

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

◆ gro_merge_buffers()

static_always_inline void gro_merge_buffers ( vlib_main_t vm,
vlib_buffer_t b0,
vlib_buffer_t b1,
u32  bi1,
u32  payload_len1,
u16  l234_sz1 
)

Definition at line 123 of file gro_func.h.

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

◆ gro_tcp_sequence_check()

static_always_inline gro_packet_action_t gro_tcp_sequence_check ( tcp_header_t tcp0,
tcp_header_t tcp1,
u32  payload_len0 
)

Definition at line 108 of file gro_func.h.

+ Here is the caller graph for this function:

◆ vnet_gro_flow_table_flush()

static_always_inline u32 vnet_gro_flow_table_flush ( vlib_main_t vm,
gro_flow_table_t flow_table,
u32 to 
)

Definition at line 354 of file gro_func.h.

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

◆ vnet_gro_flow_table_inline()

static_always_inline u32 vnet_gro_flow_table_inline ( vlib_main_t vm,
gro_flow_table_t flow_table,
u32  bi0,
u32 to 
)

Definition at line 414 of file gro_func.h.

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

◆ vnet_gro_flow_table_schedule_node_on_dispatcher()

static_always_inline void vnet_gro_flow_table_schedule_node_on_dispatcher ( vlib_main_t vm,
gro_flow_table_t flow_table 
)

Definition at line 385 of file gro_func.h.

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

◆ vnet_gro_inline()

static_always_inline u32 vnet_gro_inline ( vlib_main_t vm,
gro_flow_table_t flow_table,
u32 from,
u16  n_left_from,
u32 to 
)

coalesce buffers with flow tables

Definition at line 534 of file gro_func.h.

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

◆ vnet_gro_simple_inline()

static_always_inline u32 vnet_gro_simple_inline ( vlib_main_t vm,
u32 from,
u16  n_left_from,
int  is_l2 
)

coalesce buffers in opportunistic way without flow tables

Definition at line 549 of file gro_func.h.

+ Here is the call graph for this function: