Task #1150
closedUniversal NFD FIB Management protocol support
100%
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:
- Express Interest to retrieve ndndid
- If this Interest is answered, local forwarder is ndnd-tlv
- Otherwise, local forwarder is nfd
Updated by Alex Afanasyev almost 11 years ago
- Tracker changed from Feature to Task
Updated by Junxiao Shi almost 11 years ago
Notice: there is a change in "NFD FIB Management Protocol" on 20140129.
Updated by Alex Afanasyev almost 11 years ago
- Project changed from 4 to ndn-cxx
- Target version deleted (
dev)
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
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;
}
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.
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.
Updated by Alex Afanasyev almost 11 years ago
- Status changed from Code review to Closed