|
| 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