GSoC 2014 Updates – OpenWrt: IEEE 802.1ad VLAN support

As promised I have been working hard on the proposal. Thanks to community help I have already almost completed all deliverables and in fact some patches got merged in netifd [10-13] and OpenWrt [15] already and development branch of libre-mesh is already taking advantage of them [14] 🙂
 
Working on this project gave me more conviction that community collaboration is fundamental, community helped me to understand the problem and what to modify to fix it, moreover someone went beyond that submitting patches too [16-17] !
 
Here it goes a small resume of how I did it:
    – Talk multiple time with OpenWRT [0] folks via retroshare openwrt lobby, they gave me some indication on what I had to do
    – Get netifd code [18]
    – Create a vlandev netifd device
    – Implement routines to add and remove 802.1ad/802.1q vlan in Linux via netlink
    – Talk with OpenWRT folks for quality check and patch merging
    – Code cleaning and testing
    – Patches get merged in netifd and OpenWRT
 
Now who need to use 802.1ad is not unfortunately constrained to private software anymore, because it is now supported in OpenWRT [0] 😀
 
More updates [6] soon, and don’t forget the best is yet to come! 
 

GSoC2014 – BGP/Bird integration with OpenWRT and QMP

This year, the Google Summer of Code and FreiFunk have given to Guifi.net and QMP communities the opportunity to develope a project in this event. This project is: BGP/Bird integration with OpenWRT and QMP.

 

A brief description of the project

Most of the community networks run dynamic routing protocols (OLSR, BMX6, BATMAN-ADV, etc.) with non-dynamic ones (BGP, OSPF, etc.). Guifi.net (BGP) and QMP (BMX6) are a scenario where this collision of metrics and routes happens. 

Furthermore, these communities are using Quagga for the BGP routing, which is a complex and oversized tool for the type of nodes that will work with it. For these kind of nodes, Bird is a really lightweight BGP daemon that is still not well supported to be used easily by the community (it does not have an easy and graphical configuration system yet).

 

This project will contribute with:

1st Block: Adapting Bird to fit into QMP firmware. (1 month)

  • Bird daemon improvements (3 weeks)
    • Give to Bird integration with OpenWRT: Add support for UCI configuration. Thus, will ease the configuring process and become closer to non-expert users.
    • Improve Bird UCI configuration adding LUCI support (web graphical interface). Adding a graphical user-friendly interface and the necessary tools to automate hardest processes of the configuration, non-expert community users could find this daemon as an easy to use routing tool.
  • Adapt Bird daemon to QMP (1 week)
    • Once working on OpenWRT and with an easy ‘to put on work’ configuration, add integration with the QMP firmware owing to replace Quagga’s routing functions in frontier nodes of the QMP network.

 

2n Block: Automate the translations of routes and metrics between a non-dynamic routing protocol and a dynamic one. (~2 months)

  • Creation of a routes and metrics exchange system (7 weeks)
    • Study and build an exchange system for metrics and routes between BGP (from Guifi.net) and BMX6 (from QMP).
    • Test and debug this solution in the real scenario (Guifi.net-QMP)

 

3rd Block: Project basic feedback and documentation (1 week)

  • Documentation, user support&feedback and results presentation.

 

About the author

I am Eloi CarbĂł, a Computer Science student specialized in Information Technology in the UPC of Barcelona. Currently I am working on my Final Degree dissertation: UPC CN-A testbed mesh network deployment, monitoring and validation. Using the Wibed Platform developed by the CONFINE Project [Link: https://wiki.confine-project.eu/wibed:start].

 

About the project collaborators

The project tutors are Roger Baig (fundaciĂł Guifi.net) and Axel Neumann (Freifunk and BMX6 support) and the special collaboration of Pau Escrich (fundaciĂł Guifi.net and QMP project).

OpenWrt: IEEE 802.1ad VLAN support

This is my first time as GSoC student and I am very glad to have been accepted in the Freifunk organization. I am a computer science student, therefore my life should be full of this kind of experiences, but unfortunately there are few possibilities to develop interesting applications and get a decent wage, due to the ever-increasing cuts in the sphere of research. The university offers several tedious unpaid apprenticeship with few learning value, generally works that machines are supposed to do instead of human beings. Moreover, the state of uncertainty that austerity politics ail people, kills their creativity. The GSoC wage, in addition to community help and fertile environment, will allow me to have some tranquillity and time to devote myself to think on creative ideas and implementing a long awaited feature in OpenWRT.

I have been hacktive in wireless community networks since years and I have seen a lot of situations where the use of the IEEE 802.1ad standard would make a drastic difference. Many times unlucky people were forced to use proprietary software because of the need for 802.1ad. An open implementation of this standard was not available in the past and only recently has it been implemented in the Linux kernel. What is still missing is an UCI standard way to configure 802.1ad interfaces, so at the moment this feature is still not usable by OpenWRT users.

OpenWRT is a Linux distribution primarly designed for embedded devices (e.g. routers) and we currently use it on our community network devices because it is the most suitable for our needs. Furthermore, the OpenWRT community and community networks have wide intersections both in thinking and in participants.

First of all I need to understand better the netifd (OpenWRT network manager) internals, then in agreement with OpenWRT developers I am going to define an 802.1ad UCI device configuration schema and implement its management inside netifd. I am going also to provide a new syntax for 802.1q devices but keeping retrocompatibility, then I am going to update the UCI documentation, do serveral testing and discuss with OpenWRT developers about how to merge the new code in the official repository.

I have already contacted OpenWRT developers and my mentors who seem pleased to help me, I will work hard on this project and I would like to see OpenWRT 802.1ad support rock-solid as soon as possible 🙂 I will push my day by day work on a netifd clone repository on Gitorious, so keep watching it.

More updates soon, and don’t forget the best is yet to come!

Netengine Google Sumer of Code Project

Hi everyone, I’m Alessandro Bucciarelli and I am participating for the first time to Google Summer of Code.
I chose to apply to work on Netengine, a project by Freifunk/Ninux. Netengine is a Python abstraction layer thought to retrieve informations about network configurations, and not only, from multiple couples of network protocols/device firmware.

Actually the main network protocols we are working on are: SNMP, SSH; with HTTP which is an idea for the immediate future.
By the firmware side there are AirOS and OpenWRT which are the most used firmwares among network devices (antennas and other) deployed inside the Ninux network.

Many of the readers, if experienced in the network field, will agree with me in saying that the retrieval of network informations (e.g IP addresses of the interface/s, MAC addresses, routing configurations) is vital.

This aspect is more than vital when you are interacting with remote devices, geographically widespread and sometimes accessible by only unskilled persons, to have a timely diagnostics of the  deployed hardware.

The module we are developing tries to solve, and I am sure it will be so, the problem of having informations from the devices REMOTELY, without any kind of further configurations and without any kind of physical interaction with the device.

For further details and code please visit https://github.com/ninuxorg/netengine or email us at ninux-dev@ml.ninux.org

Babel Wireless Mesh hackathon (Paris, 19-20-21 July 2013)

A hackathon dedicated to the Babel wireless mesh routing protocol will be held during three days in Paris, at the LeLoop.org hackerspace. The event primarily aims at testing the new features of Babel (diversity, RTT metric, source-specific routing, etc…) in a real-world environment.

Date
====

Start: Friday 19 July @ 09:00

End: Sunday 21 July @ 22:00 

Goals
=====

  • Setup of a testbed of 20 nodes or more, some of them on batteries
  • Test the new features of Babel in real-world conditions
  • Test interoperability between different implementations and different extensions of the protocol
  • Basic tests inspired by the Wireless Battle Mesh ones
  • Data collection, statistics and reproductibility of the experience
  • Bug hunting (hopefully there aren’t many)
  • Degustation of belgian beers, and probably Attitude Adjustment cocktails too 🙂

Program
======

Along with the main events, some talks are scheduled on Saturday and Sunday. Feel free to propose a talk, they will be listed on the wiki page of the event: http://wiki.leloop.org/index.php/Babel_hackathon

More information will be available on LeLoop website: http://leloop.org

We provide
========

  • electricity
  • internet connectivity
  • meeting place
  • coffee and tea
  • toilets
  • if needed, hosting, but get in touch with us before

Do not forget:
==========

* Bring your laptop/computer and european power plug wire (multiprises)

* Bring your compatible router(s) with OpenWRT pre-installed

* Bring your WiFi antenna(s) and connectors

* Bring your sleeping bag, and if you need hosting send an email

Registration
=========

Please register as soon as possible on Framadate: http://framadate.org/studs.php?sondage=q4hlhbsehmh37kgm

The entrance is free, both as in “freedom” and as in “free beer” (although the beer won’t actually be free).

Location
========

LeLoop.org

La Gare XP

0bis avenue Lucien Descaves

75014 Paris

Tramway: Montsouris, on T3a

Metro: Porte d’OrlĂ©ans on ligne 4

RER: Cité Universitaire on RER B

Google Maps: http://ur1.ca/ej4jb

Open Street Map: http://osm.org/go/0BOc0dK0C–?m

Web
===

* http://www.pps.univ-paris-diderot.fr/~jch/software/babel/
* http://leloop.org
* http://garexp.org

Contact
======

IRC: #babel on irc.freenode.net

Wiki: http://wiki.leloop.org/index.php/Babel_hackathon

Baptiste Jonglez
Email: baptiste.jonglez at ens-lyon.fr
GSM: (+33) 6 03 72 24 79

Benjamin Henrion
Email: bh at udev.org
GSM: (+32) 484 566109

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

NinuxDay in Rome from November 27-29, 2009

The Ninux.org team announced the first “Ninux Day”, a weekend with about and for wireless communities. You will meet software and hardware hackers, geeks, nerds, engineers, artists, the curious and
academics. Experts from all over Europe offer technical and social presentations in the area of wireless community networks.

Join the Ninux Days in Rome, Italy, from November 27-29, 2009.

More Info here:

* http://wiki.ninux.org/NinuxDay2009
* http://wiki.ninux.org/NinuxDay2009en (English)
* http://wiki.ninux.org/NinuxDay2009it (Italian)
* Announcement: http://blog.ninux.org/2009/09/03/ninux-day-2009
* Ninux Blog http://blog.ninux.org

[via ZioPRoTo]

IPv6 and TLS capable network-superserver in Lua and C with HTTP and RPC Slave

The summer of code project of Steven Barth aka Cyrus 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.

LuCId HttpD

The results of the summer work of Cyrus is pretty overwhelming. There is for example nixio, the new POSIX Lua library which will help us getting rid of the Lua 3rd
party library mess. And based on that there is also LuCId – which was described in the GSoC project. It brings us a new efficient HTTP-server. Some people may have
discovered that Cyrus already checked in things into trunk ocassionally. Also SSL support is working. Another nice new feature is native
support for creating wizards which will be used in the near future. The results of LuCId are already being tested in productive environments. They are performing well. Kernel mode
IO and TLS encryption function well. Special thanks for the achievements also go to John Crispin aka BLogic who is the mentor of Steve during the summer.

Links

Freifunk Summer of Code ten students accepted

Thank you to all applicants for the Freifunk Summer of Code project and congratulations to the accepted students! All together there were 49 applications for Freifunk. We could accept 10 students. They are currently updating their project proposals. I will present them here soon. We invite the students and anyone else to our Wireless Community Weekend at the end of May. More info coming out soon. Good luck for your summer of code projects For everyone who did not get in or people who did not apply, we welcome every contributor and user of the freifunk software tools and are looking forward to your involvement outside the Summer of Code.

Freifunk Participation in the Google Summer of Code 2009

I applied for the Google Summer of Code for Freifunk again this year and we got in 🙂 Please check the info page on the summer of code page for Freifunk here: http://socghop.appspot.com/org/show/google/gsoc2009/ffopenwrt . Applications need to be submitted via the Google Summer of Code website.

Discuss your ideas for development on the IRC channels of Freifunk and OpenWrt here:
irc.fu-berlin.de #freifunk
irc.freenode.net #openwrt 

We have set up a wiki page for ideas. Please add your idea here:
http://wiki.freifunk.net/Ideas

Some frequently asked questions from the Summer of Code FAQ

How does a student apply?
Students can submit their applications via the Google Summer of Code 2009 site from March 23 – April 3, 2009. … make sure to check out each organization’s "Ideas" list to get to know a particular open source organization better.  

What should a student application look like?
Your application should include the following: your project proposal, why you’d like to execute on this particular project, and the reason you’re the best individual to do so. Your proposal should also include details of your academic, industry, and/or open source development experience, and other details as you see fit. An explanation of your development methodology is a good idea, as well. If the organization you want to work with has a specific application template they would like you to use, it will be made available to you to fill in when submitting your proposal via the GSoC web app.   

Can a student submit more than one application?
Yes, each student may submit up to twenty applications. However, only one application will be accepted. We’ve heard from our mentoring organizations that quality is better than quantity.   

Can students already working on an open source project continue to work on it as part of Google Summer of Code?
Yes, as long as they meet all other requirements for program eligibility. Students should be sure to note their previous relationship with the project in their applications. New work will need to be done for the project as part of participation in GSoC.   

Should students begin working on their applications before Google begins accepting program applications?       
That’s up to you. Keep in mind, though, that our mentoring organizations will be publishing a list of proposed project ideas, so you may find that you’ll want to revamp your application later, or create an entirely new one to address one of those ideas.   

Can a student work on more than one project?
No, each participant is only eligible for one stipend.   

Can a group apply for and work on a single proposal?
No, only an individual may work on a given project. Of course, students should feel free to collaborate with others to accomplish their project goals. 

Links

* http://socghop.appspot.com/org/show/google/gsoc2009/ffopenwrt

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