Page MenuHomeFreeBSD

Correct accounting when dropping fragment queues
ClosedPublic

Authored by thj on Oct 11 2018, 3:25 PM.
Tags
None
Referenced Files
Unknown Object (File)
Mon, Apr 27, 4:58 PM
Unknown Object (File)
Sun, Apr 19, 6:23 PM
Unknown Object (File)
Sun, Apr 12, 1:29 AM
Unknown Object (File)
Thu, Apr 9, 8:24 PM
Unknown Object (File)
Mar 23 2026, 10:27 AM
Unknown Object (File)
Mar 22 2026, 5:07 AM
Unknown Object (File)
Mar 21 2026, 6:09 AM
Unknown Object (File)
Mar 14 2026, 5:12 PM
Subscribers

Details

Reviewers
jtl
bz
Group Reviewers
transport
Summary

When dropping a fragment queue count the number of frags in the queue.

Test Plan

Scapy test program here:
http://people.freebsd.org/~thj/tests/sendpartialchain.py

The test program sends the final two fragments of a three fragment UDP chain,
but does not send the final fragment. When run before this change the timeout
counter will increase by 1 after frag timeout (60 seconds), with the change it
will increase by 2.

Diff Detail

Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 20142
Build 19636: arc lint + arc unit

Event Timeline

sys/netinet6/frag6.c
864

My sense is that this should increment timeout by one (since one reassembly queue timed out), but also increment dropped by the number of fragments. What do you think about that approach?

(I'm not sure there is a "right" approach, as long as we document the approach we took?)

883

Same thing here.

901

Same thing here.

Not sure where the documentation will go but netstat -s -p ip6 says "fragments" not "packets" so this change sees correct.

This revision is now accepted and ready to land.Jan 11 2019, 10:50 PM

Hit enter too early; you might want to be slightly more verbose in the commit message as to why this change is done.

Please commit with "Approved by: jtl"

typo in the commit message stopped this being closed automatically