EF_TCP_COMBINE_SENDS_MODE

Onload User Guide (UG1586)

Document ID
UG1586
Release Date
2023-07-31
Revision
1.2 English
Name
tcp_combine_sends_mode
Default
0
Minimum
0
Maximum
1
Scope
per-stack

This option controls how Onload fills packets in the TCP send buffer:

  • 0 - Onload prefers to use all the space at the end of a previous packet before allocating a new one (default)
  • 1 - Onload prefers to allocate a new packet for each new send.

In all cases this is a hint rather than guaranteed behavior, and there are conditions where the preference indicated by this option will not be possible. For example memory pressure might cause packets in the send queue to be combined. MSG_MORE and TCP_CORK can override this option when set. The zero-copy sends API can also use the segmentation provided by the caller's buffers. For full control of message segmentation the delegated sends API can be used. Setting this option can affect the capacity of send buffers belonging to sockets in this stack and increase packet buffer usage. It can also reduce efficiency as packets must be allocated for each send call rather than reusing one that is already available.

Setting this option is only recommended if you have an explicit need to avoid combined or split sends.