[Click] SetUDPChecksum dropping packets

Eddie Kohler kohler at cs.ucla.edu
Tue May 1 16:36:34 EDT 2007


Ah :)  Well you could still use a variant of DecIPTTL to update the 
checksum incrementally.  Faster and better.  If the math in decipttl.cc 
looks weird, try using click_update_in_cksum(), defined in <clicknet/ip.h>.

Eddie


Robert Ross wrote:
> We're not decrementing the TTL.  We're actually using Click to increase 
> the TTL on multicast packets.  It is a long story...  :)
> 
> 
> -----Original Message-----
> From: Eddie Kohler [mailto:kohler at cs.ucla.edu]
> Sent: Tue 5/1/2007 4:20 PM
> To: Robert Ross
> Cc: Click
> Subject: Re: [Click] SetUDPChecksum dropping packets
> 
> Hi Robert,
> 
> If you're using DecIPTTL, that element already updates the IP checksum
> incrementally.
> 
> Eddie
> 
> 
> Robert Ross wrote:
>  > We're modifying the TTL on outgoing packets, so I assumed we had to
>  > modify the checksums.  Now that I think about it, we probably only need
>  > to set the IP checksum and not the UDP or TCP checksum.  I'll try that
>  > out...
>  >
>  >
>  > -----Original Message-----
>  > From: Eddie Kohler [mailto:kohler at cs.ucla.edu]
>  > Sent: Tue 5/1/2007 4:03 PM
>  > To: Robert Ross
>  > Cc: click at amsterdam.lcs.mit.edu
>  > Subject: Re: [Click] SetUDPChecksum dropping packets
>  >
>  > 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