GSoC/GCI Archive
Google Summer of Code 2014

Freifunk

License: GNU General Public License (GPL)

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

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

We build the local Internet of the world. Freifunk is the GSoC umbrella organization for many community networks in the world. We develop firmwares for routers, routing protocols, wifi mesh solutions, auto-flasher for network devices, network libraries for Linux distros, security tools for secure communication, puppet configurations for local school networks, OpenWrt packages, automatic map solutions for networks, GSM meshes, and a lot more. You will find us anywhere where people build communication infrastructures.

We are organized locally and completely decentralized - just like our decentralized networks, that are set up as self-building, self-healing meshes using Open Source technologies and routing protocols such as BATMAN, OLSR, Babel and others.

Over ten years agao different free network initiatives in Germany united under the label freifunk. That was in 2003. In other regions projects came together as Guifi.net in Spain, Ninux in Italy and other local names. While you may have never heard of us, community network groups do exist in every major city of the world and you may even find us in an unknown village in Afghanistan, Zambia, Mexico, Greece, Spain, Chile, France, Italy or like recently on a traditional Christmas market in Germany. Some of our friends in the community who prefer to keep a "lower profile" are helping people to communicate in difficult environments in Iran and Syria.

And other exciting things are happening. Software, networks, content - it is not enough. We are working on Open Hardware, re-programming chips and testing the limits of software and hardware. The idea of a self-recharging router has been around for a while and we are now building a truly low cost solar router putting the complete schematics online. Others are working on extremely low cost self-deploying wifi phone networks. We are exploring GSM technologies, setting up Open Source GSM mobile phone networks at festivals offering free communications with your personal mobile phone. There are really nice apps that you can think of, if you have your personal cell phone operator.

A lot of the cool stuff happening might depend on one enthusiastic individual, other projects in the community involve dozens of developers and there are so much more things we could do together with you.

Some freifunk networks are using satellites to distribute Internet to remote regions - we want the complete stack Open Sourced. There are serious discussions about sending mini-satellites into orbit.

Years ago when the first contributors started to work on mesh networks, many believed - 20 routers in a mesh will be the absolute maximum and the scientific community regarded a lot of the ideas and work of community enthusiasts as impossible. Today we have over 16000 devices in the local network of Guifi.net in Catalunya and initiatives that cooperate in EU wide research projects with top research institutions and universities. The OpenWrt distribution that was first used and tested in free community networks (many OpenWrt devs are part of the community) are deployed in millions of commercial routers of companies like Buffalo and Fon today.

There is a lot more to do. Please join us to make the dream of free and uncensored communication - free as in freedom - come true.

Projects

  • BGP/Bird integration with OpenWRT and QMP Some community networks run different Routing Protocols together. Guifi.net and QMP are an example where this scenario takes place. Most of these communities are using Quagga for the BGP routing instead of a lightweight solution as Bird. This project will add integration for Bird software in OpenWRT, the next stage will adapt the Bird configuration to work in the QMP network and finally develop a intermediate system to exchange metrics and routes between Guifi (BGP) and the QMP network (BMX6).
  • Freifunk API Query Client I propose to work on an implementation of a JavaScript based web-application to build and view queries for the Freifunk API, additionally I'd like to implement a new API backend that is able to serve generated queries to other clients.
  • Libre-Mesh: Hardware Detection Hardware Detection for Libre-Mesh has born as an idea to simplify node installation. As example, hitherto, if an additional external USB radio is needed to the router you must configure it manually in order to use it. Thanks to the development of this proposal will be implemented an hardware detection module for Libre-Mesh which will detect and configure the external USB radios and other hardware units. Therefore, the system will be configurated automatically.
  • Netengine Netengine is a python device abstraction layer which allows to remotely obtain all the important and needed information about the devices attached to a network, both in a python dictionary and in JSON format. It works with network protocols such as SSH (Secure SHell) and SNMP (Simple Network Management Protocol). With this abstraction layer every device is treated as an programming language object, with its own methods and attributes to be retrieved.
  • nodewatcher v3.0 platform nodewatcher is one of the projects of wlan slovenija open wireless network. Its main goal is the development of an open source network planning, deployment, monitoring and maintenance platform with emphasis on community. To make it fully modular and reusable for other community wireless mesh networks, we have invested a lot of work on version 3.0, but there are several remaining backend issues before it being production ready and these issues will be addressed by this proposal.
  • OpenWrt: IEEE 802.1ad VLAN support IEEE 802.1ad is the natural evolution of IEEE 802.1q that is extenisvely used by community network. OpenWRT UCI still doesn't support creation and configuration of 802.1ad VLAN interfaces, the idea is to extend netifd to support also this kind of "device" in a way as macvlan "devices" are supported.
  • Social network plugin for Retrohare The upcoming version 0.6 of Retroshare offers a advanced backend to store, transfer and verify messages. A rsa public key makes a identity. It is possible to rate identities to avoid spam. With Wt from webtoolit.eu one can create a webinterface in C++ similar to Qt. Let's use this to create a social network plugin for Retroshare.
  • Source-Sensitive Routing Source-sensitive routing (SSR) extends traditional next-hop routing by considering the source address of the IP packets in the routing decision. The homenet working groupe at the IETF has shown multiple use cases of the SSR, and is going to normalize it as a routing requirement of the home network standard. This project aims at adding support for source-sensitive routing in the Quagga routing suite. The project will focus on zebrad, the kernel interface of Quagga.