On 8/14/23 22:17, Dumitru Ceara wrote:
> 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.
> 

I went ahead and reverted this on branch 22.03 as that's our LTS and I
wanted to make sure we have green CI on it.  Mohammad, please post a
custom backport patch if you want this fixed on 22.03 too.

Regards,
Dumitru

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to