Networking track

Networking is the key plumbing component that connects users and services to the world. Even in the embedded world, connectivity is critically important. Therefore a new microconf has been added to Linux Plumbers Conference to cover hot topics in Networking.

Most people familiar with the Linux will recognize Stephen Hemminger as one of the key current developers of Linux networking. He has made many important contributions to many components of Linux’s networking stack for several years. We are fortunate that he has graciously agreed to run the Networking micro-conference.

The opening part of the session deals with the interfaces to some of the core components of the networking stack. Obviously, if everything was working perfectly, there would be no need for a conference; therefore the two API’s under discussion are both important but incomplete.

The first topic is the wireless networking API. Linux is now undergoing a renaissance in wireless development. After going through the dark ages with many hardware devices not supported, and competing 802.11 protocol stacks; developers and companies are now focusing on delivering a complete and compatible solution. The first speaker John Linville is the current wireless networking maintainer and his talk “Modern Configuration API for Wireless Networking” covers the maturing cfg80211 API that is replacing the classical, outdated and scorned wireless extensions interface. Fully adopting cfg80211 will require coordinated changes to both the kernel and user utilities, which we hope that Plumbers can help with.

The second API-related talk covers network namespaces, a developing technology which provides controlled views of the networking environment to containerized processes. Projects like OpenVZ have use network namespaces for some time, but getting this technology into the mainline kernel has been a multi-year process which is still ongoing. Like other virtual environments, network namespaces bring their own communications challenges. The talk, “Why Network Namespace Sucks and How to Make it Suck Faster”, by Pavel Emelyanov will deal with some of these issues. It turns out that the Linux kernel has no fewer than five network device types that can be used as packet sources, with a sixth residing in the OpenVZ project. Pavel will compare and contrast these devices with an eye to future directions.

The miniconf will feature two talks on the processing of incoming network packets; proper received-packet processing is critical to networking performance on modern multi-core/multi-thread/multi-interrupt hardware. By looking at this problem from two different points of view, we hope some synergy will happen in this area.

The first performance talk is “Receive Packet Steering: A Software Solution to Scaling the Network Receive Path” by Tom Herbert. Tom notes that networking receive scalability is often limited by the single receive queue provided by older network interface controllers (NICs). This situation motivates some way of introducing parallelism in the receive path in spite of the single receive queue. If additional parallelism could be introduced into the single-queue receive path, there would be a valuable opportunity to increase performance on these older controllers.

The second performance oriented talk is on the new threaded interrupts “Threaded Network Device Interrupts” by Steven Rostedt. Steven argues that the use of threaded interrupts will not only simplify the networking code, but also increase network throughput. Given that some prominent developers in the networking community have been expressed skepticism about the value of threaded interrupts, we can expect some spirited discussion, and perhaps some modifications to threaded interrupts, to networking, or both.

Proposals for this track

* Converged Networking in the Data Center

The networking world in Linux has undergone some significant changes in the past two years. With the expansion of multiqueue networking, coupled with the growing abundance of multi-core computers with 10 Gigabit ethernet, the concept of efficiently converging different network flows becomes a real possibility.
Networking 06/11/2009
Peter Waskiewicz

* Magic in the Network: Multicasting, UDP and IGMP

The network layer can accomplish some amazing feats with the rarely used multicast features in the Linux kernel. Not only is it possible to send a single message to multiple recipients but the network is also dynamically reconfiguring itself to provide for your communication needs using IGMP. Some degree of independence from the IP addresses of the machines in the network can be accomplished. The network state becomes important and one does not communicate with hosts but with communication channels that every host can tie into. The network develops an intelligence in itself. It can discover new services, fall back dynamically and trigger actions on multiple hosts in a single message. All of these feats occur with a much higher speed than TCP.
Networking 06/17/2009
Christoph Lameter

* Modern Configuration API for Wireless Networking

The wireless extensions API is universally hated by wireless developers on both sides of the user/kernel divide. Fortunately the cfg80211 API is maturing as a modern alternative. What is needed is for drivers (both new and old) to adopt cfg80211 as their configuration mechanism so that the long wireless extensions nightmare can finally end.
Networking 06/15/2009
John Linville

* Network Device Naming

Network devices have but a single name, and for systems with > 1 NIC, it's probably wrong. Let's fix that.
Networking 06/19/2009
Matt Domsch

* Receive Packet Steering: A software solution to scaling the network receive path

The subject of this talk is a software based solution for scaling performance of the networking receive path. This is particularly useful with a single queue (legacy) NIC on a multi-core computer.
Networking 06/15/2009
Tom Herbert

* Routing performance with 10 Gigabit Ethernet

Routing performance is often used as a gauge of performance when evaluating a system. I will discuss some of the problems and solutions we found when trying to route line rate bi-directional traffic using off the shelf hardware.
Networking 06/15/2009
Jesse Brandeburg

* Threaded Network Device Interrupts

Increasing networking performance by using threaded interrupts for the network devices.
Networking 06/15/2009
Steven Rostedt

* Why network namespace sucks and how to make it suck faster

The talk outlines various ways of establishing a networking communication between a network namespace (a container) and the outer world, compares their performance and features.
Networking 06/22/2009
Pavel Emelyanov