Project

General

Profile

Actions

Bug #2733

closed

Rebuild Adjacency LSA when face destroyed belongs to ACTIVE node

Added by Vince Lehman over 9 years ago. Updated over 9 years ago.

Status:
Closed
Priority:
High
Assignee:
Target version:
-
Start date:
04/06/2015
Due date:
% Done:

100%

Estimated time:

Description

Currently, when a face is destroyed, the code rebuilds an Adjacency LSA without checking the node's status:

adjacent->setFaceId(0);
adjacent->setStatus(Adjacent::STATUS_INACTIVE);

// A new adjacency LSA cannot be built until the neighbor is marked INACTIVE and
// has met the HELLO retry threshold
adjacent->setInterestTimedOutNo(m_confParam.getInterestRetryNumber());

m_nlsrLsdb.scheduleAdjLsaBuild();

Since FIB entries' expiration times are extended when a
router's Adjacency LSA is refreshed and the Adjacency LSA is rebuilt when the face is destroyed after each HELLO
Interest to the failed node, the Adjacency is never refreshed and the FIB entries expire.

Instead:

adjacent->setFaceId(0);

if (adjacent->getStatus() == Adjaceny::STATUS_ACTIVE) {
  adjacent->setStatus(Adjacent::STATUS_INACTIVE);

  // A new adjacency LSA cannot be built until the neighbor is marked INACTIVE and
  // has met the HELLO retry threshold
  adjacent->setInterestTimedOutNo(m_confParam.getInterestRetryNumber());

  m_nlsrLsdb.scheduleAdjLsaBuild();
}

Related issues 1 (1 open0 closed)

Related to NLSR - Task #2732: Refresh Name prefixes when receiving an update Name LSANewSaurab Dulal04/06/2015

Actions
Actions

Also available in: Atom PDF