Freifunk Digital Twin – GSoC 2021 – Phase I

Prologue

Hey community 👋
This is the first update on the GSoC 2021-Freifunk Digital Twin Project.

Recap

The goals for the first phase were:

  • determine a management tool for 100+ VM´s and OpenWrt Devices
  • figure out how to fetch and prepare topology information from routing daemons

So let´s see how that went…

Achievements

After testing and playing around with Qemu, the next step was to find a suitable VM-Management tool that is able to manage 100+ VMs. After several hours of reading and testing, i finally chose libvirt, because it´s open source, lightweight and CLI-controllable. But because it´s so extensive, i needed plenty of time to read in an get up a proper OpenWRT-VM but now it works quite well. After that, we decided to migrate our test environment from my local computer to our lab-server, which is more powerful. After some technical issues, which cost us plenty of time, the environment was finally up an running and it is now able to start and host 100+ OpenWRT VMs. Because of the stated problems, i doesn´t have much to show to you at the moment, so i´m going to update this post in the next few days.

Next steps

  • figure out how to fetch and prepare topology information from routing daemons
  • Write a script that combines VM management and network management

See you in the next few days with a new update post. ✌️

Freifunk Digital Twin – GSoC 2021

Hey fellas! ✌️
My name is Paul and this summer im going to work on the Freifunk-GSoC Project: Freifunk Digital Twin – test on your virtual mesh before going productive.

About me

My name is Paul Schreiber and i´m in my third year studying Bachelor of Internet-Technology an Applications at the University of Applied Sciences Nordhausen (Germany). I´ve been using Open Source content since the first day of my studies and i really appreciate that there are so many people who love to share their code and applications to all the others. I always wanted to give something back to the community but i never had time to do so. Now i´m lucky to participate at the GSoC 2021 and spend my summer on Open Source work.

Why this Project?

I´ve grown up in an rural area in Thuringia and we always struggled to get a proper, affordable internet connection. The wired (DSL) connection was always slow and the 4G alternative was pricey and the data volume is limited. Luckily though, there are non-profit organizations who provide fast and affordable internet access to all of it´s members.
So when i heard about this project, i wanted to contribute to the Freifunk community as well as the Evernet community.

Evernet

Evernet is a community based rural mesh network based on Freifunk principles organizes as a cooperative since 2008. Across five villages based in Thuringia/Germany, the Evernet community network consists of 110 participating households that run an OpenWrt based Freifunk mesh IEEE 802.11n,ac node on their rooftops and several OpenWrt based access points within the house as access network. The Evernet core network is build on a dedicated backbone infrastructure (5GHz, 24GHz & 60GHz P2P links) between mesh nodes to increase the overall performance.

Motivation

The Evernet – Freifunk mesh is driven by a strong technical networking team. It is focused on a constant maintained network infrastructure and OpenWrt software state following current trunk. The maxim to keep the mesh as fast as radio technologies evolves does involve a cyclic upgrade and update process. Currently this includes just a smoke test with a set of targets placed on a desktop. They follow the pace of OpenWrt trunk development with the goal and commitment to help finding and fixing kernel/driver/config issues and bugs. Especially those that appear on their Freifunk mesh routers while transmitting real WiFi user traffic do lack efficient tools for testing and troubleshooting before going productive with a new Freifunk OpenWrt image.

Goal

Transform the real topology with all of it´s devices and routes into a virtual (digital) twin with which you can perform test and firmware upgrades to ensure full functionality before testing in productive environment.

What we have done so far

We discussed and developed a structure for the project with several milestones to achieve. After that, i gathered information about related work and evaluated whether they are relevant/suitable for this project. I´ve also set up a test environment, tested OpenWrt with Qemu and several management tools.

What´s coming next?

  • determine a management tool for 100+ VM´s and OpenWrt Devices
  • figure out how to fetch and prepare topology information from routing daemons

See you next time with new advances about the project! 😊

Thank you for reading.
Paul ✍️