[WLANware] Freifunk Google Summer of Code, my introduction and proposal

Philipp Psurek philipp.psurek at gmail.com
Fri Mar 25 19:44:35 CET 2016


Hi all,

I decided spontaneously to join the GSoC, so there is not many time to
fulfil all the requirements. I try to write little and fast. The
deadline is in one hour …

I’m phip in the Freifunk-Forum. I’m running the “Freifunk-Cloud” in
Wuppertal since 2011. I merged it from OLSR to Batman-adv in 2011 and
from compat 14 to 15 in April 2014. Currently I’m merging the cloud
form protocol IV to V. Before merging to Gluon I was involved in
development of Freifunk-Advanced since 2012, an OpenWrt Firmware with
some custom Packages. Mainly writing some bash code and debugging the
issues.

Before I was involved in Frieifunk I was an biological assistant. After
five years of engagement for Freifunk I decided studying Information
Technology hoping to participate more in Freifunk development. I’m a
1nd (2nd in April) term student at Bergische Universität Wuppertal, far
at the beginning of my new journey. Now I can write in C – this opens
me more possibilities than bash :-)

Running Freifunk there are many issues. Unstable Batman on multi core
servers, problems with slow DSL-Uplinks dealing with broadcasts, fastd
in the userspace, … A common Freifunk community relies only on layer-2
or layer-3 dealing with a big broadcast domain or complicated routing-
management on layer-3. I’d like to make this obstacles more convenient
for the end user and kill some bugs I’m dealing with every day using
Freifunk.

In 2015 I didn’t have much time analysing the Gluon-Firmware. I think,
this is a huge rock of things to provide a convenient usage for the end
user but there is no way in the middle. Recently I needed a box with 5
Batman-Ethernet-Ports … there was no way using Gluon because all the
custom settings would be removed on the next update … so I took a pure,
fresh compiled OpenWrt and today I wrote this, so the node would be
visible on our node map:

echo "\
{\"node_id\":\"44ec38e97ad0\",\"network\":{\"mac\":\"44:ec:38:e9:7a:d0\
",\
\"addresses\":[\"fe80::6ec:38ff:fee9:7ad0\"],\"mesh\":{\"bat0\":{\
\"interfaces\":{\"wireless\":[\"f6:ef:39:e9:7a:d0\"]}}},\
\"mesh_interfaces\":[\"14:ec:38:e9:7a:d0\",\"24:ec:38:e9:7a:d0\",\
\"34:ec:38:e9:7a:d0\",\"44:ec:38:e9:7a:d0\",\"54:ec:38:e9:7a:d0\"]},\
\"owner\":{\"contact\":\"phip\"},\"system\":{\"role\":\"backbone\",\
\"site_code\":\"ffw\"},\"hostname\":\"Rathaus Elberfeld (Turm)\",\
\"hardware\":{\"nproc\":1,\"model\":\"TP-Link TL-WR1043N/ND v1\"},\
\"software\":{\"batman-adv\":{\"compat\":15,\"version\":\"2016.0\"},\
\"fastd\":{\"enabled\":false,\"version\":\"none\"},\"autoupdater\"\
:{\"enabled\":true,\"branch\":\"pur\"},\"firmware\":{\"base\":\
\"OpenWrt-r48808\",\"release\":\"wup-20160227-pur\"}},\"location\"\
:{\"longitude\":7.14645,\"latitude\":51.25910}}" | gzip | alfred -s 158

clients=$(iw client0 station dump | grep -e "^Station" | wc -l)
cached=$(cat /proc/meminfo | grep -e "^Cached:" | awk '{ print $2}')
total=$(cat /proc/meminfo | grep -e "^MemTotal:" | awk '{ print $2}')
buffers=$(cat /proc/meminfo | grep -e "^Buffers:" | awk '{ print $2}')
free=$(cat /proc/meminfo | grep -e "^MemFree:" | awk '{ print $2}')
uptime=$(cat /proc/uptime | awk '{ print $1}')
idletime=$(cat /proc/uptime | awk '{ print $2}')
ptotal=$(cat /proc/loadavg | awk '{ print $4}' | sed -e "s at .*/@@g")
prunning=$(cat /proc/loadavg | awk '{ print $4}' | sed -e "s@/.*@@g")
loadavg=$(cat /proc/loadavg | awk '{ print $1}')

echo -n
"{\"node_id\":\"44ec38e97ad0\",\"clients\":{\"wifi\":${clients},\"total
\":${clients}},\"rootfs_usage\":0.15,\
\"traffic\":{\"tx\":{\"packets\":0,\"dropped\":0,\"bytes\":0},\
\"rx\":{\"bytes\":0,\"packets\":0},\"forward\":\{\"bytes\":0,\"packets\
":0},\"mgmt_tx\":\{\"bytes\":0,\"packets\":0},\"mgmt_rx\":\{\"bytes\":0
,\"packets\":0}},\"memory\":\{\"cached\":${cached},\"total\":${total},\
"buffers\":${buffers},\
\"free\":${free}},\"uptime\":${uptime},\"idletime\":${idletime},\
\"processes\":{\"total\":${ptotal},\"running\":${prunning}},\
\"loadavg\":${loadavg}}" | gzip | alfred -s 159

of course in script files running by cron. This code took only pure
OpenWrt with Batman and Alfred to replace Gluons daily task but links 5
5 GHz 450 Mbit links and local 2,4 GHz on Batman layer. What I try to
say is: Gluon is to much for certain use but is not modularized enough
for simple tasks beyond end user tasks.

I’m at the beginning of my study of Information Technology. I did’t
know what GSoC is and now I’ve to write some Ideas in only one hour. I
hope to be able providing all the details till the deadline ;-)

If you choose me, I get more time to spend on Freifunk-Issues and
involve more in Freifunk development realizing some cool, new features
instead of working for living.

Besides of my ideas above and your ideas, there are some more of mine:

* ad-hoc splitting of a community in layer2 and layer3 if the broadcast
traffic is not acceptable any more
* ad-hoc switching to the new batman-V protocol
* making some marginal node setting changes without breaking the users
security
* making an cheap Freifunk Node (in end term, not now; I’m still
learning)
https://forum.freifunk.net/t/eigene-freifunkknoten-herstellen/10849
* a radio (batman-adv) based model car …

Sorry for my brevity, but there is not much to write in one hour. 

Thanks in advance and best regards

Yours

Philipp



---------------------------------------------------------------
some links

https://github.com/phi-psi

HP written entirely by me without wordpress typpo3 or other CMS

https://www.freifunk-wuppertal.net/









More information about the WLANware mailing list