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
