Project

General

Profile

Actions

Task #1486

closed

Merge NRD repository into NFD repository

Added by Junxiao Shi about 10 years ago. Updated about 10 years ago.

Status:
Closed
Priority:
High
Category:
Build
Target version:
Start date:
Due date:
% Done:

100%

Estimated time:
6.00 h

Description

Benefits of Merging

  • reduce confusion on NFD vs NRD relationship
  • reduce code duplication between NFD and NRD

Details

  • New repository folders:
    • core/: functionality shared between NFD and NRD (moved from daemon/core/)
    • daemon/: forwarding daemon
    • rib/: RIB daemon
    • tests/: unit testing
    • tools/: tools
  • Full name of NRD is changed to NFD RIB daemon
  • nfd and nrd are running separately as two processes.
  • A script should start both nfd and nrd processes. If one process dies, it kills the other.
  • Only one configuration file, nfd.conf, is used.
  • nfdc command line tool can control both nfd and nrd.

Related issues 1 (0 open1 closed)

Blocks NFD - Task #1488: NFD startup scriptClosedJunxiao Shi04/18/2014

Actions
Actions #1

Updated by Syed Amin about 10 years ago

I am stopping all tasks of nrd related to this change (for e.g. ref #1412) and will resume them once this task is completed.

Actions #2

Updated by Alex Afanasyev about 10 years ago

I have a thought that renaming daemon/ to nfd/ is really unnecessary. I would actually keep daemon/ and rename nrd/ to something more meaningful---I have already at least 3 times explained that NRD is not doing any routing, but just manages RIB.

Actions #3

Updated by Alex Afanasyev about 10 years ago

As for the name for NRD, I would suggest nfd-rib or ndn-rib-daemon. Even without renaming, it shouldn't be called NDN Routing Daemon, it should be called everywhere NDN RIB Damon or NDN RIB Manager.

Actions #4

Updated by Syed Amin about 10 years ago

To me NRD is a daemon for prefix/name registration protocol (NRD protocol currently), so whatever name we decide should reflect this. One suggestion is to call the protocol NRP(Name Registration Protocol) and it's daemon as nrpd (like we have http and httpd)

Actions #5

Updated by Alex Afanasyev about 10 years ago

Hmm.. Protocol is not essential property of NRD, it just a means to accomplish the task. The reason that we need to have NRD in the first place is to aggregate routing information (name/face registrations) from different routing protocols (command-line, NLSR, others) and calculate FIB for NFD, taking into account various flags. So, nrdp doesn't really emphasize this specific use (but unfortunately, I don't have a good suggesting for the name either).

Actions #6

Updated by Beichuan Zhang about 10 years ago

For name, I like "NFD RIB Daemon".

There're a couple of other things to add in this merge:

  • The Prefix Registration Protocol should be moved to NFD's wiki page.

  • nfdc and nrdc should be combined.

Actions #7

Updated by Beichuan Zhang about 10 years ago

For the repo folder names, we can simply call it "rib", and keep daemon as it is.

Actions #8

Updated by Alex Afanasyev about 10 years ago

What about folder name for the actual NFD files? It used to be called "daemon", the proposed Change on gerrit and in this task renamed it to "nfd". Is it correct?

Actions #9

Updated by Beichuan Zhang about 10 years ago

my suggestion was to (1) create "rib" folder for the nrd code, and (2) keep the "daemon" folder for the nfd code.

Actions #10

Updated by Junxiao Shi about 10 years ago

  • Description updated (diff)

This task should focus on code repository combination only, without changing any functionality.

  • It makes sense to make Prefix Registration protocol part of NFD Management protocol, but I'd make this change in a separate Task #1487.
  • It makes sense to combine nfdc and nrdc, but it's also not part of this task, because nrdc doesn't exist yet. To achieve the same effect, any feature previously planned for nrdc should be structured as an addition to nfdc.
  • It's necessary to start NRD from NFD or its startup script. This is a separate Task #1488.
Actions #11

Updated by Beichuan Zhang about 10 years ago

Junxiao, can you also create a separate task for nfdc? I guess what we need is to add Prefix Registration Protocol support to it.

Actions #12

Updated by Junxiao Shi about 10 years ago

Actions #13

Updated by Alex Afanasyev about 10 years ago

The script is NOT needed. I have the same objections as before. The only way to guarantee a daemon is running all the time is to use system-specific mechanisms (launchd on mac, upstart or systemd on Linux). Any script is additional level of scaffolding.

rib daemon will simply stop whenever nfd is not running or failed. The system will keep restarting it until nfd is finally running.

PS
What should be command-line name of NFD RIB Daemon? nfd-ribd? or just nfd-rib? or nfd-rib-manager?

Actions #14

Updated by Junxiao Shi about 10 years ago

#1488 starts both NFD and RIB daemon only. It does not involve monitoring.

The point is that NFD should not start RIB daemon by itself.

Further discussion about the script should be replied in #1488.

Actions #15

Updated by Alex Afanasyev about 10 years ago

  • % Done changed from 0 to 40
Actions #16

Updated by Alex Afanasyev about 10 years ago

  • Status changed from New to In Progress
Actions #17

Updated by Alex Afanasyev about 10 years ago

I need http://gerrit.named-data.net/#/c/666/ approved to continue merging

Actions #18

Updated by Alex Afanasyev about 10 years ago

  • % Done changed from 40 to 90

Will merge the config file tomorrow and this Task will be finished.

Actions #19

Updated by Alex Afanasyev about 10 years ago

  • Status changed from In Progress to Code review
  • % Done changed from 90 to 100
Actions #20

Updated by Alex Afanasyev about 10 years ago

  • Status changed from Code review to Closed
Actions

Also available in: Atom PDF