[ovs-discuss] Open vSwitch running on DPDK

Fischetti, Antonio antonio.fischetti at intel.com
Tue Nov 10 13:50:39 UTC 2015

Please find below my replies inline.

> -----Original Message-----
> From: discuss [mailto:discuss-bounces at openvswitch.org] On Behalf Of ???
> Sent: Tuesday, November 10, 2015 6:06 AM
> To: discuss at openvswitch.org
> Subject: [ovs-discuss] Open vSwitch running on DPDK
> When Open vSwitch is running on DPDK, we know that the OVS is in
> userspace. I read the source code and found that the userspace has a cache
> like microflow. My question is that is there a version that also has megaflow
> in userspace ?
Yes, megaflows - i.e. wildcarded flows - are managed in User-Space. 
Megaflows are collected in the Classifier Table, while microflows are 
collected in the EMC table (= Exact Match Cache). 
So both tables are now running in User Space. 
You can find their implementations in OVS/lib/dpif-netdev.c. 
All the functions like 'emc_insert()', 'emc_lookup()', 'emc_..' refer to the 
microflow cache (EMC).
Instead the functions like 'dpcls_insert()', 'dpcls_lookup()', 'dpcls_..' refer 
to the megaflow cache (Classifier).
If you like to see how a packet gets processed and 'bounced' by one table up 
to the other, you could start from the function dp_netdev_process_rxq_port(). 
By following the function calls you will see the decoding, then the lookup 
against the EMC. If that fails there's will be a lookup against the Classifier. 
All these functions are in 'dpif-netdev.c'.
Hope that helps.
Intel Research and Development Ireland Limited
Registered in Ireland
Registered Office: Collinstown Industrial Park, Leixlip, County Kildare
Registered Number: 308263

This e-mail and any attachments may contain confidential material for the sole
use of the intended recipient(s). Any review or distribution by others is
strictly prohibited. If you are not the intended recipient, please contact the
sender and delete all copies.

More information about the discuss mailing list