Task #1486
closed
Merge NRD repository into NFD repository
Added by Junxiao Shi over 10 years ago.
Updated over 10 years ago.
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
.
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.
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.
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.
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)
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).
For name, I like "NFD RIB Daemon".
There're a couple of other things to add in this merge:
For the repo folder names, we can simply call it "rib", and keep daemon as it is.
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?
my suggestion was to (1) create "rib" folder for the nrd code, and (2) keep the "daemon" folder for the nfd code.
- 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.
Junxiao, can you also create a separate task for nfdc? I guess what we need is to add Prefix Registration Protocol support to it.
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?
#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.
- % Done changed from 0 to 40
- Status changed from New to In Progress
- % Done changed from 40 to 90
Will merge the config file tomorrow and this Task will be finished.
- Status changed from In Progress to Code review
- % Done changed from 90 to 100
- Status changed from Code review to Closed
Also available in: Atom
PDF