OVS Orbit

Flow Translation

04.29.2018 - By Ben PfaffPlay

Download our free app to listen on your phone

Download on the App StoreGet it on Google Play

This is the third in a series of Open vSwitch tech talks that we are

starting to run internally at VMware every week or two. This episode is

about flow translation, the process that OVS follows when a packet

arrives in the software switch that does not match any already

established entry in the OVS datapath cache (the megaflow cache).

The translation process has two goals. First, it figures out what to do

with the particular packet being processed Second, it determines what

class of packets similar to this packet can be treated the same way. The

former determination is generally applied directly to the packet in

question, and the latter is used to add a new cache entry (megaflow) to

the datapath.

The main source files involved in translation are ofproto-dpif-xlate.c and ofproto-dpif-xlate.h.

In addition to the translation process itself, the talk covers some uses

of relevant tools: ovs-dpctl dump-flows and ovs-appctl

dpctl/dump-flows for viewing datapath cache entries, and

ovs-appctl ofproto/trace for understanding how cache entries

are devised and populated and playing "what-if?" games. These are

documented in the ovs-vswitchd and ovs-dpctl

manpages.

The NSDI 2015 paper The

Design and Implementation of Open vSwitch covers in detail how Open

vSwitch caches translations.

OVS Orbit is produced by Ben Pfaff. The

intro music in this episode is Drive,

featuring cdk and DarrylJ, copyright 2013, 2016 by Alex. The bumper

music is Yeah Ant

featuring Wired Ant and Javolenus, copyright 2013 by Speck. The outro

music is Space

Bazooka featuring Doxen Zsigmond, copyright 2013 by Kirkoid. All

content is licensed under a Creative Commons Attribution 3.0

Unported (CC BY 3.0) license.

More episodes from OVS Orbit