In func tunnel_sync flood flows were added many times leading to slow start

Bug #1589400 reported by yujie on 2016-06-06
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
neutron
Medium
yujie

Bug Description

When start ovs-agent, func tunnel_sync will call _setup_tunnel_port when l2_pop is not enabled.
For each tunnel _setup_tunnel_port will be called once, every call will add flood flows to br-tun. But one time call is enough.

    def tunnel_sync(self):
        LOG.debug("Configuring tunnel endpoints to other OVS agents")

        try:
            for tunnel_type in self.tunnel_types:
                details = self.plugin_rpc.tunnel_sync(self.context,
                                                      self.local_ip,
                                                      tunnel_type,
                                                      self.conf.host)
                if not self.l2_pop:
                    tunnels = details['tunnels']
                    for tunnel in tunnels:
                        if self.local_ip != tunnel['ip_address']:
                            remote_ip = tunnel['ip_address']
                            tun_name = self.get_tunnel_name(
                                tunnel_type, self.local_ip, remote_ip)
                            if tun_name is None:
                                continue
                            self._setup_tunnel_port(self.tun_br,
                                                    tun_name,
                                                    tunnel['ip_address'],
                                                    tunnel_type)

In _setup_tunnel_port, this code add flood flows:
        if ofports and not self.l2_pop:
            # Update flooding flows to include the new tunnel
            for vlan_mapping in list(self.local_vlan_map.values()):
                if vlan_mapping.network_type == tunnel_type:
                    br.install_flood_to_tun(vlan_mapping.vlan,
                                            vlan_mapping.segmentation_id,
                                            ofports)

yujie (16189455-d) on 2016-06-06
Changed in neutron:
assignee: nobody → yujie (16189455-d)
Changed in neutron:
importance: Undecided → Medium
status: New → Confirmed
milestone: none → newton-2

Fix proposed to branch: master
Review: https://review.openstack.org/326818

Changed in neutron:
status: Confirmed → In Progress
Changed in neutron:
milestone: newton-2 → newton-3
Changed in neutron:
milestone: newton-3 → newton-rc1
Changed in neutron:
milestone: newton-rc1 → ocata-1
Changed in neutron:
milestone: ocata-1 → ocata-2
Changed in neutron:
milestone: ocata-2 → ocata-3
Changed in neutron:
milestone: ocata-3 → ocata-rc1
tags: added: ocata-rc-potential

Reviewed: https://review.openstack.org/326818
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=3a612fc870cd044e126c0f66a484e696318ae9cb
Submitter: Jenkins
Branch: master

commit 3a612fc870cd044e126c0f66a484e696318ae9cb
Author: yujie <email address hidden>
Date: Mon Sep 19 15:17:48 2016 +0800

    Improve tunnel_sync

    When start ovs-agent, method tunnel_sync will call
    _setup_tunnel_port when l2_pop is not enabled.
    For each tunnel _setup_tunnel_port will be called once,
    every call will add flood flows to br-tun. But one time
    call is enough.

    Change-Id: I80f25edb35a89c5476f5216e151a27cbd3dcd120
    Co-Authored-By: Yan Xing an <email address hidden>
    Closes-bug: #1589400

Changed in neutron:
status: In Progress → Fix Released

Reviewed: https://review.openstack.org/430053
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=7d04882f137417c971d40461994e835f16a42496
Submitter: Jenkins
Branch: stable/ocata

commit 7d04882f137417c971d40461994e835f16a42496
Author: yujie <email address hidden>
Date: Mon Sep 19 15:17:48 2016 +0800

    Improve tunnel_sync

    When start ovs-agent, method tunnel_sync will call
    _setup_tunnel_port when l2_pop is not enabled.
    For each tunnel _setup_tunnel_port will be called once,
    every call will add flood flows to br-tun. But one time
    call is enough.

    Change-Id: I80f25edb35a89c5476f5216e151a27cbd3dcd120
    Co-Authored-By: Yan Xing an <email address hidden>
    Closes-bug: #1589400
    (cherry picked from commit 3a612fc870cd044e126c0f66a484e696318ae9cb)

tags: added: in-stable-ocata

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

This issue was fixed in the openstack/neutron 11.0.0.0b1 development milestone.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers