<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:31:21 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-15] Modifying a flow is not applying the changes to the switch</title>
                <link>https://jira.opendaylight.org/browse/OPNFLWPLUG-15</link>
                <project id="10155" key="OPNFLWPLUG">OpenFlowPlugin</project>
                    <description>&lt;p&gt;Steps to follow,&lt;/p&gt;

&lt;p&gt;1. Add a flow&lt;/p&gt;

&lt;p&gt;PUT &lt;a href=&quot;http://localhost:8080/controller/nb/v2/flowprogrammer/default/node/MD_SAL/openflow:1/staticFlow/flow109&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://localhost:8080/controller/nb/v2/flowprogrammer/default/node/MD_SAL/openflow:1/staticFlow/flow109&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&amp;lt;flowConfig&amp;gt;&lt;br/&gt;
   &amp;lt;installInHw&amp;gt;true&amp;lt;/installInHw&amp;gt;&lt;br/&gt;
   &amp;lt;name&amp;gt;flow109&amp;lt;/name&amp;gt;&lt;br/&gt;
   &amp;lt;node&amp;gt;&lt;br/&gt;
      &amp;lt;id&amp;gt;openflow:1&amp;lt;/id&amp;gt;&lt;br/&gt;
      &amp;lt;type&amp;gt;MD_SAL&amp;lt;/type&amp;gt;&lt;br/&gt;
   &amp;lt;/node&amp;gt;&lt;br/&gt;
   &amp;lt;ingressPort&amp;gt;openflow:1:1&amp;lt;/ingressPort&amp;gt;&lt;br/&gt;
   &amp;lt;priority&amp;gt;5109&amp;lt;/priority&amp;gt;&lt;br/&gt;
   &amp;lt;etherType&amp;gt;0x800&amp;lt;/etherType&amp;gt;&lt;br/&gt;
   &amp;lt;nwSrc&amp;gt;9.9.1.2&amp;lt;/nwSrc&amp;gt;&lt;br/&gt;
   &amp;lt;actions&amp;gt;OUTPUT=openflow:1:1&amp;lt;/actions&amp;gt;&lt;br/&gt;
&amp;lt;/flowConfig&amp;gt;&lt;/p&gt;

&lt;p&gt;2. Update the flow&lt;/p&gt;


&lt;p&gt;&amp;lt;flowConfig&amp;gt;&lt;br/&gt;
   &amp;lt;installInHw&amp;gt;true&amp;lt;/installInHw&amp;gt;&lt;br/&gt;
   &amp;lt;name&amp;gt;flow109&amp;lt;/name&amp;gt;&lt;br/&gt;
   &amp;lt;node&amp;gt;&lt;br/&gt;
      &amp;lt;id&amp;gt;openflow:1&amp;lt;/id&amp;gt;&lt;br/&gt;
      &amp;lt;type&amp;gt;MD_SAL&amp;lt;/type&amp;gt;&lt;br/&gt;
   &amp;lt;/node&amp;gt;&lt;br/&gt;
   &amp;lt;ingressPort&amp;gt;openflow:1:1&amp;lt;/ingressPort&amp;gt;&lt;br/&gt;
   &amp;lt;priority&amp;gt;5109&amp;lt;/priority&amp;gt;&lt;br/&gt;
   &amp;lt;etherType&amp;gt;0x800&amp;lt;/etherType&amp;gt;&lt;br/&gt;
   &amp;lt;nwSrc&amp;gt;9.9.1.3&amp;lt;/nwSrc&amp;gt;&lt;br/&gt;
   &amp;lt;actions&amp;gt;OUTPUT=openflow:1:1&amp;lt;/actions&amp;gt;&lt;br/&gt;
&amp;lt;/flowConfig&amp;gt;&lt;/p&gt;

&lt;p&gt;3. Check with RESTCONF&lt;/p&gt;

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

&lt;p&gt;The flow should have been updated&lt;/p&gt;

&lt;p&gt;4. Now check on the switch&lt;/p&gt;

&lt;p&gt;sudo ovs-ofctl -O OpenFlow13 dump-flows s1&lt;/p&gt;

&lt;p&gt;You will see this,&lt;/p&gt;

&lt;p&gt;OFPST_FLOW reply (OF1.3) (xid=0x2):&lt;br/&gt;
 cookie=0x0, duration=477.033s, table=0, n_packets=0, n_bytes=0, send_flow_rem priority=5109,ip,in_port=1,nw_src=9.9.1.2 actions=output:1&lt;/p&gt;

&lt;p&gt;when you expect to see this&lt;/p&gt;

&lt;p&gt;OFPST_FLOW reply (OF1.3) (xid=0x2):&lt;br/&gt;
 cookie=0x0, duration=477.033s, table=0, n_packets=0, n_bytes=0, send_flow_rem priority=5109,ip,in_port=1,nw_src=9.9.1.3 actions=output:1&lt;/p&gt;


&lt;p&gt;Note that for this example I used the FlowProgrammer NB API but I would expect to see similar results when using RESTCONF or the CLI to add the flow.&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="27283">OPNFLWPLUG-15</key>
            <summary>Modifying a flow is not applying the changes to the switch</summary>
                <type id="10100" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10310&amp;avatarType=issuetype">Improvement</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="dbandyop@cisco.com">Debolina Bandyopadhyay</assignee>
                                    <reporter username="moraja@cisco.com">Moiz Raja</reporter>
                        <labels>
                    </labels>
                <created>Thu, 9 Jan 2014 01:32:08 +0000</created>
                <updated>Mon, 27 Sep 2021 09:01:00 +0000</updated>
                            <resolved>Wed, 21 May 2014 21:53:06 +0000</resolved>
                                                                    <component>General</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>12</watches>
                                                                                                                <comments>
                            <comment id="55058" author="jmedved@cisco.com" created="Thu, 9 Jan 2014 04:52:35 +0000"  >&lt;p&gt;This seems to be related to &lt;a href=&quot;https://jira.opendaylight.org/browse/CONTROLLER-108&quot; title=&quot;Flow delete through restconf does not work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CONTROLLER-108&quot;&gt;&lt;del&gt;CONTROLLER-108&lt;/del&gt;&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="55059" author="jmedved@cisco.com" created="Thu, 9 Jan 2014 04:55:48 +0000"  >&lt;p&gt;Trying to delete a flow from restconf throws the following exception:&lt;/p&gt;

&lt;p&gt;HTTP Status 405 - Method Not Allowed&lt;/p&gt;

&lt;p&gt;type Status report&lt;/p&gt;

&lt;p&gt;message Method Not Allowed&lt;/p&gt;

&lt;p&gt;description The specified HTTP method is not allowed for the requested resource.&lt;/p&gt;

&lt;p&gt;Apache Tomcat/7.0.32&lt;/p&gt;</comment>
                            <comment id="55060" author="deepthi.v.v@ericsson.com" created="Fri, 10 Jan 2014 10:32:04 +0000"  >&lt;p&gt;I tried the same flow addition and moification through dpctl command with cpqd switch and it does not work either.&lt;/p&gt;

&lt;p&gt;1. utilities/dpctl tcp:127.0.0.1:6000 flow-mod table=0,cmd=add,prio=5109 in_port=1,eth_type=0x800,ip_src=9.1.1.2, apply:output=1&lt;/p&gt;

&lt;p&gt;Flow statistics command shows flow is added:&lt;br/&gt;
stat_repl{type=&quot;flow&quot;, flags=&quot;0x0&quot;, stats=[{table=&quot;0&quot;, match=&quot;oxm&lt;/p&gt;
{in_port=&quot;1&quot;, eth_type=&quot;0x800&quot;, ipv4_src=&quot;9.1.1.2&quot;}&quot;, dur_s=&quot;41&quot;, dur_ns=&quot;434000&quot;, prio=&quot;5109&quot;, idle_to=&quot;0&quot;, hard_to=&quot;0&quot;, cookie=&quot;0x0&quot;, pkt_cnt=&quot;0&quot;, byte_cnt=&quot;0&quot;, insts=[apply{acts=&lt;span class=&quot;error&quot;&gt;&amp;#91;out{port=&quot;1&quot;}&amp;#93;&lt;/span&gt;}]}]}&lt;br/&gt;
&lt;br/&gt;
2. utilities/dpctl tcp:127.0.0.1:6000 flow-mod table=0,cmd=mod,prio=5109 in_port=1,eth_type=0x800,ip_src=9.1.1.3, apply:output=1&lt;br/&gt;
&lt;br/&gt;
Flow statistics reply shows flow was not modified:&lt;br/&gt;
stat_repl{type=&quot;flow&quot;, flags=&quot;0x0&quot;, stats=[{table=&quot;0&quot;, match=&quot;oxm{in_port=&quot;1&quot;, eth_type=&quot;0x800&quot;, ipv4_src=&quot;9.1.1.2&quot;}
&lt;p&gt;&quot;, dur_s=&quot;154&quot;, dur_ns=&quot;805000&quot;, prio=&quot;5109&quot;, idle_to=&quot;0&quot;, hard_to=&quot;0&quot;, cookie=&quot;0x0&quot;, pkt_cnt=&quot;0&quot;, byte_cnt=&quot;0&quot;, insts=[apply{acts=[out&lt;/p&gt;
{port=&quot;1&quot;}
&lt;p&gt;]}]}]}&lt;/p&gt;</comment>
                            <comment id="55061" author="hagbard@gmail.com" created="Fri, 10 Jan 2014 17:29:22 +0000"  >&lt;p&gt;Deepthi: Could you try from the command line on OVS and paste in the results here as well... should be a perfectly valid flow from looking at it, wondering if there&apos;s a CPqD bug.&lt;/p&gt;</comment>
                            <comment id="55062" author="deepthi.v.v@ericsson.com" created="Sun, 12 Jan 2014 07:08:26 +0000"  >&lt;p&gt;Ed: I tried the commands with OVS. Result is the same. There is no error and the flow is not modified. Since there is no error from the switch, it means that a matching flow entry for modification was not found.&lt;/p&gt;

&lt;p&gt;Commands:&lt;br/&gt;
1. sudo ovs-ofctl -O Openflow13 add-flow s1 &quot;table=0, priority=5109, in_port=1, dl-type=0x800, nw_src=9.9.1.2, action=output:1&quot;&lt;/p&gt;

&lt;p&gt;Flow statistics:&lt;br/&gt;
OFPST_FLOW reply (OF1.3) (xid=0x2):&lt;br/&gt;
cookie=0x0, duration=0.074s, table=0, n_packets=0, n_bytes=0, priority=5109,ip,in_port=1,nw_src=9.9.1.2 actions=output:1&lt;/p&gt;

&lt;p&gt;2. sudo ovs-ofctl -O Openflow13 mod-flows s1 &quot;table=0, priority=5109, in_port=1, dl-type=0x800, nw_src=9.9.1.3, action=output:1&quot;&lt;/p&gt;

&lt;p&gt;Flow statistics:&lt;br/&gt;
OFPST_FLOW reply (OF1.3) (xid=0x2):&lt;br/&gt;
cookie=0x0, duration=0.235s, table=0, n_packets=0, n_bytes=0, priority=5109, ip,in_port=1,nw_src=9.9.1.2 actions=output:1&lt;/p&gt;</comment>
                            <comment id="55063" author="moraja@cisco.com" created="Tue, 14 Jan 2014 20:08:02 +0000"  >&lt;p&gt;I still see this problem (obviously since even via command line the flow cannot be modified)&lt;/p&gt;</comment>
                            <comment id="55064" author="hagbard@gmail.com" created="Wed, 15 Jan 2014 16:54:54 +0000"  >&lt;p&gt;We need to when a change is written to a flow check to see if the new match matches the old match.  If the new match and priority matches the old match and priority, push it as a flow_mod modified.  if the new match &lt;b&gt;doesn&apos;t&lt;/b&gt; match the old match, we need to send a flow_mod delete and a flow_mod add.&lt;/p&gt;

&lt;p&gt;This should be handled in the plugin.&lt;/p&gt;</comment>
                            <comment id="55065" author="srikar.rajamani@ericsson.com" created="Fri, 17 Jan 2014 08:36:10 +0000"  >&lt;p&gt;If the new match does not match the existing match, the forwarding rules manager should return an error and it should be left to an application to handle this error just like EEXIST in *nix. For example, we don&apos;t allow configuration of the same vlan on the same interface twice and the OS does not attempt to hide this fact from the config app by deleting the existing vlan &amp;amp; adding the new one.&lt;/p&gt;


&lt;p&gt;Pushing such application specific behavior to the plugin is needlessly adding too much complexity to the plugin and does not belong at the plugin layer architecturally.&lt;/p&gt;</comment>
                            <comment id="55066" author="jmedved@cisco.com" created="Sat, 18 Jan 2014 20:50:55 +0000"  >&lt;p&gt;I agree with Srikar&apos;s comment. But do we have time to implement it for Hydrogen?&lt;/p&gt;</comment>
                            <comment id="55067" author="prasanna.huddar@ericsson.com" created="Mon, 20 Jan 2014 09:52:58 +0000"  >&lt;p&gt;Already there is gerrit @ 2760. May be we should re-visit the gerrit&lt;/p&gt;</comment>
                            <comment id="55068" author="prasanna.huddar@ericsson.com" created="Mon, 20 Jan 2014 09:54:02 +0000"  >&lt;p&gt;Sorry gerrit @ 3894&lt;/p&gt;</comment>
                            <comment id="55069" author="hagbard@gmail.com" created="Thu, 23 Jan 2014 16:29:21 +0000"  >&lt;p&gt;It is unacceptable for to propogate pure openflowisms into the NB.&lt;/p&gt;

&lt;p&gt;Semantically, a user of a &apos;flow programming&apos; API has a reasonable expecation that they can modify a flow, including its match or priority.  There are other kinds of flow programming APIs (like COPS) that do not have Openflows pecurliarity on flow modify.  There fore it is imperative that we handle this down in the plugin where Openflowism should be isolated.  The only reasonable way I can think of to do so is to have the plugin check for change to match/priority and if found send a delete and an add as OF fails to support certain valid kinds of modifications with its modify message.&lt;/p&gt;</comment>
                            <comment id="55070" author="prasanna.huddar@ericsson.com" created="Fri, 24 Jan 2014 14:43:22 +0000"  >&lt;p&gt;Here is a scenario:&lt;br/&gt;
1. We add flow(flowid=20) with dst address 10.10.1.0&lt;br/&gt;
creationDataStore will have 10.10.1.0&lt;/p&gt;

&lt;p&gt;2. Modify flow(flowid = 20) with dst address 20.20.1.0&lt;/p&gt;

&lt;p&gt;So originalFlow = 10.10.1.0 and updatedFlow=20.20.1.0&lt;br/&gt;
creationDataStore will be 10.10.1.0 and updateddataStore=20.20.1.0&lt;/p&gt;

&lt;p&gt;3. Modify flow(flowid = 20) again with dst address 30.30.1.0&lt;/p&gt;

&lt;p&gt;So originalFlow = 10.10.1.0 and updatedFlow=30.30.1.0&lt;br/&gt;
creationDataStore will be 10.10.1.0 and updateddataStore=30.30.1.0&lt;/p&gt;

&lt;p&gt;So if you observe the above behavior the originalFlow  is always set to what is present in creationDataStore. creationDataStore is updated only once during Flow creation.&lt;/p&gt;

&lt;p&gt;So the problem is MD-SAL needs to update the originalFlow with the right value.&lt;br/&gt;
Until then as discussed flow_mod for match logic will not work.&lt;/p&gt;</comment>
                            <comment id="55071" author="p.govinda.rajulu@ericsson.com" created="Fri, 24 Jan 2014 15:37:48 +0000"  >&lt;p&gt;&lt;a href=&quot;http://git.opendaylight.org/gerrit/4720&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://git.opendaylight.org/gerrit/4720&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="55072" author="abhijit2511" created="Thu, 20 Mar 2014 04:27:01 +0000"  >&lt;p&gt;What&apos;s the latest on this bug Deepthi?&lt;/p&gt;</comment>
                            <comment id="55073" author="kramesha@cisco.com" created="Fri, 2 May 2014 07:31:52 +0000"  >
&lt;p&gt;Patch submitted for review: &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/6645/1&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/6645/1&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="55074" author="christopher.o.shea@ericsson.com" created="Tue, 13 May 2014 21:30:06 +0000"  >&lt;p&gt;Hi Is anyone looking into the patch review? &lt;/p&gt;

&lt;p&gt;It&apos;s blocking me from pushing further test cases to Robot for integration project.&lt;/p&gt;</comment>
                            <comment id="55075" author="kramesha@cisco.com" created="Tue, 13 May 2014 21:33:50 +0000"  >&lt;p&gt;Hi Chris,&lt;/p&gt;


&lt;p&gt;We are currently rebasing the recent changes done on the same file (OFRpcTaskHelper etc).&lt;/p&gt;

&lt;p&gt;Also the current fix does not check for priority.&lt;/p&gt;

&lt;p&gt;We am in the process of including adding the priority check as well and a review link will be soon submitted.&lt;/p&gt;

&lt;p&gt;Thanks&lt;br/&gt;
Kamal&lt;/p&gt;</comment>
                            <comment id="55076" author="dbandyop@cisco.com" created="Fri, 16 May 2014 01:53:19 +0000"  >&lt;p&gt;New Gerrit link with both priority and match checks : &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/7099/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/7099/&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="55077" author="abhijit2511" created="Wed, 21 May 2014 21:53:06 +0000"  >&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/7099/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/7099/&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10000">
                    <name>Blocks</name>
                                            <outwardlinks description="blocks">
                                        <issuelink>
            <issuekey id="24672">CONTROLLER-118</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10002">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="27333">OPNFLWPLUG-65</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="27431">OPNFLWPLUG-163</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <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>275</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=275]]></customfieldvalue>

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

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