Task #1662
closedRIB dataset publisher
Added by Alex Afanasyev over 10 years ago. Updated over 10 years ago.
100%
Updated by Junxiao Shi over 10 years ago
- Blocked by Task #1684: RIB enumeration protocol added
Updated by Junxiao Shi over 10 years ago
- Blocks Task #1717: Route expiration test scenario added
Updated by Junxiao Shi over 10 years ago
- Subject changed from Listing content of RIB to RIB dataset publisher
- Description updated (diff)
- Estimated time set to 3.00 h
Updated by Junxiao Shi over 10 years ago
- Related to Task #1749: nfd-status: RIB dataset added
Updated by Vince Lehman over 10 years ago
- Status changed from New to In Progress
Updated by Chengyu Fan over 10 years ago
Updated by Vince Lehman over 10 years ago
Yes, I am currently implementing the RibEntry data structure in ndn-cxx. I will create a new task for the implementation.
Updated by Vince Lehman over 10 years ago
- Blocked by Task #1764: Add RibEntry and Route data structures added
Updated by Vince Lehman over 10 years ago
- % Done changed from 0 to 80
Since RibManager uses an ndn::Face and a SegmentPublisher expects a pointer to an AppFace, will I need to write a wrapper class for ndn::Face which implements AppFace or is there an easier way?
Updated by Alex Afanasyev over 10 years ago
As of right now, you will not be able to use segment publisher at all (since it is part of daemon/).
One option is to move it to core/
and make templated, so it can be used with AppFace (in NFD internally) and anywhere else with ndn::Face. Junxiao, does this sound reasonable or we should do something else?
Updated by Anonymous over 10 years ago
No objection to moving SegmentPublisher to core, but it relies on AppFace because SegmentPublisher::publishSegment calls AppFace::sign (only AppFaces have an associated keychain). If you want it to use a generic Face, then you will need provide the keychain some other way.
Updated by Alex Afanasyev over 10 years ago
What if we make KeyChain global? Like we do with scheduler and io_service?
Updated by Anonymous over 10 years ago
That may be an option. I think the current implementation was part of the effort to avoid global things to help future porting to ndnsim. Just keep in mind that some management things will also need corresponding tweaks:
- ManagerBase::sendResponse (2 args)
- StatusServer::onInterest
- NotificationStream::postNotification (should this also be moved to core?)
Updated by Alex Afanasyev over 10 years ago
Alternative is to explicitly provide KeyChain in constructors of all managers (technically, there should be one KeyChain in the application) and streams... This seems to be much more intrusive change and not sure how much beneficial...
Updated by Anonymous over 10 years ago
Agreed. I don't have any objections to making the keychain global like the scheduler and io service. My intention in #15 was to mention the original design choice.
Updated by Junxiao Shi over 10 years ago
I disagree with having a global KeyChain
.
I also withdraw the agreement with note-11.
It's okay to have a global Scheduler, because it deals with relative time only, which is same across nodes (unless we model hardware clock drift which is generally invisible).
It's unacceptable to have a global key chain, because the possession of keys on different nodes are different.
To use SegmentPublisher
with both AppFace
and ndn::Face
:
- rename
AppFace
toAppFaceBase
, abstract sending and receiving toInternalFace
;AppFaceBase
constructor takes aKeyChain
, and can sign Data with the KeyChain (or simply has agetKeyChain
method - change
SegmentPublisher
to takeAppFaceBase
- create a new
AppFace
class which derives fromAppFaceBase
; its constructor takesndn::Face
andKeyChain
, and passes theKeyChain
to base class constructor, but uses thendn::Face
for sending and receiving
Updated by Junxiao Shi over 10 years ago
20140716 conference call decides that nfd::AppFace
shouldn't own a KeyChain
.
Instead, a KeyChain
is created in main.cpp
and passed to managers.
This makes note-11 feasible without adding a global KeyChain
.
Updated by Lan Wang over 10 years ago
Which task corresponds to these changes in Note #19? Vince is willing to work on it if no one is assigned to work on that.
Updated by Junxiao Shi over 10 years ago
Changes in note-19 could be completed as part of this Task.
Updated by Vince Lehman over 10 years ago
- Status changed from In Progress to Code review
Updated by Vince Lehman over 10 years ago
- Status changed from Code review to Closed
- % Done changed from 90 to 100