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
- 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
- Restart the
ovsdb-server
service:
$ sudo systemctl restart ovsdb-server.service
$ sudo systemctl status ovsdb-server.service
The restart of ovsdb-server
will make ovs-vswitchd
reassess its configuration.
- Verify the
pf9-neutron-ovs-agent.log
again to confirm noversion negotiation failed
error logs are seen. - 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?
$ ovs-vsctl set bridge br-int protocols=OpenFlow10,OpenFlow13,OpenFlow14
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.
Was this page helpful?