Subject: [pim] PORT checksum issue

From: Stig Venaas <[email-masked]>
Date: Mon, 24 Oct 2011 11:06:10 -0700

Hi

Upon reading Gorry's transport directorate review of PORT, I realised
that we have an issue with the checksums.

According to the draft, checksums are calculated as usual for the PIM
Join/Prune messages. However, for IPv6, the checksum includes a
pseudo-header, including the source and destination address of the
message. It's however not clear what these addresses should be. I need
to explain this in detail in the draft.

I'm proposing we simply say that the addresses should be set to 0 in
the pseudo-header.

We could consider other alternatives, but I think this is the simplest
solution.

First of all, the pseudo-header does not need to include the source and
the destination. They are there to protect against bits in the source or
destination address being changed during transport so that the wrong
host may accept the packet. However, since they are part of a TCP
connection which has its own checksum, we are still protected against
this.

I can think of two other alternatives.

1. Use the source and destination addresses the PIM J/P would have had.

2. Use the source and destination addresses of the PORT connection.

Alternative 1 would work, but I don't see what it buys us. Alternative 2
is difficult for two reasons. One is that the addresses for the PORT
connection may not be the same address family as the PORT message.
Also, depending on how the code is structured, it may be nice to compute
the checksum of the message itself, without having to pass information
about the PORT connection.

I'm about to update the draft now, saying that the addresses should be
0. But please speak up if you disagree with this choice. Please let me
know ASAP if you do, although we should still have a couple of weeks to
update the draft if needed.

Stig