FD.io VPP  v19.01.3-6-g70449b9b9
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

◆ DBG

#define DBG (   ...)

Definition at line 65 of file memif_private.h.

◆ EXPECT_FALSE

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

Definition at line 56 of file memif_private.h.

◆ EXPECT_TRUE

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

Definition at line 55 of file memif_private.h.

◆ F_ADD_SEALS

#define F_ADD_SEALS   (F_LINUX_SPECIFIC_BASE + 9)

Definition at line 252 of file memif_private.h.

◆ F_GET_SEALS

#define F_GET_SEALS   (F_LINUX_SPECIFIC_BASE + 10)

Definition at line 253 of file memif_private.h.

◆ F_LINUX_SPECIFIC_BASE

#define F_LINUX_SPECIFIC_BASE   1024

Definition at line 244 of file memif_private.h.

◆ F_SEAL_GROW

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

Definition at line 257 of file memif_private.h.

◆ F_SEAL_SEAL

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

Definition at line 255 of file memif_private.h.

◆ F_SEAL_SHRINK

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

Definition at line 256 of file memif_private.h.

◆ F_SEAL_WRITE

#define F_SEAL_WRITE   0x0008 /* prevent writes */

Definition at line 258 of file memif_private.h.

◆ MEMIF_CONNECTION_FLAG_WRITE

#define MEMIF_CONNECTION_FLAG_WRITE   (1 << 0)

Definition at line 146 of file memif_private.h.

◆ MEMIF_DEFAULT_BUFFER_SIZE

#define MEMIF_DEFAULT_BUFFER_SIZE   2048

Definition at line 44 of file memif_private.h.

◆ MEMIF_DEFAULT_LOG2_RING_SIZE

#define MEMIF_DEFAULT_LOG2_RING_SIZE   10

Definition at line 41 of file memif_private.h.

◆ MEMIF_DEFAULT_RING_SIZE

#define MEMIF_DEFAULT_RING_SIZE   1024

Definition at line 40 of file memif_private.h.

◆ MEMIF_DEFAULT_RX_QUEUES

#define MEMIF_DEFAULT_RX_QUEUES   1

Definition at line 42 of file memif_private.h.

◆ MEMIF_DEFAULT_SOCKET_DIR

#define MEMIF_DEFAULT_SOCKET_DIR   "/run/vpp"

Definition at line 38 of file memif_private.h.

◆ MEMIF_DEFAULT_SOCKET_FILENAME

#define MEMIF_DEFAULT_SOCKET_FILENAME   "memif.sock"

Definition at line 39 of file memif_private.h.

◆ MEMIF_DEFAULT_TX_QUEUES

#define MEMIF_DEFAULT_TX_QUEUES   1

Definition at line 43 of file memif_private.h.

◆ MEMIF_MAX_FDS

#define MEMIF_MAX_FDS   512

Definition at line 51 of file memif_private.h.

◆ MEMIF_MAX_LOG2_RING_SIZE

#define MEMIF_MAX_LOG2_RING_SIZE   14

Definition at line 49 of file memif_private.h.

◆ MEMIF_MAX_M2S_RING

#define MEMIF_MAX_M2S_RING   255

Definition at line 46 of file memif_private.h.

◆ MEMIF_MAX_REGION

#define MEMIF_MAX_REGION   255

Definition at line 48 of file memif_private.h.

◆ MEMIF_MAX_S2M_RING

#define MEMIF_MAX_S2M_RING   255

Definition at line 47 of file memif_private.h.

◆ memif_min

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

Definition at line 53 of file memif_private.h.

◆ MEMIF_NAME_LEN

#define MEMIF_NAME_LEN   32

Definition at line 34 of file memif_private.h.

◆ MFD_ALLOW_SEALING

#define MFD_ALLOW_SEALING   0x0002U

Definition at line 248 of file memif_private.h.

Typedef Documentation

◆ memif_connection_t

Definition at line 102 of file memif_private.h.

◆ memif_fn

typedef int() memif_fn(memif_connection_t *conn)

Definition at line 105 of file memif_private.h.

◆ memif_msg_queue_elt_t

Function Documentation

◆ add_list_elt()

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

Definition at line 319 of file main.c.

+ Here is the caller graph for this function:

◆ free_list_elt()

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

Definition at line 377 of file main.c.

+ Here is the caller graph for this function:

◆ get_list_elt()

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

Definition at line 354 of file main.c.

+ Here is the caller graph for this function:

◆ memfd_create()

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

Definition at line 229 of file memif_private.h.

◆ memif_connect1()

int memif_connect1 ( memif_connection_t c)

Definition at line 1309 of file main.c.

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

◆ memif_disconnect_internal()

int memif_disconnect_internal ( memif_connection_t c)

Definition at line 1115 of file main.c.

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

◆ memif_get_buffer()

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

Definition at line 236 of file memif_private.h.

◆ memif_init_regions_and_queues()

int memif_init_regions_and_queues ( memif_connection_t c)

Definition at line 1534 of file main.c.

+ Here is the call graph for this function:

◆ memif_syscall_error_handler()

int memif_syscall_error_handler ( int  err_code)

Definition at line 204 of file main.c.

+ Here is the caller graph for this function:

Variable Documentation

◆ libmemif_main

libmemif_main_t libmemif_main

Definition at line 68 of file main.c.

◆ memif_epfd

int memif_epfd

Definition at line 69 of file main.c.