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

Commit 4c8f20f

Browse files
committed
Add project "Mesh channel coordination"
Signed-off-by: Vincent Wiemann <[email protected]>
1 parent 9296251 commit 4c8f20f

File tree

1 file changed

+125
-0
lines changed

1 file changed

+125
-0
lines changed
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
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"
8+
- "Game theory"
9+
- "Graph theory"
10+
difficulty: "high"
11+
12+
mentors:
13+
- CodeFetch
14+
initiatives:
15+
- GSoC
16+
- ffh
17+
- freifunk
18+
tags:
19+
- OpenWrt
20+
- WLAN
21+
- Networking
22+
- Mesh technology
23+
- Game theory
24+
- Graph theory
25+
- Linux
26+
- C
27+
- Lua
28+
collaborating_projects:
29+
- "freifunk"
30+
- "ffh Freifunk Hannover"
31+
---
32+
33+
The aim of this project is to improve the quality of the wireless user
34+
experience in mesh networks and to increase the stability of wireless mesh links
35+
in general specifically mitigating the hidden node problem by utilizing
36+
diverse channels where adjacent networks might otherwise interfere.
37+
38+
At the moment most mesh solutions define a default channel value for their
39+
wireless mesh networks. In many cases the nodes have additional means to connect
40+
to their neighboring nodes like direct wired connections or VPN connections.
41+
Additionally, some could utilize multiple radios to reduce the hidden node
42+
problem in addition to diversity routing.
43+
44+
Upcoming features like MCCA, BSS coloring and dedicated RUs will further allow
45+
reducing contention caused by interference.
46+
These also need a form of coordination which has been subject of current
47+
research and which is partly being defined in the WiFi 7 standard.
48+
49+
As a mesh network is a highly dynamic system and as the radio is often used to
50+
both serve the clients and forward mesh traffic in parallel (so-called VIFs -
51+
virtual interfaces), the configuration of the channels must be done respecting
52+
the special properties of mesh protocols while taking route switches into
53+
consideration and reacting accordingly. Care must be taken to not influence the
54+
routing decisions of the mesh protocol in a way that leads to an imbalance.
55+
56+
An example for an imbalance occurs in dense high-use scenarios with packet-
57+
loss-metric based mesh routing protocols if a wireless link appears to be
58+
saturated due to interference caused by neighboring nodes and their clients.
59+
If a redundant route exists in that case, nodes might choose another route with
60+
a presumably better metric.
61+
In theory that switch was assumed to be transparent to the user, but in practice
62+
a mediocre link is often swapped for a link that e.g. has even less capacity
63+
congesting the link long enough for some clients to assume a broken connection
64+
and switch to another node which will eventually suffer, too.
65+
This problem can be mitigated using adjacent channels where coverage overlaps
66+
and a redundant connection exists.
67+
68+
Even though modern mesh routing protocols are hardened against some of these
69+
issues by not only considering the packet loss for their metric calculation but
70+
also other criteria like calculating the route metrics from wireless statistics
71+
exported from the kernels mac80211 subsystem, they are still an open topic of
72+
research.
73+
74+
For example the highly sophisticated diversity routing RFC amendment of the more
75+
and more popular routing protocol Babel does not consider shared usage of the
76+
radios mesh network with the client network which can lead to unexpected
77+
behavior as different WLAN clients tend to prefer quite individual frequencies
78+
depending on their hardware, antenna and software configuration which could
79+
favor an imbalance.
80+
81+
As this project involves a lot of different disciplines the main goal of the
82+
student is not to get deep knowledge about every internal. Instead, the student
83+
shall be encouraged to think and act independently then cooperatively and to
84+
find a simple, creative way to improve the current situation.
85+
86+
This reflects the results-oriented approach to work which is often required for
87+
participating in open-source projects where code changes must be kept simple to
88+
be reviewed timely and to increase the chance of being accepted.
89+
90+
91+
#### Ideas
92+
* Create "hearing maps"
93+
* Find ways to create hierarchical sub-trees in the network by identifying
94+
"border nodes" (e.g. VPN or PtP links) which is critical for decentralizing
95+
the coordination
96+
* Only use the links which are actually needed: If a node can reach all of
97+
its neighbors by other means (e.g. VPN) it should not be bound to a specific
98+
channel assuming the available bandwidth offered by the alternative link and
99+
the metric is sufficient. It may even be possible to deactivate the wireless
100+
mesh network for that radio to save airtime (e.g. if there is no neighbor).
101+
This needs to dynamically react if e.g. a new neighbor appears.
102+
* Analyze the roaming behavior of the clients to estimate where interference
103+
due to the hidden node problem is more likely.
104+
* Take actual traffic flow patterns into account.
105+
* Identify e.g. long-range interference using coordinates if given similar
106+
to the WiFi 6 proposed Automatic Frequency Coordination scheme.
107+
* Make use of game theory to achieve a Nash equilibrium instead of central
108+
coordination.
109+
* Where a form of centralization is unavoidable, make the consensus fault-proof.
110+
E.g. if the elected coordinator fails the system must reconstitute timely.
111+
The Raft consensus protocol is an interesting candidate for this.
112+
* Allow manual override
113+
114+
#### Milestones
115+
* Add basic support for mesh networks in DAWN
116+
* Implement a daemon "meshrealmd" which can interact with DAWN and implements
117+
the graph theory-based approach presented in the paper "Interference-Aware
118+
Channel Assignment in Wireless Mesh Networks" in a decentralized way
119+
* freifunk-gluon integration (OpenWrt-based mesh framework)
120+
121+
#### Inspirationals
122+
* https://blog.freifunk.net/2018/05/19/dawn-a-decentralized-wifi-controller/
123+
* https://link.springer.com/chapter/10.1007/978-3-540-89183-3_7
124+
* https://dblp.org/pid/175/1661.html
125+
* https://github.com/willemt/ticketd

0 commit comments

Comments
 (0)