gsoc

Freifunk Google Summer of Code 2014

We are excited that Freifunk has been accepted as a Google Summer of Code Mentor organization again in 2014.

We are now looking for interesting student projects. Participating community networks and projects have already put up a list of ideas on the wiki.

Students can apply for example for projects developing packages for OpenWrt (the basis of the freifunk firmware) extending its functionality or other useful network tools such as management server tools, graphic interfaces for existing tools, map extensions, p2p tools that take routing into consideration, implementing wlan sleeping modes, routing protocols and more.

The deadline for student applications is 21 March: 19:00 UTC. We recommend to start your application now. You also need to add an enrolement form into the system.

 

Freifunk Google Summer of Code Timeline

21 March:

19:00 UTC

Student application deadline.

Interim Period:

Mentoring organizations review and rank student proposals; where necessary, mentoring organizations may request further proposal detail from the student applicant.

7 April:

Mentoring organizations should have requested slots via their profile in Melange by this point.

9 April:

Slot allocations published to mentoring organizations

Interim Period:

Slot allocation trades happen amongst organizations. Mentoring organizations review and rank student proposals; where necessary, mentoring organizations may request further proposal detail from the student applicant.

15 April:

First round of de-duplication checks happens; organizations work together to try to resolve as many duplicates as possible.

18 April:


  1. All mentors must be signed up and all student proposals matched with a mentor - 07:00 UTC

  2. Student acceptance choice deadline.

  3. IRC meeting to resolve any outstanding duplicate accepted students - 19:00 UTC #gsoc (organizations must send a delegate to represent them in this meeting regardless of if they are in a duplicate situation before the meeting.)

21 April:

19:00 UTC

Accepted student proposals announced on the Google Summer of Code 2014 site.

Community Bonding Period:

Students get to know mentors, read documentation, get up to speed to begin working on their projects.

19 May:


  1. Students begin coding for their Google Summer of Code projects;

  2. Google begins issuing initial student payments provided tax forms are on file and students are in good standing with their communities.

Work Period:

Mentors give students a helping hand and guidance on their projects.

23 June:

19:00 UTC

Mentors and students can begin submitting mid-term evaluations.

27 June:

19:00 UTC


  1. Mid-term evaluations deadline;

  2. Google begins issuing mid-term student payments provided passing student survey is on file.

Work Period:

Mentors give students a helping hand and guidance on their projects.

11 August:

Suggested 'pencils down' date. Take a week to scrub code, write tests, improve documentation, etc.

18 August:

19:00 UTC

Firm 'pencils down' date. Mentors, students and organization administrators can begin submitting final evaluations to Google.

22 August:

19:00 UTC


  1. Final evaluation deadline

  2. Google begins issuing student and mentoring organization payments provided forms and evaluations are on file.

22 August: 20:00 UTC

Students can begin submitting required code samples to Google

25 August:

Final results of Google Summer of Code 2014 announced

Links

* GSoC Page: https://www.google-melange.com/gsoc/org2/google/gsoc2014/freifunk

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

Freifunk Google Summer of Code: Guifi.net and QMP

Hakais has put up some info about student projects that were accepted as Freifunk Google Summer of Code projects and which are taken care by Guifi.net. Two students involved in Guifi.net have been accepted for the Gsoc 2012.

Google Summer of Code is a global program that offers students stipends to write code for open source projects. We have worked with the open source community to identify and fund exciting projects for the upcoming summer. One of these projects is named Guifi.net integration for QMP system, which has been applied by Joel Espunya and mentored by Pau Escrich. The main objective of it is to provide an easy way to use the QMP Mesh firmware inside the Guifi.net community network. (http://guifi.net/en/node/47699)

More info on the projects:

State of the art

The main purpose of QMP (Quick Mesh Project) is to provide an open and free software solution for the quick deployment of a WiFi network based on Mesh/MANET technology. It is focused to be useful mainly in the wireless community network. It is based on OpenWRT Linux and it is completely OpenSource.

The QMP project was drafted by Guifi.net (http://guifi.net/en) active members during year 2010. It was started on the beginnings of 2011 thanks to the funding of a local fundation named puntCat (http://www.fundacio.cat/en_index.html). This funding was ended on december 2011. However the project development still alive by a volunteers team.

  • Mesh Network

Strictly speaking, a Mesh network is one where all nodes (participants) are routers, meaning that all the nodes accept and forward packets from other nodes according to the routing rules. Thanks to this property the physical topology of the network is only restricted by the need of all nodes to be connected through at least one link.

  • Community Network

A community network is a network made and maintained by the same participants. Unlike the model used by the global telecommunication companies (which are business-focused), each user is owner of his stretch following the philosophy make-it-yourself. Using some agreements and organizations (e.g web site) they are able to connect with neighbours, neighbours of the neighbours and so on.

Project description

  • Summary

The objective of the project is to provide a software solution to easy integrate the Guifi.net characteristics into the QMP system.

  • Why this is needed

Currently QMP is a working system, that can be used to easy deploy a Mesh Network but there are several missing features. One of them is the integration with the Guifi.net community. It can also be used as a template for the integration of other Network Communities like Freifunk, Funkfeuer, AWMN, etc.

Freifunk.net and Ninux.org accepted as Google Summer of Code Mentor Organizations

Freifunk.net and Ninux.org have been accepted as mentor organizations for the Google Summer of Code 2012. It is fantastic news that the growing international free networks community is now represented by two organizations in the study program.

If you are looking for more information on how to participate get in touch with your local wireless community or introduce your ideas on the wiki or Wlanware mailing list. People on the list will direct you to specific subprojects and contact points if needed.

Freifunk.net is an umbrella organization for wlan networks and community projects around the world and welcomes student applications for software tools to build and enhance free networks including:

* projects for routing protocols like OLSR, B.A.T.M.A.N. or other freely licensed protocols

* firmwares for routers and software for network devices

* software for network specific content creation like network CMS'

* any other network related software project

If you are a student there are important links to follow:

* 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/gsoc2012/freifunk

* Google Open Source Programs: http://socghop.appspot.com

There is an info day on March 15 in Rome. You can also meet many contributors to the community at the battle of the mesh in Athens from March 26-April 1: http://battlemesh.org/BattleMeshV5

Freifunk Google Summer of Code 2011

Freifunk has been is again a mentoring organization for Google Summer of Code. 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

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

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

Syndicate content