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)
Fri, Nov 29, 9:51 AM
Unknown Object (File)
Fri, Nov 29, 8:16 AM
Unknown Object (File)
Mon, Nov 25, 11:21 AM
Unknown Object (File)
Sat, Nov 23, 2:02 PM
Unknown Object (File)
Fri, Nov 22, 1:24 PM
Unknown Object (File)
Nov 21 2024, 4:55 PM
Unknown Object (File)
Nov 20 2024, 2:57 AM
Unknown Object (File)
Nov 19 2024, 3:02 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