On Apr 18, 2013, at 9:28 AM, Evan Huus <eapache@xxxxxxxxx> wrote:
> - Our reassembly code is a bit of a mess anyways, as Guy's recent
> commit indicates.
...and that commit doesn't include another thing I started working on (but haven't done much on yet):
The "reassembled" hash table looks up by endpoints and an ID, but there's no guarantee that there won't be *more than one* instance of that ID in a given flow between the two endpoints in question, so that lookup needs to take into account the frame number as well.
(A bunch of the stuff I've been doing to the reassembly code was to fix issues that showed up when doing some regression testing of some changes to other code; there's a DTLS file that's especially good at finding all the "funny stuff" in reassembly code, in part because *every fragment* has a "reassembled" length, and hilarity ensues if they don't have the same values.)