Add segment size to addressed envelope metadata #2390
+173
−28
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation:
Recent additions added support for UDP_SEGMENT and UDP_GRO on Linux. These are both configured via channel options. Enabing UDP_SEGMENT at the channel level means all datagrams sent will use the same segment size.
We can offer finer-grained control by allowing users to set the segment size at the datagram level by setting the option in the CMSG headers.
We can also recover the segment size on the receive side by reading the header value, this is possible for both methods of setting the segment size.
Modifications:
segmentSize
toAddressedEnvelope.Metadata
which sets the segment size on outbound messages and indicates the segment size the sender used on the receive side (assuming GRO is enabled).Results: