Chapter 8. Networking

Multi-message send system call
Red Hat Enterprise Linux 6.2 introduces the multi-message send system call which is the send version of the existing recvmmsg system call in Red Hat Enterprise Linux 6.
The system call sendmmsg socket API looks like this:
struct mmsghdr {
	struct msghdr	msg_hdr;
	unsigned	msg_len;
    };

ssize_t sendmmsg(int socket, struct mmsghdr *datagrams, int vlen, int flags);
Transmit Packet Steering (XPS)
Red Hat Enterprise Linux 6.2 includes Transmit Packet Steering (XPS) for multiqueue devices. XPS introduces more efficient transmission of network packets for multiqueue devices by specifically targeting the processor involved in sending the packet. XPS enables the selection of the transmit queue for packet transmission based on configuration. This is analogous to the receive-side functionality implemented in Red Hat Enterprise Linux 6.1 which allowed for processor selection based on the receive queue (RPS). XPS has shown to improve throughput by 20% to 30%.
Traffic flooding for unregistered groups
Previously, the bridge flooded packets to unregistered groups via all ports. However, this behavior is not desirable in environments where traffic to unregistered groups is always present. In Red Hat Enterprise Linux 6.2, traffic is only sent to unregistered groups via ports marked as router ports. To force flooding to any given port, mark that port as a router port.
Stream Control Transmission Protocol (SCTP) Multihome support
Red Hat Enterprise Linux 6.2 adds support for SCTP multihoming—the ability of nodes (that is, multi-home nodes) to be reached at several IP addresses.
Tracepoints for UDP packet drop events
In Red Hat Enterprise Linux 6.2, more tracepoints have been added for UDP packet drop events. These tracepoints provide a way to analyze the reasons why UDP packets are dropped.
IPSet
The IPSet feature in the kernel has been added to store multiple IP addresses or port numbers, and match them against a collection via iptables.
TCP initial receive window default
The TCP initial receive window default has been increased from 4 kB to 15 kB. The benefit of this increase is that more data (15 kB > payload > 4 kB) can now fit in the initial window. With a 4 kB setting (IW3), any payload larger than 4 kB would have to be broken into multiple transfers.
TCP initial congestion window default
In Red Hat Enterprise Linux 6.2, the TCP initial congestion window default is now set to 10, according to RFC 5681. Additionally, the initial-window code common to TCP and CCID-2 has been consolidated.
GSO support on IPv6
GSO (Generic Segmentation Offload) support for the IPv6 forward path has been added, improving the performance of host to guest communication if GSO is enabled.
vios-proxy
vios-proxy is a stream-socket proxy for providing connectivity between a client on a virtual guest and a server on a Hypervisor host. Communication occurs over virtio-serial links. This feature is introduced as a Technology Preview in Red Hat Enterprise Linux 6.2.