Project

General

Profile

Actions

Task #1150

closed

Universal NFD FIB Management protocol support

Added by Junxiao Shi almost 11 years ago. Updated almost 11 years ago.

Status:
Closed
Priority:
Normal
Category:
-
Target version:
-
Start date:
01/25/2014
Due date:
% Done:

100%

Estimated time:
3.00 h

Description

ndn-cpp-dev should support both ndnd-tlv and NFD protocols.

ndn::Node::registerPrefix should use NFD FIB Management protocol to register a prefix, if the local forwarder is NFD.


To detect local forwarder, library could:

  1. Express Interest to retrieve ndndid
  2. If this Interest is answered, local forwarder is ndnd-tlv
  3. Otherwise, local forwarder is nfd

Related issues 2 (0 open2 closed)

Related to NFD - Task #1138: mock implementation of FIB Management command handlerClosed01/30/2014

Actions
Has duplicate ndn-cxx - Task #1162: Implement FIB management protocol in ndn-cppClosedWentao Shang01/28/2014

Actions
Actions #1

Updated by Alex Afanasyev almost 11 years ago

  • Description updated (diff)
Actions #2

Updated by Alex Afanasyev almost 11 years ago

  • Tracker changed from Feature to Task
Actions #3

Updated by Junxiao Shi almost 11 years ago

Notice: there is a change in "NFD FIB Management Protocol" on 20140129.

Actions #4

Updated by Alex Afanasyev almost 11 years ago

  • Project changed from 4 to ndn-cxx
  • Target version deleted (dev)
Actions #5

Updated by Alex Afanasyev almost 11 years ago

  • Status changed from New to Closed
Actions #6

Updated by Alex Afanasyev almost 11 years ago

  • Subject changed from NFD FIB Management protocol support to Universal NFD FIB Management protocol support
  • Description updated (diff)
  • Status changed from Closed to New
Actions #7

Updated by Alex Afanasyev almost 11 years ago

  • Status changed from New to Code review
  • Assignee set to Alex Afanasyev
  • % Done changed from 0 to 100

I have implemented support for NFD FIB management protocol. It is not exactly a "universal" approach, but it is possible during face creation process to specify boolean flag to indicate that NFD protocol should be used. This should technically work now (after code review):

# must use "TcpTransport" for now, until NFD supports UnixStreamFace
Face face("localhost", "6363", true);
face.setInterestFilter("/hello/world", &onInterest, &onFailure);

void
onInterest(const Name& filter, const Interest& interest)
{
    std::cout << interest.getName() << std::endl;
}

void
onFailure(const Name& filter, const std::string& reason)
{
  std::cerr << "ERROR: " << reason << std::endl;
}
Actions #8

Updated by Junxiao Shi almost 11 years ago

This approach is not desirable, because it puts a burden on app: the app must provide an option (either at compile time or runtime) to pick the local daemon.

One alternate is: Node constructor reads from an environment variable to decide which transport and protocol to use. libccn has such a feature.

Actions #9

Updated by Alex Afanasyev almost 11 years ago

We do not have an objective of writing universal apps, so I don't see a "burden". I will remove support of ndnd-tlv as soon as possible.

Actions #10

Updated by Alex Afanasyev almost 11 years ago

  • Status changed from Code review to Closed
Actions

Also available in: Atom PDF