Skip to content
This repository was archived by the owner on Dec 18, 2023. It is now read-only.

Commit c56a4e6

Browse files
authored
Add project "Mesh channel coordination"
1 parent 9296251 commit c56a4e6

File tree

1 file changed

+96
-0
lines changed

1 file changed

+96
-0
lines changed
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
---
2+
name: "Mesh channel coordination"
3+
desc: "Automatically select channels in mesh networks"
4+
requirements:
5+
- "C programming skills"
6+
- "Experienced Linux knowledge (usage and architecture)"
7+
- "WLAN technology knowledge (e.g. what CSMA/CA is)"
8+
- "Game theory knowledge (e.g. what a Nash equilibrium is)"
9+
difficulty: "high"
10+
11+
mentors:
12+
- CodeFetch
13+
initiatives:
14+
- GSoC
15+
- ffh
16+
- freifunk
17+
tags:
18+
- OpenWrt
19+
- WLAN
20+
- Networking
21+
- Mesh technology
22+
- Game theory
23+
- Linux
24+
- C
25+
- Lua
26+
collaborating_projects:
27+
- "freifunk"
28+
- "ffh Freifunk Hannover"
29+
---
30+
31+
The aim of this project is to improve the quality of the wireless user experience of mesh networks
32+
and to increase the stability of wireless mesh links specifically mitigating the hidden node problem.
33+
34+
At the moment commercial and most community mesh solutions define a default channel value for their wireless
35+
mesh networks. In many cases the nodes have additional means to connect to their neighboring nodes like direct wired
36+
connections or VPN connections. Additionally, some can utilize multiple radios to reduce the hidden node problem
37+
through diversity routing.
38+
39+
Upcoming features like MCCA, BSS coloring and dedicated RUs will further allow reducing contention caused by interference.
40+
These also need a form of coordination which has been subject of current research and which is partly being defined in the WiFi 7
41+
standard.
42+
43+
As a mesh network is a highly dynamic system and as the radio is often used to both serve the clients
44+
and forward mesh traffic in parallel (so-called VIFs - virtual interfaces), the configuration
45+
of the channels must be done respecting the special properties of mesh protocols while taking
46+
route switches into consideration and reacting accordingly. Care must be taken to not influence the
47+
routing decisions of the mesh protocol in a way that leads to an unstable stable.
48+
49+
An example for an unstable state occurs in dense high-use scenarios with packet-loss-metric based mesh
50+
routing protocols if a wireless link appears to be saturated due to interference caused by neighboring nodes and their clients.
51+
If a redundant route exists in that case, nodes might choose another route with a presumably better metric.
52+
In theory that switch should be transparent to the user, but in practice a mediocre link is often swapped for
53+
a link that e.g. has even less capacity congesting the link long enough for some clients to assume a broken connection
54+
and switch to another node which will eventually suffer, too.
55+
This problem can be mitigated using adjacent channels where coverage overlaps and a redundant connection exists.
56+
57+
Even though modern mesh routing protocols are hardened against some of these issues by not only considering the
58+
packet loss for their metric calculation but also other criteria like calculating the route metrics from
59+
wireless statistics exported from the kernels mac80211 subsystem, they are still a topic of research.
60+
61+
For example the highly sophisticated diversity routing RFC amendment of the more and more popular routing protocol Babel
62+
does not consider shared usage of the radios mesh network with the client network which can lead to unexpected behavior
63+
as different WLAN clients tend to prefer quite individual frequencies depending on their hardware and software configuration
64+
which could lead to an unstable state.
65+
66+
As this project involves a lot of different disciplines the main goal of the student is not to get deep knowledge about
67+
every internal. Instead, the student shall be encouraged to think and act independently then cooperatively and to find a
68+
simple, creative way to improve the current situation (a rapidly implemented 90% solution).
69+
70+
This reflects the results-oriented approach to work which is often required for participating in open-source projects
71+
where code changes must be kept simple to be reviewed timely and to increase the chance of being accepted.
72+
73+
74+
#### Milestones
75+
76+
* Imagine being a WLAN mesh router
77+
* Imagine the surrounding people are WLAN mesh routers
78+
* Imagine your world has other dimensions compared to ours: 2.4g, 5g, 6g, mesh-vpn, mesh-vxlan
79+
* Imagine you are special - Your AI routing acceleration chip has made you become aware due to a flaw
80+
caused by a broken old human-written driver on which your design relies on
81+
* Imagine you have found there exists a lot of different dimensions within the 2.4g, 5g and 6g dimensions called "channels"
82+
* Stop imagining being a WLAN mesh router - be yourself again!
83+
* Remember how annoying it was to hear everyone around you even through walls
84+
* Remember loud bird-like WLAN clients twittering, flying around and sucking your bandwidth
85+
* Remember how you loved and hated them
86+
- you hated how they roamed, how deaf they were - not to speak about all the interference
87+
- you loved how they took away your packet pressure
88+
- serving them made you feel to have a puropse (and you hoped maybe one day they will evolve to mesh routers)
89+
* [ Start from beginning if you did not experience a nightmare about these annoying WLAN clients, yet ]
90+
* Find a way to free your mesh router friends from their chains, lead them outside the cave and enlighten them about channels
91+
* Find some routerphile human beings to help by raising awareness and discuss your plans
92+
* Implementation
93+
* OpenWrt/Gluon integration
94+
95+
#### Inspirationals
96+
* https://blog.freifunk.net/2018/05/19/dawn-a-decentralized-wifi-controller/

0 commit comments

Comments
 (0)