When OVS restart, some flows will be missing in the br-int

Bug #1920700 reported by Jacy Lee on 2021-03-22
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Jacy Lee

Bug Description

When OVS restart and executed here (https://github.com/openstack/neutron/blob/80dfbb03715ff3b8ee06f698df4bfa95d285b0e5/neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py#L2579), some flows will be missing in the br-int, as follows:
 * table=60, n_packets=230017, n_bytes=25281846, priority=4,in_port="int-br-floating" actions=resubmit(,61)
 * table=60, n_packets=23697, n_bytes=1230474, priority=4,in_port="patch-tun" actions=resubmit(,61)
 * table=61, n_packets=2713148, n_bytes=800997718, priority=0 actions=resubmit(,62)

These flows are initialized in the function install_ingress_direct_goto_flows(), and this function is only called in the constructor of the class OVSNeutronAgent. So when ovs_status equals constants.OVS_RESTARTED and flows need to be regenerated, but this function is not called and these flows are not regenerated.

In order to solve this problem, we need to additionally restart ovs-neutron-agent to call install_ingress_direct_goto_flows() to regenerate these flows.

Jacy Lee (yjmango) on 2021-03-22
Changed in neutron:
assignee: nobody → Jacy Lee (yjmango)
Changed in neutron:
status: New → Confirmed
Changed in neutron:
importance: Undecided → High
milestone: none → wallaby-rc1
Lajos Katona (lajos-katona) wrote :
Changed in neutron:
status: Confirmed → In Progress

This issue was fixed in the openstack/neutron release candidate.

Changed in neutron:
status: In Progress → Fix Released

Reviewed: https://review.opendev.org/c/openstack/neutron/+/783923
Committed: https://opendev.org/openstack/neutron/commit/eed5b3ec7c3900533f7a74ae969eee1c65bea43c
Submitter: "Zuul (22348)"
Branch: stable/train

commit eed5b3ec7c3900533f7a74ae969eee1c65bea43c
Author: Li YaJie <yajiemango@163.com>
Date: Mon Mar 22 10:01:22 2021 +0800

    Call install_ingress_direct_goto_flows() when ovs restarts

    When ovs restarts and needs to regenerate flows, some flows will be
    missing in br-int, as follows:
     * table=60,priority=4,in_port="int-br-floating" actions=resubmit(,61)
     * table=60,priority=4,in_port="patch-tun" actions=resubmit(,61)
     * table=61,priority=0 actions=resubmit(,62)
    Call install_ingress_direct_goto_flows() again in the
    _handle_ovs_restart() to ensure generate these flows.

    Change-Id: I240a78879db757592df138a53b2c22d7f5a9ae13
    Closes-Bug: #1920700
    (cherry picked from commit 2bb52d49bec299f070a513fee6f9f7ae5d53118b)

tags: added: in-stable-train
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers