A FAQ about OVS flow table

Text extracted from the Open vSwitch’s FAQ.

"### Q: Can OVS populate the kernel flow table in advance instead of in reaction to packets?

A: No.  There are several reasons:

  - Kernel flows are not as sophisticated as OpenFlow flows, which
    means that some OpenFlow policies could require a large number of
    kernel flows.  The "conjunctive match" feature is an extreme
    example: the number of kernel flows it requires is the product of
    the number of flows in each dimension.

  - With multiple OpenFlow flow tables and simple sets of actions, the
    number of kernel flows required can be as large as the product of
    the number of flows in each dimension.  With more sophisticated
    actions, the number of kernel flows could be even larger.

  - Open vSwitch is designed so that any version of OVS userspace
    interoperates with any version of the OVS kernel module.  This
    forward and backward compatibility requires that userspace observe
    how the kernel module parses received packets.  This is only
    possible in a straightforward way when userspace adds kernel flows
    in reaction to received packets.

  For more relevant information on the architecture of Open vSwitch,
  please read "The Design and Implementation of Open vSwitch",
  published in USENIX NSDI 2015."
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s