When receiving an LSP with same sequence number but different
checksum as in the local database, we would always treat it as
newer than the local LSP.
That behavior is incorrect if the local LSP is indeed a purged
LSP waiting for age-out and the received one is not.
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
if (seqno > lsp->hdr.seqno
|| (seqno == lsp->hdr.seqno
&& ((lsp->hdr.rem_lifetime != 0 && rem_lifetime == 0)
- || lsp->hdr.checksum != checksum))) {
+ || (lsp->hdr.checksum != checksum
+ && lsp->hdr.rem_lifetime)))) {
if (isis->debugs & DEBUG_SNP_PACKETS) {
zlog_debug(
"ISIS-Snp (%s): Compare LSP %s seq 0x%08" PRIx32