[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