<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:51: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>[CONTROLLER-18] Ping between new hosts taks more than 1 second</title>
                <link>https://jira.opendaylight.org/browse/CONTROLLER-18</link>
                <project id="10113" key="CONTROLLER">controller</project>
                    <description>&lt;p&gt;BACKGROUND&lt;br/&gt;
==========&lt;br/&gt;
host 10.0.0.1 is trying to ping 10.0.0.2. The two hosts are connected to the mininet simulated on the same machine where controller is running. 10.0.0.1 and 10.0.0.2 don&apos;t yet know each other MAC address. The first ping between 10.0.0.1 and 10.0.0.2 takes more than 1 second consistently.&lt;/p&gt;

&lt;p&gt;ROOT CAUSE SUMMARY&lt;br/&gt;
==================&lt;br/&gt;
When 10.0.0.1 issues the broadcast ARP request in order to find 10.0.0.2 MAC address, the controller takes the charge of doing the job simulating a traditional broadcast medium IP subnet. As soon as the controller finds out that 10.0.0.2 is associated to MAC address 00:00:00:00:00:02 instead to inform 10.0.0.1, it actually wait for the next broadcast from 10.0.0.1 to find 10.0.0.2 to tells about it. The second broadcast request from 10.0.0.1 to find 10.0.0.2 is 1 second after the first one and that cause the delay of 1+ seconds consistently seen and reported.&lt;br/&gt;
The issue is caused by a lack in the ARP handler of proactively informing 10.0.0.1 of 10.0.0.2 MAC address as soon it&apos;s learned.&lt;/p&gt;

&lt;p&gt;SOLUTION SUMMARY&lt;br/&gt;
================&lt;br/&gt;
ARP handler should keep track of the broadcast ARP requests and as soon as the MAC for the target of the request is learned controller should send a reply to the request.&lt;/p&gt;

&lt;p&gt;DETAILS OF THE SUMMARY AS SEEN FROM PACKET CAPTURE&lt;br/&gt;
==================================================&lt;br/&gt;
Referring to packet capture in:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://docs.google.com/file/d/0B0XCPCWCfzpyWThiaTJxR3FHMUE/edit?usp=sharing&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://docs.google.com/file/d/0B0XCPCWCfzpyWThiaTJxR3FHMUE/edit?usp=sharing&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;host 10.0.0.1 is trying to ping 10.0.0.2 so before pinging the ARP processing is in the picture and it goes like this:&lt;/p&gt;

&lt;p&gt;sample #23) the ARP request from the host 10.0.0.1 searching for 10.0.0.2 got into the system.&lt;br/&gt;
sample #24) it came to the controller.&lt;br/&gt;
sample #76) host 10.0.0.2 replies with it&apos;s MAC&lt;/p&gt;

&lt;p&gt;Now the controller should somehow send an answer to sample #23 but it doesn&apos;t because it actually waits for the next request from the host 10.0.0.1 seeking for 10.0.0.2. Now the story continues as:&lt;/p&gt;

&lt;p&gt;sample #197) again host 10.0.0.1 search for 10.0.0.2&lt;br/&gt;
sample #201) this time the controller proxy arp for it&lt;br/&gt;
sample #202) at this point the ICMP requests gets out&lt;br/&gt;
sample #206) 10.0.0.2 search for 10.0.0.1 MAC by issuing an ARP&lt;br/&gt;
sample #209) controller proxies for it because it&apos;s known&lt;br/&gt;
sample #211) the ICMP reply goes on.&lt;/p&gt;

&lt;p&gt;So the inefficiency is caused by the fact that the proxy ARP implemented by ARP handler doesn&apos;t proactively tell to 10.0.0.1 that it has found the host 10.0.0.2 but waits for the next request from 10.0.0.1 to find 10.0.0.2. The second request is 1 second a part from the first one.&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: Windows&lt;br/&gt;
Platform: PC&lt;/p&gt;</environment>
        <key id="24572">CONTROLLER-18</key>
            <summary>Ping between new hosts taks more than 1 second</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="-1">Unassigned</assignee>
                                    <reporter username="gmeo@cisco.com">Giovanni Meo</reporter>
                        <labels>
                    </labels>
                <created>Tue, 21 May 2013 08:46:10 +0000</created>
                <updated>Thu, 19 Oct 2017 22:13:21 +0000</updated>
                            <resolved>Mon, 4 May 2015 23:44:52 +0000</resolved>
                                    <version>0.4.0</version>
                                                    <component>adsal</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="47288" author="gmeo@cisco.com" created="Thu, 5 Sep 2013 11:30:34 +0000"  >&lt;p&gt;Was fixed as part of:&lt;br/&gt;
&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/393/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/393/&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="47289" author="carolsand@gmail.com" created="Mon, 4 May 2015 23:44:52 +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>24</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=24]]></customfieldvalue>

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

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