<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:20:35 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-58] Patch ports are not created while using ODL for L2 handling and Neutron L3-agent to handle L3 in legacy netvirt</title>
                <link>https://jira.opendaylight.org/browse/NETVIRT-58</link>
                <project id="10144" key="NETVIRT">netvirt</project>
                    <description>&lt;p&gt;ODL version: Beryllium SR3&lt;br/&gt;
openstack version: Mitaka&lt;/p&gt;

&lt;p&gt;issue scenario:&lt;br/&gt;
      Instance in Openstack to use multiple external provider networks.&lt;br/&gt;
we are using ODL for L2 handling and Neutron L3-agent to handle L3.&lt;br/&gt;
because ODL does not support Multiple external network.&lt;br/&gt;
in this scenario we are expecting ODL to create patch port in br-int                and br-ex during external network creation.Also ODL controller to wirte the flows which forward the traffic via patch ports when the user attach the     gateway and interface to the router.&lt;/p&gt;

&lt;p&gt;       The same use case with openvswitch as L2 and Neutron L3-agent to handle L3.Openvswitch driver creating patch ports also writing flows(converting local VLAN to provider VLAN and sending the packets to respective interface) in br-int and br-ex to forward the packets to external Network host.&lt;/p&gt;

&lt;p&gt;steps to reproduce the Bug:&lt;/p&gt;

&lt;p&gt;1.in devstack local.conf file make changes to create vlan network.&lt;br/&gt;
       Q_ML2_PLUGIN_TYPE_DRIVERS=vlan,gre,vxlan,flat                &lt;br/&gt;
       &lt;span class=&quot;error&quot;&gt;&amp;#91;ovs&amp;#93;&lt;/span&gt;&lt;br/&gt;
       local_ip=$HOST_IP&lt;br/&gt;
       bridge_mappings = physnet1:br-ex&lt;br/&gt;
       &lt;span class=&quot;error&quot;&gt;&amp;#91;ml2_type_vlan&amp;#93;&lt;/span&gt;&lt;br/&gt;
       network_vlan_ranges=physnet1:171:172&lt;/p&gt;

&lt;p&gt;2.comment  &quot;ovsdb.l3.fwd.enabled=yes&quot; in &quot;etc/custom.properties&quot; file.&lt;br/&gt;
3.start the controller and install &quot;odl-ovsdb-openstack&quot;.&lt;br/&gt;
4.Run the devstack &quot;./stack.sh&quot;&lt;br/&gt;
5.After stack UP create br-ex and add port to it.&lt;br/&gt;
  &quot;sudo ovs-vsctl add-br br-ex&quot;&lt;br/&gt;
  &quot;sudo ovs-vsctl add-port br-ex ens35&quot;&lt;br/&gt;
6.now create internal network and VM&apos;scenario&lt;br/&gt;
7.Create two VLAN provider network.&lt;br/&gt;
8.Create two Routers and attach Gateway.&lt;br/&gt;
9.Associate floating IP try to reach external Gateway from the openstack VM instance.&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="19979">NETVIRT-58</key>
            <summary>Patch ports are not created while using ODL for L2 handling and Neutron L3-agent to handle L3 in legacy netvirt</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="balakrishnan">balakrishnan k</assignee>
                                    <reporter username="balakrishnan">balakrishnan k</reporter>
                        <labels>
                    </labels>
                <created>Fri, 12 Aug 2016 06:10:31 +0000</created>
                <updated>Mon, 8 Apr 2019 16:58:29 +0000</updated>
                            <resolved>Tue, 27 Dec 2016 05:05:52 +0000</resolved>
                                    <version>Beryllium</version>
                                                        <due></due>
                            <votes>0</votes>
                                    <watches>5</watches>
                                                                                                                <comments>
                            <comment id="36236" author="balakrishnan" created="Wed, 21 Sep 2016 07:28:59 +0000"  >&lt;p&gt;Approach:&lt;br/&gt;
1.Added new flag in  &quot;etc/custom.properties&quot; enable the flag (ovsdb.l3.multiple.network.enabled=yes) and start the controller.&lt;br/&gt;
2.Create external bridge manually in openstack control node and set provider mappings.&lt;br/&gt;
  &quot;sudo ovs-vsctl add-br br-ex&quot; &lt;br/&gt;
  &quot;ovs-vsctl set Open_vSwitch 5d633410-99d6-4ada-b371-71ccd1f99546 other_config:provider_mappings=physnet1:br-ex&quot;&lt;br/&gt;
3.Add potrs to the external bridge and add VLAN tag.&lt;br/&gt;
  &quot;sudo ovs-vsctl add-port br-ex ens36&quot;&lt;br/&gt;
  &quot;sudo ovs-vsctl add-port br-ex ens36.100&quot;&lt;br/&gt;
  &quot;ovs-vsctl set port ens36.100 tag=100&quot;&lt;br/&gt;
4.Execute &quot;sudo ovs-vsctl set-manager tcp:10.106.138.159:6640&quot; in openstack control node.&lt;br/&gt;
5.During set-manager execution in netvirt check the new flag(ovsdb.l3.multiple.network.enabled=yes) value, if it is enabled,&lt;br/&gt;
   create patch port between br-int and external bridge.&lt;/p&gt;

&lt;p&gt;  a.Read the external bridge from provider-mappings/bridge_mappings.&lt;br/&gt;
  b.Use external bridge name and integration bridge name to create patch ports between them.&lt;/p&gt;

&lt;p&gt;6.Neutron L3-agent will create a port in br-int for router-gateway,netvirt receives port event for router-gateway.in southbound handler check the newflag(ovsdb.l3.multiple.network.enabled=yes) is enabled and port update is for router-gateway then write the following flows to support Vlan external network.&lt;/p&gt;

&lt;p&gt;6a.Handle the packets coming from external router gateway to br-int(write the flow to match the external router gateway port and MAC then forward the packets to br-ex via patch port)&lt;br/&gt;
6b.Handle the packets reaching on br-ex via patch port(write the flow to tag the VLAN and forward the packets to external interface connected on br-ex).&lt;br/&gt;
6c.Handle the packets coming from br-ex via patch port to br-int.&lt;/p&gt;

&lt;p&gt;   sample flows:&lt;/p&gt;

&lt;p&gt;   flows added in br-int:&lt;br/&gt;
   6a.cookie=0x0, duration=7451.336s, table=100, n_packets=147, n_bytes=6230, idle_age=6506, priority=4,in_port=5,dl_src=fa:16:3e:74:a9:2e actions=output:3&lt;br/&gt;
   6c.cookie=0x0, duration=7451.336s, table=0, n_packets=147, n_bytes=6230, idle_age=6506, priority=4,in_port=3,dl_vlan=100 actions=strip_vlan,output:5&lt;/p&gt;

&lt;p&gt;   flows added in br-ex:&lt;/p&gt;

&lt;p&gt;   6b.cookie=0x0, duration=7451.336s, table=0, n_packets=147, n_bytes=6230, idle_age=6506, priority=4,in_port=3,dl_src=fa:16:3e:74:a9:2e actions=mod_vlan_vid:100,NORMAL&lt;/p&gt;

&lt;p&gt;additionally default flow in external bridge to drop the packets coming from patch port and no match found.&lt;br/&gt;
   cookie=0x0, duration=282604.211s, table=0, n_packets=180, n_bytes=12500, idle_age=5680, hard_age=65534, priority=2,in_port=3 actions=drop&lt;/p&gt;

&lt;p&gt;   port 5 --&amp;gt;external network gateway.&lt;br/&gt;
   port 3--&amp;gt;patch-ext created in br-int&lt;br/&gt;
   port 3--&amp;gt;patch-int created in br-ex&lt;/p&gt;


&lt;p&gt;we are using table 100 to write the flows in br-int is that fine?&lt;br/&gt;
All the above operation performed only when flag(ovsdb.l3.multiple.network.enabled=yes) is enabled, so this will not affect existing functionality of ODL.&lt;/p&gt;

&lt;p&gt;we have tested this approach manually by creating patch ports and adding the flows.patch pushed for above aproach: &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/45812/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/45812/&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>6395</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=6395]]></customfieldvalue>

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

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