[ovs-discuss] OVS megaflows

Sara Gittlin sara.gittlin at gmail.com
Wed Aug 16 07:34:45 UTC 2017

I took a look  at the datapath code -  saw only single table, which
its entries are microflows and megaflows
the megaflows are indicated by non-zero mask fields

On Wed, Aug 16, 2017 at 9:59 AM, Sara Gittlin <sara.gittlin at gmail.com> wrote:
> Thank you Joe
> Few questions:
> 1. Are there 2 separate flow tables in the kernel data-path ? for
> microflows and megaflows ?
> 2. If the answer is yes :
>    - When pkt arrives,  is it first checked against the microflows
> table and if there is no  match, then it checked against the megaflows
> table ?
>    - Then if the pkt matches a megaflow - a new microflow will be
> generated by the kernel for this pkt ?  this make sense to improve
> performance.
> Sara
> On Tue, Aug 15, 2017 at 7:16 PM, Joe Stringer <joe at ovn.org> wrote:
>> On the first point - it's a little more subtle than that. A traffic
>> flow (eg, a connection) must arrive at OVS, the first packet is sent
>> through userspace, which causes userspace to install a megaflow into
>> the datapath. Subsequently, if any traffic which matches that megaflow
>> arrives, it will directly 'hit' the megaflow entry and execute the
>> associated actions without going to userspace. Typically we use
>> "microflow" to refer to a packet headers description which
>> exact-matches all known fields, while "megaflow" allows a mask to be
>> applied in addition to this, which allows the traffic which would
>> otherwise be handled by multiple microflows to instead be handled by a
>> single megaflow. There is no dependency between megaflows and
>> microflows.
>> Cheers,
>> Joe

More information about the discuss mailing list