Kernel-Log – Was 2.6.32 bringt (1): Die Neuerungen bei Netzwerk-Subsystem und -Treibern
Die Entwickler mussten die Stromsparfunktionen in einem viel genutzten Intel-WLAN-Treiber deaktivieren. Neu dabei sind Treiber für virtuelle VMware-Netzwerkchips, zwei neue Bluetooth-Treiber sowie mehrere mISDN-Treiber.
- Thorsten Leemhuis
In der Nacht von Donnerstag auf Freitag hat Linus Torvalds die vierte Testversion des Linux-Kernels 2.6.32 freigegeben – durch den Vertipper bei der ersten Vorabversion heißt sie jedoch nicht 2.6.32-rc4, sondern 2.6.32-rc5. Torvalds hat diese Version nur wenige Tage nach dem RC4 veröffentlicht, da er und viele andere Kernel-Hacker am Wochenende zum diesjährigen Linux Kernel Summit reisen, der nächste Woche in Tokyo stattfindet; in den kommenden Tagen dürften daher wohl nur wenige Änderungen den Weg in das Quellcodeverwaltungssystem des Linux-Kernels finden.
Mit der RC4 stieß noch ein größer SCSI-Treiber neu zum Hauptentwicklungszweig des Linux-Kernels, beim RC5 zwei Netzwerktreiber. Solche Nachzügler gibt es in fast jedem Entwicklungszyklus. Das Gros der Neuerungen haben die Entwickler aber wie immer im zwei Wochen langen Merge Window aufgenommen, das Torvalds bereits Ende September mit der Freigabe der ersten Vorabversion schloss. Das Kernel-Log kann daher schon jetzt einen Überblick über einige der größten Neuerungen der Anfang Dezember erwarteten Linux-Version 2.6.32 geben und widmet sich zum Auftakt der Kernel-Log-Mini-Serie "Was 2.6.32 bringt" den bedeutsamsten Änderungen rund um die Netzwerkunterstützung des Kernels; wichtige Neuerungen aus anderen Funktionsbereichen werden weitere Teile der Mini-Serie in den kommenden Wochen sein.
Funken
Im Treiber p54 haben die Entwickler die Unterstützung der Stromsparmechanismen wieder aktiviert. Um einen vermutlich von der Hardware verursachten Fehler zu umgehen, haben die Entwickler an anderer Stelle genau das Gegenteil gemacht und einige der Stromsparfunktionen im für Intels Wireless WiFi Link 4965AGN zuständigen Treiber iwl4965 deaktiviert. Die Entwickler wissen noch nicht, ob sie die Stromsparfunktionen je wieder werden aktivieren können. Die Kernel-Hacker verbesserten den Treiber für Intel-WLAN-Chips aber auch, denn anhand von Informationen durch pm_qos (Power Management Quality of Service) können diese nun automatisch entscheiden, wie tief sie die WLAN-Hardware schlafen legen.
Nach einigen Umbaumaßnahmen an den für zahlreiche neuere WLAN-Chips von Atheros zuständigen Treiber ath9k haben die Entwickler ihn um Unterstützung für die WLAN-Chips AR9287 erweitert; auch einige erste rudimentäre Teile zur Untersuchung des AR9271 fanden den Weg in den Kernel.
Der MAC80211-WLAN-Stack kann in Zukunft im Hintergrund nach WLAN-Netzwerken scannen, sodass eine Verbindung mit dem AccessPoint weiter Daten überträgt. Dan Williams, Hauptentwickler des NetworkManager, hebt diese für standortbezogene Dienste oder Roaming interessante Funktion in einem Blog-Eintrag hervor.
Neu dabei ist der Treiber wl1271 für den WLAN-Part der im Embedded-Bereich eingesetzen WiLink 6.0 Mobile Platform von Texas Instruments. Der Treiber b43 für WLAN-Chips von Broadcom kann nun auch mit den in einigen Notebooks oder im Embedded Bereich eingesetzten Low-Power-PHYs (LP-PHY) wie dem BCM4312 umgehen. Der vom Treiber p54pci beerbte Treiber prism54 soll nach den neuesten Planungen bei 2.6.34 aus dem Kernel fliegen.
Netzwerk
Gerade noch rechtzeitig für den RC5 nahmen die Kernel-Hacker den Treiber vmxnet3 in den Hauptentwicklungszweig auf. Er versteht sich mit dem "vmxnet3 virtual ethernet NIC" – einem Netzwerkadapter, den einige Virtualisierungslösungen von VMware emulierten. Der Linux-Kernel 2.6.32 bietet zudem die Infrastruktur, um mit dem Programm ethtool die Firmware von Netzwerk-Chips zu aktualisieren ("flashen").
Der für neuere Realtek-Netzwerk-Hardware zuständige Treiber r8169 unterstützt nun auch den Chip RTL8168D. Das ist aber nur einer von vielen Netzwerktreibern, die um Unterstützung für neue Hardware erweitert wurden – Informationen zu solchen Änderungen liefern die Commits im Abschnitt "Die kleinen Perlen" am Ende des Artikels.
Der Treiber Btusb beherrscht jetzt USB-Autosuspend – bei Bluetooth-Chips, die kein Remote Wakeup unterstützen, muss man das Interfaces allerdings herunterfahren, damit die Stromsparmechanismen zum Zuge kommen. Neu dabei sind die Treiber btmrvl und btmrvl_sdio für Bluetooth-Chips von Marvell (Dokumentation). Zudem integrierten die Kernel-Entwickler mehre mISDN-Treiber:
- avmfritz für AVM-PCI-Karten der Fritz!-Serie
- netjet für NETJet-PCI-Karten von Traverse Technologies
- mISDNinfineon für verschiedene ISDN-Chips von Siemens beziehungsweise Infineon
- speedfax für den auf Speedfax+-Hardware eingesetzten ISAR-DSP-Chip von Siemens
- w6692 für PCI-Karten mit Winbond W6692
Erstmals im Kernel enthalten ist ein von einem Pengutronix-Mitarbeiter eingebrachter Treiber für den CAN-Controller auf dem Atmel-Chip AT91SAM9263 (1, 2). Der maßgeblich von Oracle-Entwicklern eingebrachte Code zur Unterstützung des für Server-Cluster konzipierten Protokolls Reliable Datagram Sockets (RDS) unterstützt nun auch eine Übertragung via TCP.
Die kleinen Perlen
Die Kernel-Hacker haben die Unterstützung für Wireless Extensions (WE) und Network Namespaces erheblich verbessert. Die (englischen) Überschriften einiger dieser und weiterer nicht ganz so wichtigen, aber keineswegs unbedeutenden Änderungen finden sich in der folgenden Liste. Die Einträge verlinken genau wie viele der Verweise im vorangegangenen Text auf den jeweiligen Commit im Webfrontend des für die Linux-Entwicklung eingesetzten Quellcodeverwaltungssystems. Dort liefern normalerweise der Commit-Kommentar und der Patch selbst zahlreiche weitere Informationen zur jeweiligen Änderung.
- Add support for w90p910 mac driver
- be2net: Add GRO support to the be2net driver. LRO is not supported anymore.
- be2net: Changes to support flashing of the be2 network adapter
- bnx2: Update firmware to 5.0.0.j3.
- bnx2x: Adding XAUI CL73 autoneg support
- bnx2x: Fan failure
- bnx2x: Fan failure early detection
- bnx2x: New FW files
- bnx2x: Removing old FW files
- bnx2x: Supporting BCM8727 PHY
- bnx2x: Supporting Device Control Channel
- bnx2x: Supporting PHY FW upgrade
- bnx2x: Using the new FW
- broadcom: Add AC131 phy support
- broadcom: Add BCM50610M support
- can: sja1000: Add support for the new 4 channel EMS CPC-PCI cards
- dm9000: add checksum offload support
- drivers/net: ks8851_mll ethernet network driver
- e1000: allow ethtool coalesece to adjust interrupts per second
- e1000: drop dead pcie code from e1000
- e1000: implement jumbo receive with partial descriptors
- igb: add support for 82576 mezzanine card
- igb: make serdes power down available for 82575 in addition to 82576 parts
- ixgbe: Add device support for a new copper 82598 device
- ixgbe: add support for 82599 based X520 10G Dual KX4 Mezz card
- ixgbe: add support for 82599 Combined Backplane
- ixgbe: Add support for using FCoE DDP in 82599 as FCoE targets
- macvlan: add multiqueue capability
- MIPS: BCM63XX: Add integrated ethernet PHY support for phylib.
- mlx4_core: Add 40GigE device ID
- net: Add DEVTYPE support for Ethernet based devices
- net: add support for STMicroelectronics Ethernet controllers.
- net: add Xilinx emac lite device driver
- net: Teach pegasus driver to ignore bluetoother adapters with clashing Vendor:Product IDs
- netxen: add hardware LRO support
- netxen: add vlan tx acceleration support
- netxen: ethtool statistics and control for LRO
- netxen: firmware hang detection
- pcnet_cs: add cis of Linksys multifunction pcmcia card
- pcnet_cs: add cis of National Semicondoctor's multifunction pcmcia card
- smsc95xx: add additional USB product IDs
- tg3: Add 5717 asic rev
- tg3: Add 57788, remove 57720
- tg3: Add MSI-X support
- tg3: Add new 5785 10/100 only device ID
- tg3: Add RSS support
- tg3: Add TSS support
- ucc_geth: Implement suspend/resume and Wake-On-LAN support
- vlan: multiqueue vlan device
- ar9170: remove EXPERIMENTAL marker
- ar9170usb: add usbid for TP-Link TL-WN821N v2
- ath5k: add hardware CCMP encyption support
- ath5k: enable hardware LEDs
- ath5k: remove EXPERIMENTAL marker
- ath9k: add ar9271 revision and subrevision ID helpers
- ath9k: Add Bluetooth Coexistence 3-wire support
- ath9k: update kconfig to indicate support for AR9002 family
- ath: simplify kconfig dependency and add documentation
- b43: Add LP 2063 radio init
- b43: Add LP PHY Analog Switch Support
- b43: Add LP-PHY firmware loading support
- b43: Add optional verbose runtime statistics
- b43: Add Soft-MAC SDIO device support
- b43: Fix and update LP-PHY code
- b43: Implement RFKILL status for LP PHY
- b43: LP-PHY: Implement channel switching for rev0/1/B2062 radio
- b43: LP-PHY: Implement channel switching for rev2+/B2063 radio
- b43: Make LP-PHY testable
- b43: PCMCIA is not experimental anymore
- b43: Remove BROKEN attribute from SDIO
- b43: Rewrite suspend/resume code
- b43: Use a threaded IRQ handler
- cfg80211: enable country IE support to all cfg80211 drivers
- cfg80211: introduce nl80211 testmode command
- cfg80211: make aware of net namespaces
- cfg80211: rework key operation
- cfg80211: self-contained wext handling where possible
- cfg80211: validate channel settings across interfaces
- ieee802154: add a sysfs representation of WPAN master devices
- ipw2x00: update contact information
- iwlwifi: add thermal throttling support to 5150
- iwlwifi: critical temperature enter/exit condition
- iwlwifi: disable PS by default
- iwlwifi: Handle new firmware file with ucode build number in header
- iwlwifi: inform user about rfkill state changes
- iwlwifi: make debug level more user friendly
- iwlwifi: Thermal Throttling Management - Part 1
- iwlwifi: Thermal Throttling Management - part 2
- iwmc3200wifi: cfg80211 key hooks implemetation
- iwmc3200wifi: cfg80211 managed mode port
- libertas: Add support for Marvell Libertas CF8305
- mac80211: allow using network namespaces
- mac80211: cooperate more with network namespaces
- mac80211: driver operation debugging
- mac80211: Fix [re]association power saving issue on AP side
- mac80211: redefine usage of the mac80211 workqueue
- mac80211: remove deprecated API
- mac80211: remove master netdev
- mac80211: Update mesh config IE to 11s draft 3.02
- MAINTAINERS: Add Atheros Linux wireless drivers home page
- MAINTAINERS: add information for mwl8k wireless driver
- MAINTAINERS: add information for wl1271 wireless driver
- MAINTAINERS: add wl1251 wireless driver
- net/compat/wext: send different messages to compat tasks
- p54: implement rfkill
- p54usb: add Zcomax XG-705A usbid
- p54usb: add Zcomax XG-705A usbid
- rfkill: relicense header file
- rt2x00: Add new RF chip defines
- rt2x00: move experimental on kconfig only to rt2800usb
- rt2x00: Thrustmaster FunAccess WIFI USB and rt73usb
- rt2x00: use wiphy rfkill interface
- rtl8187: Implement rfkill support
- ssb: Implement SDIO host bus support
- wext: add back wireless/ dir in sysfs for cfg80211 interfaces
- wext: default to y
- wireless: default CONFIG_WLAN to y
- wireless: default CONFIG_WLAN to y
- wireless: update cfg80211 kconfig entry
- wl1251: add sdio support
- wl1271: add wl1271 to Kconfig and the Makefile
- wl12xx: add support for new WL1271 chip revision
- wl12xx: rename driver to wl1251
- zd1211rw: adding Accton Technology Corp (083a:e501) as a ZD1211B device
Various other commits
- at91sam9263: add at91_can device to generic device definition
- Bluetooth: Add configuration support for ERTM and Streaming mode
- Bluetooth: Add initial support for ERTM packets transfers
- Bluetooth: Add support for FCS option to L2CAP
- Bluetooth: Add support for L2CAP 'Send RRorRNR' action
- Bluetooth: Add support for L2CAP SREJ exception
- Bluetooth: Add support for Retransmission and Monitor Timers
- Bluetooth: Add support for Segmentation and Reassembly of SDUs
- Bluetooth: Enable Streaming Mode for L2CAP
- Bluetooth: Improve USB driver throughput by increasing the frame size
- Documentation: expand isdn/INTERFACE.CAPI document
- genetlink: make netns aware
- ieee802154: add support for channel pages from IEEE 802.15.4-2006
- net: Add patchwork URL to MAINTAINERS
- net/bridge: Add 'hairpin' port forwarding mode
- net: force bridge module(s) to be GPL
- pktgen: Fix multiqueue handling
- RDS/IB: Handle connections using RDS 3.0 wire protocol
- rfkill: add the GPS radio type
Weitere Hintergründe und Informationen rund um die Entwicklungen im Linux-Kernel und dessen Umfeld finden sich in den vorangegangenen Ausgaben des Kernel-Log.(thl) (thl)