<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:31:44 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-167] OF13 TunnelID Match Failures</title>
                <link>https://jira.opendaylight.org/browse/OPNFLWPLUG-167</link>
                <project id="10155" key="OPNFLWPLUG">OpenFlowPlugin</project>
                    <description>&lt;p&gt;Flowmods in the Neutron plugin have been failing recently. TunnelID matches are failing in OpenflowpluginTestCommandProvider. I narrowed this one down to the mask causing issues. &lt;/p&gt;

&lt;p&gt;OSGI output from HEAD&lt;br/&gt;
---------------------&lt;br/&gt;
// OpenflowpluginTestCommandProvider&lt;br/&gt;
osgi&amp;gt; addMDFlow openflow:143948071978317 f77&lt;br/&gt;
2014-05-20 01:54:54.139 EDT &lt;span class=&quot;error&quot;&gt;&amp;#91;Gogo shell&amp;#93;&lt;/span&gt; INFO  o.o.o.t.OpenflowpluginTestCommandProvider - TunnelID Match Called&lt;br/&gt;
2014-05-20 01:54:54.140 EDT &lt;span class=&quot;error&quot;&gt;&amp;#91;Gogo shell&amp;#93;&lt;/span&gt; INFO  o.o.o.t.OpenflowpluginTestCommandProvider - TunnelID Match Called tunnel.getTunnelID ==&amp;gt; 10668&lt;br/&gt;
gogo: IllegalArgumentException: Invalid range: -1099511627519, expected: [&lt;span class=&quot;error&quot;&gt;&amp;#91;0&#8229;18446744073709551615&amp;#93;&lt;/span&gt;].&lt;/p&gt;

&lt;p&gt;When I comment out the mask the flowmod succeeds:&lt;br/&gt;
------------------------------------------------&lt;br/&gt;
    private static MatchBuilder createTunnelIDMatch() {&lt;br/&gt;
        MatchBuilder match = new MatchBuilder();&lt;br/&gt;
        TunnelBuilder tunnel = new TunnelBuilder(); // tunnel id match&lt;br/&gt;
        tunnel.setTunnelId(BigInteger.valueOf(10668));&lt;/p&gt;

&lt;p&gt;// Commented out&lt;br/&gt;
//        byte[] mask = new byte[] &lt;/p&gt;
{ (byte) -1, (byte) -1, (byte) -1, 0, 0, 0, (byte) 1, (byte) 1 }
&lt;p&gt;;&lt;br/&gt;
//        tunnel.setTunnelMask(new BigInteger(mask));&lt;/p&gt;

&lt;p&gt;        match.setTunnel(tunnel.build());&lt;br/&gt;
        return match;&lt;br/&gt;
    }&lt;/p&gt;

&lt;p&gt;OSGI output with a successful flowmod after commenting out the mask:&lt;br/&gt;
--------------------------------------------------------------------&lt;br/&gt;
2014-05-20 02:12:07.703 EDT &lt;span class=&quot;error&quot;&gt;&amp;#91;md-sal-binding-notification-46&amp;#93;&lt;/span&gt; INFO  o.o.o.t.FlowEventListenerLoggingImpl - flow to be added..........................FlowAdded [_flowRef=FlowRef [_value=KeyedInstanceIdentifier&lt;/p&gt;
{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:143948071978317]]], 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=200]]]]}
&lt;p&gt;], _barrier=false, _cookieMask=FlowCookie &lt;span class=&quot;error&quot;&gt;&amp;#91;_value=10&amp;#93;&lt;/span&gt;, _flags=FlowModFlags &lt;span class=&quot;error&quot;&gt;&amp;#91;_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false, _nOBYTCOUNTS=false, _sENDFLOWREM=true&amp;#93;&lt;/span&gt;, _flowName=FooXf77, _installHw=false, _instructions=Instructions [_instruction=[Instruction [_order=0, _key=InstructionKey &lt;span class=&quot;error&quot;&gt;&amp;#91;_order=0&amp;#93;&lt;/span&gt;, _instruction=ApplyActionsCase [_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey &lt;span class=&quot;error&quot;&gt;&amp;#91;_order=0&amp;#93;&lt;/span&gt;, _action=SetFieldCase [_setField=SetField [_tunnel=Tunnel [_tunnelId=10668, augmentation=[]], augmentation=[]], augmentation=[]], augmentation=[]]], augmentation=[]], augmentation=[]], augmentation=[]]], augmentation=[]], _match=Match [_tunnel=Tunnel [_tunnelId=10668, augmentation=[]], augmentation=[]], _strict=false, _cookie=FlowCookie &lt;span class=&quot;error&quot;&gt;&amp;#91;_value=10&amp;#93;&lt;/span&gt;, _hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2, _transactionId=TransactionId &lt;span class=&quot;error&quot;&gt;&amp;#91;_value=26&amp;#93;&lt;/span&gt;, augmentation=[]]&lt;br/&gt;
2014-05-20 02:12:07.703 EDT &lt;span class=&quot;error&quot;&gt;&amp;#91;md-sal-binding-notification-47&amp;#93;&lt;/span&gt; INFO  o.o.o.t.FlowEventListenerLoggingImpl - flow to be added..........................FlowAdded [_flowRef=FlowRef [_value=KeyedInstanceIdentifier&lt;/p&gt;
{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:143948071978317]]], 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=200]]]]}
&lt;p&gt;], _barrier=false, _cookieMask=FlowCookie &lt;span class=&quot;error&quot;&gt;&amp;#91;_value=10&amp;#93;&lt;/span&gt;, _flags=FlowModFlags &lt;span class=&quot;error&quot;&gt;&amp;#91;_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false, _nOBYTCOUNTS=false, _sENDFLOWREM=true&amp;#93;&lt;/span&gt;, _flowName=FooXf77, _installHw=false, _instructions=Instructions [_instruction=[Instruction [_order=0, _key=InstructionKey &lt;span class=&quot;error&quot;&gt;&amp;#91;_order=0&amp;#93;&lt;/span&gt;, _instruction=ApplyActionsCase [_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey &lt;span class=&quot;error&quot;&gt;&amp;#91;_order=0&amp;#93;&lt;/span&gt;, _action=SetFieldCase [_setField=SetField [_tunnel=Tunnel [_tunnelId=10668, augmentation=[]], augmentation=[]], augmentation=[]], augmentation=[]]], augmentation=[]], augmentation=[]], augmentation=[]]], augmentation=[]], _match=Match [_tunnel=Tunnel [_tunnelId=10668, augmentation=[]], augmentation=[]], _strict=false, _cookie=FlowCookie &lt;span class=&quot;error&quot;&gt;&amp;#91;_value=10&amp;#93;&lt;/span&gt;, _hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2, _transactionId=TransactionId &lt;span class=&quot;error&quot;&gt;&amp;#91;_value=26&amp;#93;&lt;/span&gt;, augmentation=[]]&lt;br/&gt;
2014-05-20 02:12:07.703 EDT &lt;span class=&quot;error&quot;&gt;&amp;#91;md-sal-binding-notification-48&amp;#93;&lt;/span&gt; INFO  o.o.o.t.FlowEventListenerLoggingImpl - flow to be added..........................FlowAdded [_flowRef=FlowRef [_value=KeyedInstanceIdentifier&lt;/p&gt;
{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:143948071978317]]], 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=200]]]]}
&lt;p&gt;], _barrier=false, _cookieMask=FlowCookie &lt;span class=&quot;error&quot;&gt;&amp;#91;_value=10&amp;#93;&lt;/span&gt;, _flags=FlowModFlags &lt;span class=&quot;error&quot;&gt;&amp;#91;_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false, _nOBYTCOUNTS=false, _sENDFLOWREM=true&amp;#93;&lt;/span&gt;, _flowName=FooXf77, _installHw=false, _instructions=Instructions [_instruction=[Instruction [_order=0, _key=InstructionKey &lt;span class=&quot;error&quot;&gt;&amp;#91;_order=0&amp;#93;&lt;/span&gt;, _instruction=ApplyActionsCase [_applyActions=ApplyActions [_action=[Action [_order=0, _key=ActionKey &lt;span class=&quot;error&quot;&gt;&amp;#91;_order=0&amp;#93;&lt;/span&gt;, _action=SetFieldCase [_setField=SetField [_tunnel=Tunnel [_tunnelId=10668, augmentation=[]], augmentation=[]], augmentation=[]], augmentation=[]]], augmentation=[]], augmentation=[]], augmentation=[]]], augmentation=[]], _match=Match [_tunnel=Tunnel [_tunnelId=10668, augmentation=[]], augmentation=[]], _strict=false, _cookie=FlowCookie &lt;span class=&quot;error&quot;&gt;&amp;#91;_value=10&amp;#93;&lt;/span&gt;, _hardTimeout=0, _idleTimeout=0, _priority=2, _tableId=2, _transactionId=TransactionId &lt;span class=&quot;error&quot;&gt;&amp;#91;_value=26&amp;#93;&lt;/span&gt;, augmentation=[]]&lt;br/&gt;
2014-05-20 02:12:07.703 EDT &lt;span class=&quot;error&quot;&gt;&amp;#91;md-sal-binding-notification-47&amp;#93;&lt;/span&gt; INFO  o.o.o.t.FlowEventListenerLoggingImpl - added flow Xid.........................26&lt;br/&gt;
2014-05-20 02:12:07.703 EDT &lt;span class=&quot;error&quot;&gt;&amp;#91;md-sal-binding-notification-46&amp;#93;&lt;/span&gt; INFO  o.o.o.t.FlowEventListenerLoggingImpl - added flow Xid.........................26&lt;/p&gt;

&lt;p&gt;OVS flowmod instantiated w/o mask in the method&lt;br/&gt;
-----------------------------------------------&lt;br/&gt;
OFPST_FLOW reply (OF1.3) (xid=0x2):&lt;br/&gt;
 cookie=0xa, duration=124.355s, table=2, n_packets=0, n_bytes=0, send_flow_rem priority=2,tun_id=0x29ac actions=set_field:0x29ac-&amp;gt;tun_id&lt;/p&gt;

&lt;p&gt;I can help debugging the root this week if it isn&apos;t obvious to you guys. I need to go through all of the flowmods as this was the first one I started with.&lt;/p&gt;

&lt;p&gt;Thanks!&lt;br/&gt;
-Brent&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: Mac OS&lt;br/&gt;
Platform: PC&lt;/p&gt;</environment>
        <key id="27435">OPNFLWPLUG-167</key>
            <summary>OF13 TunnelID Match Failures</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="brent.salisbury@gmail.com">Brent Salisbury</assignee>
                                    <reporter username="brent.salisbury@gmail.com">Brent Salisbury</reporter>
                        <labels>
                    </labels>
                <created>Tue, 20 May 2014 06:28:36 +0000</created>
                <updated>Mon, 27 Sep 2021 09:01:12 +0000</updated>
                            <resolved>Tue, 12 Aug 2014 21:31:48 +0000</resolved>
                                                                    <component>General</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>5</watches>
                                                                                                                <comments>
                            <comment id="55680" author="zoltan.lajos.kis@ericsson.com" created="Tue, 20 May 2014 07:02:13 +0000"  >&lt;p&gt;The problem is that BigInteger uses two&apos;s complement, so it will interpret the first bit set as the negative sign.&lt;/p&gt;

&lt;p&gt;Could you check what happens if you add an extra zero to the front of the byte array?&lt;/p&gt;

&lt;p&gt;byte[] mask = new byte[] &lt;/p&gt;
{ 0, (byte) -1, (byte) -1, (byte) -1, 0, 0, 0, (byte) 1, (byte) 1 }
&lt;p&gt;;&lt;/p&gt;</comment>
                            <comment id="55681" author="michal.polkorab@gmail.com" created="Tue, 20 May 2014 08:06:17 +0000"  >&lt;p&gt;Another observation:&lt;/p&gt;

&lt;p&gt;I have checked the opendaylight-match-types.yang and found this definition:&lt;/p&gt;

&lt;p&gt;container &quot;tunnel&quot; {&lt;br/&gt;
    leaf tunnel-id &lt;/p&gt;
{
        description &quot;Metadata associated in the logical port&quot;;
            type uint64;
        }

&lt;p&gt;        leaf tunnel-mask &lt;/p&gt;
{
            type uint64;
        }
&lt;p&gt;    }&lt;/p&gt;

&lt;p&gt;So based on this definition, you should use BigInteger as mask type. It should be enough to use new BigInteger(1, &quot;your byte[]&quot;)&lt;/p&gt;

&lt;p&gt;I would say that the mask should be modeled as binary type. But that&apos;s a question for someone who created this model - why he created it this way.&lt;/p&gt;

&lt;p&gt;Regards&lt;br/&gt;
Michal Polkorab&lt;/p&gt;</comment>
                            <comment id="55682" author="abhijit2511" created="Thu, 22 May 2014 05:30:41 +0000"  >&lt;p&gt;Brent,&lt;/p&gt;

&lt;p&gt;Is this still happening?&lt;/p&gt;

&lt;p&gt;Thanks,&lt;br/&gt;
Abhijit&lt;/p&gt;</comment>
                            <comment id="55683" author="brent.salisbury@gmail.com" created="Sun, 25 May 2014 07:19:14 +0000"  >&lt;p&gt;(In reply to Zoltan Lajos Kis from comment #1)&lt;br/&gt;
&amp;gt; The problem is that BigInteger uses two&apos;s complement, so it will interpret&lt;br/&gt;
&amp;gt; the first bit set as the negative sign.&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; Could you check what happens if you add an extra zero to the front of the&lt;br/&gt;
&amp;gt; byte array?&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; byte[] mask = new byte[] &lt;/p&gt;
{ 0, (byte) -1, (byte) -1, (byte) -1, 0, 0, 0,
&amp;gt; (byte) 1, (byte) 1 }
&lt;p&gt;;&lt;/p&gt;

&lt;p&gt;That did it! Appreciate it Zoltan.&lt;/p&gt;

&lt;p&gt;Cheers,&lt;br/&gt;
-Brent&lt;/p&gt;</comment>
                            <comment id="55684" author="dbandyop@cisco.com" created="Tue, 3 Jun 2014 19:19:22 +0000"  >&lt;p&gt;hello,&lt;/p&gt;

&lt;p&gt;Is this bug fixed? If yes, I would really appreciate whoever pushed the change also takes over the bug (assign it yourself)&lt;/p&gt;

&lt;p&gt;Thanks,&lt;br/&gt;
Debolina&lt;/p&gt;</comment>
                            <comment id="55685" author="kramesha@cisco.com" created="Mon, 23 Jun 2014 20:27:34 +0000"  >&lt;p&gt;Checked the history of OpenflowpluginTestCommandProvider and saw a change from Brent for this bug.&lt;br/&gt;
Looks like Brent himself fixed it.&lt;/p&gt;

&lt;p&gt;Brent: can you please mark it resolved.&lt;/p&gt;</comment>
                            <comment id="55686" author="abhijit2511" created="Tue, 12 Aug 2014 21:31:48 +0000"  >&lt;p&gt;Looks like this is fixed as per Kamal&apos;s comment. Brent - if this is not - feel free to reopen it.&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>1035</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=1035]]></customfieldvalue>

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

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