<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:21:54 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-566] Netvirt does not set br-int to netdev with dpdk</title>
                <link>https://jira.opendaylight.org/browse/NETVIRT-566</link>
                <project id="10144" key="NETVIRT">netvirt</project>
                    <description>&lt;p&gt;Right now it looks like netvirt is looking for some configuration parameter to decide if a bridge should be created as netdev or system:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/opendaylight/netvirt/blob/e477acc8f904f14869777db7a7f4b9cd1b479a4d/vpnservice/elanmanager/elanmanager-impl/src/main/java/org/opendaylight/netvirt/elan/internal/ElanBridgeManager.java#L77&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/opendaylight/netvirt/blob/e477acc8f904f14869777db7a7f4b9cd1b479a4d/vpnservice/elanmanager/elanmanager-impl/src/main/java/org/opendaylight/netvirt/elan/internal/ElanBridgeManager.java#L77&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Configuring it this way may work for a user who wants a homogeneous deployment, but it is not valid in other scenarios.  For example, in OpenStack when using controller and compute nodes, we want the compute nodes to be in netdev for br-int because they will have vhostuser ports.  However, controller nodes will use Neutron DHCP agent, and therefore we want them to use system bridge br-int for regular tap interfaces.&lt;/p&gt;

&lt;p&gt;If the configuration option is not provided to netvirt, then netvirt should decide to use netdev or system based on configuration of the OVSDB node.  In OVS &amp;gt;= 2.6 this can be determined by checking other_config: dpdk-init=&quot;true&quot; in OVS.  If DPDK is enabled, then I think it is safe for netvirt to decide to create br-int as netdev type.  Otherwise it can create br-int as system.&lt;/p&gt;

&lt;p&gt;Note other_config:dpdk-init is not yet part of the OVSDB schema, so it would need to be added.  Another option may be to introduce a totally new flag as other_config to each OVSDB node, so that a user may configure (per node) to enable netdev or not.&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="20487">NETVIRT-566</key>
            <summary>Netvirt does not set br-int to netdev with dpdk</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="-1">Unassigned</assignee>
                                    <reporter username="trozet">Tim Rozet</reporter>
                        <labels>
                    </labels>
                <created>Fri, 24 Mar 2017 20:15:09 +0000</created>
                <updated>Tue, 29 May 2018 14:58:55 +0000</updated>
                            <resolved>Thu, 30 Mar 2017 13:46:29 +0000</resolved>
                                    <version>Boron</version>
                                                    <component>General</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="37557" author="trozet@redhat.com" created="Sat, 25 Mar 2017 00:44:33 +0000"  >&lt;p&gt;You can see dpdk is enabled in my iface_types, but br-int was created as system.&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;root@overcloud-novacompute-0 ~&amp;#93;&lt;/span&gt;# ovs-vsctl list open_vswitch&lt;br/&gt;
_uuid               : 563f5fee-ddbb-4e24-acb5-2c24f09496ae&lt;br/&gt;
bridges             : &lt;span class=&quot;error&quot;&gt;&amp;#91;8abc4f0f-514c-482d-af48-c50eca62133f, b4828ab2-5ac0-4dda-8880-b55bb95536d2, e506262d-fcd7-48c7-ad34-62f837d1f453&amp;#93;&lt;/span&gt;&lt;br/&gt;
cur_cfg             : 13&lt;br/&gt;
datapath_types      : &lt;span class=&quot;error&quot;&gt;&amp;#91;netdev, system&amp;#93;&lt;/span&gt;&lt;br/&gt;
db_version          : &quot;7.14.0&quot;&lt;br/&gt;
external_ids        : &lt;/p&gt;
{hostname=&quot;overcloud-novacompute-0.opnfvlf.org&quot;, system-id=&quot;a636e28f-f6e8-4b9e-8a1d-cfab65c3dab8&quot;}
&lt;p&gt;iface_types         : &lt;span class=&quot;error&quot;&gt;&amp;#91;dpdk, dpdkr, dpdkvhostuser, dpdkvhostuserclient, geneve, gre, internal, ipsec_gre, lisp, patch, stt, system, tap, vxlan&amp;#93;&lt;/span&gt;&lt;br/&gt;
manager_options     : &lt;span class=&quot;error&quot;&gt;&amp;#91;41a242c9-d10a-482a-865b-9113911525a7, 7fffb012-ba4b-4e2d-9694-0bd5c47cb17e, cf6aa392-f0a4-4097-8f9c-a429a62606d6, db0d31ed-e6fa-4b39-84e7-910c0987c6a2, df31e757-7732-4a52-9aa3-91dcee28022f&amp;#93;&lt;/span&gt;&lt;br/&gt;
next_cfg            : 13&lt;br/&gt;
other_config        : &lt;/p&gt;
{dpdk-init=&quot;true&quot;, dpdk-lcore-mask=&quot;2&quot;, dpdk-socket-mem=&quot;1024&quot;, local_ip=&quot;11.0.0.22&quot;, pmd-cpu-mask=&quot;4&quot;, provider_mappings=&quot;datacentre:br-ex&quot;}
&lt;p&gt;ovs_version         : &quot;2.6.1&quot;&lt;br/&gt;
ssl                 : []&lt;br/&gt;
statistics          : {}&lt;br/&gt;
system_type         : centos&lt;br/&gt;
system_version      : &quot;7&quot;&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;root@overcloud-novacompute-0 ~&amp;#93;&lt;/span&gt;# ovs-appctl dctpl/show&lt;br/&gt;
&quot;dctpl/show&quot; is not a valid command&lt;br/&gt;
ovs-appctl: ovs-vswitchd: server returned an error&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;root@overcloud-novacompute-0 ~&amp;#93;&lt;/span&gt;# ovs-appctl dpctl/show&lt;br/&gt;
netdev@ovs-netdev:&lt;br/&gt;
        lookups: hit:20641 missed:141 lost:0&lt;br/&gt;
        flows: 3&lt;br/&gt;
        port 0: ovs-netdev (tap)&lt;br/&gt;
        port 1: br-ex (tap)&lt;br/&gt;
        port 2: eth2&lt;br/&gt;
        port 3: dpdk0 (dpdk: configured_rx_queues=1, configured_tx_queues=1, mtu=1500, requested_rx_queues=1, requested_tx_queues=3)&lt;br/&gt;
        port 4: br-phy (tap)&lt;br/&gt;
system@ovs-system:&lt;br/&gt;
        lookups: hit:0 missed:0 lost:0&lt;br/&gt;
        flows: 0&lt;br/&gt;
        masks: hit:0 total:0 hit/pkt:0.00&lt;br/&gt;
        port 0: ovs-system (internal)&lt;br/&gt;
        port 1: br-int (internal)&lt;/p&gt;</comment>
                            <comment id="37558" author="jhershbe" created="Thu, 30 Mar 2017 09:50:12 +0000"  >&lt;p&gt;(In reply to Timothy Rozet from comment #0)&lt;br/&gt;
&amp;gt; Right now it looks like netvirt is looking for some configuration parameter&lt;br/&gt;
&amp;gt; to decide if a bridge should be created as netdev or system:&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; &lt;a href=&quot;https://github.com/opendaylight/netvirt/blob/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/opendaylight/netvirt/blob/&lt;/a&gt;&lt;br/&gt;
&amp;gt; e477acc8f904f14869777db7a7f4b9cd1b479a4d/vpnservice/elanmanager/elanmanager-&lt;br/&gt;
&amp;gt; impl/src/main/java/org/opendaylight/netvirt/elan/internal/ElanBridgeManager.&lt;br/&gt;
&amp;gt; java#L77&lt;br/&gt;
&amp;gt; &lt;/p&gt;

&lt;p&gt;It certainly looks like that &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.opendaylight.org/images/icons/emoticons/wink.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;. But if you dig further down that is just one of the ways the bridge can be set to netdev. The code you reference sets a variable called dpType which is passed into SouthboundUtils.addBridge. But in there we have:&lt;/p&gt;

&lt;p&gt;            if (dpType != null) &lt;/p&gt;
{
                ovsdbBridgeAugmentationBuilder.setDatapathType(dpType);
            }
&lt;p&gt;            if (isOvsdbNodeDpdk(ovsdbNode)) &lt;/p&gt;
{
                ovsdbBridgeAugmentationBuilder.setDatapathType(DatapathTypeNetdev.class);
            }

&lt;p&gt;isOvsdbNodeDpdk checks for the dpdk interface type and returns true if it exists. &lt;/p&gt;

&lt;p&gt;So no matter what the value of the configuration parameter, if the OVS has dpdk interface type, netdev will get set.&lt;/p&gt;</comment>
                            <comment id="37559" author="trozet@redhat.com" created="Thu, 30 Mar 2017 13:46:29 +0000"  >&lt;p&gt;The reason br-int was getting set to system was due to a bug in RDO:&lt;br/&gt;
&lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=1436021&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://bugzilla.redhat.com/show_bug.cgi?id=1436021&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When setting OVS to be dpdk, it requires a restart.  This restart was triggering systemd to also start Neutron OVS Agent which was connecting to the switch and creating br-int as system.&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>8078</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=8078]]></customfieldvalue>

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

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