[ndnSIM] ndnSIM based on NFD 0.5.0

Spyridon (Spyros) Mastorakis mastorakis at CS.UCLA.EDU
Sat Oct 29 14:54:32 PDT 2016


Junxiao,

every time that I have tried to upgrade the version of NFD and ndn-cxx used by ndnSIM, there have been a number of unexpected things that go wrong. Some of them have to do with ndnSIM itself, some of them with NS3.

Like I said before, it is not clear to me right now which NFD features might be incompatible with ndnSIM and I do not want to respond to something that I am not 100% sure about. The way to figure out is to upgrade NFD and try to compile ndnSIM. At that point, a number of things will break. Some of them will be trivial to fix, some other not.

I am sorry, but this is the best answer I can give you right now.

Spyros

Spyridon (Spyros) Mastorakis
Personal Website: http://cs.ucla.edu/~mastorakis/ <http://cs.ucla.edu/~mastorakis/>
Internet Research Laboratory
Computer Science Department
UCLA

> On Oct 29, 2016, at 1:09 PM, Junxiao Shi <shijunxiao at email.arizona.edu> wrote:
> 
> Hi Spyros
> (moved to ndnSIM mailing list)
> 
> Is there a document about ns-3 restrictions and patterns?
> As I understand, ndnSIM and other modules are required to use RandomVariableStream, Scheduler, Logging as described in ns-3 Manual <https://www.nsnam.org/docs/release/3.25/manual/html/index.html>. Other facilities such as Hash Functions, Callbacks, Object model, Tracing are optional.
> 
> ndn-cxx and NFD 0.5.0 has dropped build support on Ubuntu 12.04. ndnSIM 2.1 already does not support Ubuntu 12.04 unless either compiler or Boost is upgraded.
> 
> ndn-cxx 0.5.0 release notes list the following changes, excluding bugfixes/deprecations/deletions and changes in tools:
> New transformation API (Issue #3009)
> Introduce environment variables to set/override transport, pib, and tpm configurations (Issue #2925, Issue #2514)
> Introduce logging facility based on Boost.Log (Issue #3562)
> Introduce Name::deepCopy to allow memory optimizations when working with Name objects (Issue #3618)
> New ndn::security::CommandInterestValidator class (Issue #2376)
> Add StatusDataset client functionality into ndn::nfd::Controller (Issue #3329)
> New FaceUpdateCommand structure for NFD management protocols (Issue #3232)
> breaking change Add Flags and Mask fields to faces/create and faces/update, add Flags field to FaceStatus (Issue #3731, Issue #3732)
> New SafeBag structure for private key export/import (Issue #3048)
> ndn::io::loadBlock and saveBlock (Issue #3741)
> Backport of C++17 std::clamp and std::optional (Issue #3636, Issue #3753)
> Expose ControlResponse as part of Controller::CommandFailCallback (Issue #3739)
> Change security constants to corresponding strongly typed enumerations (Issue #3083)
> Enable KeyChain customization in DummyClientFace (Issue #3435)
> Add validation of StatusDataset and ControlCommand responses in ndn::nfd::Controller (Issue #3653)
> Enable handling of NACKs in Validator and NotificationSubscriber classes (Issue #3332, Issue #3662)
> Several fixes in Scheduler class (Issue #3722, Issue #3691)
> Add option to override processEvents method in DummyClientFace class (Issue #3769)
> NFD 0.5.0 release notes list the following changes, excluding bugfixes/deprecations/deletions and changes in tools:
> Add Adaptive SRTT-based Forwarding strategy (Issue #3566)
> Introduce configurable policy for admission of unsolicited data packets into the content store (Issue #2181).
> Introduce mechanism to update properties (e.g., flags, persistency) of an existing Face (Issue #3731).
> Strategy API update. FIB entry is no longer supplied to the Strategy::afterReceiveInterest method (i.e., FIB lookup is not performed by the forwarding pipelines). When necessary, a strategy can request FIB lookup using Strategy::lookupFib (Issue #3664, Issue #3205, Issue #3679, Issue #3205)
> ForwarderStatus dataset can now be requested only with /localhost/nfd/status/general interest (Issue #3379)
> Optimizations of tables and forwarding, including reduced usage of shared_ptr (Issue #3205, Issue #3164, Issue #3687)
> Display extended diagnostic information if NFD crashes (Issue #2541)
> Visualize NACK counters in nfd-status output (Issue #3569)
> Extend management to process the new LocalFieldsEnabled attribute when creating/updating Faces (Issue #3731)
> Switch logging facility to use Boost.Log (Issue #3562)
> Refactor implementation of RIB Manager to make it uniform with other managers (Issue #2857)
> Miscellaneous code refactoring (Issue #3738, Issue #3164, Issue #3687, Issue #3205, Issue #3608, Issue #3619, Issue #2181)
> 
> I wonder what's the major difficulty of integrating NFD 0.5.0 into ndnSIM?
> Can you point out which items are in conflict with ns-3 restrictions and patterns, or what updates have made the compliance situation worse than NFD 0.4.1?
> 
> Yours, Junxiao
> 
> On Sat, Oct 29, 2016 at 12:16 PM, Spyridon (Spyros) Mastorakis <mastorakis at cs.ucla.edu <mailto:mastorakis at cs.ucla.edu>> wrote:
> To clarify things:
> 
> the upcoming release of ndnSIM (v2.2) will be based on NFD 0.4.1. Our initial goal for the release after ndnSIM 2.2 is to be based on NFD 0.5, however, we really hope that it might be based on the latest (at that time) version of NFD.
> 
> The reason that ndnSIM 2.2 will be based on NFD 0.4.1 and not 0.5 is that NFD 0.5 contains a lot of internal restructuring that is not clear to us how easy or hard would be to integrate with ndnSIM. ndnSIM is based on NS3 and the NS3 world has some certain restrictions and patterns that sometimes make the integration of NFD features really hard.
> 
> I wish we had more manpower to be able to keep up more actively.
> 
> Thank you,
> Spyros

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.lists.cs.ucla.edu/pipermail/ndnsim/attachments/20161029/81b1435f/attachment.html>


More information about the ndnSIM mailing list