<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:54:29 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>[CONTROLLER-1021] MD-SAL FRM may update/remove unexpected flow entries.</title>
                <link>https://jira.opendaylight.org/browse/CONTROLLER-1021</link>
                <project id="10113" key="CONTROLLER">controller</project>
                    <description>&lt;p&gt;MD-SAL forwarding rules manager does not set strict flag to&lt;br/&gt;
UpdateFlowInput/RemoveFlowInput when it calls update-flow/remove-flow RPC.&lt;br/&gt;
So openflowplugin will send non-strict version of FLOW_MOD (MODIFY/DELETE) to&lt;br/&gt;
OF switch. This may break unexpected flow entries.&lt;/p&gt;

&lt;p&gt;How to reproduce:&lt;/p&gt;

&lt;p&gt;1. Install &quot;drop-all&quot; flow entry that drops every packet.&lt;/p&gt;

&lt;p&gt;  PUT &lt;br/&gt;
&lt;a href=&quot;http://localhost:8181/restconf/config/opendaylight-inventory:nodes/opendaylight-inventory:node/openflow:1/flow-node-inventory:table/0/flow-node-inventory:flow/drop-all&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://localhost:8181/restconf/config/opendaylight-inventory:nodes/opendaylight-inventory:node/openflow:1/flow-node-inventory:table/0/flow-node-inventory:flow/drop-all&lt;/a&gt;&lt;br/&gt;
  {&lt;br/&gt;
    &quot;flow-node-inventory:flow&quot;: [&lt;/p&gt;
      {
        &quot;hard-timeout&quot;: 0,
        &quot;id&quot;: &quot;drop-all&quot;,
        &quot;idle-timeout&quot;: 0,
        &quot;priority&quot;: 10,
        &quot;table_id&quot;: 0
      }
&lt;p&gt;    ]&lt;br/&gt;
  }&lt;/p&gt;

&lt;p&gt;2. Install 2 more flow entries, &quot;drop-vlan&quot; and &quot;drop-ipv6&quot;, with specifying&lt;br/&gt;
   ethernet-match.&lt;/p&gt;

&lt;p&gt;  PUT &lt;a href=&quot;http://localhost:8181/restconf/config/opendaylight-inventory:nodes/opendaylight-inventory:node/openflow:1/flow-node-inventory:table/0/flow-node-inventory:flow/drop-vlan&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://localhost:8181/restconf/config/opendaylight-inventory:nodes/opendaylight-inventory:node/openflow:1/flow-node-inventory:table/0/flow-node-inventory:flow/drop-vlan&lt;/a&gt;&lt;br/&gt;
  {&lt;br/&gt;
    &quot;flow-node-inventory:flow&quot;: [&lt;br/&gt;
      {&lt;br/&gt;
        &quot;table_id&quot;: 0,&lt;br/&gt;
        &quot;idle-timeout&quot;: 0,&lt;br/&gt;
        &quot;priority&quot;: 30,&lt;br/&gt;
        &quot;hard-timeout&quot;: 0,&lt;br/&gt;
        &quot;match&quot;: {&lt;br/&gt;
          &quot;ethernet-match&quot;: {&lt;br/&gt;
            &quot;ethernet-type&quot;: &lt;/p&gt;
{
              &quot;type&quot;: &quot;0x8100&quot;
            }
&lt;p&gt;          }&lt;br/&gt;
        },&lt;br/&gt;
        &quot;id&quot;: &quot;drop-vlan&quot;&lt;br/&gt;
      }&lt;br/&gt;
    ]&lt;br/&gt;
  }&lt;/p&gt;

&lt;p&gt;  PUT &lt;a href=&quot;http://localhost:8181/restconf/config/opendaylight-inventory:nodes/opendaylight-inventory:node/openflow:1/flow-node-inventory:table/0/flow-node-inventory:flow/drop-ipv6&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://localhost:8181/restconf/config/opendaylight-inventory:nodes/opendaylight-inventory:node/openflow:1/flow-node-inventory:table/0/flow-node-inventory:flow/drop-ipv6&lt;/a&gt;&lt;br/&gt;
  {&lt;br/&gt;
    &quot;flow-node-inventory:flow&quot;: [&lt;br/&gt;
      {&lt;br/&gt;
        &quot;hard-timeout&quot;: 0,&lt;br/&gt;
        &quot;id&quot;: &quot;drop-ipv6&quot;,&lt;br/&gt;
        &quot;idle-timeout&quot;: 0,&lt;br/&gt;
        &quot;match&quot;: {&lt;br/&gt;
          &quot;ethernet-match&quot;: {&lt;br/&gt;
            &quot;ethernet-type&quot;: &lt;/p&gt;
{
              &quot;type&quot;: &quot;0x86dd&quot;
            }
&lt;p&gt;          }&lt;br/&gt;
        },&lt;br/&gt;
        &quot;priority&quot;: 40,&lt;br/&gt;
        &quot;table_id&quot;: 0&lt;br/&gt;
      }&lt;br/&gt;
    ]&lt;br/&gt;
  }&lt;/p&gt;

&lt;p&gt;  mininet&amp;gt; dpctl dump-flows -O openflow13&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
	&lt;ul&gt;
		&lt;li&gt;
		&lt;ul&gt;
			&lt;li&gt;s1 ------------------------------------------------------------------------&lt;br/&gt;
  OFPST_FLOW reply (OF1.3) (xid=0x2):&lt;br/&gt;
   cookie=0x0, duration=48.180s, table=0, n_packets=0, n_bytes=0, send_flow_rem priority=40,ipv6 actions=drop&lt;br/&gt;
   cookie=0x0, duration=205.369s, table=0, n_packets=0, n_bytes=0, send_flow_rem priority=30,dl_type=0x8100 actions=drop&lt;br/&gt;
   cookie=0x0, duration=325.145s, table=0, n_packets=130, n_bytes=8190, send_flow_rem priority=10 actions=drop&lt;/li&gt;
		&lt;/ul&gt;
		&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;3. Delete &quot;drop-all&quot;. This will remove all flow entries in s1 unexpectedly&lt;br/&gt;
   because openflowplugin sends non-strict version of FLOW_MOD (DELETE) that&lt;br/&gt;
   matches every flow entry.&lt;/p&gt;

&lt;p&gt;  DELETE &lt;a href=&quot;http://localhost:8181/restconf/config/opendaylight-inventory:nodes/opendaylight-inventory:node/openflow:1/flow-node-inventory:table/0/flow-node-inventory:flow/drop-all&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://localhost:8181/restconf/config/opendaylight-inventory:nodes/opendaylight-inventory:node/openflow:1/flow-node-inventory:table/0/flow-node-inventory:flow/drop-all&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;  mininet&amp;gt; dpctl dump-flows -O openflow13&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
	&lt;ul&gt;
		&lt;li&gt;
		&lt;ul&gt;
			&lt;li&gt;s1 ------------------------------------------------------------------------&lt;br/&gt;
  OFPST_FLOW reply (OF1.3) (xid=0x2):&lt;/li&gt;
		&lt;/ul&gt;
		&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;FRM should always set strict flag into UpdateFlowInput/RemoveFlowInput so that&lt;br/&gt;
openflowplugin sends strict version of FLOW_MOD (MODIFY_STRICT/DELETE_STRICT).&lt;br/&gt;
If openflowplugin sends FLOW_MOD (DELETE_STRICT), DELETE request described above&lt;br/&gt;
deletes only &quot;drop-all&quot; flow entry.&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="25575">CONTROLLER-1021</key>
            <summary>MD-SAL FRM may update/remove unexpected flow entries.</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>Wed, 12 Nov 2014 15:21:04 +0000</created>
                <updated>Thu, 19 Oct 2017 22:13:17 +0000</updated>
                            <resolved>Tue, 5 May 2015 15:17:07 +0000</resolved>
                                    <version>Post-Helium</version>
                                                    <component>adsal</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="49797" author="yasuda" created="Wed, 12 Nov 2014 15:25:57 +0000"  >&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/12787&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/12787&lt;/a&gt; (master)&lt;/p&gt;</comment>
                            <comment id="49798" author="vishnoianil@gmail.com" created="Wed, 12 Nov 2014 19:40:11 +0000"  >&lt;p&gt;Hi Shigeru,&lt;/p&gt;

&lt;p&gt;I updated the gerrit with my comment, can you please have a look at it and let me know your thought.&lt;/p&gt;

&lt;p&gt;Thanks&lt;br/&gt;
Anil&lt;/p&gt;</comment>
                            <comment id="49799" author="yasuda" created="Thu, 13 Nov 2014 08:48:13 +0000"  >&lt;p&gt;Hi Anil, Thanks for your comment.&lt;/p&gt;

&lt;p&gt;(In reply to avishnoi from comment #2)&lt;br/&gt;
&amp;gt; I updated the gerrit with my comment, can you please have a look at it and&lt;br/&gt;
&amp;gt; let me know your thought.&lt;/p&gt;

&lt;p&gt;As I commented to gerrit:2368, I believe that FRM should always use strict&lt;br/&gt;
version of FLOW_MOD because FRM should update/delete flow entries only associated&lt;br/&gt;
with updated/deleted flow records in datastore.&lt;/p&gt;</comment>
                            <comment id="49800" author="yasuda" created="Tue, 18 Nov 2014 00:22:24 +0000"  >&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/12905&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/12905&lt;/a&gt; (stable/helium)&lt;/p&gt;</comment>
                            <comment id="49801" author="carolsand@gmail.com" created="Tue, 5 May 2015 15:17:07 +0000"  >&lt;p&gt;This bug is part of the project to Move all ADSAL associated component bugs to ADSAL.&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>2368</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=2368]]></customfieldvalue>

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

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