Since this is a performance improvement, I applied this to main only.
On 4/29/25 12:12, Mark Michelson wrote:
Thanks Ales,
Acked-by: Mark Michelson <mmich...@redhat.com>
On 4/29/25 06:03, Ales Musil via dev wrote:
The non_vif_data tracks ofport number for tunnels and patch ports.
Make sure we recompute only for ofport changes, this also prevents
recomputes for lflow which has non_vif_data as input node without
a handler.
Signed-off-by: Ales Musil <amu...@redhat.com>
---
controller/local_data.c | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/controller/local_data.c b/controller/local_data.c
index e256de5fa..97710528f 100644
--- a/controller/local_data.c
+++ b/controller/local_data.c
@@ -538,9 +538,17 @@ local_nonvif_data_handle_ovs_iface_changes(
{
const struct ovsrec_interface *iface_rec;
OVSREC_INTERFACE_TABLE_FOR_EACH_TRACKED (iface_rec, iface_table) {
- if (!strcmp(iface_rec->type, "geneve") ||
- !strcmp(iface_rec->type, "patch") ||
- !strcmp(iface_rec->type, "vxlan")) {
+ /* Check only patch ports or tunnels. */
+ if (strcmp(iface_rec->type, "geneve") &&
+ strcmp(iface_rec->type, "patch") &&
+ strcmp(iface_rec->type, "vxlan")) {
+ continue;
+ }
+ /* We are interested only in ofport changes for this handler. */
+ if (ovsrec_interface_is_new(iface_rec) ||
+ ovsrec_interface_is_deleted(iface_rec) ||
+ ovsrec_interface_is_updated(iface_rec,
+ OVSREC_INTERFACE_COL_OFPORT)) {
return false;
}
}
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev