Software

Systems oriented research requires to implement prototypes in order to evaluate new ideas and concepts. We are constantly creating software prototypes and some of them are released to the public and maintained as far as our time permits. Below is a list of software tools and libraries that have been written by our research group.

Internet Management Technologies

The research on Internet management technologies has led to a number of open source implementations:


snmpdump - dump SNMP messages in XML or CSV format

The snmpdump program has been written to analyze SNMP traces. It extracts SNMP messages out of pcap trace files and renders the messages in an XML or CSV format which can be easily processed using scripts written in scripting languages. More information can be found in the following documents:

  1. J. Schönwälder: Simple Network Management Protocol (SNMP) Traffic Measurements and Trace Exchange Formats. RFC 5345, October 2008
  2. G. van den Broek, J. Schönwälder, A. Pras, M. Harvan: SNMP Trace Analysis Definitions. 2nd Conference on Autonomous Infrastructure, Management and Security (AIMS 2008), Springer LNCS 5127, July 2008
  3. J. Schönwälder, A. Pras, M. Harvan, J. Schippers, R. van de Meent: SNMP Traffic Analysis: Approaches, Tools, and First Results. 10th IFIP/IEEE International Symposium on Integrated Network Management (IM 2007), May 2007

Download: [https://github.com/schoenw/snmpdump]


scli - snmp command line interface

The scli package was written to address the need for small and efficient SNMP-based command line utilities to monitor and configure network devices and host systems. The programs contained in the scli package are proud of being specific rather than generic. Generic SNMP tools such as MIB browsers or simple command line tools (e.g. snmpwalk) are hard to use since they expose too many protocol details. And in most cases, they fail to present the information in a format that is easy to read and understand by human operators. More information can be found in the following documents:

  1. J. Schönwälder, V. Marinov, M. Burgess: Integrating cfengine and scli: Managing Network Devices like Host Systems. IEEE/IFIP Network Operations and Management Symposium (NOMS 2008), April 2008
  2. J. Schönwälder: Evolution of Open Source SNMP Tools. 3rd System Administration and Networking Conference (SANE 2002), May 2002
  3. J. Schönwälder: Specific Simple Network Management Tools. 15th Usenix Systems Administration Conference (LISA 2001), December 2001

Download: [https://github.com/schoenw/scli]


ncclient - netconf client API written in Python

ncclient is a Python library that facilitates client-side scripting and application development around the NETCONF protocol. ncclient can accommodate future protocol extensions, supports synchronous and asynchronous RPC calls, request pipelining and ensures thread safety.

  1. R. Enns, M. Björklund, J. Schönwälder, A. Bierman: Network Configuration Protocol (NETCONF). RFC 6241, June 2011
  2. S. Bhushan, H.M. Tran, J. Schönwälder: NCClient: A Python Library for NETCONF Clients. 9th IEEE International Workshop on IP Operations and Management (IPOM 2009), Springer LNCS 5843, October 2009

ncclient is used in the by vendors and external projects: Openstack Neutron, Junos EZ, GRNET and CESNET.

Download: [https://github.com/vbajpai/ncclient]


libsmi - library to access smi definitions

The core of the libsmi software is a library that allows network management applications to access SMI MIB module definitions. On top of this library, there are tools to check, analyze dump, convert, and compare MIB definitions. Finally, the distribution contains a steadily maintained and revised archive of all IETF and IANA maintained standard MIB and PIB modules. More information can be found in the following documents:

  1. J. Schönwälder: Translation of Structure of Management Information Version 2 (SMIv2) MIB Modules to YANG Modules. RFC 6643, July 2012
  2. F. Strauß, J. Schönwälder: Next Generation Structure of Management Information (SMIng) Mappings to the Simple Network Management Protocol (SNMP). RFC 3781, May 2004
  3. F. Strauß, J. Schönwälder: SMIng - Next Generation Structure of Management Information. RFC 3780, May 2004
  4. J. Schönwälder: Characterization of SNMP MIB Modules. 9th IFIP/IEEE International Symposium on Integrated Network Management (IM 2005), May 2005
  5. J. Schönwälder, A. Müller: Reverse Engineering Internet MIBs. 7th IFIP/IEEE International Symposium on Integrated Network Management (IM 2001), May 2001
  6. J. Schönwälder, F. Strauß: Next Generation Structure of Management Information for the Internet. 10th IFIP/IEEE International Workshop on Distributed Systems: Operations and Management (DSOM 1999), Springer LNCS 1700, October 1999
  7. K. McCloghrie, D. Perkins, J. Schönwälder: Conformance Statements for SMIv2. RFC 2580, STD 58, April 1999
  8. K. McCloghrie, D. Perkins, J. Schönwälder: Textual Conventions for SMIv2. RFC 2579, STD 58, April 1999
  9. K. McCloghrie, D. Perkins, J. Schönwälder: Structure of Management Information Version 2 (SMIv2). RFC 2578, STD 58, April 1999

The tools that come with libsmi are widely used for syntax checking purposes. The libsmi library is also used by other open source projects such we wireshark network protocol analyzer.

Download: [http://www.ibr.cs.tu-bs.de/projects/libsmi/]


gsnmp - gnet/glib snmp protocol implementation

The gsnmp software package provides an SNMP protocol stack based on the glib and gnet C libraries. Its primary use is in the scli software package described above. However, gsnmp comes with some standalone programs implementing among other things the SNMP URI format. More information can be found in the following documents:

  1. D. Black, K. McCloghrie, J. Schönwälder: Uniform Resource Identifier (URI) Scheme for the Simple Network Management Protocol (SNMP). RFC 4088, June 2005

Download: [https://github.com/schoenw/gsnmp]


scotty - network management extension for the Tcl language

The scotty software package consists of (i) the Tnm extension of the Tool Command Language (TCL) providing a high-level scripting interface for SNMP and some related protocols and of (ii) a graphical interactive network editor written using Tk/Tcl. More information can be found in the following documents:

  1. J. Schönwälder: Evolution of Open Source SNMP Tools. 3rd System Administration and Networking Conference (SANE 2002), May 2002
  2. J. Schönwälder: Married with Tcl. 1st European Tcl/Tk User Meeting, TU Hamburg-Harburg, June 2000
  3. J. Schönwälder, H. Langendörfer: Tcl Extensions for Network Management Applications. 3rd Usenix Tcl/Tk Workshop, July 1995

Download: [https://cnds.eecs.jacobs-university.de/svn/schoenw/src/scotty/]

Network Measurement and Visualization


nfql - network flow query language

The Network Flow Query Language (NFQL) is a stream-oriented query language to locate patterns in collections of network flow records. The query language allows to describe patterns in a declarative and orthogonal fashion, making it easy to read queries and flexible enough to describe complex relationships among a given set of flows. It can process flow-records, aggregate them into groups, apply absolute (or relative) filters and invoke Allen interval algebra rules. More information can be found in the following documents:

  1. V. Bajpai, J. Schönwälder: Network Flow Query Language – Design, Implementation, Performance and Applications. IEEE Transactions on Network and Service Management 14(1), March 2017
  2. V. Bajpai, J. Schauer, J. Schönwälder: NFQL: A Tool for Querying Network Flow Records. 13th IFIP/IEEE International Symposium on Integrated Network Management, May 2013
  3. V. Perelman, N. Melnikov, J. Schönwälder: Flow Signatures of Popular Applications. 12th IFIP/IEEE International Symposium on Integrated Network Management, May 2011
  4. K. Kanev, N. Melnikov, J. Schönwälder: Implementation of a Stream-based Flow Query Language. 4th Conference on Autonomous Infrastructure, Management and Security (AIMS 2010), Springer LNCS 6155, June 2010
  5. V. Marinov, J. Schönwälder: Design of a Stream-based IP Flow Record Query Language. 20th IFIP/IEEE International Workshop on Distributed Systems: Operations and Management (DSOM 2009), Springer LNCS 5841, October 2009

Download: [https://github.com/vbajpai/nfql]


happy - happy eyeballs probing tool

happy is a TCP happy eyeballs probing tool. It uses non‐blocking connect(…) calls to concurrently establish connections to a number of TCP endpoints. This tool is particularly useful to determine whether applications implementing the happy eyeball algorithm will use IPv4 or IPv6 endpoints if both are available. More information can be found in the following documents:

  1. V. Bajpai, J. Schönwälder: Understanding the Impact of Network Infrastructure Changes using Large-Scale Measurement Platforms. 15th IFIP/IEEE International Symposium on Integrated Network Management (IM 2017), May 2017
  2. V. Bajpai, J. Schönwälder: Measuring the Effects of Happy Eyeballs. Applied Networking Research Workshop, July 2016

Download: [https://github.com/vbajpai/happy]


lmapd - large-scale measurement agent protocol daemon

lmapd is the proof-of-concept daemon implementation for the Large-Scale Measurement Platforms (LMAP) information and data model developed by the LMAP working group of the IETF. More information can be found in the following documents:

  1. J. Schönwälder, V. Bajpai: A YANG Data Model for LMAP Measurement Agents. RFC 8194, August 2017
  2. T. Burbridge, P. Eardley, M. Bagnulo, J. Schönwälder: Information Model for Large-Scale Measurement Platforms (LMAPs). RFC 8193, August 2017
  3. V. Bajpai, J. Schönwälder: A Survey on Internet Performance Measurement Platforms and Related Standardization Efforts IEEE Communications Surveys and Tutorials 17(3), August 2015
  4. M. Bagnulo, T. Burbridge, S. Crawford, P. Eardley, J. Schönwälder, B. Trammell: Building a Standard Measurement Platform. IEEE Communications Magazine 52(5), May 2014

Download: [https://github.com/schoenw/lmapd]

Network Technologies for the Internet of Things


contiki-snmp - snmp agent for the contiki operating system

The Contiki SNMP agent is a streamlined SNMP agent implementation for embedded computers that runs on the Contiki operating system. The implementation has been specially designed to fit on resource constrained devices. Our implementation supports the GET, GETNEXT and SET operations, the SNMPv1 and SNMPv3 message processing models, and the User-based Security Model with the HMAC-MD5-96 authentication and CFB128-AES-128 symmetric encryption protocols. More information can be found in the following documents:

  1. A. Sehgal, V. Perelman, S. Kuryla, J. Schönwälder: Management of Resource Constrained Devices in the Internet of Things. IEEE Communications Magazine 50(12), December 2012
  2. K. Korte, A. Sehgal, J. Schönwälder: A Study of the RPL Repair Process using ContikiRPL. 6th Conference on Autonomous Infrastructure, Management and Security (AIMS 2012), Springer LNCS 7279, June 2012
  3. S. Kuryla, J. Schönwälder: Evaluation of the Resource Requirements of SNMP Agents on Constrained Devices. 5th Conference on Autonomous Infrastructure, Management and Security (AIMS 2011), Springer LNCS 6734, June 2011

Download: [https://github.com/sehgalanuj/contiki-snmp]


contiki-dtls - dtls implementation for the contiki operating system

The Contiki (D)TLS software package provides an implementation of the TLS and DTLS protocols using a pre-shared key cipher suite (TLS PSK WITH – AES 128 CCM 8) for the Contiki operating system. More information can be found in the following documents:

  1. A. Sehgal, V. Perelman, S. Kuryla, J. Schönwälder: Management of Resource Constrained Devices in the Internet of Things. IEEE Communications Magazine 50(12), December 2012

Download: [http://github.com/sehgalanuj/contiki-tls-dtls]


contiki-syslog - syslog and ntp implementation for the contiki operating system

The Contiki Syslog software package is designed to provide a Syslog and related NTP services to the Contiki operation system. This allows for easy collection of debug messages to a Syslog server and also synchronize time in Contiki applications with a NTP server.

Download: [http://github.com/sehgalanuj/contiki-ntp-syslog]

Network Security and Anonymization


libanon - library of anonymization functions

The C library libanon provides a collection of anonymization functions. The library was originally created to support data anonymization in the snmpdump tool. For this purpose, anonymization mechanisms were needed that can protect the lexicographic ordering of data. More information can be found in the following documents:

  1. M. Harvan, J. Schönwälder: Prefix- and Lexicographical-order-preserving IP Address Anonymization. 10th IEEE/IFIP Network Operations and Management Symposium, April 2006

Download: [https://github.com/schoenw/libanon]


openssh-resume - resume ssh sessions

An implementation of an experimental feature that allows clients to resume SSH sessions without having to compute new session keys.

  1. J. Schönwälder, G. Chulkov, E. Asgarov, M. Cretu: Session Resumption for the Secure Shell Protocol. 11th IFIP/IEEE International Symposium on Integrated Network Management (IM 2009), June 2009