[ovs-git] [openvswitch/ovs] b5ebc6: bridge.c: prevent controller connects while flow-r...

GitHub noreply at github.com
Fri Oct 26 03:40:32 UTC 2018


  Branch: refs/heads/branch-2.7
  Home:   https://github.com/openvswitch/ovs
  Commit: b5ebc62a9ae02094af7af19b1ad7da13674e56ae
      https://github.com/openvswitch/ovs/commit/b5ebc62a9ae02094af7af19b1ad7da13674e56ae
  Author: Zak Whittington <zwhitt.vmware at gmail.com>
  Date:   2018-10-25 (Thu, 25 Oct 2018)

  Changed paths:
    M vswitchd/bridge.c

  Log Message:
  -----------
  bridge.c: prevent controller connects while flow-restore-wait

When force-reload-kmod is used, it shows an error when reinstalling
tlvs during "Restoring saved flows" step:
OFPT_ERROR (xid=0x4): NXTTMFC_ALREADY_MAPPED

This is caused by a race condition between the restore script,
which calls ofctl, and the connected controllers both adding back
the same TLVs.

The restore script already sets flow-restore-wait to true while
doing flow restoration, and sets it back to false after it is
done, and this patch utilizes that fact to prevent the TLV race.
It does this by preventing vswitchd from connecting to
controllers in the controller table while it is in a
flow-restore-wait state.

With this patch, when bridge_configure_remotes() calls
bridge_get_controllers(), it first checks if flow-restore-wait
has been set, and if so, it ignores any controllers in the
controller database and sets n_controllers to 0.

This solution does preserve the management service controller
which is added via bridge_ofproto_controller_for_mgmt() after
checking whether we should call bridge_get_controllers()
(and thus n_controllers is properly set to 1, etc)

VMware-BZ: 2195377
Signed-off-by: Zak Whittington <zwhitt.vmware at gmail.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>



      **NOTE:** This service has been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/

      Functionality will be removed from GitHub.com on January 31st, 2019.


More information about the git mailing list