← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1589400] Re: In func tunnel_sync flood flows were added many times leading to slow start

 

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 <yujie@xxxxxxxxxxxxxxxxxxxx>
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 <yanxingan@xxxxxxxxxxxxxxxxxxxx>
    Closes-bug: #1589400


** Changed in: neutron
       Status: In Progress => Fix Released

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1589400

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

Status in neutron:
  Fix Released

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)

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1589400/+subscriptions


References