Neutron Open vSwitch Version Negotiation Failed

Problem

There was no connectivity issue observed for the instance/VMs or the host but the below logs were continuously seen in the /var/log/pf9/pf9-neutron-ovs-agent.log:

ERROR neutron.agent.linux.utils [...] Stderr: vconn|WARN|unix:/var/run/openvswitch/br-int.mgmt: version negotiation failed (we support version 0x05, peer supports versions 0x01, 0x04)
ovs-ofctl: br-int: failed to connect to socket (Broken pipe)

Environment

  • Platform9 Managed OpenStack - All Versions

  • Neutron

Cause

The Neutron native OVS driver creates bridges and modifies the supported OpenFlow protocols on that bridge. If there is a mismatch with OpenVswitch ex: latest version, it results in the OpenFlow protocol to throw a mismatch error when neutron performs operations on that bridge.

Resolution

  1. Check the neutron-ovs-agent logs to confirm if you see any error logs as highlighted in the problem statement:

$ less /var/log/pf9/pf9-neutron-ovs-agent.log
  1. Restart the ovsdb-server service:

$ sudo systemctl restart ovsdb-server.service
$ sudo systemctl status ovsdb-server.service

Info

The restart of ovsdb-server will make ovs-vswitchd reassess its configuration.

  1. Verify the pf9-neutron-ovs-agent.logagain to confirm no version negotiation failed error logs are seen.

  2. If the restart of ovsdb-server service doesn't stop the error logs, enable the OpenFlow protocols manually on the OVS bridge using the below command. More details related to command and OpenFlow protocol version is available in FAQ: What versions of OpenFlow does Open vSwitch support?

Additional Information

More information on this issue can be found in the upstream bug: [#1852221] ovs-vswitchd needs to be forced to reconfigure after adding protocols to bridges.

Last updated