D3.1 Report on the IRATI’s first phase prototype, available
Just before Christmas, D3.1, reporting on IRATI’s first phase prototype, is available at the deliverables session. The following paragraphs briefly summarize the contents of the report.
This deliverable presents the first phase integrated prototype of the IRATI project. The prototype implements core parts of a RINA stack over Ethernet for a Linux-base OS, spans both kernel and user spaces and provides different software packages implementing the various functionalities.
The kernel space components mainly lay on the fast-path, implementing the forwarding functionalities through the use of EFCP, RMT, PDU Forwarding table, normal and shim IPC Processes (i.e. the shim IPC over Ethernet) components. These components are bound together by the KIPCM (the kernel IPC manager), the KFA (the kernel flow allocation manager) and the RNL (the Netlink manager) layers that also implement the kernel/user interface.
The kernel part of the IRATI stack must jointly work with its counterpart in user space which provides the remaining functionalities through a well defined set of user-space libraries and OS processes.
The libraries wrap the kernel-space APIs (syscalls and Netlink messages) and provide additional functionalities such as:
- Allow applications to use RINA natively, enabling them to allocate and deallocate flows, read and write SDUs to these flows, and register/unregister to one or more DIFs.
- Facilitate the IPC Manager to perform the tasks related to IPC Process creation, deletion and configuration.
- Allow the IPC Process to configure the PDU forwarding table, to create and delete EFCP instances, to request the allocation of kernel resources to support a flow etc.
These C/C++ based libraries allow IRATI adopters to develop native RINA applications. Language bindings to interpreted languages (i.e. Java) are also made available by wrapping the exported symbols with the target language native interface (i.e. JNI). Upon these bindings OS daemons such has the IPC Process and the IPC Manager have been developed and are ready to be used for testing and experimentation purposes.
The prototype provides frameworks for configuration, building and development tasks. These frameworks follow common and well established practices with particular emphasis on usability features. The prototype configuration framework automatically adapts to different OS/Linux based systems, e.g. Debian/Linux, Fedora, Ubuntu. The building framework allows to build the whole stack unattended. The software development framework provides a RAD environment.
However, the phase 1 prototype has known limitations which are currently being addressed and will be resolved in the next prototypes. They can be summarised as follows:
- Only flows between adjacent IPC Processes are supported, since the implementation of the link-state routing specification provided in D2.1 is planned for phase 2.
- Only unreliable flows are supported, since the Data Transfer Control Protocol (DTCP) is planned for phase 2.
- The prototype uses simple policies, i.e. only basic functional configuration of most components.
This document presents the relevant choices, protocols and methodologies on software design, development, integration and testing agreed within the partners for the scopes of the first phase prototype implementation.
The software meets both the features and the stability requirements for experimentation and has been released to WP4 (MS7). The core functionalities available in the presented prototype will be further enhanced in the upcoming project prototypes which will be made available in the next periods as part of deliverables D3.2 and D3.3.