I have been reading up on ICMP recently. In RFC 792, it specifies that an ICMP Echo Response Packet is computed as follows:
The address of the source in an echo message will be the destination of the echo reply message. To form an echo reply message, the source and destination addresses are simply reversed, the type code changed to 0, and the checksum recomputed.
Does this mean that all of the IPv4 and IPv6 fields need to be copied over as well? This should include DSCP/ECN bits, IPv6 Flow Label, maybe even TTL, and other IPv6 headers that might have been included as well.
I guess I just don't know the extent of what should be copied and what should be treated as a "new" packet. If other RFC's clarify on this, please let me know too.