On Wed, Jul 27, 2022 at 9:06 PM Han Zhou <[email protected]> wrote:
>
> When introducing the feature ovn-ofctrl-wait-before-clear, a new state
> WAIT_BEFORE_CLEAR is added before CLEAR_FLOWS. In the WAIT_BEFORE_CLEAR
> state the mff_ovn_geneve is already available. However, the function
> ofctrl_get_mf_field_id() was not updated, and still returns 0 when the
> state is WAIT_BEFORE_CLEAR, and will return the actual id when state
> becomes CLEAR_FLOWS. This results in the I-P engine node
> en_mff_ovn_geneve update, which triggers a recompute of the
> physical_flow_output node, while this recompute could have happened
> earlier in the WAIT_BEFORE_CLEAR state.
>
> Although physical_flow_output recompute is not as heavy as
> logical_flow_output recompute, it is still inefficient. This is a miss
> from the ovn-ofctrl-wait-before-clear patch.
>
> Fixes: 896adfd2d8b3 ("ofctrl: Support ovn-ofctrl-wait-before-clear to reduce 
> down time during upgrade.")
> Signed-off-by: Han Zhou <[email protected]>

Acked-by: Numan Siddique <[email protected]>

Numan

> ---
>  controller/ofctrl.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/controller/ofctrl.c b/controller/ofctrl.c
> index 432fe2d37..54b75b3ac 100644
> --- a/controller/ofctrl.c
> +++ b/controller/ofctrl.c
> @@ -756,7 +756,9 @@ ofctrl_get_mf_field_id(void)
>      if (!rconn_is_connected(swconn)) {
>          return 0;
>      }
> -    return (state == S_CLEAR_FLOWS || state == S_UPDATE_FLOWS
> +    return (state == S_WAIT_BEFORE_CLEAR
> +            || state == S_CLEAR_FLOWS
> +            || state == S_UPDATE_FLOWS
>              ? mff_ovn_geneve : 0);
>  }
>
> --
> 2.30.2
>
> _______________________________________________
> dev mailing list
> [email protected]
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to