Onload User Guide (UG1586)

Document ID
Release Date
1.2 English


Advance TCP headers after sending a TCP packet. This function if good for:

  • Sending a few small packets in rapid succession
  • Sending large data chunk (>MSS) over multiple packets.

The sequence number is updated for each outgoing packet. When a packet has been sent, the application must call onload_delegated_send_tcp_update() to update packet headers with the payload length - thereby ensuring that the sequence number is correct for the next send.

This function does not update the ACK number in outgoing packets. The ACK number in successive outgoing packets is the value from the last call to the onload_delegated_send_prepare() function.

The advance function is used to send a small number of successive outgoing packets, but the application should then call onload_delegated_send_complete() to return control to Onload to maintain sequence/acknowledgment number integrity and allow Onload to remove sent data from the retransmit queue.


void onload_delegated_send_tcp_advance (
struct onload_delegated_send*,
int bytes )

Formal Parameters

struct onload_delegated_send*
See struct onload_delegated_send
Number of bytes sent.

Return Value



When sending a packet using multiple sends, the function is called to update the header data with the number of bytes after each send.

The actual data sent is not returned to Onload until the function onload_delegated_send_complete() is called.