Kernel Log: Coming in 3.10 (Part 1)
Networking
by Thorsten Leemhuis
Linux 3.10 sees improvements in the way lost packets at the end of TCP transactions are handled, speeding up HTTP data transfer. It also sees the addition of support for VLAN stacking and Realtek's RTL8188EE wireless chip.
Last weekend, Linus Torvalds released the fourth pre-release version of Linux 3.10. Technical problems meant that it was initially only available via the git source code management system, though Torvalds notes in the email announcing the release that he considers git to be the easiest way of getting hold of it anyway. Linux 3.10-rc4 is now also available as a source code archive via kernel.org.
As usual, Torvalds and his fellow developers merged all of the major changes for the 3.10 kernel in the two weeks following the release of version 3.9. Linux 3.10 thus now finds itself in the stabilisation phase, where large-scale changes are undertaken only in exceptional cases. Therefore, we are now able to offer a fuller overview of the most important changes to be anticipated in the 3.10 kernel, which is due for release in late June/early July. We will be presenting a series of articles looking at various areas of the kernel.
The series opens with a description of new features relating to network support. Over the next few weeks, further articles will deal with storage technology, filesystems, graphics drivers, kernel infrastructure, processor/platform support and drivers for other hardware.
Network infrastructure
Support for the experimental Tail Loss Probe (TLP) algorithm improves the efficiency with which the TCP stack now handles lost packets at the end of a TCP transaction. The concept behind TLP and the Linux implementation are the products of work by developers at Google. According to measurements given in the commit comments, for short transactions, TLP should reduce retransmission timeouts by 15 per cent and shorten HTTP response times by an average of 6 per cent. Details of how it works can be found in the commit comments and in the TCP Maintenance Working Group's internet draft on TLP.
The Netlink interface, which is used for communicating and exchanging data between the kernel and some userspace programs,now supports memory mapped I/O (MMIO). As a result it is no longer necessary to copy transferred data, resulting in reduced overhead and speed gains.
The kernel now supports the IEEE 802.1ad specification. The procedure, also known as VLAN stacking or QinQ, can be used to insert multiple VLAN tags into a single Ethernet frame. The relevant network settings are configured using the tool "ip".
Mesh-implementation batman-adv now supports "network coding", which, with the aid of some XOR trickery, enables mesh relays to send two network packets to different systems with which the relay has previously communicated in a single transmission.
The developers have ejected the unfinished TCP cookie transactions (TCPCT) code, which had a negative impact on performance. TCPCT could have helped thwart some denial-of-service attacks.
Network drivers
Linux 3.10 sees the merging of drivers for USB 2.0 network chip RTL8152 and 11n wireless chip RTL8188EE, both from Realtek (1, 2, and others). There is now experimental support for Ralink's RT5592. The brcmsmac driver for the latest Broadcom chips can now run in access-point mode.
Support for IPv6 in the driver for network connections over FireWire has been significantly improved. In its new random mode, the Team driver now decides at random which of the virtual network interfaces connected via the driver will be used to send each packet.
Further changes to network drivers and infrastructure are listed in the network subsystem maintainer's main git pull request for Linux 3.10.