On 8/9/23 20:01, Mark Michelson wrote: > Thanks Mohammad and Ales. I have pushed the change to main and all > branches back to 22.03. >
Hi Mark, Mohammad, It seems this change broke 22.03: https://github.com/ovn-org/ovn/actions/runs/5812479357 > On 8/3/23 04:46, Ales Musil wrote: >> On Mon, Jul 31, 2023 at 7:18 PM Mohammad Heib <mh...@redhat.com> wrote: >> >>> Currently when ovs interface ofport is updated >>> after setting external_ids:iface_id, the ovn-controller >>> will see this change but will not do much if it handles >>> this change incrementally. >>> >>> This behavior leads to a mismatch between the ovs openflow >>> flows in table=0 (inaccurate in_port) and the ofport number >>> that the packet was received at which will lead to packets >>> drop in table=0. >>> >>> This patch will resolve the above issue by triggering >>> flows recompute during the I-P processing only if the >>> affected port are associated with lport and has flows >>> that need to be updated. >>> >>> Reported-at: https://issues.redhat.com/browse/FD-3063 >>> Signed-off-by: Mohammad Heib <mh...@redhat.com> >>> --- >>> controller/binding.c | 15 ++++++++++++++ >>> tests/ovn-controller.at | 45 +++++++++++++++++++++++++++++++++++++++++ >>> 2 files changed, 60 insertions(+) >>> >>> diff --git a/controller/binding.c b/controller/binding.c >>> index 9aa3fc6c4..cc4c2b0bb 100644 >>> --- a/controller/binding.c >>> +++ b/controller/binding.c >>> @@ -2360,6 +2360,21 @@ consider_iface_claim(const struct >>> ovsrec_interface >>> *iface_rec, >>> /* Get the (updated) b_lport again for the lbinding. */ >>> b_lport = local_binding_get_primary_lport(lbinding); >>> >>> + /* >>> + * Update the tracked_dp_bindings whenever an ofport >>> + * on a specific ovs port changes. >>> + * This update will trigger flow recomputation during >>> + * the incremental processing run which updates the local >>> + * flows in_port filed. >>> + */ >>> + if (b_lport && ovsrec_interface_is_updated(iface_rec, >>> + OVSREC_INTERFACE_COL_OFPORT)) { >>> + tracked_datapath_lport_add(b_lport->pb, >>> TRACKED_RESOURCE_UPDATED, This part triggers the ct_zones_runtime_data_handler() I-P handler to be called. But on 22.03 this aborts on TRACKED_RESOURCE_UPDATED: https://github.com/ovn-org/ovn/blob/915c556f0c50e81b1dbc05a68d754cf4cb7d4551/controller/ovn-controller.c#L2154 Do you maybe have some time to look into this? Or should we just revert the backport on 22.03? I don't think ofport updates are common. Thanks, Dumitru _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev