Description of problem: If protocols column value is changed on an OVS bridge, it won't be seen by ovs-vswitchd. The only way how to set protocols is in the same transaction with bridge creation. This is a regression between OVS 2.11 and 2.12 Version-Release number of selected component (if applicable): OVS 2.12 How reproducible: Always Steps to Reproduce: 1. Create a bridge with low protocol version: ovs-vsctl add-br testing -- set bridge testing protocols=OpenFlow10 2. Set higher protocol version: ovs-vsctl set bridge testing protocols=OpenFlow10,OpenFlow14 3. Use a feature from OpenFlow 14: ovs-ofctl add-flow testing --bundle actions=normal Actual results: 2019-12-12T12:51:21Z|00001|vconn|WARN|unix:/var/run/openvswitch/testing.mgmt: version negotiation failed (we support version 0x05, peer supports version 0x01) Expected results: peer supports version 0x05 Additional info: ovsdb and vswitchd logs are attached
Created attachment 1644410 [details] ovsdb-server.log
Created attachment 1644411 [details] ovs-vswitchd.log
I did git bisect and it lead me to this commit: https://github.com/openvswitch/ovs/commit/a0baa7dfa4fe257fada82623a9564e334f68ca91
I can't reproduce this with upstream OvS 2.12: 01:08:30 aconole@dhcp-25 ~$ sudo ovs-vsctl show 79336ad3-da43-4fb5-acb7-b5f939598b63 Bridge br0 Port br0 Interface br0 type: internal Port veth_l0 Interface veth_l0 error: "could not open network device veth_l0 (No such device)" Port veth_r0 Interface veth_r0 error: "could not open network device veth_r0 (No such device)" Bridge testing Port testing Interface testing type: internal ovs_version: "2.12.90" 01:08:32 aconole@dhcp-25 ~$ sudo ovs-ofctl add-flow testing --bundle actions=normal 01:08:39 aconole@dhcp-25 ~$ cd git/ovs 01:09:06 aconole@dhcp-25 {(e8f563448...)} ~/git/ovs$ sudo ovs-vsctl set bridge testing protocols=OpenFlow10,OpenFlow14 01:09:23 aconole@dhcp-25 {(e8f563448...)} ~/git/ovs$ sudo ovs-ofctl add-flow testing --bundle actions=normal 01:09:26 aconole@dhcp-25 {(e8f563448...)} ~/git/ovs$ I'll downgrade to the version from FDP and try again.
(In reply to Aaron Conole from comment #8) > 01:08:32 aconole@dhcp-25 ~$ sudo ovs-ofctl add-flow testing --bundle > actions=normal Did you create the testing bridge with protocols set to OpenFlow10 only? If you did, this command should fail which is correct behavior as 10 doesn't support bundle. The idea is to create a bridge that doesn't support --bundle and then enable the protocol that supports it. > 01:08:39 aconole@dhcp-25 ~$ cd git/ovs > 01:09:06 aconole@dhcp-25 {(e8f563448...)} ~/git/ovs$ sudo ovs-vsctl set > bridge testing protocols=OpenFlow10,OpenFlow14 > 01:09:23 aconole@dhcp-25 {(e8f563448...)} ~/git/ovs$ sudo ovs-ofctl add-flow > testing --bundle actions=normal > 01:09:26 aconole@dhcp-25 {(e8f563448...)} ~/git/ovs$ > > I'll downgrade to the version from FDP and try again.
https://mail.openvswitch.org/pipermail/ovs-dev/2020-February/367806.html Latest response.
Raising the severity to urgent as this blocks updates, upgrades and migration to OSP 16.1
(In reply to Jakub Libosvar from comment #17) > Raising the severity to urgent as this blocks updates, upgrades and > migration to OSP 16.1 Not upgrades, just updates and the migration.
https://mail.openvswitch.org/pipermail/ovs-dev/2020-August/373744.html
https://mail.openvswitch.org/pipermail/ovs-dev/2020-August/373967.html This patch was recently accepted. It should make it to 20.G build.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory (openvswitch2.13 bug fix and enhancement update), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2020:3771