How to use ndnping and ndnpingserver?


As we have ping for IP, we have ndnping for NDN. It is used to measure RTT, but instead of using ICMP Reqquest/Reply packets, ndnping uses Interest and Data packets. The use of ndnping is simple on NDNx routing daemon:

Start ndnpingserver (producer side):

$ ndnpingserver ndn:/ndnx/ping

Start ndnping (consumer side):

$ ndnping ndn:/ndnx/ping

Notice, you should start server side. In IP world, we don’t have to do it because the stack in the kernel already knows what to do when receiving ICMP packets.

The command ndnpingsever will produce content for each arrived interest. Interests are sent by ndnping with a random sequence number to indicate a new and different interest.

When ndnpingserver receive an interest, the server copy the sequence number from interest packet into content packet. So, in this way, ndnping (client side) is able to know if the request was or not satisfied. In other words, if there is a connection to producer or not.

That’s all,
Hope helped you.

CCNPing: possibly undefined macro AM_PROG_CC_C_O


CCNPing is a ping tool for CCNx to test connectivity between two nodes (hosts). When I installed on my Desktop, I didn’t face this problem: “possibly undefined macro AM_PROG_CC_C_O” at ‘make’ step. It seems to be a missconfiguration of autotools or something related to it.

Here is the solution that I’ve found after a little effort.

$ cd ccnping
$ libtoolize --force
$ aclocal
$ autoheader
$ automake --force-missing --add-missing
$ autoconf

And then,

$ ./configure
$ make
$ sudo make install

That’s all,

PyCCN: ‘make check’ fails

Hi there, everybody, hope you’re ok.

I’ve faced a trouble (as usual..) at “make check” step after compiling PyCCN on my Gentoo system. The problem wasn’t big. It was related to python version. I was using 3.3 and PyCCN seems to work only with version 2.x. So, it’s all about changing the version.

$ cd PyCCN
$ ./bootstrap
$ ./configure PYTHON=/usr/bin/python2.7 
$ make && make check
$ su -c 'make install'

That’s all,

ccnputfile and ccngetfile, where did they go?

Hi guys,

I’ve got a weird problem when I tried to use ccnx on another machine (Ubuntu). The strange problem it wasn’t about compilation errors. Everything was ok… until I tried the ccnputfile command. It wasn’t there! why? how?

After a little time, I’ve noticed that ccnputfile and ccngetfile commands are actually Java-based programs. But what? Well, this might not be a common mistake that most of you would do. The problem was that I haven’t installed Java machine yet. How could I? It’s because the test machine is new. I was still configuring it. 🙂

Therefore, I’ve installed openjdk-7 and ant packages on my test machine, configured environment variables and compiled again. Now, everything is ok.

$ sudo apt-get install openjdk-7-jre openjdk-7-jdk ant
$ export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-i386
$ export ANT_HOME=/usr/share/ant

In ccnx directory:

$ ./configure
$ make
$ make test
$ sudo make install

That’s all,

CCNx: Java + Ant issues

Hi, there everybody, how is it going?

Recently, I’ve tried to install CCNx routing protocol on my Gentoo desktop and I got troubles with Java + Ant when I did “make test”. A missconfiguration issue.

My JAVA_HOME and ANT_HOME were okay, but my CLASSPATH variable wasn’t set. It was empty…

$ echo $JAVA_HOME
$ echo $ANT_HOME

And I fixed it by doing:


Append ANT_HOME/bin and JAVA_HOME/bin to PATH:

$ export PATH=$ANT_HOME/bin:$JAVA_HOME/bin:$PATH

That’s all,
Hope I helped you..

(I know, this post is incredibly simple 🙂 )