[Click] SetUDPChecksum dropping packets

Eddie Kohler kohler at cs.ucla.edu
Tue May 1 16:03:15 EDT 2007


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
> click at amsterdam.lcs.mit.edu
> https://amsterdam.lcs.mit.edu/mailman/listinfo/click


More information about the click mailing list