Condy v1.8
C++ Asynchronous System Call Layer for Linux
Loading...
Searching...
No Matches
condy::ZeroCopyRxBufferPool Class Reference

Buffer pool for zero-copy receive buffers. More...

#include <zcrx.hpp>

Public Member Functions

 ZeroCopyRxBufferPool (uint32_t if_idx, uint32_t if_rxq, uint32_t rq_entries, const ZeroCopyRxArea &area)
 Construct a new Zero Copy Rx Buffer Pool object.
 ZeroCopyRxBufferPool (Runtime &runtime, uint32_t if_idx, uint32_t if_rxq, uint32_t rq_entries, const ZeroCopyRxArea &area)
 Construct a new Zero Copy Rx Buffer Pool object.
 ZeroCopyRxBufferPool (uint32_t if_idx, uint32_t if_rxq, uint32_t rq_entries, const ZeroCopyRxDMABufArea &area)
 Construct a new Zero Copy Rx Buffer Pool object.
 ZeroCopyRxBufferPool (Runtime &runtime, uint32_t if_idx, uint32_t if_rxq, uint32_t rq_entries, const ZeroCopyRxDMABufArea &area)
 Construct a new Zero Copy Rx Buffer Pool object.

Detailed Description

Buffer pool for zero-copy receive buffers.

This buffer pool utilizes the io_uring zcrx feature to provide zero-copy receive buffers. It can be used to receive data directly into user-space buffers without copying, which can improve performance for high-throughput network applications.

Returns
std::pair<int32_t, ZeroCopyRxBuffer> When passed to async operations, the return type will be a pair of the operation result and the ZeroCopyRxBuffer.
Note
The lifetime of this pool must not exceed the running period of the associated Runtime, and the lifetime of any ZeroCopyRxBuffer obtained from this pool must not exceed the lifetime of this pool.

Definition at line 67 of file zcrx.hpp.

Constructor & Destructor Documentation

◆ ZeroCopyRxBufferPool() [1/4]

condy::ZeroCopyRxBufferPool::ZeroCopyRxBufferPool ( uint32_t if_idx,
uint32_t if_rxq,
uint32_t rq_entries,
const ZeroCopyRxArea & area )
inline

Construct a new Zero Copy Rx Buffer Pool object.

Parameters
if_idxNetwork interface index to register the buffer pool with.
if_rxqReceive queue index to register the buffer pool with.
rq_entriesNumber of receive queue entries.
areaArea for zero-copy receive buffers.

Definition at line 76 of file zcrx.hpp.

◆ ZeroCopyRxBufferPool() [2/4]

condy::ZeroCopyRxBufferPool::ZeroCopyRxBufferPool ( Runtime & runtime,
uint32_t if_idx,
uint32_t if_rxq,
uint32_t rq_entries,
const ZeroCopyRxArea & area )
inline

Construct a new Zero Copy Rx Buffer Pool object.

Parameters
runtimeThe runtime to register the buffer pool with.
if_idxNetwork interface index to register the buffer pool with.
if_rxqReceive queue index to register the buffer pool with.
rq_entriesNumber of receive queue entries.
areaArea for zero-copy receive buffers.

Definition at line 89 of file zcrx.hpp.

◆ ZeroCopyRxBufferPool() [3/4]

condy::ZeroCopyRxBufferPool::ZeroCopyRxBufferPool ( uint32_t if_idx,
uint32_t if_rxq,
uint32_t rq_entries,
const ZeroCopyRxDMABufArea & area )
inline

Construct a new Zero Copy Rx Buffer Pool object.

Parameters
if_idxNetwork interface index to register the buffer pool with.
if_rxqReceive queue index to register the buffer pool with.
rq_entriesNumber of receive queue entries.
areaArea for zero-copy receive buffers using DMA-BUF.

Definition at line 108 of file zcrx.hpp.

◆ ZeroCopyRxBufferPool() [4/4]

condy::ZeroCopyRxBufferPool::ZeroCopyRxBufferPool ( Runtime & runtime,
uint32_t if_idx,
uint32_t if_rxq,
uint32_t rq_entries,
const ZeroCopyRxDMABufArea & area )
inline

Construct a new Zero Copy Rx Buffer Pool object.

Parameters
runtimeThe runtime to register the buffer pool with.
if_idxNetwork interface index to register the buffer pool with.
if_rxqReceive queue index to register the buffer pool with.
rq_entriesNumber of receive queue entries.
areaArea for zero-copy receive buffers using DMA-BUF.

Definition at line 121 of file zcrx.hpp.


The documentation for this class was generated from the following file: