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
29 #define SO_XLIO_EXT_VLAN_TAG 2824
33 uint32_t max_burst_sz;
34 uint16_t typical_pkt_sz;
38 RING_LOGIC_PER_INTERFACE = 0,
39 RING_LOGIC_PER_IP = 1,
40 RING_LOGIC_PER_SOCKET = 10,
41 RING_LOGIC_PER_USER_ID = 11,
42 RING_LOGIC_PER_THREAD = 20,
43 RING_LOGIC_PER_CORE = 30,
44 RING_LOGIC_PER_CORE_ATTACH_THREADS = 31,
45 RING_LOGIC_PER_OBJECT = 32,
50 XLIO_RING_ALLOC_MASK_RING_USER_ID = (1 << 0),
51 XLIO_RING_ALLOC_MASK_RING_INGRESS = (1 << 1),
52 XLIO_RING_ALLOC_MASK_RING_ENGRESS = (1 << 2),
53 } xlio_ring_alloc_logic_attr_comp_mask;
71 ring_logic_t ring_alloc_logic;
75 uint32_t reserved : 30;
225 uintptr_t userdata_op);
267 uintptr_t parent_userdata_sq);
301 void *(*memory_alloc)(size_t);
302 void (*memory_free)(
void *);
313 #define XLIO_GROUP_FLAG_SAFE 0x1
315 #define XLIO_GROUP_FLAG_DIRTY 0x2
379 uintptr_t userdata_sq;
390 #define XLIO_SOCKET_SEND_FLAG_FLUSH 0x1
392 #define XLIO_SOCKET_SEND_FLAG_INLINE 0x2
417 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:200
void(* xlio_memory_cb_t)(void *addr, size_t len, size_t hugepage_size)
Memory allocation callback function.
Definition: xlio_types.h:159
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:266
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:246
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:224
@ XLIO_SOCKET_EVENT_ESTABLISHED
Definition: xlio_types.h:164
@ XLIO_SOCKET_EVENT_ERROR
Definition: xlio_types.h:170
@ XLIO_SOCKET_EVENT_CLOSED
Definition: xlio_types.h:168
@ XLIO_SOCKET_EVENT_TERMINATED
Definition: xlio_types.h:166
uintptr_t xlio_poll_group_t
Polling group handle.
Definition: xlio_types.h:89
uintptr_t xlio_socket_t
Socket handle.
Definition: xlio_types.h:97
Buffer descriptor.
Definition: xlio_types.h:123
XLIO initialization attributes.
Definition: xlio_types.h:296
Polling group attributes.
Definition: xlio_types.h:339
Definition: xlio_types.h:31
Definition: xlio_types.h:69
Socket creation attributes.
Definition: xlio_types.h:375
Send operation attributes.
Definition: xlio_types.h:414