16 #ifndef included_gso_h 17 #define included_gso_h 55 u16 ethertype = clib_net_to_host_u16 (eh->
type);
62 ethertype = clib_net_to_host_u16 (vlan->
type);
63 l2hdr_sz +=
sizeof (*vlan);
64 if (ethertype == ETHERNET_TYPE_VLAN)
67 ethertype = clib_net_to_host_u16 (vlan->
type);
68 l2hdr_sz +=
sizeof (*vlan);
90 if (l4_proto == IP_PROTOCOL_TCP)
97 else if (l4_proto == IP_PROTOCOL_UDP)
101 l4_hdr_sz =
sizeof (*udp);
105 if (b0->
flags & (VNET_BUFFER_F_IS_IP4 | VNET_BUFFER_F_IS_IP6))
u32 flags
buffer flags: VLIB_BUFFER_FREE_LIST_INDEX_MASK: bits used to store free list index, VLIB_BUFFER_IS_TRACED: trace this buffer.
i16 current_data
signed offset in data[], pre_data[] that we are currently processing.
struct _tcp_header tcp_header_t
#define static_always_inline
vl_api_interface_index_t sw_if_index
static void * vlib_buffer_get_current(vlib_buffer_t *b)
Get pointer to current data to process.
static_always_inline int ethernet_frame_is_tagged(u16 type)
int vnet_sw_interface_gso_enable_disable(u32 sw_if_index, u8 enable)
VLIB buffer representation.
static int tcp_header_bytes(tcp_header_t *t)
static int ip4_header_bytes(const ip4_header_t *i)
static_always_inline gso_header_offset_t vnet_gso_header_offset_parser(vlib_buffer_t *b0, int is_ip6)