Talk: "Virtual switch HW acceleration" (Rony Efraim)


Software based switching consumes CPU resources that can instead be offloaded to modern network adapters.

In this talk we propose switch acceleration where functionality is done by software and when possible/sensible to offload to HW utilizing the switchdev framework when possible. Our approach can be implemented using existing functionality of most modern NICs that already support packet classification, multiple send and receive rings, traffic shapers and L2/L3/L4 overlay networks encapsulation / decapsulation.

The proposed framework does HW classification of packets and associating an action per classification rule (for example, through 12 tuple classification). The following are the initial proposed actions:

  • 1.Mark a packet - use the HW based classification to tag the packet according using skbedit TC action.
  • 2.Send and Receive rings mapping - use dedicated HW rings per VM/MAC/other.
  • 3.QoS (Scheduling, Shaping, Metering, Rate limiting ...).
  • 4.Overlay networks encapsulation/decapsulation insert and strip in HW for non SRIOV VMs (VXLAN, NVGRE MPLS, QinQ....).
  • 5.Drop (e.g., accelerating a SW firewall implementation etc.).
  • 6.Count (Packets, bytes...).

In this talk we will discuss how the proposed framework for HW acceleration is transparently mapped into the TC subsystem Filter&Action framework. Additionally we will suggest virtual switch control and data plane interfaces for enabling the acceleration framework.