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-agentlogs 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-serverservice:
$ sudo systemctl restart ovsdb-server.service$ sudo systemctl status ovsdb-server.serviceThe restart of ovsdb-server will make ovs-vswitchd reassess its configuration.
- Verify the
pf9-neutron-ovs-agent.logagain to confirm noversion negotiation failederror logs are seen. - If the restart of
ovsdb-serverservice 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,OpenFlow14Additional 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?