|
|
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
toggle quoted message
Show quoted text
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
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

|
|
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
toggle quoted message
Show quoted text
----- 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=1020Could 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-devMichalPolkorá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]
|
|
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=1020Could 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-devMichalPolkorá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@...>
toggle quoted message
Show quoted text
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]
|
|
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
toggle quoted message
Show quoted text
----- 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=1020Could 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-devMichalPolkorá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, Looks like you tried test provider. Do you try wireshark with openstack-ovsdb integreation?
Hsin-Yi
toggle quoted message
Show quoted text
----- 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.pngFrom 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
toggle quoted message
Show quoted text
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]
|
|
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-distributions/ 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/7fa9c181d830ee3259e0Later, -Brent
toggle quoted message
Show quoted text
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
|
|
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
toggle quoted message
Show quoted text
----- 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-distributions/ 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/7fa9c181d830ee3259e0Later, -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
|
|
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
toggle quoted message
Show quoted text
----- 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@...>
toggle quoted message
Show quoted text
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
|
|
What is the gerrit number?
toggle quoted message
Show quoted text
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
|
|
toggle quoted message
Show quoted text
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
|
|
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
toggle quoted message
Show quoted text
----- 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
|
|
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
toggle quoted message
Show quoted text
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
|
|
Chris from Integration is also waiting this merge, please prioritize this patch.
toggle quoted message
Show quoted text
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
toggle quoted message
Show quoted text
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
|
|
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.
toggle quoted message
Show quoted text
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
|
|
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:
toggle quoted message
Show quoted text
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.
|
|