Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[PATCH v2] api: pktio: lso: improve the specification of IPv4 and TCP LSO #2141

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

JannePeltonen
Copy link
Collaborator

Change the DF flag handling in TCP segmentation offload and improve the description in general:

  • Specify that the DF flag of the IP header is to be preserved as it was in the original packet and not cleared as the current spec says.

  • Specify that TCP segmentation should be done in a way that complies with the TCP standard, without going into details. This entails proper handling of various TCP header flags and TCP options.

  • Specify that unique ID values are generated for non-atomic datagrams and leave it unspecified how the ID value is updated for atomic datagrams (packets which are not fragments and have the DF flag set). Suggest that an application should avoid sending packets with ID values that may lead to overlapping IDs after segmentation.

Improve the description of IPv4 fragmentation offload. This does not change the meaning of the specification but makes it clear that the DF flag is not affected by LSO and that IP option fields are processed as specified in the standard.

@odpbuild odpbuild changed the title api: pktio: lso: improve the specification of IPv4 and TCP LSO [PATCH v1] api: pktio: lso: improve the specification of IPv4 and TCP LSO Nov 5, 2024
Modify certain details of IP and TCP LSO, specify missing details, add
restrictions and clarify the API in general.

- Specify that the DF flag of the IPv4 header is to be preserved as it was
  in the original packet and not cleared as the current spec says. Disallow
  IPv4 LSO for packets that contain IPv4 options that may not simply be
  copied to all fragments. Describe IPv4 ID generation in more detail.

- Specify IPv6 fragmentation in more detail. Specify that the payload
  offset must point to the offset in which the fragment header is to be
  inserted, allowing flexible handling of different types of extension
  headers. Add restrictions on for what kind of packets IPv6 fragmentation
  can be requested.

- Specify that IPv4 or IPv6 LSO is not permitted for packets that are
  already fragments or for which L4 checksum offload is requested.

- Specify TCP segmentation in more detail and add restriction on what
  kind of TCP control bits and options may be present in packets for
  which the offload is attempted.

- Clarify how L3 offset, L4 offset and payload offset must be set.

Signed-off-by: Janne Peltonen <[email protected]>
@odpbuild odpbuild changed the title [PATCH v1] api: pktio: lso: improve the specification of IPv4 and TCP LSO [PATCH v2] api: pktio: lso: improve the specification of IPv4 and TCP LSO Nov 19, 2024
@JannePeltonen
Copy link
Collaborator Author

v2: Revamped the text quite a bit, adding at the same time multiple restrictions regarding what kind of packets LSO can be requested for. Added also descriptions for IPv6 LSO and TCP_IPV6 LSO.

@MatiasElo MatiasElo added the API next API change for next release label Nov 19, 2024
@MatiasElo MatiasElo added this to the v1.46.0.0 release milestone Nov 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
API next API change for next release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants