The Transport Library

Introduction

This library provides transport services and socket API for applications willing to communicate using the hICN protocol stack.

Overview:

  • Implementation of the hICN core objects (interest, data, name..) exploiting the API provided by libhicn.

  • Connectors for connecting the application to either the hicn-plugin or the hicn-light forwarder.

  • Transport protocols (RAAQM, CBR, RTC)

  • Transport services (authentication, integrity, segmentation, reassembly, naming)

  • Interfaces for applications (from low-level interfaces for interest-data interaction to high level interfaces for Application Data Unit interaction)

Build Dependencies

Ubuntu

  • libparc

  • libmemif (linux only, if compiling with VPP support)

  • libasio

If you wish to use the library for connecting to the vpp hicn-plugin, you will need to also install vpp, the vpp libraries and the libmemif libraries:

  • DEB packages:

    • vpp

    • vpp-lib

    • vpp-dev

You can get them either from from the vpp packages ot the source code. Check the VPP wiki for instructions.

macOS

We recommend to use HomeBrew for installing the libasio dependency:

 brew install asio

Download, compile and install libparc:

 git clone -b cframework/master https://gerrit.fd.io/r/cicn cframework && cd cframework
 mkdir -p libparc.build && cd libparc.build
 cmake ../libparc
 make
 make install

Libparc will be installed by default under /usr/local/lib and /usr/local/include. Since VPP does not support macOS, the hicn-plugin connector is not built.

Build the library

From the project root folder:

 cd libtransport
 mkdir build && cd build
 cmake ..
 make

Compile options

The build process can be customized with the following options:

  • CMAKE_INSTALL_PREFIX: The path where you want to install the library.

  • CMAKE_BUILD_TYPE: The build configuration. Options: Release, Debug. Default is Release.

  • ASIO_HOME: The folder containing the libasio headers.

  • LIBPARC_HOME: The folder containing the libparc headers and libraries.

  • VPP_HOME: The folder containing the installation of VPP.

  • LIBMEMIF_HOME: The folder containing the libmemif headers and libraries.

  • BUILD_MEMIF_CONNECTOR: On linux, set this value to ON for building the VPP connector.

An option can be set using cmake -DOPTION=VALUE.

Install the library

For installing the library, from the cmake build folder:

 sudo make install