Posts Tagged ‘google’

GSoC 2011: L-VN Lite Virtual Network

Monday, September 5th, 2011

L-VN is a tool for overlay network creation based on IP in UDP encapsulation performed in Kernel space without encryption/authentication of the tunneled packets. The idea of L-VN is to exploit the IP/UDP encapsulation kernel module proposed for GSoC 2010  to develop a VPN/Overlay tool based on IP/UDP encapsulation performed in kernel space with no “security services” for the encapsulated packets (i.e. no confidentiality, no authentication). The goal is to provide a lightweight overlay network tool that might be preferable to other VPN/Overlay solutions for devices with limited computational resources. The project is a proposal, and is sponsored by the Google Summer of Code 2011 program.

L-VN consists of 3 main elements:

  1. IPUDP encapsulation module: is a kernel module that exports a virtual network devices that perform ip-udp encapsulation. Packets routed through this network interfaces will be encapsulated in IP/UDP headers and sent to the proper tunnel endpoint.  As to the current status, ipudp module provides 2 virtual devices modes:  A) FIXED mode: a single ipudp tunnel is bound to a virtual ipudp device. This type of virtual interface is double-stack, in the sense that we can assign both IPv4 and IPv6 address to the device and use it for both IPv4 and IPv6 applications. B) MULTI_V4 mode: multiple ipudp tunnels can be bound to this type of virtual interface. For each encapsulated packet, the proper tunnel is chosen by a set of rules that bind the destination IP address of the inner packet, with a given tunnel. For GSoC2011 the module has been updated to be compatible with kernel 2.6.38 and modified in different points to implement the keepalive mechanism.
  2. IPUDP configuration tool: this tool can be compiled as both program or library and provides a set of primitives based on NETLINK sockets to configure the IPUDP encapsulation module. IPUDP_CONF provides the necessary primitives for addition/removal of virtual network devices, ipudp tunnels and forwarding rules.
  3. IPUDP signaling agents: a client and a server program written in C for automatic tunnel establishment and management. In details, these components provides the following services: a) mutual authentication based on X509 certificates and TLS (openssl); b) NAT reflexed address discovery and automatic tunnel establishment; c) NAT binding keep alive; d) automatic inactive tunnel de-allocation. This component has been completely implemented for GSoC2011 but it still needs some work.

The code is available through the ninux SVN repository, at the path: Comments, remarks or any kind of support will be truly appreciated.



GSoC 2011: Videochat for Diaspora*

Tuesday, August 30th, 2011

I’m writing about the results achieved with my Google Summer of Code project, for the Ninux community, under the umbrella of Freifunk (I thank them both for the opportunity they gave me).

Briefly it consisted in developing a video chat feature for Diaspora*, a distributed social network.

This project has received a very big feedback and appreciations from the entire Diaspora community, including the core team, who helped and supported me during the development.

Basically, it provides two new functionalities to the Diaspora engine:

  • Textual chat, based on XMPP signaling protocol
  • Video chat, using Jingle XEP
Both have been developed in Javascript, with some Rails code. It uses Strophe.js library for the textual chat, based on XMPP Over BOSH standard, and a self-made extension of it to realize Jingle protocol.
The project includes a custom ejabberd module in Erlang for the integration of ejabberd/diaspora databases, an Actionscript part for the video chat stuff and an external authentication script written in Ruby used by ejabberd to authenticate users from Diaspora.
The project has been split in two pull requests, and we’re currently fixing them before merge with master repository: [1],  [2].

Source code can be found at, under “jabber” and “video_chat” branches.

Setup instructions here. Some screen-shots: [1], [2], [3].

I hope it will be soon merged and improved by me and the community, to make it available on every Diaspora* pod!


GSOC 2011: RadioMate

Monday, August 29th, 2011

The Ninux community, under the umbrella of Freifunk, developed four awesome open-source projects for the Google Summer of Code program 2011: a front-end for RadioMate, a new mapserver (called nodeshot), a video and chat extension to the social networking engine Diaspora* and a new tunneling tool.

In this post I will write about RadioMate, the project I was involved in. Then posts on the other projects will follow!

There are many web-radio projects that are closely involved in the world of Community Networks: in Rome Fusoradio and Radio Sonar are an active part of the community and relay on the ninux network for their streaming, in Leipzig Radio Blau (which transmits also in FM) gives big spaces to the Freifunk project, or RadioCona in Ljubljana, where the Wlan Slovenija project is based.

Often these web radios have to relay on closed-source software platforms as the available open-source solutions don’t fit their needs.

RadioMate is a free (as in freedom) community-wise Web-radio management system. Some of its features are:

  • support of multiple users with different privileges (roles)
  • easy radio schedule management
  • handling of audio files and playlists
  • extendable with new types of transmissions
  • interface with the icecast server
  • takeover of the radio streaming in case of “special editions”

While last year the RadioMate engine was developed, this year our efforts focused on a Web frontend. You can find a demo at The username is “foobar” while the password is “secret”. Point also your player (e.g. VLC) at

For the techies, the engine is based on liquidsoap, written in Python, and easily extendable through liquidsoap scripts. It exports a JSON API which is exploited by the Javascript (jQuery) based Web frontend. Source code and documentation can be found at

Of course there is still work to do, but I hope that this software will be soon used by our friends running webradios!

As we say in Rome:Daje!

Google Summer of Code Meetup

Wednesday, March 30th, 2011

Last Thursday, for the “Giovedì nerd” (i.e. “Nerd Thursday”) held every week at the Fusolab in Rome we had a Google Summer of Code Meetup. is participating in the Google Summer of Code program thanks to Freifunk, that is acting as an umbrella organization for us.

We talked with many people from all around Rome about the GSoC projects that we had completed in the last years and about our new project proposals, which can be found here, and distributed the gadgets (big and small notebooks with the GSoC logos and some Google-pens) sent to us from Mountain View!

Google Summer of Code Meetup Infosession

Monday, March 21st, 2011

Anche per il 2011 partecipa al Google Summer of Code nell’ombrello di Freifunk, la wireless community tedesca che è stata accettata da Google come “mentoring organization”.

Venite questo giovedì al Fusolab per saperne di più sul Google Summer of Code ! Per l’occasione saranno regalati ai partecipanti dei fantastici gadget inviati da Google per l’evento 🙂