Actions
Bug #2733
closedRebuild Adjacency LSA when face destroyed belongs to ACTIVE node
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();
}
Updated by Vince Lehman over 9 years ago
- Related to Task #2732: Refresh Name prefixes when receiving an update Name LSA added
Updated by Vince Lehman over 9 years ago
- Status changed from New to In Progress
- Assignee set to Vince Lehman
- % Done changed from 0 to 90
Updated by Vince Lehman over 9 years ago
- Status changed from In Progress to Closed
- % Done changed from 90 to 100
Actions