NetworkManager 1.2 mit verbessertem Wi-Fi Scanning

Kein Kommentar Autor: Jürgen (jdo)

Der NetworkManager hat bisher eine Liste mit allen Access Points in der Liste behalten, die er in den letzten drei Scans gefunden hat. Diese Scans fanden mindestens alle zwei Minuten statt. Dennoch konnte sich so ein Access Point bis zu sechs Minuten in der Liste befinden, obwohl er schon lange außer Reichweite war. Wenn man sich zum Beispiel im Auto oder im Zug bewegt, könnte man mit jeder Menge Access Points in der Liste plagen müssen, die alle gar nicht mehr erreichbar sind.

Ubuntu hatte mit seinem last seen time für jeden Access Point einen Workaround gefunden. Durch neue Versionen von wpa_supplicant ist es möglich, das Scanning-Verhalten de NetworkManagers zu verbessern. Das Supplicant pflegt ebenfalls eine Liste und der NetworkManager erstellt daraus seine eigene. Das scheint etwas redundant.

NetworkManager hat keine interne Liste mehr

Man hat die interne Liste des NetworkManagers entfernt und verwendet nur die von wpa_supplicant. Sollte diese Komponente entscheiden, dass ein Access Point nicht mehr länger sichtbar ist, dann wird sie aus dem NetworkManager ebenfalls entfernt. Das funktioniert laut eigenen Angaben besser, da wpa_supplicant mehr Informationen als NetworkManager erhält und so bessere Entscheidungen treffen kann. Kurz gesagt wird jeder Access Point, der mehr als vier Minuten zuvor gesichtet und in den letzten zwei Scans nicht gesehen wurde, wird entfernt.

Werden mehr Scans durchgeführt, dann befindet sich ein nicht mehr erreichbarer Access Point durch das Zwei-Scan-Limit maximal 20 bis 30 Sekunden in der WLAN-Liste.

Außerdem delegiert der NetworkManager das Tracking des Access Points, mit dem man momentan verbunden ist, an die wpa_supplicant-Eigenschaft CurrentBSS. Bisher hat der NetworkManager den WLAN-Treiber in regelmäßigen Abständen gefragt, was der momentane Access Point war. Allerdings war diese Funktion bei verschiedenen Treibern unterschiedlich implementiert und führt zu kruden Workarounds. CurrentBSS verfolgt den Access Point, mit dem wpa_supplicant verbunden sein will und nicht womit der Treiber derzeit verbunden ist.

Zuletzt spricht der Entwickler noch davon, dass wpa_supplicant auf GDBus umgestellt wurde und nicht mehr das alte und nicht mehr gewartete dbus-glib verwendet.

wpa_supplicant und NetworkManager arbeiten zusammen

wpa_supplicant und NetworkManager arbeiten zusammen




 Alle Kommentare als Feed abonnieren

Kommentare sind geschlossen.