[U-Boot] [PATCH 1/3] net: defragment IP packets

Alessandro Rubini rubini-list at gnudd.com
Fri Jul 31 16:02:14 CEST 2009


>> Is the target replying to all pings? 
> 
> Yes. And I can see the same in wireshark.

Ah. I see. Strange...

>> > What is missing in the reassembly code (that is described in RFC815) 
>> > is the timer. (quote from the RFC):
>> > --------------
>> > The  final  part  of  the  algorithm  is  some  sort of timer based
>> > mechanism which decrements the time to  live  field  of  each  partially
>> > reassembled  datagram,  so that incomplete datagrams which have outlived
>> > their usefulness can be detected and deleted.
>> > --------------
>> 
>> But I reassemble one packet only, so I don't need to timeout
>> partly-filled packets to recover memory. 
> 
> But it is for the state that you described - the user cntr-C a current 
> transfer, and the reassembly algorithm doesn't know to throw away a partially 
> accepted packet, when things are cancelled...

No, it's not like that. The old instance of the TFTP server resends
the last packet of the aborted xfer, while the new server sends the new
packet. Both packets are new, they just come as intermixed fragments.
And none survives as there is only one reassembly buffer. Or something
like that, but both are fresh fragmented packets, no timeout would solve
this sporadic problem.

It seems to me that if we want a secure defagment system (one that can
be use to net-boot production systems in hostile networks), it's
going to be too complex.  It could work well, however, as a faster
tool for the interactive developer.

/alessandro


More information about the U-Boot mailing list