GSoC/GCI Archive
Google Summer of Code 2009

Freifunk

License: GNU General Public License (GPL)

Web Page: http://wiki.freifunk.net/Ideas

Mailing List: http://freifunk.net/mailman/listinfo/wlanware

[IMAGE http://wiki.freifunk.net/images/7/70/Logo_ffn_170x165.gif]

The Freifunk movement develops software for free local wireless infrastructures like mesh networks to share local services and Internet connections. Freifunk Linux Firmwares based on OpenWrt are running on thousands of routers worldwide. Commercially adapted versions are used in hundred of thousands of devices.

It is the goal of Freifunk to make it easy to set up local wireless networks with local services. Freifunk meaning free wireless is the pendant to free and open source software or freely licensed content. The tools used in Freifunk networks are exclusively open source.

Open source mesh networks are more cost efficient and offer new usage cases (local content sharing, local fm radio networks, sensor networks, distant visual observation etc.) and business opportunities. Freifunk is comparable to an open digital space like public streets and parks.

Freifunk software tools and firmwares are available in different ¨flavours¨ adapted to local conditions and policies of communities and local ISPs (for example a business man in a small town, who sets up a mesh network for his community and gets paid for providing Internet, whereas local exchange inside the network is freely available).

The Freifunk community encompasses people working on open source software, open hardware, the actual set up of infrastructures and freely licensed content.

-- FREIFUNK SUMMER OF CODE --

Freifunk is participating in the Google Summer of Code as an umbrella organisation bringing together different projects in the free network community. We are encouraging students to apply with any project related to open wireless infrastructures and specifically mesh networks. What do we need to establish a mesh network? What makes it easier to set up and administer a local network? What is a missing feature or application? What else do we need to set up mesh networks in regions in Asia and Africa where the Internet is not yet available? Ask yourself these question and please talk us about your ideas.

-- SUMMER OF CODE AND FREIFUNK COOPERATION WITH UNIVERSITIES --

The Freifunk community has established relations to universities and educational institutions. We are able to offer ECTS credits for many projects in the summer of code through the TU Berlin (see Ideas Page for details http://wiki.freifunk.net/Ideas). Please check with your university for specific conditions for acceptance of credits.

-- FREIFUNK FIRMWARES--

The embedded Freifunk Firmwares (operating system) are specially adapted OpenWrt Linux Versions that are developed for routers and mobile devices. The firmwares are particularly lightweight and use less resources compared to other systems. They run on devices with minimal hardware specifications and work well on extremely low powered devices thus can be used in environments with limited energy resources.

Main features of Freifunk Firmwares are a common web interface and pre-installed mesh routing protocols. There are different versions available that are customized versions of Freifunk OpenWrt developed by local groups and adapted to local needs and conditions. For example a large city network has different needs than a small Freifunk network in a mountainous village. The firmwares offer common features and can be extended through plugins.

The original Freifunk Firmware is developed by Sven-Ola since 2003. Many others have joined since then. The main aim of the firmwares is to make it easier and faster to set up wireless networks, and particularly mesh networks. Installation, customization and administration of OpenWRT for normal users is much easier with Freifunk Firmwares as it provides a prebuild Linux version with OLSR daemon and a web based user interface.

-- LOW POWERED DEVICES --

Freifunk Firmwares are designed as embedded Linux´ for low powered devices and tools. The firmwares can be adapted for a wide variety of local as well as mobile devices.

-- A STRONG COMMUNITY AND MANY COMMERCIAL USERS --

The Freifunk firmwares are being used in wireless mesh networks around the world with the biggest ones reaching more than 700 nodes in cities like Berlin or Leipzig. Commercially adapted versions are included on hundreds of thousands of routers of companies like FON.com (main investor Google) and Open-Mesh.com. The firmware is currently gaining popularity with local ISPs in developing countries such as China, India and South Africa, as it is easily adaptable to local needs. Teams of our community are also working on combining advantages of projects like Android and OpenWrt by sharing code.

-- WLAN/Wifi COMMUNICATION --

Freifunk/OpenWrt supports ad-hoc WLAN communication and layer 2 and 3 routing with the OLSR protocol and the BATMAN routing protocol. 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 (http://wiki.openwrt.org/Freifunk).

-- PLUGINS --

Current test versions on SVN (https://dev.openwrt.org/wiki/GetSource) 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. An example for locations based services is Apple Bonjour that offers users to share their music in local wifi networks, however, in Freifunk mesh networks, there are many more ways to share and communicate as services are build on open standards and open source software.

-- LOCAL SERVICES --

WLAN Telephones for local and regional phone companies - this is another project where we are connecting services for more cost efficient communication: The Villagetelco project. The goal is to adapt the firmware to offer telephone services over an adhoc network (www.villagetelco.org).

-- ADAPTING THE FIRMWARES --

Going in another direction the community also engages to port applications and desktop environments such as LXDE (http://lxde.org) to OpenWrt for Freifunk clouds to offer faster devices with an X interface and making use of thousands of available applications. The porting of code from Google Android also aims to support the adaptability of the Firmware for special use cases.

-- COMMUNITIES AROUND THE WORLD --

The development of the Freifunk Firmwares is supported by the freifunk.net initiative. Freifunk.net also supports the set up of networks and educates the public and politicians about open standards and free frequencies. Read more about free wireless networks around the world and visit the global Freifunk newswire at global.freifunk.net.

Links:

* http://wiki.freifunk.net/Ideas

* http://openwrt.org

* http://wiki.openwrt.org/Freifunk

* http://freifunk.net

* http://global.freifunk.net

Projects

  • Developing Firmware for Vietnam based on Freifunk Firmware The goal of this project is to create a localized version of the Freifunk OpenWrt Firmware for Vietnamese users. Features of this firmware are customized and plugins are added to the version to suit local use cases. Work includes development of language files and translation, customization of firmware, adaption of suitable plugins and compilation of firmware.
  • Effective measurement in mesh networks Network measurement is essential task for any network. Networks size and speed is growing. Packet-based solutions doesn't fit well into modern network, as computational complexity keeps getting higher. Most effective solutions are flow-based. Problem here is effective generating of flows at high-speed links. This problem is most essential for embeddable devices when we have limited CPU and memory resources. I propose new effective IPFIX probe for obtaining flows at high-speed links.
  • Freifunk.net - Social Networking for Real Life Communities Freifunk.net tries to replicate the decentralized, self organized character of real life communities by enabling citizens to build their own community-wide WLAN. Even though these networks are connected to the internet and might be seen as a free citizen-provided community-wide WLAN-Access their organizational localization and decentralization is their real strong point. The next step is to open these structures for not highly computer-literate people by simplifying their use and services.
  • Improving LXNM, adding open networks and mesh support implementation of freifunk and free network mesh add ons (data) for LXNM, and also integration in LXNM tools.
  • IPv6 and TLS capable network-superserver in Lua and C with HTTP and RPC Slave This project is about planning and implementing an IPv6 and TLS capable superserver in Lua as well as an HTTP/1.1-Server working on top of it using the LuCI HTTP-Stack. This application will serve LuCI - the Freifunk Firmware web user interface - and replace the currently used slower CGI-solution without IPv6 and encryption support. Additionally an RPC-Server will be built to allow remote administration of one or more OpenWrt devices in a standardized way using JSON-RPC over TCP.
  • Mesh Node Status Monitoring / SNMP DataSource for freimap SNMP is used in network management systems to monitor network-attached devices for conditions that warrant administrative attention. We can make use of this SNMP interface to freimap and monitor virtually any system value of a node in near real-time and react accordingly. The task would include to evaluate these available elements for inclusion in the visualization environment of freimap and implement the actual visualization.
  • OBAMPxP olsrd plugin: Multicast multimedia delivery in OLSR community mesh networks The Freifunk mesh network today does not support multicast. OBAMP is an overlay protocol: it runs only in the end-systems belonging to the multicast group. User data are distrubuted over a distribution tree formed bu a set of non-cyclic UDP tunnels. With respect to OBAMP, there is a version based on proactive routing protocol (e.g. OLSR) called OBAMPxP. OBAMPxP has been in implemented in Java to prove his feasibility, but still some critical functions (as the discovery of other nodes running the OBAMPxP protocol) have not yet been implemented. My proposed project is to implement the OBAMPxP protocol as a OLSR plugin. The OBAMPxP protocol is cross layer, exploits information from the routing protocol to create the multicast tree. Developing it as an OLSR plugin makes it easier to access the network topology information. Moreover OBAMPxP can also use the default MPR flooding functionality to advertise OBAMPxP capable nodes. Users running olsrd with the OBAMPxP plugin on their mesh nodes will be able to send and receive multimedia streams over the mesh network, optimizing bandwidth usage exploiting overlay multicast.
  • Service Control Module for Freimap This project aims to enhance the Freimap mesh network analysis tool by adding ability to actively interact with the network nodes through SSH channels. Another goal is to port the UI to Java-Gnome in order to separate presentation & model. This will provide a position from which a major enhancement of the existing UI will be made.
  • Service Discovery in Mesh Networks / Avahi DataSource for freimap Service Discovery in Mesh Networks / Avahi DataSource for freimap can be main argument for my thesis in Computer Science...
  • small distributed storage What we really need is a Distributed Small Storage System, so save and receive small information pieces. - find a DHT lib that fits embedded systems - design a data structure which fits most purposes. This should include future features like crypto signed values for validation, etc - implement (re)distribution algorithms suitable for a mesh - lua bindings - implement a example usage. If there is enough time, implement something useful like distributed DNS