15 #ifndef __included_ssvm_eth_h__ 16 #define __included_ssvm_eth_h__ 38 #define SSVM_BUFFER_SIZE \ 39 (VLIB_BUFFER_DATA_SIZE + VLIB_BUFFER_PRE_DATA_SIZE) 40 #define SSVM_PACKET_TYPE 1 47 #define SSVM_BUFFER_NEXT_PRESENT (1<<0) 124 for (i = 0; i < n_available; i++)
125 ASSERT (elt_indices[i] < 2048);
sll srl srl sll sra u16x4 i
struct _vlib_node_registration vlib_node_registration_t
ssvm_shared_header_t * sh
struct _vnet_device_class vnet_device_class_t
vnet_device_class_t ssvm_eth_device_class
static void ssvm_unlock(ssvm_shared_header_t *h)
vlib_node_registration_t ssvm_eth_input_node
(constructor) VLIB_REGISTER_NODE (ssvm_eth_input_node)
static void ssvm_eth_validate_freelists(int need_lock)
#define vec_len(v)
Number of elements in vector (rvalue-only, NULL tolerant)
ssvm_eth_main_t ssvm_eth_main
u16 total_length_not_including_first_buffer
#define CLIB_CACHE_LINE_BYTES
static void ssvm_lock(ssvm_shared_header_t *h, u32 my_pid, u32 tag)
CLIB vectors are ubiquitous dynamically resized arrays with by user defined "headers".