Skip to content

5G-I3/ACM-ICN-17_Demo

Repository files navigation

Information-Centric Networking for the Industrial IoT

Code and documentation for our demo @ ACM-ICN-2017

Documentation

  • A two-page abstract describing the work: Abstract
  • A poster which has been presented during the demo session: Poster

Code

CCN-lite

We made modifications to CCN-lite (v1) to include our Publish–Subscribe option. The patch file that contains our modifications is provided in ccn-lite.patch and needs to be applied onto cn-uofbasel/ccn-lite@7b973a737dba47fe6c1ee2d58e06dd9a22209fde.

RIOT

We made modifications to RIOT to include the modified version of CCN-lite. The patch file is provided in RIOT.patch and needs to be applied onto RIOT-OS/RIOT@4a463c105db8b4a3b39cefc5784c25954fbac410. Before applying the patch file, both sections (PKG_URL and PKG_VERSION) in the file need to be adapted to point to the modified CCN-lite version (i.e. after applying ccn-lite.patch).

Demo RIOT Application

The actual demo application is provided in main.c and Makefile. The binary is flashed onto three PhyNodes. The Makefile needs to be adapted, so that the RIOTBASE variable points to the patched RIOT version. In our demo, each of the three PhyNodes has a specific task and the binary is built via NODE_A=1 make ..., NODE_B=1 make ... and NODE_C=1 make ....

On the linux side, the patched CCN-Lite version is built with the USE_WPAN=1 flag and is started on a wpan interface with the -w flag. In our demo, we used a RaspberryPi 3 with an openlabs transceiver. Our IEEE 802.15.4 setup is outlined in this wiki.

ACM ICN Demo Wireshark Post-Dissector

We provide a wireshark post-dissector in acmicndemo.lua that decodes the messages of the control plane. It also provides additional information to provide a comfortable way to filter the pcap trace by PhyNode names or messages types.

Sniffer

In our demo, we used a secondary RaspberryPi 3 to monitor the traffic. This sniffer Raspberry Pi parses the traffic and sends MQTT JSON messages to the gateway Raspberry Pi. The gateway Raspberry Pi then uses the JSON messages to display the topology and the traffic visually in a dashboard. The sniffer scripts can be found in sniffer/pcap_parser.py and sniffer/sniffer.sh.

Dashboard

The information provided by the sniffer is visualized in the dashboard provided in dashboard. JSON messages are received via MQTT and parsed to draw the current topology using the d3.js JavaScript library.