Comment 7 for bug 2052485

Revision history for this message
Andy Litzinger (alitzinger) wrote :

I have confirmed the missing flows are definitely the source of my issue. If I manually install the flows:

on rack-1-host-1
sudo ovs-ofctl --protocols=OpenFlow13 add-flow br-ex ip,priority=900,in_port="patch-provnet-2",actions=mod_dl_dst:<br-ex mac addr>,NORMAL

on rack-1-host-2:
sudo ovs-ofctl --protocols=OpenFlow13 add-flow br-ex ip,priority=900,in_port="patch-provnet-2",actions=mod_dl_dst:<br-ex mac addr>,NORMAL

Then my two vms on the same network can communicate with each other. For some reason if I stop my traffic tests then after a few minutes the flows seem to time out and get removed from the flow table. Not sure why that happens as the man page for ovs-ofctl add-flow seems to indicate that the default idle time is infinite.

I looked into the ovn-bgp-agent code and I can see where it's calling ovs-ofctl to create the flows, but isn't specifying an OpenFlow version. Based on the man page for ovs-ofcts it seems like ovn-bgp-agent should be specifying a value for --protocols. Only I'm not sure how it is working for the tests in the repro or other actual set ups you and Dan have presumably built.

One last note- in my local.conf for devstack I am specifying an OVS_BRANCH value:
# Pin OVN past bug
# https://bugs.launchpad.net/neutron/+bug/2049488
OVS_BRANCH=4102674b3ecadb0e20e512cc661cddbbc4b3d1f6

But I wouldn't think that matters since by default devstack would just build the latest each time. Plus the build of OVS is also what provides the ovs-ofctl tool. The man page for ovs-ofctl tool says that it defaults to an older version of OpenFlow, OpenFlow 1.0 so it seems like it would be required to included the --protocols flag when operating with an up to date OVS.

This seems like a bug, do you agree?