lemoer / freifunk-ideas

0 stars 0 forks source link

Gluon: Auto-Channel Selection #2

Open lemoer opened 3 years ago

lemoer commented 3 years ago

Gluon Auto-Channel Selection

The scope of this is, to automatically distribute nodes across wifi channels. The aim is to automatically enhance performance in installations where all nodes are normally connected via wired mesh. E.g. a large house where there "Hausverkabelung" is used to connect all routers via wired mesh.

Switching channels is not trivial, as it interferes with the capability to mesh with other nodes. While it would be possible to turn off wifi meshing completely in this scenario, it is nice to have a fallback to wifi meshing. As of now, even if wired mesh is turned off for all nodes, the channel planning has to be done manually. So if we device that the fallback is not necessary, it would still be nice to have auto channel selection.

Algorithm Idea

* "wired mesh" includes mesh via vpn.

Theoretical Problems (?)

Open Questions

Steps/Work Packages

  1. Think about open the questions/experiment.
  2. Implement a respondd provider, which announces seen neighboring freifunk client ssids.
  3. Implement the channel selection algorithm.
  4. Evaluate the results.
CodeFetch commented 3 years ago

Something like that was the plan if the student would not be able to distribute the mesh channels properly. It's possible to make these approaches compatible, but let's better talk in Mumble.

lemoer commented 3 years ago

To dig deeper into the whole problem:

For a Graph based approach to the full problem, see: https://link.springer.com/chapter/10.1007/978-3-540-89183-3_7

Some information about the paper:

lemoer commented 3 years ago

A command to find other AP STAs with hannover.freifunk.net:

iw client0 scan | awk '/^BSS/ { sub(/\(on/, "", $2); BSS=$2 } /hannover.freifunk.net/ { print BSS }'

lemoer commented 3 years ago

With signal strength: iw client0 scan | awk '/^BSS/ { sub(/\(on/, "", $2); BSS=$2 } /hannover.freifunk.net/ { print BSS " " SIGNAL } /signal/ { SIGNAL=$2 }'

(be aware this counts on the fact that "signal: " is before "SSID" in the output of iw)

lemoer commented 3 years ago

Sometimes the output doesn't seem to be so stable here...

lemoer commented 3 years ago

Haven't checked this, but this might be related: https://chaos.expert/genofire/wifictld