summaryrefslogtreecommitdiff
path: root/vswitchd
diff options
context:
space:
mode:
authorYipeng Wang <yipeng1.wang@intel.com>2018-07-10 03:14:06 -0700
committerIan Stokes <ian.stokes@intel.com>2018-07-24 17:01:03 +0100
commit60d8ccae135f046a313a64d5f71822177b3c2371 (patch)
treee5c152d2677e17bfa521f27dccc165fd65b923d8 /vswitchd
parent1ac690899592f97520aa1c959a623175e642f0a4 (diff)
downloadopenvswitch-60d8ccae135f046a313a64d5f71822177b3c2371.tar.gz
dpif-netdev: Add SMC cache after EMC cache
This patch adds a signature match cache (SMC) after exact match cache (EMC). The difference between SMC and EMC is SMC only stores a signature of a flow thus it is much more memory efficient. With same memory space, EMC can store 8k flows while SMC can store 1M flows. It is generally beneficial to turn on SMC but turn off EMC when traffic flow count is much larger than EMC size. SMC cache will map a signature to an dp_netdev_flow index in flow_table. Thus, we add two new APIs in cmap for lookup key by index and lookup index by key. For now, SMC is an experimental feature that it is turned off by default. One can turn it on using ovsdb options. Signed-off-by: Yipeng Wang <yipeng1.wang@intel.com> Co-authored-by: Jan Scheurich <jan.scheurich@ericsson.com> Signed-off-by: Jan Scheurich <jan.scheurich@ericsson.com> Acked-by: Billy O'Mahony <billy.o.mahony@intel.com> Signed-off-by: Ian Stokes <ian.stokes@intel.com>
Diffstat (limited to 'vswitchd')
-rw-r--r--vswitchd/vswitch.xml13
1 files changed, 13 insertions, 0 deletions
diff --git a/vswitchd/vswitch.xml b/vswitchd/vswitch.xml
index 63a3a2ed1..634294944 100644
--- a/vswitchd/vswitch.xml
+++ b/vswitchd/vswitch.xml
@@ -405,6 +405,19 @@
</p>
</column>
+ <column name="other_config" key="smc-enable"
+ type='{"type": "boolean"}'>
+ <p>
+ Signature match cache or SMC is a cache between EMC and megaflow
+ cache. It does not store the full key of the flow, so it is more
+ memory efficient comparing to EMC cache. SMC is especially useful
+ when flow count is larger than EMC capacity.
+ </p>
+ <p>
+ Defaults to false but can be changed at any time.
+ </p>
+ </column>
+
<column name="other_config" key="n-handler-threads"
type='{"type": "integer", "minInteger": 1}'>
<p>