19#include <netinet/in.h>
20#include <sys/socket.h>
26#define SO_XLIO_GET_API 2800
27#define SO_XLIO_RING_ALLOC_LOGIC 2810
28#define SO_XLIO_SHUTDOWN_RX 2821
41#define SO_XLIO_EXT_VLAN_TAG 2824
45 uint32_t max_burst_sz;
46 uint16_t typical_pkt_sz;
50 RING_LOGIC_PER_INTERFACE = 0,
51 RING_LOGIC_PER_IP = 1,
52 RING_LOGIC_PER_SOCKET = 10,
53 RING_LOGIC_PER_USER_ID = 11,
54 RING_LOGIC_PER_THREAD = 20,
55 RING_LOGIC_PER_CORE = 30,
56 RING_LOGIC_PER_CORE_ATTACH_THREADS = 31,
57 RING_LOGIC_PER_OBJECT = 32,
62 XLIO_RING_ALLOC_MASK_RING_USER_ID = (1 << 0),
63 XLIO_RING_ALLOC_MASK_RING_INGRESS = (1 << 1),
64 XLIO_RING_ALLOC_MASK_RING_ENGRESS = (1 << 2),
65} xlio_ring_alloc_logic_attr_comp_mask;
83 ring_logic_t ring_alloc_logic;
87 uint32_t reserved : 30;
237 uintptr_t userdata_op);
279 uintptr_t parent_userdata_sq);
313 void *(*memory_alloc)(size_t);
314 void (*memory_free)(
void *);
325#define XLIO_GROUP_FLAG_SAFE 0x1
327#define XLIO_GROUP_FLAG_DIRTY 0x2
391 uintptr_t userdata_sq;
402#define XLIO_SOCKET_SEND_FLAG_FLUSH 0x1
404#define XLIO_SOCKET_SEND_FLAG_INLINE 0x2
429 uintptr_t userdata_op;
void(* xlio_socket_event_cb_t)(xlio_socket_t sock, uintptr_t userdata_sq, int event, int value)
Socket event callback function.
Definition xlio_types.h:212
void(* xlio_memory_cb_t)(void *addr, size_t len, size_t hugepage_size)
Memory allocation callback function.
Definition xlio_types.h:171
void(* xlio_socket_accept_cb_t)(xlio_socket_t sock, xlio_socket_t parent, uintptr_t parent_userdata_sq)
Accept callback function.
Definition xlio_types.h:278
void(* xlio_socket_rx_cb_t)(xlio_socket_t sock, uintptr_t userdata_sq, void *data, size_t len, struct xlio_buf *buf)
Receive data callback function.
Definition xlio_types.h:258
void(* xlio_socket_comp_cb_t)(xlio_socket_t sock, uintptr_t userdata_sq, uintptr_t userdata_op)
Zero-copy completion callback function.
Definition xlio_types.h:236
@ XLIO_SOCKET_EVENT_ESTABLISHED
Definition xlio_types.h:176
@ XLIO_SOCKET_EVENT_ERROR
Definition xlio_types.h:182
@ XLIO_SOCKET_EVENT_CLOSED
Definition xlio_types.h:180
@ XLIO_SOCKET_EVENT_TERMINATED
Definition xlio_types.h:178
uintptr_t xlio_poll_group_t
Polling group handle.
Definition xlio_types.h:101
uintptr_t xlio_socket_t
Socket handle.
Definition xlio_types.h:109
Buffer descriptor.
Definition xlio_types.h:135
XLIO initialization attributes.
Definition xlio_types.h:308
Polling group attributes.
Definition xlio_types.h:351
Definition xlio_types.h:43
Definition xlio_types.h:81
Socket creation attributes.
Definition xlio_types.h:387
Send operation attributes.
Definition xlio_types.h:426