Kernel Log: Coming in 2.6.32 (Part 1) – Network subsystem and network drivers
by Thorsten Leemhuis
Between Thursday evening and Friday morning, Linus Torvalds released the fourth release candidate of Linux version 2.6.32, although, due to the typing error in the first release candidate (RC1 was mis-labeled RC2), it is called 2.6.32-rc5 instead of 2.6.32-rc4.
Torvalds released this version only a few days after RC4, as he and many other kernel hackers will spend the weekend travelling to this year's Linux Kernel Summit held in Tokyo next week; therefore few changes are expected to make their way into the Linux kernel's source code management system during this time.
Another major SCSI driver was merged into the Linux kernel's main development branch with RC4 and RC5 offers two further network drivers. Such stragglers can be found in almost any development cycle. As usual, however, the majority of changes were incorporated during the merge window, which lasts two weeks and was closed by Torvalds with the release of the first RC at the end of September. The Kernel Log is, therefore, already in a position to provide an overview of some of the major enhancements of Linux 2.6.32, which is expected to be released at the beginning of December. We are starting our "What's coming in 2.6.32" mini series with the most important changes to the kernel's network support; major changes in other kernel areas will be discussed in further editions of the series over the next few weeks.
Wireless
The developers have re-activated the p54 driver's power saving support. While, to bypass a bug that is presumed to be hardware-related, they have done the opposite with the iwl4965 driver for Intel's Wireless Wi-Fi Link 4965AGN, and disabled it. It is yet uncertain if they will ever be able to re-activate the power saving features. However, the kernel hackers also improved the driver for Intel Wi-Fi chips, which can now automatically select the appropriate sleep state for the Wi-Fi hardware using information gathered via pm_qos (Power Management Quality of Service).
Following various restructuring measures to the ath9k driver for many recent Atheros Wi-Fi chips, the developers have extended the driver to support AR9287 Wi-Fi chips; some rudimentary first components for examining the AR9271 were also incorporated into the kernel.
The MAC8021 Wi-Fi stack now scans for Wi-Fi networks in the background, which allows access point connections to continue transmitting data. This is an interesting feature for location-based services and roaming, as highlighted in a blog post by Dan Williams, the main developer of NetworkManager.
A new addition is the wl1271 driver for the Wi-Fi part of Texas Instruments' WiLink 6.0 mobile platform used in the embedded area. The b43 driver for Wi-Fi chips by Broadcom can now also handle low power PHYs (LP-PHY) such as the BCM4312, which can be found in some notebooks and in the embedded area. The prism54 driver, which has been superseded by the p54pci driver, is now planned for removal from the kernel in version 2.6.34.
Networking
Just in time for RC5, the kernel hackers have incorporated the vmxnet3 driver into the main development branch. It is able to communicate with the "vmxnet3 virtual ethernet NIC" - a network adaptor that emulates several virtualisation solutions by VMware. In addition, Linux 2.6.32 will offer the infrastructure required for updating ("flashing") the firmware of network chips using the ethtool program.
The r8169 driver for recent network hardware by Realtek now also supports the RTL8168D chip. However, this is only one of many network drivers that have been extended to support new hardware – more information about these changes can be found in the commits in the "Minor Gems" section at the end of this article.
The btusb driver is now capable of USB autosuspending – with Bluetooth chips that don't support remote wake-up, however, the interface must be shut down for the power saving mechanisms to take effect. The btmrvl and btmrvl_sdio drivers for Bluetooth chips by Marvell (documentation) are new additions. The kernel developers also integrated several mISDN drivers:
- avmfritz for AVM PCI cards in the Fritz! series
- netjet for NETJet PCI cards by Traverse Technologies
- mISDNinfineon for various ISDN chips by Siemens and Infineon
- speedfax for the ISAR DSP chip by Siemens used in Speedfax+ hardware
- w6692 for PCI cards with Winbond W6692
Another kernel first is a driver for the CAN controller on Atmel AT91SAM9263 chips, which was introduced by a Pengutronix employee (1, 2). Predominantly introduced by Oracle developers, the code that supports the Reliable Datagram Sockets (RDS) protocol created for server clusters now also supports transmissions via TCP.
Minor Gems
The kernel hackers have considerably improved the support of wireless extensions (WE) and network namespaces. Some of these and further minor, but by no means insignificant, changes can be found in the list below. Like many of the references in the text above, the links point to the relevant commit in the web front end of the main Linux development branch, where the commit comments and the patches themselves provide extensive further information on the respective changes.
LAN
- 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
WLAN
- 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
For other articles on 2.6.32 and links to the rest of the "Coming in 2.6.32" series, see The H's Kernel Log - 2.6.32 Tracking page.
(djwm)