1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
RIOT/sys/net/ccn_lite
Oleg Hahm 93ef4346e9 ccnl: duplicate variable names
Some variables had multiple definitions, but could be removed or
declared with a smaller scope.
2014-08-07 16:31:27 +02:00
..
util ccnl: duplicate variable names 2014-08-07 16:31:27 +02:00
ccn-lite-relay.c core: harmonizes the data type for the process ID 2014-08-01 12:02:54 +02:00
ccnl-core.c ccnl: fix function name 2014-07-18 20:50:37 +02:00
ccnl-core.h core: harmonizes the data type for the process ID 2014-08-01 12:02:54 +02:00
ccnl-ext-appserver.c initialize kernel_pid_t correctly 2014-08-07 16:31:27 +02:00
ccnl-ext-debug.c import ccn lite 2013-11-07 00:37:38 +01:00
ccnl-ext-frag.c converting tabs to spaces in sys (#1439) 2014-07-31 20:51:50 +02:00
ccnl-ext-mgmt.c converting tabs to spaces in sys (#1439) 2014-07-31 20:51:50 +02:00
ccnl-ext.h converting tabs to spaces in sys (#1439) 2014-07-31 20:51:50 +02:00
ccnl-includes.h fix include of crypto 2013-12-20 18:43:43 +01:00
ccnl-pdu.c get rid of not working defines 2013-12-18 19:33:33 +01:00
ccnl-pdu.h moved ccnl include folder in net/include 2013-12-18 19:33:33 +01:00
ccnl-platform.c ccnl: use vtimer instead of rtc 2014-07-18 20:04:13 +02:00
ccnl-platform.h convert all time related datastructure to struct timeval 2013-12-18 19:33:33 +01:00
ccnl-riot-compat.c core: harmonizes the data type for the process ID 2014-08-01 12:02:54 +02:00
ccnl-riot-compat.h ccnl: use a second helper thread to handle e.g. timeouts 2014-07-18 20:01:11 +02:00
ccnl.h converting tabs to spaces in sys (#1439) 2014-07-31 20:51:50 +02:00
ccnx.h converting tabs to spaces in sys (#1439) 2014-07-31 20:51:50 +02:00
Makefile make: detect their module name automatically 2014-06-17 15:49:32 +02:00
README.md repace project by application in documentation 2014-02-18 12:28:32 +01:00

CCN lite port of RIOT

RIOT's support for CCN messages is based on the work of Christian Tschudin from University of Basel (CCN-lite code available here).

The network stack can handle multiple faces based on the transceiver or from the local device via RIOT's message system. To communicate with the stack, one can send messages via RIOTs message system to the CCN-lite relay thread or via a physical network transceiver.

All incoming messages get processed in the main io loop which you can find here.

The public api on the ccn network stack one can find in sys/net/include/ccn_lite (see in file "ccnl-riot.h"). Client related functions are located in sys/net/include/ccn_lite/util see in file (ccn-riot-client.h).

To deal with the ccn lite network stack one only needs these two api declarations.

Running Test Application

A test applications are provided in the example directory.

ccn-lite-client

It uses RIOTs shell for user interaction. The network stack is started on demand in it's own thread. You have to enter ccn <CS size> in the shell.

A bunch of ccn user land code is provide to construct interests and content objects. To request a file e.g. /riot/text, the user land code request the first segment (chunk): /riot/text/0 and stalls until its received. If this chunk has the default chunk size the next chunk is requested, ... If a smaller chunk arrives the user land code prints out the complete file which was requested.

To populate the cache type ccn 100 and populate. You can test this functionality by typing interest /riot/text in the shell. See HOWTO.md in the applications directory.

ccn-lite-relay

It's a stand alone ccn relay without interactive user control. The network stack is started on boot up and is configured set the device address and to serve requests for /riot/text. The ccn stack is ready to server requests coming over the transceiver.

Hardware support

The CCN-lite stack is currently tested and proved to run on the native port of RIOT and the MSBA2 embedded hardware. On the MSBA2 platform (32 Bit) CCN-lite only needs a stack of 800 bytes. It uses the heap for the CS, FIB and PIT.

More

This README is still under construction.