]> git.puffer.fish Git - mirror/frr.git/commit
pimd: Fix register message checksum
authorDonald Sharp <sharpd@cumulusnetworks.com>
Wed, 8 Jun 2016 15:47:33 +0000 (11:47 -0400)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Wed, 8 Jun 2016 16:21:59 +0000 (12:21 -0400)
commitf5e6574b65165091b8b6ae101a2ab421598f1409
treec1ca53956184e53f59ded964c1134359c9511c93
parent5d3c5e6dead919ec299b71a53822fd05a7b560e2
pimd: Fix register message checksum

The register message checksum was being calculated over
the first 4 bytes of the packet, instead of the first
8 bytes.  From the RFC:

PIM Version, Type, Reserved, Checksum
        Described in Section 4.9. Note that in order to reduce
        encapsulation overhead, the checksum for Registers is done only
        on the first 8 bytes of the packet, including the PIM header and
        the next 4 bytes, excluding the data packet portion.  For
        interoperability reasons, a message carrying a checksum
        calculated over the entire PIM Register message should also be
        accepted.  When calculating the checksum, the IPv6 pseudoheader
        "Upper-Layer Packet Length" is set to 8.

Ticket: CM-11265
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
pimd/pim_register.c