[openstack-dev] [networking-sfc] OpenFlow version to use in the OVS agent

Bernard Cafarelli bcafarel at redhat.com
Tue Sep 20 14:16:26 UTC 2016


In the OVSSfcAgent migration to a L2 agent extension review[1], Igor
Duarte Cardoso noticed a difference on the OpenFlow versions between a
comment and actual code.
In current code [2], we have:
# We need to dump-groups according to group Id,
# which is a feature of OpenFlow1.5
full_args = ["ovs-ofctl", "-O openflow13", cmd, self.br_name

Indeed, only OpenFlow 1.5 and later support dumping a specific group
[3]. Earlier versions of OpenFlow always dump all groups.
So current code will return all groups:
$ sudo ovs-ofctl -O OpenFlow13 dump-groups br-int 1
OFPST_GROUP_DESC reply (OF1.3) (xid=0x2):
 group_id=1,type=select,bucket=actions=set_field:fa:16:3e:05:46:69->eth_dst,resubmit(,5),bucket=actions=set_field:fa:16:3e:cd:b7:7e->eth_dst,resubmit(,5)
 group_id=2,type=select,bucket=actions=set_field:fa:16:3e:2d:f3:28->eth_dst,resubmit(,5)
$ sudo ovs-ofctl -O OpenFlow15 dump-groups br-int 1
OFPST_GROUP_DESC reply (OF1.5) (xid=0x2):
 group_id=1,type=select,bucket=bucket_id:0,actions=set_field:fa:16:3e:05:46:69->eth_dst,resubmit(,5),bucket=bucket_id:1,actions=set_field:fa:16:3e:cd:b7:7e->eth_dst,resubmit(,5)

This code behavior will not change in my extension rewrite, so this
will still have to be fixed. though I am not sure on the solution:
* We can use Openflow 1.5, but its support looks experimental? And
Neutron apparently only uses up to 1.4 (for OVS firewall extension)
* Method to dump a group can "grep" the group ID in the complete dump.
Not as efficient but works with OpenFlow 1.1+
* Use another system to load balance across the port pairs?

Thoughts?
In gerrit, I kept it set to 1.5 (no impact for now as this is still
marked as WIP)

[1]: https://review.openstack.org/#/c/351789
[2]: https://github.com/openstack/networking-sfc/blob/master/networking_sfc/services/sfc/common/ovs_ext_lib.py
[3]: http://openvswitch.org/support/dist-docs/ovs-ofctl.8.txt

-- 
Bernard Cafarelli



More information about the OpenStack-dev mailing list