Kernel-Log – Was 2.6.34 bringt (1): Netzwerkunterstützung
Der im Mai erwartete Linux-Kernel 2.6.34 enthält mehrere neue Netzwerk-Treiber. Diverse Verbesserungen sollen die Netzwerk-Performance vor allem im Zusammenspiel mit Virtualisierung steigern.
- Thorsten Leemhuis
Die 2.6.34-Entwicklung läuft bislang ein klein wenig holpriger an als sonst: Erst hat Torvalds viele Entwickler mit dem kürzeren Merge Window übertölpelt, dann erschien der RC2 vergleichsweise spät und brachte mehr Neuerungen mit als üblich; beide Versionen enthielten zudem signifikante Probleme, wie Torvalds beim RC3 eingestehen musste. Zudem ist der RC4 mittlerweile überfällig, denn in dieser Phase des Entwicklungszyklus erscheinen neue Vorabversionen üblicherweise wöchentlich – die Freigabe des RC3 ist aber bald zwei Wochen her.
Trotz dieses holprigen Starts sollten sich mittlerweile alle wesentlichen Neuerungen für die nächste Version des Hauptentwicklungslinie im Quellcodeverwaltungssystem von Linux finden – das Kernel-Log kann daher bereits jetzt einen umfassenden Überblick über die größten Neuerungen der im Mai erwarteten Linux-Version 2.6.34 geben. Zur besseren Verträglichkeit wird das in einer mehrteiligen Artikel-Serie erfolgen, die sich nach und nach den verschiedenen Funktionsbereichen des Kernels widmet. Den Anfang der Mini-Serie "Was 2.6.34 bringt" macht eine Beschreibung der Änderung rund um die Netzwerkunterstützung des Kernels; in den kommenden Wochen folgen Artikel zu den Neuerungen bei Storage-Hardware, Dateisystemen, Grafik-Unterstützung, Architektur-Code, Treibern und einigen weiteren Funktionsbereichen.
LAN, WLAN, Netzwerk-Stack und Co.
Unter den rund 1300 Änderungen im Haupt-Git-Pull-Request von Netzwerk-Subsystem-Verwalter David Miller finden sich gleich mehrere neue Ethernet-Treiber. Der Treiber ixgbevf (u.a. 1, 2/Dokumentation) etwa spricht aus Gastsystemen mit den per SR-IOV bereitgestellten virtuellen Netzwerkfunktionen von Intels 10-Gigabit-Ethernet-Controllern der 82599-Familie – der diese Chips auf der Host-System betreuende Treiber ixgbe wurde dazu um Unterstützung für SR-IOV erweitert (1, 2, 3). Für die 1G/10G-CNA-Chips QLE8240 und QLE8242 von Qlogic stieß der Treiber qlcnic zum Kernel; neu sind auch die Treiber greth für die 10/100/1G-Ethernet-Chips der Gaisler-Familie von Aeroflex, ksz884x für die Ethernet-Chips Micrel KSZ8841 und KSZ8842 sowie der Treiber smsc75xx für USB-Gigabit-NICs mit den LAN75xx-Chips von SMSC. Erst nach dem RC3 nahmen die Kernel-Entwickler den Treiber cxgb4 (1, 2) für die Gigabit- und 10-Gigabit-Ethernet-Chips Chelsio T4 in den Kernel auf. Den Treiber atl1c erweiterten die Entwickler um Unterstützung für die Atheros-Ethernet-Chips AR8152 und AR8152.
Zum Kernel stieß ferner das zur Steigerung der Performance in Virtualisierungslösungen wie KVM oder Lguest interessante vhost-net – ein im Commit-Kommentar grob beschriebener, im Kernel arbeitender Server für das Virtio-Framework, der den Overhead reduzieren soll, wenn Gastsysteme über die virtuelle Virtio-Netzwerk-Hardware Daten an andere Maschinen verschicken. Flexibleren und flotten Austausch von Netzwerk-Daten zwischen Gastsystemen auf einem Host und einige andere Möglichkeiten bietet der neue Treiber macvtap. Für ihn und den Virtio-Server sind zudem noch zahlreiche weitere Verbesserungen in Vorbereitung, die die Performance und den Funktionsumfang langfristig weiter steigern sollen.
Im WLAN-Stack gab es einige Änderung, um die Stromsparmechanismen moderner WLAN-Chips etwas besser nutzen zu können. Zahlreiche Patches verändern die WLAN-Treiber für die Ralink-Chipsätze der RT2800-Generation und neuer – so richtig rund laufen die noch jungen Treiber auf vielen Chips aber immer noch nicht, daher dürften auch in den kommenden Monaten die Ralink-Treiber aus des Staging-Bereich für viele Anwender die bessere Wahl bleiben.
Der Bridge-Code des Kernels bietet nun Unterstützung für IGMP Snooping. Der Netfilter-Code kennt nun "conntrack zones" und beherrscht TCP-Connection-Tracking für SIP. Der Netzwerk-Stack unterstützt von nun an die in RFC3069 beschriebenen Proxy-Arp-Unterstützung für private VLANs. Jan Kiszka brachte zudem zirka 30 Änderungen ein, die den CAPI-Code im ISDN-Subsystem des Kernels erheblich überarbeiten und dabei zahlreiche Probleme ausräumen sollen.
Die kleinen Perlen
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 Kernel-Quellen auf Kernel.org. Im Webfrontend liefern normalerweise der Commit-Kommentar und der Patch selbst zahlreiche weitere Informationen zur jeweiligen Änderungen.
LAN
- axnet_cs: add new id
- be2net: Add link test to list of ethtool self tests.
- e1000e: provide MAC-family-specific function to set LAN ID
- e1000e: use alternate MAC address on ESB2 if available
- e1000: Report link status in ethtool when interface is down
- enic: feature add: add ethtool -c/C support
- fec: Add LAN8700 phy support
- fs_enet: Add support for MPC512x to fs_enet driver
- igb: add support for wake-on-link
- igb: Report link status in ethtool when interface is down
- igb: support for VF configuration tools
- ipg: Remove device claimed by dl2k from pci id table
- ixgbe: Add support for the new ethtool n-tuple programming interface
- lib/vsprintf.c: Add IPV4 options %pI4[hnbl] for host, network, big and little endian
- macvlan: allow multiple driver backends
- macvtap: add GSO/csum offload support
- MCS7830 USB-Ether: add Rx error support
- net: add ColdFire support to the smc91x driver
- net: Add netdev ops for SR-IOV configuration
- NET: Add Qlogic ethernet driver for CNA devices
- net: Delete isa-skeleton net driver
- net: emaclite: adding MDIO and phy lib support
- net: Kconfig change for KSZ884X driver
- net/macvtap: add vhost support
- pcnet_cs: add new id
- phy: SMSC device Energy Detect power-down mode
- qlge: Add basic firmware dump.
- qlge: Add module param to force firmware core dump.
- sfc: Enable autonegotiated flow-control by default if supported
- stmmac: add documentation for the driver.
- tg3: Abort phy init for 5717 serdes devices
- tg3: Add 5717 serdes phy ID
- tg3: Add 57765 phy ID and enable devices.
- tg3: Make 57791 and 57795 10/100 only
- tg3: Turn off multiple DMA reads for 5717
- via-velocity: Enable scatter/gather IO by default virtio: disable multiport console support.
WLAN
- Add a pci-id to the mwl8k driver
- Add Station and AdHoc mode support to libertas_tf
- Add USB ID for Thomson SpeedTouch 120g to p54usb id table
- ar9170: add support for NEC WL300NU-G USB dongle
- ar9170usb: add Sphairon Homelink 1202 USB ID
- ath5k: adding LED support for AR5BXB63 cards
- ath9k: add support for 802.11n bonded out AR2427
- ath9k: implement coverage class support
- b43: add new SSB's core id for BCM4328
- b43: Allow PIO mode to be selected at module load
- b43: Declare at least one real firmware file using MODULE_FIRMWARE.
- b43: fall back gracefully to PIO mode after fatal DMA errors
- b43legacy: Declare all possible ucodeX.fw files
- cfg80211: add regulatory hint disconnect support
- cfg80211: add remain-on-channel command
- cfg80211/mac80211: allow registering for and sending action frames
- cfg80211: process the max power on a country IE
- iwlwifi: Add chain_noise support for 6050
- iwlwifi: add continuous uCode event log capability
- iwlwifi: cleanup spectrum measurement command support
- iwlwifi: module parameter to enable/disable bt co-exist
- iwlwifi: optimize power saving
- mac80211: add U-APSD client support
- mac80211: allow disabling 40MHz on 2.4GHz
- mac80211/cfg80211: add station events
- mac80211: enable spatial multiplexing powersave
- mac80211: generalise work handling
- mac80211_hwsim: add fake hw scan handler
- mac80211: improve powersave documentation
- mac80211: introduce flush operation
- mac80211: let cfg80211 manage auth state
- mac80211: support remain-on-channel command
- MAINTAINERS: update mwl8k maintenance status
- mwl8k: add 2.4GHz channels 12, 13 and 14
- mwl8k: add 5 GHz band channels and rates
- mwl8k: add another 88w8366 PCI ID
- mwl8k: add support for 88w8363 in STA mode
- mwl8k: bail out if there is no AP firmware image support for this chip
- mwl8k: basic AP interface support
- mwl8k: update MODULE_FIRMWARE tags
- nl80211: Add new WIPHY attribute COVERAGE_CLASS
- nl80211: add power save commands
- p54usb: Add the USB ID for Belkin (Accton) FD7050E ver 1010ec
- p54usb: Add usbid for Corega CG-WLUSB2GT.
- ps3_gelic_wireless: Remove PS3 gelic legacy wpa support
- rt2x00: Add USB ID for CEIVA adapter to rt73usb
- rt2x00: Disable powersaving by default in rt2500usb.
- rt2x00: Introduce SoC interface type.
- rt2x00: Reorganize RT chipset setting for PCI/SOC devices.
- rt2x00: rework RT chipset and revision determination for PCI an SOC devices.
- rt2x00: rt2800 - Make rt30xx and rt35xx chipsets configurable.
- rt73usb: add WLI-U2-H54HP
- wireless: remove CONFIG_WIRELESS_OLD_REGULATORY
- wireless: support internal statically compiled regulatory database
- wl1251: add U-APSD support
- wl1251: enable WMM
- wl1251: implement WMM
- wl1271: Add rudimentary ad-hoc support
- wl1271: add testmode support
- wl1271: Implement chipset boot retry
Netzwerk-Stack, Netfilter und Co.
- Bluetooth: Add controller types for BR/EDR and 802.11 AMP
- Bluetooth: Convert debug files to actually use debugfs instead of sysfs
- bridge: Add hash elasticity/max sysfs entries
- bridge: Add multicast count/interval sysfs entries
- bridge: Add multicast data-path hooks
- bridge: Add multicast forwarding functions
- bridge: Add multicast_router sysfs entries
- bridge: Add multicast_snooping sysfs toggle
- bridge: Add multicast start/stop hooks
- can: add support for CAN interface cards based on the PLX90xx PCI bridge
- can: mscan-mpc5xxx: add support for the MPC512x processor
- can/netlink: add CAN_CTRLMODE_ONE_SHOT
- can: Proper ctrlmode handling for CAN devices
- can:ti_hecc: Add pm hook-up
- CAPI: Remove experimental tag from middleware feature
- CAPI: Rework locking of controller data structures
- CAPI: Sanitize capifs API
- CAPI: Schedule capifs for removal
- dccp: allow probing of CCID-array length
- doc: document IPv6 parameters
- ethtool: Introduce n-tuple filter programming support
- gigaset: small documentation improvement
- igb: Add support for 82576 ET2 Quad Port Server Adapter
- ipv4: allow warming up the ARP cache with request type gratuitous ARP
- IPVS: Allow boot time change of hash size
- ipvs: SCTP Trasport Loadbalancing Support
- ISDN: Add PCI ID for HFC-2S/4S Beronet Card PCIe
- isdn: fix a few Kconfig imperfections
- llc: optimize multicast delivery
- llc: use a device based hash table to speed up multicast delivery
- net/9p: Add sysfs mount_tag file for virtio 9P device
- net: add limit for socket backlog
- net: add scheduler sync hint to tcp_prequeue().
- netfilter: ctnetlink: add zone support
- netfilter: ctnetlink: netns support
- netfilter: ctnetlink: support selective event delivery
- netfilter: ebtables: add CONFIG_COMPAT support
- netfilter: nf_conntrack_sip: add T.38 FAX support
- netfilter: nf_conntrack: support conntrack templates
- netfilter: nf_nat_sip: add TCP support
- netfilter: nf_nat: support mangling a single TCP packet multiple times
- netfilter: nfnetlink: netns support
- netfilter: xtables: add CT target
- netfilter: xtables: optimize call flow around xt_ematch_foreach
- netfilter: xtables: optimize call flow around xt_entry_foreach
- netfilter: xt_connlimit: netns support
- netfilter: xt_hashlimit: netns support
- netfilter: xt_recent: netns support
- net/irda: sh_sir: Add SuperH IrDA driver
- net: TCP thin dupack
- net: TCP thin linear timeouts
- net: TCP thin-stream detection
- packet: Add GSO/csum offload support.
- packet: Kill CONFIG_PACKET_MMAP.
- powerpc/mpc5xxx: add OF platform binding doc for FSL MSCAN devices
- qeth: HiperSockets Network Traffic Analyzer
- rfkill: Add support for KEY_RFKILL
- timestamping: fix example build tun: socket filter support
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". Der Autor des Kernel-Logs zwitschert unabhängig davon über einige Kernel-Log-Themen bei Identi.ca und Twitter als "@kernellogauthor". (thl). (thl)