FD.io VPP  v18.04-17-g3a0d853
Vector Packet Processing
memif_private.h File Reference
+ Include dependency graph for memif_private.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  memif_region_t
 
struct  memif_queue_t
 
struct  memif_msg_queue_elt
 
struct  memif_conn_run_args_t
 
struct  memif_connection
 
struct  memif_list_elt_t
 
struct  memif_socket_t
 
struct  libmemif_main_t
 

Macros

#define MEMIF_NAME_LEN   32
 
#define MEMIF_DEFAULT_SOCKET_DIR   "/run/vpp"
 
#define MEMIF_DEFAULT_SOCKET_FILENAME   "memif.sock"
 
#define MEMIF_DEFAULT_RING_SIZE   1024
 
#define MEMIF_DEFAULT_LOG2_RING_SIZE   10
 
#define MEMIF_DEFAULT_RX_QUEUES   1
 
#define MEMIF_DEFAULT_TX_QUEUES   1
 
#define MEMIF_DEFAULT_BUFFER_SIZE   2048
 
#define MEMIF_MAX_M2S_RING   255
 
#define MEMIF_MAX_S2M_RING   255
 
#define MEMIF_MAX_REGION   255
 
#define MEMIF_MAX_LOG2_RING_SIZE   14
 
#define MEMIF_MAX_FDS   512
 
#define memif_min(a, b)   (((a) < (b)) ? (a) : (b))
 
#define EXPECT_TRUE(x)   __builtin_expect((x),1)
 
#define EXPECT_FALSE(x)   __builtin_expect((x),0)
 
#define DBG(...)
 
#define MEMIF_CONNECTION_FLAG_WRITE   (1 << 0)
 
#define F_LINUX_SPECIFIC_BASE   1024
 
#define MFD_ALLOW_SEALING   0x0002U
 
#define F_ADD_SEALS   (F_LINUX_SPECIFIC_BASE + 9)
 
#define F_GET_SEALS   (F_LINUX_SPECIFIC_BASE + 10)
 
#define F_SEAL_SEAL   0x0001 /* prevent further seals from being set */
 
#define F_SEAL_SHRINK   0x0002 /* prevent file from shrinking */
 
#define F_SEAL_GROW   0x0004 /* prevent file from growing */
 
#define F_SEAL_WRITE   0x0008 /* prevent writes */
 

Typedefs

typedef struct memif_msg_queue_elt memif_msg_queue_elt_t
 
typedef struct memif_connection memif_connection_t
 
typedef int( memif_fn) (memif_connection_t *conn)
 

Functions

int memif_connect1 (memif_connection_t *c)
 
int memif_init_regions_and_queues (memif_connection_t *c)
 
int memif_disconnect_internal (memif_connection_t *c)
 
int memif_syscall_error_handler (int err_code)
 
int add_list_elt (memif_list_elt_t *e, memif_list_elt_t **list, uint16_t *len)
 
int get_list_elt (memif_list_elt_t **e, memif_list_elt_t *list, uint16_t len, int key)
 
int free_list_elt (memif_list_elt_t *list, uint16_t len, int key)
 
static int memfd_create (const char *name, unsigned int flags)
 
static void * memif_get_buffer (memif_connection_t *conn, memif_ring_t *ring, uint16_t index)
 

Variables

libmemif_main_t libmemif_main
 
int memif_epfd
 

Macro Definition Documentation

#define DBG (   ...)

Definition at line 65 of file memif_private.h.

#define EXPECT_FALSE (   x)    __builtin_expect((x),0)

Definition at line 56 of file memif_private.h.

#define EXPECT_TRUE (   x)    __builtin_expect((x),1)

Definition at line 55 of file memif_private.h.

#define F_ADD_SEALS   (F_LINUX_SPECIFIC_BASE + 9)

Definition at line 242 of file memif_private.h.

#define F_GET_SEALS   (F_LINUX_SPECIFIC_BASE + 10)

Definition at line 243 of file memif_private.h.

#define F_LINUX_SPECIFIC_BASE   1024

Definition at line 234 of file memif_private.h.

#define F_SEAL_GROW   0x0004 /* prevent file from growing */

Definition at line 247 of file memif_private.h.

#define F_SEAL_SEAL   0x0001 /* prevent further seals from being set */

Definition at line 245 of file memif_private.h.

#define F_SEAL_SHRINK   0x0002 /* prevent file from shrinking */

Definition at line 246 of file memif_private.h.

#define F_SEAL_WRITE   0x0008 /* prevent writes */

Definition at line 248 of file memif_private.h.

#define MEMIF_CONNECTION_FLAG_WRITE   (1 << 0)

Definition at line 142 of file memif_private.h.

#define MEMIF_DEFAULT_BUFFER_SIZE   2048

Definition at line 44 of file memif_private.h.

#define MEMIF_DEFAULT_LOG2_RING_SIZE   10

Definition at line 41 of file memif_private.h.

#define MEMIF_DEFAULT_RING_SIZE   1024

Definition at line 40 of file memif_private.h.

#define MEMIF_DEFAULT_RX_QUEUES   1

Definition at line 42 of file memif_private.h.

#define MEMIF_DEFAULT_SOCKET_DIR   "/run/vpp"

Definition at line 38 of file memif_private.h.

#define MEMIF_DEFAULT_SOCKET_FILENAME   "memif.sock"

Definition at line 39 of file memif_private.h.

#define MEMIF_DEFAULT_TX_QUEUES   1

Definition at line 43 of file memif_private.h.

#define MEMIF_MAX_FDS   512

Definition at line 51 of file memif_private.h.

#define MEMIF_MAX_LOG2_RING_SIZE   14

Definition at line 49 of file memif_private.h.

#define MEMIF_MAX_M2S_RING   255

Definition at line 46 of file memif_private.h.

#define MEMIF_MAX_REGION   255

Definition at line 48 of file memif_private.h.

#define MEMIF_MAX_S2M_RING   255

Definition at line 47 of file memif_private.h.

#define memif_min (   a,
 
)    (((a) < (b)) ? (a) : (b))

Definition at line 53 of file memif_private.h.

#define MEMIF_NAME_LEN   32

Definition at line 34 of file memif_private.h.

#define MFD_ALLOW_SEALING   0x0002U

Definition at line 238 of file memif_private.h.

Typedef Documentation

Definition at line 101 of file memif_private.h.

typedef int( memif_fn) (memif_connection_t *conn)

Definition at line 104 of file memif_private.h.

Function Documentation

int add_list_elt ( memif_list_elt_t e,
memif_list_elt_t **  list,
uint16_t *  len 
)

Definition at line 311 of file main.c.

+ Here is the caller graph for this function:

int free_list_elt ( memif_list_elt_t list,
uint16_t  len,
int  key 
)

Definition at line 369 of file main.c.

+ Here is the caller graph for this function:

int get_list_elt ( memif_list_elt_t **  e,
memif_list_elt_t list,
uint16_t  len,
int  key 
)

Definition at line 346 of file main.c.

+ Here is the caller graph for this function:

static int memfd_create ( const char *  name,
unsigned int  flags 
)
inlinestatic

Definition at line 219 of file memif_private.h.

int memif_connect1 ( memif_connection_t c)

Definition at line 1258 of file main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int memif_disconnect_internal ( memif_connection_t c)

Definition at line 1076 of file main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void* memif_get_buffer ( memif_connection_t conn,
memif_ring_t ring,
uint16_t  index 
)
inlinestatic

Definition at line 226 of file memif_private.h.

int memif_init_regions_and_queues ( memif_connection_t c)

Definition at line 1324 of file main.c.

+ Here is the call graph for this function:

int memif_syscall_error_handler ( int  err_code)

Definition at line 200 of file main.c.

+ Here is the caller graph for this function:

Variable Documentation

libmemif_main_t libmemif_main

Definition at line 66 of file main.c.

int memif_epfd

Definition at line 67 of file main.c.