[ovs-dev] [PATCH ovn] ovn-controller: Handle changes in requested-tnl-key
Mark Gray
mark.d.gray at redhat.com
Fri Sep 11 15:26:48 UTC 2020
runtime_data_sb_datapath_binding_handler() only handles deletion of rows
in the Datapath_Binding table in OVN-SB. The user can update the
requested-tnl-key by the following command:
ovn-nbctl set logical_switch sw0 other_config:requested-tnl-key=<key>
This command modifies the tunnel_key column. This patch
ensures that an update of this column is handled by the
incremental processing engine by forcing a recompute
of the runtime_data node.
As it is expected that changing the requested-tnl-key is not updated
frequently, we do not attempt to make this update incrementally.
Signed-off-by: Mark Gray <mark.d.gray at redhat.com>
---
controller/ovn-controller.c | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/controller/ovn-controller.c b/controller/ovn-controller.c
index 995805470..106f8eae1 100644
--- a/controller/ovn-controller.c
+++ b/controller/ovn-controller.c
@@ -1362,8 +1362,8 @@ runtime_data_sb_port_binding_handler(struct
engine_node *node, void *data)
}
static bool
-runtime_data_sb_datapath_binding_handler(struct engine_node *node
OVS_UNUSED,
- void *data OVS_UNUSED)
+runtime_data_sb_datapath_binding_handler(struct engine_node *node,
+ void *data)
{
struct sbrec_datapath_binding_table *dp_table =
(struct sbrec_datapath_binding_table *)EN_OVSDB_GET(
@@ -1378,6 +1378,18 @@ runtime_data_sb_datapath_binding_handler(struct
engine_node *node OVS_UNUSED,
return false;
}
}
+
+ /* Force recompute when the tunnel_key is updated. However,
+ don't update if the external_id column is updated as this
+ can be done when a logical switch or logical router is
+ added which does not recquire a recompute.
+ */
+ if (sbrec_datapath_binding_is_updated(dp,
+ SBREC_DATAPATH_BINDING_COL_TUNNEL_KEY) &&
+ !sbrec_datapath_binding_is_updated(dp,
+ SBREC_DATAPATH_BINDING_COL_EXTERNAL_IDS)) {
+ return false;
+ }
}
return true;
--
2.26.2
More information about the dev
mailing list