HomeFreeBSD

libsa: ip fragment reassembly is buggy

Description

libsa: ip fragment reassembly is buggy

Well, it does not really work and we are getting retransmits.
To replicate, set nfs.read_size large enough.

What needs to happen is, we read ethernet packet, if it has
IPv4 payload and that payload is fragment, we create reassembly
queue (sorted by growing fragment offset) and on last
fragment, we can build complete packet. Once done properly,
the network load can utilize larger read sizes.

While there, move ARP (and other) processing out of readipv4().

Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D51690

Details

Provenance
tsoomeAuthored on Aug 1 2025, 8:00 PM
Reviewer
imp
Differential Revision
D51690: libsa: ip fragment reassembly is buggy
Parents
rG7a7f74dbcc4f: grep: toss in some explicit fflush()
Branches
Unknown
Tags
Unknown