Add New Page: You are not allowed to add pages Select section/namespace. New page title.

Commotion Roadmap

This is the main roadmap for the Commotion project, and is mean to give a general overview of the direction of the project. More specific tasks pertaining to actually implementing the roadmap can be found in our various repositories on


Commotion is intended to be usable across a variety of operating systems. These are the release distributions of the Commotion platform.

Commotion Router

Status: Stable, actively developed. Our current flagship and only supported platform, this is the overall driving force behind new user- and implementer- focused features.

v1.2 (Winter 2014-2015)

  • Add support to interface for multi-band radios
  • Initial barrier-breaker port
  • New build system
  • DNS Loopback
  • CSMv2
  • CLI-only builds
  • Replace nodogsplash w/ new luci_splash

v2.0 (Summer 2015)

  • Deprecate all scripts, use commotiond for backhaul configuration
  • Deprecate mDNS for app announcements, use a new, custom message passing protocol
  • Define and distribute hostnames for apps
  • IPv6
  • Javascript luci-commotion
  • End-to-end encryption via MSP
  • Babel support
  • Enhanced update utility
  • Improved visualizer

Commotion Client

Status: Incomplete, on hold. The cross-platform desktop client for Commotion, written with Qt and Python and intended to run on Windows, Mac, and Linux platforms.


  • Core application
    • Single application support
    • Cross-application instance messaging
    • Crash reporting
    • With PGP encryption to the Commotion Team
    • Crash Reporting Window
  • Main Window
  • Menu Bar
    • Automatically displays all core and user loaded extensions
    • Task Bar
    • Extension Manager
    • Messaging manager
      • Allow extensions to talk to commotion IPC client
        • CSM and Commotiond support
  • Core Extensions
    • Commotion Config File Editor
    • Setup Wizard (basic config walkthough)
    • Application Viewer
    • Application Advertiser
    • Welcome Page
    • Network Security Menu
    • Network Status overview
  • Setting menu
    • Core application settings
    • Extension settings menu
      • Settings for any extensions with custom settings pages
  • Control Panel settings menu
    • A client agnostic control panel tool for mesh-network settings in an operating systems generic control panel.
  • Linux Support
  • Commotion Human Interface Guidelines compliant interface
  • In-Line Documentation tranlation into developer API
  • User Settings Manager
    • un-encrypted user settings for network configuration


  • Setting menu
    • User settings
  • Core Extensions
    • Network vizualizer
    • User Settings [applications]
    • User Settings [Serval & Security]
    • REMOVE Network Security Menu as it will be replaced with user settings
  • User Settings Manager
    • GPG Encrypted user settings
    • multi-user login/logout support


  • Windows Support
  • OSX Support

Commotion Android

Status: Unstable, on hold. The Android client for Commotion.


  • IBSS-RSN Support
  • Support Serval key management
  • Integrate Commotion Service Manager
  • Update status page
  • Update settings menu items & features
  • Update main menu items
  • Use standard Android system icons
  • Create application start page
  • Package service browser for Android
  • Handle gateway route
  • Additional handset support


  • Detect and present Commotion-compatible Android apps
  • Integrate commotiond

Commotion OpenBTS

Status: Unstable, on hold. This is the live image for standing up an OpenBTS GSM access point backed by a Commotion network.


  • Update OLSRd and plugins to current version.
  • Update Serval to current version.
  • Add commotiond support.
  • Add support for OsmoBTS in addition to OpenBTS.
  • Add support for additional hardware platforms.


Commotion is made up of a number of different software components, each with their own version and roadmap.


Status: Unstable, actively developed. Core, cross-platform components of Commotion.

v1.0 (Spring 2015)

  • libcommotion
    • Split out from commotiond.
    • Add support for fixint types.
    • Add basic math functionality to numerical types.
    • Finish set of string manipulation functions.
    • Rewrite debug macros to use unified error codes.
    • Add utility functions for dealing with semantic versioning.
    • Add utility functions for dealing with URIs.
    • Add system for constructing schemas to co_list and co_tree, compliant with a subset of JSON-schema.
    • Rewrite event loop to use message-oriented callbacks for async operation.
    • Replace/augment large-buffer dump/import functions in object system with serial read/write functions.
    • Improve plugin system with contract-defined hooks and subsystems.
    • Rewrite socket system to ditch prototype system, use API inspired by Berkeley sockets, zeromq, nanomsg, libuv.
    • Add UDP support to socket library.
    • Add TCP support to socket library.
    • Add netlink sockets to socket library.
    • Add raw sockets to socket library.
    • Finish process command/control utilities.
    • Ensure thread-safety; rewrite relevant parts of data structures to be lockless, all non-network subsystems should carry their own state.
    • Clean up headers, dependencies and CMake for modular compile of the library.
    • Abstract out selection polling mechanisms in loop and socket to use other interfaces besides epoll.
  • commotiond
    • Add connect subsystem
      • Write linux networking plugin
      • Hook into netlink for acquiring/manipulating routes
      • Move OLSRd plugin into connect subsystem
      • Write babel plugin
      • Hook into ubus for OpenWRT interoperability
      • Write plugins for other platforms
    • Add messaging subsystem
      • Create design document for messaging bus protocol and API
      • Write MDP plugin for messaging subsystem
    • Add nameservice subsystem
    • Add app subsystem
  • commotiond cli
    • Add quit command
    • Add TCP connection capability
    • Implement multi-call binary support for unified builds
    • Add mmap connection capability for multi-call builds
    • Add history buffer

Commotion Service Manager

Status: Stable, actively developed. The service discovery and management daemon for Commotion.

v2.0 (Winter 2014-2015)

  • Replace Avahi-daemon on OpenWRT, connect to it on other platforms.
  • Configurable schema for app announcements.
  • Utilize updated libserval.


  • Port to custom message layer rather than mDNS.

LuCI Commotion

Status: Stable, actively developed. The router-based web interface for Commotion, based on OpenWRT's LuCI framework.

v1.2 (Spring 2015)

  • Import / Export functionality for Commotiond profiles
  • re-runnable setup wizard
  • Status-page auto-updating values
  • Updated Nearby Mesh devices
  • Command Line Setup Wizard (Possibly not in this repo as it will not be luci-based.)
  • Babel Integration

v2.0 (Summer 2015)

  • lua-info plugin for less memory-intesive access to OLSR info
  • mesh-agnostic network-viz
  • Explore porting to Barrier Breaker Javascript callbacks.


Status: Stable, actively developed. External project. This is the current default routing daemon for Commotion. We maintain a fork with two custom plugins, but for the main roadmap please see the external project page at


Status: Stable, actively developed. External project. This is a platform for establishing an encrypted overlay network. We maintain a stable fork, but for the main roadmap please see the external project page at


  • Network Coding (radio layer, multipath TCP, others)
  • IBR-DTN Support
  • Better Rhizome integration
  • Border Router Discovery Protocol (BRDP)
  • AP Handoff