Task #1859
closedRIB: Need to periodically sync'up valid FaceIDs with NFD
100%
Description
As it currently stands, RIB will not always have a correct knowledge about valid FaceIDs, which basically prevents registration commands to faces that existed before RIB started and faces for which notifications were missed (e.g., due to CS overflow). Also, there are cases (and I have observed) that RIB entry stays even though face is no longer exists in NFD (again, due to CS overflow).
I would suggest dropping check for valid FaceID all together. Instead of define a periodic procedure to clean up invalid FaceIDs (request all of them from NFD and then remove invalid ones from RIB).
Updated by Junxiao Shi about 10 years ago
- Has duplicate Task #1744: rib-manager: Periodically check consistency of alive faces added
Updated by Junxiao Shi about 10 years ago
- Description updated (diff)
- Start date deleted (
08/14/2014) - Estimated time set to 4.00 h
I agree with this proposal.
The deletion of those Routes should not trigger FIB updates, because corresponding NextHop records are already automatically deleted from FIB by NFD.
Updated by Davide Pesavento about 10 years ago
FWIW, I agree with this too. The whole idea of maintaining a "face table" in nrd, that needs to be kept synchronized with nfd at all times, is inherently racy and thus flawed IMHO. This also makes task #1832 unnecessary right?
By the way, I probably missed the initial design discussions about nrd, but why is it a separate process in the first place?
Updated by Alex Afanasyev about 10 years ago
Davide Pesavento wrote:
By the way, I probably missed the initial design discussions about nrd, but why is it a separate process in the first place?
The main objective for NRD is to be completely independent thread-wise from the forwarding. That is, all heavy calculation of FIB based on RIB needs to be done separately from NFD forwarding. Other than that objective, I don't remember other reason for it to be separate. It could have been part of NFD, but we just decided that it will be simpler to implement all NRD specific logic in a completely separate process.
Updated by Junxiao Shi about 10 years ago
- Category changed from Faces to RIB
- Status changed from New to Code review
- Assignee set to Vince Lehman
- Target version changed from v0.3 to v0.2
Updated by Davide Pesavento about 10 years ago
Alex Afanasyev wrote:
The main objective for NRD is to be completely independent thread-wise from the forwarding. That is, all heavy calculation of FIB based on RIB needs to be done separately from NFD forwarding.
Sure, a separate thread makes a lot of sense. But why implementing it as a separate process/binary then?
Updated by Junxiao Shi about 10 years ago
The discussion about whether RIB Daemon should be a separate process is out of the scope of this Task.
Please discuss such question in nfd-dev
mailing list, thanks.
Updated by Junxiao Shi about 10 years ago
- Status changed from Code review to Closed
- % Done changed from 0 to 100