[openflowplugin-dev] BUG 1020 - Multiple OUPUT actions in the action list of apply-action instruction


Abhijit Kumbhare
 

Thanks Hsin-Yi.


On Thu, May 15, 2014 at 1:37 PM, Hsin-Yi Shen <hshen@...> wrote:
Hi,
We work on the ovsdb project and we find in latest build multiple OUPUT actions are no longer allowed in the action list of apply-action instruction in OF 1.3.
This breaks the broadcast in ovsdb. Although we are not sure the issue is in openflowplugin or openflowjava, we need this bug to be fixed.
We have filed bug 1020 in bugzilla https://bugs.opendaylight.org/show_bug.cgi?id=1020
Could someone  in openflowplugin or openflowjava help fix this bug?
Thanks.

Hsin-Yi
_______________________________________________
openflowplugin-dev mailing list
openflowplugin-dev@...
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev


Michal Polkorab
 

Hi,


I have tested openflowjava and it supports multiple actions of same type in ApplyActions Instruction. However, it looks like the OpenflowpluginTestServiceProvider receives wrong object - as it already contains only one Output action (judging on the description provided in the bug 1020).


Regards

Michal Polkorab


From: Abhijit Kumbhare <abhijitkoss@...>
Sent: 15 May 2014 23:16
To: Hsin-Yi Shen
Cc: openflowjava-dev; Madhu Venugopal; openflowplugin-dev@...
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 - Multiple OUPUT actions in the action list of apply-action instruction
 
Thanks Hsin-Yi.


On Thu, May 15, 2014 at 1:37 PM, Hsin-Yi Shen <hshen@...> wrote:
Hi,
We work on the ovsdb project and we find in latest build multiple OUPUT actions are no longer allowed in the action list of apply-action instruction in OF 1.3.
This breaks the broadcast in ovsdb. Although we are not sure the issue is in openflowplugin or openflowjava, we need this bug to be fixed.
We have filed bug 1020 in bugzilla https://bugs.opendaylight.org/show_bug.cgi?id=1020
Could someone  in openflowplugin or openflowjava help fix this bug?
Thanks.

Hsin-Yi
_______________________________________________
openflowplugin-dev mailing list
openflowplugin-dev@...
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev

MichalPolkoráb

Software Developer


Mlynské Nivy 56 / 821 05 Bratislava / Slovakia
+421 918 378 907
/ michal.polkorab@...
reception: +421 2 206 65 111
/ www.pantheon.sk

logo


Hsin-Yi Shen <hshen@...>
 

Hi Michal,
Thanks for testing the openflowjava. After fixing the test provider code, we now see multiple actions of same type in applyActions Instruction.

But we still see same issue in our OVSDB project using OF 1.3.
While ovsdb code write flows with multiple actions of OUTPUT type,
2014-05-16 18:04:06.147 EDT [pool-18-thread-1] DEBUG o.o.o.n.p.OF13ProviderManager - createOutputPortInstructions() : applyAction ApplyActions [_action=[Action [_order=0, _key=ActionKey [_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction [augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1, _key=ActionKey [_order=1], _action=OutputActionCase [_outputAction=OutputAction [_outputNodeConnector=Uri [_value=openflow:112312004696131:1], augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=2, _key=ActionKey [_order=2], _action=OutputActionCase [_outputAction=OutputAction [_outputNodeConnector=Uri [_value=openflow:112312004696131:3], augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=3, _key=ActionKey [_order=3], _action=OutputActionCase [_outputAction=OutputAction [_outputNodeConnector=Uri [_value=openflow:112312004696131:4], augmentation=[]], augmentation=[]], augmentation=[]]], augmentation=[]]
We only see one output action is actually installed:
[root@control-node logs(keystone_admin)]# ovs-ofctl dump-flows br-int -O OpenFlow13
OFPST_FLOW reply (OF1.3) (xid=0x2):
....
cookie=0x0, duration=1246.988s, table=20, n_packets=26, n_bytes=2644, send_flow_rem priority=16384,dl_vlan=2400,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 actions=strip_vlan,output:1

Other output actions just silently disappear.
Could you suggest where we should check for debugging?
Thanks.

Hsin-Yi

----- Original Message -----
From: "Michal Polkoráb" <michal.polkorab@...>
To: "Abhijit Kumbhare" <abhijitkoss@...>, "Hsin-Yi Shen" <hshen@...>
Cc: "openflowjava-dev" <openflowjava-dev@...>, "Madhu Venugopal" <vmadhu@...>, openflowplugin-dev@...
Sent: Friday, May 16, 2014 3:38:04 AM
Subject: RE: [openflowjava-dev] [openflowplugin-dev] BUG 1020 - Multiple OUPUT actions in the action list of apply-action instruction

Hi,


I have tested openflowjava and it supports multiple actions of same type in ApplyActions Instruction. However, it looks like the OpenflowpluginTestServiceProvider receives wrong object - as it already contains only one Output action (judging on the description provided in the bug 1020).


Regards

Michal Polkorab

________________________________
From: Abhijit Kumbhare <abhijitkoss@...>
Sent: 15 May 2014 23:16
To: Hsin-Yi Shen
Cc: openflowjava-dev; Madhu Venugopal; openflowplugin-dev@...
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 - Multiple OUPUT actions in the action list of apply-action instruction

Thanks Hsin-Yi.


On Thu, May 15, 2014 at 1:37 PM, Hsin-Yi Shen <hshen@...<mailto:hshen@...>> wrote:
Hi,
We work on the ovsdb project and we find in latest build multiple OUPUT actions are no longer allowed in the action list of apply-action instruction in OF 1.3.
This breaks the broadcast in ovsdb. Although we are not sure the issue is in openflowplugin or openflowjava, we need this bug to be fixed.
We have filed bug 1020 in bugzilla https://bugs.opendaylight.org/show_bug.cgi?id=1020
Could someone in openflowplugin or openflowjava help fix this bug?
Thanks.

Hsin-Yi
_______________________________________________
openflowplugin-dev mailing list
openflowplugin-dev@...<mailto:openflowplugin-dev@...>
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev

MichalPolkoráb
Software Developer

Mlynské Nivy 56 / 821 05 Bratislava / Slovakia
+421 918 378 907 / michal.polkorab@...
reception: +421 2 206 65 111 / www.pantheon.sk
[logo]


Michal Polkorab
 

First I would try using wireshark to check the data written to the wire. This way you will know if there is some problem with the device or with the controller.

I would also try to put a Log message into:
- OF13OutputActionSerializer in openflowjava
- ActionConvertor in openflowplugin (in output action case)
and rebuilding the code. When running the distribution there should be three logs for mentioned ApplyActions Instruction.
If there are six log messages, then this should be an issue somewhere out of openflowplugin translation.
If there is less than three messages the bug should be in the openflowplugin, 3-5 messages should be a bug in openflowjava.

Michal
________________________________________
From: Hsin-Yi Shen <hshen@...>
Sent: 16 May 2014 20:24
To: Michal Polkoráb; Flavio Fernandes
Cc: Abhijit Kumbhare; openflowjava-dev; Madhu Venugopal; openflowplugin-dev@...
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 - Multiple OUPUT actions in the action list of apply-action instruction

Hi Michal,
Thanks for testing the openflowjava. After fixing the test provider code, we now see multiple actions of same type in applyActions Instruction.

But we still see same issue in our OVSDB project using OF 1.3.
While ovsdb code write flows with multiple actions of OUTPUT type,
2014-05-16 18:04:06.147 EDT [pool-18-thread-1] DEBUG o.o.o.n.p.OF13ProviderManager - createOutputPortInstructions() : applyAction ApplyActions [_action=[Action [_order=0, _key=ActionKey [_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction [augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1, _key=ActionKey [_order=1], _action=OutputActionCase [_outputAction=OutputAction [_outputNodeConnector=Uri [_value=openflow:112312004696131:1], augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=2, _key=ActionKey [_order=2], _action=OutputActionCase [_outputAction=OutputAction [_outputNodeConnector=Uri [_value=openflow:112312004696131:3], augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=3, _key=ActionKey [_order=3], _action=OutputActionCase [_outputAction=OutputAction [_outputNodeConnector=Uri [_value=openflow:112312004696131:4], augmentation=[]], augmentation=[]], augmentation=[]]], augmentation=[]]
We only see one output action is actually installed:
[root@control-node logs(keystone_admin)]# ovs-ofctl dump-flows br-int -O OpenFlow13
OFPST_FLOW reply (OF1.3) (xid=0x2):
....
cookie=0x0, duration=1246.988s, table=20, n_packets=26, n_bytes=2644, send_flow_rem priority=16384,dl_vlan=2400,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 actions=strip_vlan,output:1

Other output actions just silently disappear.
Could you suggest where we should check for debugging?
Thanks.

Hsin-Yi

----- Original Message -----
From: "Michal Polkoráb" <michal.polkorab@...>
To: "Abhijit Kumbhare" <abhijitkoss@...>, "Hsin-Yi Shen" <hshen@...>
Cc: "openflowjava-dev" <openflowjava-dev@...>, "Madhu Venugopal" <vmadhu@...>, openflowplugin-dev@...
Sent: Friday, May 16, 2014 3:38:04 AM
Subject: RE: [openflowjava-dev] [openflowplugin-dev] BUG 1020 - Multiple OUPUT actions in the action list of apply-action instruction

Hi,


I have tested openflowjava and it supports multiple actions of same type in ApplyActions Instruction. However, it looks like the OpenflowpluginTestServiceProvider receives wrong object - as it already contains only one Output action (judging on the description provided in the bug 1020).


Regards

Michal Polkorab

________________________________
From: Abhijit Kumbhare <abhijitkoss@...>
Sent: 15 May 2014 23:16
To: Hsin-Yi Shen
Cc: openflowjava-dev; Madhu Venugopal; openflowplugin-dev@...
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 - Multiple OUPUT actions in the action list of apply-action instruction

Thanks Hsin-Yi.


On Thu, May 15, 2014 at 1:37 PM, Hsin-Yi Shen <hshen@...<mailto:hshen@...>> wrote:
Hi,
We work on the ovsdb project and we find in latest build multiple OUPUT actions are no longer allowed in the action list of apply-action instruction in OF 1.3.
This breaks the broadcast in ovsdb. Although we are not sure the issue is in openflowplugin or openflowjava, we need this bug to be fixed.
We have filed bug 1020 in bugzilla https://bugs.opendaylight.org/show_bug.cgi?id=1020
Could someone in openflowplugin or openflowjava help fix this bug?
Thanks.

Hsin-Yi
_______________________________________________
openflowplugin-dev mailing list
openflowplugin-dev@...<mailto:openflowplugin-dev@...>
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev

MichalPolkoráb
Software Developer

Mlynské Nivy 56 / 821 05 Bratislava / Slovakia
+421 918 378 907 / michal.polkorab@...
reception: +421 2 206 65 111 / www.pantheon.sk
[logo]
MichalPolkoráb
Software Developer

Mlynské Nivy 56 / 821 05 Bratislava / Slovakia
+421 918 378 907 / michal.polkorab@...
reception: +421 2 206 65 111 / www.pantheon.sk
[logo]


Flavio Fernandes <ffernand@...>
 

Hi folks,

It took me a little playing with, but I did manage to capture the flow mod packet!

https://www.dropbox.com/s/uumgiccue6ksuhi/Screenshot%202014-05-16%2020.25.48.png

From the capture, it is packet #7. You need wireshark 1.11 to see the of 1.3 packets.
From the wireshark output, I see the instruction and the actions as you expected, Hsin-Yi.



&#8212; flavio

On May 16, 2014, at 3:17 PM, Michal Polkoráb <michal.polkorab@...> wrote:

First I would try using wireshark to check the data written to the wire. This way you will know if there is some problem with the device or with the controller.

I would also try to put a Log message into:
- OF13OutputActionSerializer in openflowjava
- ActionConvertor in openflowplugin (in output action case)
and rebuilding the code. When running the distribution there should be three logs for mentioned ApplyActions Instruction.
If there are six log messages, then this should be an issue somewhere out of openflowplugin translation.
If there is less than three messages the bug should be in the openflowplugin, 3-5 messages should be a bug in openflowjava.

Michal
________________________________________
From: Hsin-Yi Shen <hshen@...>
Sent: 16 May 2014 20:24
To: Michal Polkoráb; Flavio Fernandes
Cc: Abhijit Kumbhare; openflowjava-dev; Madhu Venugopal; openflowplugin-dev@...
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 - Multiple OUPUT actions in the action list of apply-action instruction

Hi Michal,
Thanks for testing the openflowjava. After fixing the test provider code, we now see multiple actions of same type in applyActions Instruction.

But we still see same issue in our OVSDB project using OF 1.3.
While ovsdb code write flows with multiple actions of OUTPUT type,
2014-05-16 18:04:06.147 EDT [pool-18-thread-1] DEBUG o.o.o.n.p.OF13ProviderManager - createOutputPortInstructions() : applyAction ApplyActions [_action=[Action [_order=0, _key=ActionKey [_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction [augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1, _key=ActionKey [_order=1], _action=OutputActionCase [_outputAction=OutputAction [_outputNodeConnector=Uri [_value=openflow:112312004696131:1], augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=2, _key=ActionKey [_order=2], _action=OutputActionCase [_outputAction=OutputAction [_outputNodeConnector=Uri [_value=openflow:112312004696131:3], augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=3, _key=ActionKey [_order=3], _action=OutputActionCase [_outputAction=OutputAction [_outputNodeConnector=Uri [_value=openflow:112312004696131:4], augmentation=[]], augmentation=[]], augmentation=[]]], augmentation=[]]
We only see one output action is actually installed:
[root@control-node logs(keystone_admin)]# ovs-ofctl dump-flows br-int -O OpenFlow13
OFPST_FLOW reply (OF1.3) (xid=0x2):
....
cookie=0x0, duration=1246.988s, table=20, n_packets=26, n_bytes=2644, send_flow_rem priority=16384,dl_vlan=2400,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 actions=strip_vlan,output:1

Other output actions just silently disappear.
Could you suggest where we should check for debugging?
Thanks.

Hsin-Yi

----- Original Message -----
From: "Michal Polkoráb" <michal.polkorab@...>
To: "Abhijit Kumbhare" <abhijitkoss@...>, "Hsin-Yi Shen" <hshen@...>
Cc: "openflowjava-dev" <openflowjava-dev@...>, "Madhu Venugopal" <vmadhu@...>, openflowplugin-dev@...
Sent: Friday, May 16, 2014 3:38:04 AM
Subject: RE: [openflowjava-dev] [openflowplugin-dev] BUG 1020 - Multiple OUPUT actions in the action list of apply-action instruction

Hi,


I have tested openflowjava and it supports multiple actions of same type in ApplyActions Instruction. However, it looks like the OpenflowpluginTestServiceProvider receives wrong object - as it already contains only one Output action (judging on the description provided in the bug 1020).


Regards

Michal Polkorab

________________________________
From: Abhijit Kumbhare <abhijitkoss@...>
Sent: 15 May 2014 23:16
To: Hsin-Yi Shen
Cc: openflowjava-dev; Madhu Venugopal; openflowplugin-dev@...
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 - Multiple OUPUT actions in the action list of apply-action instruction

Thanks Hsin-Yi.


On Thu, May 15, 2014 at 1:37 PM, Hsin-Yi Shen <hshen@...<mailto:hshen@...>> wrote:
Hi,
We work on the ovsdb project and we find in latest build multiple OUPUT actions are no longer allowed in the action list of apply-action instruction in OF 1.3.
This breaks the broadcast in ovsdb. Although we are not sure the issue is in openflowplugin or openflowjava, we need this bug to be fixed.
We have filed bug 1020 in bugzilla https://bugs.opendaylight.org/show_bug.cgi?id=1020
Could someone in openflowplugin or openflowjava help fix this bug?
Thanks.

Hsin-Yi
_______________________________________________
openflowplugin-dev mailing list
openflowplugin-dev@...<mailto:openflowplugin-dev@...>
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev

MichalPolkoráb
Software Developer

Mlynské Nivy 56 / 821 05 Bratislava / Slovakia
+421 918 378 907 / michal.polkorab@...
reception: +421 2 206 65 111 / www.pantheon.sk
[logo]
MichalPolkoráb
Software Developer

Mlynské Nivy 56 / 821 05 Bratislava / Slovakia
+421 918 378 907 / michal.polkorab@...
reception: +421 2 206 65 111 / www.pantheon.sk
[logo]


Hsin-Yi Shen <hshen@...>
 

Michal,
I try to add log message in ActionConvertor in openflowplugin (in output action case).
However, after I replace openflowplugin jar file to include this change, the ovsdb porject fail to find OF nodes from switch manager:
2014-05-17 00:22:02.222 EDT [pool-34-thread-1] DEBUG o.o.o.n.provider.OF13ProviderManager - ofNodes []
2014-05-17 00:22:02.222 EDT [pool-34-thread-1] ERROR o.o.o.n.provider.OF13ProviderManager - Unable to find OF Node for 60241621400398 with update Interface [name=qr-020d1bf2-8f, options={}, type=internal, ofport=[5], mac=[], statistics={tx_errors=0, collisions=0, tx_bytes=0, rx_crc_err=0, rx_dropped=0, tx_packets=0, rx_packets=0, rx_over_err=0, tx_dropped=0, rx_frame_err=0, rx_errors=0, rx_bytes=0}, status={driver_name=openvswitch}, other_config={}, external_ids={attached-mac=fa:16:3e:0f:41:1a, iface-status=active, iface-id=020d1bf2-8f32-4a52-87db-60460308ec92}] on node OVS|192.168.122.69:51107

Thus no flow can be added and I can't debug further.

The print nodes result looks OK:
osgi> printNodes
Nodes connected to this controller :
[OVS|192.168.122.23:33969, MD_SAL|openflow:60241621400398, OVS|192.168.122.69:51107]

Is this known issue in Openflowplugin? My openflowplugin repo is with commit c78886b152178e17e225b0ab61f9913b4180f540 at May 5.
Thanks for your help.

Hsin-Yi

----- Original Message -----
From: "Michal Polkoráb" <michal.polkorab@...>
To: "Hsin-Yi Shen" <hshen@...>, "Flavio Fernandes" <ffernand@...>
Cc: "Abhijit Kumbhare" <abhijitkoss@...>, "openflowjava-dev" <openflowjava-dev@...>, "Madhu Venugopal" <vmadhu@...>, openflowplugin-dev@...
Sent: Friday, May 16, 2014 3:17:32 PM
Subject: RE: [openflowjava-dev] [openflowplugin-dev] BUG 1020 - Multiple OUPUT actions in the action list of apply-action instruction

First I would try using wireshark to check the data written to the wire. This way you will know if there is some problem with the device or with the controller.

I would also try to put a Log message into:
- OF13OutputActionSerializer in openflowjava
- ActionConvertor in openflowplugin (in output action case)
and rebuilding the code. When running the distribution there should be three logs for mentioned ApplyActions Instruction.
If there are six log messages, then this should be an issue somewhere out of openflowplugin translation.
If there is less than three messages the bug should be in the openflowplugin, 3-5 messages should be a bug in openflowjava.

Michal
________________________________________
From: Hsin-Yi Shen <hshen@...>
Sent: 16 May 2014 20:24
To: Michal Polkoráb; Flavio Fernandes
Cc: Abhijit Kumbhare; openflowjava-dev; Madhu Venugopal; openflowplugin-dev@...
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 - Multiple OUPUT actions in the action list of apply-action instruction

Hi Michal,
Thanks for testing the openflowjava. After fixing the test provider code, we now see multiple actions of same type in applyActions Instruction.

But we still see same issue in our OVSDB project using OF 1.3.
While ovsdb code write flows with multiple actions of OUTPUT type,
2014-05-16 18:04:06.147 EDT [pool-18-thread-1] DEBUG o.o.o.n.p.OF13ProviderManager - createOutputPortInstructions() : applyAction ApplyActions [_action=[Action [_order=0, _key=ActionKey [_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction [augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1, _key=ActionKey [_order=1], _action=OutputActionCase [_outputAction=OutputAction [_outputNodeConnector=Uri [_value=openflow:112312004696131:1], augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=2, _key=ActionKey [_order=2], _action=OutputActionCase [_outputAction=OutputAction [_outputNodeConnector=Uri [_value=openflow:112312004696131:3], augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=3, _key=ActionKey [_order=3], _action=OutputActionCase [_outputAction=OutputAction [_outputNodeConnector=Uri [_value=openflow:112312004696131:4], augmentation=[]], augmentation=[]], augmentation=[]]], augmentation=[]]
We only see one output action is actually installed:
[root@control-node logs(keystone_admin)]# ovs-ofctl dump-flows br-int -O OpenFlow13
OFPST_FLOW reply (OF1.3) (xid=0x2):
....
cookie=0x0, duration=1246.988s, table=20, n_packets=26, n_bytes=2644, send_flow_rem priority=16384,dl_vlan=2400,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 actions=strip_vlan,output:1

Other output actions just silently disappear.
Could you suggest where we should check for debugging?
Thanks.

Hsin-Yi

----- Original Message -----
From: "Michal Polkoráb" <michal.polkorab@...>
To: "Abhijit Kumbhare" <abhijitkoss@...>, "Hsin-Yi Shen" <hshen@...>
Cc: "openflowjava-dev" <openflowjava-dev@...>, "Madhu Venugopal" <vmadhu@...>, openflowplugin-dev@...
Sent: Friday, May 16, 2014 3:38:04 AM
Subject: RE: [openflowjava-dev] [openflowplugin-dev] BUG 1020 - Multiple OUPUT actions in the action list of apply-action instruction

Hi,


I have tested openflowjava and it supports multiple actions of same type in ApplyActions Instruction. However, it looks like the OpenflowpluginTestServiceProvider receives wrong object - as it already contains only one Output action (judging on the description provided in the bug 1020).


Regards

Michal Polkorab

________________________________
From: Abhijit Kumbhare <abhijitkoss@...>
Sent: 15 May 2014 23:16
To: Hsin-Yi Shen
Cc: openflowjava-dev; Madhu Venugopal; openflowplugin-dev@...
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 - Multiple OUPUT actions in the action list of apply-action instruction

Thanks Hsin-Yi.


On Thu, May 15, 2014 at 1:37 PM, Hsin-Yi Shen <hshen@...<mailto:hshen@...>> wrote:
Hi,
We work on the ovsdb project and we find in latest build multiple OUPUT actions are no longer allowed in the action list of apply-action instruction in OF 1.3.
This breaks the broadcast in ovsdb. Although we are not sure the issue is in openflowplugin or openflowjava, we need this bug to be fixed.
We have filed bug 1020 in bugzilla https://bugs.opendaylight.org/show_bug.cgi?id=1020
Could someone in openflowplugin or openflowjava help fix this bug?
Thanks.

Hsin-Yi
_______________________________________________
openflowplugin-dev mailing list
openflowplugin-dev@...<mailto:openflowplugin-dev@...>
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev

MichalPolkoráb
Software Developer

Mlynské Nivy 56 / 821 05 Bratislava / Slovakia
+421 918 378 907 / michal.polkorab@...
reception: +421 2 206 65 111 / www.pantheon.sk
[logo]
MichalPolkoráb
Software Developer

Mlynské Nivy 56 / 821 05 Bratislava / Slovakia
+421 918 378 907 / michal.polkorab@...
reception: +421 2 206 65 111 / www.pantheon.sk
[logo]


Hsin-Yi Shen <hshen@...>
 

Flavio,
Looks like you tried test provider. Do you try wireshark with openstack-ovsdb integreation?

Hsin-Yi

----- Original Message -----
From: "Flavio Fernandes" <ffernand@...>
To: "Michal Polkoráb" <michal.polkorab@...>
Cc: "Hsin-Yi Shen" <hshen@...>, "Abhijit Kumbhare" <abhijitkoss@...>, "openflowjava-dev" <openflowjava-dev@...>, "Madhu Venugopal" <vmadhu@...>, openflowplugin-dev@...
Sent: Friday, May 16, 2014 8:28:38 PM
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 - Multiple OUPUT actions in the action list of apply-action instruction


Hi folks,

It took me a little playing with, but I did manage to capture the flow mod packet!

https://www.dropbox.com/s/uumgiccue6ksuhi/Screenshot%202014-05-16%2020.25.48.png

From the capture, it is packet #7. You need wireshark 1.11 to see the of 1.3 packets.
From the wireshark output, I see the instruction and the actions as you expected, Hsin-Yi.




— flavio


On May 16, 2014, at 3:17 PM, Michal Polkoráb <michal.polkorab@...> wrote:

First I would try using wireshark to check the data written to the wire. This way you will know if there is some problem with the device or with the controller.

I would also try to put a Log message into:
- OF13OutputActionSerializer in openflowjava
- ActionConvertor in openflowplugin (in output action case)
and rebuilding the code. When running the distribution there should be three logs for mentioned ApplyActions Instruction.
If there are six log messages, then this should be an issue somewhere out of openflowplugin translation.
If there is less than three messages the bug should be in the openflowplugin, 3-5 messages should be a bug in openflowjava.

Michal
________________________________________
From: Hsin-Yi Shen <hshen@...>
Sent: 16 May 2014 20:24
To: Michal Polkoráb; Flavio Fernandes
Cc: Abhijit Kumbhare; openflowjava-dev; Madhu Venugopal; openflowplugin-dev@...
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 - Multiple OUPUT actions in the action list of apply-action instruction

Hi Michal,
Thanks for testing the openflowjava. After fixing the test provider code, we now see multiple actions of same type in applyActions Instruction.

But we still see same issue in our OVSDB project using OF 1.3.
While ovsdb code write flows with multiple actions of OUTPUT type,
2014-05-16 18:04:06.147 EDT [pool-18-thread-1] DEBUG o.o.o.n.p.OF13ProviderManager - createOutputPortInstructions() : applyAction ApplyActions [_action=[Action [_order=0, _key=ActionKey [_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction [augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1, _key=ActionKey [_order=1], _action=OutputActionCase [_outputAction=OutputAction [_outputNodeConnector=Uri [_value=openflow:112312004696131:1], augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=2, _key=ActionKey [_order=2], _action=OutputActionCase [_outputAction=OutputAction [_outputNodeConnector=Uri [_value=openflow:112312004696131:3], augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=3, _key=ActionKey [_order=3], _action=OutputActionCase [_outputAction=OutputAction [_outputNodeConnector=Uri [_value=openflow:112312004696131:4], augmentation=[]], augmentation=[]], augmentation=[]]], augmentation=[]]
We only see one output action is actually installed:
[root@control-node logs(keystone_admin)]# ovs-ofctl dump-flows br-int -O OpenFlow13
OFPST_FLOW reply (OF1.3) (xid=0x2):
....
cookie=0x0, duration=1246.988s, table=20, n_packets=26, n_bytes=2644, send_flow_rem priority=16384,dl_vlan=2400,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 actions=strip_vlan,output:1

Other output actions just silently disappear.
Could you suggest where we should check for debugging?
Thanks.

Hsin-Yi

----- Original Message -----
From: "Michal Polkoráb" <michal.polkorab@...>
To: "Abhijit Kumbhare" <abhijitkoss@...>, "Hsin-Yi Shen" <hshen@...>
Cc: "openflowjava-dev" <openflowjava-dev@...>, "Madhu Venugopal" <vmadhu@...>, openflowplugin-dev@...
Sent: Friday, May 16, 2014 3:38:04 AM
Subject: RE: [openflowjava-dev] [openflowplugin-dev] BUG 1020 - Multiple OUPUT actions in the action list of apply-action instruction

Hi,


I have tested openflowjava and it supports multiple actions of same type in ApplyActions Instruction. However, it looks like the OpenflowpluginTestServiceProvider receives wrong object - as it already contains only one Output action (judging on the description provided in the bug 1020).


Regards

Michal Polkorab

________________________________
From: Abhijit Kumbhare <abhijitkoss@...>
Sent: 15 May 2014 23:16
To: Hsin-Yi Shen
Cc: openflowjava-dev; Madhu Venugopal; openflowplugin-dev@...
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 - Multiple OUPUT actions in the action list of apply-action instruction

Thanks Hsin-Yi.


On Thu, May 15, 2014 at 1:37 PM, Hsin-Yi Shen <hshen@...<mailto:hshen@...>> wrote:
Hi,
We work on the ovsdb project and we find in latest build multiple OUPUT actions are no longer allowed in the action list of apply-action instruction in OF 1.3.
This breaks the broadcast in ovsdb. Although we are not sure the issue is in openflowplugin or openflowjava, we need this bug to be fixed.
We have filed bug 1020 in bugzilla https://bugs.opendaylight.org/show_bug.cgi?id=1020
Could someone in openflowplugin or openflowjava help fix this bug?
Thanks.

Hsin-Yi
_______________________________________________
openflowplugin-dev mailing list
openflowplugin-dev@...<mailto:openflowplugin-dev@...>
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev

MichalPolkoráb
Software Developer

Mlynské Nivy 56 / 821 05 Bratislava / Slovakia
+421 918 378 907 / michal.polkorab@...
reception: +421 2 206 65 111 / www.pantheon.sk
[logo]
MichalPolkoráb
Software Developer

Mlynské Nivy 56 / 821 05 Bratislava / Slovakia
+421 918 378 907 / michal.polkorab@...
reception: +421 2 206 65 111 / www.pantheon.sk
[logo]


Flavio Fernandes <ffernand@...>
 

Hi Hsin-Yi,

You are right. This is using the test provider. I don’t really know how to do it thru openstack-ovsdb…. yet. :)

— flavio

On May 16, 2014, at 8:37 PM, Hsin-Yi Shen <hshen@...> wrote:

Flavio,
Looks like you tried test provider. Do you try wireshark with openstack-ovsdb integreation?

Hsin-Yi

----- Original Message -----
From: "Flavio Fernandes" <ffernand@...>
To: "Michal Polkoráb" <michal.polkorab@...>
Cc: "Hsin-Yi Shen" <hshen@...>, "Abhijit Kumbhare" <abhijitkoss@...>, "openflowjava-dev" <openflowjava-dev@...>, "Madhu Venugopal" <vmadhu@...>, openflowplugin-dev@...
Sent: Friday, May 16, 2014 8:28:38 PM
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 - Multiple OUPUT actions in the action list of apply-action instruction


Hi folks,

It took me a little playing with, but I did manage to capture the flow mod packet!

https://www.dropbox.com/s/uumgiccue6ksuhi/Screenshot%202014-05-16%2020.25.48.png

From the capture, it is packet #7. You need wireshark 1.11 to see the of 1.3 packets.
From the wireshark output, I see the instruction and the actions as you expected, Hsin-Yi.




— flavio


On May 16, 2014, at 3:17 PM, Michal Polkoráb <michal.polkorab@...> wrote:

First I would try using wireshark to check the data written to the wire. This way you will know if there is some problem with the device or with the controller.

I would also try to put a Log message into:
- OF13OutputActionSerializer in openflowjava
- ActionConvertor in openflowplugin (in output action case)
and rebuilding the code. When running the distribution there should be three logs for mentioned ApplyActions Instruction.
If there are six log messages, then this should be an issue somewhere out of openflowplugin translation.
If there is less than three messages the bug should be in the openflowplugin, 3-5 messages should be a bug in openflowjava.

Michal
________________________________________
From: Hsin-Yi Shen <hshen@...>
Sent: 16 May 2014 20:24
To: Michal Polkoráb; Flavio Fernandes
Cc: Abhijit Kumbhare; openflowjava-dev; Madhu Venugopal; openflowplugin-dev@...
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 - Multiple OUPUT actions in the action list of apply-action instruction

Hi Michal,
Thanks for testing the openflowjava. After fixing the test provider code, we now see multiple actions of same type in applyActions Instruction.

But we still see same issue in our OVSDB project using OF 1.3.
While ovsdb code write flows with multiple actions of OUTPUT type,
2014-05-16 18:04:06.147 EDT [pool-18-thread-1] DEBUG o.o.o.n.p.OF13ProviderManager - createOutputPortInstructions() : applyAction ApplyActions [_action=[Action [_order=0, _key=ActionKey [_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction [augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1, _key=ActionKey [_order=1], _action=OutputActionCase [_outputAction=OutputAction [_outputNodeConnector=Uri [_value=openflow:112312004696131:1], augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=2, _key=ActionKey [_order=2], _action=OutputActionCase [_outputAction=OutputAction [_outputNodeConnector=Uri [_value=openflow:112312004696131:3], augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=3, _key=ActionKey [_order=3], _action=OutputActionCase [_outputAction=OutputAction [_outputNodeConnector=Uri [_value=openflow:112312004696131:4], augmentation=[]], augmentation=[]], augmentation=[]]], augmentation=[]]
We only see one output action is actually installed:
[root@control-node logs(keystone_admin)]# ovs-ofctl dump-flows br-int -O OpenFlow13
OFPST_FLOW reply (OF1.3) (xid=0x2):
....
cookie=0x0, duration=1246.988s, table=20, n_packets=26, n_bytes=2644, send_flow_rem priority=16384,dl_vlan=2400,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 actions=strip_vlan,output:1

Other output actions just silently disappear.
Could you suggest where we should check for debugging?
Thanks.

Hsin-Yi

----- Original Message -----
From: "Michal Polkoráb" <michal.polkorab@...>
To: "Abhijit Kumbhare" <abhijitkoss@...>, "Hsin-Yi Shen" <hshen@...>
Cc: "openflowjava-dev" <openflowjava-dev@...>, "Madhu Venugopal" <vmadhu@...>, openflowplugin-dev@...
Sent: Friday, May 16, 2014 3:38:04 AM
Subject: RE: [openflowjava-dev] [openflowplugin-dev] BUG 1020 - Multiple OUPUT actions in the action list of apply-action instruction

Hi,


I have tested openflowjava and it supports multiple actions of same type in ApplyActions Instruction. However, it looks like the OpenflowpluginTestServiceProvider receives wrong object - as it already contains only one Output action (judging on the description provided in the bug 1020).


Regards

Michal Polkorab

________________________________
From: Abhijit Kumbhare <abhijitkoss@...>
Sent: 15 May 2014 23:16
To: Hsin-Yi Shen
Cc: openflowjava-dev; Madhu Venugopal; openflowplugin-dev@...
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 - Multiple OUPUT actions in the action list of apply-action instruction

Thanks Hsin-Yi.


On Thu, May 15, 2014 at 1:37 PM, Hsin-Yi Shen <hshen@...<mailto:hshen@...>> wrote:
Hi,
We work on the ovsdb project and we find in latest build multiple OUPUT actions are no longer allowed in the action list of apply-action instruction in OF 1.3.
This breaks the broadcast in ovsdb. Although we are not sure the issue is in openflowplugin or openflowjava, we need this bug to be fixed.
We have filed bug 1020 in bugzilla https://bugs.opendaylight.org/show_bug.cgi?id=1020
Could someone in openflowplugin or openflowjava help fix this bug?
Thanks.

Hsin-Yi
_______________________________________________
openflowplugin-dev mailing list
openflowplugin-dev@...<mailto:openflowplugin-dev@...>
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev

MichalPolkoráb
Software Developer

Mlynské Nivy 56 / 821 05 Bratislava / Slovakia
+421 918 378 907 / michal.polkorab@...
reception: +421 2 206 65 111 / www.pantheon.sk
[logo]
MichalPolkoráb
Software Developer

Mlynské Nivy 56 / 821 05 Bratislava / Slovakia
+421 918 378 907 / michal.polkorab@...
reception: +421 2 206 65 111 / www.pantheon.sk
[logo]


Brent Salisbury
 

Hsin-Yi, could you verify the flowmods and errors below. Im pretty sure
the other thread is all related. Also are you using the latest Jenkins
virtualization build? I just want to verify you are chasing the same thing
I have been.

I could dump hundreds of thousands of lines of logs from debugging all
weekend but at this point I think the root is related to the following but
Ive also thought I had it figured out every few hours this weekend.
------------------------------------------------------------

java.lang.NullPointerException: List node
(urn:opendaylight:flow:inventory?revision=2013-08-19)action MUST contain
leaf (urn:opendaylight:flow:inventory?revision=2013-08-19)order with value.
at
com.google.common.base.Preconditions.checkNotNull(Preconditions.java:235)
~[na:na]
at
org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizatio
nOperation$ListItemNormalization.createBuilder(DataNormalizationOperation.j
ava:280) ~[na:na]
at
org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizatio
nOperation$CompositeNodeNormalizationOperation.normalize(DataNormalizationO
peration.java:167) ~[na:na]
at
org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizatio
nOperation$CompositeNodeNormalizationOperation.normalize(DataNormalizationO
peration.java:196) ~[na:na]
at
org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizatio
nOperation$CompositeNodeNormalizationOperation.normalize(DataNormalizationO
peration.java:193) ~[na:na]
at
org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizatio
nOperation$CompositeNodeNormalizationOperation.normalize(DataNormalizationO
peration.java:196) ~[na:na]
at
org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizatio
nOperation$CompositeNodeNormalizationOperation.normalize(DataNormalizationO
peration.java:193) ~[na:na]
at
org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizatio
nOperation$CompositeNodeNormalizationOperation.normalize(DataNormalizationO
peration.java:196) ~[na:na]
at
org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizatio
nOperation$CompositeNodeNormalizationOperation.normalize(DataNormalizationO
peration.java:193) ~[na:na]
at
org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizatio
nOperation$CompositeNodeNormalizationOperation.normalize(DataNormalizationO
peration.java:196) ~[na:na]
at
org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizer.t
oNormalized(DataNormalizer.java:115) ~[na:na]
at
org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizer.t
oNormalized(DataNormalizer.java:76) ~[na:na]
at
org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCode
c.toNormalizedNode(BindingToNormalizedNodeCodec.java:86) ~[na:na]
at
org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCode
c.toNormalizedNode(BindingToNormalizedNodeCodec.java:78) ~[na:na]
at
org.opendaylight.controller.md.sal.binding.impl.AbstractForwardedTransactio
n.doMergeWithEnsureParents(AbstractForwardedTransaction.java:123) ~[na:na]
at
org.opendaylight.controller.md.sal.binding.impl.ForwardedBackwardsCompatibl
eDataBroker$ForwardedBackwardsCompatibleTransacion.putOperationalData(Forwa
rdedBackwardsCompatibleDataBroker.java:226) ~[na:na]
at
org.opendaylight.controller.md.sal.binding.impl.ForwardedBackwardsCompatibl
eDataBroker$ForwardedBackwardsCompatibleTransacion.putOperationalData(Forwa
rdedBackwardsCompatibleDataBroker.java:195) ~[na:na]
at
org.opendaylight.ovsdb.neutron.provider.OF13ProviderManager.writeFlow(OF13P
roviderManager.java:1593) [bundlefile:na]
at
org.opendaylight.ovsdb.neutron.provider.OF13ProviderManager.handleLocalTabl
eMiss(OF13ProviderManager.java:1549) [bundlefile:na]
at
org.opendaylight.ovsdb.neutron.provider.OF13ProviderManager.programLocalBri
dgeRules(OF13ProviderManager.java:304) [bundlefile:na]
at
org.opendaylight.ovsdb.neutron.provider.OF13ProviderManager.programLocalRul
es(OF13ProviderManager.java:568) [bundlefile:na]
at
org.opendaylight.ovsdb.neutron.provider.OF13ProviderManager.handleInterface
Update(OF13ProviderManager.java:785) [bundlefile:na]
at
org.opendaylight.ovsdb.neutron.SouthboundHandler.handleInterfaceUpdate(Sout
hboundHandler.java:258) [bundlefile:na]
at
org.opendaylight.ovsdb.neutron.SouthboundHandler.processRowUpdate(Southboun
dHandler.java:217) [bundlefile:na]
at
org.opendaylight.ovsdb.neutron.SouthboundHandler.access$100(SouthboundHandl
er.java:38) [bundlefile:na]
at
org.opendaylight.ovsdb.neutron.SouthboundHandler$1.run(SouthboundHandler.ja
va:73) [bundlefile:na]
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
[na:1.7.0_55]
at java.util.concurrent.FutureTask.run(FutureTask.java:262) [na:1.7.0_55]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1
145) [na:1.7.0_55]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:
615) [na:1.7.0_55]
at java.lang.Thread.run(Thread.java:745) [na:1.7.0_55]
-------------------------------------------------------


I don¹t see any SetFields working. I beleive TunnelID uses the Metadata
fields in the match in OFJava but match entries for it work. "action MUST
contain leaf (urn:opendaylight:flow:inventory?revision=2013-08-19)order
with value." makes it sound as if it would be node related, but URIs,
DPIDs etc all checkout.

I pulled old controller builds from hydrogen and ran the OVSDB plugin
trunk against it and it works as desired. Here are the flowmods that are
produced:
--------
OFPST_FLOW reply (OF1.3) (xid=0x2):
cookie=0x0, duration=95.371s, table=0, n_packets=0, n_bytes=0,
send_flow_rem in_port=1,dl_src=fa:16:3e:15:b4:5f
actions=set_field:0x1->tun_id,goto_table:10
cookie=0x0, duration=95.208s, table=0, n_packets=0, n_bytes=0,
send_flow_rem in_port=1,dl_src=fa:16:3e:23:c2:e2
actions=set_field:0x2->tun_id,goto_table:10
cookie=0x0, duration=95.353s, table=0, n_packets=0, n_bytes=0,
send_flow_rem priority=8192,in_port=1 actions=drop
cookie=0x0, duration=95.523s, table=0, n_packets=0, n_bytes=0,
send_flow_rem dl_type=0x88cc actions=CONTROLLER:56


cookie=0x0, duration=95.262s, table=10, n_packets=0, n_bytes=0,
send_flow_rem priority=8192,tun_id=0x1 actions=goto_table:20
cookie=0x0, duration=95.048s, table=10, n_packets=0, n_bytes=0,
send_flow_rem priority=8192,tun_id=0x2 actions=goto_table:20

cookie=0x0, duration=95.234s, table=20, n_packets=0, n_bytes=0,
send_flow_rem priority=8192,tun_id=0x1 actions=drop
cookie=0x0, duration=94.996s, table=20, n_packets=0, n_bytes=0,
send_flow_rem priority=8192,tun_id=0x2 actions=drop
cookie=0x0, duration=95.264s, table=20, n_packets=0, n_bytes=0,
send_flow_rem
priority=16384,tun_id=0x1,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
actions=output:1
cookie=0x0, duration=95.078s, table=20, n_packets=0, n_bytes=0,
send_flow_rem
priority=16384,tun_id=0x2,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
actions=output:1
cookie=0x0, duration=95.346s, table=20, n_packets=0, n_bytes=0,
send_flow_rem tun_id=0x1,dl_dst=fa:16:3e:15:b4:5f actions=output:1
cookie=0x0, duration=95.1s, table=20, n_packets=0, n_bytes=0,
send_flow_rem tun_id=0x2,dl_dst=fa:16:3e:23:c2:e2 actions=output:1


When I run against the current Virtualization build,
https://jenkins.opendaylight.org/integration/job/integration-verify-distrib
utions/ here are the flowmods produced:
-------
cookie=0x0, duration=1514.806s, table=0, n_packets=0, n_bytes=0,
send_flow_rem tun_id=0x582,in_port=2 actions=goto_table:20
cookie=0x0, duration=1844.820s, table=0, n_packets=662, n_bytes=60242,
send_flow_rem dl_type=0x88cc actions=CONTROLLER:0

cookie=0x0, duration=728.014s, table=10, n_packets=0, n_bytes=0,
send_flow_rem tun_id=0x582,dl_dst=fa:16:3e:d0:94:f6
actions=output:2,goto_table:20
cookie=0x0, duration=1515.501s, table=10, n_packets=0, n_bytes=0,
send_flow_rem tun_id=0x582,dl_dst=fa:16:3e:d8:c9:8d
actions=output:2,goto_table:20
cookie=0x0, duration=1790.462s, table=10, n_packets=0, n_bytes=0,
send_flow_rem tun_id=0x2,dl_dst=fa:16:3e:51:18:64
actions=output:1,goto_table:20
cookie=0x0, duration=1790.440s, table=10, n_packets=0, n_bytes=0,
send_flow_rem tun_id=0x1,dl_dst=fa:16:3e:0b:69:8a
actions=output:1,goto_table:20
cookie=0x0, duration=1514.791s, table=10, n_packets=0, n_bytes=0,
send_flow_rem
priority=16384,tun_id=0x582,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
actions=output:2,goto_table:20
‹‹

I don¹t know how long it has been broken, but the only thing I can come up
with after 2.5 straight days is to start rolling back Controller patches
until things work again. The MD_SAL logs are too generic to give a laymen
much to go on other then maybe the model error earlier.

16GB of memory is abused by running the OpenStack VMs and ODL controller
so a remote debug in my IDE isn¹t an option. Going to find something to
run OpenStack on or if anyone else has OpenStack on a separate machine to
try and get a remote OSGI debug to try and catch where in the controller
this bombs.

Keep in mind, all of the "Deserializer msgVersion: 4 msgType: 1 msgType2:
31" are just v6 punts to the controller that OVS and ODL aren¹t agreeing
upon the struct. They punt since as Michal pointed out there is not an
implicit drop. You can install one into OVS in each table using the client
if you don¹t want to see them.

---
java.lang.NullPointerException: Deserializer for key: msgVersion: 4 class:
org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fi
elds.grouping.MatchEntries msgType: 1 msgType2: 31 was not found

Here are verbose logs if someone can verify they see the same issue with
Neutron integration flowmods using the Virtualization Jenkins build.
https://gist.github.com/7fa9c181d830ee3259e0

Later,
-Brent

On 5/16/14, 8:40 PM, "Flavio Fernandes" <ffernand@...> wrote:

Hi Hsin-Yi,

You are right. This is using the test provider. I don¹t really know how
to do it thru openstack-ovsdbŠ. yet. :)

‹ flavio


On May 16, 2014, at 8:37 PM, Hsin-Yi Shen <hshen@...> wrote:

Flavio,
Looks like you tried test provider. Do you try wireshark with
openstack-ovsdb integreation?

Hsin-Yi

----- Original Message -----
From: "Flavio Fernandes" <ffernand@...>
To: "Michal Polkoráb" <michal.polkorab@...>
Cc: "Hsin-Yi Shen" <hshen@...>, "Abhijit Kumbhare"
<abhijitkoss@...>, "openflowjava-dev"
<openflowjava-dev@...>, "Madhu Venugopal"
<vmadhu@...>, openflowplugin-dev@...
Sent: Friday, May 16, 2014 8:28:38 PM
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
Multiple OUPUT actions in the action list of apply-action instruction


Hi folks,

It took me a little playing with, but I did manage to capture the flow
mod packet!


https://www.dropbox.com/s/uumgiccue6ksuhi/Screenshot%202014-05-16%2020.25
.48.png

From the capture, it is packet #7. You need wireshark 1.11 to see the
of 1.3 packets.
From the wireshark output, I see the instruction and the actions as you
expected, Hsin-Yi.




‹ flavio


On May 16, 2014, at 3:17 PM, Michal Polkoráb
<michal.polkorab@...> wrote:

First I would try using wireshark to check the data written to the
wire. This way you will know if there is some problem with the device
or with the controller.

I would also try to put a Log message into:
- OF13OutputActionSerializer in openflowjava
- ActionConvertor in openflowplugin (in output action case)
and rebuilding the code. When running the distribution there should be
three logs for mentioned ApplyActions Instruction.
If there are six log messages, then this should be an issue somewhere
out of openflowplugin translation.
If there is less than three messages the bug should be in the
openflowplugin, 3-5 messages should be a bug in openflowjava.

Michal
________________________________________
From: Hsin-Yi Shen <hshen@...>
Sent: 16 May 2014 20:24
To: Michal Polkoráb; Flavio Fernandes
Cc: Abhijit Kumbhare; openflowjava-dev; Madhu Venugopal;
openflowplugin-dev@...
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
Multiple OUPUT actions in the action list of apply-action instruction

Hi Michal,
Thanks for testing the openflowjava. After fixing the test provider
code, we now see multiple actions of same type in applyActions
Instruction.

But we still see same issue in our OVSDB project using OF 1.3.
While ovsdb code write flows with multiple actions of OUTPUT type,
2014-05-16 18:04:06.147 EDT [pool-18-thread-1] DEBUG
o.o.o.n.p.OF13ProviderManager - createOutputPortInstructions() :
applyAction ApplyActions [_action=[Action [_order=0, _key=ActionKey
[_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
[augmentation=[]], augmentation=[]], augmentation=[]], Action
[_order=1, _key=ActionKey [_order=1], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:112312004696131:1], augmentation=[]],
augmentation=[]], augmentation=[]], Action [_order=2, _key=ActionKey
[_order=2], _action=OutputActionCase [_outputAction=OutputAction
[_outputNodeConnector=Uri [_value=openflow:112312004696131:3],
augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=3,
_key=ActionKey [_order=3], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:112312004696131:4], augmentation=[]],
augmentation=[]], augmentation=[]]], augmentation=[]]
We only see one output action is actually installed:
[root@control-node logs(keystone_admin)]# ovs-ofctl dump-flows br-int
-O OpenFlow13
OFPST_FLOW reply (OF1.3) (xid=0x2):
....
cookie=0x0, duration=1246.988s, table=20, n_packets=26, n_bytes=2644,
send_flow_rem
priority=16384,dl_vlan=2400,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
actions=strip_vlan,output:1

Other output actions just silently disappear.
Could you suggest where we should check for debugging?
Thanks.

Hsin-Yi

----- Original Message -----
From: "Michal Polkoráb" <michal.polkorab@...>
To: "Abhijit Kumbhare" <abhijitkoss@...>, "Hsin-Yi Shen"
<hshen@...>
Cc: "openflowjava-dev" <openflowjava-dev@...>,
"Madhu Venugopal" <vmadhu@...>,
openflowplugin-dev@...
Sent: Friday, May 16, 2014 3:38:04 AM
Subject: RE: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
Multiple OUPUT actions in the action list of apply-action instruction

Hi,


I have tested openflowjava and it supports multiple actions of same
type in ApplyActions Instruction. However, it looks like the
OpenflowpluginTestServiceProvider receives wrong object - as it already
contains only one Output action (judging on the description provided in
the bug 1020).


Regards

Michal Polkorab

________________________________
From: Abhijit Kumbhare <abhijitkoss@...>
Sent: 15 May 2014 23:16
To: Hsin-Yi Shen
Cc: openflowjava-dev; Madhu Venugopal;
openflowplugin-dev@...
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
Multiple OUPUT actions in the action list of apply-action instruction

Thanks Hsin-Yi.


On Thu, May 15, 2014 at 1:37 PM, Hsin-Yi Shen
<hshen@...<mailto:hshen@...>> wrote:
Hi,
We work on the ovsdb project and we find in latest build multiple
OUPUT actions are no longer allowed in the action list of apply-action
instruction in OF 1.3.
This breaks the broadcast in ovsdb. Although we are not sure the issue
is in openflowplugin or openflowjava, we need this bug to be fixed.
We have filed bug 1020 in bugzilla
https://bugs.opendaylight.org/show_bug.cgi?id=1020
Could someone in openflowplugin or openflowjava help fix this bug?
Thanks.

Hsin-Yi
_______________________________________________
openflowplugin-dev mailing list

openflowplugin-dev@...<mailto:openflowplugin-dev@list
s.opendaylight.org>
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev

MichalPolkoráb
Software Developer

Mlynské Nivy 56 / 821 05 Bratislava / Slovakia
+421 918 378 907 / michal.polkorab@...
reception: +421 2 206 65 111 / www.pantheon.sk
[logo]
MichalPolkoráb
Software Developer

Mlynské Nivy 56 / 821 05 Bratislava / Slovakia
+421 918 378 907 / michal.polkorab@...
reception: +421 2 206 65 111 / www.pantheon.sk
[logo]
_______________________________________________
openflowplugin-dev mailing list
openflowplugin-dev@...
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev


Hsin-Yi Shen <hshen@...>
 

Hi Brent,
My is Apr 25 Virtualization build and I see the same issue on ovsdb using OF13 while verifying vlan features.
The issue is from the putOperationalData() in our writeFlow() and removeFlow() method in OF13Provider.java of ovsdb project.

I checked testProvider in openflowplugin and find they only put configuration Data when writing flow and remove flow.
SO I change our writeFlow() method in OF13provider.java to be same as testProvider methods:
//modification.putOperationalData(nodeBuilderToInstanceId(nodeBuilder), nodeBuilder.build());
//modification.putOperationalData(path1, flowBuilder.build());
modification.putConfigurationData(nodeBuilderToInstanceId(nodeBuilder), nodeBuilder.build());
modification.putConfigurationData(path1, flowBuilder.build());
And did similar change in removeFlow() too. The change is included in https://git.opendaylight.org/gerrit/#/c/6150/

After this change, I see all flows are added and removed properly. The only problem left is the multiple OUTPUT actions missing as discussed in previous e-mail.
I am not md-sal expert and I don't know why only putting configuration data solves this issue.
I can only say this works for me.

Hsin-Yi

----- Original Message -----
From: "Brent Salisbury" <brent.salisbury@...>
To: "Flavio Fernandes" <ffernand@...>, "Hsin-Yi Shen" <hshen@...>, "openflowjava-dev" <openflowjava-dev@...>, openflowplugin-dev@..., "Madhu Venugopal" <vmadhu@...>
Sent: Monday, May 19, 2014 12:05:18 AM
Subject: Re: [openflowplugin-dev] [openflowjava-dev] BUG 1020 - Multiple OUPUT actions in the action list of apply-action instruction


Hsin-Yi, could you verify the flowmods and errors below. Im pretty sure
the other thread is all related. Also are you using the latest Jenkins
virtualization build? I just want to verify you are chasing the same thing
I have been.

I could dump hundreds of thousands of lines of logs from debugging all
weekend but at this point I think the root is related to the following but
Ive also thought I had it figured out every few hours this weekend.
------------------------------------------------------------

java.lang.NullPointerException: List node
(urn:opendaylight:flow:inventory?revision=2013-08-19)action MUST contain
leaf (urn:opendaylight:flow:inventory?revision=2013-08-19)order with value.
at
com.google.common.base.Preconditions.checkNotNull(Preconditions.java:235)
~[na:na]
at
org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizatio
nOperation$ListItemNormalization.createBuilder(DataNormalizationOperation.j
ava:280) ~[na:na]
at
org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizatio
nOperation$CompositeNodeNormalizationOperation.normalize(DataNormalizationO
peration.java:167) ~[na:na]
at
org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizatio
nOperation$CompositeNodeNormalizationOperation.normalize(DataNormalizationO
peration.java:196) ~[na:na]
at
org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizatio
nOperation$CompositeNodeNormalizationOperation.normalize(DataNormalizationO
peration.java:193) ~[na:na]
at
org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizatio
nOperation$CompositeNodeNormalizationOperation.normalize(DataNormalizationO
peration.java:196) ~[na:na]
at
org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizatio
nOperation$CompositeNodeNormalizationOperation.normalize(DataNormalizationO
peration.java:193) ~[na:na]
at
org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizatio
nOperation$CompositeNodeNormalizationOperation.normalize(DataNormalizationO
peration.java:196) ~[na:na]
at
org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizatio
nOperation$CompositeNodeNormalizationOperation.normalize(DataNormalizationO
peration.java:193) ~[na:na]
at
org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizatio
nOperation$CompositeNodeNormalizationOperation.normalize(DataNormalizationO
peration.java:196) ~[na:na]
at
org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizer.t
oNormalized(DataNormalizer.java:115) ~[na:na]
at
org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizer.t
oNormalized(DataNormalizer.java:76) ~[na:na]
at
org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCode
c.toNormalizedNode(BindingToNormalizedNodeCodec.java:86) ~[na:na]
at
org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCode
c.toNormalizedNode(BindingToNormalizedNodeCodec.java:78) ~[na:na]
at
org.opendaylight.controller.md.sal.binding.impl.AbstractForwardedTransactio
n.doMergeWithEnsureParents(AbstractForwardedTransaction.java:123) ~[na:na]
at
org.opendaylight.controller.md.sal.binding.impl.ForwardedBackwardsCompatibl
eDataBroker$ForwardedBackwardsCompatibleTransacion.putOperationalData(Forwa
rdedBackwardsCompatibleDataBroker.java:226) ~[na:na]
at
org.opendaylight.controller.md.sal.binding.impl.ForwardedBackwardsCompatibl
eDataBroker$ForwardedBackwardsCompatibleTransacion.putOperationalData(Forwa
rdedBackwardsCompatibleDataBroker.java:195) ~[na:na]
at
org.opendaylight.ovsdb.neutron.provider.OF13ProviderManager.writeFlow(OF13P
roviderManager.java:1593) [bundlefile:na]
at
org.opendaylight.ovsdb.neutron.provider.OF13ProviderManager.handleLocalTabl
eMiss(OF13ProviderManager.java:1549) [bundlefile:na]
at
org.opendaylight.ovsdb.neutron.provider.OF13ProviderManager.programLocalBri
dgeRules(OF13ProviderManager.java:304) [bundlefile:na]
at
org.opendaylight.ovsdb.neutron.provider.OF13ProviderManager.programLocalRul
es(OF13ProviderManager.java:568) [bundlefile:na]
at
org.opendaylight.ovsdb.neutron.provider.OF13ProviderManager.handleInterface
Update(OF13ProviderManager.java:785) [bundlefile:na]
at
org.opendaylight.ovsdb.neutron.SouthboundHandler.handleInterfaceUpdate(Sout
hboundHandler.java:258) [bundlefile:na]
at
org.opendaylight.ovsdb.neutron.SouthboundHandler.processRowUpdate(Southboun
dHandler.java:217) [bundlefile:na]
at
org.opendaylight.ovsdb.neutron.SouthboundHandler.access$100(SouthboundHandl
er.java:38) [bundlefile:na]
at
org.opendaylight.ovsdb.neutron.SouthboundHandler$1.run(SouthboundHandler.ja
va:73) [bundlefile:na]
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
[na:1.7.0_55]
at java.util.concurrent.FutureTask.run(FutureTask.java:262) [na:1.7.0_55]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1
145) [na:1.7.0_55]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:
615) [na:1.7.0_55]
at java.lang.Thread.run(Thread.java:745) [na:1.7.0_55]
-------------------------------------------------------


I don¹t see any SetFields working. I beleive TunnelID uses the Metadata
fields in the match in OFJava but match entries for it work. "action MUST
contain leaf (urn:opendaylight:flow:inventory?revision=2013-08-19)order
with value." makes it sound as if it would be node related, but URIs,
DPIDs etc all checkout.

I pulled old controller builds from hydrogen and ran the OVSDB plugin
trunk against it and it works as desired. Here are the flowmods that are
produced:
--------
OFPST_FLOW reply (OF1.3) (xid=0x2):
cookie=0x0, duration=95.371s, table=0, n_packets=0, n_bytes=0,
send_flow_rem in_port=1,dl_src=fa:16:3e:15:b4:5f
actions=set_field:0x1->tun_id,goto_table:10
cookie=0x0, duration=95.208s, table=0, n_packets=0, n_bytes=0,
send_flow_rem in_port=1,dl_src=fa:16:3e:23:c2:e2
actions=set_field:0x2->tun_id,goto_table:10
cookie=0x0, duration=95.353s, table=0, n_packets=0, n_bytes=0,
send_flow_rem priority=8192,in_port=1 actions=drop
cookie=0x0, duration=95.523s, table=0, n_packets=0, n_bytes=0,
send_flow_rem dl_type=0x88cc actions=CONTROLLER:56


cookie=0x0, duration=95.262s, table=10, n_packets=0, n_bytes=0,
send_flow_rem priority=8192,tun_id=0x1 actions=goto_table:20
cookie=0x0, duration=95.048s, table=10, n_packets=0, n_bytes=0,
send_flow_rem priority=8192,tun_id=0x2 actions=goto_table:20

cookie=0x0, duration=95.234s, table=20, n_packets=0, n_bytes=0,
send_flow_rem priority=8192,tun_id=0x1 actions=drop
cookie=0x0, duration=94.996s, table=20, n_packets=0, n_bytes=0,
send_flow_rem priority=8192,tun_id=0x2 actions=drop
cookie=0x0, duration=95.264s, table=20, n_packets=0, n_bytes=0,
send_flow_rem
priority=16384,tun_id=0x1,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
actions=output:1
cookie=0x0, duration=95.078s, table=20, n_packets=0, n_bytes=0,
send_flow_rem
priority=16384,tun_id=0x2,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
actions=output:1
cookie=0x0, duration=95.346s, table=20, n_packets=0, n_bytes=0,
send_flow_rem tun_id=0x1,dl_dst=fa:16:3e:15:b4:5f actions=output:1
cookie=0x0, duration=95.1s, table=20, n_packets=0, n_bytes=0,
send_flow_rem tun_id=0x2,dl_dst=fa:16:3e:23:c2:e2 actions=output:1


When I run against the current Virtualization build,
https://jenkins.opendaylight.org/integration/job/integration-verify-distrib
utions/ here are the flowmods produced:
-------
cookie=0x0, duration=1514.806s, table=0, n_packets=0, n_bytes=0,
send_flow_rem tun_id=0x582,in_port=2 actions=goto_table:20
cookie=0x0, duration=1844.820s, table=0, n_packets=662, n_bytes=60242,
send_flow_rem dl_type=0x88cc actions=CONTROLLER:0

cookie=0x0, duration=728.014s, table=10, n_packets=0, n_bytes=0,
send_flow_rem tun_id=0x582,dl_dst=fa:16:3e:d0:94:f6
actions=output:2,goto_table:20
cookie=0x0, duration=1515.501s, table=10, n_packets=0, n_bytes=0,
send_flow_rem tun_id=0x582,dl_dst=fa:16:3e:d8:c9:8d
actions=output:2,goto_table:20
cookie=0x0, duration=1790.462s, table=10, n_packets=0, n_bytes=0,
send_flow_rem tun_id=0x2,dl_dst=fa:16:3e:51:18:64
actions=output:1,goto_table:20
cookie=0x0, duration=1790.440s, table=10, n_packets=0, n_bytes=0,
send_flow_rem tun_id=0x1,dl_dst=fa:16:3e:0b:69:8a
actions=output:1,goto_table:20
cookie=0x0, duration=1514.791s, table=10, n_packets=0, n_bytes=0,
send_flow_rem
priority=16384,tun_id=0x582,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
actions=output:2,goto_table:20
‹‹

I don¹t know how long it has been broken, but the only thing I can come up
with after 2.5 straight days is to start rolling back Controller patches
until things work again. The MD_SAL logs are too generic to give a laymen
much to go on other then maybe the model error earlier.

16GB of memory is abused by running the OpenStack VMs and ODL controller
so a remote debug in my IDE isn¹t an option. Going to find something to
run OpenStack on or if anyone else has OpenStack on a separate machine to
try and get a remote OSGI debug to try and catch where in the controller
this bombs.

Keep in mind, all of the "Deserializer msgVersion: 4 msgType: 1 msgType2:
31" are just v6 punts to the controller that OVS and ODL aren¹t agreeing
upon the struct. They punt since as Michal pointed out there is not an
implicit drop. You can install one into OVS in each table using the client
if you don¹t want to see them.

---
java.lang.NullPointerException: Deserializer for key: msgVersion: 4 class:
org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fi
elds.grouping.MatchEntries msgType: 1 msgType2: 31 was not found

Here are verbose logs if someone can verify they see the same issue with
Neutron integration flowmods using the Virtualization Jenkins build.
https://gist.github.com/7fa9c181d830ee3259e0

Later,
-Brent


On 5/16/14, 8:40 PM, "Flavio Fernandes" <ffernand@...> wrote:

Hi Hsin-Yi,

You are right. This is using the test provider. I don¹t really know how
to do it thru openstack-ovsdbŠ. yet. :)

‹ flavio


On May 16, 2014, at 8:37 PM, Hsin-Yi Shen <hshen@...> wrote:

Flavio,
Looks like you tried test provider. Do you try wireshark with
openstack-ovsdb integreation?

Hsin-Yi

----- Original Message -----
From: "Flavio Fernandes" <ffernand@...>
To: "Michal Polkoráb" <michal.polkorab@...>
Cc: "Hsin-Yi Shen" <hshen@...>, "Abhijit Kumbhare"
<abhijitkoss@...>, "openflowjava-dev"
<openflowjava-dev@...>, "Madhu Venugopal"
<vmadhu@...>, openflowplugin-dev@...
Sent: Friday, May 16, 2014 8:28:38 PM
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
Multiple OUPUT actions in the action list of apply-action instruction


Hi folks,

It took me a little playing with, but I did manage to capture the flow
mod packet!


https://www.dropbox.com/s/uumgiccue6ksuhi/Screenshot%202014-05-16%2020.25
.48.png

From the capture, it is packet #7. You need wireshark 1.11 to see the
of 1.3 packets.
From the wireshark output, I see the instruction and the actions as you
expected, Hsin-Yi.




‹ flavio


On May 16, 2014, at 3:17 PM, Michal Polkoráb
<michal.polkorab@...> wrote:

First I would try using wireshark to check the data written to the
wire. This way you will know if there is some problem with the device
or with the controller.

I would also try to put a Log message into:
- OF13OutputActionSerializer in openflowjava
- ActionConvertor in openflowplugin (in output action case)
and rebuilding the code. When running the distribution there should be
three logs for mentioned ApplyActions Instruction.
If there are six log messages, then this should be an issue somewhere
out of openflowplugin translation.
If there is less than three messages the bug should be in the
openflowplugin, 3-5 messages should be a bug in openflowjava.

Michal
________________________________________
From: Hsin-Yi Shen <hshen@...>
Sent: 16 May 2014 20:24
To: Michal Polkoráb; Flavio Fernandes
Cc: Abhijit Kumbhare; openflowjava-dev; Madhu Venugopal;
openflowplugin-dev@...
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
Multiple OUPUT actions in the action list of apply-action instruction

Hi Michal,
Thanks for testing the openflowjava. After fixing the test provider
code, we now see multiple actions of same type in applyActions
Instruction.

But we still see same issue in our OVSDB project using OF 1.3.
While ovsdb code write flows with multiple actions of OUTPUT type,
2014-05-16 18:04:06.147 EDT [pool-18-thread-1] DEBUG
o.o.o.n.p.OF13ProviderManager - createOutputPortInstructions() :
applyAction ApplyActions [_action=[Action [_order=0, _key=ActionKey
[_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
[augmentation=[]], augmentation=[]], augmentation=[]], Action
[_order=1, _key=ActionKey [_order=1], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:112312004696131:1], augmentation=[]],
augmentation=[]], augmentation=[]], Action [_order=2, _key=ActionKey
[_order=2], _action=OutputActionCase [_outputAction=OutputAction
[_outputNodeConnector=Uri [_value=openflow:112312004696131:3],
augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=3,
_key=ActionKey [_order=3], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:112312004696131:4], augmentation=[]],
augmentation=[]], augmentation=[]]], augmentation=[]]
We only see one output action is actually installed:
[root@control-node logs(keystone_admin)]# ovs-ofctl dump-flows br-int
-O OpenFlow13
OFPST_FLOW reply (OF1.3) (xid=0x2):
....
cookie=0x0, duration=1246.988s, table=20, n_packets=26, n_bytes=2644,
send_flow_rem
priority=16384,dl_vlan=2400,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
actions=strip_vlan,output:1

Other output actions just silently disappear.
Could you suggest where we should check for debugging?
Thanks.

Hsin-Yi

----- Original Message -----
From: "Michal Polkoráb" <michal.polkorab@...>
To: "Abhijit Kumbhare" <abhijitkoss@...>, "Hsin-Yi Shen"
<hshen@...>
Cc: "openflowjava-dev" <openflowjava-dev@...>,
"Madhu Venugopal" <vmadhu@...>,
openflowplugin-dev@...
Sent: Friday, May 16, 2014 3:38:04 AM
Subject: RE: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
Multiple OUPUT actions in the action list of apply-action instruction

Hi,


I have tested openflowjava and it supports multiple actions of same
type in ApplyActions Instruction. However, it looks like the
OpenflowpluginTestServiceProvider receives wrong object - as it already
contains only one Output action (judging on the description provided in
the bug 1020).


Regards

Michal Polkorab

________________________________
From: Abhijit Kumbhare <abhijitkoss@...>
Sent: 15 May 2014 23:16
To: Hsin-Yi Shen
Cc: openflowjava-dev; Madhu Venugopal;
openflowplugin-dev@...
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
Multiple OUPUT actions in the action list of apply-action instruction

Thanks Hsin-Yi.


On Thu, May 15, 2014 at 1:37 PM, Hsin-Yi Shen
<hshen@...<mailto:hshen@...>> wrote:
Hi,
We work on the ovsdb project and we find in latest build multiple
OUPUT actions are no longer allowed in the action list of apply-action
instruction in OF 1.3.
This breaks the broadcast in ovsdb. Although we are not sure the issue
is in openflowplugin or openflowjava, we need this bug to be fixed.
We have filed bug 1020 in bugzilla
https://bugs.opendaylight.org/show_bug.cgi?id=1020
Could someone in openflowplugin or openflowjava help fix this bug?
Thanks.

Hsin-Yi
_______________________________________________
openflowplugin-dev mailing list

openflowplugin-dev@...<mailto:openflowplugin-dev@list
s.opendaylight.org>
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev

MichalPolkoráb
Software Developer

Mlynské Nivy 56 / 821 05 Bratislava / Slovakia
+421 918 378 907 / michal.polkorab@...
reception: +421 2 206 65 111 / www.pantheon.sk
[logo]
MichalPolkoráb
Software Developer

Mlynské Nivy 56 / 821 05 Bratislava / Slovakia
+421 918 378 907 / michal.polkorab@...
reception: +421 2 206 65 111 / www.pantheon.sk
[logo]
_______________________________________________
openflowplugin-dev mailing list
openflowplugin-dev@...
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev


Hsin-Yi Shen <hshen@...>
 

Hello all,
After debugging, we find the issue is in flow modify and we are able to reproduce same issue in test provider.

The behaviour for test case and ovsdb OF13 is as following:
1. First time we write flow with apply-action instruction. The instruction has actions list: POP_VLAN, OUTPUT=25
2. In second time, we get the action list from original flow, copy and write new action list to: POP_VLAN, OUPUT=25, OUTPUT=26, allocate a new apply-action instruction with new action list, and write flow with new instruction.
3. In third time, we get the action list from original flow, copy and write new action list to: POP_VLAN, OUPUT=25, OUTPUT=26, OUTPUT=27, allocate a new apply-action instruction with new action list, and write flow with new instruction.
And so on...

When we apply this to some foo node, the addMDFlow log looks ok:
First time we write the flow with action list: POP_VLAN, OUTPUT=25
2014-05-19 20:08:05.114 EDT [pool-13-thread-2] INFO o.o.o.t.OpenflowpluginTestServiceProvider - addFlow - AddFlowInput [_flowRef=FlowRef [_value=KeyedInstanceIdentifier{targetType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow, path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes, org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node[key=NodeKey [_id=Uri [_value=foo:node:1]]], org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode, org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.Table[key=TableKey [_id=2]], org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow[key=FlowKey [_id=Uri [_value=206]]]]}], _flowTable=FlowTableRef [_value=KeyedInstanceIdentifier{targetType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.Table, path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes, org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node[key=NodeKey [_id=Uri [_value=foo:node:1]]], org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode, org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.Table[key=TableKey [_id=2]]]}], _barrier=false, _cookieMask=FlowCookie [_value=10], _flags=FlowModFlags [_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false, _nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf83, _installHw=false, _instructions=Instructions [_instruction=[Instruction [_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase [_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey [_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction [augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1, _key=ActionKey [_order=1], _action=OutputActionCase [_outputAction=OutputAction [_outputNodeConnector=Uri [_value=openflow:65500:25], augmentation=[]], augmentation=[]], augmentation=[]]], augmentation=[]], augmentation=[]], augmentation=[]]], augmentation=[]], _match=Match [_ethernetMatch=EthernetMatch [_ethernetDestination=EthernetDestination [_address=MacAddress [_value=01:00:00:00:00:00], _mask=MacAddress [_value=01:00:00:00:00:00], augmentation=[]], augmentation=[]], _vlanMatch=VlanMatch [_vlanId=VlanId [_vlanId=VlanId [_value=2000], _vlanIdPresent=true, augmentation=[]], augmentation=[]], augmentation=[]], _strict=false, _cookie=FlowCookie [_value=10], _hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2, _node=NodeRef [_value=KeyedInstanceIdentifier{targetType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node, path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes, org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node[key=NodeKey [_id=Uri [_value=foo:node:1]]]]}], _transactionUri=Uri [_value=DOM-0], augmentation=[]]

Second time we write the flow with action list: POP_VLAN, OUTPUT=25, OUTPUT=26
osgi> addMDFlow foo:node:1 f83
Status of Flow Data Loaded Transaction: COMMITED
osgi> 2014-05-19 20:09:16.778 EDT [pool-13-thread-2] INFO o.o.o.t.OpenflowpluginTestServiceProvider - updateFlow - UpdateFlowInput [_flowRef=FlowRef [_value=KeyedInstanceIdentifier{targetType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow, path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes, org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node[key=NodeKey [_id=Uri [_value=foo:node:1]]], org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode, org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.Table[key=TableKey [_id=2]], org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow[key=FlowKey [_id=Uri [_value=206]]]]}], _transactionUri=Uri [_value=DOM-1], _originalFlow=OriginalFlow [_barrier=false, _cookieMask=FlowCookie [_value=10], _flags=FlowModFlags [_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false, _nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf83, _installHw=false, _instructions=Instructions [_instruction=[Instruction [_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase [_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey [_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction [augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1, _key=ActionKey [_order=1], _action=OutputActionCase [_outputAction=OutputAction [_outputNodeConnector=Uri [_value=openflow:65500:25], augmentation=[]], augmentation=[]], augmentation=[]]], augmentation=[]], augmentation=[]], augmentation=[]]], augmentation=[]], _match=Match [_ethernetMatch=EthernetMatch [_ethernetDestination=EthernetDestination [_address=MacAddress [_value=01:00:00:00:00:00], _mask=MacAddress [_value=01:00:00:00:00:00], augmentation=[]], augmentation=[]], _vlanMatch=VlanMatch [_vlanId=VlanId [_vlanId=VlanId [_value=2000], _vlanIdPresent=true, augmentation=[]], augmentation=[]], augmentation=[]], _strict=false, _cookie=FlowCookie [_value=10], _hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2, augmentation=[]], _updatedFlow=UpdatedFlow [_barrier=false, _cookieMask=FlowCookie [_value=10], _flags=FlowModFlags [_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false, _nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf83, _installHw=false, _instructions=Instructions [_instruction=[Instruction [_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase [_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey [_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction [augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1, _key=ActionKey [_order=1], _action=OutputActionCase [_outputAction=OutputAction [_outputNodeConnector=Uri [_value=openflow:65500:25], augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=2, _key=ActionKey [_order=2], _action=OutputActionCase [_outputAction=OutputAction [_outputNodeConnector=Uri [_value=openflow:65500:26], augmentation=[]], augmentation=[]], augmentation=[]]], augmentation=[]], augmentation=[]], augmentation=[]]], augmentation=[]], _match=Match [_ethernetMatch=EthernetMatch [_ethernetDestination=EthernetDestination [_address=MacAddress [_value=01:00:00:00:00:00], _mask=MacAddress [_value=01:00:00:00:00:00], augmentation=[]], augmentation=[]], _vlanMatch=VlanMatch [_vlanId=VlanId [_vlanId=VlanId [_value=2000], _vlanIdPresent=true, augmentation=[]], augmentation=[]], augmentation=[]], _strict=false, _cookie=FlowCookie [_value=10], _hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2, augmentation=[]], _node=NodeRef [_value=KeyedInstanceIdentifier{targetType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node, path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes, org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node[key=NodeKey [_id=Uri [_value=foo:node:1]]]]}], augmentation=[]

But this has issue when we write flow to real ovs node:
1st time we write flow with action list: POP_VLAN, OUTPUT=27
osgi> addMDFlow openflow:266832637728842 f83
Status of Flow Data Loaded Transaction: COMMITED
osgi> 2014-05-19 20:12:48.347 EDT [md-sal-binding-notification-12] INFO o.o.o.t.FlowEventListenerLoggingImpl - flow to be added..........................FlowAdded [_flowRef=FlowRef [_value=KeyedInstanceIdentifier{targetType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow, path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes, org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node[key=NodeKey [_id=Uri [_value=openflow:266832637728842]]], org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode, org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.Table[key=TableKey [_id=2]], org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow[key=FlowKey [_id=Uri [_value=206]]]]}], _barrier=false, _cookieMask=FlowCookie [_value=10], _flags=FlowModFlags [_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false, _nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf83, _installHw=false, _instructions=Instructions [_instruction=[Instruction [_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase [_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey [_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction [augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1, _key=ActionKey [_order=1], _action=OutputActionCase [_outputAction=OutputAction [_outputNodeConnector=Uri [_value=openflow:65500:27], augmentation=[]], augmentation=[]], augmentation=[]]], augmentation=[]], augmentation=[]], augmentation=[]]], augmentation=[]], _match=Match [_ethernetMatch=EthernetMatch [_ethernetDestination=EthernetDestination [_address=MacAddress [_value=01:00:00:00:00:00], _mask=MacAddress [_value=01:00:00:00:00:00], augmentation=[]], augmentation=[]], _vlanMatch=VlanMatch [_vlanId=VlanId [_vlanId=VlanId [_value=2000], _vlanIdPresent=true, augmentation=[]], augmentation=[]], augmentation=[]], _strict=false, _cookie=FlowCookie [_value=10], _hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2, _transactionId=TransactionId [_value=3], augmentation=[]]
And the ovs show command confirms the result:
[hshen@hshen logs]$ sudo ovs-ofctl dump-flows br-int -O OpenFlow13
OFPST_FLOW reply (OF1.3) (xid=0x2):
cookie=0xa, duration=113.573s, table=2, n_packets=0, n_bytes=0, send_flow_rem priority=2,dl_vlan=2000,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 actions=strip_vlan,output:27

However, the log looks weird in the 2nd time and 3rd time:
osgi> addMDFlow openflow:266832637728842 f83
Status of Flow Data Loaded Transaction: COMMITED
osgi> addMDFlow openflow:266832637728842 f83
Status of Flow Data Loaded Transaction: COMMITED

We only get one line log for COMMITED status. And flow is not modified at ovs node:
[hshen@hshen logs]$ sudo ovs-ofctl dump-flows br-int -O OpenFlow13
OFPST_FLOW reply (OF1.3) (xid=0x2):
cookie=0xa, duration=245.054s, table=2, n_packets=0, n_bytes=0, send_flow_rem priority=2,dl_vlan=2000,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 actions=strip_vlan,output:27

It looks like the flow mod message is not even sent to ovs node.
Is there any change in Openflowplugin for modifying the flow?
Please advise hoe we can solve this issue or debug further.

Thanks a lot for your help.

Hsin-Yi

----- Original Message -----
From: "Flavio Fernandes" <ffernand@...>
To: "Hsin-Yi Shen" <hshen@...>
Cc: "Michal Polkoráb" <michal.polkorab@...>, "Abhijit Kumbhare" <abhijitkoss@...>, "openflowjava-dev" <openflowjava-dev@...>, "Madhu Venugopal" <vmadhu@...>, openflowplugin-dev@...
Sent: Friday, May 16, 2014 8:40:20 PM
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 - Multiple OUPUT actions in the action list of apply-action instruction

Hi Hsin-Yi,

You are right. This is using the test provider. I don’t really know how to do it thru openstack-ovsdb…. yet. :)

— flavio


On May 16, 2014, at 8:37 PM, Hsin-Yi Shen <hshen@...> wrote:

Flavio,
Looks like you tried test provider. Do you try wireshark with openstack-ovsdb integreation?

Hsin-Yi

----- Original Message -----
From: "Flavio Fernandes" <ffernand@...>
To: "Michal Polkoráb" <michal.polkorab@...>
Cc: "Hsin-Yi Shen" <hshen@...>, "Abhijit Kumbhare" <abhijitkoss@...>, "openflowjava-dev" <openflowjava-dev@...>, "Madhu Venugopal" <vmadhu@...>, openflowplugin-dev@...
Sent: Friday, May 16, 2014 8:28:38 PM
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 - Multiple OUPUT actions in the action list of apply-action instruction


Hi folks,

It took me a little playing with, but I did manage to capture the flow mod packet!

https://www.dropbox.com/s/uumgiccue6ksuhi/Screenshot%202014-05-16%2020.25.48.png

From the capture, it is packet #7. You need wireshark 1.11 to see the of 1.3 packets.
From the wireshark output, I see the instruction and the actions as you expected, Hsin-Yi.




— flavio


On May 16, 2014, at 3:17 PM, Michal Polkoráb <michal.polkorab@...> wrote:

First I would try using wireshark to check the data written to the wire. This way you will know if there is some problem with the device or with the controller.

I would also try to put a Log message into:
- OF13OutputActionSerializer in openflowjava
- ActionConvertor in openflowplugin (in output action case)
and rebuilding the code. When running the distribution there should be three logs for mentioned ApplyActions Instruction.
If there are six log messages, then this should be an issue somewhere out of openflowplugin translation.
If there is less than three messages the bug should be in the openflowplugin, 3-5 messages should be a bug in openflowjava.

Michal
________________________________________
From: Hsin-Yi Shen <hshen@...>
Sent: 16 May 2014 20:24
To: Michal Polkoráb; Flavio Fernandes
Cc: Abhijit Kumbhare; openflowjava-dev; Madhu Venugopal; openflowplugin-dev@...
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 - Multiple OUPUT actions in the action list of apply-action instruction

Hi Michal,
Thanks for testing the openflowjava. After fixing the test provider code, we now see multiple actions of same type in applyActions Instruction.

But we still see same issue in our OVSDB project using OF 1.3.
While ovsdb code write flows with multiple actions of OUTPUT type,
2014-05-16 18:04:06.147 EDT [pool-18-thread-1] DEBUG o.o.o.n.p.OF13ProviderManager - createOutputPortInstructions() : applyAction ApplyActions [_action=[Action [_order=0, _key=ActionKey [_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction [augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1, _key=ActionKey [_order=1], _action=OutputActionCase [_outputAction=OutputAction [_outputNodeConnector=Uri [_value=openflow:112312004696131:1], augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=2, _key=ActionKey [_order=2], _action=OutputActionCase [_outputAction=OutputAction [_outputNodeConnector=Uri [_value=openflow:112312004696131:3], augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=3, _key=ActionKey [_order=3], _action=OutputActionCase [_outputAction=OutputAction [_outputNodeConnector=Uri [_value=openflow:112312004696131:4], augmentation=[]], augmentation=[]], augmentation=[]]], augmentation=[]]
We only see one output action is actually installed:
[root@control-node logs(keystone_admin)]# ovs-ofctl dump-flows br-int -O OpenFlow13
OFPST_FLOW reply (OF1.3) (xid=0x2):
....
cookie=0x0, duration=1246.988s, table=20, n_packets=26, n_bytes=2644, send_flow_rem priority=16384,dl_vlan=2400,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 actions=strip_vlan,output:1

Other output actions just silently disappear.
Could you suggest where we should check for debugging?
Thanks.

Hsin-Yi

----- Original Message -----
From: "Michal Polkoráb" <michal.polkorab@...>
To: "Abhijit Kumbhare" <abhijitkoss@...>, "Hsin-Yi Shen" <hshen@...>
Cc: "openflowjava-dev" <openflowjava-dev@...>, "Madhu Venugopal" <vmadhu@...>, openflowplugin-dev@...
Sent: Friday, May 16, 2014 3:38:04 AM
Subject: RE: [openflowjava-dev] [openflowplugin-dev] BUG 1020 - Multiple OUPUT actions in the action list of apply-action instruction

Hi,


I have tested openflowjava and it supports multiple actions of same type in ApplyActions Instruction. However, it looks like the OpenflowpluginTestServiceProvider receives wrong object - as it already contains only one Output action (judging on the description provided in the bug 1020).


Regards

Michal Polkorab

________________________________
From: Abhijit Kumbhare <abhijitkoss@...>
Sent: 15 May 2014 23:16
To: Hsin-Yi Shen
Cc: openflowjava-dev; Madhu Venugopal; openflowplugin-dev@...
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 - Multiple OUPUT actions in the action list of apply-action instruction

Thanks Hsin-Yi.


On Thu, May 15, 2014 at 1:37 PM, Hsin-Yi Shen <hshen@...<mailto:hshen@...>> wrote:
Hi,
We work on the ovsdb project and we find in latest build multiple OUPUT actions are no longer allowed in the action list of apply-action instruction in OF 1.3.
This breaks the broadcast in ovsdb. Although we are not sure the issue is in openflowplugin or openflowjava, we need this bug to be fixed.
We have filed bug 1020 in bugzilla https://bugs.opendaylight.org/show_bug.cgi?id=1020
Could someone in openflowplugin or openflowjava help fix this bug?
Thanks.

Hsin-Yi
_______________________________________________
openflowplugin-dev mailing list
openflowplugin-dev@...<mailto:openflowplugin-dev@...>
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev

MichalPolkoráb
Software Developer

Mlynské Nivy 56 / 821 05 Bratislava / Slovakia
+421 918 378 907 / michal.polkorab@...
reception: +421 2 206 65 111 / www.pantheon.sk
[logo]
MichalPolkoráb
Software Developer

Mlynské Nivy 56 / 821 05 Bratislava / Slovakia
+421 918 378 907 / michal.polkorab@...
reception: +421 2 206 65 111 / www.pantheon.sk
[logo]


Kamal Rameshan (kramesha) <kramesha@...>
 

This might be related to Bug : 275 :
https://bugs.opendaylight.org/show_bug.cgi?id=275

This defect solves flow modify.

A gerrit for this is wating to be reviewed

Thanks
Kamal

On 5/19/14 5:20 PM, "Hsin-Yi Shen" <hshen@...> wrote:

Hello all,
After debugging, we find the issue is in flow modify and we are able to
reproduce same issue in test provider.

The behaviour for test case and ovsdb OF13 is as following:
1. First time we write flow with apply-action instruction. The
instruction has actions list: POP_VLAN, OUTPUT=25
2. In second time, we get the action list from original flow, copy and
write new action list to: POP_VLAN, OUPUT=25, OUTPUT=26, allocate a new
apply-action instruction with new action list, and write flow with new
instruction.
3. In third time, we get the action list from original flow, copy and
write new action list to: POP_VLAN, OUPUT=25, OUTPUT=26, OUTPUT=27,
allocate a new apply-action instruction with new action list, and write
flow with new instruction.
And so on...

When we apply this to some foo node, the addMDFlow log looks ok:
First time we write the flow with action list: POP_VLAN, OUTPUT=25
2014-05-19 20:08:05.114 EDT [pool-13-thread-2] INFO
o.o.o.t.OpenflowpluginTestServiceProvider - addFlow - AddFlowInput
[_flowRef=FlowRef [_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=foo:node:1]]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Flo
wCapableNode,
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.Table[key=TableKey [_id=2]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow[key=FlowKey [_id=Uri [_value=206]]]]}],
_flowTable=FlowTableRef
[_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.Table,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=foo:node:1]]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Flo
wCapableNode,
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.Table[key=TableKey [_id=2]]]}], _barrier=false,
_cookieMask=FlowCookie [_value=10], _flags=FlowModFlags
[_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false,
_nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf83,
_installHw=false, _instructions=Instructions [_instruction=[Instruction
[_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase
[_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey
[_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
[augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1,
_key=ActionKey [_order=1], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:65500:25], augmentation=[]], augmentation=[]],
augmentation=[]]], augmentation=[]], augmentation=[]], augmentation=[]]],
augmentation=[]], _match=Match [_ethernetMatch=EthernetMatch
[_ethernetDestination=EthernetDestination [_address=MacAddress
[_value=01:00:00:00:00:00], _mask=MacAddress [_value=01:00:00:00:00:00],
augmentation=[]], augmentation=[]], _vlanMatch=VlanMatch [_vlanId=VlanId
[_vlanId=VlanId [_value=2000], _vlanIdPresent=true, augmentation=[]],
augmentation=[]], augmentation=[]], _strict=false, _cookie=FlowCookie
[_value=10], _hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2,
_node=NodeRef [_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=foo:node:1]]]]}], _transactionUri=Uri
[_value=DOM-0], augmentation=[]]

Second time we write the flow with action list: POP_VLAN, OUTPUT=25,
OUTPUT=26
osgi> addMDFlow foo:node:1 f83
Status of Flow Data Loaded Transaction: COMMITED
osgi> 2014-05-19 20:09:16.778 EDT [pool-13-thread-2] INFO
o.o.o.t.OpenflowpluginTestServiceProvider - updateFlow - UpdateFlowInput
[_flowRef=FlowRef [_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=foo:node:1]]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Flo
wCapableNode,
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.Table[key=TableKey [_id=2]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow[key=FlowKey [_id=Uri [_value=206]]]]}],
_transactionUri=Uri [_value=DOM-1], _originalFlow=OriginalFlow
[_barrier=false, _cookieMask=FlowCookie [_value=10], _flags=FlowModFlags
[_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false,
_nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf83,
_installHw=false, _instructions=Instructions [_instruction=[Instruction
[_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase
[_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey
[_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
[augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1,
_key=ActionKey [_order=1], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:65500:25], augmentation=[]], augmentation=[]],
augmentation=[]]], augmentation=[]], augmentation=[]], augmentation=[]]],
augmentation=[]], _match=Match [_ethernetMatch=EthernetMatch
[_ethernetDestination=EthernetDestination [_address=MacAddress
[_value=01:00:00:00:00:00], _mask=MacAddress [_value=01:00:00:00:00:00],
augmentation=[]], augmentation=[]], _vlanMatch=VlanMatch [_vlanId=VlanId
[_vlanId=VlanId [_value=2000], _vlanIdPresent=true, augmentation=[]],
augmentation=[]], augmentation=[]], _strict=false, _cookie=FlowCookie
[_value=10], _hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2,
augmentation=[]], _updatedFlow=UpdatedFlow [_barrier=false,
_cookieMask=FlowCookie [_value=10], _flags=FlowModFlags
[_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false,
_nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf83,
_installHw=false, _instructions=Instructions [_instruction=[Instruction
[_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase
[_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey
[_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
[augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1,
_key=ActionKey [_order=1], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:65500:25], augmentation=[]], augmentation=[]],
augmentation=[]], Action [_order=2, _key=ActionKey [_order=2],
_action=OutputActionCase [_outputAction=OutputAction
[_outputNodeConnector=Uri [_value=openflow:65500:26], augmentation=[]],
augmentation=[]], augmentation=[]]], augmentation=[]], augmentation=[]],
augmentation=[]]], augmentation=[]], _match=Match
[_ethernetMatch=EthernetMatch [_ethernetDestination=EthernetDestination
[_address=MacAddress [_value=01:00:00:00:00:00], _mask=MacAddress
[_value=01:00:00:00:00:00], augmentation=[]], augmentation=[]],
_vlanMatch=VlanMatch [_vlanId=VlanId [_vlanId=VlanId [_value=2000],
_vlanIdPresent=true, augmentation=[]], augmentation=[]],
augmentation=[]], _strict=false, _cookie=FlowCookie [_value=10],
_hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2,
augmentation=[]], _node=NodeRef
[_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=foo:node:1]]]]}], augmentation=[]

But this has issue when we write flow to real ovs node:
1st time we write flow with action list: POP_VLAN, OUTPUT=27
osgi> addMDFlow openflow:266832637728842 f83
Status of Flow Data Loaded Transaction: COMMITED
osgi> 2014-05-19 20:12:48.347 EDT [md-sal-binding-notification-12] INFO
o.o.o.t.FlowEventListenerLoggingImpl - flow to be
added..........................FlowAdded [_flowRef=FlowRef
[_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=openflow:266832637728842]]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Flo
wCapableNode,
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.Table[key=TableKey [_id=2]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow[key=FlowKey [_id=Uri [_value=206]]]]}], _barrier=false,
_cookieMask=FlowCookie [_value=10], _flags=FlowModFlags
[_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false,
_nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf83,
_installHw=false, _instructions=Instructions [_instruction=[Instruction
[_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase
[_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey
[_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
[augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1,
_key=ActionKey [_order=1], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:65500:27], augmentation=[]], augmentation=[]],
augmentation=[]]], augmentation=[]], augmentation=[]], augmentation=[]]],
augmentation=[]], _match=Match [_ethernetMatch=EthernetMatch
[_ethernetDestination=EthernetDestination [_address=MacAddress
[_value=01:00:00:00:00:00], _mask=MacAddress [_value=01:00:00:00:00:00],
augmentation=[]], augmentation=[]], _vlanMatch=VlanMatch [_vlanId=VlanId
[_vlanId=VlanId [_value=2000], _vlanIdPresent=true, augmentation=[]],
augmentation=[]], augmentation=[]], _strict=false, _cookie=FlowCookie
[_value=10], _hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2,
_transactionId=TransactionId [_value=3], augmentation=[]]
And the ovs show command confirms the result:
[hshen@hshen logs]$ sudo ovs-ofctl dump-flows br-int -O OpenFlow13
OFPST_FLOW reply (OF1.3) (xid=0x2):
cookie=0xa, duration=113.573s, table=2, n_packets=0, n_bytes=0,
send_flow_rem
priority=2,dl_vlan=2000,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
actions=strip_vlan,output:27

However, the log looks weird in the 2nd time and 3rd time:
osgi> addMDFlow openflow:266832637728842 f83
Status of Flow Data Loaded Transaction: COMMITED
osgi> addMDFlow openflow:266832637728842 f83
Status of Flow Data Loaded Transaction: COMMITED

We only get one line log for COMMITED status. And flow is not modified at
ovs node:
[hshen@hshen logs]$ sudo ovs-ofctl dump-flows br-int -O OpenFlow13
OFPST_FLOW reply (OF1.3) (xid=0x2):
cookie=0xa, duration=245.054s, table=2, n_packets=0, n_bytes=0,
send_flow_rem
priority=2,dl_vlan=2000,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
actions=strip_vlan,output:27

It looks like the flow mod message is not even sent to ovs node.
Is there any change in Openflowplugin for modifying the flow?
Please advise hoe we can solve this issue or debug further.

Thanks a lot for your help.

Hsin-Yi


----- Original Message -----
From: "Flavio Fernandes" <ffernand@...>
To: "Hsin-Yi Shen" <hshen@...>
Cc: "Michal Polkoráb" <michal.polkorab@...>, "Abhijit Kumbhare"
<abhijitkoss@...>, "openflowjava-dev"
<openflowjava-dev@...>, "Madhu Venugopal"
<vmadhu@...>, openflowplugin-dev@...
Sent: Friday, May 16, 2014 8:40:20 PM
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 - Multiple
OUPUT actions in the action list of apply-action instruction

Hi Hsin-Yi,

You are right. This is using the test provider. I don¹t really know how
to do it thru openstack-ovsdbŠ. yet. :)

‹ flavio


On May 16, 2014, at 8:37 PM, Hsin-Yi Shen <hshen@...> wrote:

Flavio,
Looks like you tried test provider. Do you try wireshark with
openstack-ovsdb integreation?

Hsin-Yi

----- Original Message -----
From: "Flavio Fernandes" <ffernand@...>
To: "Michal Polkoráb" <michal.polkorab@...>
Cc: "Hsin-Yi Shen" <hshen@...>, "Abhijit Kumbhare"
<abhijitkoss@...>, "openflowjava-dev"
<openflowjava-dev@...>, "Madhu Venugopal"
<vmadhu@...>, openflowplugin-dev@...
Sent: Friday, May 16, 2014 8:28:38 PM
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
Multiple OUPUT actions in the action list of apply-action instruction


Hi folks,

It took me a little playing with, but I did manage to capture the flow
mod packet!


https://www.dropbox.com/s/uumgiccue6ksuhi/Screenshot%202014-05-16%2020.25
.48.png

From the capture, it is packet #7. You need wireshark 1.11 to see the
of 1.3 packets.
From the wireshark output, I see the instruction and the actions as you
expected, Hsin-Yi.




‹ flavio


On May 16, 2014, at 3:17 PM, Michal Polkoráb
<michal.polkorab@...> wrote:

First I would try using wireshark to check the data written to the
wire. This way you will know if there is some problem with the device
or with the controller.

I would also try to put a Log message into:
- OF13OutputActionSerializer in openflowjava
- ActionConvertor in openflowplugin (in output action case)
and rebuilding the code. When running the distribution there should be
three logs for mentioned ApplyActions Instruction.
If there are six log messages, then this should be an issue somewhere
out of openflowplugin translation.
If there is less than three messages the bug should be in the
openflowplugin, 3-5 messages should be a bug in openflowjava.

Michal
________________________________________
From: Hsin-Yi Shen <hshen@...>
Sent: 16 May 2014 20:24
To: Michal Polkoráb; Flavio Fernandes
Cc: Abhijit Kumbhare; openflowjava-dev; Madhu Venugopal;
openflowplugin-dev@...
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
Multiple OUPUT actions in the action list of apply-action instruction

Hi Michal,
Thanks for testing the openflowjava. After fixing the test provider
code, we now see multiple actions of same type in applyActions
Instruction.

But we still see same issue in our OVSDB project using OF 1.3.
While ovsdb code write flows with multiple actions of OUTPUT type,
2014-05-16 18:04:06.147 EDT [pool-18-thread-1] DEBUG
o.o.o.n.p.OF13ProviderManager - createOutputPortInstructions() :
applyAction ApplyActions [_action=[Action [_order=0, _key=ActionKey
[_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
[augmentation=[]], augmentation=[]], augmentation=[]], Action
[_order=1, _key=ActionKey [_order=1], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:112312004696131:1], augmentation=[]],
augmentation=[]], augmentation=[]], Action [_order=2, _key=ActionKey
[_order=2], _action=OutputActionCase [_outputAction=OutputAction
[_outputNodeConnector=Uri [_value=openflow:112312004696131:3],
augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=3,
_key=ActionKey [_order=3], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:112312004696131:4], augmentation=[]],
augmentation=[]], augmentation=[]]], augmentation=[]]
We only see one output action is actually installed:
[root@control-node logs(keystone_admin)]# ovs-ofctl dump-flows br-int
-O OpenFlow13
OFPST_FLOW reply (OF1.3) (xid=0x2):
....
cookie=0x0, duration=1246.988s, table=20, n_packets=26, n_bytes=2644,
send_flow_rem
priority=16384,dl_vlan=2400,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
actions=strip_vlan,output:1

Other output actions just silently disappear.
Could you suggest where we should check for debugging?
Thanks.

Hsin-Yi

----- Original Message -----
From: "Michal Polkoráb" <michal.polkorab@...>
To: "Abhijit Kumbhare" <abhijitkoss@...>, "Hsin-Yi Shen"
<hshen@...>
Cc: "openflowjava-dev" <openflowjava-dev@...>,
"Madhu Venugopal" <vmadhu@...>,
openflowplugin-dev@...
Sent: Friday, May 16, 2014 3:38:04 AM
Subject: RE: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
Multiple OUPUT actions in the action list of apply-action instruction

Hi,


I have tested openflowjava and it supports multiple actions of same
type in ApplyActions Instruction. However, it looks like the
OpenflowpluginTestServiceProvider receives wrong object - as it already
contains only one Output action (judging on the description provided in
the bug 1020).


Regards

Michal Polkorab

________________________________
From: Abhijit Kumbhare <abhijitkoss@...>
Sent: 15 May 2014 23:16
To: Hsin-Yi Shen
Cc: openflowjava-dev; Madhu Venugopal;
openflowplugin-dev@...
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
Multiple OUPUT actions in the action list of apply-action instruction

Thanks Hsin-Yi.


On Thu, May 15, 2014 at 1:37 PM, Hsin-Yi Shen
<hshen@...<mailto:hshen@...>> wrote:
Hi,
We work on the ovsdb project and we find in latest build multiple
OUPUT actions are no longer allowed in the action list of apply-action
instruction in OF 1.3.
This breaks the broadcast in ovsdb. Although we are not sure the issue
is in openflowplugin or openflowjava, we need this bug to be fixed.
We have filed bug 1020 in bugzilla
https://bugs.opendaylight.org/show_bug.cgi?id=1020
Could someone in openflowplugin or openflowjava help fix this bug?
Thanks.

Hsin-Yi
_______________________________________________
openflowplugin-dev mailing list

openflowplugin-dev@...<mailto:openflowplugin-dev@list
s.opendaylight.org>
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev

MichalPolkoráb
Software Developer

Mlynské Nivy 56 / 821 05 Bratislava / Slovakia
+421 918 378 907 / michal.polkorab@...
reception: +421 2 206 65 111 / www.pantheon.sk
[logo]
MichalPolkoráb
Software Developer

Mlynské Nivy 56 / 821 05 Bratislava / Slovakia
+421 918 378 907 / michal.polkorab@...
reception: +421 2 206 65 111 / www.pantheon.sk
[logo]
_______________________________________________
openflowplugin-dev mailing list
openflowplugin-dev@...
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev


Abhijit Kumbhare
 

What is the gerrit number?

On May 19, 2014 5:27 PM, "Kamal Rameshan (kramesha)" <kramesha@...> wrote:

This might be related to Bug : 275 :
https://bugs.opendaylight.org/show_bug.cgi?id=275

This defect solves flow modify.

A gerrit for this is wating to be reviewed

Thanks
Kamal

On 5/19/14 5:20 PM, "Hsin-Yi Shen" <hshen@...> wrote:

Hello all,
After debugging, we find the issue is in flow modify and we are able to
reproduce same issue in test provider.

The behaviour for test case and ovsdb OF13 is as following:
1. First time we write flow with apply-action instruction. The
instruction has actions list: POP_VLAN, OUTPUT=25
2. In second time, we get the action list from original flow, copy and
write new action list to: POP_VLAN, OUPUT=25, OUTPUT=26, allocate a new
apply-action instruction with new action list, and write flow with new
instruction.
3. In third time,  we get the action list from original flow, copy and
write new action list to: POP_VLAN, OUPUT=25, OUTPUT=26, OUTPUT=27,
allocate a new apply-action instruction with new action list, and write
flow with new instruction.
And so on...

When we apply this to some foo node, the addMDFlow log looks ok:
First time we write the flow with action list: POP_VLAN, OUTPUT=25
2014-05-19 20:08:05.114 EDT [pool-13-thread-2] INFO
o.o.o.t.OpenflowpluginTestServiceProvider - addFlow - AddFlowInput
[_flowRef=FlowRef [_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=foo:node:1]]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Flo
wCapableNode,
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.Table[key=TableKey [_id=2]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow[key=FlowKey [_id=Uri [_value=206]]]]}],
_flowTable=FlowTableRef
[_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.Table,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=foo:node:1]]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Flo
wCapableNode,
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.Table[key=TableKey [_id=2]]]}], _barrier=false,
_cookieMask=FlowCookie [_value=10], _flags=FlowModFlags
[_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false,
_nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf83,
_installHw=false, _instructions=Instructions [_instruction=[Instruction
[_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase
[_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey
[_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
[augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1,
_key=ActionKey [_order=1], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:65500:25], augmentation=[]], augmentation=[]],
augmentation=[]]], augmentation=[]], augmentation=[]], augmentation=[]]],
augmentation=[]], _match=Match [_ethernetMatch=EthernetMatch
[_ethernetDestination=EthernetDestination [_address=MacAddress
[_value=01:00:00:00:00:00], _mask=MacAddress [_value=01:00:00:00:00:00],
augmentation=[]], augmentation=[]], _vlanMatch=VlanMatch [_vlanId=VlanId
[_vlanId=VlanId [_value=2000], _vlanIdPresent=true, augmentation=[]],
augmentation=[]], augmentation=[]], _strict=false, _cookie=FlowCookie
[_value=10], _hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2,
_node=NodeRef [_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=foo:node:1]]]]}], _transactionUri=Uri
[_value=DOM-0], augmentation=[]]

Second time we write the flow with action list: POP_VLAN, OUTPUT=25,
OUTPUT=26
osgi> addMDFlow foo:node:1 f83
Status of Flow Data Loaded Transaction: COMMITED
osgi> 2014-05-19 20:09:16.778 EDT [pool-13-thread-2] INFO
o.o.o.t.OpenflowpluginTestServiceProvider - updateFlow - UpdateFlowInput
[_flowRef=FlowRef [_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=foo:node:1]]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Flo
wCapableNode,
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.Table[key=TableKey [_id=2]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow[key=FlowKey [_id=Uri [_value=206]]]]}],
_transactionUri=Uri [_value=DOM-1], _originalFlow=OriginalFlow
[_barrier=false, _cookieMask=FlowCookie [_value=10], _flags=FlowModFlags
[_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false,
_nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf83,
_installHw=false, _instructions=Instructions [_instruction=[Instruction
[_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase
[_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey
[_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
[augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1,
_key=ActionKey [_order=1], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:65500:25], augmentation=[]], augmentation=[]],
augmentation=[]]], augmentation=[]], augmentation=[]], augmentation=[]]],
augmentation=[]], _match=Match [_ethernetMatch=EthernetMatch
[_ethernetDestination=EthernetDestination [_address=MacAddress
[_value=01:00:00:00:00:00], _mask=MacAddress [_value=01:00:00:00:00:00],
augmentation=[]], augmentation=[]], _vlanMatch=VlanMatch [_vlanId=VlanId
[_vlanId=VlanId [_value=2000], _vlanIdPresent=true, augmentation=[]],
augmentation=[]], augmentation=[]], _strict=false, _cookie=FlowCookie
[_value=10], _hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2,
augmentation=[]], _updatedFlow=UpdatedFlow [_barrier=false,
_cookieMask=FlowCookie [_value=10], _flags=FlowModFlags
[_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false,
_nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf83,
_installHw=false, _instructions=Instructions [_instruction=[Instruction
[_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase
[_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey
[_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
[augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1,
_key=ActionKey [_order=1], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:65500:25], augmentation=[]], augmentation=[]],
augmentation=[]], Action [_order=2, _key=ActionKey [_order=2],
_action=OutputActionCase [_outputAction=OutputAction
[_outputNodeConnector=Uri [_value=openflow:65500:26], augmentation=[]],
augmentation=[]], augmentation=[]]], augmentation=[]], augmentation=[]],
augmentation=[]]], augmentation=[]], _match=Match
[_ethernetMatch=EthernetMatch [_ethernetDestination=EthernetDestination
[_address=MacAddress [_value=01:00:00:00:00:00], _mask=MacAddress
[_value=01:00:00:00:00:00], augmentation=[]], augmentation=[]],
_vlanMatch=VlanMatch [_vlanId=VlanId [_vlanId=VlanId [_value=2000],
_vlanIdPresent=true, augmentation=[]], augmentation=[]],
augmentation=[]], _strict=false, _cookie=FlowCookie [_value=10],
_hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2,
augmentation=[]], _node=NodeRef
[_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=foo:node:1]]]]}], augmentation=[]

But this has issue when we write flow to real ovs node:
1st time we write flow with action list: POP_VLAN, OUTPUT=27
osgi> addMDFlow openflow:266832637728842 f83
Status of Flow Data Loaded Transaction: COMMITED
osgi> 2014-05-19 20:12:48.347 EDT [md-sal-binding-notification-12] INFO
o.o.o.t.FlowEventListenerLoggingImpl - flow to be
added..........................FlowAdded [_flowRef=FlowRef
[_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=openflow:266832637728842]]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Flo
wCapableNode,
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.Table[key=TableKey [_id=2]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow[key=FlowKey [_id=Uri [_value=206]]]]}], _barrier=false,
_cookieMask=FlowCookie [_value=10], _flags=FlowModFlags
[_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false,
_nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf83,
_installHw=false, _instructions=Instructions [_instruction=[Instruction
[_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase
[_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey
[_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
[augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1,
_key=ActionKey [_order=1], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:65500:27], augmentation=[]], augmentation=[]],
augmentation=[]]], augmentation=[]], augmentation=[]], augmentation=[]]],
augmentation=[]], _match=Match [_ethernetMatch=EthernetMatch
[_ethernetDestination=EthernetDestination [_address=MacAddress
[_value=01:00:00:00:00:00], _mask=MacAddress [_value=01:00:00:00:00:00],
augmentation=[]], augmentation=[]], _vlanMatch=VlanMatch [_vlanId=VlanId
[_vlanId=VlanId [_value=2000], _vlanIdPresent=true, augmentation=[]],
augmentation=[]], augmentation=[]], _strict=false, _cookie=FlowCookie
[_value=10], _hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2,
_transactionId=TransactionId [_value=3], augmentation=[]]
And the ovs show command confirms the result:
[hshen@hshen logs]$ sudo ovs-ofctl dump-flows br-int -O OpenFlow13
OFPST_FLOW reply (OF1.3) (xid=0x2):
cookie=0xa, duration=113.573s, table=2, n_packets=0, n_bytes=0,
send_flow_rem
priority=2,dl_vlan=2000,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
actions=strip_vlan,output:27

However, the log looks weird in the 2nd time and 3rd time:
osgi> addMDFlow openflow:266832637728842 f83
Status of Flow Data Loaded Transaction: COMMITED
osgi> addMDFlow openflow:266832637728842 f83
Status of Flow Data Loaded Transaction: COMMITED

We only get one line log for COMMITED status. And flow is not modified at
ovs node:
[hshen@hshen logs]$ sudo ovs-ofctl dump-flows br-int -O OpenFlow13
OFPST_FLOW reply (OF1.3) (xid=0x2):
cookie=0xa, duration=245.054s, table=2, n_packets=0, n_bytes=0,
send_flow_rem
priority=2,dl_vlan=2000,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
actions=strip_vlan,output:27

It looks like the flow mod message is not even sent to ovs node.
Is there any change in Openflowplugin for modifying the flow?
Please advise hoe we can solve this issue or debug further.

Thanks a lot for your help.

Hsin-Yi


----- Original Message -----
From: "Flavio Fernandes" <ffernand@...>
To: "Hsin-Yi Shen" <hshen@...>
Cc: "Michal Polkoráb" <michal.polkorab@...>, "Abhijit Kumbhare"
<abhijitkoss@...>, "openflowjava-dev"
<openflowjava-dev@...>, "Madhu Venugopal"
<vmadhu@...>, openflowplugin-dev@...
Sent: Friday, May 16, 2014 8:40:20 PM
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 - Multiple
OUPUT actions in the action list of apply-action instruction

Hi Hsin-Yi,

You are right. This is using the test provider. I don¹t really know how
to do it thru openstack-ovsdbŠ. yet. :)

‹ flavio


On May 16, 2014, at 8:37 PM, Hsin-Yi Shen <hshen@...> wrote:

Flavio,
Looks like you tried test provider. Do you try wireshark with
openstack-ovsdb integreation?

Hsin-Yi

----- Original Message -----
From: "Flavio Fernandes" <ffernand@...>
To: "Michal Polkoráb" <michal.polkorab@...>
Cc: "Hsin-Yi Shen" <hshen@...>, "Abhijit Kumbhare"
<abhijitkoss@...>, "openflowjava-dev"
<openflowjava-dev@...>, "Madhu Venugopal"
<vmadhu@...>, openflowplugin-dev@...
Sent: Friday, May 16, 2014 8:28:38 PM
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
Multiple OUPUT actions in the action list of apply-action instruction


Hi folks,

It took me a little playing with, but I did manage to capture the flow
mod packet!


https://www.dropbox.com/s/uumgiccue6ksuhi/Screenshot%202014-05-16%2020.25
.48.png

From the capture, it is packet #7. You need wireshark 1.11 to see the
of 1.3 packets.
From the wireshark output, I see the instruction and the actions as you
expected, Hsin-Yi.




‹ flavio


On May 16, 2014, at 3:17 PM, Michal Polkoráb
<michal.polkorab@...> wrote:

First I would try using wireshark to check the data written to the
wire. This way you will know if there is some problem with the device
or with the controller.

I would also try to put a Log message into:
- OF13OutputActionSerializer in openflowjava
- ActionConvertor in openflowplugin (in output action case)
and rebuilding the code. When running the distribution there should be
three logs for mentioned ApplyActions Instruction.
If there are six log messages, then this should be an issue somewhere
out of openflowplugin translation.
If there is less than three messages the bug should be in the
openflowplugin, 3-5 messages should be a bug in openflowjava.

Michal
________________________________________
From: Hsin-Yi Shen <hshen@...>
Sent: 16 May 2014 20:24
To: Michal Polkoráb; Flavio Fernandes
Cc: Abhijit Kumbhare; openflowjava-dev; Madhu Venugopal;
openflowplugin-dev@...
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
Multiple OUPUT actions in the action list of apply-action instruction

Hi Michal,
Thanks for testing the openflowjava. After fixing the test provider
code, we now see multiple actions of same type in applyActions
Instruction.

But we still see same issue in our OVSDB project using OF 1.3.
While ovsdb code write flows with multiple actions of OUTPUT type,
2014-05-16 18:04:06.147 EDT [pool-18-thread-1] DEBUG
o.o.o.n.p.OF13ProviderManager - createOutputPortInstructions() :
applyAction ApplyActions [_action=[Action [_order=0, _key=ActionKey
[_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
[augmentation=[]], augmentation=[]], augmentation=[]], Action
[_order=1, _key=ActionKey [_order=1], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:112312004696131:1], augmentation=[]],
augmentation=[]], augmentation=[]], Action [_order=2, _key=ActionKey
[_order=2], _action=OutputActionCase [_outputAction=OutputAction
[_outputNodeConnector=Uri [_value=openflow:112312004696131:3],
augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=3,
_key=ActionKey [_order=3], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:112312004696131:4], augmentation=[]],
augmentation=[]], augmentation=[]]], augmentation=[]]
We only see one output action is actually installed:
[root@control-node logs(keystone_admin)]# ovs-ofctl dump-flows br-int
-O OpenFlow13
OFPST_FLOW reply (OF1.3) (xid=0x2):
....
cookie=0x0, duration=1246.988s, table=20, n_packets=26, n_bytes=2644,
send_flow_rem
priority=16384,dl_vlan=2400,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
actions=strip_vlan,output:1

Other output actions just silently disappear.
Could you suggest where we should check for debugging?
Thanks.

Hsin-Yi

----- Original Message -----
From: "Michal Polkoráb" <michal.polkorab@...>
To: "Abhijit Kumbhare" <abhijitkoss@...>, "Hsin-Yi Shen"
<hshen@...>
Cc: "openflowjava-dev" <openflowjava-dev@...>,
"Madhu Venugopal" <vmadhu@...>,
openflowplugin-dev@...
Sent: Friday, May 16, 2014 3:38:04 AM
Subject: RE: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
Multiple OUPUT actions in the action list of apply-action instruction

Hi,


I have tested openflowjava and it supports multiple actions of same
type in ApplyActions Instruction. However, it looks like the
OpenflowpluginTestServiceProvider receives wrong object - as it already
contains only one Output action (judging on the description provided in
the bug 1020).


Regards

Michal Polkorab

________________________________
From: Abhijit Kumbhare <abhijitkoss@...>
Sent: 15 May 2014 23:16
To: Hsin-Yi Shen
Cc: openflowjava-dev; Madhu Venugopal;
openflowplugin-dev@...
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
Multiple OUPUT actions in the action list of apply-action instruction

Thanks Hsin-Yi.


On Thu, May 15, 2014 at 1:37 PM, Hsin-Yi Shen
<hshen@...<mailto:hshen@...>> wrote:
Hi,
We work on the ovsdb project and we find in latest build multiple
OUPUT actions are no longer allowed in the action list of apply-action
instruction in OF 1.3.
This breaks the broadcast in ovsdb. Although we are not sure the issue
is in openflowplugin or openflowjava, we need this bug to be fixed.
We have filed bug 1020 in bugzilla
https://bugs.opendaylight.org/show_bug.cgi?id=1020
Could someone  in openflowplugin or openflowjava help fix this bug?
Thanks.

Hsin-Yi
_______________________________________________
openflowplugin-dev mailing list

openflowplugin-dev@...<mailto:openflowplugin-dev@list
s.opendaylight.org>
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev

MichalPolkoráb
Software Developer

Mlynské Nivy 56 / 821 05 Bratislava / Slovakia
+421 918 378 907 / michal.polkorab@...
reception: +421 2 206 65 111 / www.pantheon.sk
[logo]
MichalPolkoráb
Software Developer

Mlynské Nivy 56 / 821 05 Bratislava / Slovakia
+421 918 378 907 / michal.polkorab@...
reception: +421 2 206 65 111 / www.pantheon.sk
[logo]
_______________________________________________
openflowplugin-dev mailing list
openflowplugin-dev@...
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev
_______________________________________________
openflowplugin-dev mailing list
openflowplugin-dev@...
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev


Luis Gomez <ecelgp@...>
 

On May 19, 2014, at 5:42 PM, Abhijit Kumbhare <abhijitkoss@...> wrote:

What is the gerrit number?

On May 19, 2014 5:27 PM, "Kamal Rameshan (kramesha)" <kramesha@...> wrote:

This might be related to Bug : 275 :
https://bugs.opendaylight.org/show_bug.cgi?id=275

This defect solves flow modify.

A gerrit for this is wating to be reviewed

Thanks
Kamal

On 5/19/14 5:20 PM, "Hsin-Yi Shen" <hshen@...> wrote:

Hello all,
After debugging, we find the issue is in flow modify and we are able to
reproduce same issue in test provider.

The behaviour for test case and ovsdb OF13 is as following:
1. First time we write flow with apply-action instruction. The
instruction has actions list: POP_VLAN, OUTPUT=25
2. In second time, we get the action list from original flow, copy and
write new action list to: POP_VLAN, OUPUT=25, OUTPUT=26, allocate a new
apply-action instruction with new action list, and write flow with new
instruction.
3. In third time,  we get the action list from original flow, copy and
write new action list to: POP_VLAN, OUPUT=25, OUTPUT=26, OUTPUT=27,
allocate a new apply-action instruction with new action list, and write
flow with new instruction.
And so on...

When we apply this to some foo node, the addMDFlow log looks ok:
First time we write the flow with action list: POP_VLAN, OUTPUT=25
2014-05-19 20:08:05.114 EDT [pool-13-thread-2] INFO
o.o.o.t.OpenflowpluginTestServiceProvider - addFlow - AddFlowInput
[_flowRef=FlowRef [_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=foo:node:1]]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Flo
wCapableNode,
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.Table[key=TableKey [_id=2]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow[key=FlowKey [_id=Uri [_value=206]]]]}],
_flowTable=FlowTableRef
[_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.Table,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=foo:node:1]]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Flo
wCapableNode,
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.Table[key=TableKey [_id=2]]]}], _barrier=false,
_cookieMask=FlowCookie [_value=10], _flags=FlowModFlags
[_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false,
_nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf83,
_installHw=false, _instructions=Instructions [_instruction=[Instruction
[_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase
[_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey
[_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
[augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1,
_key=ActionKey [_order=1], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:65500:25], augmentation=[]], augmentation=[]],
augmentation=[]]], augmentation=[]], augmentation=[]], augmentation=[]]],
augmentation=[]], _match=Match [_ethernetMatch=EthernetMatch
[_ethernetDestination=EthernetDestination [_address=MacAddress
[_value=01:00:00:00:00:00], _mask=MacAddress [_value=01:00:00:00:00:00],
augmentation=[]], augmentation=[]], _vlanMatch=VlanMatch [_vlanId=VlanId
[_vlanId=VlanId [_value=2000], _vlanIdPresent=true, augmentation=[]],
augmentation=[]], augmentation=[]], _strict=false, _cookie=FlowCookie
[_value=10], _hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2,
_node=NodeRef [_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=foo:node:1]]]]}], _transactionUri=Uri
[_value=DOM-0], augmentation=[]]

Second time we write the flow with action list: POP_VLAN, OUTPUT=25,
OUTPUT=26
osgi> addMDFlow foo:node:1 f83
Status of Flow Data Loaded Transaction: COMMITED
osgi> 2014-05-19 20:09:16.778 EDT [pool-13-thread-2] INFO
o.o.o.t.OpenflowpluginTestServiceProvider - updateFlow - UpdateFlowInput
[_flowRef=FlowRef [_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=foo:node:1]]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Flo
wCapableNode,
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.Table[key=TableKey [_id=2]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow[key=FlowKey [_id=Uri [_value=206]]]]}],
_transactionUri=Uri [_value=DOM-1], _originalFlow=OriginalFlow
[_barrier=false, _cookieMask=FlowCookie [_value=10], _flags=FlowModFlags
[_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false,
_nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf83,
_installHw=false, _instructions=Instructions [_instruction=[Instruction
[_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase
[_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey
[_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
[augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1,
_key=ActionKey [_order=1], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:65500:25], augmentation=[]], augmentation=[]],
augmentation=[]]], augmentation=[]], augmentation=[]], augmentation=[]]],
augmentation=[]], _match=Match [_ethernetMatch=EthernetMatch
[_ethernetDestination=EthernetDestination [_address=MacAddress
[_value=01:00:00:00:00:00], _mask=MacAddress [_value=01:00:00:00:00:00],
augmentation=[]], augmentation=[]], _vlanMatch=VlanMatch [_vlanId=VlanId
[_vlanId=VlanId [_value=2000], _vlanIdPresent=true, augmentation=[]],
augmentation=[]], augmentation=[]], _strict=false, _cookie=FlowCookie
[_value=10], _hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2,
augmentation=[]], _updatedFlow=UpdatedFlow [_barrier=false,
_cookieMask=FlowCookie [_value=10], _flags=FlowModFlags
[_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false,
_nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf83,
_installHw=false, _instructions=Instructions [_instruction=[Instruction
[_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase
[_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey
[_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
[augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1,
_key=ActionKey [_order=1], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:65500:25], augmentation=[]], augmentation=[]],
augmentation=[]], Action [_order=2, _key=ActionKey [_order=2],
_action=OutputActionCase [_outputAction=OutputAction
[_outputNodeConnector=Uri [_value=openflow:65500:26], augmentation=[]],
augmentation=[]], augmentation=[]]], augmentation=[]], augmentation=[]],
augmentation=[]]], augmentation=[]], _match=Match
[_ethernetMatch=EthernetMatch [_ethernetDestination=EthernetDestination
[_address=MacAddress [_value=01:00:00:00:00:00], _mask=MacAddress
[_value=01:00:00:00:00:00], augmentation=[]], augmentation=[]],
_vlanMatch=VlanMatch [_vlanId=VlanId [_vlanId=VlanId [_value=2000],
_vlanIdPresent=true, augmentation=[]], augmentation=[]],
augmentation=[]], _strict=false, _cookie=FlowCookie [_value=10],
_hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2,
augmentation=[]], _node=NodeRef
[_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=foo:node:1]]]]}], augmentation=[]

But this has issue when we write flow to real ovs node:
1st time we write flow with action list: POP_VLAN, OUTPUT=27
osgi> addMDFlow openflow:266832637728842 f83
Status of Flow Data Loaded Transaction: COMMITED
osgi> 2014-05-19 20:12:48.347 EDT [md-sal-binding-notification-12] INFO
o.o.o.t.FlowEventListenerLoggingImpl - flow to be
added..........................FlowAdded [_flowRef=FlowRef
[_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=openflow:266832637728842]]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Flo
wCapableNode,
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.Table[key=TableKey [_id=2]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow[key=FlowKey [_id=Uri [_value=206]]]]}], _barrier=false,
_cookieMask=FlowCookie [_value=10], _flags=FlowModFlags
[_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false,
_nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf83,
_installHw=false, _instructions=Instructions [_instruction=[Instruction
[_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase
[_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey
[_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
[augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1,
_key=ActionKey [_order=1], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:65500:27], augmentation=[]], augmentation=[]],
augmentation=[]]], augmentation=[]], augmentation=[]], augmentation=[]]],
augmentation=[]], _match=Match [_ethernetMatch=EthernetMatch
[_ethernetDestination=EthernetDestination [_address=MacAddress
[_value=01:00:00:00:00:00], _mask=MacAddress [_value=01:00:00:00:00:00],
augmentation=[]], augmentation=[]], _vlanMatch=VlanMatch [_vlanId=VlanId
[_vlanId=VlanId [_value=2000], _vlanIdPresent=true, augmentation=[]],
augmentation=[]], augmentation=[]], _strict=false, _cookie=FlowCookie
[_value=10], _hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2,
_transactionId=TransactionId [_value=3], augmentation=[]]
And the ovs show command confirms the result:
[hshen@hshen logs]$ sudo ovs-ofctl dump-flows br-int -O OpenFlow13
OFPST_FLOW reply (OF1.3) (xid=0x2):
cookie=0xa, duration=113.573s, table=2, n_packets=0, n_bytes=0,
send_flow_rem
priority=2,dl_vlan=2000,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
actions=strip_vlan,output:27

However, the log looks weird in the 2nd time and 3rd time:
osgi> addMDFlow openflow:266832637728842 f83
Status of Flow Data Loaded Transaction: COMMITED
osgi> addMDFlow openflow:266832637728842 f83
Status of Flow Data Loaded Transaction: COMMITED

We only get one line log for COMMITED status. And flow is not modified at
ovs node:
[hshen@hshen logs]$ sudo ovs-ofctl dump-flows br-int -O OpenFlow13
OFPST_FLOW reply (OF1.3) (xid=0x2):
cookie=0xa, duration=245.054s, table=2, n_packets=0, n_bytes=0,
send_flow_rem
priority=2,dl_vlan=2000,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
actions=strip_vlan,output:27

It looks like the flow mod message is not even sent to ovs node.
Is there any change in Openflowplugin for modifying the flow?
Please advise hoe we can solve this issue or debug further.

Thanks a lot for your help.

Hsin-Yi


----- Original Message -----
From: "Flavio Fernandes" <ffernand@...>
To: "Hsin-Yi Shen" <hshen@...>
Cc: "Michal Polkoráb" <michal.polkorab@...>, "Abhijit Kumbhare"
<abhijitkoss@...>, "openflowjava-dev"
<openflowjava-dev@...>, "Madhu Venugopal"
<vmadhu@...>, openflowplugin-dev@...
Sent: Friday, May 16, 2014 8:40:20 PM
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 - Multiple
OUPUT actions in the action list of apply-action instruction

Hi Hsin-Yi,

You are right. This is using the test provider. I don¹t really know how
to do it thru openstack-ovsdbŠ. yet. :)

‹ flavio


On May 16, 2014, at 8:37 PM, Hsin-Yi Shen <hshen@...> wrote:

Flavio,
Looks like you tried test provider. Do you try wireshark with
openstack-ovsdb integreation?

Hsin-Yi

----- Original Message -----
From: "Flavio Fernandes" <ffernand@...>
To: "Michal Polkoráb" <michal.polkorab@...>
Cc: "Hsin-Yi Shen" <hshen@...>, "Abhijit Kumbhare"
<abhijitkoss@...>, "openflowjava-dev"
<openflowjava-dev@...>, "Madhu Venugopal"
<vmadhu@...>, openflowplugin-dev@...
Sent: Friday, May 16, 2014 8:28:38 PM
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
Multiple OUPUT actions in the action list of apply-action instruction


Hi folks,

It took me a little playing with, but I did manage to capture the flow
mod packet!


https://www.dropbox.com/s/uumgiccue6ksuhi/Screenshot%202014-05-16%2020.25
.48.png

From the capture, it is packet #7. You need wireshark 1.11 to see the
of 1.3 packets.
From the wireshark output, I see the instruction and the actions as you
expected, Hsin-Yi.




‹ flavio


On May 16, 2014, at 3:17 PM, Michal Polkoráb
<michal.polkorab@...> wrote:

First I would try using wireshark to check the data written to the
wire. This way you will know if there is some problem with the device
or with the controller.

I would also try to put a Log message into:
- OF13OutputActionSerializer in openflowjava
- ActionConvertor in openflowplugin (in output action case)
and rebuilding the code. When running the distribution there should be
three logs for mentioned ApplyActions Instruction.
If there are six log messages, then this should be an issue somewhere
out of openflowplugin translation.
If there is less than three messages the bug should be in the
openflowplugin, 3-5 messages should be a bug in openflowjava.

Michal
________________________________________
From: Hsin-Yi Shen <hshen@...>
Sent: 16 May 2014 20:24
To: Michal Polkoráb; Flavio Fernandes
Cc: Abhijit Kumbhare; openflowjava-dev; Madhu Venugopal;
openflowplugin-dev@...
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
Multiple OUPUT actions in the action list of apply-action instruction

Hi Michal,
Thanks for testing the openflowjava. After fixing the test provider
code, we now see multiple actions of same type in applyActions
Instruction.

But we still see same issue in our OVSDB project using OF 1.3.
While ovsdb code write flows with multiple actions of OUTPUT type,
2014-05-16 18:04:06.147 EDT [pool-18-thread-1] DEBUG
o.o.o.n.p.OF13ProviderManager - createOutputPortInstructions() :
applyAction ApplyActions [_action=[Action [_order=0, _key=ActionKey
[_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
[augmentation=[]], augmentation=[]], augmentation=[]], Action
[_order=1, _key=ActionKey [_order=1], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:112312004696131:1], augmentation=[]],
augmentation=[]], augmentation=[]], Action [_order=2, _key=ActionKey
[_order=2], _action=OutputActionCase [_outputAction=OutputAction
[_outputNodeConnector=Uri [_value=openflow:112312004696131:3],
augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=3,
_key=ActionKey [_order=3], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:112312004696131:4], augmentation=[]],
augmentation=[]], augmentation=[]]], augmentation=[]]
We only see one output action is actually installed:
[root@control-node logs(keystone_admin)]# ovs-ofctl dump-flows br-int
-O OpenFlow13
OFPST_FLOW reply (OF1.3) (xid=0x2):
....
cookie=0x0, duration=1246.988s, table=20, n_packets=26, n_bytes=2644,
send_flow_rem
priority=16384,dl_vlan=2400,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
actions=strip_vlan,output:1

Other output actions just silently disappear.
Could you suggest where we should check for debugging?
Thanks.

Hsin-Yi

----- Original Message -----
From: "Michal Polkoráb" <michal.polkorab@...>
To: "Abhijit Kumbhare" <abhijitkoss@...>, "Hsin-Yi Shen"
<hshen@...>
Cc: "openflowjava-dev" <openflowjava-dev@...>,
"Madhu Venugopal" <vmadhu@...>,
openflowplugin-dev@...
Sent: Friday, May 16, 2014 3:38:04 AM
Subject: RE: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
Multiple OUPUT actions in the action list of apply-action instruction

Hi,


I have tested openflowjava and it supports multiple actions of same
type in ApplyActions Instruction. However, it looks like the
OpenflowpluginTestServiceProvider receives wrong object - as it already
contains only one Output action (judging on the description provided in
the bug 1020).


Regards

Michal Polkorab

________________________________
From: Abhijit Kumbhare <abhijitkoss@...>
Sent: 15 May 2014 23:16
To: Hsin-Yi Shen
Cc: openflowjava-dev; Madhu Venugopal;
openflowplugin-dev@...
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
Multiple OUPUT actions in the action list of apply-action instruction

Thanks Hsin-Yi.


On Thu, May 15, 2014 at 1:37 PM, Hsin-Yi Shen
<hshen@...<mailto:hshen@...>> wrote:
Hi,
We work on the ovsdb project and we find in latest build multiple
OUPUT actions are no longer allowed in the action list of apply-action
instruction in OF 1.3.
This breaks the broadcast in ovsdb. Although we are not sure the issue
is in openflowplugin or openflowjava, we need this bug to be fixed.
We have filed bug 1020 in bugzilla
https://bugs.opendaylight.org/show_bug.cgi?id=1020
Could someone  in openflowplugin or openflowjava help fix this bug?
Thanks.

Hsin-Yi
_______________________________________________
openflowplugin-dev mailing list

openflowplugin-dev@...<mailto:openflowplugin-dev@list
s.opendaylight.org>
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev

MichalPolkoráb
Software Developer

Mlynské Nivy 56 / 821 05 Bratislava / Slovakia
+421 918 378 907 / michal.polkorab@...
reception: +421 2 206 65 111 / www.pantheon.sk
[logo]
MichalPolkoráb
Software Developer

Mlynské Nivy 56 / 821 05 Bratislava / Slovakia
+421 918 378 907 / michal.polkorab@...
reception: +421 2 206 65 111 / www.pantheon.sk
[logo]


_______________________________________________
openflowplugin-dev mailing list
openflowplugin-dev@...
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev

_______________________________________________
openflowplugin-dev mailing list
openflowplugin-dev@...
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev
_______________________________________________
openflowplugin-dev mailing list
openflowplugin-dev@...
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev


Hsin-Yi Shen <hshen@...>
 

HI,
I update the openflowplugin and patch the bug fix. This fixes the flow mod issue in testprovider and ovsdb project.
I will mark BUG 1020 as duplicate of bug 275.
Thanks a lot for your help in debugging.

Hsin-Yi

----- Original Message -----
From: "Luis Gomez" <ecelgp@...>
To: "Abhijit Kumbhare" <abhijitkoss@...>
Cc: "Kamal Rameshan (kramesha)" <kramesha@...>, "openflowjava-dev" <openflowjava-dev@...>, "Flavio Fernandes" <ffernand@...>, "Madhu Venugopal" <vmadhu@...>, openflowplugin-dev@..., "Hsin-Yi Shen" <hshen@...>
Sent: Monday, May 19, 2014 9:31:34 PM
Subject: Re: [openflowplugin-dev] [openflowjava-dev] BUG 1020 - Multiple OUPUT actions in the action list of apply-action instruction


I see this one in the bug: https://git.opendaylight.org/gerrit/#/c/7099/


On May 19, 2014, at 5:42 PM, Abhijit Kumbhare <abhijitkoss@...> wrote:

What is the gerrit number?

On May 19, 2014 5:27 PM, "Kamal Rameshan (kramesha)" <kramesha@...> wrote:

This might be related to Bug : 275 :
https://bugs.opendaylight.org/show_bug.cgi?id=275

This defect solves flow modify.

A gerrit for this is wating to be reviewed

Thanks
Kamal

On 5/19/14 5:20 PM, "Hsin-Yi Shen" <hshen@...> wrote:

Hello all,
After debugging, we find the issue is in flow modify and we are able to
reproduce same issue in test provider.

The behaviour for test case and ovsdb OF13 is as following:
1. First time we write flow with apply-action instruction. The
instruction has actions list: POP_VLAN, OUTPUT=25
2. In second time, we get the action list from original flow, copy and
write new action list to: POP_VLAN, OUPUT=25, OUTPUT=26, allocate a new
apply-action instruction with new action list, and write flow with new
instruction.
3. In third time, we get the action list from original flow, copy and
write new action list to: POP_VLAN, OUPUT=25, OUTPUT=26, OUTPUT=27,
allocate a new apply-action instruction with new action list, and write
flow with new instruction.
And so on...

When we apply this to some foo node, the addMDFlow log looks ok:
First time we write the flow with action list: POP_VLAN, OUTPUT=25
2014-05-19 20:08:05.114 EDT [pool-13-thread-2] INFO
o.o.o.t.OpenflowpluginTestServiceProvider - addFlow - AddFlowInput
[_flowRef=FlowRef [_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=foo:node:1]]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Flo
wCapableNode,
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.Table[key=TableKey [_id=2]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow[key=FlowKey [_id=Uri [_value=206]]]]}],
_flowTable=FlowTableRef
[_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.Table,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=foo:node:1]]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Flo
wCapableNode,
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.Table[key=TableKey [_id=2]]]}], _barrier=false,
_cookieMask=FlowCookie [_value=10], _flags=FlowModFlags
[_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false,
_nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf83,
_installHw=false, _instructions=Instructions [_instruction=[Instruction
[_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase
[_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey
[_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
[augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1,
_key=ActionKey [_order=1], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:65500:25], augmentation=[]], augmentation=[]],
augmentation=[]]], augmentation=[]], augmentation=[]], augmentation=[]]],
augmentation=[]], _match=Match [_ethernetMatch=EthernetMatch
[_ethernetDestination=EthernetDestination [_address=MacAddress
[_value=01:00:00:00:00:00], _mask=MacAddress [_value=01:00:00:00:00:00],
augmentation=[]], augmentation=[]], _vlanMatch=VlanMatch [_vlanId=VlanId
[_vlanId=VlanId [_value=2000], _vlanIdPresent=true, augmentation=[]],
augmentation=[]], augmentation=[]], _strict=false, _cookie=FlowCookie
[_value=10], _hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2,
_node=NodeRef [_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=foo:node:1]]]]}], _transactionUri=Uri
[_value=DOM-0], augmentation=[]]

Second time we write the flow with action list: POP_VLAN, OUTPUT=25,
OUTPUT=26
osgi> addMDFlow foo:node:1 f83
Status of Flow Data Loaded Transaction: COMMITED
osgi> 2014-05-19 20:09:16.778 EDT [pool-13-thread-2] INFO
o.o.o.t.OpenflowpluginTestServiceProvider - updateFlow - UpdateFlowInput
[_flowRef=FlowRef [_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=foo:node:1]]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Flo
wCapableNode,
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.Table[key=TableKey [_id=2]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow[key=FlowKey [_id=Uri [_value=206]]]]}],
_transactionUri=Uri [_value=DOM-1], _originalFlow=OriginalFlow
[_barrier=false, _cookieMask=FlowCookie [_value=10], _flags=FlowModFlags
[_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false,
_nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf83,
_installHw=false, _instructions=Instructions [_instruction=[Instruction
[_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase
[_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey
[_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
[augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1,
_key=ActionKey [_order=1], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:65500:25], augmentation=[]], augmentation=[]],
augmentation=[]]], augmentation=[]], augmentation=[]], augmentation=[]]],
augmentation=[]], _match=Match [_ethernetMatch=EthernetMatch
[_ethernetDestination=EthernetDestination [_address=MacAddress
[_value=01:00:00:00:00:00], _mask=MacAddress [_value=01:00:00:00:00:00],
augmentation=[]], augmentation=[]], _vlanMatch=VlanMatch [_vlanId=VlanId
[_vlanId=VlanId [_value=2000], _vlanIdPresent=true, augmentation=[]],
augmentation=[]], augmentation=[]], _strict=false, _cookie=FlowCookie
[_value=10], _hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2,
augmentation=[]], _updatedFlow=UpdatedFlow [_barrier=false,
_cookieMask=FlowCookie [_value=10], _flags=FlowModFlags
[_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false,
_nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf83,
_installHw=false, _instructions=Instructions [_instruction=[Instruction
[_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase
[_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey
[_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
[augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1,
_key=ActionKey [_order=1], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:65500:25], augmentation=[]], augmentation=[]],
augmentation=[]], Action [_order=2, _key=ActionKey [_order=2],
_action=OutputActionCase [_outputAction=OutputAction
[_outputNodeConnector=Uri [_value=openflow:65500:26], augmentation=[]],
augmentation=[]], augmentation=[]]], augmentation=[]], augmentation=[]],
augmentation=[]]], augmentation=[]], _match=Match
[_ethernetMatch=EthernetMatch [_ethernetDestination=EthernetDestination
[_address=MacAddress [_value=01:00:00:00:00:00], _mask=MacAddress
[_value=01:00:00:00:00:00], augmentation=[]], augmentation=[]],
_vlanMatch=VlanMatch [_vlanId=VlanId [_vlanId=VlanId [_value=2000],
_vlanIdPresent=true, augmentation=[]], augmentation=[]],
augmentation=[]], _strict=false, _cookie=FlowCookie [_value=10],
_hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2,
augmentation=[]], _node=NodeRef
[_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=foo:node:1]]]]}], augmentation=[]

But this has issue when we write flow to real ovs node:
1st time we write flow with action list: POP_VLAN, OUTPUT=27
osgi> addMDFlow openflow:266832637728842 f83
Status of Flow Data Loaded Transaction: COMMITED
osgi> 2014-05-19 20:12:48.347 EDT [md-sal-binding-notification-12] INFO
o.o.o.t.FlowEventListenerLoggingImpl - flow to be
added..........................FlowAdded [_flowRef=FlowRef
[_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=openflow:266832637728842]]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Flo
wCapableNode,
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.Table[key=TableKey [_id=2]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow[key=FlowKey [_id=Uri [_value=206]]]]}], _barrier=false,
_cookieMask=FlowCookie [_value=10], _flags=FlowModFlags
[_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false,
_nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf83,
_installHw=false, _instructions=Instructions [_instruction=[Instruction
[_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase
[_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey
[_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
[augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1,
_key=ActionKey [_order=1], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:65500:27], augmentation=[]], augmentation=[]],
augmentation=[]]], augmentation=[]], augmentation=[]], augmentation=[]]],
augmentation=[]], _match=Match [_ethernetMatch=EthernetMatch
[_ethernetDestination=EthernetDestination [_address=MacAddress
[_value=01:00:00:00:00:00], _mask=MacAddress [_value=01:00:00:00:00:00],
augmentation=[]], augmentation=[]], _vlanMatch=VlanMatch [_vlanId=VlanId
[_vlanId=VlanId [_value=2000], _vlanIdPresent=true, augmentation=[]],
augmentation=[]], augmentation=[]], _strict=false, _cookie=FlowCookie
[_value=10], _hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2,
_transactionId=TransactionId [_value=3], augmentation=[]]
And the ovs show command confirms the result:
[hshen@hshen logs]$ sudo ovs-ofctl dump-flows br-int -O OpenFlow13
OFPST_FLOW reply (OF1.3) (xid=0x2):
cookie=0xa, duration=113.573s, table=2, n_packets=0, n_bytes=0,
send_flow_rem
priority=2,dl_vlan=2000,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
actions=strip_vlan,output:27

However, the log looks weird in the 2nd time and 3rd time:
osgi> addMDFlow openflow:266832637728842 f83
Status of Flow Data Loaded Transaction: COMMITED
osgi> addMDFlow openflow:266832637728842 f83
Status of Flow Data Loaded Transaction: COMMITED

We only get one line log for COMMITED status. And flow is not modified at
ovs node:
[hshen@hshen logs]$ sudo ovs-ofctl dump-flows br-int -O OpenFlow13
OFPST_FLOW reply (OF1.3) (xid=0x2):
cookie=0xa, duration=245.054s, table=2, n_packets=0, n_bytes=0,
send_flow_rem
priority=2,dl_vlan=2000,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
actions=strip_vlan,output:27

It looks like the flow mod message is not even sent to ovs node.
Is there any change in Openflowplugin for modifying the flow?
Please advise hoe we can solve this issue or debug further.

Thanks a lot for your help.

Hsin-Yi


----- Original Message -----
From: "Flavio Fernandes" <ffernand@...>
To: "Hsin-Yi Shen" <hshen@...>
Cc: "Michal Polkoráb" <michal.polkorab@...>, "Abhijit Kumbhare"
<abhijitkoss@...>, "openflowjava-dev"
<openflowjava-dev@...>, "Madhu Venugopal"
<vmadhu@...>, openflowplugin-dev@...
Sent: Friday, May 16, 2014 8:40:20 PM
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 - Multiple
OUPUT actions in the action list of apply-action instruction

Hi Hsin-Yi,

You are right. This is using the test provider. I don¹t really know how
to do it thru openstack-ovsdbŠ. yet. :)

‹ flavio


On May 16, 2014, at 8:37 PM, Hsin-Yi Shen <hshen@...> wrote:

Flavio,
Looks like you tried test provider. Do you try wireshark with
openstack-ovsdb integreation?

Hsin-Yi

----- Original Message -----
From: "Flavio Fernandes" <ffernand@...>
To: "Michal Polkoráb" <michal.polkorab@...>
Cc: "Hsin-Yi Shen" <hshen@...>, "Abhijit Kumbhare"
<abhijitkoss@...>, "openflowjava-dev"
<openflowjava-dev@...>, "Madhu Venugopal"
<vmadhu@...>, openflowplugin-dev@...
Sent: Friday, May 16, 2014 8:28:38 PM
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
Multiple OUPUT actions in the action list of apply-action instruction


Hi folks,

It took me a little playing with, but I did manage to capture the flow
mod packet!


https://www.dropbox.com/s/uumgiccue6ksuhi/Screenshot%202014-05-16%2020.25
.48.png

From the capture, it is packet #7. You need wireshark 1.11 to see the
of 1.3 packets.
From the wireshark output, I see the instruction and the actions as you
expected, Hsin-Yi.




‹ flavio


On May 16, 2014, at 3:17 PM, Michal Polkoráb
<michal.polkorab@...> wrote:

First I would try using wireshark to check the data written to the
wire. This way you will know if there is some problem with the device
or with the controller.

I would also try to put a Log message into:
- OF13OutputActionSerializer in openflowjava
- ActionConvertor in openflowplugin (in output action case)
and rebuilding the code. When running the distribution there should be
three logs for mentioned ApplyActions Instruction.
If there are six log messages, then this should be an issue somewhere
out of openflowplugin translation.
If there is less than three messages the bug should be in the
openflowplugin, 3-5 messages should be a bug in openflowjava.

Michal
________________________________________
From: Hsin-Yi Shen <hshen@...>
Sent: 16 May 2014 20:24
To: Michal Polkoráb; Flavio Fernandes
Cc: Abhijit Kumbhare; openflowjava-dev; Madhu Venugopal;
openflowplugin-dev@...
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
Multiple OUPUT actions in the action list of apply-action instruction

Hi Michal,
Thanks for testing the openflowjava. After fixing the test provider
code, we now see multiple actions of same type in applyActions
Instruction.

But we still see same issue in our OVSDB project using OF 1.3.
While ovsdb code write flows with multiple actions of OUTPUT type,
2014-05-16 18:04:06.147 EDT [pool-18-thread-1] DEBUG
o.o.o.n.p.OF13ProviderManager - createOutputPortInstructions() :
applyAction ApplyActions [_action=[Action [_order=0, _key=ActionKey
[_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
[augmentation=[]], augmentation=[]], augmentation=[]], Action
[_order=1, _key=ActionKey [_order=1], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:112312004696131:1], augmentation=[]],
augmentation=[]], augmentation=[]], Action [_order=2, _key=ActionKey
[_order=2], _action=OutputActionCase [_outputAction=OutputAction
[_outputNodeConnector=Uri [_value=openflow:112312004696131:3],
augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=3,
_key=ActionKey [_order=3], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:112312004696131:4], augmentation=[]],
augmentation=[]], augmentation=[]]], augmentation=[]]
We only see one output action is actually installed:
[root@control-node logs(keystone_admin)]# ovs-ofctl dump-flows br-int
-O OpenFlow13
OFPST_FLOW reply (OF1.3) (xid=0x2):
....
cookie=0x0, duration=1246.988s, table=20, n_packets=26, n_bytes=2644,
send_flow_rem
priority=16384,dl_vlan=2400,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
actions=strip_vlan,output:1

Other output actions just silently disappear.
Could you suggest where we should check for debugging?
Thanks.

Hsin-Yi

----- Original Message -----
From: "Michal Polkoráb" <michal.polkorab@...>
To: "Abhijit Kumbhare" <abhijitkoss@...>, "Hsin-Yi Shen"
<hshen@...>
Cc: "openflowjava-dev" <openflowjava-dev@...>,
"Madhu Venugopal" <vmadhu@...>,
openflowplugin-dev@...
Sent: Friday, May 16, 2014 3:38:04 AM
Subject: RE: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
Multiple OUPUT actions in the action list of apply-action instruction

Hi,


I have tested openflowjava and it supports multiple actions of same
type in ApplyActions Instruction. However, it looks like the
OpenflowpluginTestServiceProvider receives wrong object - as it already
contains only one Output action (judging on the description provided in
the bug 1020).


Regards

Michal Polkorab

________________________________
From: Abhijit Kumbhare <abhijitkoss@...>
Sent: 15 May 2014 23:16
To: Hsin-Yi Shen
Cc: openflowjava-dev; Madhu Venugopal;
openflowplugin-dev@...
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
Multiple OUPUT actions in the action list of apply-action instruction

Thanks Hsin-Yi.


On Thu, May 15, 2014 at 1:37 PM, Hsin-Yi Shen
<hshen@...<mailto:hshen@...>> wrote:
Hi,
We work on the ovsdb project and we find in latest build multiple
OUPUT actions are no longer allowed in the action list of apply-action
instruction in OF 1.3.
This breaks the broadcast in ovsdb. Although we are not sure the issue
is in openflowplugin or openflowjava, we need this bug to be fixed.
We have filed bug 1020 in bugzilla
https://bugs.opendaylight.org/show_bug.cgi?id=1020
Could someone in openflowplugin or openflowjava help fix this bug?
Thanks.

Hsin-Yi
_______________________________________________
openflowplugin-dev mailing list

openflowplugin-dev@...<mailto:openflowplugin-dev@list
s.opendaylight.org>
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev

MichalPolkoráb
Software Developer

Mlynské Nivy 56 / 821 05 Bratislava / Slovakia
+421 918 378 907 / michal.polkorab@...
reception: +421 2 206 65 111 / www.pantheon.sk
[logo]
MichalPolkoráb
Software Developer

Mlynské Nivy 56 / 821 05 Bratislava / Slovakia
+421 918 378 907 / michal.polkorab@...
reception: +421 2 206 65 111 / www.pantheon.sk
[logo]
_______________________________________________
openflowplugin-dev mailing list
openflowplugin-dev@...
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev
_______________________________________________
openflowplugin-dev mailing list
openflowplugin-dev@...
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev
_______________________________________________
openflowplugin-dev mailing list
openflowplugin-dev@...
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev


Madhu Venugopal
 

Thanks folks. Shall we get this fix merged ASAP ?

Our Neutron integration is blocked by these issues and we need to get to a stable version sooner.
With many moving parts across all the projects, identifying such a stable version is getting challenging :-)

-Madhu

On 5/20/14, 1:15 PM, Hsin-Yi Shen wrote:
HI,
I update the openflowplugin and patch the bug fix. This fixes the flow mod issue in testprovider and ovsdb project.
I will mark BUG 1020 as duplicate of bug 275.
Thanks a lot for your help in debugging.

Hsin-Yi

----- Original Message -----
From: "Luis Gomez" <ecelgp@...>
To: "Abhijit Kumbhare" <abhijitkoss@...>
Cc: "Kamal Rameshan (kramesha)" <kramesha@...>, "openflowjava-dev" <openflowjava-dev@...>, "Flavio Fernandes" <ffernand@...>, "Madhu Venugopal" <vmadhu@...>, openflowplugin-dev@..., "Hsin-Yi Shen" <hshen@...>
Sent: Monday, May 19, 2014 9:31:34 PM
Subject: Re: [openflowplugin-dev] [openflowjava-dev] BUG 1020 - Multiple OUPUT actions in the action list of apply-action instruction


I see this one in the bug: https://git.opendaylight.org/gerrit/#/c/7099/


On May 19, 2014, at 5:42 PM, Abhijit Kumbhare <abhijitkoss@...> wrote:

What is the gerrit number?

On May 19, 2014 5:27 PM, "Kamal Rameshan (kramesha)" <kramesha@...> wrote:
This might be related to Bug : 275 :
https://bugs.opendaylight.org/show_bug.cgi?id=275

This defect solves flow modify.

A gerrit for this is wating to be reviewed

Thanks
Kamal

On 5/19/14 5:20 PM, "Hsin-Yi Shen" <hshen@...> wrote:

Hello all,
After debugging, we find the issue is in flow modify and we are able to
reproduce same issue in test provider.

The behaviour for test case and ovsdb OF13 is as following:
1. First time we write flow with apply-action instruction. The
instruction has actions list: POP_VLAN, OUTPUT=25
2. In second time, we get the action list from original flow, copy and
write new action list to: POP_VLAN, OUPUT=25, OUTPUT=26, allocate a new
apply-action instruction with new action list, and write flow with new
instruction.
3. In third time, we get the action list from original flow, copy and
write new action list to: POP_VLAN, OUPUT=25, OUTPUT=26, OUTPUT=27,
allocate a new apply-action instruction with new action list, and write
flow with new instruction.
And so on...

When we apply this to some foo node, the addMDFlow log looks ok:
First time we write the flow with action list: POP_VLAN, OUTPUT=25
2014-05-19 20:08:05.114 EDT [pool-13-thread-2] INFO
o.o.o.t.OpenflowpluginTestServiceProvider - addFlow - AddFlowInput
[_flowRef=FlowRef [_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=foo:node:1]]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Flo
wCapableNode,
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.Table[key=TableKey [_id=2]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow[key=FlowKey [_id=Uri [_value=206]]]]}],
_flowTable=FlowTableRef
[_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.Table,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=foo:node:1]]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Flo
wCapableNode,
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.Table[key=TableKey [_id=2]]]}], _barrier=false,
_cookieMask=FlowCookie [_value=10], _flags=FlowModFlags
[_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false,
_nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf83,
_installHw=false, _instructions=Instructions [_instruction=[Instruction
[_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase
[_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey
[_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
[augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1,
_key=ActionKey [_order=1], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:65500:25], augmentation=[]], augmentation=[]],
augmentation=[]]], augmentation=[]], augmentation=[]], augmentation=[]]],
augmentation=[]], _match=Match [_ethernetMatch=EthernetMatch
[_ethernetDestination=EthernetDestination [_address=MacAddress
[_value=01:00:00:00:00:00], _mask=MacAddress [_value=01:00:00:00:00:00],
augmentation=[]], augmentation=[]], _vlanMatch=VlanMatch [_vlanId=VlanId
[_vlanId=VlanId [_value=2000], _vlanIdPresent=true, augmentation=[]],
augmentation=[]], augmentation=[]], _strict=false, _cookie=FlowCookie
[_value=10], _hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2,
_node=NodeRef [_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=foo:node:1]]]]}], _transactionUri=Uri
[_value=DOM-0], augmentation=[]]

Second time we write the flow with action list: POP_VLAN, OUTPUT=25,
OUTPUT=26
osgi> addMDFlow foo:node:1 f83
Status of Flow Data Loaded Transaction: COMMITED
osgi> 2014-05-19 20:09:16.778 EDT [pool-13-thread-2] INFO
o.o.o.t.OpenflowpluginTestServiceProvider - updateFlow - UpdateFlowInput
[_flowRef=FlowRef [_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=foo:node:1]]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Flo
wCapableNode,
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.Table[key=TableKey [_id=2]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow[key=FlowKey [_id=Uri [_value=206]]]]}],
_transactionUri=Uri [_value=DOM-1], _originalFlow=OriginalFlow
[_barrier=false, _cookieMask=FlowCookie [_value=10], _flags=FlowModFlags
[_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false,
_nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf83,
_installHw=false, _instructions=Instructions [_instruction=[Instruction
[_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase
[_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey
[_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
[augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1,
_key=ActionKey [_order=1], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:65500:25], augmentation=[]], augmentation=[]],
augmentation=[]]], augmentation=[]], augmentation=[]], augmentation=[]]],
augmentation=[]], _match=Match [_ethernetMatch=EthernetMatch
[_ethernetDestination=EthernetDestination [_address=MacAddress
[_value=01:00:00:00:00:00], _mask=MacAddress [_value=01:00:00:00:00:00],
augmentation=[]], augmentation=[]], _vlanMatch=VlanMatch [_vlanId=VlanId
[_vlanId=VlanId [_value=2000], _vlanIdPresent=true, augmentation=[]],
augmentation=[]], augmentation=[]], _strict=false, _cookie=FlowCookie
[_value=10], _hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2,
augmentation=[]], _updatedFlow=UpdatedFlow [_barrier=false,
_cookieMask=FlowCookie [_value=10], _flags=FlowModFlags
[_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false,
_nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf83,
_installHw=false, _instructions=Instructions [_instruction=[Instruction
[_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase
[_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey
[_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
[augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1,
_key=ActionKey [_order=1], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:65500:25], augmentation=[]], augmentation=[]],
augmentation=[]], Action [_order=2, _key=ActionKey [_order=2],
_action=OutputActionCase [_outputAction=OutputAction
[_outputNodeConnector=Uri [_value=openflow:65500:26], augmentation=[]],
augmentation=[]], augmentation=[]]], augmentation=[]], augmentation=[]],
augmentation=[]]], augmentation=[]], _match=Match
[_ethernetMatch=EthernetMatch [_ethernetDestination=EthernetDestination
[_address=MacAddress [_value=01:00:00:00:00:00], _mask=MacAddress
[_value=01:00:00:00:00:00], augmentation=[]], augmentation=[]],
_vlanMatch=VlanMatch [_vlanId=VlanId [_vlanId=VlanId [_value=2000],
_vlanIdPresent=true, augmentation=[]], augmentation=[]],
augmentation=[]], _strict=false, _cookie=FlowCookie [_value=10],
_hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2,
augmentation=[]], _node=NodeRef
[_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=foo:node:1]]]]}], augmentation=[]

But this has issue when we write flow to real ovs node:
1st time we write flow with action list: POP_VLAN, OUTPUT=27
osgi> addMDFlow openflow:266832637728842 f83
Status of Flow Data Loaded Transaction: COMMITED
osgi> 2014-05-19 20:12:48.347 EDT [md-sal-binding-notification-12] INFO
o.o.o.t.FlowEventListenerLoggingImpl - flow to be
added..........................FlowAdded [_flowRef=FlowRef
[_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=openflow:266832637728842]]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Flo
wCapableNode,
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.Table[key=TableKey [_id=2]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow[key=FlowKey [_id=Uri [_value=206]]]]}], _barrier=false,
_cookieMask=FlowCookie [_value=10], _flags=FlowModFlags
[_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false,
_nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf83,
_installHw=false, _instructions=Instructions [_instruction=[Instruction
[_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase
[_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey
[_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
[augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1,
_key=ActionKey [_order=1], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:65500:27], augmentation=[]], augmentation=[]],
augmentation=[]]], augmentation=[]], augmentation=[]], augmentation=[]]],
augmentation=[]], _match=Match [_ethernetMatch=EthernetMatch
[_ethernetDestination=EthernetDestination [_address=MacAddress
[_value=01:00:00:00:00:00], _mask=MacAddress [_value=01:00:00:00:00:00],
augmentation=[]], augmentation=[]], _vlanMatch=VlanMatch [_vlanId=VlanId
[_vlanId=VlanId [_value=2000], _vlanIdPresent=true, augmentation=[]],
augmentation=[]], augmentation=[]], _strict=false, _cookie=FlowCookie
[_value=10], _hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2,
_transactionId=TransactionId [_value=3], augmentation=[]]
And the ovs show command confirms the result:
[hshen@hshen logs]$ sudo ovs-ofctl dump-flows br-int -O OpenFlow13
OFPST_FLOW reply (OF1.3) (xid=0x2):
cookie=0xa, duration=113.573s, table=2, n_packets=0, n_bytes=0,
send_flow_rem
priority=2,dl_vlan=2000,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
actions=strip_vlan,output:27

However, the log looks weird in the 2nd time and 3rd time:
osgi> addMDFlow openflow:266832637728842 f83
Status of Flow Data Loaded Transaction: COMMITED
osgi> addMDFlow openflow:266832637728842 f83
Status of Flow Data Loaded Transaction: COMMITED

We only get one line log for COMMITED status. And flow is not modified at
ovs node:
[hshen@hshen logs]$ sudo ovs-ofctl dump-flows br-int -O OpenFlow13
OFPST_FLOW reply (OF1.3) (xid=0x2):
cookie=0xa, duration=245.054s, table=2, n_packets=0, n_bytes=0,
send_flow_rem
priority=2,dl_vlan=2000,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
actions=strip_vlan,output:27

It looks like the flow mod message is not even sent to ovs node.
Is there any change in Openflowplugin for modifying the flow?
Please advise hoe we can solve this issue or debug further.

Thanks a lot for your help.

Hsin-Yi


----- Original Message -----
From: "Flavio Fernandes" <ffernand@...>
To: "Hsin-Yi Shen" <hshen@...>
Cc: "Michal Polkoráb" <michal.polkorab@...>, "Abhijit Kumbhare"
<abhijitkoss@...>, "openflowjava-dev"
<openflowjava-dev@...>, "Madhu Venugopal"
<vmadhu@...>, openflowplugin-dev@...
Sent: Friday, May 16, 2014 8:40:20 PM
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 - Multiple
OUPUT actions in the action list of apply-action instruction

Hi Hsin-Yi,

You are right. This is using the test provider. I don¹t really know how
to do it thru openstack-ovsdbŠ. yet. :)

‹ flavio


On May 16, 2014, at 8:37 PM, Hsin-Yi Shen <hshen@...> wrote:

Flavio,
Looks like you tried test provider. Do you try wireshark with
openstack-ovsdb integreation?

Hsin-Yi

----- Original Message -----
From: "Flavio Fernandes" <ffernand@...>
To: "Michal Polkoráb" <michal.polkorab@...>
Cc: "Hsin-Yi Shen" <hshen@...>, "Abhijit Kumbhare"
<abhijitkoss@...>, "openflowjava-dev"
<openflowjava-dev@...>, "Madhu Venugopal"
<vmadhu@...>, openflowplugin-dev@...
Sent: Friday, May 16, 2014 8:28:38 PM
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
Multiple OUPUT actions in the action list of apply-action instruction


Hi folks,

It took me a little playing with, but I did manage to capture the flow
mod packet!


https://www.dropbox.com/s/uumgiccue6ksuhi/Screenshot%202014-05-16%2020.25
.48.png

From the capture, it is packet #7. You need wireshark 1.11 to see the
of 1.3 packets.
From the wireshark output, I see the instruction and the actions as you
expected, Hsin-Yi.




‹ flavio


On May 16, 2014, at 3:17 PM, Michal Polkoráb
<michal.polkorab@...> wrote:

First I would try using wireshark to check the data written to the
wire. This way you will know if there is some problem with the device
or with the controller.

I would also try to put a Log message into:
- OF13OutputActionSerializer in openflowjava
- ActionConvertor in openflowplugin (in output action case)
and rebuilding the code. When running the distribution there should be
three logs for mentioned ApplyActions Instruction.
If there are six log messages, then this should be an issue somewhere
out of openflowplugin translation.
If there is less than three messages the bug should be in the
openflowplugin, 3-5 messages should be a bug in openflowjava.

Michal
________________________________________
From: Hsin-Yi Shen <hshen@...>
Sent: 16 May 2014 20:24
To: Michal Polkoráb; Flavio Fernandes
Cc: Abhijit Kumbhare; openflowjava-dev; Madhu Venugopal;
openflowplugin-dev@...
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
Multiple OUPUT actions in the action list of apply-action instruction

Hi Michal,
Thanks for testing the openflowjava. After fixing the test provider
code, we now see multiple actions of same type in applyActions
Instruction.

But we still see same issue in our OVSDB project using OF 1.3.
While ovsdb code write flows with multiple actions of OUTPUT type,
2014-05-16 18:04:06.147 EDT [pool-18-thread-1] DEBUG
o.o.o.n.p.OF13ProviderManager - createOutputPortInstructions() :
applyAction ApplyActions [_action=[Action [_order=0, _key=ActionKey
[_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
[augmentation=[]], augmentation=[]], augmentation=[]], Action
[_order=1, _key=ActionKey [_order=1], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:112312004696131:1], augmentation=[]],
augmentation=[]], augmentation=[]], Action [_order=2, _key=ActionKey
[_order=2], _action=OutputActionCase [_outputAction=OutputAction
[_outputNodeConnector=Uri [_value=openflow:112312004696131:3],
augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=3,
_key=ActionKey [_order=3], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:112312004696131:4], augmentation=[]],
augmentation=[]], augmentation=[]]], augmentation=[]]
We only see one output action is actually installed:
[root@control-node logs(keystone_admin)]# ovs-ofctl dump-flows br-int
-O OpenFlow13
OFPST_FLOW reply (OF1.3) (xid=0x2):
....
cookie=0x0, duration=1246.988s, table=20, n_packets=26, n_bytes=2644,
send_flow_rem
priority=16384,dl_vlan=2400,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
actions=strip_vlan,output:1

Other output actions just silently disappear.
Could you suggest where we should check for debugging?
Thanks.

Hsin-Yi

----- Original Message -----
From: "Michal Polkoráb" <michal.polkorab@...>
To: "Abhijit Kumbhare" <abhijitkoss@...>, "Hsin-Yi Shen"
<hshen@...>
Cc: "openflowjava-dev" <openflowjava-dev@...>,
"Madhu Venugopal" <vmadhu@...>,
openflowplugin-dev@...
Sent: Friday, May 16, 2014 3:38:04 AM
Subject: RE: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
Multiple OUPUT actions in the action list of apply-action instruction

Hi,


I have tested openflowjava and it supports multiple actions of same
type in ApplyActions Instruction. However, it looks like the
OpenflowpluginTestServiceProvider receives wrong object - as it already
contains only one Output action (judging on the description provided in
the bug 1020).


Regards

Michal Polkorab

________________________________
From: Abhijit Kumbhare <abhijitkoss@...>
Sent: 15 May 2014 23:16
To: Hsin-Yi Shen
Cc: openflowjava-dev; Madhu Venugopal;
openflowplugin-dev@...
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
Multiple OUPUT actions in the action list of apply-action instruction

Thanks Hsin-Yi.


On Thu, May 15, 2014 at 1:37 PM, Hsin-Yi Shen
<hshen@...<mailto:hshen@...>> wrote:
Hi,
We work on the ovsdb project and we find in latest build multiple
OUPUT actions are no longer allowed in the action list of apply-action
instruction in OF 1.3.
This breaks the broadcast in ovsdb. Although we are not sure the issue
is in openflowplugin or openflowjava, we need this bug to be fixed.
We have filed bug 1020 in bugzilla
https://bugs.opendaylight.org/show_bug.cgi?id=1020
Could someone in openflowplugin or openflowjava help fix this bug?
Thanks.

Hsin-Yi
_______________________________________________
openflowplugin-dev mailing list

openflowplugin-dev@...<mailto:openflowplugin-dev@list
s.opendaylight.org>
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev

MichalPolkoráb
Software Developer

Mlynské Nivy 56 / 821 05 Bratislava / Slovakia
+421 918 378 907 / michal.polkorab@...
reception: +421 2 206 65 111 / www.pantheon.sk
[logo]
MichalPolkoráb
Software Developer

Mlynské Nivy 56 / 821 05 Bratislava / Slovakia
+421 918 378 907 / michal.polkorab@...
reception: +421 2 206 65 111 / www.pantheon.sk
[logo]
_______________________________________________
openflowplugin-dev mailing list
openflowplugin-dev@...
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev
_______________________________________________
openflowplugin-dev mailing list
openflowplugin-dev@...
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-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


Luis Gomez <ecelgp@...>
 

Chris from Integration is also waiting this merge, please prioritize this patch.

On May 20, 2014, at 1:29 PM, Madhu Venugopal <mavenugo@...> wrote:


Thanks folks. Shall we get this fix merged ASAP ?

Our Neutron integration is blocked by these issues and we need to get to a stable version sooner.
With many moving parts across all the projects, identifying such a stable version is getting challenging :-)

-Madhu

On 5/20/14, 1:15 PM, Hsin-Yi Shen wrote:
HI,
I update the openflowplugin and patch the bug fix. This fixes the flow mod issue in testprovider and ovsdb project.
I will mark BUG 1020 as duplicate of bug 275.
Thanks a lot for your help in debugging.

Hsin-Yi

----- Original Message -----
From: "Luis Gomez" <ecelgp@...>
To: "Abhijit Kumbhare" <abhijitkoss@...>
Cc: "Kamal Rameshan (kramesha)" <kramesha@...>, "openflowjava-dev" <openflowjava-dev@...>, "Flavio Fernandes" <ffernand@...>, "Madhu Venugopal" <vmadhu@...>, openflowplugin-dev@..., "Hsin-Yi Shen" <hshen@...>
Sent: Monday, May 19, 2014 9:31:34 PM
Subject: Re: [openflowplugin-dev] [openflowjava-dev] BUG 1020 - Multiple OUPUT actions in the action list of apply-action instruction


I see this one in the bug: https://git.opendaylight.org/gerrit/#/c/7099/


On May 19, 2014, at 5:42 PM, Abhijit Kumbhare <abhijitkoss@...> wrote:

What is the gerrit number?

On May 19, 2014 5:27 PM, "Kamal Rameshan (kramesha)" <kramesha@...> wrote:
This might be related to Bug : 275 :
https://bugs.opendaylight.org/show_bug.cgi?id=275

This defect solves flow modify.

A gerrit for this is wating to be reviewed

Thanks
Kamal

On 5/19/14 5:20 PM, "Hsin-Yi Shen" <hshen@...> wrote:

Hello all,
After debugging, we find the issue is in flow modify and we are able to
reproduce same issue in test provider.

The behaviour for test case and ovsdb OF13 is as following:
1. First time we write flow with apply-action instruction. The
instruction has actions list: POP_VLAN, OUTPUT=25
2. In second time, we get the action list from original flow, copy and
write new action list to: POP_VLAN, OUPUT=25, OUTPUT=26, allocate a new
apply-action instruction with new action list, and write flow with new
instruction.
3. In third time, we get the action list from original flow, copy and
write new action list to: POP_VLAN, OUPUT=25, OUTPUT=26, OUTPUT=27,
allocate a new apply-action instruction with new action list, and write
flow with new instruction.
And so on...

When we apply this to some foo node, the addMDFlow log looks ok:
First time we write the flow with action list: POP_VLAN, OUTPUT=25
2014-05-19 20:08:05.114 EDT [pool-13-thread-2] INFO
o.o.o.t.OpenflowpluginTestServiceProvider - addFlow - AddFlowInput
[_flowRef=FlowRef [_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=foo:node:1]]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Flo
wCapableNode,
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.Table[key=TableKey [_id=2]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow[key=FlowKey [_id=Uri [_value=206]]]]}],
_flowTable=FlowTableRef
[_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.Table,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=foo:node:1]]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Flo
wCapableNode,
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.Table[key=TableKey [_id=2]]]}], _barrier=false,
_cookieMask=FlowCookie [_value=10], _flags=FlowModFlags
[_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false,
_nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf83,
_installHw=false, _instructions=Instructions [_instruction=[Instruction
[_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase
[_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey
[_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
[augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1,
_key=ActionKey [_order=1], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:65500:25], augmentation=[]], augmentation=[]],
augmentation=[]]], augmentation=[]], augmentation=[]], augmentation=[]]],
augmentation=[]], _match=Match [_ethernetMatch=EthernetMatch
[_ethernetDestination=EthernetDestination [_address=MacAddress
[_value=01:00:00:00:00:00], _mask=MacAddress [_value=01:00:00:00:00:00],
augmentation=[]], augmentation=[]], _vlanMatch=VlanMatch [_vlanId=VlanId
[_vlanId=VlanId [_value=2000], _vlanIdPresent=true, augmentation=[]],
augmentation=[]], augmentation=[]], _strict=false, _cookie=FlowCookie
[_value=10], _hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2,
_node=NodeRef [_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=foo:node:1]]]]}], _transactionUri=Uri
[_value=DOM-0], augmentation=[]]

Second time we write the flow with action list: POP_VLAN, OUTPUT=25,
OUTPUT=26
osgi> addMDFlow foo:node:1 f83
Status of Flow Data Loaded Transaction: COMMITED
osgi> 2014-05-19 20:09:16.778 EDT [pool-13-thread-2] INFO
o.o.o.t.OpenflowpluginTestServiceProvider - updateFlow - UpdateFlowInput
[_flowRef=FlowRef [_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=foo:node:1]]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Flo
wCapableNode,
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.Table[key=TableKey [_id=2]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow[key=FlowKey [_id=Uri [_value=206]]]]}],
_transactionUri=Uri [_value=DOM-1], _originalFlow=OriginalFlow
[_barrier=false, _cookieMask=FlowCookie [_value=10], _flags=FlowModFlags
[_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false,
_nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf83,
_installHw=false, _instructions=Instructions [_instruction=[Instruction
[_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase
[_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey
[_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
[augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1,
_key=ActionKey [_order=1], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:65500:25], augmentation=[]], augmentation=[]],
augmentation=[]]], augmentation=[]], augmentation=[]], augmentation=[]]],
augmentation=[]], _match=Match [_ethernetMatch=EthernetMatch
[_ethernetDestination=EthernetDestination [_address=MacAddress
[_value=01:00:00:00:00:00], _mask=MacAddress [_value=01:00:00:00:00:00],
augmentation=[]], augmentation=[]], _vlanMatch=VlanMatch [_vlanId=VlanId
[_vlanId=VlanId [_value=2000], _vlanIdPresent=true, augmentation=[]],
augmentation=[]], augmentation=[]], _strict=false, _cookie=FlowCookie
[_value=10], _hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2,
augmentation=[]], _updatedFlow=UpdatedFlow [_barrier=false,
_cookieMask=FlowCookie [_value=10], _flags=FlowModFlags
[_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false,
_nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf83,
_installHw=false, _instructions=Instructions [_instruction=[Instruction
[_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase
[_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey
[_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
[augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1,
_key=ActionKey [_order=1], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:65500:25], augmentation=[]], augmentation=[]],
augmentation=[]], Action [_order=2, _key=ActionKey [_order=2],
_action=OutputActionCase [_outputAction=OutputAction
[_outputNodeConnector=Uri [_value=openflow:65500:26], augmentation=[]],
augmentation=[]], augmentation=[]]], augmentation=[]], augmentation=[]],
augmentation=[]]], augmentation=[]], _match=Match
[_ethernetMatch=EthernetMatch [_ethernetDestination=EthernetDestination
[_address=MacAddress [_value=01:00:00:00:00:00], _mask=MacAddress
[_value=01:00:00:00:00:00], augmentation=[]], augmentation=[]],
_vlanMatch=VlanMatch [_vlanId=VlanId [_vlanId=VlanId [_value=2000],
_vlanIdPresent=true, augmentation=[]], augmentation=[]],
augmentation=[]], _strict=false, _cookie=FlowCookie [_value=10],
_hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2,
augmentation=[]], _node=NodeRef
[_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=foo:node:1]]]]}], augmentation=[]

But this has issue when we write flow to real ovs node:
1st time we write flow with action list: POP_VLAN, OUTPUT=27
osgi> addMDFlow openflow:266832637728842 f83
Status of Flow Data Loaded Transaction: COMMITED
osgi> 2014-05-19 20:12:48.347 EDT [md-sal-binding-notification-12] INFO
o.o.o.t.FlowEventListenerLoggingImpl - flow to be
added..........................FlowAdded [_flowRef=FlowRef
[_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=openflow:266832637728842]]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Flo
wCapableNode,
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.Table[key=TableKey [_id=2]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow[key=FlowKey [_id=Uri [_value=206]]]]}], _barrier=false,
_cookieMask=FlowCookie [_value=10], _flags=FlowModFlags
[_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false,
_nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf83,
_installHw=false, _instructions=Instructions [_instruction=[Instruction
[_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase
[_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey
[_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
[augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1,
_key=ActionKey [_order=1], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:65500:27], augmentation=[]], augmentation=[]],
augmentation=[]]], augmentation=[]], augmentation=[]], augmentation=[]]],
augmentation=[]], _match=Match [_ethernetMatch=EthernetMatch
[_ethernetDestination=EthernetDestination [_address=MacAddress
[_value=01:00:00:00:00:00], _mask=MacAddress [_value=01:00:00:00:00:00],
augmentation=[]], augmentation=[]], _vlanMatch=VlanMatch [_vlanId=VlanId
[_vlanId=VlanId [_value=2000], _vlanIdPresent=true, augmentation=[]],
augmentation=[]], augmentation=[]], _strict=false, _cookie=FlowCookie
[_value=10], _hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2,
_transactionId=TransactionId [_value=3], augmentation=[]]
And the ovs show command confirms the result:
[hshen@hshen logs]$ sudo ovs-ofctl dump-flows br-int -O OpenFlow13
OFPST_FLOW reply (OF1.3) (xid=0x2):
cookie=0xa, duration=113.573s, table=2, n_packets=0, n_bytes=0,
send_flow_rem
priority=2,dl_vlan=2000,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
actions=strip_vlan,output:27

However, the log looks weird in the 2nd time and 3rd time:
osgi> addMDFlow openflow:266832637728842 f83
Status of Flow Data Loaded Transaction: COMMITED
osgi> addMDFlow openflow:266832637728842 f83
Status of Flow Data Loaded Transaction: COMMITED

We only get one line log for COMMITED status. And flow is not modified at
ovs node:
[hshen@hshen logs]$ sudo ovs-ofctl dump-flows br-int -O OpenFlow13
OFPST_FLOW reply (OF1.3) (xid=0x2):
cookie=0xa, duration=245.054s, table=2, n_packets=0, n_bytes=0,
send_flow_rem
priority=2,dl_vlan=2000,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
actions=strip_vlan,output:27

It looks like the flow mod message is not even sent to ovs node.
Is there any change in Openflowplugin for modifying the flow?
Please advise hoe we can solve this issue or debug further.

Thanks a lot for your help.

Hsin-Yi


----- Original Message -----
From: "Flavio Fernandes" <ffernand@...>
To: "Hsin-Yi Shen" <hshen@...>
Cc: "Michal Polkoráb" <michal.polkorab@...>, "Abhijit Kumbhare"
<abhijitkoss@...>, "openflowjava-dev"
<openflowjava-dev@...>, "Madhu Venugopal"
<vmadhu@...>, openflowplugin-dev@...
Sent: Friday, May 16, 2014 8:40:20 PM
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 - Multiple
OUPUT actions in the action list of apply-action instruction

Hi Hsin-Yi,

You are right. This is using the test provider. I don¹t really know how
to do it thru openstack-ovsdbŠ. yet. :)

‹ flavio


On May 16, 2014, at 8:37 PM, Hsin-Yi Shen <hshen@...> wrote:

Flavio,
Looks like you tried test provider. Do you try wireshark with
openstack-ovsdb integreation?

Hsin-Yi

----- Original Message -----
From: "Flavio Fernandes" <ffernand@...>
To: "Michal Polkoráb" <michal.polkorab@...>
Cc: "Hsin-Yi Shen" <hshen@...>, "Abhijit Kumbhare"
<abhijitkoss@...>, "openflowjava-dev"
<openflowjava-dev@...>, "Madhu Venugopal"
<vmadhu@...>, openflowplugin-dev@...
Sent: Friday, May 16, 2014 8:28:38 PM
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
Multiple OUPUT actions in the action list of apply-action instruction


Hi folks,

It took me a little playing with, but I did manage to capture the flow
mod packet!


https://www.dropbox.com/s/uumgiccue6ksuhi/Screenshot%202014-05-16%2020.25
.48.png

From the capture, it is packet #7. You need wireshark 1.11 to see the
of 1.3 packets.
From the wireshark output, I see the instruction and the actions as you
expected, Hsin-Yi.




‹ flavio


On May 16, 2014, at 3:17 PM, Michal Polkoráb
<michal.polkorab@...> wrote:

First I would try using wireshark to check the data written to the
wire. This way you will know if there is some problem with the device
or with the controller.

I would also try to put a Log message into:
- OF13OutputActionSerializer in openflowjava
- ActionConvertor in openflowplugin (in output action case)
and rebuilding the code. When running the distribution there should be
three logs for mentioned ApplyActions Instruction.
If there are six log messages, then this should be an issue somewhere
out of openflowplugin translation.
If there is less than three messages the bug should be in the
openflowplugin, 3-5 messages should be a bug in openflowjava.

Michal
________________________________________
From: Hsin-Yi Shen <hshen@...>
Sent: 16 May 2014 20:24
To: Michal Polkoráb; Flavio Fernandes
Cc: Abhijit Kumbhare; openflowjava-dev; Madhu Venugopal;
openflowplugin-dev@...
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
Multiple OUPUT actions in the action list of apply-action instruction

Hi Michal,
Thanks for testing the openflowjava. After fixing the test provider
code, we now see multiple actions of same type in applyActions
Instruction.

But we still see same issue in our OVSDB project using OF 1.3.
While ovsdb code write flows with multiple actions of OUTPUT type,
2014-05-16 18:04:06.147 EDT [pool-18-thread-1] DEBUG
o.o.o.n.p.OF13ProviderManager - createOutputPortInstructions() :
applyAction ApplyActions [_action=[Action [_order=0, _key=ActionKey
[_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
[augmentation=[]], augmentation=[]], augmentation=[]], Action
[_order=1, _key=ActionKey [_order=1], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:112312004696131:1], augmentation=[]],
augmentation=[]], augmentation=[]], Action [_order=2, _key=ActionKey
[_order=2], _action=OutputActionCase [_outputAction=OutputAction
[_outputNodeConnector=Uri [_value=openflow:112312004696131:3],
augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=3,
_key=ActionKey [_order=3], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:112312004696131:4], augmentation=[]],
augmentation=[]], augmentation=[]]], augmentation=[]]
We only see one output action is actually installed:
[root@control-node logs(keystone_admin)]# ovs-ofctl dump-flows br-int
-O OpenFlow13
OFPST_FLOW reply (OF1.3) (xid=0x2):
....
cookie=0x0, duration=1246.988s, table=20, n_packets=26, n_bytes=2644,
send_flow_rem
priority=16384,dl_vlan=2400,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
actions=strip_vlan,output:1

Other output actions just silently disappear.
Could you suggest where we should check for debugging?
Thanks.

Hsin-Yi

----- Original Message -----
From: "Michal Polkoráb" <michal.polkorab@...>
To: "Abhijit Kumbhare" <abhijitkoss@...>, "Hsin-Yi Shen"
<hshen@...>
Cc: "openflowjava-dev" <openflowjava-dev@...>,
"Madhu Venugopal" <vmadhu@...>,
openflowplugin-dev@...
Sent: Friday, May 16, 2014 3:38:04 AM
Subject: RE: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
Multiple OUPUT actions in the action list of apply-action instruction

Hi,


I have tested openflowjava and it supports multiple actions of same
type in ApplyActions Instruction. However, it looks like the
OpenflowpluginTestServiceProvider receives wrong object - as it already
contains only one Output action (judging on the description provided in
the bug 1020).


Regards

Michal Polkorab

________________________________
From: Abhijit Kumbhare <abhijitkoss@...>
Sent: 15 May 2014 23:16
To: Hsin-Yi Shen
Cc: openflowjava-dev; Madhu Venugopal;
openflowplugin-dev@...
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
Multiple OUPUT actions in the action list of apply-action instruction

Thanks Hsin-Yi.


On Thu, May 15, 2014 at 1:37 PM, Hsin-Yi Shen
<hshen@...<mailto:hshen@...>> wrote:
Hi,
We work on the ovsdb project and we find in latest build multiple
OUPUT actions are no longer allowed in the action list of apply-action
instruction in OF 1.3.
This breaks the broadcast in ovsdb. Although we are not sure the issue
is in openflowplugin or openflowjava, we need this bug to be fixed.
We have filed bug 1020 in bugzilla
https://bugs.opendaylight.org/show_bug.cgi?id=1020
Could someone in openflowplugin or openflowjava help fix this bug?
Thanks.

Hsin-Yi
_______________________________________________
openflowplugin-dev mailing list

openflowplugin-dev@...<mailto:openflowplugin-dev@list
s.opendaylight.org>
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev

MichalPolkoráb
Software Developer

Mlynské Nivy 56 / 821 05 Bratislava / Slovakia
+421 918 378 907 / michal.polkorab@...
reception: +421 2 206 65 111 / www.pantheon.sk
[logo]
MichalPolkoráb
Software Developer

Mlynské Nivy 56 / 821 05 Bratislava / Slovakia
+421 918 378 907 / michal.polkorab@...
reception: +421 2 206 65 111 / www.pantheon.sk
[logo]
_______________________________________________
openflowplugin-dev mailing list
openflowplugin-dev@...
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev
_______________________________________________
openflowplugin-dev mailing list
openflowplugin-dev@...
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-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


Ed Warnicke (eaw) <eaw@...>
 

Madhu,
It looks like this fix is merged:
https://git.opendaylight.org/gerrit/#/c/7099/

Are you guys unblocked now? (wanted to check… because a bug isn’t really fixed till
the reporters report back that stuff is working now ;) )

Ed

On May 20, 2014, at 1:29 PM, Madhu Venugopal <mavenugo@...> wrote:


Thanks folks. Shall we get this fix merged ASAP ?

Our Neutron integration is blocked by these issues and we need to get to a stable version sooner.
With many moving parts across all the projects, identifying such a stable version is getting challenging :-)

-Madhu

On 5/20/14, 1:15 PM, Hsin-Yi Shen wrote:
HI,
I update the openflowplugin and patch the bug fix. This fixes the flow mod issue in testprovider and ovsdb project.
I will mark BUG 1020 as duplicate of bug 275.
Thanks a lot for your help in debugging.

Hsin-Yi

----- Original Message -----
From: "Luis Gomez" <ecelgp@...>
To: "Abhijit Kumbhare" <abhijitkoss@...>
Cc: "Kamal Rameshan (kramesha)" <kramesha@...>, "openflowjava-dev" <openflowjava-dev@...>, "Flavio Fernandes" <ffernand@...>, "Madhu Venugopal" <vmadhu@...>, openflowplugin-dev@..., "Hsin-Yi Shen" <hshen@...>
Sent: Monday, May 19, 2014 9:31:34 PM
Subject: Re: [openflowplugin-dev] [openflowjava-dev] BUG 1020 - Multiple OUPUT actions in the action list of apply-action instruction


I see this one in the bug: https://git.opendaylight.org/gerrit/#/c/7099/


On May 19, 2014, at 5:42 PM, Abhijit Kumbhare <abhijitkoss@...> wrote:

What is the gerrit number?

On May 19, 2014 5:27 PM, "Kamal Rameshan (kramesha)" <kramesha@...> wrote:
This might be related to Bug : 275 :
https://bugs.opendaylight.org/show_bug.cgi?id=275

This defect solves flow modify.

A gerrit for this is wating to be reviewed

Thanks
Kamal

On 5/19/14 5:20 PM, "Hsin-Yi Shen" <hshen@...> wrote:

Hello all,
After debugging, we find the issue is in flow modify and we are able to
reproduce same issue in test provider.

The behaviour for test case and ovsdb OF13 is as following:
1. First time we write flow with apply-action instruction. The
instruction has actions list: POP_VLAN, OUTPUT=25
2. In second time, we get the action list from original flow, copy and
write new action list to: POP_VLAN, OUPUT=25, OUTPUT=26, allocate a new
apply-action instruction with new action list, and write flow with new
instruction.
3. In third time, we get the action list from original flow, copy and
write new action list to: POP_VLAN, OUPUT=25, OUTPUT=26, OUTPUT=27,
allocate a new apply-action instruction with new action list, and write
flow with new instruction.
And so on...

When we apply this to some foo node, the addMDFlow log looks ok:
First time we write the flow with action list: POP_VLAN, OUTPUT=25
2014-05-19 20:08:05.114 EDT [pool-13-thread-2] INFO
o.o.o.t.OpenflowpluginTestServiceProvider - addFlow - AddFlowInput
[_flowRef=FlowRef [_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=foo:node:1]]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Flo
wCapableNode,
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.Table[key=TableKey [_id=2]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow[key=FlowKey [_id=Uri [_value=206]]]]}],
_flowTable=FlowTableRef
[_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.Table,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=foo:node:1]]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Flo
wCapableNode,
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.Table[key=TableKey [_id=2]]]}], _barrier=false,
_cookieMask=FlowCookie [_value=10], _flags=FlowModFlags
[_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false,
_nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf83,
_installHw=false, _instructions=Instructions [_instruction=[Instruction
[_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase
[_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey
[_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
[augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1,
_key=ActionKey [_order=1], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:65500:25], augmentation=[]], augmentation=[]],
augmentation=[]]], augmentation=[]], augmentation=[]], augmentation=[]]],
augmentation=[]], _match=Match [_ethernetMatch=EthernetMatch
[_ethernetDestination=EthernetDestination [_address=MacAddress
[_value=01:00:00:00:00:00], _mask=MacAddress [_value=01:00:00:00:00:00],
augmentation=[]], augmentation=[]], _vlanMatch=VlanMatch [_vlanId=VlanId
[_vlanId=VlanId [_value=2000], _vlanIdPresent=true, augmentation=[]],
augmentation=[]], augmentation=[]], _strict=false, _cookie=FlowCookie
[_value=10], _hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2,
_node=NodeRef [_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=foo:node:1]]]]}], _transactionUri=Uri
[_value=DOM-0], augmentation=[]]

Second time we write the flow with action list: POP_VLAN, OUTPUT=25,
OUTPUT=26
osgi> addMDFlow foo:node:1 f83
Status of Flow Data Loaded Transaction: COMMITED
osgi> 2014-05-19 20:09:16.778 EDT [pool-13-thread-2] INFO
o.o.o.t.OpenflowpluginTestServiceProvider - updateFlow - UpdateFlowInput
[_flowRef=FlowRef [_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=foo:node:1]]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Flo
wCapableNode,
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.Table[key=TableKey [_id=2]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow[key=FlowKey [_id=Uri [_value=206]]]]}],
_transactionUri=Uri [_value=DOM-1], _originalFlow=OriginalFlow
[_barrier=false, _cookieMask=FlowCookie [_value=10], _flags=FlowModFlags
[_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false,
_nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf83,
_installHw=false, _instructions=Instructions [_instruction=[Instruction
[_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase
[_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey
[_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
[augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1,
_key=ActionKey [_order=1], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:65500:25], augmentation=[]], augmentation=[]],
augmentation=[]]], augmentation=[]], augmentation=[]], augmentation=[]]],
augmentation=[]], _match=Match [_ethernetMatch=EthernetMatch
[_ethernetDestination=EthernetDestination [_address=MacAddress
[_value=01:00:00:00:00:00], _mask=MacAddress [_value=01:00:00:00:00:00],
augmentation=[]], augmentation=[]], _vlanMatch=VlanMatch [_vlanId=VlanId
[_vlanId=VlanId [_value=2000], _vlanIdPresent=true, augmentation=[]],
augmentation=[]], augmentation=[]], _strict=false, _cookie=FlowCookie
[_value=10], _hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2,
augmentation=[]], _updatedFlow=UpdatedFlow [_barrier=false,
_cookieMask=FlowCookie [_value=10], _flags=FlowModFlags
[_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false,
_nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf83,
_installHw=false, _instructions=Instructions [_instruction=[Instruction
[_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase
[_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey
[_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
[augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1,
_key=ActionKey [_order=1], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:65500:25], augmentation=[]], augmentation=[]],
augmentation=[]], Action [_order=2, _key=ActionKey [_order=2],
_action=OutputActionCase [_outputAction=OutputAction
[_outputNodeConnector=Uri [_value=openflow:65500:26], augmentation=[]],
augmentation=[]], augmentation=[]]], augmentation=[]], augmentation=[]],
augmentation=[]]], augmentation=[]], _match=Match
[_ethernetMatch=EthernetMatch [_ethernetDestination=EthernetDestination
[_address=MacAddress [_value=01:00:00:00:00:00], _mask=MacAddress
[_value=01:00:00:00:00:00], augmentation=[]], augmentation=[]],
_vlanMatch=VlanMatch [_vlanId=VlanId [_vlanId=VlanId [_value=2000],
_vlanIdPresent=true, augmentation=[]], augmentation=[]],
augmentation=[]], _strict=false, _cookie=FlowCookie [_value=10],
_hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2,
augmentation=[]], _node=NodeRef
[_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=foo:node:1]]]]}], augmentation=[]

But this has issue when we write flow to real ovs node:
1st time we write flow with action list: POP_VLAN, OUTPUT=27
osgi> addMDFlow openflow:266832637728842 f83
Status of Flow Data Loaded Transaction: COMMITED
osgi> 2014-05-19 20:12:48.347 EDT [md-sal-binding-notification-12] INFO
o.o.o.t.FlowEventListenerLoggingImpl - flow to be
added..........................FlowAdded [_flowRef=FlowRef
[_value=KeyedInstanceIdentifier{targetType=interface
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow,
path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
des,
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
de[key=NodeKey [_id=Uri [_value=openflow:266832637728842]]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Flo
wCapableNode,
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.Table[key=TableKey [_id=2]],
org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
les.table.Flow[key=FlowKey [_id=Uri [_value=206]]]]}], _barrier=false,
_cookieMask=FlowCookie [_value=10], _flags=FlowModFlags
[_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false,
_nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf83,
_installHw=false, _instructions=Instructions [_instruction=[Instruction
[_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase
[_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey
[_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
[augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1,
_key=ActionKey [_order=1], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:65500:27], augmentation=[]], augmentation=[]],
augmentation=[]]], augmentation=[]], augmentation=[]], augmentation=[]]],
augmentation=[]], _match=Match [_ethernetMatch=EthernetMatch
[_ethernetDestination=EthernetDestination [_address=MacAddress
[_value=01:00:00:00:00:00], _mask=MacAddress [_value=01:00:00:00:00:00],
augmentation=[]], augmentation=[]], _vlanMatch=VlanMatch [_vlanId=VlanId
[_vlanId=VlanId [_value=2000], _vlanIdPresent=true, augmentation=[]],
augmentation=[]], augmentation=[]], _strict=false, _cookie=FlowCookie
[_value=10], _hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2,
_transactionId=TransactionId [_value=3], augmentation=[]]
And the ovs show command confirms the result:
[hshen@hshen logs]$ sudo ovs-ofctl dump-flows br-int -O OpenFlow13
OFPST_FLOW reply (OF1.3) (xid=0x2):
cookie=0xa, duration=113.573s, table=2, n_packets=0, n_bytes=0,
send_flow_rem
priority=2,dl_vlan=2000,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
actions=strip_vlan,output:27

However, the log looks weird in the 2nd time and 3rd time:
osgi> addMDFlow openflow:266832637728842 f83
Status of Flow Data Loaded Transaction: COMMITED
osgi> addMDFlow openflow:266832637728842 f83
Status of Flow Data Loaded Transaction: COMMITED

We only get one line log for COMMITED status. And flow is not modified at
ovs node:
[hshen@hshen logs]$ sudo ovs-ofctl dump-flows br-int -O OpenFlow13
OFPST_FLOW reply (OF1.3) (xid=0x2):
cookie=0xa, duration=245.054s, table=2, n_packets=0, n_bytes=0,
send_flow_rem
priority=2,dl_vlan=2000,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
actions=strip_vlan,output:27

It looks like the flow mod message is not even sent to ovs node.
Is there any change in Openflowplugin for modifying the flow?
Please advise hoe we can solve this issue or debug further.

Thanks a lot for your help.

Hsin-Yi


----- Original Message -----
From: "Flavio Fernandes" <ffernand@...>
To: "Hsin-Yi Shen" <hshen@...>
Cc: "Michal Polkoráb" <michal.polkorab@...>, "Abhijit Kumbhare"
<abhijitkoss@...>, "openflowjava-dev"
<openflowjava-dev@...>, "Madhu Venugopal"
<vmadhu@...>, openflowplugin-dev@...
Sent: Friday, May 16, 2014 8:40:20 PM
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 - Multiple
OUPUT actions in the action list of apply-action instruction

Hi Hsin-Yi,

You are right. This is using the test provider. I don¹t really know how
to do it thru openstack-ovsdbŠ. yet. :)

‹ flavio


On May 16, 2014, at 8:37 PM, Hsin-Yi Shen <hshen@...> wrote:

Flavio,
Looks like you tried test provider. Do you try wireshark with
openstack-ovsdb integreation?

Hsin-Yi

----- Original Message -----
From: "Flavio Fernandes" <ffernand@...>
To: "Michal Polkoráb" <michal.polkorab@...>
Cc: "Hsin-Yi Shen" <hshen@...>, "Abhijit Kumbhare"
<abhijitkoss@...>, "openflowjava-dev"
<openflowjava-dev@...>, "Madhu Venugopal"
<vmadhu@...>, openflowplugin-dev@...
Sent: Friday, May 16, 2014 8:28:38 PM
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
Multiple OUPUT actions in the action list of apply-action instruction


Hi folks,

It took me a little playing with, but I did manage to capture the flow
mod packet!


https://www.dropbox.com/s/uumgiccue6ksuhi/Screenshot%202014-05-16%2020.25
.48.png

From the capture, it is packet #7. You need wireshark 1.11 to see the
of 1.3 packets.
From the wireshark output, I see the instruction and the actions as you
expected, Hsin-Yi.




‹ flavio


On May 16, 2014, at 3:17 PM, Michal Polkoráb
<michal.polkorab@...> wrote:

First I would try using wireshark to check the data written to the
wire. This way you will know if there is some problem with the device
or with the controller.

I would also try to put a Log message into:
- OF13OutputActionSerializer in openflowjava
- ActionConvertor in openflowplugin (in output action case)
and rebuilding the code. When running the distribution there should be
three logs for mentioned ApplyActions Instruction.
If there are six log messages, then this should be an issue somewhere
out of openflowplugin translation.
If there is less than three messages the bug should be in the
openflowplugin, 3-5 messages should be a bug in openflowjava.

Michal
________________________________________
From: Hsin-Yi Shen <hshen@...>
Sent: 16 May 2014 20:24
To: Michal Polkoráb; Flavio Fernandes
Cc: Abhijit Kumbhare; openflowjava-dev; Madhu Venugopal;
openflowplugin-dev@...
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
Multiple OUPUT actions in the action list of apply-action instruction

Hi Michal,
Thanks for testing the openflowjava. After fixing the test provider
code, we now see multiple actions of same type in applyActions
Instruction.

But we still see same issue in our OVSDB project using OF 1.3.
While ovsdb code write flows with multiple actions of OUTPUT type,
2014-05-16 18:04:06.147 EDT [pool-18-thread-1] DEBUG
o.o.o.n.p.OF13ProviderManager - createOutputPortInstructions() :
applyAction ApplyActions [_action=[Action [_order=0, _key=ActionKey
[_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
[augmentation=[]], augmentation=[]], augmentation=[]], Action
[_order=1, _key=ActionKey [_order=1], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:112312004696131:1], augmentation=[]],
augmentation=[]], augmentation=[]], Action [_order=2, _key=ActionKey
[_order=2], _action=OutputActionCase [_outputAction=OutputAction
[_outputNodeConnector=Uri [_value=openflow:112312004696131:3],
augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=3,
_key=ActionKey [_order=3], _action=OutputActionCase
[_outputAction=OutputAction [_outputNodeConnector=Uri
[_value=openflow:112312004696131:4], augmentation=[]],
augmentation=[]], augmentation=[]]], augmentation=[]]
We only see one output action is actually installed:
[root@control-node logs(keystone_admin)]# ovs-ofctl dump-flows br-int
-O OpenFlow13
OFPST_FLOW reply (OF1.3) (xid=0x2):
....
cookie=0x0, duration=1246.988s, table=20, n_packets=26, n_bytes=2644,
send_flow_rem
priority=16384,dl_vlan=2400,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
actions=strip_vlan,output:1

Other output actions just silently disappear.
Could you suggest where we should check for debugging?
Thanks.

Hsin-Yi

----- Original Message -----
From: "Michal Polkoráb" <michal.polkorab@...>
To: "Abhijit Kumbhare" <abhijitkoss@...>, "Hsin-Yi Shen"
<hshen@...>
Cc: "openflowjava-dev" <openflowjava-dev@...>,
"Madhu Venugopal" <vmadhu@...>,
openflowplugin-dev@...
Sent: Friday, May 16, 2014 3:38:04 AM
Subject: RE: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
Multiple OUPUT actions in the action list of apply-action instruction

Hi,


I have tested openflowjava and it supports multiple actions of same
type in ApplyActions Instruction. However, it looks like the
OpenflowpluginTestServiceProvider receives wrong object - as it already
contains only one Output action (judging on the description provided in
the bug 1020).


Regards

Michal Polkorab

________________________________
From: Abhijit Kumbhare <abhijitkoss@...>
Sent: 15 May 2014 23:16
To: Hsin-Yi Shen
Cc: openflowjava-dev; Madhu Venugopal;
openflowplugin-dev@...
Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
Multiple OUPUT actions in the action list of apply-action instruction

Thanks Hsin-Yi.


On Thu, May 15, 2014 at 1:37 PM, Hsin-Yi Shen
<hshen@...<mailto:hshen@...>> wrote:
Hi,
We work on the ovsdb project and we find in latest build multiple
OUPUT actions are no longer allowed in the action list of apply-action
instruction in OF 1.3.
This breaks the broadcast in ovsdb. Although we are not sure the issue
is in openflowplugin or openflowjava, we need this bug to be fixed.
We have filed bug 1020 in bugzilla
https://bugs.opendaylight.org/show_bug.cgi?id=1020
Could someone in openflowplugin or openflowjava help fix this bug?
Thanks.

Hsin-Yi
_______________________________________________
openflowplugin-dev mailing list

openflowplugin-dev@...<mailto:openflowplugin-dev@list
s.opendaylight.org>
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev

MichalPolkoráb
Software Developer

Mlynské Nivy 56 / 821 05 Bratislava / Slovakia
+421 918 378 907 / michal.polkorab@...
reception: +421 2 206 65 111 / www.pantheon.sk
[logo]
MichalPolkoráb
Software Developer

Mlynské Nivy 56 / 821 05 Bratislava / Slovakia
+421 918 378 907 / michal.polkorab@...
reception: +421 2 206 65 111 / www.pantheon.sk
[logo]
_______________________________________________
openflowplugin-dev mailing list
openflowplugin-dev@...
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev
_______________________________________________
openflowplugin-dev mailing list
openflowplugin-dev@...
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-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
_______________________________________________
openflowjava-dev mailing list
openflowjava-dev@...
https://lists.opendaylight.org/mailman/listinfo/openflowjava-dev


Abhijit Kumbhare
 

Yes - it was merged yesterday evening. It was tested prior to merging by Hsin-Yi (and it fixed her issue) - but if it is tested again by her after merge that will be great.


On Wed, May 21, 2014 at 8:27 AM, Ed Warnicke (eaw) <eaw@...> wrote:
Madhu,
        It looks like this fix is merged:
https://git.opendaylight.org/gerrit/#/c/7099/

        Are you guys unblocked now? (wanted to check… because a bug isn’t really fixed till
the reporters report back that stuff is working now ;) )

Ed
On May 20, 2014, at 1:29 PM, Madhu Venugopal <mavenugo@...> wrote:

>
> Thanks folks. Shall we get this fix merged ASAP ?
>
> Our Neutron integration is blocked by these issues and we need to get to a stable version sooner.
> With many moving parts across all the projects, identifying such a stable version is getting challenging :-)
>
> -Madhu
>
> On 5/20/14, 1:15 PM, Hsin-Yi Shen wrote:
>> HI,
>> I update the openflowplugin and patch the bug fix. This fixes the flow mod issue in testprovider and ovsdb project.
>> I will mark BUG 1020 as duplicate of bug 275.
>> Thanks a lot for your help in debugging.
>>
>> Hsin-Yi
>>
>> ----- Original Message -----
>> From: "Luis Gomez" <ecelgp@...>
>> To: "Abhijit Kumbhare" <abhijitkoss@...>
>> Cc: "Kamal Rameshan (kramesha)" <kramesha@...>, "openflowjava-dev" <openflowjava-dev@...>, "Flavio Fernandes" <ffernand@...>, "Madhu Venugopal" <vmadhu@...>, openflowplugin-dev@..., "Hsin-Yi Shen" <hshen@...>
>> Sent: Monday, May 19, 2014 9:31:34 PM
>> Subject: Re: [openflowplugin-dev] [openflowjava-dev] BUG 1020 - Multiple OUPUT actions in the action list of apply-action instruction
>>
>>
>> I see this one in the bug: https://git.opendaylight.org/gerrit/#/c/7099/
>>
>>
>> On May 19, 2014, at 5:42 PM, Abhijit Kumbhare <abhijitkoss@...> wrote:
>>
>>> What is the gerrit number?
>>>
>>> On May 19, 2014 5:27 PM, "Kamal Rameshan (kramesha)" <kramesha@...> wrote:
>>>> This might be related to Bug : 275 :
>>>> https://bugs.opendaylight.org/show_bug.cgi?id=275
>>>>
>>>> This defect solves flow modify.
>>>>
>>>> A gerrit for this is wating to be reviewed
>>>>
>>>> Thanks
>>>> Kamal
>>>>
>>>> On 5/19/14 5:20 PM, "Hsin-Yi Shen" <hshen@...> wrote:
>>>>
>>>>> Hello all,
>>>>> After debugging, we find the issue is in flow modify and we are able to
>>>>> reproduce same issue in test provider.
>>>>>
>>>>> The behaviour for test case and ovsdb OF13 is as following:
>>>>> 1. First time we write flow with apply-action instruction. The
>>>>> instruction has actions list: POP_VLAN, OUTPUT=25
>>>>> 2. In second time, we get the action list from original flow, copy and
>>>>> write new action list to: POP_VLAN, OUPUT=25, OUTPUT=26, allocate a new
>>>>> apply-action instruction with new action list, and write flow with new
>>>>> instruction.
>>>>> 3. In third time,  we get the action list from original flow, copy and
>>>>> write new action list to: POP_VLAN, OUPUT=25, OUTPUT=26, OUTPUT=27,
>>>>> allocate a new apply-action instruction with new action list, and write
>>>>> flow with new instruction.
>>>>> And so on...
>>>>>
>>>>> When we apply this to some foo node, the addMDFlow log looks ok:
>>>>> First time we write the flow with action list: POP_VLAN, OUTPUT=25
>>>>> 2014-05-19 20:08:05.114 EDT [pool-13-thread-2] INFO
>>>>> o.o.o.t.OpenflowpluginTestServiceProvider - addFlow - AddFlowInput
>>>>> [_flowRef=FlowRef [_value=KeyedInstanceIdentifier{targetType=interface
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
>>>>> les.table.Flow,
>>>>> path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
>>>>> des,
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
>>>>> de[key=NodeKey [_id=Uri [_value=foo:node:1]]],
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Flo
>>>>> wCapableNode,
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
>>>>> les.Table[key=TableKey [_id=2]],
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
>>>>> les.table.Flow[key=FlowKey [_id=Uri [_value=206]]]]}],
>>>>> _flowTable=FlowTableRef
>>>>> [_value=KeyedInstanceIdentifier{targetType=interface
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
>>>>> les.Table,
>>>>> path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
>>>>> des,
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
>>>>> de[key=NodeKey [_id=Uri [_value=foo:node:1]]],
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Flo
>>>>> wCapableNode,
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
>>>>> les.Table[key=TableKey [_id=2]]]}], _barrier=false,
>>>>> _cookieMask=FlowCookie [_value=10], _flags=FlowModFlags
>>>>> [_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false,
>>>>> _nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf83,
>>>>> _installHw=false, _instructions=Instructions [_instruction=[Instruction
>>>>> [_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase
>>>>> [_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey
>>>>> [_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
>>>>> [augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1,
>>>>> _key=ActionKey [_order=1], _action=OutputActionCase
>>>>> [_outputAction=OutputAction [_outputNodeConnector=Uri
>>>>> [_value=openflow:65500:25], augmentation=[]], augmentation=[]],
>>>>> augmentation=[]]], augmentation=[]], augmentation=[]], augmentation=[]]],
>>>>> augmentation=[]], _match=Match [_ethernetMatch=EthernetMatch
>>>>> [_ethernetDestination=EthernetDestination [_address=MacAddress
>>>>> [_value=01:00:00:00:00:00], _mask=MacAddress [_value=01:00:00:00:00:00],
>>>>> augmentation=[]], augmentation=[]], _vlanMatch=VlanMatch [_vlanId=VlanId
>>>>> [_vlanId=VlanId [_value=2000], _vlanIdPresent=true, augmentation=[]],
>>>>> augmentation=[]], augmentation=[]], _strict=false, _cookie=FlowCookie
>>>>> [_value=10], _hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2,
>>>>> _node=NodeRef [_value=KeyedInstanceIdentifier{targetType=interface
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
>>>>> de,
>>>>> path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
>>>>> des,
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
>>>>> de[key=NodeKey [_id=Uri [_value=foo:node:1]]]]}], _transactionUri=Uri
>>>>> [_value=DOM-0], augmentation=[]]
>>>>>
>>>>> Second time we write the flow with action list: POP_VLAN, OUTPUT=25,
>>>>> OUTPUT=26
>>>>> osgi> addMDFlow foo:node:1 f83
>>>>> Status of Flow Data Loaded Transaction: COMMITED
>>>>> osgi> 2014-05-19 20:09:16.778 EDT [pool-13-thread-2] INFO
>>>>> o.o.o.t.OpenflowpluginTestServiceProvider - updateFlow - UpdateFlowInput
>>>>> [_flowRef=FlowRef [_value=KeyedInstanceIdentifier{targetType=interface
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
>>>>> les.table.Flow,
>>>>> path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
>>>>> des,
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
>>>>> de[key=NodeKey [_id=Uri [_value=foo:node:1]]],
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Flo
>>>>> wCapableNode,
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
>>>>> les.Table[key=TableKey [_id=2]],
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
>>>>> les.table.Flow[key=FlowKey [_id=Uri [_value=206]]]]}],
>>>>> _transactionUri=Uri [_value=DOM-1], _originalFlow=OriginalFlow
>>>>> [_barrier=false, _cookieMask=FlowCookie [_value=10], _flags=FlowModFlags
>>>>> [_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false,
>>>>> _nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf83,
>>>>> _installHw=false, _instructions=Instructions [_instruction=[Instruction
>>>>> [_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase
>>>>> [_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey
>>>>> [_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
>>>>> [augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1,
>>>>> _key=ActionKey [_order=1], _action=OutputActionCase
>>>>> [_outputAction=OutputAction [_outputNodeConnector=Uri
>>>>> [_value=openflow:65500:25], augmentation=[]], augmentation=[]],
>>>>> augmentation=[]]], augmentation=[]], augmentation=[]], augmentation=[]]],
>>>>> augmentation=[]], _match=Match [_ethernetMatch=EthernetMatch
>>>>> [_ethernetDestination=EthernetDestination [_address=MacAddress
>>>>> [_value=01:00:00:00:00:00], _mask=MacAddress [_value=01:00:00:00:00:00],
>>>>> augmentation=[]], augmentation=[]], _vlanMatch=VlanMatch [_vlanId=VlanId
>>>>> [_vlanId=VlanId [_value=2000], _vlanIdPresent=true, augmentation=[]],
>>>>> augmentation=[]], augmentation=[]], _strict=false, _cookie=FlowCookie
>>>>> [_value=10], _hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2,
>>>>> augmentation=[]], _updatedFlow=UpdatedFlow [_barrier=false,
>>>>> _cookieMask=FlowCookie [_value=10], _flags=FlowModFlags
>>>>> [_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false,
>>>>> _nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf83,
>>>>> _installHw=false, _instructions=Instructions [_instruction=[Instruction
>>>>> [_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase
>>>>> [_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey
>>>>> [_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
>>>>> [augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1,
>>>>> _key=ActionKey [_order=1], _action=OutputActionCase
>>>>> [_outputAction=OutputAction [_outputNodeConnector=Uri
>>>>> [_value=openflow:65500:25], augmentation=[]], augmentation=[]],
>>>>> augmentation=[]], Action [_order=2, _key=ActionKey [_order=2],
>>>>> _action=OutputActionCase [_outputAction=OutputAction
>>>>> [_outputNodeConnector=Uri [_value=openflow:65500:26], augmentation=[]],
>>>>> augmentation=[]], augmentation=[]]], augmentation=[]], augmentation=[]],
>>>>> augmentation=[]]], augmentation=[]], _match=Match
>>>>> [_ethernetMatch=EthernetMatch [_ethernetDestination=EthernetDestination
>>>>> [_address=MacAddress [_value=01:00:00:00:00:00], _mask=MacAddress
>>>>> [_value=01:00:00:00:00:00], augmentation=[]], augmentation=[]],
>>>>> _vlanMatch=VlanMatch [_vlanId=VlanId [_vlanId=VlanId [_value=2000],
>>>>> _vlanIdPresent=true, augmentation=[]], augmentation=[]],
>>>>> augmentation=[]], _strict=false, _cookie=FlowCookie [_value=10],
>>>>> _hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2,
>>>>> augmentation=[]], _node=NodeRef
>>>>> [_value=KeyedInstanceIdentifier{targetType=interface
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
>>>>> de,
>>>>> path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
>>>>> des,
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
>>>>> de[key=NodeKey [_id=Uri [_value=foo:node:1]]]]}], augmentation=[]
>>>>>
>>>>> But this has issue when we write flow to real ovs node:
>>>>> 1st time we write flow with action list: POP_VLAN, OUTPUT=27
>>>>> osgi> addMDFlow openflow:266832637728842 f83
>>>>> Status of Flow Data Loaded Transaction: COMMITED
>>>>> osgi> 2014-05-19 20:12:48.347 EDT [md-sal-binding-notification-12] INFO
>>>>> o.o.o.t.FlowEventListenerLoggingImpl - flow to be
>>>>> added..........................FlowAdded [_flowRef=FlowRef
>>>>> [_value=KeyedInstanceIdentifier{targetType=interface
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
>>>>> les.table.Flow,
>>>>> path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
>>>>> des,
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
>>>>> de[key=NodeKey [_id=Uri [_value=openflow:266832637728842]]],
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Flo
>>>>> wCapableNode,
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
>>>>> les.Table[key=TableKey [_id=2]],
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
>>>>> les.table.Flow[key=FlowKey [_id=Uri [_value=206]]]]}], _barrier=false,
>>>>> _cookieMask=FlowCookie [_value=10], _flags=FlowModFlags
>>>>> [_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false,
>>>>> _nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf83,
>>>>> _installHw=false, _instructions=Instructions [_instruction=[Instruction
>>>>> [_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase
>>>>> [_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey
>>>>> [_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
>>>>> [augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1,
>>>>> _key=ActionKey [_order=1], _action=OutputActionCase
>>>>> [_outputAction=OutputAction [_outputNodeConnector=Uri
>>>>> [_value=openflow:65500:27], augmentation=[]], augmentation=[]],
>>>>> augmentation=[]]], augmentation=[]], augmentation=[]], augmentation=[]]],
>>>>> augmentation=[]], _match=Match [_ethernetMatch=EthernetMatch
>>>>> [_ethernetDestination=EthernetDestination [_address=MacAddress
>>>>> [_value=01:00:00:00:00:00], _mask=MacAddress [_value=01:00:00:00:00:00],
>>>>> augmentation=[]], augmentation=[]], _vlanMatch=VlanMatch [_vlanId=VlanId
>>>>> [_vlanId=VlanId [_value=2000], _vlanIdPresent=true, augmentation=[]],
>>>>> augmentation=[]], augmentation=[]], _strict=false, _cookie=FlowCookie
>>>>> [_value=10], _hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2,
>>>>> _transactionId=TransactionId [_value=3], augmentation=[]]
>>>>> And the ovs show command confirms the result:
>>>>> [hshen@hshen logs]$ sudo ovs-ofctl dump-flows br-int -O OpenFlow13
>>>>> OFPST_FLOW reply (OF1.3) (xid=0x2):
>>>>> cookie=0xa, duration=113.573s, table=2, n_packets=0, n_bytes=0,
>>>>> send_flow_rem
>>>>> priority=2,dl_vlan=2000,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
>>>>> actions=strip_vlan,output:27
>>>>>
>>>>> However, the log looks weird in the 2nd time and 3rd time:
>>>>> osgi> addMDFlow openflow:266832637728842 f83
>>>>> Status of Flow Data Loaded Transaction: COMMITED
>>>>> osgi> addMDFlow openflow:266832637728842 f83
>>>>> Status of Flow Data Loaded Transaction: COMMITED
>>>>>
>>>>> We only get one line log for COMMITED status. And flow is not modified at
>>>>> ovs node:
>>>>> [hshen@hshen logs]$ sudo ovs-ofctl dump-flows br-int -O OpenFlow13
>>>>> OFPST_FLOW reply (OF1.3) (xid=0x2):
>>>>> cookie=0xa, duration=245.054s, table=2, n_packets=0, n_bytes=0,
>>>>> send_flow_rem
>>>>> priority=2,dl_vlan=2000,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
>>>>> actions=strip_vlan,output:27
>>>>>
>>>>> It looks like the flow mod message is not even sent to ovs node.
>>>>> Is there any change in Openflowplugin for modifying the flow?
>>>>> Please advise hoe we can solve this issue or debug further.
>>>>>
>>>>> Thanks a lot for your help.
>>>>>
>>>>> Hsin-Yi
>>>>>
>>>>>
>>>>> ----- Original Message -----
>>>>> From: "Flavio Fernandes" <ffernand@...>
>>>>> To: "Hsin-Yi Shen" <hshen@...>
>>>>> Cc: "Michal Polkoráb" <michal.polkorab@...>, "Abhijit Kumbhare"
>>>>> <abhijitkoss@...>, "openflowjava-dev"
>>>>> <openflowjava-dev@...>, "Madhu Venugopal"
>>>>> <vmadhu@...>, openflowplugin-dev@...
>>>>> Sent: Friday, May 16, 2014 8:40:20 PM
>>>>> Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 - Multiple
>>>>> OUPUT actions in the action list of apply-action instruction
>>>>>
>>>>> Hi Hsin-Yi,
>>>>>
>>>>> You are right. This is using the test provider. I don¹t really know how
>>>>> to do it thru openstack-ovsdbŠ. yet. :)
>>>>>
>>>>> ‹ flavio
>>>>>
>>>>>
>>>>> On May 16, 2014, at 8:37 PM, Hsin-Yi Shen <hshen@...> wrote:
>>>>>
>>>>>> Flavio,
>>>>>> Looks like you tried test provider. Do you try wireshark with
>>>>>> openstack-ovsdb integreation?
>>>>>>
>>>>>> Hsin-Yi
>>>>>>
>>>>>> ----- Original Message -----
>>>>>> From: "Flavio Fernandes" <ffernand@...>
>>>>>> To: "Michal Polkoráb" <michal.polkorab@...>
>>>>>> Cc: "Hsin-Yi Shen" <hshen@...>, "Abhijit Kumbhare"
>>>>>> <abhijitkoss@...>, "openflowjava-dev"
>>>>>> <openflowjava-dev@...>, "Madhu Venugopal"
>>>>>> <vmadhu@...>, openflowplugin-dev@...
>>>>>> Sent: Friday, May 16, 2014 8:28:38 PM
>>>>>> Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
>>>>>> Multiple OUPUT actions in the action list of apply-action instruction
>>>>>>
>>>>>>
>>>>>> Hi folks,
>>>>>>
>>>>>> It took me a little playing with, but I did manage to capture the flow
>>>>>> mod packet!
>>>>>>
>>>>>>
>>>>>> https://www.dropbox.com/s/uumgiccue6ksuhi/Screenshot%202014-05-16%2020.25
>>>>>> .48.png
>>>>>>
>>>>>> From the capture, it is packet #7. You need wireshark 1.11 to see the
>>>>>> of 1.3 packets.
>>>>>> From the wireshark output, I see the instruction and the actions as you
>>>>>> expected, Hsin-Yi.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> ‹ flavio
>>>>>>
>>>>>>
>>>>>> On May 16, 2014, at 3:17 PM, Michal Polkoráb
>>>>>> <michal.polkorab@...> wrote:
>>>>>>
>>>>>>> First I would try using wireshark to check the data written to the
>>>>>>> wire. This way you will know if there is some problem with the device
>>>>>>> or with the controller.
>>>>>>>
>>>>>>> I would also try to put a Log message into:
>>>>>>> - OF13OutputActionSerializer in openflowjava
>>>>>>> - ActionConvertor in openflowplugin (in output action case)
>>>>>>> and rebuilding the code. When running the distribution there should be
>>>>>>> three logs for mentioned ApplyActions Instruction.
>>>>>>> If there are six log messages, then this should be an issue somewhere
>>>>>>> out of openflowplugin translation.
>>>>>>> If there is less than three messages the bug should be in the
>>>>>>> openflowplugin, 3-5 messages should be a bug in openflowjava.
>>>>>>>
>>>>>>> Michal
>>>>>>> ________________________________________
>>>>>>> From: Hsin-Yi Shen <hshen@...>
>>>>>>> Sent: 16 May 2014 20:24
>>>>>>> To: Michal Polkoráb; Flavio Fernandes
>>>>>>> Cc: Abhijit Kumbhare; openflowjava-dev; Madhu Venugopal;
>>>>>>> openflowplugin-dev@...
>>>>>>> Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
>>>>>>> Multiple OUPUT actions in the action list of apply-action instruction
>>>>>>>
>>>>>>> Hi Michal,
>>>>>>> Thanks for testing the openflowjava. After fixing the test provider
>>>>>>> code, we now see multiple actions of same type in applyActions
>>>>>>> Instruction.
>>>>>>>
>>>>>>> But we still see same issue in our OVSDB project using OF 1.3.
>>>>>>> While ovsdb code write flows with multiple actions of OUTPUT type,
>>>>>>> 2014-05-16 18:04:06.147 EDT [pool-18-thread-1] DEBUG
>>>>>>> o.o.o.n.p.OF13ProviderManager - createOutputPortInstructions() :
>>>>>>> applyAction ApplyActions [_action=[Action [_order=0, _key=ActionKey
>>>>>>> [_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
>>>>>>> [augmentation=[]], augmentation=[]], augmentation=[]], Action
>>>>>>> [_order=1, _key=ActionKey [_order=1], _action=OutputActionCase
>>>>>>> [_outputAction=OutputAction [_outputNodeConnector=Uri
>>>>>>> [_value=openflow:112312004696131:1], augmentation=[]],
>>>>>>> augmentation=[]], augmentation=[]], Action [_order=2, _key=ActionKey
>>>>>>> [_order=2], _action=OutputActionCase [_outputAction=OutputAction
>>>>>>> [_outputNodeConnector=Uri [_value=openflow:112312004696131:3],
>>>>>>> augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=3,
>>>>>>> _key=ActionKey [_order=3], _action=OutputActionCase
>>>>>>> [_outputAction=OutputAction [_outputNodeConnector=Uri
>>>>>>> [_value=openflow:112312004696131:4], augmentation=[]],
>>>>>>> augmentation=[]], augmentation=[]]], augmentation=[]]
>>>>>>> We only see one output action is actually installed:
>>>>>>> [root@control-node logs(keystone_admin)]# ovs-ofctl dump-flows br-int
>>>>>>> -O OpenFlow13
>>>>>>> OFPST_FLOW reply (OF1.3) (xid=0x2):
>>>>>>> ....
>>>>>>> cookie=0x0, duration=1246.988s, table=20, n_packets=26, n_bytes=2644,
>>>>>>> send_flow_rem
>>>>>>> priority=16384,dl_vlan=2400,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
>>>>>>> actions=strip_vlan,output:1
>>>>>>>
>>>>>>> Other output actions just silently disappear.
>>>>>>> Could you suggest where we should check for debugging?
>>>>>>> Thanks.
>>>>>>>
>>>>>>> Hsin-Yi
>>>>>>>
>>>>>>> ----- Original Message -----
>>>>>>> From: "Michal Polkoráb" <michal.polkorab@...>
>>>>>>> To: "Abhijit Kumbhare" <abhijitkoss@...>, "Hsin-Yi Shen"
>>>>>>> <hshen@...>
>>>>>>> Cc: "openflowjava-dev" <openflowjava-dev@...>,
>>>>>>> "Madhu Venugopal" <vmadhu@...>,
>>>>>>> openflowplugin-dev@...
>>>>>>> Sent: Friday, May 16, 2014 3:38:04 AM
>>>>>>> Subject: RE: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
>>>>>>> Multiple OUPUT actions in the action list of apply-action instruction
>>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>>
>>>>>>> I have tested openflowjava and it supports multiple actions of same
>>>>>>> type in ApplyActions Instruction. However, it looks like the
>>>>>>> OpenflowpluginTestServiceProvider receives wrong object - as it already
>>>>>>> contains only one Output action (judging on the description provided in
>>>>>>> the bug 1020).
>>>>>>>
>>>>>>>
>>>>>>> Regards
>>>>>>>
>>>>>>> Michal Polkorab
>>>>>>>
>>>>>>> ________________________________
>>>>>>> From: Abhijit Kumbhare <abhijitkoss@...>
>>>>>>> Sent: 15 May 2014 23:16
>>>>>>> To: Hsin-Yi Shen
>>>>>>> Cc: openflowjava-dev; Madhu Venugopal;
>>>>>>> openflowplugin-dev@...
>>>>>>> Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
>>>>>>> Multiple OUPUT actions in the action list of apply-action instruction
>>>>>>>
>>>>>>> Thanks Hsin-Yi.
>>>>>>>
>>>>>>>
>>>>>>> On Thu, May 15, 2014 at 1:37 PM, Hsin-Yi Shen
>>>>>>> <hshen@...<mailto:hshen@...>> wrote:
>>>>>>> Hi,
>>>>>>> We work on the ovsdb project and we find in latest build multiple
>>>>>>> OUPUT actions are no longer allowed in the action list of apply-action
>>>>>>> instruction in OF 1.3.
>>>>>>> This breaks the broadcast in ovsdb. Although we are not sure the issue
>>>>>>> is in openflowplugin or openflowjava, we need this bug to be fixed.
>>>>>>> We have filed bug 1020 in bugzilla
>>>>>>> https://bugs.opendaylight.org/show_bug.cgi?id=1020
>>>>>>> Could someone  in openflowplugin or openflowjava help fix this bug?
>>>>>>> Thanks.
>>>>>>>
>>>>>>> Hsin-Yi
>>>>>>> _______________________________________________
>>>>>>> openflowplugin-dev mailing list
>>>>>>>
>>>>>>> openflowplugin-dev@...<mailto:openflowplugin-dev@list
>>>>>>> s.opendaylight.org>
>>>>>>> https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev
>>>>>>>
>>>>>>> MichalPolkoráb
>>>>>>> Software Developer
>>>>>>>
>>>>>>> Mlynské Nivy 56 / 821 05 Bratislava / Slovakia
>>>>>>> +421 918 378 907 / michal.polkorab@...
>>>>>>> reception: +421 2 206 65 111 / www.pantheon.sk
>>>>>>> [logo]
>>>>>>> MichalPolkoráb
>>>>>>> Software Developer
>>>>>>>
>>>>>>> Mlynské Nivy 56 / 821 05 Bratislava / Slovakia
>>>>>>> +421 918 378 907 / michal.polkorab@...
>>>>>>> reception: +421 2 206 65 111 / www.pantheon.sk
>>>>>>> [logo]
>>>>> _______________________________________________
>>>>> openflowplugin-dev mailing list
>>>>> openflowplugin-dev@...
>>>>> https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev
>>>> _______________________________________________
>>>> openflowplugin-dev mailing list
>>>> openflowplugin-dev@...
>>>> https://lists.opendaylight.org/mailman/listinfo/openflowplugin-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
>
> _______________________________________________
> openflowjava-dev mailing list
> openflowjava-dev@...
> https://lists.opendaylight.org/mailman/listinfo/openflowjava-dev

_______________________________________________
openflowjava-dev mailing list
openflowjava-dev@...
https://lists.opendaylight.org/mailman/listinfo/openflowjava-dev


Madhu Venugopal
 

I didnt test it after the merge. But Hsin-Yi confirmed it... so we are good with this issue :-) (for now. until it breaks again ;) j/k)

-Madhu

On 5/21/14, 8:56 AM, Abhijit Kumbhare wrote:

Yes - it was merged yesterday evening. It was tested prior to merging by Hsin-Yi (and it fixed her issue) - but if it is tested again by her after merge that will be great.


On Wed, May 21, 2014 at 8:27 AM, Ed Warnicke (eaw) <eaw@...> wrote:
Madhu,
        It looks like this fix is merged:
https://git.opendaylight.org/gerrit/#/c/7099/

        Are you guys unblocked now? (wanted to check… because a bug isn’t really fixed till
the reporters report back that stuff is working now ;) )

Ed
On May 20, 2014, at 1:29 PM, Madhu Venugopal <mavenugo@...> wrote:

>
> Thanks folks. Shall we get this fix merged ASAP ?
>
> Our Neutron integration is blocked by these issues and we need to get to a stable version sooner.
> With many moving parts across all the projects, identifying such a stable version is getting challenging :-)
>
> -Madhu
>
> On 5/20/14, 1:15 PM, Hsin-Yi Shen wrote:
>> HI,
>> I update the openflowplugin and patch the bug fix. This fixes the flow mod issue in testprovider and ovsdb project.
>> I will mark BUG 1020 as duplicate of bug 275.
>> Thanks a lot for your help in debugging.
>>
>> Hsin-Yi
>>
>> ----- Original Message -----
>> From: "Luis Gomez" <ecelgp@...>
>> To: "Abhijit Kumbhare" <abhijitkoss@...>
>> Cc: "Kamal Rameshan (kramesha)" <kramesha@...>, "openflowjava-dev" <openflowjava-dev@...>, "Flavio Fernandes" <ffernand@...>, "Madhu Venugopal" <vmadhu@...>, openflowplugin-dev@..., "Hsin-Yi Shen" <hshen@...>
>> Sent: Monday, May 19, 2014 9:31:34 PM
>> Subject: Re: [openflowplugin-dev] [openflowjava-dev] BUG 1020 - Multiple OUPUT actions in the action list of apply-action instruction
>>
>>
>> I see this one in the bug: https://git.opendaylight.org/gerrit/#/c/7099/
>>
>>
>> On May 19, 2014, at 5:42 PM, Abhijit Kumbhare <abhijitkoss@...> wrote:
>>
>>> What is the gerrit number?
>>>
>>> On May 19, 2014 5:27 PM, "Kamal Rameshan (kramesha)" <kramesha@...> wrote:
>>>> This might be related to Bug : 275 :
>>>> https://bugs.opendaylight.org/show_bug.cgi?id=275
>>>>
>>>> This defect solves flow modify.
>>>>
>>>> A gerrit for this is wating to be reviewed
>>>>
>>>> Thanks
>>>> Kamal
>>>>
>>>> On 5/19/14 5:20 PM, "Hsin-Yi Shen" <hshen@...> wrote:
>>>>
>>>>> Hello all,
>>>>> After debugging, we find the issue is in flow modify and we are able to
>>>>> reproduce same issue in test provider.
>>>>>
>>>>> The behaviour for test case and ovsdb OF13 is as following:
>>>>> 1. First time we write flow with apply-action instruction. The
>>>>> instruction has actions list: POP_VLAN, OUTPUT=25
>>>>> 2. In second time, we get the action list from original flow, copy and
>>>>> write new action list to: POP_VLAN, OUPUT=25, OUTPUT=26, allocate a new
>>>>> apply-action instruction with new action list, and write flow with new
>>>>> instruction.
>>>>> 3. In third time,  we get the action list from original flow, copy and
>>>>> write new action list to: POP_VLAN, OUPUT=25, OUTPUT=26, OUTPUT=27,
>>>>> allocate a new apply-action instruction with new action list, and write
>>>>> flow with new instruction.
>>>>> And so on...
>>>>>
>>>>> When we apply this to some foo node, the addMDFlow log looks ok:
>>>>> First time we write the flow with action list: POP_VLAN, OUTPUT=25
>>>>> 2014-05-19 20:08:05.114 EDT [pool-13-thread-2] INFO
>>>>> o.o.o.t.OpenflowpluginTestServiceProvider - addFlow - AddFlowInput
>>>>> [_flowRef=FlowRef [_value=KeyedInstanceIdentifier{targetType=interface
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
>>>>> les.table.Flow,
>>>>> path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
>>>>> des,
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
>>>>> de[key=NodeKey [_id=Uri [_value=foo:node:1]]],
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Flo
>>>>> wCapableNode,
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
>>>>> les.Table[key=TableKey [_id=2]],
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
>>>>> les.table.Flow[key=FlowKey [_id=Uri [_value=206]]]]}],
>>>>> _flowTable=FlowTableRef
>>>>> [_value=KeyedInstanceIdentifier{targetType=interface
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
>>>>> les.Table,
>>>>> path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
>>>>> des,
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
>>>>> de[key=NodeKey [_id=Uri [_value=foo:node:1]]],
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Flo
>>>>> wCapableNode,
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
>>>>> les.Table[key=TableKey [_id=2]]]}], _barrier=false,
>>>>> _cookieMask=FlowCookie [_value=10], _flags=FlowModFlags
>>>>> [_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false,
>>>>> _nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf83,
>>>>> _installHw=false, _instructions=Instructions [_instruction=[Instruction
>>>>> [_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase
>>>>> [_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey
>>>>> [_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
>>>>> [augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1,
>>>>> _key=ActionKey [_order=1], _action=OutputActionCase
>>>>> [_outputAction=OutputAction [_outputNodeConnector=Uri
>>>>> [_value=openflow:65500:25], augmentation=[]], augmentation=[]],
>>>>> augmentation=[]]], augmentation=[]], augmentation=[]], augmentation=[]]],
>>>>> augmentation=[]], _match=Match [_ethernetMatch=EthernetMatch
>>>>> [_ethernetDestination=EthernetDestination [_address=MacAddress
>>>>> [_value=01:00:00:00:00:00], _mask=MacAddress [_value=01:00:00:00:00:00],
>>>>> augmentation=[]], augmentation=[]], _vlanMatch=VlanMatch [_vlanId=VlanId
>>>>> [_vlanId=VlanId [_value=2000], _vlanIdPresent=true, augmentation=[]],
>>>>> augmentation=[]], augmentation=[]], _strict=false, _cookie=FlowCookie
>>>>> [_value=10], _hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2,
>>>>> _node=NodeRef [_value=KeyedInstanceIdentifier{targetType=interface
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
>>>>> de,
>>>>> path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
>>>>> des,
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
>>>>> de[key=NodeKey [_id=Uri [_value=foo:node:1]]]]}], _transactionUri=Uri
>>>>> [_value=DOM-0], augmentation=[]]
>>>>>
>>>>> Second time we write the flow with action list: POP_VLAN, OUTPUT=25,
>>>>> OUTPUT=26
>>>>> osgi> addMDFlow foo:node:1 f83
>>>>> Status of Flow Data Loaded Transaction: COMMITED
>>>>> osgi> 2014-05-19 20:09:16.778 EDT [pool-13-thread-2] INFO
>>>>> o.o.o.t.OpenflowpluginTestServiceProvider - updateFlow - UpdateFlowInput
>>>>> [_flowRef=FlowRef [_value=KeyedInstanceIdentifier{targetType=interface
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
>>>>> les.table.Flow,
>>>>> path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
>>>>> des,
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
>>>>> de[key=NodeKey [_id=Uri [_value=foo:node:1]]],
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Flo
>>>>> wCapableNode,
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
>>>>> les.Table[key=TableKey [_id=2]],
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
>>>>> les.table.Flow[key=FlowKey [_id=Uri [_value=206]]]]}],
>>>>> _transactionUri=Uri [_value=DOM-1], _originalFlow=OriginalFlow
>>>>> [_barrier=false, _cookieMask=FlowCookie [_value=10], _flags=FlowModFlags
>>>>> [_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false,
>>>>> _nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf83,
>>>>> _installHw=false, _instructions=Instructions [_instruction=[Instruction
>>>>> [_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase
>>>>> [_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey
>>>>> [_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
>>>>> [augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1,
>>>>> _key=ActionKey [_order=1], _action=OutputActionCase
>>>>> [_outputAction=OutputAction [_outputNodeConnector=Uri
>>>>> [_value=openflow:65500:25], augmentation=[]], augmentation=[]],
>>>>> augmentation=[]]], augmentation=[]], augmentation=[]], augmentation=[]]],
>>>>> augmentation=[]], _match=Match [_ethernetMatch=EthernetMatch
>>>>> [_ethernetDestination=EthernetDestination [_address=MacAddress
>>>>> [_value=01:00:00:00:00:00], _mask=MacAddress [_value=01:00:00:00:00:00],
>>>>> augmentation=[]], augmentation=[]], _vlanMatch=VlanMatch [_vlanId=VlanId
>>>>> [_vlanId=VlanId [_value=2000], _vlanIdPresent=true, augmentation=[]],
>>>>> augmentation=[]], augmentation=[]], _strict=false, _cookie=FlowCookie
>>>>> [_value=10], _hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2,
>>>>> augmentation=[]], _updatedFlow=UpdatedFlow [_barrier=false,
>>>>> _cookieMask=FlowCookie [_value=10], _flags=FlowModFlags
>>>>> [_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false,
>>>>> _nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf83,
>>>>> _installHw=false, _instructions=Instructions [_instruction=[Instruction
>>>>> [_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase
>>>>> [_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey
>>>>> [_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
>>>>> [augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1,
>>>>> _key=ActionKey [_order=1], _action=OutputActionCase
>>>>> [_outputAction=OutputAction [_outputNodeConnector=Uri
>>>>> [_value=openflow:65500:25], augmentation=[]], augmentation=[]],
>>>>> augmentation=[]], Action [_order=2, _key=ActionKey [_order=2],
>>>>> _action=OutputActionCase [_outputAction=OutputAction
>>>>> [_outputNodeConnector=Uri [_value=openflow:65500:26], augmentation=[]],
>>>>> augmentation=[]], augmentation=[]]], augmentation=[]], augmentation=[]],
>>>>> augmentation=[]]], augmentation=[]], _match=Match
>>>>> [_ethernetMatch=EthernetMatch [_ethernetDestination=EthernetDestination
>>>>> [_address=MacAddress [_value=01:00:00:00:00:00], _mask=MacAddress
>>>>> [_value=01:00:00:00:00:00], augmentation=[]], augmentation=[]],
>>>>> _vlanMatch=VlanMatch [_vlanId=VlanId [_vlanId=VlanId [_value=2000],
>>>>> _vlanIdPresent=true, augmentation=[]], augmentation=[]],
>>>>> augmentation=[]], _strict=false, _cookie=FlowCookie [_value=10],
>>>>> _hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2,
>>>>> augmentation=[]], _node=NodeRef
>>>>> [_value=KeyedInstanceIdentifier{targetType=interface
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
>>>>> de,
>>>>> path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
>>>>> des,
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
>>>>> de[key=NodeKey [_id=Uri [_value=foo:node:1]]]]}], augmentation=[]
>>>>>
>>>>> But this has issue when we write flow to real ovs node:
>>>>> 1st time we write flow with action list: POP_VLAN, OUTPUT=27
>>>>> osgi> addMDFlow openflow:266832637728842 f83
>>>>> Status of Flow Data Loaded Transaction: COMMITED
>>>>> osgi> 2014-05-19 20:12:48.347 EDT [md-sal-binding-notification-12] INFO
>>>>> o.o.o.t.FlowEventListenerLoggingImpl - flow to be
>>>>> added..........................FlowAdded [_flowRef=FlowRef
>>>>> [_value=KeyedInstanceIdentifier{targetType=interface
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
>>>>> les.table.Flow,
>>>>> path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.No
>>>>> des,
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.No
>>>>> de[key=NodeKey [_id=Uri [_value=openflow:266832637728842]]],
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Flo
>>>>> wCapableNode,
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
>>>>> les.Table[key=TableKey [_id=2]],
>>>>> org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tab
>>>>> les.table.Flow[key=FlowKey [_id=Uri [_value=206]]]]}], _barrier=false,
>>>>> _cookieMask=FlowCookie [_value=10], _flags=FlowModFlags
>>>>> [_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false,
>>>>> _nOBYTCOUNTS=false, _sENDFLOWREM=true], _flowName=FooXf83,
>>>>> _installHw=false, _instructions=Instructions [_instruction=[Instruction
>>>>> [_order=0, _key=InstructionKey [_order=0], _instruction=ApplyActionsCase
>>>>> [_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey
>>>>> [_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
>>>>> [augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=1,
>>>>> _key=ActionKey [_order=1], _action=OutputActionCase
>>>>> [_outputAction=OutputAction [_outputNodeConnector=Uri
>>>>> [_value=openflow:65500:27], augmentation=[]], augmentation=[]],
>>>>> augmentation=[]]], augmentation=[]], augmentation=[]], augmentation=[]]],
>>>>> augmentation=[]], _match=Match [_ethernetMatch=EthernetMatch
>>>>> [_ethernetDestination=EthernetDestination [_address=MacAddress
>>>>> [_value=01:00:00:00:00:00], _mask=MacAddress [_value=01:00:00:00:00:00],
>>>>> augmentation=[]], augmentation=[]], _vlanMatch=VlanMatch [_vlanId=VlanId
>>>>> [_vlanId=VlanId [_value=2000], _vlanIdPresent=true, augmentation=[]],
>>>>> augmentation=[]], augmentation=[]], _strict=false, _cookie=FlowCookie
>>>>> [_value=10], _hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2,
>>>>> _transactionId=TransactionId [_value=3], augmentation=[]]
>>>>> And the ovs show command confirms the result:
>>>>> [hshen@hshen logs]$ sudo ovs-ofctl dump-flows br-int -O OpenFlow13
>>>>> OFPST_FLOW reply (OF1.3) (xid=0x2):
>>>>> cookie=0xa, duration=113.573s, table=2, n_packets=0, n_bytes=0,
>>>>> send_flow_rem
>>>>> priority=2,dl_vlan=2000,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
>>>>> actions=strip_vlan,output:27
>>>>>
>>>>> However, the log looks weird in the 2nd time and 3rd time:
>>>>> osgi> addMDFlow openflow:266832637728842 f83
>>>>> Status of Flow Data Loaded Transaction: COMMITED
>>>>> osgi> addMDFlow openflow:266832637728842 f83
>>>>> Status of Flow Data Loaded Transaction: COMMITED
>>>>>
>>>>> We only get one line log for COMMITED status. And flow is not modified at
>>>>> ovs node:
>>>>> [hshen@hshen logs]$ sudo ovs-ofctl dump-flows br-int -O OpenFlow13
>>>>> OFPST_FLOW reply (OF1.3) (xid=0x2):
>>>>> cookie=0xa, duration=245.054s, table=2, n_packets=0, n_bytes=0,
>>>>> send_flow_rem
>>>>> priority=2,dl_vlan=2000,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
>>>>> actions=strip_vlan,output:27
>>>>>
>>>>> It looks like the flow mod message is not even sent to ovs node.
>>>>> Is there any change in Openflowplugin for modifying the flow?
>>>>> Please advise hoe we can solve this issue or debug further.
>>>>>
>>>>> Thanks a lot for your help.
>>>>>
>>>>> Hsin-Yi
>>>>>
>>>>>
>>>>> ----- Original Message -----
>>>>> From: "Flavio Fernandes" <ffernand@...>
>>>>> To: "Hsin-Yi Shen" <hshen@...>
>>>>> Cc: "Michal Polkoráb" <michal.polkorab@...>, "Abhijit Kumbhare"
>>>>> <abhijitkoss@...>, "openflowjava-dev"
>>>>> <openflowjava-dev@...>, "Madhu Venugopal"
>>>>> <vmadhu@...>, openflowplugin-dev@...
>>>>> Sent: Friday, May 16, 2014 8:40:20 PM
>>>>> Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 - Multiple
>>>>> OUPUT actions in the action list of apply-action instruction
>>>>>
>>>>> Hi Hsin-Yi,
>>>>>
>>>>> You are right. This is using the test provider. I don¹t really know how
>>>>> to do it thru openstack-ovsdbŠ. yet. :)
>>>>>
>>>>> ‹ flavio
>>>>>
>>>>>
>>>>> On May 16, 2014, at 8:37 PM, Hsin-Yi Shen <hshen@...> wrote:
>>>>>
>>>>>> Flavio,
>>>>>> Looks like you tried test provider. Do you try wireshark with
>>>>>> openstack-ovsdb integreation?
>>>>>>
>>>>>> Hsin-Yi
>>>>>>
>>>>>> ----- Original Message -----
>>>>>> From: "Flavio Fernandes" <ffernand@...>
>>>>>> To: "Michal Polkoráb" <michal.polkorab@...>
>>>>>> Cc: "Hsin-Yi Shen" <hshen@...>, "Abhijit Kumbhare"
>>>>>> <abhijitkoss@...>, "openflowjava-dev"
>>>>>> <openflowjava-dev@...>, "Madhu Venugopal"
>>>>>> <vmadhu@...>, openflowplugin-dev@...
>>>>>> Sent: Friday, May 16, 2014 8:28:38 PM
>>>>>> Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
>>>>>> Multiple OUPUT actions in the action list of apply-action instruction
>>>>>>
>>>>>>
>>>>>> Hi folks,
>>>>>>
>>>>>> It took me a little playing with, but I did manage to capture the flow
>>>>>> mod packet!
>>>>>>
>>>>>>
>>>>>> https://www.dropbox.com/s/uumgiccue6ksuhi/Screenshot%202014-05-16%2020.25
>>>>>> .48.png
>>>>>>
>>>>>> From the capture, it is packet #7. You need wireshark 1.11 to see the
>>>>>> of 1.3 packets.
>>>>>> From the wireshark output, I see the instruction and the actions as you
>>>>>> expected, Hsin-Yi.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> ‹ flavio
>>>>>>
>>>>>>
>>>>>> On May 16, 2014, at 3:17 PM, Michal Polkoráb
>>>>>> <michal.polkorab@...> wrote:
>>>>>>
>>>>>>> First I would try using wireshark to check the data written to the
>>>>>>> wire. This way you will know if there is some problem with the device
>>>>>>> or with the controller.
>>>>>>>
>>>>>>> I would also try to put a Log message into:
>>>>>>> - OF13OutputActionSerializer in openflowjava
>>>>>>> - ActionConvertor in openflowplugin (in output action case)
>>>>>>> and rebuilding the code. When running the distribution there should be
>>>>>>> three logs for mentioned ApplyActions Instruction.
>>>>>>> If there are six log messages, then this should be an issue somewhere
>>>>>>> out of openflowplugin translation.
>>>>>>> If there is less than three messages the bug should be in the
>>>>>>> openflowplugin, 3-5 messages should be a bug in openflowjava.
>>>>>>>
>>>>>>> Michal
>>>>>>> ________________________________________
>>>>>>> From: Hsin-Yi Shen <hshen@...>
>>>>>>> Sent: 16 May 2014 20:24
>>>>>>> To: Michal Polkoráb; Flavio Fernandes
>>>>>>> Cc: Abhijit Kumbhare; openflowjava-dev; Madhu Venugopal;
>>>>>>> openflowplugin-dev@...
>>>>>>> Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
>>>>>>> Multiple OUPUT actions in the action list of apply-action instruction
>>>>>>>
>>>>>>> Hi Michal,
>>>>>>> Thanks for testing the openflowjava. After fixing the test provider
>>>>>>> code, we now see multiple actions of same type in applyActions
>>>>>>> Instruction.
>>>>>>>
>>>>>>> But we still see same issue in our OVSDB project using OF 1.3.
>>>>>>> While ovsdb code write flows with multiple actions of OUTPUT type,
>>>>>>> 2014-05-16 18:04:06.147 EDT [pool-18-thread-1] DEBUG
>>>>>>> o.o.o.n.p.OF13ProviderManager - createOutputPortInstructions() :
>>>>>>> applyAction ApplyActions [_action=[Action [_order=0, _key=ActionKey
>>>>>>> [_order=0], _action=PopVlanActionCase [_popVlanAction=PopVlanAction
>>>>>>> [augmentation=[]], augmentation=[]], augmentation=[]], Action
>>>>>>> [_order=1, _key=ActionKey [_order=1], _action=OutputActionCase
>>>>>>> [_outputAction=OutputAction [_outputNodeConnector=Uri
>>>>>>> [_value=openflow:112312004696131:1], augmentation=[]],
>>>>>>> augmentation=[]], augmentation=[]], Action [_order=2, _key=ActionKey
>>>>>>> [_order=2], _action=OutputActionCase [_outputAction=OutputAction
>>>>>>> [_outputNodeConnector=Uri [_value=openflow:112312004696131:3],
>>>>>>> augmentation=[]], augmentation=[]], augmentation=[]], Action [_order=3,
>>>>>>> _key=ActionKey [_order=3], _action=OutputActionCase
>>>>>>> [_outputAction=OutputAction [_outputNodeConnector=Uri
>>>>>>> [_value=openflow:112312004696131:4], augmentation=[]],
>>>>>>> augmentation=[]], augmentation=[]]], augmentation=[]]
>>>>>>> We only see one output action is actually installed:
>>>>>>> [root@control-node logs(keystone_admin)]# ovs-ofctl dump-flows br-int
>>>>>>> -O OpenFlow13
>>>>>>> OFPST_FLOW reply (OF1.3) (xid=0x2):
>>>>>>> ....
>>>>>>> cookie=0x0, duration=1246.988s, table=20, n_packets=26, n_bytes=2644,
>>>>>>> send_flow_rem
>>>>>>> priority=16384,dl_vlan=2400,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
>>>>>>> actions=strip_vlan,output:1
>>>>>>>
>>>>>>> Other output actions just silently disappear.
>>>>>>> Could you suggest where we should check for debugging?
>>>>>>> Thanks.
>>>>>>>
>>>>>>> Hsin-Yi
>>>>>>>
>>>>>>> ----- Original Message -----
>>>>>>> From: "Michal Polkoráb" <michal.polkorab@...>
>>>>>>> To: "Abhijit Kumbhare" <abhijitkoss@...>, "Hsin-Yi Shen"
>>>>>>> <hshen@...>
>>>>>>> Cc: "openflowjava-dev" <openflowjava-dev@...>,
>>>>>>> "Madhu Venugopal" <vmadhu@...>,
>>>>>>> openflowplugin-dev@...
>>>>>>> Sent: Friday, May 16, 2014 3:38:04 AM
>>>>>>> Subject: RE: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
>>>>>>> Multiple OUPUT actions in the action list of apply-action instruction
>>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>>
>>>>>>> I have tested openflowjava and it supports multiple actions of same
>>>>>>> type in ApplyActions Instruction. However, it looks like the
>>>>>>> OpenflowpluginTestServiceProvider receives wrong object - as it already
>>>>>>> contains only one Output action (judging on the description provided in
>>>>>>> the bug 1020).
>>>>>>>
>>>>>>>
>>>>>>> Regards
>>>>>>>
>>>>>>> Michal Polkorab
>>>>>>>
>>>>>>> ________________________________
>>>>>>> From: Abhijit Kumbhare <abhijitkoss@...>
>>>>>>> Sent: 15 May 2014 23:16
>>>>>>> To: Hsin-Yi Shen
>>>>>>> Cc: openflowjava-dev; Madhu Venugopal;
>>>>>>> openflowplugin-dev@...
>>>>>>> Subject: Re: [openflowjava-dev] [openflowplugin-dev] BUG 1020 -
>>>>>>> Multiple OUPUT actions in the action list of apply-action instruction
>>>>>>>
>>>>>>> Thanks Hsin-Yi.
>>>>>>>
>>>>>>>
>>>>>>> On Thu, May 15, 2014 at 1:37 PM, Hsin-Yi Shen
>>>>>>> <hshen@...<mailto:hshen@...>> wrote:
>>>>>>> Hi,
>>>>>>> We work on the ovsdb project and we find in latest build multiple
>>>>>>> OUPUT actions are no longer allowed in the action list of apply-action
>>>>>>> instruction in OF 1.3.
>>>>>>> This breaks the broadcast in ovsdb. Although we are not sure the issue
>>>>>>> is in openflowplugin or openflowjava, we need this bug to be fixed.
>>>>>>> We have filed bug 1020 in bugzilla
>>>>>>> https://bugs.opendaylight.org/show_bug.cgi?id=1020
>>>>>>> Could someone  in openflowplugin or openflowjava help fix this bug?
>>>>>>> Thanks.
>>>>>>>
>>>>>>> Hsin-Yi
>>>>>>> _______________________________________________
>>>>>>> openflowplugin-dev mailing list
>>>>>>>
>>>>>>> openflowplugin-dev@...<mailto:openflowplugin-dev@list
>>>>>>> s.opendaylight.org>
>>>>>>> https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev
>>>>>>>
>>>>>>> MichalPolkoráb
>>>>>>> Software Developer
>>>>>>>
>>>>>>> Mlynské Nivy 56 / 821 05 Bratislava / Slovakia
>>>>>>> +421 918 378 907 / michal.polkorab@...
>>>>>>> reception: +421 2 206 65 111 / www.pantheon.sk
>>>>>>> [logo]
>>>>>>> MichalPolkoráb
>>>>>>> Software Developer
>>>>>>>
>>>>>>> Mlynské Nivy 56 / 821 05 Bratislava / Slovakia
>>>>>>> +421 918 378 907 / michal.polkorab@...
>>>>>>> reception: +421 2 206 65 111 / www.pantheon.sk
>>>>>>> [logo]
>>>>> _______________________________________________
>>>>> openflowplugin-dev mailing list
>>>>> openflowplugin-dev@...
>>>>> https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev
>>>> _______________________________________________
>>>> openflowplugin-dev mailing list
>>>> openflowplugin-dev@...
>>>> https://lists.opendaylight.org/mailman/listinfo/openflowplugin-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
>
> _______________________________________________
> openflowjava-dev mailing list
> openflowjava-dev@...
> https://lists.opendaylight.org/mailman/listinfo/openflowjava-dev

_______________________________________________
openflowjava-dev mailing list
openflowjava-dev@...
https://lists.opendaylight.org/mailman/listinfo/openflowjava-dev