Tag: Software
GSoC 2011: L-VN Lite Virtual Network
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 Freifunk-Ninux.org proposal, and is sponsored by the Google Summer of Code 2011 program.
L-VN consists of 3 main elements:
- 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.
- 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.
- 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: https://svn.ninux.org/svn/ninuxdeveloping/ipudp/v02. Comments, remarks or any kind of support will be truly appreciated.
Contacts: marco.bonola@uniroma2.it, marco.giuntini@uniroma2.it
This article appeared first on Ninux.org:
http://blog.ninux.org/2011/09/05/gsoc-2011-l-vn-lite-virtual-network/
GSoC 2011: Nodeshot
Do wireless communities around the world really need another map server? Here in Ninux we believe that the answer is yes!
Enter Nodeshot an open source wireless community map server written in python and based on django, focused on ease of useand performance.
Why a new map server? Mainly because we had some precise needs that the current open source map servers can’t satisfy easily:
- we needed an application which is easy to use and understand for everyone
- we wanted to preserve a similar look to the old map server we used before (wnmap).
- we wanted it to be simple and performant
The frontend is built in HTML5 and it does an intensive use of jQuery and the Google Map API.
The backend is based on the django admin and it permits to easily administer the app.
These are the main features of the nodeshot:
- Map based on Google Map API v3
- New node with confirmation via email
- Possibility to insert devices, interfaces and hna4 for a better troubleshooting
- Edit node, devices, interfaces, hna4
- Contact node owners
- Address lookup
- Hide sidebar
- Search nodes and IP addresses
- Distance calculation between nodes
- Save distance calculations for future reference
- Public information about devices, interfaces and performance of links
- Statistics (number of nodes, links, links in km)
- IPv6 support
During the development we used github to commit changes and several merges have occurred in some cases when different developers were working to fix some issues.
The project has revealed to be more complex than what was expected but at the same time has been really engaging and fun.
There is still work to do though, actually we are translating and optimizing the app. We’ll keep working on nodeshot so that we can arrive quickly to a stable and performant release, we hope we’ll attract new developers from all around the world that will help us to push forward this new open source project!
Meanwhile, you can check the demo and you can download the source code on github.
This article appeared first on the website of Ninux.org:
http://blog.ninux.org/2011/09/06/gsoc-2011-nodeshot
GSOC 2011: RadioMate
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 Sonarare 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 atradiomate.ninux.org. The username is “foobar” while the password is “secret”. Point also your player (e.g. VLC) atradiomate.ninux.org:8000.
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 radiomate.org.
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!
Clauz
This article appeared first on the website of Ninux.org:
http://blog.ninux.org/2011/08/29/gsoc-2011-radiomate/
Freifunk Google Summer of Code 2011
We are looking forward to more people joining
development. Please propose ideas for the program on our idea page.
Students wishing to apply, please check out the Student Check List
in the wiki and join us on irc://irc.fu-berlin.de/#freifun and freenode.net #freifunk.
Our mailing list is here: http://freifunk.net/mailman/listinfo/wlanware
You can also use the OpenWrt mailing list for discussing Freifunk specific plugins and tools with OpenWrt devevlopers: https://lists.openwrt.org/mailman/listinfo/openwrt-devel
The application period starts on March 28, 2011. Please use the time to discuss your ideas beforehand already.
Timeline: http://www.google-melange.com/document/show/gsoc_program/google/gsoc2011/timeline
- March 28:19:00 UTC, Student application period opens.
- April 8: 19:00 UTC, Student application deadline.
- April 25: 19:00 UTC, Accepted student proposals announced on the Google Summer of Code 2011 site.
- May 23: 1. Students begin coding for their GSoC projects; 2. Google begins issuing initial student payments provided tax forms are on file and students are in good standing with their communities.
- July 11: 19:00 UTC, Mentors and students can begin submitting mid-term evaluations.
- July 15: 19:00 UTC, 1. Mid-term evaluations deadline; 2. Google begins issuing mid-term student payments provided passing student survey is on file.
- August 15: Suggested ‘pencils down’ date. Take a week to scrub code, write tests, improve documentation, etc.
- August 22: 19:00 UTC, Firm ‘pencils down’ date. Mentors, students and organization administrators can begin submitting final evaluations to Google.
- August 26: 19:00 UTC, 1. Final evaluation deadline, 2. Google begins issuing student and mentoring organization payments provided forms and evaluations are on file.
- August 29: Final results of GSoC 2011 announced
Links
* Idea Page: http://wiki.freifunk.net/Ideas
* Student Check List: http://wiki.freifunk.net/Student_Check_List
* Mailing List http://freifunk.net/mailman/listinfo/wlanware
* Freifunk GSoC Page http://www.google-melange.com/gsoc/org/show/google/gsoc2011/freifunk
* Google Open Source Programs: http://socghop.appspot.com
Freifunk Google Summer of Code 2010 – Student Applications
Freifunk has been accepted as a mentoring organization for Google Summer of Code 2010.
We are looking forward to a great summer with more people joining
development. Please propose ideas for the program on our idea page.
Students wishing to apply, please check out the Student Check List
in the wiki and join us on irc://irc.fu-berlin.de/#freifunk.
Our mailing list is here: http://freifunk.net/mailman/listinfo/wlanware
You can also use the OpenWrt mailing list for discussing Freifunk specific plugins and tools with OpenWrt devevlopers: https://lists.openwrt.org/mailman/listinfo/openwrt-devel
Every application is welcome. We are not only looking for
experienced students, but for anyone wishing to contribute to LXDE also
after the summer.
The application period starts on March 29, 2010. Please use the time to discuss your ideas beforehand already.
Timeline: http://socghop.appspot.com/document/show/gsoc_program/google/gsoc2010/timeline
- March 29th 2010: Application period for students begins.
- April 9th 2010: Student application deadline. The earlier you
start the more probable it is that you will be accepted! There is two
way feedback during the application process which really helps you
improve and clarify your application before this final deadline.- April 26th 2010: Accepted student proposals are announced.
- May 24th 2010: Coding begins!
- July 12-16th: Mid-term evaluation.
- August 9th: Pencils down!
Links
* Idea Page: http://wiki.freifunk.net/Ideas
* Student Check List: http://wiki.freifunk.net/Student_Check_List
* Mailing List http://freifunk.net/mailman/listinfo/wlanware
* Freifunk GSoC Page http://socghop.appspot.com/org/show/google/gsoc2010/freifunk
* Google Open Source Programs: http://socghop.appspot.com
Freifunk Google Summer of Code 2010 applications
Freifunk is again applying as a project for the Google Summer of Code 2010.
For students it is a good way to get deeper involved into Free and Open
Source Software and freifunk specifically. During the summer students have
the chance to code on freifunk and get paid by Google.
Some other projects also offer freifunk related work. Check out the GSoC site after March 18 when the info on participating projects is released.
We are already gathering project ideas, as a way to
start for applicants here.
If you are interested to join freifunk at the summer of code and would like
to discuss project ideas, please join us on IRC at #freenode on irc://irc.freenode.org
and on the mailing list: http://freifunk.net/mailman/listinfo/wlanware
If you have already an idea about a project you would like to do, please also leave your idea here as well: http://wiki.freifunk.net/Ideas
Background info on Google Summer of Code
The most common question we get from students is “How do I prepare for Google Summer of Code?”
The simple answer is not to wait for the program to get involved in
open source. Start checking out projects now: take a look at
documentation, check out their source code and idle in some IRC
channels to see what interests you. The projects who have been past
participants in Google Summer of Code are a great place to start; use the categorized list of mentoring organizations (e.g. projects listed by programming languages) from 2009 to help you get started.About Google Summer of Code
Google Summer of Code
(GSoC) is a global program that offers student developers stipends to
write code for various open source software projects. We have worked
with several open source, free software, and technology-related groups
to identify and fund several projects over a three month period. Since
its inception in 2005, the program has brought together nearly 3,400
students and more than more than 3,000 mentors & co-mentors from
nearly 100 countries worldwide, all for the love of code. Through Google Summer of Code,
accepted student applicants are paired with a mentor or mentors from
the participating projects, thus gaining exposure to real-world
software development scenarios and the opportunity for employment in
areas related to their academic pursuits. In turn, the participating
projects are able to more easily identify and bring in new developers.
Best of all, more source code is created and released for the use and
benefit of all.
* Frequently asked questions: http://socghop.appspot.com/document/show/gsoc_program/google/gsoc2010/faqs
* Freifunk Project Ideas: http://wiki.freifunk.net/Ideas
Freifunk Node Database – Tool zur Verwaltung von lokalen Netzwerken von Mickey
Fuer die Verwaltung von Freifunkknoten gab es bsiher verschiedene Moeglichkeiten, die teilweise mit erheblichen Aufwand verbunden waren. Potentielle neue Benutzer wurden durch Hürden effektiv vom Mitmachen abgehalten. Mickey von der Freifunk-Community in Hannover hat nun die Freifunk Node Database entwickelt die die Verwaltung eines Freifunknetzes erleichtert.
Freifunk Node Database ist es eine einfache Webapplikation zur Verwaltung von Nodes (und Subnets) in einem Mesh Netzwerk. Dabei liegt der Schwerpunkt vor allem auf Benutzerfreundlichkeit und Zuverlässigkeit, z.B. Verhinderung von IP-Konflikten, automatisches Geocoding, usw.
Mickey: Vieles von den geplanten Features steht noch auf der Todo-Liste, aber in Grundzügen funktioniert es erst mal soweit und ich habe es heute Nacht für die Freifunker in meiner Stadt scharf geschaltet. In den nächsten
Wochen und Monaten werden dann noch viele bunte Lämpchen angeschlossen… Über Feedback und Contribution freue ich mich natürlich. Fork me on Github 🙂Live: http://db.hannover.freifunk.
net
Code: http://github.com/knox/nodes
Bits und Bytes im Heizwerk
Jetzt geht’s richtig los mit und um Terminal.21.
Mit einer guten Portion Glück ist es uns gelungen, ein ausgedientes
kleines Heizwerk in Halle zu mieten, mit großer Halle und langem Schornstein.
Platz, der mit einer großen Portion Arbeit und kreativen Ideen genutzt
werden will. Und dafür brauchen wir euch, eure Unterstützung, eure
Projekte und eure Visionen.
Vieles ist denkbar: Kino, Hackspace, Kunstraum, Biblitothek,
Seminare und Workshops, Selbsthilfewerkstatt, Medienkunst,
Installationen, Ideenschmiede, Projektspace, … und alles andere, was
ihr euch vorstellen könnt.
Los geht es am Sonntag, dem 11.10.2009 ab 15:00 mit
einem kleinen Baustartfest. Wir werden euch kurz erzählen, wer wir
sind, was uns dazu gebracht hat, dieses Projekt zu starten, was andere
Leute auf dieser Welt so treiben, was wir alle miteinander in Zukunft
an diesem neuen Platz treiben wollen und was dafür zu tun ist. Ihr
findet das Heizwerk in der Hordorfer Straße in Halle, oder hier mit Blick von oben.
Multicast for OLSR mesh networks: Obamp release by Saverio Proto
Saverio Proto (ZioPRoTo) has the released the olsr OBAMP plugin, that was a freifunk project for the Google Summer Of Code. The OBAMP plugin allows multicast traffic to be forwarded in a OLSR mesh network. OBAMP is an overlay protocol. It first makes a mesh network with overlay links (udp tunnels) between the OBAMP nodes, and then it creates a distribution spanning tree over these mesh links.
This version of the OBAMP protocol, implemented as an OLSR plugin, is a simplified one for Wireless Community Networks, where we assume the nodes to be in fixed positions on the roof of the houses. Protocol features regarding mobility have not been implemented (yet).
To explain how the plugin works consider the scenario in the following figure:
There are 7 routers, where only 5 have the OBAMP plugin working. Router 1 2 and 6 also have an attached HNA network with some hosts.
OBAMP nodes generate OLSR OBAMP_ALIVE messages, these OLSR messages are forwarded in the whole network (also by the nodes that do not understand OBAMP thanks to the OLSR design). Because of the flooding mechanism every OBAMP node has a complete list of all the other OBAMP nodes in the mesh network. Every OBAMP node listens on the UDP port 6226 for OBAMP signalling.
When a OBAMP nodes starts it has 5 timers to periodically start operations:
OBAMP_alive_timer: every obamp node sends alive messages to advertise its presence to the other obamp nodes in the network. In the alive message every nodes states its IP address, and if it has already a tree link or not (we will see later this information is important for the outer tree create procedure).
The OBAMP network must have a member called “Core”, that starts the TREE_CREATE procedure. The core is the node with the smallest IP address. When the list of known OBAMP nodes changes, the Core Election procedure is eventually called.
mesh_create_timer: every obamp node every OBAMP_MESH_CREATE_IVAL evaluates how far the other obamp nodes are and selects a subset of nodes to keep mesh links with. Note that to reduce signalling and to increase scalability, the overylay mesh links are setup only with a subset of the nearest OBAMP nodes. To select the overlay neighbor the OBAMP nodes first calculates the ETX distance of the nearest OBAMP nodes, and the creates overlay mesh links to every node that are far in the range (minETX,minETX+1)
tree_create_timer: the core of the network every OBAMP_TREE_CREATE_IVAL sends a message called TREE_CREATE on its mesh links. The creation of the spanning tree is very similar to the spanning tree protocol. When a TREE_CREATE message is received a OBAMP node enables a tree link with its parent and forwards the TREE_CREATE on the other mesh links. TREE_CREATE messages are generated only by the core and are numbered, so TREE_CREATE received over loops can be discarded.
outer_tree_create_timer: The mesh_create algorithm may create cluster of OBAMP nodes within the network that are disconnected between each other. This happens if there are groups OBAMP nodes that are far from each other. If this happens only the cluster where the Core is present will receive the TREE_CREATE and will receive traffic from the distribution tree. To overcome this problem if in a cluster there are not TREE_CREATE every OBAMP_TREE_CREATE_IVAL the node with the smallest IP in the cluster will make a long mesh link with the nearest node that has at least a tree link. All the necessary information to perform this procedure is diffused in the OBAMP_ALIVE messages.
purge_nodes_timer: checks expire time of various variables, and deletes nodes or tree links in a soft state fashion
The OBAMP nodes will capture the multicast udp traffic from the non-OLSR interfaces, and will forward this traffic encapsulated in the UDP tunnels of the distribution tree. The other OBAMP nodes will forward the traffic in the tree and will decapsulate it on their non-OLSR interfaces. To avoid duplicated packets the data is carried into OBAMP_DATA messages, that are identified by a sequence number, and the OBAMP source node where the traffic has been encapsulated.
In the figure black links represent real radio links, and red links represent overlay mesh links (udp tunnels). Router 1 2 3 and will create a OBAMP cluster, with two mesh links. Router 6 and 7 will create a mesh link between them. Because the mesh_create algorithm does not create a mesh link between the two clusters, the router 6 (supposing it has the smallest IP address in the mesh) will create an outer tree link with Router 3.
So please download the code and use it . If you find bugs please report them to Saverio and in the Sourceforge tracker here:
http://sourceforge.net/tracker/?atid=681702&group_id=117612&func=browse
Thanks for this great result of the summer. Special thanks also to Nino from ninux.org who was the mentor for this projet.
Links
* http://zioproto.ninux.org/wordpress/2009/08/31/olsrd-obamp-plugin/
* http://gredler.at/hg/olsrd/rev/8e7887c1247f
* http://olsr.org
* http://blog.freifunk.net
* http://ninux.org