<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:59:57 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>[GENIUS-115] OVS Nodes Connect Quickly, Not All Get TransportZone TEPs</title>
                <link>https://jira.opendaylight.org/browse/GENIUS-115</link>
                <project id="10126" key="GENIUS">genius</project>
                    <description>&lt;p&gt;When OVS nodes connect quickly, one after another, some nodes will not get all the TEPs. The cause of this is as follows:&lt;/p&gt;

&lt;p&gt;In&#160;org.opendaylight.genius.itm.confighelpers.ItmTepAddWorker we have the following code:&lt;/p&gt;

&lt;p&gt;this.meshedDpnList = dpnTEPsInfoCache.getAllPresent();&lt;br/&gt;
 LOG.debug(&quot;Invoking Internal Tunnel build method with Configured DpnList {} ; Meshed DpnList {} &quot;,&lt;br/&gt;
 cfgdDpnList, meshedDpnList);&lt;br/&gt;
 futures.addAll(itmInternalTunnelAddWorker.buildAllTunnels(mdsalManager, cfgdDpnList,&lt;br/&gt;
 meshedDpnList, itmConfig)) ;&lt;/p&gt;

&lt;p&gt;Note that &quot;meshedDpnList&quot; is retrieved from a cache. This cache is a subclass of mdsalutil&apos;s DataObjectCache which waits for notifications of type DpnTEPsInfo and caches them in memory. What I observed is that if the switches connect in quick succession, sometimes that cache is not updated when the code above is executed, resulting in that new switch never getting the TEP to connect to the missing DPN.&lt;/p&gt;

&lt;p&gt;Consider the following two log lines, separated by less than 0.1 of a second:&lt;/p&gt;

&lt;p&gt;2018-02-22T09:35:57,918 | DEBUG | ForkJoinPool-1-worker-3 | ItmInternalTunnelAddWorker | 176 - org.opendaylight.genius.itm-impl - 0.4.0.SNAPSHOT | Updating CONFIGURATION datastore with DPN DPNTEPsInfo [_dPNID=37528269029441, _key=DPNTEPsInfoKey &lt;span class=&quot;error&quot;&gt;&amp;#91;_dPNID=37528269029441&amp;#93;&lt;/span&gt;, _tunnelEndPoints=[TunnelEndPoints [_gwIpAddress=IpAddress [_ipv4Address=Ipv4Address &lt;span class=&quot;error&quot;&gt;&amp;#91;_value=0.0.0.0&amp;#93;&lt;/span&gt;], _interfaceName=37528269029441::0, _ipAddress=IpAddress [_ipv4Address=Ipv4Address &lt;span class=&quot;error&quot;&gt;&amp;#91;_value=172.17.0.2&amp;#93;&lt;/span&gt;], _key=TunnelEndPointsKey [_portname=, _vLANID=0, _ipAddress=IpAddress [_ipv4Address=Ipv4Address &lt;span class=&quot;error&quot;&gt;&amp;#91;_value=172.17.0.2&amp;#93;&lt;/span&gt;], _tunnelType=class org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelTypeVxlan], _optionTunnelTos=0, _portname=, _subnetMask=IpPrefix [_ipv4Prefix=Ipv4Prefix &lt;span class=&quot;error&quot;&gt;&amp;#91;_value=255.255.255.255/32&amp;#93;&lt;/span&gt;], _tunnelType=class org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelTypeVxlan, _tzMembership=[TzMembership [_key=TzMembershipKey &lt;span class=&quot;error&quot;&gt;&amp;#91;_zoneName=default-transport-zone&amp;#93;&lt;/span&gt;, _zoneName=default-transport-zone, augmentation=[]]], _vLANID=0, _optionOfTunnel=false, augmentation=[]]], augmentation=[]] &lt;/p&gt;

&lt;p&gt;And&lt;/p&gt;

&lt;p&gt;2018-02-22T09:35:57,987 | DEBUG | ForkJoinPool-1-worker-3 | ItmTepAddWorker | 176 - org.opendaylight.genius.itm-impl - 0.4.0.SNAPSHOT | Invoking Internal Tunnel build method with Configured DpnList [DPNTEPsInfo [_dPNID=116901406912847, _key=DPNTEPsInfoKey &lt;span class=&quot;error&quot;&gt;&amp;#91;_dPNID=116901406912847&amp;#93;&lt;/span&gt;, _tunnelEndPoints=[TunnelEndPoints [_gwIpAddress=IpAddress [_ipv4Address=Ipv4Address &lt;span class=&quot;error&quot;&gt;&amp;#91;_value=0.0.0.0&amp;#93;&lt;/span&gt;], _interfaceName=116901406912847::0, _ipAddress=IpAddress [_ipv4Address=Ipv4Address &lt;span class=&quot;error&quot;&gt;&amp;#91;_value=172.17.0.3&amp;#93;&lt;/span&gt;], _key=TunnelEndPointsKey [_portname=, _vLANID=0, _ipAddress=IpAddress [_ipv4Address=Ipv4Address &lt;span class=&quot;error&quot;&gt;&amp;#91;_value=172.17.0.3&amp;#93;&lt;/span&gt;], _tunnelType=class org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelTypeVxlan], _optionTunnelTos=0, _portname=, _subnetMask=IpPrefix [_ipv4Prefix=Ipv4Prefix &lt;span class=&quot;error&quot;&gt;&amp;#91;_value=255.255.255.255/32&amp;#93;&lt;/span&gt;], _tunnelType=class org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelTypeVxlan, _tzMembership=[TzMembership [_key=TzMembershipKey &lt;span class=&quot;error&quot;&gt;&amp;#91;_zoneName=default-transport-zone&amp;#93;&lt;/span&gt;, _zoneName=default-transport-zone, augmentation=[]]], _vLANID=0, _optionOfTunnel=false, augmentation=[]]], augmentation=[]]] ; Meshed DpnList [] &lt;/p&gt;

&lt;p&gt;Note that the DpnTEPsInfo for 172.17.0.2 is created in the first line but is absent in the meshed list on the second.&lt;/p&gt;</description>
                <environment></environment>
        <key id="29259">GENIUS-115</key>
            <summary>OVS Nodes Connect Quickly, Not All Get TransportZone TEPs</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="1" iconUrl="https://jira.opendaylight.org/images/icons/priorities/blocker.svg">Highest</priority>
                        <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="jhershbe">Josh Hershberg</assignee>
                                    <reporter username="jhershbe">Josh Hershberg</reporter>
                        <labels>
                            <label>patch_merged</label>
                    </labels>
                <created>Thu, 22 Feb 2018 11:43:48 +0000</created>
                <updated>Fri, 9 Mar 2018 02:12:07 +0000</updated>
                            <resolved>Fri, 9 Mar 2018 02:12:07 +0000</resolved>
                                    <version>Oxygen</version>
                                    <fixVersion>Oxygen</fixVersion>
                                    <component>General</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>5</watches>
                                                                                                                <comments>
                            <comment id="61337" author="vivek.v.srivastava@ericsson.com" created="Wed, 28 Feb 2018 12:06:32 +0000"  >&lt;p&gt;Yes, race condition is with any 2 nodes getting added at same time. So probability of hitting it in scale setup is more as larger the number of nodes, greater the likelihood of any 2 nodes coming in at same time.&lt;/p&gt;

&lt;p&gt;&#160;Regards,&lt;/p&gt;

&lt;p&gt;Vishal.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;From:&lt;/b&gt; Josh Hershberg [&lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:jhershbe@redhat.com&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;jhershbe@redhat.com&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;] &lt;b&gt;Sent:&lt;/b&gt; 27 February 2018 16:36 &lt;b&gt;To:&lt;/b&gt; Vishal Thapar &amp;lt;&lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:vishal.thapar@ericsson.com&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;vishal.thapar@ericsson.com&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&amp;gt; &lt;b&gt;Cc:&lt;/b&gt; Hema Gopalkrishnan &amp;lt;&lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:hema.gopalkrishnan@ericsson.com&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;hema.gopalkrishnan@ericsson.com&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&amp;gt;; Vivek Srivastava V &amp;lt;&lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:vivek.v.srivastava@ericsson.com&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;vivek.v.srivastava@ericsson.com&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&amp;gt;; Faseela K &amp;lt;&lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:faseela.k@ericsson.com&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;faseela.k@ericsson.com&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&amp;gt;; &lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:genius-dev@lists.opendaylight.org&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;genius-dev@lists.opendaylight.org&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt; &lt;b&gt;Subject:&lt;/b&gt; RE: Oxygen blocker issue in Genius&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;Slight correction. The functional failure is a race condition that can occur with just two nodes. Not always, but I&apos;ve seen it. 20 is just how many docker/ovs instances I can do on my laptop at once.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;On Feb 27, 2018 12:44 PM, &quot;Vishal Thapar&quot; &amp;lt;&lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:vishal.thapar@ericsson.com&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;vishal.thapar@ericsson.com&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&amp;gt; wrote:&lt;/p&gt;

&lt;p&gt;Hi Hema,&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;Using Auto tunnels with current code it is running into functional failures with 20DPNs. Scale testing that we did, do you recall how are teps added? With any delay with each tep add, in batches with delay between batches or all in one shot?&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;Regards,&lt;/p&gt;

&lt;p&gt;Vishal.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;From:&lt;/b&gt; Josh Hershberg &lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:jhershbe@redhat.com]&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;mailto:[jhershbe@redhat.com&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt; &lt;b&gt;Sent:&lt;/b&gt; 27 February 2018 15:04 &lt;b&gt;To:&lt;/b&gt; Hema Gopalkrishnan &amp;lt;&lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:hema.gopalkrishnan@ericsson.com&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;hema.gopalkrishnan@ericsson.com&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&amp;gt; &lt;b&gt;Cc:&lt;/b&gt; Vishal Thapar &amp;lt;&lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:vishal.thapar@ericsson.com&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;vishal.thapar@ericsson.com&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&amp;gt;; Vivek Srivastava V &amp;lt;&lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:vivek.v.srivastava@ericsson.com&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;vivek.v.srivastava@ericsson.com&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&amp;gt;; Faseela K &amp;lt;&lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:faseela.k@ericsson.com&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;faseela.k@ericsson.com&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&amp;gt;; &lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:genius-dev@lists.opendaylight.org&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;genius-dev@lists.opendaylight.org&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt; &lt;b&gt;Subject:&lt;/b&gt; RE: Oxygen blocker issue in Genius&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;So I&apos;ve been running this on my laptop with Docker containers. I can run about 20 of them.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;On Feb 27, 2018 10:58, &quot;Hema Gopalkrishnan&quot; &amp;lt;&lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:hema.gopalkrishnan@ericsson.com&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;hema.gopalkrishnan@ericsson.com&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&amp;gt; wrote:&lt;/p&gt;

&lt;p&gt;Hi Vishal,&lt;/p&gt;

&lt;p&gt;&#160;&#160; Unless we test it in a scale setup we cannot conclude how Josh&#8217;s approach will perform in such a scenario.&lt;/p&gt;

&lt;p&gt;Josh, will you be able to test it in a scaled setup and how many switches can you scale up to ?&lt;/p&gt;

&lt;p&gt;Thanks,&lt;/p&gt;

&lt;p&gt;Hema&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;From:&lt;/b&gt; Vishal Thapar &lt;b&gt;Sent:&lt;/b&gt; 27 February 2018 13:26 &lt;b&gt;To:&lt;/b&gt; Josh Hershberg &amp;lt;&lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:jhershbe@redhat.com&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;jhershbe@redhat.com&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&amp;gt; &lt;b&gt;Cc:&lt;/b&gt; Hema Gopalkrishnan &amp;lt;&lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:hema.gopalkrishnan@ericsson.com&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;hema.gopalkrishnan@ericsson.com&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&amp;gt;; Vivek Srivastava V &amp;lt;&lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:vivek.v.srivastava@ericsson.com&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;vivek.v.srivastava@ericsson.com&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&amp;gt;; Faseela K &amp;lt;&lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:faseela.k@ericsson.com&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;faseela.k@ericsson.com&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&amp;gt;; &lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:genius-dev@lists.opendaylight.org&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;genius-dev@lists.opendaylight.org&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt; &lt;b&gt;Subject:&lt;/b&gt; RE: Oxygen blocker issue in Genius&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;Similar to what you already done, but instead of just creation find out how long it takes for all tunnels to come up.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;Hema,&lt;/p&gt;

&lt;p&gt;Can you share the log entry that we can use to track when each tunnel comes up? This way from logs we can find out when all tunnels came up and don&#8217;t have to poll for it.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;Regards,&lt;/p&gt;

&lt;p&gt;Vishal.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;From:&lt;/b&gt; Josh Hershberg [&lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:jhershbe@redhat.com&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;jhershbe@redhat.com&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;] &lt;b&gt;Sent:&lt;/b&gt; 27 February 2018 13:23 &lt;b&gt;To:&lt;/b&gt; Vishal Thapar &amp;lt;&lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:vishal.thapar@ericsson.com&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;vishal.thapar@ericsson.com&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&amp;gt; &lt;b&gt;Cc:&lt;/b&gt; Hema Gopalkrishnan &amp;lt;&lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:hema.gopalkrishnan@ericsson.com&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;hema.gopalkrishnan@ericsson.com&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&amp;gt;; Vivek Srivastava V &amp;lt;&lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:vivek.v.srivastava@ericsson.com&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;vivek.v.srivastava@ericsson.com&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&amp;gt;; Faseela K &amp;lt;&lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:faseela.k@ericsson.com&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;faseela.k@ericsson.com&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&amp;gt;; &lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:genius-dev@lists.opendaylight.org&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;genius-dev@lists.opendaylight.org&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt; &lt;b&gt;Subject:&lt;/b&gt; RE: Oxygen blocker issue in Genius&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;What specifically do you want to test? Measure what, exactly?&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;On Feb 27, 2018 09:47, &quot;Vishal Thapar&quot; &amp;lt;&lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:vishal.thapar@ericsson.com&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;vishal.thapar@ericsson.com&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&amp;gt; wrote:&lt;/p&gt;

&lt;p&gt;Hi Hema,&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;It adds a bit more delay but is still susceptible to the same issue. This batching and caching was at the time tested and used with manual tep additions where we have an inherent user induced delay. Did we factor user induced delay in scale+perf numbers? I won&#8217;t be surprised if no caching + DS read gives better performance for auto tunnels when you factor in user delay.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;Josh,&lt;/p&gt;

&lt;p&gt;Since you got the perfect setup, why don&#8217;t we test with your patch once and then compare with Hema&#8217;s patch? Test numbers will be best way to see which solution works better.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;Regards,&lt;/p&gt;

&lt;p&gt;Vishal.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;From:&lt;/b&gt; Josh Hershberg &lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:jhershbe@redhat.com]&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;mailto:[jhershbe@redhat.com&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt; &lt;b&gt;Sent:&lt;/b&gt; 27 February 2018 12:22 &lt;b&gt;To:&lt;/b&gt; Hema Gopalkrishnan &amp;lt;&lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:hema.gopalkrishnan@ericsson.com&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;hema.gopalkrishnan@ericsson.com&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&amp;gt; &lt;b&gt;Cc:&lt;/b&gt; Vishal Thapar &amp;lt;&lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:vishal.thapar@ericsson.com&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;vishal.thapar@ericsson.com&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&amp;gt;; Vivek Srivastava V &amp;lt;&lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:vivek.v.srivastava@ericsson.com&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;vivek.v.srivastava@ericsson.com&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&amp;gt;; Faseela K &amp;lt;&lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:faseela.k@ericsson.com&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;faseela.k@ericsson.com&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&amp;gt;; &lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:genius-dev@lists.opendaylight.org&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;genius-dev@lists.opendaylight.org&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt; &lt;b&gt;Subject:&lt;/b&gt; Re: Oxygen blocker issue in Genius&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;Sure. Let me know when it&apos;s rebased and then I can test it.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;On Tue, Feb 27, 2018 at 8:50 AM, Hema Gopalkrishnan &amp;lt;&lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:hema.gopalkrishnan@ericsson.com&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;hema.gopalkrishnan@ericsson.com&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&amp;gt; wrote:&lt;/p&gt;

&lt;p&gt;Hi Josh,&lt;/p&gt;

&lt;p&gt;&#160;&#160;&#160; I have a fix for addition of teps in quick succession. Here is my patch which I had raised in Nitrogen. It&#8217;s been sitting around for some time now and hasn&#8217;t been merged.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;The fix here is that&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Don&#8217;t get the meshed DPN list in tepAddWorker, at the time of queueing it to DJC,&lt;/li&gt;
	&lt;li&gt;Instead queue the job in DJC and in tepAddInternalTunnelWorker &#8211; get the meshedDPNList just before meshing.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;This will give it a little more delay for the subsequent teps to &#8220;see&#8221; the teps added earlier.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;I will rebase this patch and Can you please test it with this ?&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;Caching and Batching are very essential for ITM to scale. I would prefer not change them.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;0&amp;#93;&lt;/span&gt; - &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/62950/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/62950/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;Regards&lt;/p&gt;

&lt;p&gt;Hema&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;From:&lt;/b&gt; Vishal Thapar &lt;b&gt;Sent:&lt;/b&gt; 27 February 2018 11:56 &lt;b&gt;To:&lt;/b&gt; Josh Hershberg &amp;lt;&lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:jhershbe@redhat.com&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;jhershbe@redhat.com&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&amp;gt;; Vivek Srivastava V &amp;lt;&lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:vivek.v.srivastava@ericsson.com&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;vivek.v.srivastava@ericsson.com&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&amp;gt; &lt;b&gt;Cc:&lt;/b&gt; Hema Gopalkrishnan &amp;lt;&lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:hema.gopalkrishnan@ericsson.com&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;hema.gopalkrishnan@ericsson.com&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&amp;gt;; Faseela K &amp;lt;&lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:faseela.k@ericsson.com&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;faseela.k@ericsson.com&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&amp;gt;; &lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:genius-dev@lists.opendaylight.org&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;genius-dev@lists.opendaylight.org&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt; &lt;b&gt;Subject:&lt;/b&gt; RE: Oxygen blocker issue in Genius&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;Yeah, as of now this is only solution possible. Batching+caching are to improve performance but were designed for manual addition where there is delay between adding teps. Alternative is to require user to have a manual delay between adding.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;My take is, it is okay to do DS read and this is not the path that needs to be optimized, correction is more crucial. Any user added delay between additions will always be slower than a DS read. So, might as well add the reads and no batching and make things move as fast as they can.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;Regards,&lt;/p&gt;

&lt;p&gt;Vishal.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;From:&lt;/b&gt; Josh Hershberg [&lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:jhershbe@redhat.com&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;jhershbe@redhat.com&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;] &lt;b&gt;Sent:&lt;/b&gt; 27 February 2018 11:26 &lt;b&gt;To:&lt;/b&gt; Vivek Srivastava V &amp;lt;&lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:vivek.v.srivastava@ericsson.com&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;vivek.v.srivastava@ericsson.com&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&amp;gt; &lt;b&gt;Cc:&lt;/b&gt; Hema Gopalkrishnan &amp;lt;&lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:hema.gopalkrishnan@ericsson.com&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;hema.gopalkrishnan@ericsson.com&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&amp;gt;; Vishal Thapar &amp;lt;&lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:vishal.thapar@ericsson.com&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;vishal.thapar@ericsson.com&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&amp;gt;; Faseela K &amp;lt;&lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:faseela.k@ericsson.com&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;faseela.k@ericsson.com&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&amp;gt;; &lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:genius-dev@lists.opendaylight.org&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;genius-dev@lists.opendaylight.org&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt; &lt;b&gt;Subject:&lt;/b&gt; Re: Oxygen blocker issue in Genius&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;Here is what I wrote in another thread about a working fix I have:&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;So, in order to get this to work I found that two fixes are necessary:&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;1) In ItemTepAddWorker do NOT use cached DPNTEPsInfos, read from DS instead&lt;/p&gt;

&lt;p&gt;2) In ItmInternalTunnelAddWorker do not queue the new DPNTEPsInfos via ITMBatchingUtils, instead write synchronously and unbatched in that thread&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;Since this is a rather intrusive fix so I would really appreciate some feedback. I&apos;ve also just pushed the fix here &lt;span class=&quot;error&quot;&gt;&amp;#91;0&amp;#93;&lt;/span&gt;.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;I&apos;m sick at home today but will check emails and respond.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;-Josh&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;0&amp;#93;&lt;/span&gt;&#160;&lt;a href=&quot;https://git.opendaylight.org/gerrit/68797&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/68797&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;On Tue, Feb 27, 2018 at 7:35 AM, Vivek Srivastava V &amp;lt;&lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;mailto:vivek.v.srivastava@ericsson.com&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;vivek.v.srivastava@ericsson.com&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.opendaylight.org/images/icons/mail_small.gif&quot; height=&quot;12&quot; width=&quot;13&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&amp;gt; wrote:&lt;/p&gt;

&lt;p&gt;Hi,&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;Jira issue &lt;span class=&quot;error&quot;&gt;&amp;#91;1&amp;#93;&lt;/span&gt; is an Oxygen blocker on GENIUS. It is assigned to Josh, I hope he is working on it. I would request Hema and Vishal to team up with Josh to get this resolved ASAP. Please keep jira updated regularly.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;Regards,&lt;/p&gt;

&lt;p&gt;Vivek&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;1&amp;#93;&lt;/span&gt;: &lt;a href=&quot;https://jira.opendaylight.org/browse/GENIUS-115?filter=10206&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;https://jira.opendaylight.org/browse/GENIUS-115?filter=10206&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="61338" author="vivek.v.srivastava@ericsson.com" created="Wed, 28 Feb 2018 12:07:10 +0000"  >&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;A few thoughts on Hema&apos;s patch:&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;As Vishal pointed out above, this patch simply delays the read from the cache and as such does not completely alleviate the race condition. I would like to add to this something about the time scales we seem to be dealing with. As far as I understand the patch in question, we&apos;re talking about we&apos;re talking about a delay in the 1/10ths to 1/100ths of a second. However, the scale at which the race condition occurs is much bigger, the docker containers spin up roughly every 1-2 seconds...and the race condition clearly occurs at that rate. As such, I find it highly questionable as to whether this patch will be effective and even if it is for my test environment it still leaves a race condition in the code.&#160;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;Hema, I&apos;m happy to give it a test on the setup on my computer. I looked at rebasing it and it&apos;s not a trivial rebase so I think it would be safer and quicker if you did it since I assume you are much more familiar with the code.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;If I have to sum up my understanding of the issue at this point it is the following. We must choose between three options (or a mix of them):&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;1) Hema&apos;s patch which improves but does not solve the situation.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;2) My patch which solves the race condition but may introduce a performance hit.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;3) Work on a better solution for the next release and in the mean time clearly document the limitations of the system.&#160;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;-Josh&lt;/font&gt;&lt;/p&gt;</comment>
                            <comment id="61339" author="vivek.v.srivastava@ericsson.com" created="Wed, 28 Feb 2018 12:07:34 +0000"  >&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;I&apos;ve been tinkering and I have a lot better data at this point.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;Tinker #1:&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;I modified my test so that instead of connecting 20 OVS instances one every 1-3 seconds I now connect 20 OVS instances in the span of only ~2 seconds.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;Tinker #2:&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;I cooked up my own quick and dirty version of Hema&apos;s patch &lt;span class=&quot;error&quot;&gt;&amp;#91;0&amp;#93;&lt;/span&gt;. Note that although Hema only mentioned the idea of deferring the cache retrieval, the actual patch also contains the non-batched writing of DPNTEPsInfo objects. I believe the modifications in &lt;span class=&quot;error&quot;&gt;&amp;#91;0&amp;#93;&lt;/span&gt; are functionaly equivalent to those in the initial patch.&#160;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;What I&apos;ve found is that with &lt;span class=&quot;error&quot;&gt;&amp;#91;0&amp;#93;&lt;/span&gt; the problem still occurs. As such, I think we really have no choice but to read directly from the DS.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;I also did some VERY initial testing of performance measurements and what I&apos;ve found is that for my patch, the one with the DS read the time between the first and last invocation of ItmTepAddWorker.call is roughly 5 seconds.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;-Josh&#160;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;0&amp;#93;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;diff --git a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmExternalTunnelAddWorker.java b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/co&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;nfighelpers/ItmExternalTunnelAddWorker.java&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;index 7e8d756..8b4ec66 100644&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&amp;#8212; a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmExternalTunnelAddWorker.java&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;+++ b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmExternalTunnelAddWorker.java&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;@@ -62,6 +62,7 @@ public class ItmExternalTunnelAddWorker {&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160; &#160; &#160;public List&amp;lt;ListenableFuture&amp;lt;Void&amp;gt;&amp;gt; buildTunnelsToExternalEndPoint(Collection&amp;lt;DPNTEPsInfo&amp;gt; cfgDpnList,&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160; &#160; &#160; &#160; &#160; &#160; &#160;IpAddress extIp, Class&amp;lt;? extends TunnelTypeBase&amp;gt; tunType) {&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;+&#160; &#160; &#160; &#160; cfgDpnList = dpnTEPsInfoCache.getAllPresent();&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160; &#160; &#160; &#160; &#160;if (null != cfgDpnList) {&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160; &#160; &#160; &#160; &#160; &#160; &#160;WriteTransaction transaction = dataBroker.newWriteOnlyTransaction();&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160; &#160; &#160; &#160; &#160; &#160; &#160;for (DPNTEPsInfo teps : cfgDpnList) {&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;diff --git a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmInternalTunnelAddWorker.java b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/co&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;nfighelpers/ItmInternalTunnelAddWorker.java&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;index e30b39e..ec4f73e 100644&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&amp;#8212; a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmInternalTunnelAddWorker.java&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;+++ b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmInternalTunnelAddWorker.java&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;@@ -87,18 +87,18 @@ public final class ItmInternalTunnelAddWorker {&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;meshedDpnList.add(dpn);&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;}&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;// Update the config datastore &amp;#8211; FIXME &amp;#8211; Error Handling&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;-&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; updateDpnTepInfoToConfig(dpn);&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;+&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; updateDpnTepInfoToConfig(dpn, transaction);&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160; &#160; &#160; &#160; &#160; &#160; &#160;}&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160; &#160; &#160; &#160; &#160;}));&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160; &#160; &#160;}&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;-&#160; &#160; private static void updateDpnTepInfoToConfig(DPNTEPsInfo dpn) {&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;+&#160; &#160; private static void updateDpnTepInfoToConfig(DPNTEPsInfo dpn, WriteTransaction tx) {&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160; &#160; &#160; &#160; &#160;LOG.debug(&quot;Updating CONFIGURATION datastore with DPN {} &quot;, dpn);&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160; &#160; &#160; &#160; &#160;InstanceIdentifier&amp;lt;DpnEndpoints&amp;gt; dep = InstanceIdentifier.builder(DpnEndpoints.class).build() ;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160; &#160; &#160; &#160; &#160;List&amp;lt;DPNTEPsInfo&amp;gt; dpnList = new ArrayList&amp;lt;&amp;gt;() ;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160; &#160; &#160; &#160; &#160;dpnList.add(dpn) ;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160; &#160; &#160; &#160; &#160;DpnEndpoints tnlBuilder = new DpnEndpointsBuilder().setDPNTEPsInfo(dpnList).build() ;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;-&#160; &#160; &#160; &#160; ITMBatchingUtils.update(dep, tnlBuilder, ITMBatchingUtils.EntityType.DEFAULT_CONFIG);&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;+&#160; &#160; &#160; &#160; tx.merge(LogicalDatastoreType.CONFIGURATION, dep, tnlBuilder);&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160; &#160; &#160;}&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160; &#160; &#160;private void buildTunnelFrom(DPNTEPsInfo srcDpn, Collection&amp;lt;DPNTEPsInfo&amp;gt; meshedDpnList,&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;diff --git a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmTepAddWorker.java b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmTepAddWorker.java&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;index c5df528..aaff762 100644&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&amp;#8212; a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmTepAddWorker.java&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;+++ b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmTepAddWorker.java&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;@@ -54,6 +54,7 @@ public class ItmTepAddWorker implements Callable&amp;lt;List&amp;lt;ListenableFuture&amp;lt;Void&amp;gt;&amp;gt;&amp;gt; {&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160; &#160; &#160;@Override&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160; &#160; &#160;public List&amp;lt;ListenableFuture&amp;lt;Void&amp;gt;&amp;gt; call() {&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160; &#160; &#160; &#160; &#160;List&amp;lt;ListenableFuture&amp;lt;Void&amp;gt;&amp;gt; futures = new ArrayList&amp;lt;&amp;gt;() ;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;+&#160; &#160; &#160; &#160; this.meshedDpnList = ItmUtils.getDpnTEPsInfos(dataBroker);&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160; &#160; &#160; &#160; &#160;this.meshedDpnList = dpnTEPsInfoCache.getAllPresent();&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160; &#160; &#160; &#160; &#160;LOG.debug(&quot;Invoking Internal Tunnel build method with Configured DpnList {} ; Meshed DpnList {} &quot;,&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;cfgdDpnList, meshedDpnList);&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;diff --git a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/impl/ItmUtils.java b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/impl/ItmUtils.java&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;index 3d5942d..f45728a 100644&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&amp;#8212; a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/impl/ItmUtils.java&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;+++ b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/impl/ItmUtils.java&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;@@ -1390,4 +1390,14 @@ public final class ItmUtils {&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160; &#160; &#160; &#160; &#160;}&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160; &#160; &#160; &#160; &#160;return exTunnel;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160; &#160; &#160;}&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;+&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;+&#160; &#160; public static List&amp;lt;DPNTEPsInfo&amp;gt; getDpnTEPsInfos(DataBroker dataBroker) {&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;+&#160; &#160; &#160; &#160; InstanceIdentifier&amp;lt;DpnEndpoints&amp;gt; iid = InstanceIdentifier.builder(DpnEndpoints.class).build();&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;+&#160; &#160; &#160; &#160; Optional&amp;lt;DpnEndpoints&amp;gt; dpnEndpoints = ItmUtils.read(LogicalDatastoreType.CONFIGURATION, iid, dataBroker);&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;+&#160; &#160; &#160; &#160; if (dpnEndpoints.isPresent()) {&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;+&#160; &#160; &#160; &#160; &#160; &#160; return dpnEndpoints.get().getDPNTEPsInfo();&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;+&#160; &#160; &#160; &#160; } else {&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;+&#160; &#160; &#160; &#160; &#160; &#160; return new ArrayList&amp;lt;&amp;gt;();&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;+&#160; &#160; &#160; &#160; }&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;+&#160; &#160; }&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160;}&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&#160;&lt;/font&gt;&lt;/p&gt;</comment>
                            <comment id="61343" author="jhershbe" created="Wed, 28 Feb 2018 12:43:26 +0000"  >&lt;p&gt;Some non-scientific times. These are the times in between the first and last tiime ItmTepAddWorker.call is invoked:&lt;/p&gt;

&lt;p&gt;1) Non-batching DPNTEPsInfo writes + deferred cache read (my rough copy of Hema&apos;s patch):&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;first:&#160;2018-02-28T14:40:15,897&lt;/li&gt;
	&lt;li&gt;last:&#160;2018-02-28T14:40:18,118&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;2) Non-batching DPNTEPsInfo writes + DS read (my patch):&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;first:&#160;2018-02-28T14:33:06,277&lt;/li&gt;
	&lt;li&gt;last: 2018-02-28T14:33:08,794&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Note, these times are non-scientific and were measure on my laptop with 20 OVS instances connecting over a span of ~2 seconds to a local ODL. Also note, that for (1) the configuration was not successful and not all nodes received all the TEPs they require.&lt;/p&gt;</comment>
                            <comment id="61407" author="jhershbe" created="Mon, 5 Mar 2018 10:00:33 +0000"  >&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/68797/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/68797/&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="61571" author="dfarrell07" created="Thu, 8 Mar 2018 18:09:54 +0000"  >&lt;p&gt;Waiting on verify job.&lt;/p&gt;</comment>
                            <comment id="61590" author="shague@redhat.com" created="Fri, 9 Mar 2018 02:12:07 +0000"  >&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/69147&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/69147&lt;/a&gt;&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_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i03anr:</customfieldvalue>

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