GSoC/GCI Archive
Google Summer of Code 2012


License: GNU General Public License (GPL)

Web Page:

Mailing List:

Freifunk is an initiative to develop tools for free mesh networks and support communities deploying networks. Freifunk offers a specialized firmware. With this firmware, it is relatively easy to bring up new wireless mesh networks using ad-hoc WLAN communication layer 2 and layer 3 routing Open Source routing protocols. Other tools developed in and with the freifunk community include low cost wifi telephone devices and wlan meter tools. Originated in Germany, Freifunk has been deployed successfully in many countries. The OLPC project in Afghanistan uses freifunk for its mesh deployments to distribute digital books, news and educational media. In Ghana freifunk is used to bridge the digital divide in villages. In Vietnam freifunk is used to offer Internet connections at Free and Open Source events around the world. In Europe and the Americas city and village networks lower costs for communities and small and medium sized companies, that share common Internet connections, ADSL, Telephone or Satellite uplinks in remote regions. -- FREIFUNK/OPENWRT -- The Freifunk OpenWrt Firmware is a specially adapted Linux Version that is developed for routers and mobile devices. The main aim of the firmware is to make it easier and faster to set up wireless mesh networks. Designed as an embedded Linux for low powered devices the system can be adapted for a wide variety of mobile devices. Freifunk supports ad-hoc WLAN communication and layer 2 and 3 routing with different routing protocols. By building the Freifunk embedded firmware together with the OpenWrt team we are developing an easy to use self-configuring, self-fixing and self-tuning mesh network ( -- PLUGINS -- Current test version on SVN ( are enabling developers to create plugins for the firmware. These plugins will enable users to offer locations based services, local search, router CMS, local fm radio distribution via routers, and many more. -- OPEN WIRELESS COMMUNITIES AROUND THE WORLD -- If you interested to read more about free wireless networks around the world, please visit the global Freifunk newswire at


  • A throughput mesurment tool for B.A.T.M.A.N. My proposal is to develop a network testing tool for BATMAN, focused in particular on throughput. The idea is to develop the application in kernel space and design it to work at layer 2. This should lead to more precise and reliable results if compared to those obtained with traditional, user-space, testing tools (like iperf or netperf).
  • B.A.T.M.A.N. Backwards Combatibility implementation through the use of tlv information elements Currently B.A.T.M.A.N. lacks any form of backwards compatibility. This project aims to create a generic framework for construction and parsing of type length value information elements so as the future versions are backwards compatible.
  • Client-side graphs drawing (wlan slovenia) I propose library for client-side graph drawing in HTML5 + JavaScript. The library would be general enough to also support other projects as there is a great need for a plotting JS library in the open-source community. In wlan slovenia, the library will be used to visualize graphs, which display data about the network and nodes.
  • CNML Explorer My proposal is developing a desktop application to manage CNML files. It will be useful for people that administer zones, workers that install nodes... etc. CNML files offer a lot of possibilities that are not being exploited actually. It can also be used for statistics, data visualization, which will help people in their studies, or thesis about libre networks. This application will load a CNML file and show its contents in friendly windows. Users will be able to filter nodes or zones by name, coordinates or hardware used.
  • Convert core nodewatcher components to new modular backend The old (2.0) version of nodewatcher is not very modular and contains a lot of hard-coded things for the wlan slovenia network. The aim of this project is to make 3.0 more modular and inter-operable with other community wireless mesh networks.
  • Equipment warehouse/inventory plugin (wlan Slovenija) During GSoC I will implement warehouse/inventory module for the nodewatcher system. This module will establish inventory control system for equipment used at Wlan Slovenija organization. Network administrators will be able to assign internal identifier codes to equipment (routers, antennas, pigtails adapters) and tools (RJ45 crimp tools). Additionally, they will be able to relocate/assign inventory from the database to different people and/or hot spot locations.
  • Generic Fragmentation/Assembly Framework for batman-adv Create a framework for batman-adv to allow different packet types to be fragmented and assembly when transmitted on links with limited packet size.
  • integration for qMp system Summary: The objective of the project is to provide a software solution to easy integrate the characteristics into the QMP system. Why this is needed: Currently QMP is a working system, that can be used to easy deploy a Mesh Network but there are several missing features. One of them is the integration with the community. It can also be used as a template for the integration of other Network Communities like Freifunk, Funkfeuer, AWMN, etc.
  • Improve the OLSRd mDNS plug-in The OLSRd mDNS plug-in allows the distribution of mDNS (multicast DNS i.e. avahi/bonjour/zeroconf) messages over an OLSR network. This is substantially achieved by sniffing for mDNS packets on the final users' networks (usually HNA networks), encapsulating them inside OLSR protocol messages, exploiting OLSR native message transfer mechanisms, and decapsulating the mDNS packets at all the other end users' networks. The plug-in has been developed by members, however we would like to address some important issues that have arised during deployment: loops. If two mDNS plug-in enabled OLSR routers are attached to the same HNA network, then mDNS packets will loop back and forth between the two, also flooding the whole OLSR network. For the moment the temporary solution to this problem is to enable the plug-in on one router at a time on the same HNA. A real solution to the problem would be the following: usually mDNS packets have a TTL != 1, so: capture only mDNS packets with TTL != 1 when decapsulating mDNS packets, set TTL = 1 where TTL is the IP Time-to-live field capture rate. mDNS packets are incapsulated into OLSR messages, which in turn are contained in OLSR packets that are sent at the wireless basic rate (i.e. 1 or 2 Mbps) over the whole network. Thus a big amount of mDNS captured packets in a small time can slow down the whole network. A solution to this is to add a plug-in configuration option to set the maximum packet capture rate.
  • Oauth login for Google and Facebook on OpenWrt routers Oauth for OpenWrt routers aims to support authentication via OAuth services (Google, Facebook...) and run on the same box with WifiDog. It is using Luci and provides an alternative to single Auth Server for WifiDog. There is no need to setup a separated machine for authentication.
  • Rewrite Freifunk OpenWrt Imagebuilder, improve meshwizard The goal of this project is to rewrite and improve the Freifunk OpenWrt imagebuilder/meshwizard code i've written during the last year. Both together make setting up of new freifunk nodes with olsr much easier for the average user. I hope this will help to spread the idea of community networks and to get more novice users to participate in freifunk.
  • Web shop for router kits Adding a simple web shop for kits of preinstalled routers with antennas would be a great addition that would help even non technical people get involved with the wlan project. This is also important for people to deploy nodes in rural areas where there might be nobody else who already deployed a node. So providing them with a prepared kit ready to mount would help them greatly. I would also implement all the major locally excepted payment options.