Vishwas Manral wrote:
Hi Eric/ folks,As the ICMPv6 has a checksum which includes a pseudo header, though the ICMPv6 does not have the same, I think we cannot do SIIT (stateless translation) for fragmented ICMPv4 packets. We need to get all the fragements before we can find the checksum, hence it becomes stateful.
I haven't looked at the details recently, but I think the addition of the pseudo-header checksum is solvable without needing state in the translator. The pseudo-header (from the IPv6 header) is available in the same packet as the ICMP checksum field. Thus the checksum can be adjusted based on the delta of adding or deleting (for v4->v6 and v6->v4 translation, respectively) the pseudo-header checksum by only looking at that one packet.
I think this seems to be missing in the RFC, though it talks about a similar case for UDP packet with checksum 0. Is my understanding correct?
The UDP with zero checksum is much different, because it requires a computation of the checksum for the whole datagram i.e. across all the fragments.
Erik