<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:22:33 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>[NETVIRT-821] VPN Interface for external network remains in Operational DS after network is deleted</title>
                <link>https://jira.opendaylight.org/browse/NETVIRT-821</link>
                <project id="10144" key="NETVIRT">netvirt</project>
                    <description>&lt;p&gt;When deleting the external network, the VPNInterface isn&apos;t removed from the Operational DS. The VPNInterface is deleted in Config DS though.&lt;/p&gt;

&lt;p&gt;Steps:&lt;/p&gt;

&lt;p&gt;1) Stack fresh both Opendaylight and ODL&lt;/p&gt;

&lt;p&gt;2) Create external network:&lt;br/&gt;
neutron net-create ext-net --router:external --provider:physical_network public --provider:network_type flat&lt;/p&gt;

&lt;p&gt;3) The VPNInterface is created in the Operational DS&lt;br/&gt;
{&lt;br/&gt;
    &quot;vpn-interfaces&quot;: {&lt;br/&gt;
        &quot;vpn-interface&quot;: [&lt;/p&gt;
            {
                &quot;dpn-id&quot;: 259602484679796,
                &quot;name&quot;: &quot;259602484679796:eth2:trunk&quot;,
                &quot;scheduled-for-remove&quot;: false,
                &quot;vpn-instance-name&quot;: &quot;78cdc60a-1e9d-4f0b-8cf3-c51700f5e67e&quot;
            }
&lt;p&gt;        ]&lt;br/&gt;
    }&lt;br/&gt;
}&lt;/p&gt;


&lt;p&gt;4) delete external network:&lt;/p&gt;

&lt;p&gt;neutron net-delete ext-net&lt;/p&gt;

&lt;p&gt;5) The VPNInterface remains in the Operational DS with attribute &quot;scheduled-for-remove&quot; is set to &quot;true&quot;. It should be removed as well:&lt;/p&gt;

&lt;p&gt;&quot;vpn-interfaces&quot;: {&lt;br/&gt;
        &quot;vpn-interface&quot;: [&lt;/p&gt;
            {
                &quot;dpn-id&quot;: 259602484679796,
                &quot;name&quot;: &quot;259602484679796:eth2:trunk&quot;,
                &quot;scheduled-for-remove&quot;: true,
                &quot;vpn-instance-name&quot;: &quot;78cdc60a-1e9d-4f0b-8cf3-c51700f5e67e&quot;
            }
&lt;p&gt;}&lt;/p&gt;

&lt;p&gt;This issue is similar to the &lt;a href=&quot;https://jira.opendaylight.org/browse/NETVIRT-452&quot; title=&quot;Vpn Interface not deleted from operational data store&quot; class=&quot;issue-link&quot; data-issue-key=&quot;NETVIRT-452&quot;&gt;&lt;del&gt;NETVIRT-452&lt;/del&gt;&lt;/a&gt; (which had been fixed) except for in this case the VPN interface belongs to the external network.&lt;/p&gt;

&lt;p&gt;The Op VPNInterface is cleaned up in the VRFEntryListener when the VRFEntry is removed from the Config DS. However, for external network is created without any router, there is no VRFEntry to be removed. Hence the OP  VPNInterface is not removed.&lt;/p&gt;

&lt;p&gt;Consequently, if we recreate the same external network, in VPNInterfaceManager::processVpnInterfaceUp, the stale Op VPN interface is retrieved when checking if the associated VRFEntries have been removed. The stale OpVPNInterface doesn&apos;t have any adjacencies, and the error is thrown as in the below code snippets:&lt;/p&gt;

&lt;p&gt;VpnInterface opVpnInterface = VpnUtil.getOperationalVpnInterface(dataBroker, vpnInterface.getName());&lt;br/&gt;
            if (opVpnInterface != null) {&lt;br/&gt;
                String opVpnName = opVpnInterface.getVpnInstanceName();&lt;br/&gt;
                String primaryInterfaceIp = null;&lt;br/&gt;
                if (opVpnName.equals(vpnName)) {&lt;br/&gt;
                    // Please check if the primary VRF Entry does not exist for VPNInterface&lt;br/&gt;
                    // If so, we have to process ADD, as this might be a DPN Restart with Remove and Add triggered&lt;br/&gt;
                    // back to back&lt;br/&gt;
                    // However, if the primary VRF Entry for this VPNInterface exists, please continue bailing out !&lt;br/&gt;
                    List&amp;lt;Adjacency&amp;gt; adjs = VpnUtil.getAdjacenciesForVpnInterfaceFromConfig(dataBroker, interfaceName);&lt;br/&gt;
                    if (adjs == null) {&lt;br/&gt;
                        LOG.error(&lt;br/&gt;
                                &quot;VPN Interface {} addition failed as adjacencies for this vpn interface could not be &quot;&lt;br/&gt;
                                        + &quot;obtained&quot;, interfaceName);&lt;br/&gt;
                        return;&lt;br/&gt;
                    }&lt;br/&gt;
~&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="20742">NETVIRT-821</key>
            <summary>VPN Interface for external network remains in Operational DS after network is deleted</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="vinh.nguyen@hcl.com">Vinh Nguyen</assignee>
                                    <reporter username="vinh.nguyen@hcl.com">Vinh Nguyen</reporter>
                        <labels>
                    </labels>
                <created>Fri, 4 Aug 2017 22:18:59 +0000</created>
                <updated>Mon, 25 Sep 2017 21:18:47 +0000</updated>
                            <resolved>Mon, 25 Sep 2017 21:18:47 +0000</resolved>
                                    <version>Carbon</version>
                                                    <component>General</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>9</watches>
                                                                                                                <comments>
                            <comment id="38241" author="vinh.nguyen@hcl.com" created="Fri, 4 Aug 2017 22:29:12 +0000"  >&lt;p&gt;Also note that for the recreated external network, the L3 flows in table 17 is missing for the external port because L3 service is not bound for the export port because the error described above&lt;/p&gt;

&lt;p&gt;table=17, n_packets=1, n_bytes=113, priority=10,metadata=0xa0000000000/0xffffff0000000000 actions=load:0x186a9-&amp;gt;NXM_NX_REG3&lt;span class=&quot;error&quot;&gt;&amp;#91;0..24&amp;#93;&lt;/span&gt;,write_metadata:0x90000a0000030d52/0xfffffffffffffffe,goto_table:19&lt;/p&gt;</comment>
                            <comment id="38242" author="vinh.nguyen@hcl.com" created="Thu, 10 Aug 2017 21:28:24 +0000"  >&lt;p&gt;Patch submitted for code review&lt;br/&gt;
&lt;a href=&quot;https://git.opendaylight.org/gerrit/61512&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/61512&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_10208" key="com.atlassian.jira.plugin.system.customfieldtypes:textfield">
                        <customfieldname>External issue ID</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>8930</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=8930]]></customfieldvalue>

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

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