diff options
author | Yipeng Wang <yipeng1.wang@intel.com> | 2018-07-10 03:14:06 -0700 |
---|---|---|
committer | Ian Stokes <ian.stokes@intel.com> | 2018-07-24 17:01:03 +0100 |
commit | 60d8ccae135f046a313a64d5f71822177b3c2371 (patch) | |
tree | e5c152d2677e17bfa521f27dccc165fd65b923d8 /vswitchd | |
parent | 1ac690899592f97520aa1c959a623175e642f0a4 (diff) | |
download | openvswitch-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.xml | 13 |
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> |