<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:33:11 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>OpenDaylight JIRA</title>
    <link>https://jira.opendaylight.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>8.20.10</version>
        <build-number>820010</build-number>
        <build-date>22-06-2022</build-date>
    </build-info>


<item>
            <title>[OPNFLWPLUG-711] He plugin: Flow reconciliation failed due to OFPBAC_BAD_OUT_GROUP.</title>
                <link>https://jira.opendaylight.org/browse/OPNFLWPLUG-711</link>
                <project id="10155" key="OPNFLWPLUG">OpenFlowPlugin</project>
                    <description>&lt;p&gt;I observed that some flow entries in config DS were not installed to switch by flow reconciliation occasionally.&lt;/p&gt;

&lt;p&gt;  1. Start controller and install He plugin, and start OF13 switch.&lt;br/&gt;
  2. Put some groups into config DS.&lt;br/&gt;
  3. Put some flows that contain group-action that references to the group configured by step 2.&lt;br/&gt;
  4. Restart OF13 switch.&lt;/p&gt;

&lt;p&gt;Step 4 triggers flow/group reconciliation. FlowNodeReconciliationImpl invokes add-group RPC to install all the groups in config DS, and then invokes add-flow RPC to install all the flows in config DS. But those RPC invocations may be reordered because He plugin executes RPCs in parallel using multiple threads. If a FLOW_MOD message is sent to OF13 switch before a GROUP_MOD message that installs group referenced by that flow, OF13 switch will reject that flow and return OFPBAC_BAD_OUT_GROUP error.&lt;/p&gt;

&lt;p&gt;That is why FRM needs to wait for completion of group reconciliation before flow reconciliation.&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="27979">OPNFLWPLUG-711</key>
            <summary>He plugin: Flow reconciliation failed due to OFPBAC_BAD_OUT_GROUP.</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                                <status id="5" iconUrl="https://jira.opendaylight.org/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10000">Done</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="yasuda">Shigeru Yasuda</reporter>
                        <labels>
                    </labels>
                <created>Thu, 16 Jun 2016 08:48:19 +0000</created>
                <updated>Mon, 27 Sep 2021 09:01:50 +0000</updated>
                            <resolved>Sun, 24 Jul 2016 07:42:32 +0000</resolved>
                                                                    <component>General</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>5</watches>
                                                                                                                <comments>
                            <comment id="57946" author="yasuda" created="Thu, 16 Jun 2016 08:52:27 +0000"  >&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/40429&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/40429&lt;/a&gt;  (master)&lt;/p&gt;</comment>
                            <comment id="57947" author="ecelgp" created="Tue, 21 Jun 2016 02:41:49 +0000"  >&lt;p&gt;Right, the multiple threads is well known issue in He-plugin and has been fixed in Li-plugin. Hopefully your fix here helps with reconciliation.&lt;/p&gt;</comment>
                            <comment id="57948" author="ecelgp" created="Tue, 21 Jun 2016 02:43:09 +0000"  >&lt;p&gt;Adding also Shuva as this is reconciliation related issue.&lt;/p&gt;</comment>
                            <comment id="57949" author="andrejleitner" created="Thu, 14 Jul 2016 16:15:41 +0000"  >&lt;p&gt;Just FYI, &lt;br/&gt;
there is (not currently default) application forwardingrules-sync a.k.a new FRM in OFP project. It was written from scratch and fixes some FRM issues.&lt;/p&gt;

&lt;p&gt;FRS uses new SalFlatBatchService in OFP where the input is whole bulk of changes (separated into batches of F/G/M objects by related add/update/remove action). This service prepare action plan of batches+actions and mark barriers where needed (between dependent actions, e.g. case mentioned by Shigeru).&lt;/p&gt;

&lt;p&gt;In FRS batches are assembled in order:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;AddOrUpdateGroups&lt;/li&gt;
	&lt;li&gt;AddOrUpdateMeters&lt;/li&gt;
	&lt;li&gt;AddOrUpdateFlows&lt;/li&gt;
	&lt;li&gt;RemoveFlows&lt;/li&gt;
	&lt;li&gt;RemoveMeters&lt;/li&gt;
	&lt;li&gt;RemoveGroups&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;and sent to SalFlatBatchService. The service will prepare plan and then go - run all independent actions simultaneously until it comes to action that has to wait for barrier, then wait for it (as the confirmation that all necessary things were successfully pushed to device) and continue (in the same way).&lt;/p&gt;

&lt;p&gt;In addition, there is also retry mechanism implemented. When you get error from a device, retry is started and reconciliation is done (sync config/operational).&lt;/p&gt;

&lt;p&gt;You can find the stuff here:&lt;br/&gt;
org.opendaylight.openflowplugin.applications.frsync&lt;br/&gt;
org.opendaylight.openflowplugin.impl.services.SalFlatBatchService&lt;br/&gt;
I am preparing also wiki page for the comparison:&lt;br/&gt;
&lt;a href=&quot;https://wiki.opendaylight.org/view/OpenDaylight_OpenFlow_Plugin:Applications_FRM_vs_FRS&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://wiki.opendaylight.org/view/OpenDaylight_OpenFlow_Plugin:Applications_FRM_vs_FRS&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="57950" author="yasuda" created="Thu, 21 Jul 2016 11:54:43 +0000"  >&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/42213&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/42213&lt;/a&gt;  (stable/beryllium)&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                            <customfield id="customfield_11400" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10208" key="com.atlassian.jira.plugin.system.customfieldtypes:textfield">
                        <customfieldname>External issue ID</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>6073</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10201" key="com.atlassian.jira.plugin.system.customfieldtypes:url">
                        <customfieldname>External issue URL</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[https://bugs.opendaylight.org/show_bug.cgi?id=6073]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i032u7:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>