Project

General

Profile

Actions

Bug #4430

closed

NLSR does not converge without content store

Added by Ashlesh Gawande over 6 years ago. Updated almost 6 years ago.

Status:
Closed
Priority:
Normal
Target version:
Start date:
12/29/2017
Due date:
% Done:

100%

Estimated time:

Description

Since LSA is under /localhop prefix and NLSR serves only its own LSA.
We should change it so that NLSR can serve other routers' LSA as well.


Related issues 3 (0 open3 closed)

Related to NLSR - Task #3899: Use /localhop component in LSA prefix to reduce duplicate NACKsClosed12/20/2016

Actions
Related to NLSR - Feature #4448: Serve other routers' certificatesClosedMuktadir Chowdhury01/09/2018

Actions
Related to mini-ndn - Feature #4469: Add option/function to disable content storeClosedAshlesh Gawande01/19/2018

Actions
Actions #1

Updated by Ashlesh Gawande over 6 years ago

  • Related to Task #3899: Use /localhop component in LSA prefix to reduce duplicate NACKs added
Actions #2

Updated by Nicholas Gordon over 6 years ago

This is one possible solution:

At any node where NLSR is running, a repo instance should also be running. The repo will do two things:

  1. Store LSAs. When NLSR fetches a new LSA, it will issue a repo insert command to store that data, and NLSR will issue a delete command for the previous LSA data. NLSR will then remember the current LSA to delete it next time.
  2. Store keys. Since the number of keys is not all that great, we can do the same thing as above. Any time NLSR fetches a key, it will issue an insert command to store that data in the repo. No maintenance is necessary, since keys are not re-published regularly.

Brief discussion with Alex suggests that the repo is fit for this job, as it can insert and delete data correctly. This approach minimizes the amount of new code to incorporate into NLSR, essentially adding a table of "previous LSAs", and a few lines of code to issue the repo commands.

Actions #3

Updated by Ashlesh Gawande over 6 years ago

  • Status changed from In Progress to Closed
  • Target version set to Minor release 0.4.1
Actions #4

Updated by Ashlesh Gawande over 6 years ago

  • % Done changed from 0 to 100
Actions #5

Updated by Ashlesh Gawande over 6 years ago

  • Status changed from Closed to In Progress
  • % Done changed from 100 to 50

Current solution does not work with security enabled and content store disabled so re-opening (since we are using direct fetch).
It only works with security disabled and content store disabled (Before the latest change it did not work for this case).

Actions #6

Updated by Ashlesh Gawande about 6 years ago

  • Related to Feature #4448: Serve other routers' certificates added
Actions #7

Updated by Ashlesh Gawande about 6 years ago

  • % Done changed from 50 to 90

I will close this issue once I have added a test to Mini-NDN.

Actions #8

Updated by Ashlesh Gawande about 6 years ago

  • Related to Feature #4469: Add option/function to disable content store added
Actions #9

Updated by Ashlesh Gawande about 6 years ago

Latest NLSR does not converge without CS (with or without security), investigating.

Actions #10

Updated by Ashlesh Gawande about 6 years ago

LSA has an expiration time point i.e. after what time from now it will expire.
When node1 gets LSA from node2 and puts it into LSA storage it should schedule it expiry like:

(LSA-node2-expiration-timepoint) - now

What was implemented was opposite:

now - (LSA-node2-expiration-timepoint)

resulting in deletion of LSA from storage immediately

Testbed has the faulty version.

Actions #11

Updated by Ashlesh Gawande about 6 years ago

Integration test without CS passes after the fix:
https://gerrit.named-data.net/#/c/4639/

Actions #12

Updated by Ashlesh Gawande about 6 years ago

  • Status changed from In Progress to Closed
  • Target version changed from Minor release 0.4.1 to v0.5.0
  • % Done changed from 90 to 100
Actions #13

Updated by Saurab Dulal almost 6 years ago

  • Target version changed from v0.5.0 to 0.4.3
Actions

Also available in: Atom PDF