The ryu-based OVS agent variant forces the bridge Openflow version to 1.3 only [1], which breaks a few things:
- troubleshooting tools relying on ovs-ofctl, unless they specify "-O Openflow13", will break:
version negotiation failed (we support version 0x01, peer supports version 0x04)
ovs-ofctl: br-tun: failed to connect to socket (Broken pipe)
- calling add_flow on an OVSCookieBridge derived from a bridge that is an native.ovs_bridge.OVSAgentBridge, will fail with the same error, because add_flow will call ovs-ofctl without specifying "-O Openflow13" (this issue is currently hitting networking-bgpvpn: [2])
It seems like a possible fix would be to not restrict the set of Openflow versions supported by the bridge to Openflow13, but to just *add* Openflow13 to the set of supported versions.
[1] https://github.com/openstack/neutron/blob/master/neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/ovs_bridge.py#L78
[2] https://github.com/openstack/networking-bagpipe/blob/master/networking_bagpipe/agent/bagpipe_bgp_agent.py#L512
This may happen in the case only which of_interface= "ovs-ofctl" and ovsdb_interface ="native" ?