Tai, Hideyuki <hideyuki.tai@...>
Hi committers of Controller project, Could you review and approve the following patch? https://git.opendaylight.org/gerrit/8842This is a patch for Bug 1338. Due to this bug, flow actions in a flow entry is unexpectedly reordered when using the MD-SAL OF plugin (OF13 plugin), so that an OF switch does not correctly handle packets as intended. Regards, Hideyuki Tai
toggle quoted message
Show quoted text
-----Original Message----- From: openflowjava-dev-bounces@... [mailto:openflowjava-dev-bounces@...] On Behalf Of Shigeru Yasuda Sent: Wednesday, July 09, 2014 00:46 To: colin@... Cc: openflowjava-dev@...; controller-dev@...; kkoushik@...; openflowplugin-dev@...; vtn-dev@... Subject: Re: [openflowjava-dev] [openflowplugin-dev] [controller-dev] Flow actions were reordered. Thanks Colin, But action list I mentioned is in MD-SAL flow, not OF flow. So I pushed a patch that adds "ordered-by user" to MD-SAL action list. https://git.opendaylight.org/gerrit/8842I verified that above patch preserves the order of actions in MD-SAL flow. I think Colin's patch should also be merged because the order of OF action list should be preserved. Regards, -- Shigeru Yasuda On [Tue, 8 Jul 2014 17:58:24 -0500], Colin Dixon <colin@...> wrote: My guess is that this is a bug in openflowjava's (adding openflowjava-dev) openflow-action.yang where they should specify that the list of actions in actions-grouping is ordered-by-user.
Right now it is not: grouping actions-grouping { list action { config false; leaf type { type identityref { base oft:action-base; } } } }
It should be a simple fix.
I've opened a bug here: https://bugs.opendaylight.org/show_bug.cgi?id=1338
I've proposed a simple fix here: https://git.opendaylight.org/gerrit/8830
You can try pulling that and building to see if it fixes your problem.
Cheers, --Colin
On Tue, Jul 8, 2014 at 5:16 PM, Kiran Agrahara Sreenivasa < kkoushik@...> wrote:
If you have the YANG data model, have you tried specifying "ordered-by-user" in the list? Thanks Kiran
-----Original Message----- From: controller-dev-bounces@... [mailto: controller-dev-bounces@...] On Behalf Of Shigeru Yasuda Sent: Tuesday, July 08, 2014 11:18 AM To: controller-dev@...; openflowplugin-dev@...; vtn-dev@... Subject: [controller-dev] Flow actions were reordered.
Hi folks,
I observed that flow actions in a flow entry were reordered unexpectedly when I tested VTN with OF13 plugin.
I configured 3 actions in a flow entry (via sal-compatibility):
action[0]: PUSH_VLAN action[1]: SET_FIELD (VLAN_VID) action[2]: OUTPUT
But above actions were encoded into an OF13 FLOW_MOD as follows:
action[0]: OUTPUT action[1]: PUSH_VLAN action[2]: SET_FIELD (VLAN_VID)
I embedded some trace logs into the controller source, then I observed that flow actions in MD-SAL flow were already reordered when FlowChangeListener.add() was called.
_applyActions=ApplyActions [ _action=[ Action [ _order=2, _key=ActionKey [_order=2], _action=OutputActionCase [ _outputAction=OutputAction [ _outputNodeConnector=Uri [_value=openflow:4:1], augmentation=[] ], augmentation=[] ], augmentation=[] ], Action [ _order=0, _key=ActionKey [_order=0], _action=PushVlanActionCase [ _pushVlanAction=PushVlanAction [ _ethernetType=33024, augmentation=[] ], augmentation=[] ], augmentation=[] ], Action [ _order=1, _key=ActionKey [_order=1], _action=SetVlanIdActionCase [ _setVlanIdAction=SetVlanIdAction [ _vlanId=VlanId [_value=10], augmentation=[] ], augmentation=[] ], augmentation=[] ] ], augmentation=[] ], ...
And I enabled trace logging for BindingToNormalizedNodeCodec class in sal-binding-broker, then I observed that MD-SAL actions were deserialized out of order.
2014-07-09 00:37:40.849 GMT+09:00 [pool-17-thread-1] TRACE \ o.o.c.m.s.b.i.BindingToNormalizedNodeCodec - \ InstanceIdentifier Path Deserialization: [... snipped ..] \
action/(urn:opendaylight:flow:inventory?revision=2013-08-19)output- action
2014-07-09 00:37:40.851 GMT+09:00 [pool-17-thread-1] TRACE \ o.o.c.m.s.b.i.BindingToNormalizedNodeCodec - \ InstanceIdentifier Path Deserialization: [... snipped ..] \
action/(urn:opendaylight:flow:inventory?revision=2013-08-19)set-vla n-id-action
2014-07-09 00:37:40.851 GMT+09:00 [pool-17-thread-1] TRACE \ o.o.c.m.s.b.i.BindingToNormalizedNodeCodec - \ InstanceIdentifier Path Deserialization: [... snipped ..] \
action/(urn:opendaylight:flow:inventory?revision=2013-08-19)push-vl an-action
The order of elements in a YANG data list seems to be unspecified because it may be randomized by deserialization. My understanding is correct? If so, I think openflowplugin should sort MD-SAL actions according to action order (Action.getOrder()) when it converts MD-SAL actions into OF actions.
Regards,
-- Shigeru Yasuda _______________________________________________ controller-dev mailing list controller-dev@... https://lists.opendaylight.org/mailman/listinfo/controller-dev _______________________________________________ openflowplugin-dev mailing list openflowplugin-dev@... https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev
_______________________________________________ openflowjava-dev mailing list openflowjava-dev@... https://lists.opendaylight.org/mailman/listinfo/openflowjava-dev
|