Subject: Re: MSS clamping proposal
To: David Laight <david@l8s.co.uk>
From: Robert Elz <kre@munnari.OZ.AU>
List: tech-kern
Date: 03/12/2002 17:36:08
    Date:        Tue, 12 Mar 2002 10:23:59 +0000
    From:        David Laight <david@l8s.co.uk>
    Message-ID:  <20020312102359.G2145@snowdrop.l8s.co.uk>

  | Remember the checksum in 'linear' so when you decrement the TTL
  | you increment the relevant checksum byte to match.

Yes.

  | (you need to worry if the byte is, or becomes, 0)

It's a little more complex than that because of the 1's complement
(pretty easy when just doing an increment of the TTL by one, but the
same technique should be used for all header adjustments).

  | This saves you both validating and recalculating the full header
  | checksum.

You're supposed to validate the header checksum anyway (but that many
don't bother is part of the reason it no longer exists in IPv6).   Avoiding
recalculating isn't just to save your system cpu cycles, it also helps
protect against inadvertent changes that might have been made in your
node (bad ram, code bugs, ...), or elsewhere (if you didn't validate).

kre