FD.io VPP  v21.10.1-2-g0a485f517
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, u8 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_validate_checksum (vlib_main_t *vm, vlib_buffer_t *b0, generic_header_offset_t *gho0, int is_ip4)
 
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, u8 is_l2)
 
static_always_inline u32 gro_coalesce_buffers (vlib_main_t *vm, vlib_buffer_t *b0, vlib_buffer_t *b1, u32 bi1, u8 is_l2)
 
static_always_inline void gro_fixup_header (vlib_main_t *vm, vlib_buffer_t *b0, u32 ack_number, u8 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_flush_all_packets (vlib_main_t *vm, gro_flow_table_t *flow_table, gro_flow_t *gro_flow, vlib_buffer_t *b_s, u32 *to, u32 bi_s, u32 bi0, u8 is_l2)
 
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 103 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,
u8  is_l2 
)

Definition at line 229 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,
u8  is_l2 
)

Definition at line 335 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 38 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 51 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,
u8  is_l2 
)

Definition at line 163 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 29 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,
u8  is_l2 
)

Definition at line 64 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 126 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 111 of file gro_func.h.

+ Here is the caller graph for this function:

◆ gro_validate_checksum()

static_always_inline u32 gro_validate_checksum ( vlib_main_t vm,
vlib_buffer_t b0,
generic_header_offset_t gho0,
int  is_ip4 
)

Definition at line 146 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_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 379 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 454 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 410 of file gro_func.h.

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

◆ vnet_gro_flush_all_packets()

static_always_inline u32 vnet_gro_flush_all_packets ( vlib_main_t vm,
gro_flow_table_t flow_table,
gro_flow_t gro_flow,
vlib_buffer_t b_s,
u32 to,
u32  bi_s,
u32  bi0,
u8  is_l2 
)

Definition at line 439 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 588 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 603 of file gro_func.h.

+ Here is the call graph for this function: