Project

General

Profile

Actions

Task #2533

closed

Face: drop direct FIB management

Added by Alex Afanasyev almost 10 years ago. Updated over 9 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Base
Target version:
Start date:
Due date:
% Done:

100%

Estimated time:
6.00 h

Description

ndn::Face used to support prefix registration using FibMgmt protocol instead of the normal RibMgmt protocol.

This feature was introduced in v0.1 when NFD RIB daemon (nrd) is not yet implemented, so that applications can work without it.

This feature is no longer needed because RibMgmt protocol has become an integral part of NFD (as a thread of nfd process).

In this Task, the following will be deleted:

  • 'protocol' option in client.conf
  • Face::setDirectFibManagement function

ndn::nfd::Controller type can send commands of FibMgmt protocol.
This API is used by tools such as nfdc, and is unaffected by this Task.

Notice about this backwards-incompatible change shall be sent to nfd-dev and ndn-lib mailing lists 5 days prior to code merge.

Actions #1

Updated by Junxiao Shi almost 10 years ago

  • Subject changed from Proposal to remove support for FIB management protocol in ndn::Face to Face: drop direct FIB management
  • Description updated (diff)
  • Category set to Base
  • Target version set to v0.4
  • Estimated time set to 6.00 h

Updated Description to include some history.

Original Description was:

Right now, Face class supports use of FIB management protocol. I'm not aware of a single use of this feature and it is no longer needed (RIB manager is now integral part of nfd).
Therefore, I'm proposing to simplify ndn::Face implementation and completely drop "protocol" configuration (at least for now).

Actions #2

Updated by Junxiao Shi almost 10 years ago

  • Description updated (diff)
Actions #3

Updated by Joao Pereira over 9 years ago

This issue is simply to remove the 2 points?

  1. 'protocol' option in client.conf

    This one looks simple, but have some questions:

* If we will not configure it in the file, what will be the version? nrd-0.1?
* Shouldn't we allow the possibility of changing the protocol version to the client?
  1. Face::setDirectFibManagement function

    This looks like a simple job because the function is not used in any place inside the ndn-cxx

Actions #4

Updated by Junxiao Shi over 9 years ago

Answer to note-3:

After this change, prefix registration would always use RibMgmt with no possibility of changing protocol.

In addition to deleting the option and the function, all dead code regarding to prefix registration using FibMgmt must be deleted, and templates used to provide multi-protocol registration need to be converted to non-templates that only work with the sole prefix registration protocol.

Actions #5

Updated by Joao Pereira over 9 years ago

  • Status changed from New to In Progress
  • Assignee set to Joao Pereira
Actions #6

Updated by Joao Pereira over 9 years ago

So I am assuming we are talking about.

What templates are we talking about, Controller::start? This one have a template because it is used for registration and unregistration.

Remove functions:

  • Face::isSupportedNfdProtocol
  • Face::isSupportedNrdProtocol
  • Face::setDirectFibManagement

Remove comments on face.hpp that include Rib option, like:

@brief Deregister prefix from RIB (or FIB)

should be converted to

@brief Deregister prefix from RIB

Actions #7

Updated by Alex Afanasyev over 9 years ago

There are more changes in detail/face-impl.hpp. Specifically, but not limited to FaceImpl::registerPrefix

Actions #8

Updated by Joao Pereira over 9 years ago

I just pushed to gerrit what I have done till now. Looking at the code in face-impl I am not sure were else we are using the FIB instead of RIB.

Take a look at the following link and see if I missed something.

http://gerrit.named-data.net/2086

Actions #9

Updated by Junxiao Shi over 9 years ago

  • Description updated (diff)
  • Status changed from In Progress to Closed
  • % Done changed from 0 to 100

ndn-cxx Application Developer Guide should be updated to reflect this change.

I'm dropping this requirement because this part is never documented. Documentation will be a separate issue.

Actions

Also available in: Atom PDF