Robert,

Yes, it is impossible to set a UDP packet's checksum without the whole packet. 
  Fragments won't work: not all the data is available.  I've just checked in a 
change so that IP fragments, or too-short packets, are emitted on the 2nd 
output, or dropped if there is no 2nd output.

I am surprised you need to fix TCP and UDP checksums on input packets. 
Usually that is not necessary for input packets; and in fact fixing the 
checksums is a bad idea, because it can hide errors elsewhere.  SetUDPChecksum 
is generally used when you're generating packets from scratch.

Eddie


Robert Ross wrote:
> We have found what appears to be a bug (or undocumented feature) in 
> SetUDPChecksum where packets sent into this element are somehow discarded.  
> In the attached config, you will see an ElementClass called FixChecksumsDebug 
> which counts packets into each checksum fixer and counts packets out the 
> other side.  We have found that, under specific circumstances, packets sent 
> into SetUDPChecksum never come out the other side.  This is true of the 
> latest version from SVN.
> 
> As to the particular situations for this problem, it seems to happen only 
> with fragmented packets.  In a set of packet fragments, the first portion 
> (offset +0) always seems to be discarded when going through SetUDPChecksum.  
> There is no indication that I have found as to the reason for the discard.
> 
> Has anyone else seen this issue?  Does SetUDPChecksum have a second output 
> that is undocumented?  Any suggestions?
> 
> Thanks,
> 
> Robert Ross
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> click mailing list
> [email protected]
> https://amsterdam.lcs.mit.edu/mailman/listinfo/click
_______________________________________________
click mailing list
[email protected]
https://amsterdam.lcs.mit.edu/mailman/listinfo/click

Reply via email to