Project

General

Profile

Actions

Feature #5349

open

Add prefix weighting to NLSR

Added by Alexander Lane 3 months ago. Updated 18 days ago.

Status:
In Progress
Priority:
Normal
Target version:
-
Start date:
04/28/2025
Due date:
% Done:

0%

Estimated time:
(Total: 0.00 h)

Description

NLSR currently provides no ability to weigh prefixes announced by a node anything other than flatly. While this works for many circumstances, this fails to cover a large number of use cases in which nodes may want to incentivize or disincentivize requesting their own prefixes. Adding this will give more flexibility to routers to control the circumstances under which they request specific data.

In the short-term, our plan is to provide a simple version that adds these costs directly onto the routing costs for the destination which announced the Name; this is meant to address some issues with a lack of support for longest-prefix match for NDN Workspace and should provide some utility. In the mid-term, these costs should be factored into routing.


Checklist

  • Change internal storage of prefixes to also store costs
  • Adjust protocol design so Name LSA stores cost
  • Ensure cost is stored and retrieved properly from Name LSA
  • Adjust NFD readvertisement to supply cost
  • Inherit cost from readvertised routes
  • Add Name LSA cost onto routing costs (Temp change)
  • Modify unit tests for NPL and Name LSA
  • Modify other unit tests to handle issues with type changes
  • Fix #5358
  • Add the ability to disable this behavior if desired
  • Allow specification of cost from configuration files
  • Allow specification of cost from NLSRC
  • Add "virtual link" support for routing to allow for destinations to include prefixes
  • Create "virtual links" based on NDN names
  • Use "virtual link" costs for routing
  • Revert temp change after "virtual link" implementation

Subtasks 1 (1 open0 closed)

Task #5361: Adjust PrefixUpdateProcessor to more robustly handle configuration formatNewAlexander Lane04/28/2025

Actions
Actions #1

Updated by Alexander Lane about 2 months ago

  • Priority changed from Urgent to Normal
  • % Done changed from 0 to 50
Actions #2

Updated by Alexander Lane about 1 month ago

  • Status changed from New to In Progress
Actions #3

Updated by Alexander Lane about 1 month ago

We are pushing the initial implementation in the near future; however, the fully expanded functionality (integrating into routing calculation) still needs to be implemented and merged. Current behavior is that route costs should not be added locally for re-advertisement if this behavior is not desired, should add to docs before doing so.

Actions #4

Updated by Junxiao Shi about 1 month ago

Would this feature require updates to the LSDB_DataSet structure?
If so, remember to update the wiki page.

Actions #5

Updated by Alexander Lane about 1 month ago

Junxiao Shi wrote in #note-4:

Would this feature require updates to the LSDB_DataSet structure?
If so, remember to update the wiki page.

Thanks for the pointer, I submitted the adjustments needed.

Actions #6

Updated by Alexander Lane about 1 month ago

Working on the configuration and NLSRC based options to configure this value; however, full support for adding/removing prefixes from configuration file in state directory will require additional work.

Actions #7

Updated by Alexander Lane about 1 month ago

  • Subtask #5361 added
Actions #8

Updated by Junxiao Shi about 1 month ago

Alexander Lane wrote in #note-5:

Junxiao Shi wrote in #note-4:

Would this feature require updates to the LSDB_DataSet structure?
If so, remember to update the wiki page.

Thanks for the pointer, I submitted the adjustments needed.

Definition of PrefixInfo TLV is missing.

Actions #9

Updated by Alexander Lane about 1 month ago

Junxiao Shi wrote in #note-8:

Alexander Lane wrote in #note-5:

Junxiao Shi wrote in #note-4:

Would this feature require updates to the LSDB_DataSet structure?
If so, remember to update the wiki page.

Thanks for the pointer, I submitted the adjustments needed.

Definition of PrefixInfo TLV is missing.

Sorry I missed that, should be fixed.

Actions #10

Updated by Junxiao Shi 22 days ago

As of LSDB_DataSet rev16, definition of Cost is missing.

Actions #11

Updated by Alexander Lane 18 days ago

Junxiao Shi wrote in #note-10:

As of LSDB_DataSet rev16, definition of Cost is missing.

Apologies on the delay, I have revised the definition to be more clear. I also made some changes to avoid repeating the Double definition three times.

Actions

Also available in: Atom PDF