Skip to content

Instantly share code, notes, and snippets.

@phylib
Last active March 6, 2017 07:15
Show Gist options
  • Save phylib/04ca8e2dd06b92af8c150b52a63c9fcd to your computer and use it in GitHub Desktop.
Save phylib/04ca8e2dd06b92af8c150b52a63c9fcd to your computer and use it in GitHub Desktop.

Using Community ICN (CICN)

Installation of CICN

After checking out all git-Repositories only libevent-dev and libboost-system-dev are required. Everything else, including PARC libs, are in included in the repositories.

Installation order:

  1. cframework (libparc and longbow)
  2. ccnxlibs (comparable with ndn-cxx)
  3. sb-forwarder (Socket-Based forwarder)
  4. (optional) cicn-plugin (Plugin for Ciscos Vector Packet Processing (vpp) stuff)
  5. (optional) libicnet (Sample apps)

Testing the sb-forwarder

sb-forwarder and libicnet must be compiled and installed for this test.

In this section the sb-forwarder is configured for local use and tested with a simple ping-application:

Step 1: Configure Metis

Metis is the name of the socket-based forwarder.

Start metis
$ metis_daemon [--log all=debug]

Open new terminal and configure metis
Create keypair for metis configuration
$ parc-publickey -c ~/.ccnx/my_keystore.p12 password Description
start configuration tool
$ metis_control -k ~/.ccnx/my_keystore.p12

show connections
> list connections
  27   UP inet4://127.0.0.1:9695 inet4://127.0.0.1:56980 TCP
Tell Metis to listen to local TCP Port 9695
> add listener tcp local0 127.0.0.1 9695

Step 2: Start Ping-Server

Ping-Server and Client App are included in libicnet folder.

$ iPing_Server -l ccnx:/my/pingserver -s 4096

Parameters for Ping-Server

  • -l: Prefix of the pingserver
  • -s: Size of Datapackets

Step 3: Start Ping-Client

$ iPing_Client -p -l ccnx:/my/pingserver
Insert entry ccnx:/my/pingserver/6b8b4567/4096/000101
Received content
4096 bytes from ccnx:/my/pingserver/6b8b4567/4096/000101: time=346 us
Insert entry ccnx:/my/pingserver/6b8b4567/4096/000102
Received content
4096 bytes from ccnx:/my/pingserver/6b8b4567/4096/000102: time=545 us
Insert entry ccnx:/my/pingserver/6b8b4567/4096/000103
Received content
4096 bytes from ccnx:/my/pingserver/6b8b4567/4096/000103: time=676 us
Insert entry ccnx:/my/pingserver/6b8b4567/4096/000104
Received content
4096 bytes from ccnx:/my/pingserver/6b8b4567/4096/000104: time=690 us
Insert entry ccnx:/my/pingserver/6b8b4567/4096/000105
Received content
4096 bytes from ccnx:/my/pingserver/6b8b4567/4096/000105: time=683 us
Insert entry ccnx:/my/pingserver/6b8b4567/4096/000106
Received content
4096 bytes from ccnx:/my/pingserver/6b8b4567/4096/000106: time=653 us
Insert entry ccnx:/my/pingserver/6b8b4567/4096/000107
Received content
4096 bytes from ccnx:/my/pingserver/6b8b4567/4096/000107: time=509 us
Insert entry ccnx:/my/pingserver/6b8b4567/4096/000108
Received content
4096 bytes from ccnx:/my/pingserver/6b8b4567/4096/000108: time=673 us
Insert entry ccnx:/my/pingserver/6b8b4567/4096/000109
Received content
4096 bytes from ccnx:/my/pingserver/6b8b4567/4096/000109: time=721 us
Insert entry ccnx:/my/pingserver/6b8b4567/4096/000110
Received content
4096 bytes from ccnx:/my/pingserver/6b8b4567/4096/000110: time=723 us
Sent = 10 : Received = 10 : AvgDelay 621 us

Parameters for Ping-Client

  • -p: Ping Mode, Send one ping after the other
  • -f: Flooding Mode, Send all pings at the same time
  • -l: Prefix of the pingserver
  • -i: Interval between pings
  • -c: Number of Pings

Step 4: Configure Remote Clients

Add listener to local face
> add listener udp remote0 [local-ip] [local-port]
Configure connection to neighbouring forwarder
> add connection udp conn0 [remote-ip] [remote-port] [local-ip] [local-port]
> list connections
Configure static route
> add route conn0 ccnx:/remote/pingserver [link costs as integer]

These settings (except route) have to be configured on both nodes. Unfortunately ping is currently not working properly over remote connections.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment