1.1.6 Networking

The following notable networking features are implemented in UEK R4:

  • The following VXLAN features have been implemented:

    • Layer 2 redirection with layer 3 switching.

    • Setting destination to a unicast address.

    • UDP tunnel segmentation.

    • IPv6 support.

    • Transmit-side VLAN offload for VXLAN devices.

    • Link configuration for transmitting UDPv4 checksums, and transmitting and receiving UDPv6 checksums.

    • Switch the network namespace when a packet is encapsulated or unencapsulated.

  • Per-socket network polling is supported with the bnx2x, ixgbe, and mlx4 network card drivers, which reduces the latency inherent in the NAPI periodic polling method.

    For more information, see http://lwn.net/Articles/551284/ and 2012-lpc-Low-Latency-Sockets-slides-brandeburg.pdf.

  • The new PIE (Proportional Integral controller Enhanced) network packet scheduler controls the average queueing latency to overcome buffer bloat, ensure low latency and achieve high link utilization under various congestion scenarios with very small overhead.

    For more information, see https://tools.ietf.org/html/draft-pan-tsvwg-pie-00.

  • Support for configuring the SR-IOV virtual function (VF) minimum and maximum transmission rates by using the ip command.

    For more information, see git commit ed616689a3d95eb6c9bdbb1ef74b0f50cbdf276a.

  • Support for SR-IOV VF link state control by using the ip command. Previously, VF links were always on, regardless of the physical link status, which allows VMs on the same virtual Ethernet bridge to communicate even if the physical function (PF) link state is down. However, if the VFs were bonded in active/standby mode, this configuration prevented failover when the physical link used by a VF went down. You can now use the ip link set command to configure the behavior of a VF link:

    # ip link set device vf number state { auto | enable | disable }

    The possible settings are:

    auto

    The VF link state is determined by the PF link state. This setting is suitable for VFs that are bonded in active/standby mode.

    disable

    The VF link state is permanently down.

    enable

    The VF link state is permanently up. This is the default setting.

  • The following Open vSwitch (OvS) features have been implemented:

    • Generic routing encapsulation (GRE) tunnels.

    • User-space tunneling interface.

    • Stream Control Transmission Protocol (SCTP) support.

    • VXLAN tunneling support.

    • Wild-carded flow implementation.

    • TCP bitwise flag matching.

      For more information, see git commit 5eb26b156e29eadcc21f73fb5d14497f0db24b86

    • Allow user space to announce ability to accept unaligned Netlink messages.

    • Enable memory-mapped Netlink I/O.

    • Enable tunnel generic segmentation offloading (GSO) for Open vSwitch bridge devices so that Open vSwitch can take advantage of hardware offloading to the underling devices.

    • Add recirc and hash action to support distributing packets between the ports of bond devices.

    • Add support for generic network virtualization encapsulation (Geneve) tunneling.

  • The nftables framework provides packet filtering and packet classification features as a replacment for the arptables, ebtables, iptables, and ip6tables frameworks. For example, see https://lwn.net/Articles/564095/.

    The following nftables features have been implemented:

    • Replaced iptables, while providing backwards compatibility.

    • IPv4 and IPv6 masquerading

    • Pre-routing and post-routing filtering.

    • Extended NFT_MSG_DELTABLE call to support flushing the rule set.

    • Add filter support for skipping accounting objects.

    • Add support for exporting the rule-set generation ID.

    • Add CPU attribute support for matching packets against CPU number.

    • Add support for matching packet types for the inet, ip, and ipv6 table families based on link-layer information. For loopback traffic, the packet type is deduced from the network layer header.

    • Add support for matching the device group of a packet's incoming or outgoing interface.

  • TCP Fast Open optimization is enabled by default in UEK R4 for applications that take advantage of this feature.

  • Generic network virtualization encapsulation (Geneve) provides a tunneling framework for establishing layer 2 networks over layer 3 networks.

    For more information, see http://tools.ietf.org/html/draft-gross- geneve-01 and http://blogs.vmware.com/cto/geneve-vxlan-network-virtualization-encapsulations/.

  • Transmission queue batching defers flushing transmission socket buffers to the network driver to reduce the overall cost of processing the transmission queue and can result in a higher effective packet transmission rate. The i40e, igb, ixgbe, mlx4, and virtio_net drivers support this feature.

    For more information, see http://lwn.net/Articles/615238/ and http://netoptimizer.blogspot.com/2014/10/unlocked-10gbps-tx-wirespeed-smallest.html.