<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:32:58 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-627] OFP-Li: add-flow RPC is slow; 2 flow entries per sec.</title>
                <link>https://jira.opendaylight.org/browse/OPNFLWPLUG-627</link>
                <project id="10155" key="OPNFLWPLUG">OpenFlowPlugin</project>
                    <description>&lt;p&gt;What I used&lt;br/&gt;
-----------&lt;/p&gt;

&lt;p&gt;OpenFlow version: OF13&lt;br/&gt;
Target OFP: OpenFlow plugin Lithium version&lt;br/&gt;
Application: VTN Manager (&quot;odl-vtn-manager-rest&quot; feature)&lt;br/&gt;
Problem RPC: add-flow RPC&lt;br/&gt;
Tested branch: &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/35118/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/35118/&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;What I observed&lt;br/&gt;
---------------&lt;/p&gt;

&lt;p&gt;I observed that add-flow RPC of the OFP-Li was slow to install flow entries into OpenFlow 1.3 switches.&lt;br/&gt;
The rate was 2 flow entries to a switch per second.&lt;/p&gt;


&lt;p&gt;In my observation, although the VTN Manager called many add-flow RPC for a switch to install many different flow entries at the same time concurrently, the OFP-Li installed the flow entries at exactly 0.5 second intervals.&lt;/p&gt;

&lt;p&gt;For example, the following log messages in karaf.log show that the OFP-Li completed to install flow entries to the switch (openflow:3) at &amp;lt;10:32:11,240&amp;gt;, and &amp;lt;10:32:11,742&amp;gt;, respectively.&lt;/p&gt;

&lt;p&gt;2016-02-24 10:32:11,240 (snip) - org.opendaylight.openflowplugin.impl - 0.2.1.SNAPSHOT | flow add finished without error, id=#UF$TABLE*0-35024&lt;br/&gt;
2016-02-24 10:32:11,241 (snip) - org.opendaylight.vtn.manager.implementation - 0.4.1.SNAPSHOT | Flow entry has been installed: flow=[id=7f56000000000076-1, pri=10, timeout=(0,0), node=openflow:3, ingress=openflow:3:3, cond=&lt;/p&gt;
{DL_SRC=ba:75:46:84:50:34,DL_DST=ea:ed:67:13:85:06,DL_VLAN=0}
&lt;p&gt;, actions=&lt;/p&gt;
{OUTPUT(port=openflow:3:1, len=65535)}

&lt;p&gt;2016-02-24 10:32:11,742 (snip) - org.opendaylight.openflowplugin.impl - 0.2.1.SNAPSHOT | flow add finished without error, id=#UF$TABLE*0-35026&lt;br/&gt;
2016-02-24 10:32:11,742 (snip) - org.opendaylight.vtn.manager.implementation - 0.4.1.SNAPSHOT | Flow entry has been installed: flow=[id=7f56000000000077-1, pri=10, timeout=(0,0), node=openflow:3, ingress=openflow:3:1, cond=&lt;/p&gt;
{DL_SRC=96:99:b7:12:c6:95,DL_DST=ba:75:46:84:50:34,DL_VLAN=0}
&lt;p&gt;, actions=&lt;/p&gt;
{OUTPUT(port=openflow:3:3, len=65535)}



&lt;p&gt;The issue is not occurred with the OpenFlow plugin Helium version.&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="27895">OPNFLWPLUG-627</key>
            <summary>OFP-Li: add-flow RPC is slow; 2 flow entries per sec.</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="10003">Cannot Reproduce</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="Hideyuki1985">Hideyuki Tai</reporter>
                        <labels>
                    </labels>
                <created>Thu, 25 Feb 2016 02:15:46 +0000</created>
                <updated>Mon, 27 Sep 2021 09:01:44 +0000</updated>
                            <resolved>Fri, 26 Feb 2016 22:25:47 +0000</resolved>
                                                                    <component>General</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="57647" author="hideyuki.tai@necam.com" created="Thu, 25 Feb 2016 02:20:26 +0000"  >&lt;p&gt;It seems to me that after the OFP-Li sends a BARRIER_REQUEST message for a FLOW_MOD message to a switch, the OPF-Li stops to process to send other FLOW_MOD messages to the switch until it receives the BARRIER_REPLY message from the switch.&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;Example sequence&amp;#93;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; 1. add-flow RPC is called for the flow entry A into the switch X&lt;br/&gt;
 2. add-flow RPC is called for the flow entry B into the switch X&lt;br/&gt;
 3. add-flow RPC is called for the flow entry C into the switch X&lt;/p&gt;

&lt;p&gt; 4. OFP-Li sends FLOW_MOD for the entry A&lt;br/&gt;
 5. OFP-Li sends BARRIER_REQUEST&lt;br/&gt;
 6. OFP-Li wants for the BARRIER_REPLY&lt;br/&gt;
 7. OFP-Li receives the BARRIER_REPLY&lt;br/&gt;
 8. OFP-Li completes the RPC for the entry A&lt;/p&gt;

&lt;p&gt; 9. OFP-Li sends FLOW_MOD for the entry B&lt;br/&gt;
10. OFP-Li sends BARRIER_REQUEST&lt;br/&gt;
11. OFP-Li wants for the BARRIER_REPLY&lt;br/&gt;
12. OFP-Li receives the BARRIER_REPLY&lt;br/&gt;
13. OFP-Li completes the RPC for the entry B&lt;/p&gt;

&lt;p&gt;14. OFP-Li sends FLOW_MOD for the entry C&lt;br/&gt;
15. OFP-Li sends BARRIER_REQUEST&lt;br/&gt;
16. OFP-Li wants for the BARRIER_REPLY&lt;br/&gt;
17. OFP-Li receives the BARRIER_REPLY&lt;br/&gt;
18. OFP-Li completes the RPC for the entry C&lt;/p&gt;

&lt;p&gt;Since by default the OFP-Li sends BARRIER_REQUEST at 0.5 second intervals, it makes sense that I observed the rate of 2 flow entries per sec.&lt;/p&gt;

&lt;p&gt;If my understanding is correct, is there any reason why the OFP-Li does not process to send other FLOW_MOD messages (in the above example, FLOW_MDO for the entry B and C) until it receives the BARRIER_REPLY message for another add-flow RPC call (in the above example add-flow RPC for the entry A)?&lt;/p&gt;


&lt;p&gt;I have expected that when an application calls add-flow RPC multiple times for the same switch concurrently, the OFP-Li sends multiple FLOW_MOD messages to the switch immediately for all add-flow calls. It doesn&apos;t need to wait to send a FLOW_MOD message until another add-flow RPC completes.&lt;br/&gt;
In other words, I think it doesn&apos;t need to wait until the OFP-Li receives the BARRIER_REPLY message for another add-RPC.&lt;br/&gt;
The following example explains my exception.&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;Example sequence&amp;#93;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; 1. add-flow RPC is called for the flow entry A&lt;br/&gt;
 2. add-flow RPC is called for the flow entry B&lt;br/&gt;
 3. add-flow RPC is called for the flow entry C&lt;/p&gt;

&lt;p&gt; 4. OFP-Li sends FLOW_MOD for the entry A&lt;br/&gt;
 5. OFP-Li sends FLOW_MOD for the entry B&lt;br/&gt;
 6. OFP-Li sends FLOW_MOD for the entry C&lt;br/&gt;
 7. OFP-Li sends BARRIER_REQUEST&lt;br/&gt;
 8. OFP-Li wants for the BARRIER_REPLY&lt;br/&gt;
 9. OFP-Li receives the BARRIER_REPLY&lt;br/&gt;
10. OFP-Li complets the RPC for the entry A&lt;br/&gt;
11. OFP-Li complets the RPC for the entry B&lt;br/&gt;
12. OFP-Li complets the RPC for the entry C&lt;/p&gt;


&lt;p&gt;I think that if an application sets the explicit barrier (I&apos;m not sure if this expression is correct) on the add-flow call, the interval of the BARRIER_REQUEST becomes very short, so the rate of installing flow entries would be fast.&lt;br/&gt;
But, please note, here, I&apos;m not talking about this.&lt;br/&gt;
In this bug report, I&apos;m talking about why the OFP-Li does not process to send other FLOW_MOD messages until it receives the BARRIER_REPLY message for another add-flow RPC call.&lt;/p&gt;</comment>
                            <comment id="57648" author="hideyuki.tai@necam.com" created="Fri, 26 Feb 2016 22:25:47 +0000"  >&lt;p&gt;I&apos;ve realized that the remark of the &quot;Comment 1&quot; of the bug report is wrong.&lt;/p&gt;

&lt;p&gt;And now I&apos;m thinking that if the bug4671 is fixed, the rate of installing flow entries would be improved.&lt;br/&gt;
&lt;a href=&quot;https://bugs.opendaylight.org/show_bug.cgi?id=4671&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://bugs.opendaylight.org/show_bug.cgi?id=4671&lt;/a&gt;&lt;br/&gt;
So I&apos;ve closed the bug report as &quot;INVALID&quot;.&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>5426</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=5426]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10202" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Priority</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10312"><![CDATA[High]]></customfieldvalue>

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

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