[ndnSIM] Is the version 2.0 really stable? Is it encouraged to upgrade to version 2.0?

Jim Gibson gibson at cisco.com
Wed Feb 18 04:43:48 PST 2015


Okay, your message helped a lot.

- I'm running Ubuntu 14.04.01 LTS x86_64, sorry I left that out
  though I don't think it matters.
- I repeated the install today on a clean system and ns-3/ndnSIM compiled
  successfully, good!
- I went back to try to understand what happened on my install attempt.
  My suspicion is that the git repos had a period of mutual
  inconsistency on Monday (2/16) and I had the bad luck to start my
  install during that time. (Or maybe it's pilot error and I should just
  be happy the install is working now. But it was enough of a time sink
  that I'm curious if my analysis is right, so I'm including the details


  - You pointed me at gerrit and jenkins for one of the changes I was
    talking about, 1765.
    - I also mentioned another commit. Looks like it is 1763.
      i.e. both of these are of interest.
       http://gerrit.named-data.net/#/c/1763/   [ndn-cxx change]
       http://gerrit.named-data.net/#/c/1765/   [ndnSIM change]
    - Both these changes (along with 1764) reference redmine #2183, so
      are related. One of the comments for 1763 at the above url says
        "this breaks NFD and ndnSIM. Merging needs to be synchronized"
      I think this means that either change without the other will cause
      build failure: successful build requires both or neither. And so
      the two changes should be made available "at the same time".
  - Looks as if someone (like me) pulling the repos sees a new change as
    of the time where the gerrit event log for the change (at the above
    urls) records the event
        "Change has been successfully merged into the git repository."
    [I'm quite new to the git/gerrit workflow so that's a bit of a guess.]

    Okay, assuming gerrit merge time is what matters, gerrit shows these merge
    times for the changes of interest.
      1763: Change has been successfully merged...,  Feb 16 4:14 PM
      1765: Change has been successfully merged...,  Feb 16 5:27 PM     
    That's a gap of 73 minutes and I think the times are in EST (hope
    so since the sequence below depends on it).
  - Best I can reconstruct...
    - my install effort began in that gap (don't have logs for the
      install, but the logs for the apt-gets of the packages required by
      ndn-cxx are around there).  So my initial snapshot of
      the git repos had 1763 but not 1765. The ns-3/ndnSIM build thus
      failed (with argument count mismatch error).
    - I decided to back off 1763 from ndn-cxx, which was reasonable and
      would have produced a successful build, but also scrubbed my
      install to get a clean ns-3/ndnSIM build and enough time had
      passed that my new ns-3/ndnSIM now included 1765:(
      So the new build now had 1765 but not 1763 and thus also failed
      (with the ENCODE_NEXT_HOP undefined failure seen in
      prior to the successful jenkins run 37 you pointed me at)
    - I backed off 1765 and that build succeeded.

In the event the analysis is right, don't know if there's a way to
shrink the window further or to 0,

Also, as far as I can tell, there's no git command I could have run that
might have called to my attention to the fact that the heads of these
two repos were changing while I was using them. The dates shown by "git
log" are not when gerrit makes the changes available to me in the public
repo (and in this case, the Author date for 1763, which is what git log
shows by default, was back in January, which was another subtlety I
learned about on this exploration.)

Subject: Re: [ndnSIM] Is the version 2.0 really stable? Is it encouraged to upgrade to version 2.0?
From: "Spyridon (Spyros) Mastorakis" <spiros.mastorakis at gmail.com>
Date: Tue, 17 Feb 2015 11:22:31 -0800
CC: <ndnSIM at lists.cs.ucla.edu>
To: Jim Gibson <gibson at cisco.com>


I installed the simulator yesterday evening in my machine with the latest commits for ndn-cxx and ndnSIM and I did not have any problems (OS X 10.10.2).
To my best knowledge, there are no stability issues. The code is stable and the instructions online are accurate.

For the specific commit that you are talking about, you can take a look here:


ndnSIM compiled successfully to all the platforms with the latest commits for both ndn-cxx and ndnSIM.

Please let me know about the operating system that you are using and make sure that you do not have multiple versions of ndn-cxx installed, so that a previous version is possibly used.

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

> On Feb 17, 2015, at 11:02 AM, Jim Gibson <gibson at cisco.com> wrote:
>> the new version of the simulator is fully stable and you are encouraged to install it, because it provides the features of all the recent advancements of NDN research.
>> All issues have been resolved a long time ago as you can see here:
>> http://www.lists.cs.ucla.edu/pipermail/ndnsim/2015-January/001519.html
> A timely thread -- I tried an install of ndnSim2.0 yesterday and once I
> found a combination that built, tried a few examples that are running
> fine, so the above so far seems essentially true.  But, following the
> install instructions, I got build errors from ns-3/waf until I backed
> off the most recent commit to ndn-cxx and also the most recent commit to
> ns-3/src/ndnSim.
> This is my first interaction with the ndn code: no prior experience with
> simulator or path, so maybe I missed something. Is there some documented
> stability point that I overlooked and I'm accidentally on bleeding edge
> code, or is this a hiccup in the continuous integration model or
> something else going on or just expected rough edges?
> [If specifics are of interest, I needed to back off from the commits
> marked -> to the commits marked *>, to fix build errors, with a couple
> of examples shown.]
> Cheers,
> --Jim
> ndnSIM/ndn-cxx
>> bash git log origin/master --format=fuller | more
> -> commit c759a20046bce82a83c7956d3a28739b0be1f982
>> Author:     Jiewen Tan <alanwake.tan at gmail.com>
>> AuthorDate: Thu Jan 29 23:31:09 2015 -0800
>> Commit:     Alex Afanasyev <alexander.afanasyev at ucla.edu>
>> CommitDate: Mon Feb 16 11:39:47 2015 -0800
>>    management: add CachingPolicy to LocalControlHeader
>>    Breaks: NFD:commit:9cfeecaa2ffad1a1be79aed2321dcc7d042ecc5f
>>    Breaks: ndnSIM:commit:ffe2586cfc466935c0632a5a64384f0fda709086
>>    Change-Id: Idcce2b7ee9be31b55f9ec16c17e915d93974bff4
>>    Refs: #2183
> *> commit 190bee2f7df5578718bac83af07b3591a2b8d9fa
>> Author:     Junxiao Shi <git at mail1.yoursunny.com>
>> AuthorDate: Sat Feb 14 19:21:36 2015 -0700
>> Commit:     Junxiao Shi <sunnylandh at gmail.com>
>> CommitDate: Mon Feb 16 10:42:53 2015 -0800
> ns-3/src/ndnSim
> -> commit 8f5a99d521618721ad210e86c867a89379bb1f97
>> Author: Alexander Afanasyev <alexander.afanasyev at ucla.edu>
>> Date:   Fri Feb 13 15:07:06 2015 -0800
>>    NFD: Update code to work with updated LocalControlHeader
>>    implementation
>>    Change-Id: Iafd62348ee1f09f256d54152ce7274cf24d5b9f9
>>    Refs: #2183
> *> commit ffe2586cfc466935c0632a5a64384f0fda709086
>> Author: Spyridon Mastorakis <spiros.mastorakis at gmail.com>
>> Date:   Tue Feb 3 16:21:28 2015 -0800
>>    docs: Adding references to the new TR
>>    Change-Id: I5235462cad6f01751bcd5141b2c3e14585d5baf3
> Sample build errors for each change:
> Fixed by backing off the most recent ndn-cxx commit
>> cxx: examples/tutorial/second.cc ->
>> build/examples/tutorial/second.cc.3.o
>> In file included from ./ns3/ndnSIM/model/ndn-app-face.hpp:24:0,
>>                 from ../src/ndnSIM/apps/ndn-app.hpp:24,
>>                 from ../src/ndnSIM/apps/ndn-consumer.hpp:25,
>>                 from ../src/ndnSIM/apps/ndn-consumer-window.hpp:25,
>>                 from ../src/ndnSIM/apps/ndn-consumer-window.cpp:20:
>> ./ns3/ndnSIM/NFD/daemon/face/local-face.hpp: In member function ‘bool
>> nfd::LocalFace::decodeAndDispatchInput(const ndn::Block&)’:
>> ./ns3/ndnSIM/NFD/daemon/face/local-face.hpp:156:88: error: no matching
>> function for call to ‘ndn::nfd::LocalControlHeader::wireDecode(const
>> ndn::Block&, bool, bool)’
>>               this->isLocalControlHeaderEnabled(LOCAL_CONTROL_FEATURE_NEXT_HOP_FACE_ID));
>>                                                                                        ^
>> ./ns3/ndnSIM/NFD/daemon/face/local-face.hpp:156:88: note: candidate is:
>> In file included from /usr/local/include/ndn-cxx/interest.hpp:30:0,
>>                 from ./ns3/ndnSIM/model/ndn-common.hpp:28,
>>                 from ../src/ndnSIM/apps/ndn-consumer-window.hpp:23,
>>                 from ../src/ndnSIM/apps/ndn-consumer-window.cpp:20:
>> /usr/local/include/ndn-cxx/management/nfd-local-control-header.hpp
>> :265:1: note: void ndn::nfd::LocalControlHeader::wireDecode(const
>> ndn::Block&, uint8_t)
>> LocalControlHeader::wireDecode(const Block& wire, uint8_t encodeMask)
>> ^
>> /usr/local/include/ndn-cxx/management/nfd-local-control-header.hpp:265:1:
>> note:   candidate expects 2 arguments, 3 provided
> Fixed by backing off the most recent ns-3/src/ndnSim commit
>> [1879/2449] cxx:src/ndnSIM/examples/ndn-simple-with-content-freshness/one-interest-requester.cpp -> build/src/ndnSIM/examples/ndn-simple-with-content-freshness/one-interest-requester.cpp.13.o
>> In file included from ./ns3/ndnSIM/model/ndn-app-face.hpp:24:0,
>>                 from ./ns3/ndnSIM/apps/ndn-app.hpp:24,
>>                 from ../src/ndnSIM/examples/ndn-custom-apps/hijacker.hpp:25,
>>                 from ../src/ndnSIM/examples/ndn-custom-apps/hijacker.cpp:22:
>> ./ns3/ndnSIM/NFD/daemon/face/local-face.hpp: In member function ‘bool nfd::Local Face::decodeAndDispatchInput(const ndn::Block&)’:
>> ./ns3/ndnSIM/NFD/daemon/face/local-face.hpp:156:23: error: ‘ENCODE_NEXT_HOP’ is not a member of ‘ndn::nfd::LocalControlHeader’
>>               mask |= ndn::nfd::LocalControlHeader::ENCODE_NEXT_HOP;
>>                       ^
>> ./ns3/ndnSIM/NFD/daemon/face/local-face.hpp: In member function ‘bool nfd::Local Face::isEmptyFilteredLocalControlHeader(const ndn::nfd::LocalControlHeader&) con st’:
>> ./ns3/ndnSIM/NFD/daemon/face/local-face.hpp:199:13: error: ‘ENCODE_INCOMING_FACE _ID’ is not a member of ‘ndn::nfd::LocalControlHeader’      mask |= ndn::nfd::LocalControlHeader::ENCODE_INCOMING_FACE_ID;

More information about the ndnSIM mailing list