Each packet buffer is allocated to exactly one Onload stack and is used to receive, transmit or queue network data. Packet buffers are used by Onload in the following ways:
- Receive descriptor rings. By default the RX descriptor ring will hold 512 packet buffers at all times. This value is configurable using the EF_RXQ_SIZE (per stack) variable.
- Transmit descriptor rings. By default the TX descriptor ring will hold up to 512 packet buffers. This value is configurable using the EF_TXQ_SIZE (per stack) variable.
- To queue data held in socket receive and send buffers.
- TCP sockets can also hold packet buffers in the socket’s retransmit queue and in the reorder queue.
- User-level pipes also consume packet buffer resources.