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:[EMAIL PROTECTED] > 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:[EMAIL PROTECTED] > > Sent: Tue 5/1/2007 4:03 PM > > To: Robert Ross > > Cc: [email protected] > > 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 > > > [email protected] > > > https://amsterdam.lcs.mit.edu/mailman/listinfo/click > > > _______________________________________________ click mailing list [email protected] https://amsterdam.lcs.mit.edu/mailman/listinfo/click
