Details
-
Bug
-
Status: Resolved
-
Resolution: Done
-
None
-
None
-
None
-
Operating System: All
Platform: All
-
2664
-
High
Description
According to spec 1.3.x the action buckets are "an ordered list of action buckets, where each action bucket contains a set of
actions to execute and associated parameters". The problem is that these buckets are not ordered, thus when designing an app that involves multiple buckets for, say, fast fail-over, the result is not predictable. This http request:
<group xmlns="urn:opendaylight:flow:inventory">
<group-type>group-ff</group-type>
<buckets>
<bucket>
<action>
<output-action>
<output-node-connector>openflow:1:2</output-node-connector>
</output-action>
<order>0</order>
</action>
<bucket-id>1</bucket-id>
<watch_port>2</watch_port>
</bucket>
<bucket>
<action>
<output-action>
<output-node-connector>openflow:1:3</output-node-connector>
</output-action>
<order>0</order>
</action>
<bucket-id>2</bucket-id>
<watch_port>3</watch_port>
</bucket>
</buckets>
<group-name>Foo</group-name>
<group-id>1</group-id>
</group>
produces this data in the configuration tree:
<group xmlns="urn:opendaylight:flow:inventory">
<group-id>1</group-id>
<buckets>
<bucket>
<bucket-id>2</bucket-id>
<watch_port>3</watch_port>
<action>
<order>0</order>
<output-action>
<output-node-connector>openflow:1:3</output-node-connector>
</output-action>
</action>
</bucket>
<bucket>
<bucket-id>1</bucket-id>
<watch_port>2</watch_port>
<action>
<order>0</order>
<output-action>
<output-node-connector>openflow:1:2</output-node-connector>
</output-action>
</action>
</bucket>
</buckets>
<group-type>group-ff</group-type>
<group-name>Foo</group-name>
<barrier>false</barrier>
</group>
and the message send to the switch contains the buckets as in the data store. This way we cannot create proper paths in a network using groups as we don't know which bucket will be used when.
I suggest a change in the model so that each bucket has an "order" field, much like actions have an order field. Then the OpenFlow pluggin should respect this order and create the proper OF message.