Kernel-Log – Was 3.1 bringt (1): Netzwerk

Verbesserungen an allen wichtigen WLAN-Treibern und Optimierungen bei der Virtualisierung gehören zu den wichtigsten Neuerungen von Linux 3.1.

In Pocket speichern vorlesen Druckansicht 18 Kommentare lesen
Lesezeit: 12 Min.
Von
  • Thorsten Leemhuis
Inhaltsverzeichnis

Eine Woche nach der Freigabe von Linux-3.1-rc1 legte Linus Torvalds in der Nacht von Sonntag auf Montag die zweite Vorabversion von Linux 3.1 nach. Mit ihr erhielt der Ende Mai auf "Sneaky Weasel" getaufte Kernel abermals einen neuen Namen und heißt jetzt "Wet Seal". Hintergründe zur Namenswahl liefert Torvalds nicht – vermutlich hat der Tauch-Lehrgang etwas damit zu tun, bei dem er als "Divemaster" dabei war.

In der Freigabe-Mail zur zweiten Vorabversion zeigt sich Torvalds erfreut, dass es nach Ende des Merge Window so ruhig gewesen sei. Bis zur Freigabe von Linux 3.1 nimmt er – von seltenen Ausnahmen abgesehen – nur mehr Korrekturen und kleine, ungefährliche Verbesserungen in den Hauptentwicklungszweig von Linux auf.

Das Kernel-Log kann daher bereits jetzt einen umfassenden Überblick über die wichtigsten Neuerungen der Ende September oder Anfang Oktober erwartete Linux-Version geben. Wie üblich werden sich die Artikel der Serie "Was 3.1 bringt" nach und nach den unterschiedlichen Funktionsbereichen des Kernels annehmen. Den Anfang der Mini-Serie macht die folgende Beschreibung der wichtigsten Änderungen am Netzwerk-Stack und an den zugehörigen Treibern für LAN- oder WLAN-Hardware. In den kommenden Wochen folgen Artikel zur Storage-Unterstützung, Dateisystemen, Architektur-Code, Infrastruktur sowie zu Treibern für sonstige Hardware.

Durch viele kleine und einige größere Änderungen wird Linux 3.1 eine verbesserte WLAN-Unterstützung bieten. So nahmen die Kernel-Entwickler den Treiber Rtl8192de auf (u. a. 1), der die PCIe-WLAN-Chips RTL8192DE und RTL8188DE von Realtek anspricht; schon bei Linux 3.0 und zwei seiner in den Monaten davor freigegebenen Vorgängern war jeweils ein von Realtek mitentwickelter WLAN-Treiber zum Kernel gestoßen. Diese und andere WLAN-Treiber erhielten zwischenzeitlich Verbesserungen – der Treiber Rtl8192cu etwa unterstützt ab Linux 3.1 nun weitere USB-WLAN-Module.

Der Ralink-Treiber Rt2800 spricht von nun an auch die "RT3572/RT3592/RT3592+Bluetooth combo card" an. Die Entwickler haben ferner die Unterstützung für die Ralink-Chipsätze der Serie Rt35xx ausgebaut, dadurch gilt der zuständige Code nun nicht mehr als "nicht funktionierend und nur für Tester und Entwickler gedacht".

Der Iwlagn-Treiber für Intels aktuelle, in vielen Core-Notebooks verbauten WLAN-Chipsätze beherrscht ab 3.1 WoWLAN (Wake on Wireless LAN). Der Treiber kennt nun zwei weitere Modul-Parameter: Über power_save lassen sich die standardmäßig deaktivierten Stromsparfunktionen ein- und ausschalten; über den Parameter power_level kann man die Nachhaltigkeit der Stromsparbemühungen über Werte von 1 bis 5 festlegen.

Der Atheros-Treiber ath9k unterstützt nun auch den Baustein AR9330 (1, 2). Der verbesserter Ath6kl-Treiber, der den gleichnamigen Staging-Treiber beerbt, hat die Aufnahme verpasst und soll bei Linux 3.2 folgen.

Der Treiber B43 für WLAN-Chips von Broadcom unterstützt nun 802.11n-WLAN-Hardware, die Broadcom's Advanced Microcontroller Bus Architecture (AMBA) verwendet – etwa die Bausteine BCM43224 (PCI-ID 14e4:4353) und BCM43225 (14e4:4357). Maßgeblich vorangetrieben wurden die dafür nötigen Verbesserungen von Rafał Miłecki, der dafür von der Poznan University of Technology unterstützt wurde (1, 2).

Zusammen mit dem bei Linux 3.0 integrierten AMBA-Treiber Bcma spricht der schon lange zum Kernel gehörende B43-Treiber dadurch einige der Broadcom-Chips an, die zuvor schon der Treiber Brcmsmac unterstützte. Letzterer ist aus dem Brcm80211-Treiber hervorgegangen, den Broadcom im September 2010 veröffentlicht hat. Er liegt allerdings im Staging-Bereich, da er die Qualitätsansprüche der Kernel-Hacker nicht erfüllt – einige wenige Linux-Distributionen liefern ihn daher nicht mit.

Trotz der Verbesserungen für B43 arbeitet Broadcom weiter am Treiber Brcmsmac, damit er den Staging-Bereich verlassen kann. Normalerweise vermeiden die Kernel-Entwickler allerdings, zwei Treiber für ein und dieselbe Hardware im Kernel zu haben. Miłecki hat die Broadcom-Entwickler schon auf diesen Umstand hingewiesen – zu einer Klärung, welcher Treiber das Rennen machen soll, hat das jedoch nicht geführt, denn der Broadcom-Entwickler scheint auf den Hinweis nicht eingegangen zu sein. Da der B43-Treiber aber auch viele andere Broadcom-Chips unterstützt und schon zum WLAN-Subsystem gehört, ist er ein bisschen besser positioniert, auch wenn er einige Funktionen der von ihm angesprochenen WLAN-Chipsätze möglicherweise bislang nicht so gut unterstützt wie Brcmsmac.

Die bei 2.6.39 aufgenommene Unterstützung für Ipset erhielt eine Reihe von Verbesserungen, um die vom Firewall-Code konsultierten Tabellen mit Filter-Informationen flexibler und einfacher nutzen zu können. So lassen sich nun Adressen und Interface-Namen als Paar mit eigenem Namen übergeben, was für Egress- oder Ingress-Filterung interessant ist; der Kernel kann kann zudem als IP-Bereiche übergebene Adressen automatisch in die korrekten Subnetz-Definitionen konvertieren.

Der experimentelle und standardmäßig ausgeschaltete Zero-Copy-TX-Support für Macvtap und Vhost-net soll die Netzwerkperformance beim Virtualisieren verbessern, da es die Kopiervorgänge für Netzwerkpakete eliminiert, die KVM-Gastsysteme verlassen. Die Unterstützung in Vhost-Net ist allerdings als experimentell gekennzeichnet und muss über die Modul-Option experimental_zcopytx aktiviert werden.

  • An der Mesh-Impementation BATMAN-adv (Better Approach To Mobile Ad-Hoc Networking - Advanced) gab es eine Reihe von Änderungen, welche die Performance, das Bekanntmachen von Clients und die Roaming-Unterstützung verbessern sollen.
  • Der WLAN-802.11-Funk-Simulator-Treiber Mac80211_hwsim bietet nun Schnittellen, über die sich Userspace-Programme wie Wmediumd um das Senden und Empfangen von Netzwerkpaketen kümmern können.
  • Der Broadcom-NetXtreme-II-Treiber bnx2x beherrscht ab Linux 3.1 auch den "Warpcore" genannten Übertragungsmodus bei den Bausteine der Reihe 578xx.
  • Zum Netzwerk-Code stößt ein Subsystem für Near Field Communication (NFC), das viele berührungslose Bezahlsysteme nutzen (Dokumentation, 1, 2, 3, 4).
  • Der bei Linux 3.0 integrierte "Berkeley Packet Filter Just in Time Compiler" unterstützt jetzt auch PPC64-Systeme.
  • Der Netzwerk-Stack bietet nun eine "fanout" genannte Funktion, die via AF_PACKET aufgefangene Pakete an verschiedene Sockets verteilt; das ist für Userland-Traffic-Analyse-Werkzeuge wie Suricata interessant (1, 2, 3).
  • Einige weitere Änderungen am Netzwerk-Subsystem finden sich im nächsten Abschnitt und in den beiden Haupt-Git-Pull-Request von Subsystem-Verwalter David Miller (1, 2, 3).

Viele kleinere, aber keineswegs unbedeutende Neuerungen finden sich in der folgenden Liste mit den englischen Commit-Überschriften der jeweiligen Änderung. Die Einträge verlinken genau wie viele der Verweise im vorangegangenen Text auf das Webfrontend des von Linus Torvalds gepflegten Git-Zweigs mit den "offiziellen" Kernel-Quellen auf Kernel.org. Der über diese Links angezeigten Commit-Kommentar und der darunter ausgegebene Patch liefern zahlreiche weitere Informationen zur jeweiligen Änderungen.

Vor jedem Link finden sich in eckigen Klammern einige Buchstaben und Zahlen. Ein "C" kennzeichnet Patches mit Änderungen an Kconfig-Dateien, welche die Konfigurationsoptionen samt der zugehörigen Hilfetexte enthalten, die bei der Kernel-Konfiguration über "make menuconfig" oder "make xconfig" angezeigt werden. Ein "D" steht bei Patches, die die Dokumentation verändern, die im Kernel-Zweig unterhalb von Documentation/ liegt. Ein "N" weist Änderungen aus, die eine neue Datei anlegen. Die Zahl vermittelt einen groben Eindruck zur Größe des Patches: eine "1" kennzeichnet Änderungen, die inklusive Kommentar zwischen 10 und 20 KByte groß sind, eine "2" für solche, die zwischen 20 und 30 KByte Umfang haben; Änderungen ohne Zahl sind kleiner als 10 KByte, Patches mit einer "9" hingegen 90 KByte oder größer.

LAN

WLAN

Various

Weitere Hintergründe und Informationen rund um Entwicklungen im Linux-Kernel und dessen Umfeld finden sich in den vorangegangenen Kernel-Logs auf heise open. Neue Ausgaben des Kernel-Logs werden auf den Identi.ca- und Twitter-Konten "@kernellog" erwähnt; die englischen, bei den Kollegen von "The H" erscheinenden Übersetzungen auf den Identi.ca- und Twitter-Konten "@kernellog2". Gelegentlich zwitschert der Autor des Kernel-Logs unabhängig davon über einige Kernel-Log-Themen bei Identi.ca und Twitter als "@kernellogauthor". (thl). (thl)