<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:35:52 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>[OVSDB-242] GatewayMacResolverService continues to try to resolve gateway after nodes have disconnected.</title>
                <link>https://jira.opendaylight.org/browse/OVSDB-242</link>
                <project id="10158" key="OVSDB">ovsdb</project>
                    <description>&lt;p&gt;I have the 2-node setup described here: &lt;a href=&quot;https://docs.google.com/presentation/d/1KIuNDuUJGGEV37Zk9yzx9OSnWExt4iD2Z7afycFLf_I/edit#slide=id.p4&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://docs.google.com/presentation/d/1KIuNDuUJGGEV37Zk9yzx9OSnWExt4iD2Z7afycFLf_I/edit#slide=id.p4&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Except, I&apos;m using an external ODL controller built from the master branch (I&apos;ve seen this with the Li branch also).&lt;/p&gt;

&lt;p&gt;After I unstack the nodes, the GatewayMacResolverService (aka periodic ARP) continues to try to resolve gateway continues to try to resolve the MAC for the gateway as indicated by the following error in the log that keeps repeating:&lt;/p&gt;

&lt;p&gt;2015-12-27 07:51:01,704 | ERROR | pool-48-thread-1 | GatewayMacResolverService        | 269 - org.opendaylight.ovsdb.openstack.net-virt-providers - 1.2.1.SNAPSHOT | MAC address for gateway 192.168.56.1 can not be resolved, because external bridge 6822471333697 is not connected to controller.&lt;/p&gt;

&lt;p&gt;Full log can be seen here:&lt;br/&gt;
&lt;a href=&quot;https://gist.github.com/0b6de0de84ff65d3887c&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://gist.github.com/0b6de0de84ff65d3887c&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Can we recognize this case, and delete the gateway?&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="21934">OVSDB-242</key>
            <summary>GatewayMacResolverService continues to try to resolve gateway after nodes have disconnected.</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="10003">Cannot Reproduce</resolution>
                                        <assignee username="flavio@flaviof.com">Flavio Fernandes</assignee>
                                    <reporter username="afredette@redhat.com">Andre Fredette</reporter>
                        <labels>
                    </labels>
                <created>Sun, 27 Dec 2015 13:08:09 +0000</created>
                <updated>Tue, 26 Jan 2016 21:40:51 +0000</updated>
                            <resolved>Tue, 26 Jan 2016 21:40:51 +0000</resolved>
                                    <version>unspecified</version>
                                                    <component>openstack.net-virt</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="41084" author="flavio@flaviof.com" created="Fri, 8 Jan 2016 16:03:07 +0000"  >&lt;p&gt;I did a  little experiment using stable lithium and this is possibly an issue in Be, but I&apos;m not sure.&lt;/p&gt;

&lt;p&gt;it seems that the neutron port is not getting deleted as far as odl goes and that is what odl needs in order to stop the periodic mac resolver. So possibly an issue in neutron northbound.&lt;/p&gt;

&lt;p&gt;&amp;#8211;&lt;/p&gt;

&lt;p&gt;vagrant@devstack-control:~/devstack$ cd /home/vagrant/devstack/&lt;br/&gt;
vagrant@devstack-control:~/devstack$ &lt;br/&gt;
vagrant@devstack-control:~/devstack$ source openrc admin admin&lt;br/&gt;
vagrant@devstack-control:~/devstack$ keystone user-create --name=user1 --pass=user1 --email=user1@example.com 2&amp;gt; /dev/null&lt;br/&gt;
vagrant@devstack-control:~/devstack$ keystone user-role-add --user=user1 --role=&lt;em&gt;member&lt;/em&gt; --tenant=tenant1     2&amp;gt; /dev/null&lt;br/&gt;
vagrant@devstack-control:~/devstack$ &lt;br/&gt;
vagrant@devstack-control:~/devstack$ TNT1_ID=$(keystone tenant-list 2&amp;gt; /dev/null | grep &apos;\s&apos;tenant1&apos;&apos; | awk &apos;&lt;/p&gt;
{print $2}
&lt;p&gt;&apos;)&lt;br/&gt;
vagrant@devstack-control:~/devstack$ &lt;br/&gt;
vagrant@devstack-control:~/devstack$ ## neutron net-create ext --shared --provider:network_type flat --router:external --provider:physical_network physnetext&lt;br/&gt;
vagrant@devstack-control:~/devstack$ neutron net-create ext --provider:network_type flat --router:external --provider:physical_network physnetext&lt;br/&gt;
Created a new network:&lt;br/&gt;
&lt;ins&gt;--------------------------&lt;del&gt;&lt;/ins&gt;&lt;/del&gt;-------------------------------------+&lt;/p&gt;
&lt;div class=&apos;table-wrap&apos;&gt;
&lt;table class=&apos;confluenceTable&apos;&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; Field                     &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; Value                                &lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;

&lt;p&gt;&lt;ins&gt;--------------------------&lt;del&gt;&lt;/ins&gt;&lt;/del&gt;-------------------------------------+&lt;/p&gt;
&lt;div class=&apos;table-wrap&apos;&gt;
&lt;table class=&apos;confluenceTable&apos;&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; admin_state_up            &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; True                                 &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; id                        &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; 0ec9caf4-ee01-477b-98f5-691047247aa0 &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; mtu                       &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; 0                                    &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; name                      &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; ext                                  &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; port_security_enabled     &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; True                                 &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; provider:network_type     &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; flat                                 &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; provider:physical_network &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; physnetext                           &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; provider:segmentation_id  &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; router:external           &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; True                                 &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; shared                    &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; False                                &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; status                    &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; ACTIVE                               &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; subnets                   &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; tenant_id                 &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; 8fa577a7028e4ac69246e1edc814b35e     &lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;

&lt;p&gt;&lt;ins&gt;--------------------------&lt;del&gt;&lt;/ins&gt;&lt;/del&gt;-------------------------------------+&lt;br/&gt;
vagrant@devstack-control:~/devstack$ &lt;br/&gt;
vagrant@devstack-control:~/devstack$ neutron subnet-create \&lt;br/&gt;
&amp;gt;    --allocation-pool start=192.168.111.21,end=192.168.111.40 --gateway=192.168.111.254 \&lt;br/&gt;
&amp;gt;    --disable-dhcp --name subext ext 192.168.111.0/24&lt;br/&gt;
Created a new subnet:&lt;br/&gt;
&lt;ins&gt;------------------&lt;del&gt;&lt;/ins&gt;&lt;/del&gt;-----------------------------------------------------+&lt;/p&gt;
&lt;div class=&apos;table-wrap&apos;&gt;
&lt;table class=&apos;confluenceTable&apos;&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; Field             &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; Value                                                &lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;

&lt;p&gt;&lt;ins&gt;------------------&lt;del&gt;&lt;/ins&gt;&lt;/del&gt;-----------------------------------------------------+&lt;/p&gt;
&lt;div class=&apos;table-wrap&apos;&gt;
&lt;table class=&apos;confluenceTable&apos;&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; allocation_pools  &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; {&quot;start&quot;: &quot;192.168.111.21&quot;, &quot;end&quot;: &quot;192.168.111.40&quot;} &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; cidr              &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; 192.168.111.0/24                                     &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; dns_nameservers   &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; enable_dhcp       &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; False                                                &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; gateway_ip        &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; 192.168.111.254                                      &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; host_routes       &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; id                &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; f4c8fcf4-4d6f-4535-975f-3bbbd9487b0c                 &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; ip_version        &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; 4                                                    &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; ipv6_address_mode &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; ipv6_ra_mode      &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; name              &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; subext                                               &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; network_id        &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; 0ec9caf4-ee01-477b-98f5-691047247aa0                 &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; subnetpool_id     &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; tenant_id         &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; 8fa577a7028e4ac69246e1edc814b35e                     &lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;

&lt;p&gt;&lt;ins&gt;------------------&lt;del&gt;&lt;/ins&gt;&lt;/del&gt;-----------------------------------------------------+&lt;br/&gt;
vagrant@devstack-control:~/devstack$ &lt;br/&gt;
vagrant@devstack-control:~/devstack$ &lt;br/&gt;
vagrant@devstack-control:~/devstack$ unset SERVICE_TOKEN SERVICE_ENDPOINT&lt;br/&gt;
vagrant@devstack-control:~/devstack$ export OS_AUTH_URL=&lt;a href=&quot;http://192.168.50.20:35357/v2.0/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://192.168.50.20:35357/v2.0/&lt;/a&gt;&lt;br/&gt;
vagrant@devstack-control:~/devstack$ export OS_REGION_NAME=RegionOne&lt;br/&gt;
vagrant@devstack-control:~/devstack$ &lt;br/&gt;
vagrant@devstack-control:~/devstack$ ####=================&lt;br/&gt;
vagrant@devstack-control:~/devstack$ &lt;br/&gt;
vagrant@devstack-control:~/devstack$ export OS_USERNAME=user1&lt;br/&gt;
vagrant@devstack-control:~/devstack$ export OS_TENANT_NAME=tenant1&lt;br/&gt;
vagrant@devstack-control:~/devstack$ export OS_PASSWORD=user1&lt;br/&gt;
vagrant@devstack-control:~/devstack$ export PS1=&apos;&lt;span class=&quot;error&quot;&gt;&amp;#91;\u@\h \W(keystone_user1)&amp;#93;&lt;/span&gt;\$ &apos;&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;vagrant@devstack-control devstack(keystone_user1)&amp;#93;&lt;/span&gt;$ &lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;vagrant@devstack-control devstack(keystone_user1)&amp;#93;&lt;/span&gt;$ rm -f id_rsa_demo* ; ssh-keygen -t rsa -b 2048 -N &apos;&apos; -f id_rsa_demo &amp;gt; /dev/null&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;vagrant@devstack-control devstack(keystone_user1)&amp;#93;&lt;/span&gt;$ nova keypair-add --pub-key  id_rsa_demo.pub  demo_key  &amp;gt; /dev/null&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;vagrant@devstack-control devstack(keystone_user1)&amp;#93;&lt;/span&gt;$ &lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;vagrant@devstack-control devstack(keystone_user1)&amp;#93;&lt;/span&gt;$ neutron router-create rtr1&lt;br/&gt;
Created a new router:&lt;br/&gt;
&lt;ins&gt;----------------------&lt;del&gt;&lt;/ins&gt;&lt;/del&gt;-------------------------------------+&lt;/p&gt;
&lt;div class=&apos;table-wrap&apos;&gt;
&lt;table class=&apos;confluenceTable&apos;&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; Field                 &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; Value                                &lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;

&lt;p&gt;&lt;ins&gt;----------------------&lt;del&gt;&lt;/ins&gt;&lt;/del&gt;-------------------------------------+&lt;/p&gt;
&lt;div class=&apos;table-wrap&apos;&gt;
&lt;table class=&apos;confluenceTable&apos;&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; admin_state_up        &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; True                                 &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; external_gateway_info &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; id                    &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; 8b28cdc9-2b32-429e-b08b-f61e19b29057 &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; name                  &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; rtr1                                 &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; routes                &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; status                &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; ACTIVE                               &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; tenant_id             &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; 68c40cdb8e034a1f8546a9411c4fc0e5     &lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;

&lt;p&gt;&lt;ins&gt;----------------------&lt;del&gt;&lt;/ins&gt;&lt;/del&gt;-------------------------------------+&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;vagrant@devstack-control devstack(keystone_user1)&amp;#93;&lt;/span&gt;$ &lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;vagrant@devstack-control devstack(keystone_user1)&amp;#93;&lt;/span&gt;$ &lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;vagrant@devstack-control devstack(keystone_user1)&amp;#93;&lt;/span&gt;$ neutron router-gateway-set rtr1 ext&lt;br/&gt;
Set gateway for router rtr1&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;vagrant@devstack-control devstack(keystone_user1)&amp;#93;&lt;/span&gt;$ &lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;vagrant@devstack-control devstack(keystone_user1)&amp;#93;&lt;/span&gt;$ &lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;vagrant@devstack-control devstack(keystone_user1)&amp;#93;&lt;/span&gt;$ &lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;vagrant@devstack-control devstack(keystone_user1)&amp;#93;&lt;/span&gt;$ neutron router-gateway-clear rtr1    &lt;br/&gt;
Removed gateway from router rtr1&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;vagrant@devstack-control devstack(keystone_user1)&amp;#93;&lt;/span&gt;$ &lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;vagrant@devstack-control devstack(keystone_user1)&amp;#93;&lt;/span&gt;$ &lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;vagrant@devstack-control devstack(keystone_user1)&amp;#93;&lt;/span&gt;$ &lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;vagrant@devstack-control devstack(keystone_user1)&amp;#93;&lt;/span&gt;$ neutron router-delete rtr1&lt;br/&gt;
Deleted router: rtr1&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;vagrant@devstack-control devstack(keystone_user1)&amp;#93;&lt;/span&gt;$ curl -u admin:admin &lt;a href=&quot;http://192.168.50.1:8080/controller/nb/v2/neutron/ports&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://192.168.50.1:8080/controller/nb/v2/neutron/ports&lt;/a&gt;   &lt;br/&gt;
{&lt;br/&gt;
   &quot;ports&quot; : [ {&lt;br/&gt;
      &quot;id&quot; : &quot;0f8f35f1-5248-417a-a5d1-ad180049fca4&quot;,&lt;br/&gt;
      &quot;network_id&quot; : &quot;0ec9caf4-ee01-477b-98f5-691047247aa0&quot;,&lt;br/&gt;
      &quot;name&quot; : &quot;&quot;,&lt;br/&gt;
      &quot;admin_state_up&quot; : true,&lt;br/&gt;
      &quot;mac_address&quot; : &quot;FA:16:3E:8F:35:28&quot;,&lt;br/&gt;
      &quot;fixed_ips&quot; : [ &lt;/p&gt;
{
         &quot;ip_address&quot; : &quot;192.168.111.21&quot;,
         &quot;subnet_id&quot; : &quot;f4c8fcf4-4d6f-4535-975f-3bbbd9487b0c&quot;
      }
&lt;p&gt; ],&lt;br/&gt;
      &quot;device_id&quot; : &quot;8b28cdc9-2b32-429e-b08b-f61e19b29057&quot;,&lt;br/&gt;
      &quot;device_owner&quot; : &quot;network:router_gateway&quot;,&lt;br/&gt;
      &quot;tenant_id&quot; : &quot;8fa577a7028e4ac69246e1edc814b35e&quot;,&lt;br/&gt;
      &quot;security_groups&quot; : [ ],&lt;br/&gt;
      &quot;allowed_address_pairs&quot; : [ ],&lt;br/&gt;
      &quot;binding:host_id&quot; : &quot;&quot;,&lt;br/&gt;
      &quot;binding:vnic_type&quot; : &quot;normal&quot;,&lt;br/&gt;
      &quot;binding:vif_type&quot; : &quot;unbound&quot;,&lt;br/&gt;
      &quot;binding:vif_details&quot; : [ {&lt;br/&gt;
      } ]&lt;br/&gt;
   } ]&lt;br/&gt;
}&lt;span class=&quot;error&quot;&gt;&amp;#91;vagrant@devstack-control devstack(keystone_user1)&amp;#93;&lt;/span&gt;$ exit&lt;br/&gt;
logout&lt;br/&gt;
Connection to 127.0.0.1 closed.&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;Flavios-MBP:devstack-nodes-liberty.git&amp;#93;&lt;/span&gt; (liberty)$ vagrant ssh &lt;br/&gt;
vagrant@devstack-control:~$ cd devstack/&lt;br/&gt;
vagrant@devstack-control:~/devstack$ source openrc admin admin&lt;br/&gt;
vagrant@devstack-control:~/devstack$ neutron subnet-list&lt;br/&gt;
&lt;ins&gt;-------------------------------------&lt;del&gt;&lt;/ins&gt;&lt;/del&gt;------&lt;del&gt;&lt;ins&gt;&lt;/del&gt;----------------&lt;del&gt;&lt;/ins&gt;&lt;/del&gt;-----------------------------------------------------+&lt;/p&gt;
&lt;div class=&apos;table-wrap&apos;&gt;
&lt;table class=&apos;confluenceTable&apos;&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; id                                   &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; name   &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; cidr             &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; allocation_pools                                     &lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;

&lt;p&gt;&lt;ins&gt;-------------------------------------&lt;del&gt;&lt;/ins&gt;&lt;/del&gt;------&lt;del&gt;&lt;ins&gt;&lt;/del&gt;----------------&lt;del&gt;&lt;/ins&gt;&lt;/del&gt;-----------------------------------------------------+&lt;/p&gt;
&lt;div class=&apos;table-wrap&apos;&gt;
&lt;table class=&apos;confluenceTable&apos;&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; f4c8fcf4-4d6f-4535-975f-3bbbd9487b0c &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; subext &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; 192.168.111.0/24 &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; {&quot;start&quot;: &quot;192.168.111.21&quot;, &quot;end&quot;: &quot;192.168.111.40&quot;} &lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;

&lt;p&gt;&lt;ins&gt;-------------------------------------&lt;del&gt;&lt;/ins&gt;&lt;/del&gt;------&lt;del&gt;&lt;ins&gt;&lt;/del&gt;----------------&lt;del&gt;&lt;/ins&gt;&lt;/del&gt;-----------------------------------------------------+&lt;br/&gt;
vagrant@devstack-control:~/devstack$ neutron subnet-delete subext&lt;br/&gt;
Deleted subnet: subext&lt;/p&gt;

&lt;p&gt;vagrant@devstack-control:~/devstack$ curl -u admin:admin &lt;a href=&quot;http://192.168.50.1:8080/controller/nb/v2/neutron/ports&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://192.168.50.1:8080/controller/nb/v2/neutron/ports&lt;/a&gt;&lt;br/&gt;
{&lt;br/&gt;
   &quot;ports&quot; : [ {&lt;br/&gt;
      &quot;id&quot; : &quot;0f8f35f1-5248-417a-a5d1-ad180049fca4&quot;,&lt;br/&gt;
      &quot;network_id&quot; : &quot;0ec9caf4-ee01-477b-98f5-691047247aa0&quot;,&lt;br/&gt;
      &quot;name&quot; : &quot;&quot;,&lt;br/&gt;
      &quot;admin_state_up&quot; : true,&lt;br/&gt;
      &quot;mac_address&quot; : &quot;FA:16:3E:8F:35:28&quot;,&lt;br/&gt;
      &quot;fixed_ips&quot; : [ &lt;/p&gt;
{
         &quot;ip_address&quot; : &quot;192.168.111.21&quot;,
         &quot;subnet_id&quot; : &quot;f4c8fcf4-4d6f-4535-975f-3bbbd9487b0c&quot;
      }
&lt;p&gt; ],&lt;br/&gt;
      &quot;device_id&quot; : &quot;8b28cdc9-2b32-429e-b08b-f61e19b29057&quot;,&lt;br/&gt;
      &quot;device_owner&quot; : &quot;network:router_gateway&quot;,&lt;br/&gt;
      &quot;tenant_id&quot; : &quot;8fa577a7028e4ac69246e1edc814b35e&quot;,&lt;br/&gt;
      &quot;security_groups&quot; : [ ],&lt;br/&gt;
      &quot;allowed_address_pairs&quot; : [ ],&lt;br/&gt;
      &quot;binding:host_id&quot; : &quot;&quot;,&lt;br/&gt;
      &quot;binding:vnic_type&quot; : &quot;normal&quot;,&lt;br/&gt;
      &quot;binding:vif_type&quot; : &quot;unbound&quot;,&lt;br/&gt;
      &quot;binding:vif_details&quot; : [ {&lt;br/&gt;
      } ]&lt;br/&gt;
   } ]&lt;br/&gt;
}&lt;br/&gt;
vagrant@devstack-control:~/devstack$ neutron port-list&lt;/p&gt;

&lt;p&gt;vagrant@devstack-control:~/devstack$&lt;/p&gt;</comment>
                            <comment id="41085" author="flavio@flaviof.com" created="Tue, 26 Jan 2016 21:40:51 +0000"  >&lt;p&gt;I tested this using today&apos;s (Jan/26/16) Beryllium and Lithium and have convinced myself that this is working&lt;br/&gt;
as expected. The critical event that needs to happen is the neutron port delete. Once that happens, the following&lt;br/&gt;
code path takes place:&lt;/p&gt;

&lt;p&gt;PortHandler::doNeutronPortDeleted() -&amp;gt;&lt;br/&gt;
   NeutronL3Adapter::handleNeutronPortEvent() -&amp;gt;&lt;br/&gt;
      GatewayMacResolverService::stopPeriodicRefresh() -&amp;gt;&lt;br/&gt;
         GatewayMacResolverService::resetFlowToRemove()&lt;/p&gt;

&lt;p&gt;There is another issue at play here which makes this a lower priority: unstack vs. neutron port clear.&lt;br/&gt;
To make the code path mentioned above happen, I did these commands:&lt;/p&gt;

&lt;p&gt;  karaf&amp;gt; log:set debug org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.services.arp.GatewayMacResolverService&lt;/p&gt;

&lt;p&gt;   &lt;a href=&quot;https://gist.github.com/6848cb3941271cc159ba&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://gist.github.com/6848cb3941271cc159ba&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;   source openrc admin admin&lt;br/&gt;
   neutron net-create ext --provider:network_type flat --router:external --provider:physical_network physnetext&lt;/p&gt;

&lt;p&gt;   neutron subnet-create --allocation-pool start=192.168.111.21,end=192.168.111.40 --gateway=192.168.111.254 \&lt;br/&gt;
   --disable-dhcp --name subext ext 192.168.111.0/24&lt;/p&gt;

&lt;p&gt;   neutron router-create rtr1&lt;br/&gt;
   neutron router-gateway-set rtr1 ext&lt;/p&gt;

&lt;ol&gt;
	&lt;li&gt;neutron ports known to ODL are shown here:  &lt;a href=&quot;https://gist.github.com/db246ca1e4daed2dca4c&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://gist.github.com/db246ca1e4daed2dca4c&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;


&lt;ol&gt;
	&lt;li&gt;to remove neutron port used as router interface&lt;br/&gt;
   neutron router-gateway-clear rtr1&lt;/li&gt;
&lt;/ol&gt;


&lt;ol&gt;
	&lt;li&gt;neutron ports are indeed removed after the command above&lt;br/&gt;
    vagrant@devstack-control:~$ curl -u admin:admin &lt;a href=&quot;http://192.168.50.1:8080/controller/nb/v2/neutron/ports&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://192.168.50.1:8080/controller/nb/v2/neutron/ports&lt;/a&gt;
  {
     &quot;ports&quot; : [ ]
  }&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;output when I ran test against Lithium:  &lt;a href=&quot;https://gist.github.com/13824b02224ec343765f&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://gist.github.com/13824b02224ec343765f&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;karaf log when neutron port is removed shows the timer being stopped: &lt;a href=&quot;https://gist.github.com/afe90432d8d8144dee0c&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://gist.github.com/afe90432d8d8144dee0c&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That is different than ./unstack, which makes no attempt in clearing the config in ODL.&lt;br/&gt;
The reconcile code would remove this port once neutron re-connects to ODL, but short of that&lt;br/&gt;
happening, there is not much ODL can do to differentiate unstack from a temporary disconnect&lt;br/&gt;
in the networking-odl side.&lt;/p&gt;

&lt;p&gt;Last point to make here is that ODL gateway resolver code reacts to neutron callbacks, not OVS. That is because mac resolver is made to be resilient enough to change br-ex every 10 seconds until it succeeds.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10002">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="21891">OVSDB-199</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="21906">OVSDB-214</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                            <customfield id="customfield_11400" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10208" key="com.atlassian.jira.plugin.system.customfieldtypes:textfield">
                        <customfieldname>External issue ID</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>4844</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=4844]]></customfieldvalue>

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

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