I'm looking at the code to do the IP reassembly, and notice that it appears that it is only able to handle a single fragmented payload at a time. Is this really true, or am I seeing things again? If so, the implementation is somewhat problematic in that if one of the fragments of an IP datagram is lost, then the ip_reass_tmr has to expire before the stack can handle a fragment belonging to a new IP datagram. By default, this timer is set to expire every seconds.