Page MenuHomeFreeBSD

ena: Clear NS_MOREFRAG flag for last netmap slot
Needs ReviewPublic

Authored by osamaabb_amazon.com on Aug 20 2024, 8:47 AM.
Tags
None
Referenced Files
Unknown Object (File)
Dec 19 2025, 12:05 AM
Unknown Object (File)
Dec 13 2025, 7:48 AM
Unknown Object (File)
Nov 17 2025, 7:13 PM
Unknown Object (File)
Nov 6 2025, 1:57 AM
Unknown Object (File)
Oct 20 2025, 2:49 AM
Unknown Object (File)
Oct 20 2025, 2:49 AM
Unknown Object (File)
Oct 19 2025, 12:24 PM
Unknown Object (File)
Sep 4 2025, 10:36 AM
Subscribers

Details

Reviewers
cperciva
Summary

When processing packets within the rx-flow
ena_netmap_rx_load_desc doesn't know the number of descriptors, so it
sets NS_MOREFRAG to all the slots to indicate that there are more
fragments for this packet.
The code calls ena_netmap_rx_load_desc() for every descriptor in
this packet to map the relevant buffer into the netmap shared memory.
After ena_netmap_rx_load_desc() calls, we need to unset the NS_MOREFRAG
for the last fragment to indicate that this is the last fragment,
so we explicitly turn off NS_MOREFRAG flag.
Current code overrides all other flags and sets NS_BUF_CHANGED.
This patch unsets the relevant flag only.

Approved by: cperciva
MFC after: 2 weeks
Sponsored by: Amazon, Inc.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 59096
Build 55983: arc lint + arc unit