About DES-SERT

 

Testbeds are a tools that yield higher realism for the research of routing protocols than simulation environments. The goal of DES-SERT is to enable the researcher to study routing protocols for MANETs and WMNs in a testbed and to compare them quantitatively as well as qualitatively. For this it is important that routing protocol logic can be implemented independently from operating system kernel internals. Thus, DES-SERT introduces an abstraction from OS specific issues and provides functionality and data structures to implement proactive, reactive, and hybrid routing protocols.

DES-SERT is a framework written as ANSI-C library. While generally usable in many application scenarios, it is primarily used in DES-Mesh, the multi-transceiver wireless mesh network testbed part of the DES-Testbed. DES-SERT enables the implementation of routing protocols via an underlay in user space. Routing daemons based on the framework are seamlessly integrated in the experimentation process of a testbed with experiment automation and repetition. During experiments the parameters of the routing daemons can be altered at any time. All parameters are made available over the network as well as via an interactive shell.  As logging is a vital part when executing and evaluating experiments, an unified interface is provided. The general function set of DES-SERT is as follows:

  • Transmission and reception of data
  • Serialization and de-serialization of data
  • Dynamic adding and modifying of extensions
  • Periodic execution of tasks
  • Logging
  • Runtime parametrization via an interactive shell
  • Network diagnosis support
  • SNMP integration via AgentX protocol

Software Architecture

DES-SERT routing daemons utilize libpcap to receive packets from the network resp. to send them. Locally generated packets or packets destined to this host use a TUN or TAP interface as access point to the operating system protocol stack.

DES-SERT Software Architecture

Message Format

A DES-SERT message is always the service data unit (SDU) of an Ethernet frame. The message, the layer 2.5 protocol data unit (PDU), consists of the DES-SERT header and several extensions. Extensions are a typed serialized data structure and a powerful tool. Routing protocol structures can be defined and placed inside an extension. Extensions can be added and removed on demand on a per hop basis.

DES-SERT Message Format 

Methodology

DES-SERT supports callback functions for several events. Most importantly, callback functions are used to handle packets that are received from the network or enter the daemon via a TUN or TAP interface from the host side. The data can be dropped, sent over the underlay, or injected in the host's protocol stack by using the API of DES-SERT. All receive and transmit callback functions have a priority to determine their order. Thus, complex handling routines can be split into smaller parts. DES-SERT advocates to structure the handling of packets into logical stages that are connected in a pipeline. The stages can order the further handling of a packet, drop it, or request the buffer for the packet to be enlarged via particular return values. If the buffer has to be enlarged, the callback of the particular stage is called again after the memory has been reallocated.

Extensions and priorized callback functions have a synergy effect. Each pipeline stage can implement the handling of a particular extension. The pipeline can be defined, regardless whether a received packet contains the corresponding extensions. If a stage has no work to do as the extension is missing, it signals to continue the packet handling process. This approach can reduce the size and complexity of functions. It leads to a division of the routing logic into units where each part implements independent functionality. We call this approach Extension-Pipelining.

Extension Pipelining

Dependencies

DES-SERT depends on the following software:

Of course a current C stdlib is also required.

Supported Operating Systems

The current version of DES-SERT is available for Linux, FreeBSD, and OSX. DES-SERT can be built on x86, ARM, or MIPS compatible CPUs.

Author

Philipp Schmidt is the original author of DES-SERT.

Debian Packages provided by David Gutzmann and Bastian Blywis.

License

DES-SERT is released under the GNU Public License version 3.