GSoC 2010 – Database outuput from Freimap

August 18th, 2010

The Google Summer of Code 2010 is going to end.

Also this year, we have participated with a Freifunk project on the Freimap Software.

Freimap is an Open Source visualization and analysis framework for (mostly) mesh networks, such as for example Freifunk.net. It can read many a different data source and display them as different layers in a map. The network can be browsed and queried in real time, and a time bar allows to trace back to past events. Some statistics of the topology and network traffic may also be generated. From the last Google Summer of Code 2009, Service Discovery is a new feature.

The software itself runs in Java, and smoothly at that. It reads data from various sources in the network, a database, a file or from a Live Stream (OLSR Routing Protocol, B.A.T.M.A.N., etc).

This year I’ve added this feature: the ability of Freimap to store all visualized data in a MySQL Database.

HOW IT WORKS

In the current version, Freimap can take data from different datasource:

  1. a file for a simple visualization: js, xml, txt files (static)
  2. a MySQL database (static)
  3. Live stream from an OLSR Daemon (dynamic)

If you want to store Live stream with the new “Database output for Freimap” feature you have to follow 2 simple steps. These steps are been simplified with a wizard that appear when you make a choice in the main GUI page.

Freimap Wizard - 1

The first step is a simple Wizard in which you have to insert some basics information such as:

  1. MySQL Database information: IP/Hostname and port
  2. MySQL Database credentials of an user that have a rw permission
  3. Position of the OLSRd config file
  4. Position of the LatLon.js file of the NameService Plugin
  5. The port of the dotDraw plugin

Freimap Wizard - 2

Freimap Wizard - 3

Once you have entered all the information you can choose a previous “Freimap” Database or to “Create a new Freimap Database”. When you choose a database from a list of available database the application automatically detect if the selected schema contains Freimap data.  This choice read the data from the selected database and continue to store new live data in the same tables. With the second choice you can create a new database. This choice means that you can destroy an old database or you can create a completely new one.

Freimap Wizard - 4

ISSUES AND …TO DO

There is a lot of work to do to improve Freimap Software.

For example, as discussed in the OLSR-Dev Mailing List, there is a needs to make a simple web interface for the config file (now an xml file) in which you can change the base settings of the “Database output for Freimap” feature.

Another thing to do is to find a method to update and generate in a the fastest way a new “layer id” for the recovery of the correct layer when requested.

We have to add the possibility to read and store live data from and in two or more database (also schemas). This can be useful when you want to simulate in the same environment two networks with two different routing protocol (BATMAN and OLSR)

Actually the database information crosses the network in plain text. This means that we have to find a method to encrypt Freimap network data.


You can find more info here: http://wiki.freifunk.net/freimap

Mercurial Repository is here: http://code.google.com/p/freimap/


GSoC 2010 – IPinUDP generic encapsulation module

July 30th, 2010

The main goal of this project is the development of a Linux 2.6 Kernel module and the relevant user-space tools to set up IP in UDP tunnels between two fixed and mobile end points. The project is a Freifunk-Ninux.org proposal, and is sponsored by the Google Summer of Code program.

IPinUDP encapsulation is a well known encapsulation mechanism mainly used for NAT traversal solutions (e.g.: RFC 3948). Moreover, IP/UDP encapsulation can be envisioned in end-to-end overlays and mobility management solutions. Despite its simplicity, a generic IPinUDP encapsulation Linux Kernel module independent from the IPsec framework is not currently available, and usually this kind of tunneling is realized with user-space tools.

The first task of this project is to create a Kernel module allowing a user to export one or more virtual interfaces so that packets routed through them will be encapsulated within a specific IP/UDP encapsulation header, as for other tunneling approaches based on virtual devices (like IP-IP, IP-GRE, etc..).

The second step will be the extension of the basic functionalities described above to realize a generic IP/UDP encapsulation driver to be used in different context that might require UDP encapsulation, like mobility, multihoming or VPNs approaches based on tunneling. The basic idea is that the IP/UDP tunnels are multiplexed on a single virtual interface, and the proper encapsulation header is retrieved from a “internal forwarding table” configurable from user-space.

As for the current status of the implementation, the first task is almost accomplished, as few details regarding locking are missing. The source code is publicly available at: https://svn.ninux.org/svn/ninuxdeveloping/ipudp. Comments, remarks and any kind of support will be appreciated.

Marco

The RadioMate GSOC project

July 30th, 2010

With the RadioMate project we are building a new free software platform for distributed webradios, i.e. webradios in which the WJs can transmit wherever they are (from home, from the site of an event, …). The project is a Freifunk-Ninux.org proposal, and is sponsored by the Google Summer of Code program.

The first webradio that will use the new platform will be Fusoradio, that is an active and distributed webradio headquartered in Rome (at Fusolab), but that currently uses closed-source solutions. Thus the project will not end with the GSOC sponsoring, but will continue growing thanks to the contributions of people that will be actively using RadioMate.

For what concerns the current status of the work, the design of the architecture, of the API and of the database schema have been done, and the code that accesses the database has been completed. I have also studied the liquidsoap language and found a solution to use it in a decentralized fashion, performing some tests.

What is missing, and will be done before the deadline (I am currently working on the project full time) will be to complete the JSON interface, implement the scheduling of the webradio transmissions, and of course, write documentation.

For the source code, more information and updates visit the project’s website: http://radiomate.org

Clauz

Hackmeeting 2010

July 8th, 2010

Lo scorso weekend c’è stato a Roma l’hackmeeting!

Questo che vedete qui, è uno spezzone della trasmissione TRL di MTV, che ha fatto un servizio sull’evento, parlando anche di noi di Ninux.


Noi di Ninux siamo andati tutti insieme con la nostra grande tenda, per esserci tutto il tempo e vivere questo weekend insieme alle altre comunità hacker italiane. Essendo a Roma potevamo anche decidere di tornare a dormire a casa ogni sera, ma non sarebbe stato un vero hackmeeting in questo modo.

Segue il comunicato ufficiale di chiusura dell’hackmeeting:

Domenica 4 luglio si è concluso Hackmeeting, il meeting delle comunità hacker italiane, tenutosi a Roma al Csa la Torre.

*Hackmeeting *è l’incontro annuale delle delle controculture digitali, e di tutti coloro che si pongono in maniera critica e propositiva rispetto all’avanzare delle nuove tecnologie.

I tre giorni che si sono tenuti nella splendida cornice del parco dell’Aniene, hanno presentato un fitto programma di seminari, dibattiti, scambi di idee e apprendimento collettivo, sono state analizzate le tecnologie che utilizziamo quotidianamente, come cambiano e che stravolgimenti inducono sulle nostre vite reali e virtuali, quale ruolo possiamo rivestire nell’indirizzare questo cambiamento per liberarlo dal controllo di chi vuole monopolizzare lo sviluppo, sgretolando i tessuti sociali per relegarci nei nostri spazi virtuali dove ci illudiamo al sicuro dalla precarietà reale. Ma soprattutto si è messa in pratica la Hacktitude, ovvero quella capacità di andare oltre le prescrizioni imposte dal commercio, nella tecnologia ma anche in altri campi, e che portano a smontare ogni macchina e ogni gerarchia precostituita, comprese quelle che riguardano aspetti più quotidiani della nostra esistenza. Sono stati presentati nuovi software dunque, ma anche approcci diversi alla produzione di cibo, di vivere il sesso, di curarsi.

Ad Hackmeeting si sono dunque visti nuovi protocolli di identificazione, che superano il concetto di user name e password; un nuovo tipo di crittografia, la crittografia quantistica, e le sue applicazioni; è stata presentata una panoramica sulle tecniche di identificazione e fingerprinting degli utenti in rete, e sulle possibilità di difendersi; sono stati illustrati metodi per aprire i lucchetti, informatici, ma anche fisici, ed è stata fatta una panoramica completa di tutti i metodi controllo che stanno, tra l’altro, mettendo a rischio la libertà della rete. Ma si è anche ragionato con lo scrittore Margareth Killjoy su «Steampunk come Etica di Reality Hacking», vale a dire su come, per sopravvivere alle catastrofi, sia necessario sperimentare. E nel seminario “/Programmare è come narrare?/”,con Stefano Penge e Maurizio Mazzoneschi si è riflettuto sul senso della programmazione, un’attività ritenuta forse a torto tecnica, ripetitiva, fredda, e  priva di un’anima. Nel workshop su estetica audio e video invece si è presentata la superiorità dell’editing basato su una filosofia open.
Infine, visto che la connessione tra approccio ecologico e mondo dell’hacking è sempre più stretta, in un seminario si è spiegato come mappare tutti gli orti di una grande città, non con le mappe di Google, ma con un sistema non proprietario, che permette a tutti di caricare i dati senza necessariamente registrarsi.
Sono solo alcuni esempi: nella tre giorni ai più di 30 seminari ufficiali (http://it.hackmeeting.org/seminari.html#1557) si sono alternate discussioni spontanee.

Hackmeeting si è chiuso con la tradizionale assemblea che riunisce tutti i partecipanti, nel corso della quale, con il metodo del consenso, è stato deciso di proseguire l’anno con incontri di Follow up, dedicati ad approfondire le varie tematiche presentate a Roma, e con un meeting invernale.


Saverio

GSoC 2010 – Database output for Freimap

June 28th, 2010

Freimap is a virtualization and visualization software for mesh networks. Currently this software does not have the ability to store information transmitted by individual nodes (data routing, position, connected clients, etc.) so the user cannot have a clear idea of network behavior over the time.

Freimap Start PopUp

After gathering information and needs of various communities in Berlin during the international event WCW2010 we have written the basics for the job of this summer for the Google Summer of Code 2010. With the project “Database output for Freimap” we want to create a plug-in that can store all information and data, not only of individual clients but also of the entire mesh network (SNMP data, syslog data, etc …). In this way Freimap can be used as a veritable tool for troubleshooting and reference. The needs identified during the WCW2010 were:

  • Define of a common node schema: communities have different schemas of nodes (due to the different types of networks used)
  • Possibility to redrawing the map at a given time
  • Ability to find a particular information (eg client connected at a given time)
  • Need to manage the entire network from anywhere in the world with a Web Interface

The new Freimap is organized by level, unlike the previous version (written by Thomas Hirsch). These levels are:

1) Layer Datasource

2) Data Layer

3) Main Layer

The first layer is responsible for collecting data from all DataSources (NameService Plugins, OlsrDataSource, Files, MySqlDataScource, etc …)

The second layer is responsible for organizing and storing data in the database. This level contains all necessary information for the “rebuilding” of the map and then the regeneration of the situation at a given time. In addition to the data passed from the “DataSource Layer” at this level are added some basic information such as timestamps and information on the nodes (translated xy positions on the map, lat / lon, etc. ..)

The third level is responsible of the generation of the GUI from the data of previous levels. The project’s aim is therefore to find a way to store data of the second level, where there are all necessary data for the rebuilding  of the level at the given time.

This first step that must be followed, is surely a definition of a common  node schema. Project already started by the Ljubljana Community with some fundamental results.

Now, only for testing, the structure of the database tables is reduced at:

Node Table:

Database Schema 1

Layer Table:

Database Schema 2

Link Table:

Database Schema 3

After this first design phase, the second part of the program will be dedicated entirely to the coding in which will be defined the procedures for storing data in the database. With the first commit have been implemented the automatic generation of the database structure (local and/or remotely) and the ability to select an existing external/internal database from which to get the information and updates in real time .

Credentials for MySQL Database

Other updates will be announced shortly before the Mid-term evaluations deadline;

Changelog and updates about the development process can be found at: https://code.google.com/p/freimap/

Stefano Pilla