<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:25:24 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>[NEUTRON-43] Missing tenantID in NeutronPort for floatingIp port</title>
                <link>https://jira.opendaylight.org/browse/NEUTRON-43</link>
                <project id="10145" key="NEUTRON">neutron</project>
                    <description>&lt;p&gt;A neutron port created for floating IP does not contain tenant information.&lt;/p&gt;

&lt;p&gt;This is NeutronPort.toString() when method neutronPortCreated(NeutronPort port) is invoked on implementation of INeutronPortAware:&lt;br/&gt;
NeutronPort [portUUID=0e004b2d-84ac-4725-b8f5-dfce251d31d8, networkUUID=a61a5705-a21d-4a04-932a-10f8f36516e2, name=, adminStateUp=true, status=null, macAddress=FA:16:3E:CB:30:F1, fixedIPs=[Neutron_IPs&lt;/p&gt;
{ipAddress=&apos;192.168.111.51&apos;, subnetUUID=&apos;1453aeec-203c-40c2-8a94-48331c6c0541&apos;}
&lt;p&gt;], deviceID=2cb9cff7-4ec0-4d8b-86b8-3bf0b8328fce, deviceOwner=network:floatingip, tenantID=, floatingIPMap={}, securityGroups=[], bindinghostID=, bindingvnicType=normal, bindingvnicType=normal]&lt;/p&gt;

&lt;p&gt;The same issue with NeutronPort passing to the method canCreatePort(NeutronPort port)&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="26605">NEUTRON-43</key>
            <summary>Missing tenantID in NeutronPort for floatingIp port</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="-1">Unassigned</assignee>
                                    <reporter username="msunal@cisco.com">Martin Sunal</reporter>
                        <labels>
                    </labels>
                <created>Mon, 25 May 2015 20:31:19 +0000</created>
                <updated>Thu, 19 Oct 2017 21:29:07 +0000</updated>
                            <resolved>Mon, 22 Jun 2015 07:57:33 +0000</resolved>
                                    <version>Multiple</version>
                                                    <component>External</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="53349" author="rmoats@us.ibm.com" created="Wed, 3 Jun 2015 19:47:45 +0000"  >&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/21794&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/21794&lt;/a&gt; shows that this isn&apos;t a bug with NN but an issue in openstack/devstack&lt;/p&gt;

&lt;p&gt;(output from Jenkins build:&lt;/p&gt;

&lt;p&gt;2015-06-03 16:52:32,054 | INFO  | qtp736031520-81  | NeutronNetworkDummyProvider      | 258 - org.opendaylight.neutron.dummyprovider - 0.5.0.SNAPSHOT | NeutronNetwork [networkUUID=4e8e5957-649f-477b-9e5b-f1f75b21c03c, networkName=net1, adminStateUp=true, shared=false, tenantID=9bacb3c5d39d41a79512987f338cf177, routerExternal=false, providerNetworkType=flat, providerPhysicalNetwork=null, providerSegmentationID=null, status=ACTIVE, subnets=[], myPorts=[], segments = [NeutronNetwork_Segment [ , providerNetworkType=vlan, providerPhysicalNetwork=8bab8453-1bc9-45af-8c70-f83aa9b50453, providerSegmentationID=2], NeutronNetwork_Segment [ , providerNetworkType=stt, providerPhysicalNetwork=8bab8453-1bc9-45af-8c70-f83aa9b50453, providerSegmentationID=null]]]&lt;br/&gt;
2015-06-03 16:52:32,179 | INFO  | qtp736031520-81  | NeutronSubnetDummyProvider       | 258 - org.opendaylight.neutron.dummyprovider - 0.5.0.SNAPSHOT | NeutronSubnet [subnetUUID=3b80198d-4f7b-4f77-9ef5-774d54e17126, networkUUID=4e8e5957-649f-477b-9e5b-f1f75b21c03c, name=, ipVersion=4, cidr=10.0.0.0/24, gatewayIP=10.0.0.1, dnsNameservers=[], allocationPools=[NeutronSubnetIPAllocationPool &lt;span class=&quot;error&quot;&gt;&amp;#91;start=10.0.0.2, end=10.0.0.254&amp;#93;&lt;/span&gt;], hostRoutes=[], enableDHCP=true, tenantID=9bacb3c5d39d41a79512987f338cf177, myPorts=[], gatewayIPAssigned=false, ipv6AddressMode=null, ipv6RaMode=null]&lt;br/&gt;
2015-06-03 16:52:32,229 | INFO  | qtp736031520-81  | NeutronPortDummyProvider         | 258 - org.opendaylight.neutron.dummyprovider - 0.5.0.SNAPSHOT | NeutronPort [portUUID=65c0ee9f-d634-4522-8954-51021b570b0d, networkUUID=4e8e5957-649f-477b-9e5b-f1f75b21c03c, name=private-port, adminStateUp=true, status=DOWN, macAddress=fa:16:3e:c9:cb:f0, fixedIPs=[Neutron_IPs&lt;/p&gt;
{ipAddress=&apos;10.0.0.2&apos;, subnetUUID=&apos;3b80198d-4f7b-4f77-9ef5-774d54e17126&apos;}
&lt;p&gt;], deviceID=, deviceOwner=, tenantID=9bacb3c5d39d41a79512987f338cf177, floatingIPMap={}, securityGroups=&lt;span class=&quot;error&quot;&gt;&amp;#91;NeutronSecurityGroup{securityGroupUUID=&amp;#39;null&amp;#39;, securityGroupName=&amp;#39;null&amp;#39;, securityGroupDescription=&amp;#39;null&amp;#39;, securityGroupTenantID=&amp;#39;null&amp;#39;, securityRules=null&amp;#93;&lt;/span&gt;], bindinghostID=, bindingvnicType=normal, bindingvnicType=normal]&lt;br/&gt;
)&lt;/p&gt;</comment>
                            <comment id="53350" author="hagbard@gmail.com" created="Sun, 7 Jun 2015 02:31:31 +0000"  >&lt;p&gt;I have chased this back... and here&apos;s what I&apos;ve found.&lt;/p&gt;

&lt;p&gt;OpenDaylight is not getting tenant_id in this case because our ML2 OpenStack Driver is sending &quot;tenant_id&quot;:&quot;&quot;.&lt;/p&gt;

&lt;p&gt;Our ML2 Driver is sending &quot;tenant_id&quot;:&quot;&quot; because that&apos;s what ML2 is sending to it.&lt;/p&gt;

&lt;p&gt;ML2 is sending &quot;tenant_id&quot;:&quot;&quot; because the neutron cli commands are sending &quot;tenant_id&quot;:&quot;&quot; to the OpenStack neutron NB.&lt;/p&gt;

&lt;p&gt;Which is to say, this looks like its either a bug in the neutron cli commands, or a problem with how they are being used (I honestly don&apos;t know which yet).&lt;/p&gt;</comment>
                            <comment id="53351" author="rmoats@us.ibm.com" created="Mon, 8 Jun 2015 13:11:58 +0000"  >&lt;p&gt;Reopening/Reassigning to external component for tracking&lt;/p&gt;</comment>
                            <comment id="53352" author="flavio@flaviof.com" created="Fri, 12 Jun 2015 16:05:25 +0000"  >&lt;p&gt;I would love to hear from a neutron (openstack) guru on this, but at the time the neutron port created for the floating ip is instantiated, it has no association with any tenants &lt;span class=&quot;error&quot;&gt;&amp;#91;1&amp;#93;&lt;/span&gt;, yet.&lt;/p&gt;

&lt;p&gt;Once floating ip is created &lt;span class=&quot;error&quot;&gt;&amp;#91;2&amp;#93;&lt;/span&gt; is that tenant id info is available within&lt;br/&gt;
neutron, but if you look at &lt;span class=&quot;error&quot;&gt;&amp;#91;2&amp;#93;&lt;/span&gt;, that is still not associated with the neutron port object.&lt;/p&gt;

&lt;p&gt;Only when internal&amp;lt;-&amp;gt;external ip association happens is that the mapping of&lt;br/&gt;
port happens, but there seems to be no neutron port update being sent to ODL.&lt;/p&gt;

&lt;p&gt;See this email thread for more info on obtaining this data:&lt;/p&gt;

&lt;p&gt;   &lt;a href=&quot;https://lists.opendaylight.org/pipermail/neutron-dev/2015-June/000180.html&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://lists.opendaylight.org/pipermail/neutron-dev/2015-June/000180.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;===&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;1&amp;#93;&lt;/span&gt;: example of a neutron port create just before floating ip is created:&lt;/p&gt;

&lt;p&gt;POST /controller/nb/v2/neutron/ports/&lt;br/&gt;
{&lt;br/&gt;
  &quot;port&quot;: {&lt;br/&gt;
    &quot;binding:host_id&quot;: &quot;&quot;, &lt;br/&gt;
    &quot;allowed_address_pairs&quot;: [], &lt;br/&gt;
    &quot;device_owner&quot;: &quot;network:floatingip&quot;, &lt;br/&gt;
    &quot;port_security_enabled&quot;: false, &lt;br/&gt;
    &quot;binding:profile&quot;: {}, &lt;br/&gt;
    &quot;fixed_ips&quot;: [&lt;/p&gt;
      {
        &quot;subnet_id&quot;: &quot;00289199-e288-464a-ab2f-837ca67101a7&quot;, 
        &quot;ip_address&quot;: &quot;192.168.111.22&quot;
      }
&lt;p&gt;    ], &lt;br/&gt;
    &quot;id&quot;: &quot;01671703-695e-4497-8a11-b5da989d2dc3&quot;, &lt;br/&gt;
    &quot;security_groups&quot;: [], &lt;br/&gt;
    &quot;device_id&quot;: &quot;f013bef4-9468-494d-9417-c9d9e4abb97c&quot;, &lt;br/&gt;
    &quot;name&quot;: &quot;&quot;, &lt;br/&gt;
    &quot;admin_state_up&quot;: true, &lt;br/&gt;
    &quot;network_id&quot;: &quot;7da709ff-397f-4778-a0e8-994811272fdb&quot;, &lt;br/&gt;
    &quot;tenant_id&quot;: &quot;&quot;,   &amp;lt;==== missing tenant id!&lt;br/&gt;
    &quot;binding:vif_details&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;mac_address&quot;: &quot;FA:16:3E:3F:37:BB&quot;&lt;br/&gt;
  }&lt;br/&gt;
}&lt;/p&gt;

&lt;p&gt;===&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;2&amp;#93;&lt;/span&gt;: floating ip creation&lt;/p&gt;

&lt;p&gt;POST /controller/nb/v2/neutron/floatingips&lt;br/&gt;
{&lt;br/&gt;
  &quot;floatingip&quot;: &lt;/p&gt;
{
    &quot;floating_network_id&quot;: &quot;7da709ff-397f-4778-a0e8-994811272fdb&quot;, 
    &quot;router_id&quot;: null, 
    &quot;fixed_ip_address&quot;: null, 
    &quot;floating_ip_address&quot;: &quot;192.168.111.22&quot;, 
    &quot;tenant_id&quot;: &quot;cde2563ead464ffa97963c59e002c0cf&quot;,   &amp;lt;=== tenant id provided
    &quot;status&quot;: &quot;ACTIVE&quot;, 
    &quot;port_id&quot;: null, &amp;lt;=== neutron port id is missing
    &quot;id&quot;: &quot;f013bef4-9468-494d-9417-c9d9e4abb97c&quot;
  }
&lt;p&gt;}&lt;/p&gt;

&lt;p&gt;===&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;3&amp;#93;&lt;/span&gt;: floating ip association&lt;/p&gt;

&lt;p&gt;PUT /controller/nb/v2/neutron/floatingips/f013bef4-9468-494d-9417-c9d9e4abb97c&lt;br/&gt;
{&lt;br/&gt;
  &quot;floatingip&quot;: &lt;/p&gt;
{
    &quot;floating_network_id&quot;: &quot;7da709ff-397f-4778-a0e8-994811272fdb&quot;, 
    &quot;router_id&quot;: &quot;e09818e7-a05a-4963-9927-fc1dc6f1e844&quot;, 
    &quot;fixed_ip_address&quot;: &quot;10.1.0.3&quot;, 
    &quot;floating_ip_address&quot;: &quot;192.168.111.22&quot;, 
    &quot;tenant_id&quot;: &quot;cde2563ead464ffa97963c59e002c0cf&quot;, 
    &quot;status&quot;: &quot;ACTIVE&quot;, 
    &quot;port_id&quot;: &quot;341ceaca-24bf-4017-9b08-c3180e86fd24&quot;, 
    &quot;id&quot;: &quot;f013bef4-9468-494d-9417-c9d9e4abb97c&quot;
  }
&lt;p&gt;}&lt;/p&gt;</comment>
                            <comment id="53353" author="rmoats@us.ibm.com" created="Fri, 12 Jun 2015 16:11:45 +0000"  >&lt;p&gt;Wait...&lt;/p&gt;

&lt;p&gt;The port is scoped by the network - if the network is not shared, then by definition, the port must be in the same tenant as the network.&lt;br/&gt;
In that case, it is possible to infer the port&apos;s tenant id value.&lt;/p&gt;</comment>
                            <comment id="53354" author="flavio@flaviof.com" created="Fri, 12 Jun 2015 16:17:14 +0000"  >&lt;p&gt;(In reply to Ryan Moats from comment #5)&lt;br/&gt;
&amp;gt; Wait...&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; The port is scoped by the network - if the network is not shared, then by&lt;br/&gt;
&amp;gt; definition, the port must be in the same tenant as the network.&lt;br/&gt;
&amp;gt; In that case, it is possible to infer the port&apos;s tenant id value.&lt;/p&gt;

&lt;p&gt;you are correct. In my poor example, this is not a shared network,&lt;br/&gt;
so openstack neutron should be able to get the tenant based on the&lt;br/&gt;
network.&lt;/p&gt;

&lt;p&gt;in cases when net is shared, this is a bit harder. It is good to point&lt;br/&gt;
out that the attribute referred as &quot;port_id&quot; in the floating ip&lt;br/&gt;
object is referring to the neutron port used by the &apos;fixed&apos; address, not&lt;br/&gt;
the &apos;floating-ip&apos; address.&lt;/p&gt;

&lt;p&gt;All in all, we are in complete agreement that it should be possible to&lt;br/&gt;
have the tenant-id populated &amp;#8211; as long as the network is not shared.&lt;/p&gt;</comment>
                            <comment id="53355" author="yamahata" created="Sat, 13 Jun 2015 01:49:10 +0000"  >&lt;p&gt;tenant_id=&apos;&apos;(empty string) is intentionally passed by neutron l3 code.&lt;br/&gt;
It seems quick hack. I filed it to sort them out.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://bugs.launchpad.net/neutron/+bug/1464806&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://bugs.launchpad.net/neutron/+bug/1464806&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;https://bugs.launchpad.net/networking-odl/+bug/1464807&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://bugs.launchpad.net/networking-odl/+bug/1464807&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As near term work around, tenant_id can deduced from network object.&lt;/p&gt;</comment>
                            <comment id="53356" author="yamahata" created="Sat, 13 Jun 2015 15:59:00 +0000"  >&lt;p&gt;Supplement.&lt;br/&gt;
Actually Neutron passes tenant_id as &apos;&apos;(empty string), not UUID.&lt;br/&gt;
&lt;a href=&quot;http://git.openstack.org/cgit/openstack/neutron/tree/neutron/db/l3_db.py#n924&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://git.openstack.org/cgit/openstack/neutron/tree/neutron/db/l3_db.py#n924&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Is this acceptable by ODL side?&lt;br/&gt;
Or should it be UUID?&lt;/p&gt;</comment>
                            <comment id="53357" author="rmoats@us.ibm.com" created="Mon, 15 Jun 2015 13:16:34 +0000"  >&lt;p&gt;No, an empty tenant ID is not acceptable, neutron northbound expects a valid tenant UUID in this field&lt;/p&gt;</comment>
                            <comment id="53358" author="flavio@flaviof.com" created="Fri, 19 Jun 2015 15:21:00 +0000"  >&lt;p&gt;With the merged done by Isaku &lt;span class=&quot;error&quot;&gt;&amp;#91;1&amp;#93;&lt;/span&gt;, I suspect ODL will no longer get&lt;br/&gt;
empty tenant id.&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://review.openstack.org/#/c/191471/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.openstack.org/#/c/191471/&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="53359" author="msunal@cisco.com" created="Mon, 22 Jun 2015 07:57:33 +0000"  >&lt;p&gt;A floating-ip port contains tenant-id after this commit &lt;a href=&quot;https://review.openstack.org/#/c/191471/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.openstack.org/#/c/191471/&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>3368</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=3368]]></customfieldvalue>

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

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