FD.io VPP
v19.04-6-g6f05f72
Vector Packet Processing
|
Go to the source code of this file.
Data Structures | |
struct | memif_conn_args_t |
Memif connection arguments. More... | |
struct | memif_buffer_t |
Memif buffer. More... | |
struct | memif_queue_details_t |
Memif queue details. More... | |
struct | memif_region_details_t |
Memif region details. More... | |
struct | memif_details_t |
Memif details. More... | |
Macros | |
#define | LIBMEMIF_VERSION "2.1" |
Libmemif version. More... | |
#define | MEMIF_DEFAULT_APP_NAME "libmemif-app" |
Default name of application using libmemif. More... | |
#define | MEMIF_FD_EVENT_READ (1 << 0) |
user needs to set events that occured on fd and pass them to memif_control_fd_handler More... | |
#define | MEMIF_FD_EVENT_WRITE (1 << 1) |
#define | MEMIF_FD_EVENT_ERROR (1 << 2) |
inform libmemif that error occured on fd More... | |
#define | MEMIF_FD_EVENT_DEL (1 << 3) |
if set, informs that fd is going to be closed (user may want to stop watching for events on this fd) More... | |
#define | MEMIF_FD_EVENT_MOD (1 << 4) |
update events More... | |
#define | MEMIF_BUFFER_FLAG_NEXT (1 << 0) |
next buffer present (chained buffers) More... | |
#define | MEMIF_BUFFER_FLAG_RX (1 << 1) |
states that buffer is from rx ring More... | |
#define | MEMIF_QUEUE_FLAG_POLLING 1 |
if set queue is in polling mode, else in interrupt mode More... | |
#define | MEMIF_HAVE_CANCEL_POLL_EVENT 1 |
Send signal to stop concurrently running memif_poll_event(). More... | |
Typedefs | |
typedef void * | memif_conn_handle_t |
Memif connection handle pointer of type void, pointing to internal structure. More... | |
typedef void *( | memif_alloc_t) (size_t size) |
Memif allocator alloc. More... | |
typedef void *( | memif_realloc_t) (void *ptr, size_t size) |
Memif realloc. More... | |
typedef void( | memif_free_t) (void *ptr) |
Memif allocator free. More... | |
typedef int( | memif_control_fd_update_t) (int fd, uint8_t events) |
Memif control file descriptor update (callback function) More... | |
typedef int( | memif_connection_update_t) (memif_conn_handle_t conn, void *private_ctx) |
Memif connection status update (callback function) More... | |
typedef int( | memif_interrupt_t) (memif_conn_handle_t conn, void *private_ctx, uint16_t qid) |
Memif interrupt occured (callback function) More... | |
typedef uint32_t( | memif_get_external_buffer_offset_t) (void *private_ctx) |
Get external buffer offset (optional) More... | |
typedef int( | memif_add_external_region_t) (void **addr, uint32_t size, int *fd, void *private_ctx) |
Add external region. More... | |
typedef void *( | memif_get_external_region_addr_t) (uint32_t size, int fd, void *private_ctx) |
Get external region address. More... | |
typedef int( | memif_del_external_region_t) (void *addr, uint32_t size, int fd, void *private_ctx) |
Delete external region. More... | |
Functions | |
void | memif_register_external_region (memif_add_external_region_t *ar, memif_get_external_region_addr_t *gr, memif_del_external_region_t *dr, memif_get_external_buffer_offset_t *go) |
Register external region. More... | |
uint16_t | memif_get_version () |
Memif get version. More... | |
int | memif_get_queue_efd (memif_conn_handle_t conn, uint16_t qid, int *fd) |
Memif get queue event file descriptor More... | |
int | memif_set_rx_mode (memif_conn_handle_t conn, memif_rx_mode_t rx_mode, uint16_t qid) |
Memif set rx mode. More... | |
char * | memif_strerror (int err_code) |
Memif strerror. More... | |
int | memif_get_details (memif_conn_handle_t conn, memif_details_t *md, char *buf, ssize_t buflen) |
Memif get details. More... | |
int | memif_init (memif_control_fd_update_t *on_control_fd_update, char *app_name, memif_alloc_t *memif_alloc, memif_realloc_t *memif_realloc, memif_free_t *memif_free) |
Memif initialization. More... | |
int | memif_cleanup () |
Memif cleanup. More... | |
int | memif_create (memif_conn_handle_t *conn, memif_conn_args_t *args, memif_connection_update_t *on_connect, memif_connection_update_t *on_disconnect, memif_interrupt_t *on_interrupt, void *private_ctx) |
Memory interface create function. More... | |
int | memif_control_fd_handler (int fd, uint8_t events) |
Memif control file descriptor handler. More... | |
int | memif_delete (memif_conn_handle_t *conn) |
Memif delete. More... | |
int | memif_buffer_enq_tx (memif_conn_handle_t conn, uint16_t qid, memif_buffer_t *bufs, uint16_t count, uint16_t *count_out) |
Memif buffer enq tx. More... | |
int | memif_buffer_alloc (memif_conn_handle_t conn, uint16_t qid, memif_buffer_t *bufs, uint16_t count, uint16_t *count_out, uint16_t size) |
Memif buffer alloc. More... | |
int | memif_refill_queue (memif_conn_handle_t conn, uint16_t qid, uint16_t count, uint16_t headroom) |
Memif refill ring. More... | |
int | memif_tx_burst (memif_conn_handle_t conn, uint16_t qid, memif_buffer_t *bufs, uint16_t count, uint16_t *tx) |
Memif transmit buffer burst. More... | |
int | memif_rx_burst (memif_conn_handle_t conn, uint16_t qid, memif_buffer_t *bufs, uint16_t count, uint16_t *rx) |
Memif receive buffer burst. More... | |
int | memif_poll_event (int timeout) |
Memif poll event. More... | |
int | memif_cancel_poll_event () |
int | memif_set_connection_request_timer (struct itimerspec timer) |
Set connection request timer value. More... | |
int | memif_request_connection (memif_conn_handle_t conn) |
Send connection request. More... | |
#define LIBMEMIF_VERSION "2.1" |
Libmemif version.
Definition at line 26 of file libmemif.h.
#define MEMIF_BUFFER_FLAG_NEXT (1 << 0) |
next buffer present (chained buffers)
Definition at line 290 of file libmemif.h.
#define MEMIF_BUFFER_FLAG_RX (1 << 1) |
states that buffer is from rx ring
Definition at line 292 of file libmemif.h.
#define MEMIF_DEFAULT_APP_NAME "libmemif-app" |
Default name of application using libmemif.
Definition at line 28 of file libmemif.h.
#define MEMIF_QUEUE_FLAG_POLLING 1 |
if set queue is in polling mode, else in interrupt mode
Definition at line 320 of file libmemif.h.
typedef void*( memif_alloc_t) (size_t size) |
Memif allocator alloc.
size | - requested allocation size |
custom memory allocator: alloc function template
Definition at line 109 of file libmemif.h.
typedef void* memif_conn_handle_t |
Memif connection handle pointer of type void, pointing to internal structure.
Definition at line 102 of file libmemif.h.
typedef void( memif_free_t) (void *ptr) |
Memif allocator free.
size | - requested allocation size |
custom memory allocator: free function template
Definition at line 125 of file libmemif.h.
typedef void*( memif_realloc_t) (void *ptr, size_t size) |
Memif realloc.
ptr | - pointer to memory block |
size | - requested allocation size |
custom memory reallocation
Definition at line 118 of file libmemif.h.
enum memif_err_t |
Error codes
Enumerator | |
---|---|
MEMIF_ERR_SUCCESS |
success |
MEMIF_ERR_SYSCALL |
other syscall error |
MEMIF_ERR_CONNREFUSED |
connection refused |
MEMIF_ERR_ACCES |
permission denied |
MEMIF_ERR_NO_FILE |
file does not exist |
MEMIF_ERR_FILE_LIMIT |
system open file limit |
MEMIF_ERR_PROC_FILE_LIMIT |
process open file limit |
MEMIF_ERR_ALREADY |
connection already requested |
MEMIF_ERR_AGAIN |
fd is not socket, or operation would block |
MEMIF_ERR_BAD_FD |
invalid fd |
MEMIF_ERR_NOMEM |
out of memory |
MEMIF_ERR_INVAL_ARG |
invalid argument |
MEMIF_ERR_NOCONN |
handle points to no connection |
MEMIF_ERR_CONN |
handle points to existing connection |
MEMIF_ERR_CB_FDUPDATE |
user defined callback memif_control_fd_update_t error |
MEMIF_ERR_FILE_NOT_SOCK |
file specified by socket filename exists, but it's not socket |
MEMIF_ERR_NO_SHMFD |
missing shm fd |
MEMIF_ERR_COOKIE |
wrong cookie on ring |
MEMIF_ERR_NOBUF_RING |
ring buffer full |
MEMIF_ERR_NOBUF |
not enough memif buffers |
MEMIF_ERR_NOBUF_DET |
memif details needs larger buffer |
MEMIF_ERR_INT_WRITE |
send interrupt error |
MEMIF_ERR_MFMSG |
malformed msg received |
MEMIF_ERR_QID |
invalid queue id |
MEMIF_ERR_PROTO |
incompatible protocol version |
MEMIF_ERR_ID |
unmatched interface id |
MEMIF_ERR_ACCSLAVE |
slave cannot accept connection requests |
MEMIF_ERR_ALRCONN |
memif is already connected |
MEMIF_ERR_MODE |
mode mismatch |
MEMIF_ERR_SECRET |
secret mismatch |
MEMIF_ERR_NOSECRET |
secret required |
MEMIF_ERR_MAXREG |
max region limit reached |
MEMIF_ERR_MAXRING |
max ring limit reached |
MEMIF_ERR_NO_INTFD |
missing interrupt fd |
MEMIF_ERR_DISCONNECT |
disconenct received |
MEMIF_ERR_DISCONNECTED |
peer interface disconnected |
MEMIF_ERR_UNKNOWN_MSG |
unknown message type |
MEMIF_ERR_POLL_CANCEL |
memif_poll_event() was cancelled |
MEMIF_ERR_MAX_RING |
too large ring size |
MEMIF_ERR_PRIVHDR |
private hdrs not supported |
Definition at line 34 of file libmemif.h.