From christof.schulze at gmx.net Sat Apr 7 11:17:00 2018 From: christof.schulze at gmx.net (Christof Schulze) Date: Sat, 7 Apr 2018 13:17:00 +0200 Subject: [Babel-users] monitor command - change neighbours - where is the change Message-ID: <20180407111700.GA24619@yoshi.christofschulze.com> Hello When looking at the output of the monitor command, I saw those lines following each other within a very short time: change neighbour 560221ea6f60 address fe80::183b:50ff:fe6e:f7df if babel-vpn-1374 reach ffff ureach 0000 rxcost 96 txcost 96 cost 96 change neighbour 560221ea6f60 address fe80::183b:50ff:fe6e:f7df if babel-vpn-1374 reach ffff ureach 0000 rxcost 96 txcost 96 cost 96 In general, the monitor command seems to create more data than I expected. In this example, I cannot spot a change. Why is this output generated and is it really necessary? Regards Christof -- () ascii ribbon campaign - against html e-mail /\ against proprietary attachments -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 195 bytes Desc: not available URL: From gabriel at kerneis.info Sat Apr 7 11:26:06 2018 From: gabriel at kerneis.info (Gabriel Kerneis) Date: Sat, 07 Apr 2018 13:26:06 +0200 Subject: [Babel-users] monitor command - change neighbours - where is the change In-Reply-To: <20180407111700.GA24619@yoshi.christofschulze.com> References: <20180407111700.GA24619@yoshi.christofschulze.com> Message-ID: <1523100366.2570851.1329757040.0AA867CF@webmail.messagingengine.com> On Sat, Apr 7, 2018, at 13:17, Christof Schulze wrote: > Hello > > When looking at the output of the monitor command, I saw those lines > following each other within a very short time: > > change neighbour 560221ea6f60 address fe80::183b:50ff:fe6e:f7df if > babel-vpn-1374 reach ffff ureach 0000 rxcost 96 txcost 96 cost 96 > change neighbour 560221ea6f60 address fe80::183b:50ff:fe6e:f7df if > babel-vpn-1374 reach ffff ureach 0000 rxcost 96 txcost 96 cost 96 > > In general, the monitor command seems to create more data than I > expected. In this example, I cannot spot a change. > Why is this output generated and is it really necessary? When I asked a long time ago for babelweb 1, the answer was that monitoring is stateless, and it's more reliable to keep it simple and verbose than to try and deduplicate, which could be buggy, would make the code more complex, etc. The idea is that whenever something might have changed, it is logged conservatively. I assume this argument still holds. -- Gabriel From jch at irif.fr Sat Apr 7 13:13:09 2018 From: jch at irif.fr (Juliusz Chroboczek) Date: Sat, 07 Apr 2018 15:13:09 +0200 Subject: [Babel-users] ANNOUNCE: babeld-1.8.1 Message-ID: <878t9zrwgq.wl-jch@irif.fr> Dear all, Version 1.8.1 of babeld, the Babel routing daemon, is available from https://www.irif.fr/~jch//software/files/babeld-1.8.1.tar.gz https://www.irif.fr/~jch//software/files/babeld-1.8.1.tar.gz.asc This release makes two important changes, and upgrading is strongly recommended. First of all, it properly parses and acts upon the new kinds of messages allowed by RFC 6126bis, the upcoming version of the Babel specification. However, it doesn't send any of the new messages, so it should be perfectly safe to upgrade. In particular, it still uses the old format for source-specific routing. Second, it fixes a long-standing bug that would delay convergence in some cases. You should find convergence times much improved, at the cost of a small increase in control traffic. There's also a fix for point-to-point interfaces under Linux, babeld shold work fine over wireguard now. Enjoy, -- Juliusz 7 April 2018: babeld-1.8.1 * Implemented parsing of mandatory sub-TLVs and unicast and unscheduled Hellos. This makes this version comply with RFC 6126bis. However, we don't send any of these yet, so this version remains compatible with RFC 6126. * Fixed a bug that prevented us from sending requests after we lose a route. This makes convergence much faster in some cases, at the cost of slightly increased traffic. * Fixed interface addresses on some kinds of point-to-point links. * The keep-unfeasible (-u) option has been removed, this is now the default behaviour. -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 488 bytes Desc: OpenPGP Digital Signature URL: From b13253 at gmail.com Fri Apr 20 18:35:02 2018 From: b13253 at gmail.com (StarBrilliant) Date: Fri, 20 Apr 2018 17:35:02 +0000 Subject: [Babel-users] Reachability issue when multicast is less reliable than unicast Message-ID: Hi there, I run a babeld cluster over ZeroTier mesh VPN with 10 nodes spread globally. Recently I met some reachability issues when I add new nodes to the network. The kernel routing table periodically shows some nodes as "unreachable". I made sure that missing nodes are in fact reachable via a link-local ping. Also when I do a "ping6 ff02::1:6%zt0" over the network, sometimes I only receive 7 or 8 replies. I guess ZeroTier has performance issues with multicast (it says it can only run multicast over 32 nodes by default). The following shows my current configuration, with hop count, packet drop, and latency taken consideration into metrics calculation: > interface zt0 type tunnel link-quality true rxcost 16 hello-interval 10 rtt-min 16 rtt-max 1024 max-rtt-penalty 1008 > redistribute local if zt0 allow > redistribute local deny I know Babel can now run over unicast addresses. How can I improve my babeld configuration to utilize the new feature? (P.S. To my knowledge, multicast over Wi-Fi has lower transmission rate but no retry, thus also has different reliability compared to unicast. How much would babel's performance be affected over such networks?) -------------- next part -------------- An HTML attachment was scrubbed... URL: From jch at irif.fr Fri Apr 20 21:18:33 2018 From: jch at irif.fr (Juliusz Chroboczek) Date: Fri, 20 Apr 2018 22:18:33 +0200 Subject: [Babel-users] Reachability issue when multicast is less reliable than unicast In-Reply-To: References: Message-ID: <87lgdhtyw6.wl-jch@irif.fr> Hi, > I know Babel can now run over unicast addresses. Yes, and I would welcome help testing this feature. > How can I improve my babeld configuration to utilize the new feature? First, you need to switch to branch "unicast": git checkout unicast Then, rebuild babeld, and put the following in your /etc/babeld.conf: default unicast true Please be aware that this branch is under active development, and it gets rebased occasionally -- if something goes wrong, destroy your git repository and make a new clone. Please be also aware that it currently doesn't do source-specific routing (if you don't know what that is, it's not a problem for you.) > (P.S. To my knowledge, multicast over Wi-Fi has lower transmission rate but no > retry, thus also has different reliability compared to unicast. How much would > babel's performance be affected over such networks?) Currently, the "unicast" configuration will still use multicast for link sensing, so there should be no issues. We intend to work on link quality estimation for pure unicast networks at some point. -- Juliusz From b13253 at gmail.com Fri Apr 20 22:20:11 2018 From: b13253 at gmail.com (StarBrilliant) Date: Sat, 21 Apr 2018 05:20:11 +0800 Subject: [Babel-users] Reachability issue when multicast is less reliable than unicast In-Reply-To: <87lgdhtyw6.wl-jch@irif.fr> References: <87lgdhtyw6.wl-jch@irif.fr> Message-ID: Thank you for your information! > Please be also aware that it currently > doesn't do source-specific routing (if you don't know what that is, it's > not a problem for you.) What a pity. SADR is exactly the reason I'm using Babel for. Is it currently unable to announce SADR or unable to receive, or neither? If so, I would be able to install this version on only a subset of my nodes that require SADR. > We intend to work on link quality estimation for pure unicast networks at some point. That would be very kind! From b13253 at gmail.com Sat Apr 21 00:15:57 2018 From: b13253 at gmail.com (StarBrilliant) Date: Fri, 20 Apr 2018 19:15:57 -0400 Subject: [Babel-users] Some idea on cost calculation based on hop count, loss and RTT Message-ID: Hi there, I am a Babel user over both Wi-Fi and tunneled mesh VPN. I want to share some idea on cost calculation based on hop count, loss and RTT. === The Problem === I would like to find a feasible low-RTT route across my network because direct route is usually not the best. My configuration is: > interface zt0 type tunnel link-quality true rxcost 16 hello-interval 10 rtt-min 16 rtt-max 1024 max-rtt-penalty 1008 Even after I have tweaked with these parameters, Babel still often chooses me a route with high loss but low latency. Such link is impossible with Wi-Fi but very common with tunnels. According to the code, I know Babel uses a formula like this: > cost = hop/(1-loss)^2 + RTT, (Constants omitted. In case of mistake, please correct me.) in which "hop" is related to the sum of (txcost * rxcost), "loss" is the rate of one-way packet loss. Using the formula above, we know my configuration parameters would ask Babel to choose a route with the lowest RTT, adding a hop if 16ms can be saved, and try a 1.73ms slower route if packet loss reaches 5%, or 3.75ms if 10%. The influence of packet loss is obviously overlooked by Babel. To compensate this, I have to increase "rxcost" and "rtt-min", but that would give me routes with lower hops but higher RTT, which is not what I want. === My Model === Therefore I want to propose a new model on cost calculation, suitable for long-range tunneled networks. Typically we usually want to maximize TCP throughput and keep the hop count not too high. Mathis et al. gave us a formula to estimate the theoretical maximum TCP throughput: > throughput <= 1/(rtt * sqrt(loss)), (Again constants omitted.) We want to make cost linear to RTT and hop count, so we define it as the invert of theoretical throughput: > my_new_cost = (hop+RTT) * sqrt(loss), where loss = 1 - (alpha+beta) / 2 or loss = 1 - sqrt(alpha*beta). Now the derivation of loss goes downwards. I think it better reflects the reality: Adding 1% of packet loss to a link with 5% loss, makes things much worse than adding it to a link with already 50% loss. === Issues === There are several issues regarding my model. First, no real experiments have done over this formula. We need to consider more. Second, cross-version compatibility would be a problem. It's lucky that Babel is still a draft so we can discuss it without breaking things. Third, "loss" is on the denominator side, we need to set a lower bound (e.g. 100%/32 or 100%/64) so it does not overflow. Last, no research shows whether Mathis et al.'s formula works on Wi-Fi. Thank you for listening. And I hope we can discuss more about this topic. From jch at irif.fr Sat Apr 21 02:48:24 2018 From: jch at irif.fr (Juliusz Chroboczek) Date: Sat, 21 Apr 2018 03:48:24 +0200 Subject: [Babel-users] Reachability issue when multicast is less reliable than unicast In-Reply-To: References: <87lgdhtyw6.wl-jch@irif.fr> Message-ID: <87fu3ptjmf.wl-jch@irif.fr> >> Please be also aware that it currently doesn't do source-specific >> routing (if you don't know what that is, it's not a problem for you.) > What a pity. SADR is exactly the reason I'm using Babel for. Give me two-three weeks, then. -- Juliusz From b13253 at gmail.com Sat Apr 21 09:39:36 2018 From: b13253 at gmail.com (StarBrilliant) Date: Sat, 21 Apr 2018 16:39:36 +0800 Subject: [Babel-users] Reachability issue when multicast is less reliable than unicast In-Reply-To: <87fu3ptjmf.wl-jch@irif.fr> References: <87lgdhtyw6.wl-jch@irif.fr> <87fu3ptjmf.wl-jch@irif.fr> Message-ID: On Sat, Apr 21, 2018 at 9:48 AM, Juliusz Chroboczek wrote: > Give me two-three weeks, then. Thank you very very much for your work! From b13253 at gmail.com Sat Apr 21 13:00:31 2018 From: b13253 at gmail.com (StarBrilliant) Date: Sat, 21 Apr 2018 20:00:31 +0800 Subject: [Babel-users] Some idea on cost calculation based on hop count, loss and RTT In-Reply-To: References: Message-ID: On Sat, Apr 21, 2018 at 7:15 AM, StarBrilliant wrote: > ... Hi Babel developer, TL;DR: In case I didn't explain clearly in my previous mail, I think the current cost function is not suitable for long-range links: current_cost = hop/(1-loss)^2 + RTT I want to suggest a new cost function that may be better: my_new_cost = (hop+RTT) * sqrt(clip(loss)) I wish we could have more flexible configurations for balancing tunneled networks. -- Best regards, StarBrilliant From valent.turkovic at gmail.com Sat Apr 21 13:32:40 2018 From: valent.turkovic at gmail.com (valent.turkovic at gmail.com) Date: Sat, 21 Apr 2018 14:32:40 +0200 Subject: [Babel-users] Some idea on cost calculation based on hop count, loss and RTT In-Reply-To: References: Message-ID: Hi Star, what technology do you use for your long range links? Are there 3G links with quite low signal quality and therefor you get a high loss of packets? Please explain your setup so we can get a better overall picture of what you are trying to accomplish. Cheers, Valent. On 21 April 2018 at 14:00, StarBrilliant wrote: > On Sat, Apr 21, 2018 at 7:15 AM, StarBrilliant wrote: >> ... > > Hi Babel developer, > > TL;DR: > In case I didn't explain clearly in my previous mail, I think the > current cost function is not suitable for long-range links: > > current_cost = hop/(1-loss)^2 + RTT > > I want to suggest a new cost function that may be better: > > my_new_cost = (hop+RTT) * sqrt(clip(loss)) > > I wish we could have more flexible configurations for balancing > tunneled networks. > > > -- > Best regards, > StarBrilliant > > _______________________________________________ > Babel-users mailing list > Babel-users at alioth-lists.debian.net > https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/babel-users From b13253 at gmail.com Sat Apr 21 21:21:43 2018 From: b13253 at gmail.com (StarBrilliant) Date: Sun, 22 Apr 2018 04:21:43 +0800 Subject: [Babel-users] Some idea on cost calculation based on hop count, loss and RTT In-Reply-To: References: Message-ID: On Sat, Apr 21, 2018 at 8:32 PM, valent.turkovic at gmail.com wrote: > Hi Star, > what technology do you use for your long range links? Are there 3G > links with quite low signal quality and therefor you get a high loss > of packets? > > Please explain your setup so we can get a better overall picture of > what you are trying to accomplish. Hi Valent, My setup is a full mesh VPN over UDP running on wired Ethernet. I use Babel to connect nodes all around the globe. The architecture includes 2 nodes located in US, 2 nodes located in Japan, 2 node located in China, and 2 nodes located in Germany. I want to have maximum TCP throughput between any of them. I found two problems: 1. A direct link Japan -> Germany takes 380ms RTT at peak hour, while Japan -> US -> Germany takes 260ms. I want Babel to choose an indirect link during peak hours. 2. The direct link between two China nodes has 10ms RTT but up to 20% UDP packet loss at peak hour, because some monopolic ISP punishes inter-ISP connections. I want packets to detour to Japan then back to China to reduce packet loss. The facts are: 1. Babel uses rxcost as 256 by default, so a 120ms difference does not add too much to the metric. I had to reduce rxcost to 16, but that leads to the next problem. 2. Link quality estimation scales by rxcost, not the sum of rxcost + RTT. Thus a high loss would contribute nothing to metric if rxcost is reduced. From heroxbd at gentoo.org Mon Apr 23 01:38:41 2018 From: heroxbd at gentoo.org (Benda Xu) Date: Mon, 23 Apr 2018 09:38:41 +0900 Subject: [Babel-users] Some idea on cost calculation based on hop count, loss and RTT In-Reply-To: (StarBrilliant's message of "Sat, 21 Apr 2018 20:00:31 +0800") References: Message-ID: <87604i3gfi.fsf@gentoo.org> Hi StarBrilliant, StarBrilliant writes: > In case I didn't explain clearly in my previous mail, I think the > current cost function is not suitable for long-range links: > > current_cost = hop/(1-loss)^2 + RTT > > I want to suggest a new cost function that may be better: > > my_new_cost = (hop+RTT) * sqrt(clip(loss)) > > I wish we could have more flexible configurations for balancing > tunneled networks. This is a very interesting idea. Do you have plans to develop a set of test and benchmark criteria to objectively assess the effectiveness of different cost functions? I have got a feeling that it is hard to argue on which is better without a performance test. Yours, Benda From heroxbd at gentoo.org Mon Apr 23 01:43:31 2018 From: heroxbd at gentoo.org (Benda Xu) Date: Mon, 23 Apr 2018 09:43:31 +0900 Subject: [Babel-users] Some idea on cost calculation based on hop count, loss and RTT In-Reply-To: (valent's message of "Sat, 21 Apr 2018 14:32:40 +0200") References: Message-ID: <87wowy21n0.fsf@gentoo.org> Hi Valent, "valent.turkovic at gmail.com" writes: > what technology do you use for your long range links? Are there 3G > links with quite low signal quality and therefor you get a high loss > of packets? As Star said, he is using tunnels over home-broadband and datacenter UDP. The high loss of packets could come from congestion or ISP/state-level firewalls sabotaging connectivity. Yours, Benda From b13253 at gmail.com Tue Apr 24 10:49:29 2018 From: b13253 at gmail.com (StarBrilliant) Date: Tue, 24 Apr 2018 18:49:29 +0900 Subject: [Babel-users] Some idea on cost calculation based on hop count, loss and RTT In-Reply-To: <87wowy21n0.fsf@gentoo.org> References: <87wowy21n0.fsf@gentoo.org> Message-ID: > This is a very interesting idea. Do you have plans to develop a set of > test and benchmark criteria to objectively assess the effectiveness of > different cost functions? Yes! My cost function is purely theoretical, based on Mathis's formula. The purpose is to maximize TCP throughput. I fully agree that a set of test and benchmark is required. However I can only come up with a performance benchmark in a simulated packet-lossy environment, which was actually done by other people before. Do you have any other suggestions on the benchmark? > As Star said, he is using tunnels over home-broadband and datacenter > UDP. The high loss of packets could come from congestion or > ISP/state-level firewalls sabotaging connectivity. Yeah, thanks for your explanation. This is true, here in you know... China. From jch at irif.fr Sun Apr 29 22:47:47 2018 From: jch at irif.fr (Juliusz Chroboczek) Date: Sun, 29 Apr 2018 23:47:47 +0200 Subject: [Babel-users] =?iso-8859-15?q?Osijek=2C_Otvorena_Mre=B8a=2C_MeshP?= =?iso-8859-15?q?oint?= Message-ID: <87bme11y7w.wl-jch@irif.fr> Hi, I've just spent four days in Osijek, a small city in the East of Croatia, invited by Valent Turković (in copy of this mail). It was an interesting stay. For those of you who are not up to scratch in European Geography, the part of Croatia that everyone knows about is the west, on the Adriatic gulfn. But Croatia also has an inland part, in the east, which is flat and agricultural. The region is known as Slavonia (no relation to either Slovenia or Slovakia), and the main city is Osijek (pronounced "Osiek"); the other well-known town there is Vukovar. Valent is the founder (co-founder?) of three projects: 1. Osijek Wireless, a non-profit that puts open access points all over the place, both in fixed locations and to support events; 2. Otvorena Mreža (Open Network), an informal project that develops a number of technologies including a free hardware outdoor router running Babel, known as MeshPoint; Otvorena Mreža notably provided Internet access to a Syrian refugee camp in Beli Monastir back in 2015; 3. Crisis Innovation Lab, a limited responsibility company (for profit) that aims to market an outdoor router for crisis situations. The Otvorena Mreža technology stack uses a number of familiar open-source technologies, notably Babel for meshing the routers when the need arises. Valent is unfortunately not the best at communicating about his activities, and the only website I could find in English is about the MeshPoint crisis router. It runs Babel ;-) https://meshpoint.me/ -- Juliusz From valent at otvorenamreza.org Mon Apr 30 11:03:19 2018 From: valent at otvorenamreza.org (Valent Turkovic) Date: Mon, 30 Apr 2018 12:03:19 +0200 Subject: [Babel-users] =?utf-8?q?Osijek=2C_Otvorena_Mre=C5=BEa=2C_MeshPoi?= =?utf-8?q?nt?= In-Reply-To: <87bme11y7w.wl-jch@irif.fr> References: <87bme11y7w.wl-jch@irif.fr> Message-ID: Hi, On Sun, Apr 29, 2018 at 11:47 PM, Juliusz Chroboczek wrote: > Hi, > > I've just spent four days in Osijek, a small city in the East of Croatia, > invited by Valent Turković (in copy of this mail). It was an interesting > stay. Juliusz, it was a blast having you here! I really enjoyed meeting you and discussions we had were very, very interesting. You are welcome back to visit anytime, your friends are also welcome, and your friends of friends are also welcome :) > For those of you who are not up to scratch in European Geography, the part > of Croatia that everyone knows about is the west, on the Adriatic gulfn. > But Croatia also has an inland part, in the east, which is flat and > agricultural. The region is known as Slavonia (no relation to either > Slovenia or Slovakia), and the main city is Osijek (pronounced "Osiek"); > the other well-known town there is Vukovar. > > Valent is the founder (co-founder?) of three projects: > > 1. Osijek Wireless, a non-profit that puts open access points all over the > place, both in fixed locations and to support events; > 2. Otvorena Mreža (Open Network), an informal project that develops > a number of technologies including a free hardware outdoor router > running Babel, known as MeshPoint; Otvorena Mreža notably provided > Internet access to a Syrian refugee camp in Beli Monastir back in 2015; > 3. Crisis Innovation Lab, a limited responsibility company (for profit) > that aims to market an outdoor router for crisis situations. > > The Otvorena Mreža technology stack uses a number of familiar open-source > technologies, notably Babel for meshing the routers when the need arises. Thank you for this overview. Otvorena mreža and Wlan Slovenia have been working together for over 7 years, and we have made great progress together. You can check out our live node map here [1]. We are now in the process of setting up our own nodewatcher server that will run on https://nodes.otvorenamreza.org, and we already have a separate vpn gateway for our part of the network. Idea is to have duplicate and redundant systems so if any part of Wlan Slovenia network has some issues they can fall back to using our infrastructure, and vice-versa. > Valent is unfortunately not the best at communicating about his > activities, and the only website I could find in English is about the > MeshPoint crisis router. It runs Babel ;-) > > https://meshpoint.me/ > > -- Juliusz Yes, this is so true. I didn't understand the importance of communicating vision and mission up until few months ago... I always thought that you really use terms like "vision" and "mission" when you wan't to sound smart or when you want to take money from someone :) I wrongly thought that "real engineers" don't need to communicate their vision, they just have an idea and go work on it. But without a way to communicate your idea to others you are then left alone to work on your idea and if idea is actually big and important enough there is actually very small chance that you can do it on your own. Best place we have documented our work so far is on Hackaday prize competition blogs [2] from last year's competition. But we have gone quite far from that since then. There a number of projects (big and small) and corporations (mostly huge ones) that are trying to address the issue of digital divide and how to connect next 5 billion people to the Internet. If you have been keeping an eye on what and how they are doing it you have seen them failing much more than getting something even off the ground, let alone making it successful. I was asking my self this; if even the biggest corporations, with almost unlimited resources, with probably some of smartest people on the planet, best scientists and awesome engineers then is it possible that a small group of open source geeks, volunteers with almost no budget can "compete" with them? My answer is yes. Not only can we "compete" but we can show them how this can actually be done. I see two mayor flaws in approaches so far. 1. What most big corporations say they do and what they are actually doing is usually not the same. Yes, they wan't to connect next 5 billion people, but all of them want to build some kind of wallgarden and not to connect people in the most general way possible. This goes agings internet being more open, and it is closing it down, making it almost a privately owned network (with corporations as gatekeepers) instead of a great public good. 2. All commercial backed entities want to build an infrastructure what will be used by next 5 billion people. They see anyone connecting to the network not as a valuable contributor but only as a user. Also building infrastructure doesn't scale, or at least it scales very, very poorly - especially in developing countries. I have seen examples and I know there is a better way to do it. It is definitely not to build an infrastructure, because we would need billions and billions of euros/dollars... What we need to build are tools that will enable next 5 billion people to connect themselves. Building tools isn't as sexy or glamorous as building something like infrastructure that you can show of to others, but it is definitely only was I see we can connect whole world. But also building only tools is not enough. So the full answer is we need to do both. We need to build tools and we need to build infrastructure. But the main difference is in out approach. We don't build infrastructure with top to down approach because that doesn't scale, but we build infrastructure from bottom up. This is only way we can scale things and actually connect next 5 billion people. But building infrastructure and tools is also not enough. We also need to build our own open source and open hardware wifi routers. We can't use off the shelf devices because most of them are getting more and more closed, they are also change too often so you can't plan anything with them. Most consumer devices change every few months, so as soon as they are released they aren't supported in OpenWrt, and few months later when you get support for them they are already replaced by a different model or revision. As much as doing all of this seams crazy, this is exactly what my team and I have been doing for last 3 years. And I believe in this so much that I have also stared a social entrepreneurship company. Reason for starting a company was motivated by earning a profit, but to show that I'm 100% serious and dedicated to this idea. I have put my money where my mouth is, so all of our (my wife and mine) money is used to make this happen. We believe we have a good business plan and I'm sure we will be self-sustainable and be able to support this idea from profits that we gather., but for now is company if far from being profitable. Juliusz can tell you that we drive over 25 year old car :) But all our team members get payed for their contributions, to be precise, all except my wife Mili and me. We are trying to get some EU funding and collect some grants, but I'm very careful about that. Because most important to us is to have a self-sustainable business model which would mean that we would stay independent. Also if we would focus only on getting "free money" from grants then we would have would to find new source of income once we deplete current one... Getting "free money" could become a honey trap, because some people and projects that go this route fail after few years. They become very good at getting free money that they just like it much more (or overhead is too much) than doing real work, so projects actually stop doing any real work. We are very conscious of this. So we are only asking for enough money to help us accelerate our development (hire few full time people) but we will never ask for so much money that we feel "safe". I have learned that in order to produce good results you have to have correct incentives setup. And we have seen also how many open source and open hardware projects fail because enthusiasm wears our after a few years, also life happens - people get married, get children, and of course then priorities change. You have to provide for your family and first that goes out of the picture are hobbies and open source projects that you work on. This is why I started a company, to have enough money to pay for developers to work on open source projects so that they can bring food to their families. This is far too long email, but please let's continue this discussion. Cheers, Valent. [1] https://nodes.wlan-si.net/map/ [2] https://hackaday.io/project/10453-meshpoint-wifi-router-for-humanitarian-crisis