<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:15:09 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>[NETCONF-482] Extra superfluous edit-config RPC sent just prior to correct edit-config RPC for top-level lists</title>
                <link>https://jira.opendaylight.org/browse/NETCONF-482</link>
                <project id="10142" key="NETCONF">netconf</project>
                    <description>&lt;p&gt;Symptom: &lt;br/&gt;
POST &amp;amp; PUT to certain top-level lists in a mounted device&apos;s model returns a 500 error via Restconf, although in some cases (device-dependent) the config appears to have committed.  This problem first appeared in Boron-SR3, and continues in Carbon SR-1.&lt;/p&gt;

&lt;p&gt;What&apos;s actually happening: &lt;br/&gt;
Two edit-config RPCs appear on the wire / in TRACE logs.  The first edit-config&apos;s body includes a single empty parent node, such as &amp;lt;configuration&amp;gt; or &amp;lt;interfaces&amp;gt;, but then no actual contents within that.  Different vendors&apos; devices handle this in different ways, sometimes with a ~graceful rpc-error-reply on that incorrect edit-config but accepting the correct one that follows.  Others enter a half-configured state and then fail the correct edit-config state (such as a POST where the resource was created without useful payload).&lt;/p&gt;

&lt;p&gt;Solution: If the target is a mounted network element, don&apos;t create the empty subtree at all.  Regardless of whether or not the standard allows it, most vendor netconf implementations reject this behavior.  See MakePut in BrokerFacade for the root cause, and also see corresponding post method..&lt;/p&gt;

&lt;p&gt;One example of the failure:&lt;br/&gt;
2017-10-05 16:26:40,416 | WARN  | oupCloseable-3-2 | NetconfDeviceCommunicator        | 299 - org.opendaylight.netconf.sal-netconf-connector - 1.5.1.Carbon | RemoteDevice&lt;/p&gt;
{dfwm2k02-ie1ri}
&lt;p&gt;: Error reply from remote device, request: &amp;lt;rpc message-id=&quot;m-7538&quot; xmlns=&quot;urn:ietf:params:xml:ns:netconf:base:1.0&quot;&amp;gt;&lt;br/&gt;
&amp;lt;edit-config&amp;gt;&lt;br/&gt;
&amp;lt;target&amp;gt;&lt;br/&gt;
&amp;lt;candidate/&amp;gt;&lt;br/&gt;
&amp;lt;/target&amp;gt;&lt;br/&gt;
&amp;lt;config&amp;gt;&lt;br/&gt;
&amp;lt;configuration xmlns=&quot;http://yang.juniper.net/junos/conf/root&quot;/&amp;gt;&lt;br/&gt;
&amp;lt;/config&amp;gt;&lt;br/&gt;
&amp;lt;/edit-config&amp;gt;&lt;br/&gt;
&amp;lt;/rpc&amp;gt;&lt;br/&gt;
, response: &amp;lt;nc:rpc-reply xmlns:nc=&quot;urn:ietf:params:xml:ns:netconf:base:1.0&quot; xmlns=&quot;urn:ietf:params:xml:ns:netconf:base:1.0&quot; xmlns:junos=&quot;http://xml.juniper.net/junos/17.4X48/junos&quot; message-id=&quot;m-7538&quot;&amp;gt;&lt;br/&gt;
&amp;lt;nc:rpc-error&amp;gt;&lt;br/&gt;
&amp;lt;nc:error-type&amp;gt;protocol&amp;lt;/nc:error-type&amp;gt;&lt;br/&gt;
&amp;lt;nc:error-tag&amp;gt;operation-failed&amp;lt;/nc:error-tag&amp;gt;&lt;br/&gt;
&amp;lt;nc:error-severity&amp;gt;error&amp;lt;/nc:error-severity&amp;gt;&lt;br/&gt;
&amp;lt;nc:error-message&amp;gt;syntax error, expecting &amp;lt;configuration&amp;gt;&amp;lt;/nc:error-message&amp;gt;&lt;br/&gt;
&amp;lt;nc:error-info&amp;gt;&lt;br/&gt;
&amp;lt;nc:bad-element&amp;gt;configuration&amp;lt;/nc:bad-element&amp;gt;&lt;br/&gt;
&amp;lt;/nc:error-info&amp;gt;&lt;br/&gt;
&amp;lt;/nc:rpc-error&amp;gt;&lt;br/&gt;
&amp;lt;/nc:rpc-reply&amp;gt;&lt;/p&gt;
</description>
                <environment>&lt;p&gt;Boron SR-3&lt;br/&gt;
Carbon SR-1&lt;br/&gt;
(perhaps others)&lt;/p&gt;

&lt;p&gt;Netconf-mounted network element with a list at the top level.   Examples include Juniper JUNOS 17.4 interfaces, Juniper JDM 17.4 virtual-network-functions, and others.&lt;/p&gt;</environment>
        <key id="28692">NETCONF-482</key>
            <summary>Extra superfluous edit-config RPC sent just prior to correct edit-config RPC for top-level lists</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="2" iconUrl="https://jira.opendaylight.org/images/icons/priorities/critical.svg">High</priority>
                        <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="jluhrsen">Jamo Luhrsen</assignee>
                                    <reporter username="malloc_failed">Jeff Hartley</reporter>
                        <labels>
                    </labels>
                <created>Fri, 3 Nov 2017 20:57:08 +0000</created>
                <updated>Tue, 25 Aug 2020 19:05:04 +0000</updated>
                            <resolved>Tue, 25 Aug 2020 19:05:04 +0000</resolved>
                                                    <fixVersion>Nitrogen SR1</fixVersion>
                    <fixVersion>Carbon SR3</fixVersion>
                    <fixVersion>Aluminium</fixVersion>
                    <fixVersion>1.13.0</fixVersion>
                    <fixVersion>Magnesium SR3</fixVersion>
                                    <component>netconf</component>
                    <component>restconf-nb</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>5</watches>
                                                                                                                <comments>
                            <comment id="59923" author="klou" created="Sat, 4 Nov 2017 15:09:53 +0000"  >&lt;p&gt;This looks like an existing issue for Boron and Carbon.  Does it apply to Nitrogen also?&lt;/p&gt;

&lt;p&gt;Is this truly a blocker for the upcoming release of Nitrogen-SR1?  Thanks!&lt;/p&gt;
</comment>
                            <comment id="59981" author="agosain" created="Tue, 7 Nov 2017 18:48:00 +0000"  >&lt;p&gt;As per the Juniper engineers, the edit config used to have a different behavior pre Boron SR3. &lt;br/&gt;
It seems to be a regression. &lt;br/&gt;
There is no workaround to this situation since the initial empty parent config is not accepted by many different vendor&apos;s devices. &lt;/p&gt;</comment>
                            <comment id="59983" author="agosain" created="Tue, 7 Nov 2017 21:41:04 +0000"  >&lt;p&gt;Submitted a patch for Nitrogen &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/65281/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/65281/&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="59988" author="bvaradar" created="Tue, 7 Nov 2017 23:55:54 +0000"  >&lt;p&gt;The extra massaging for the requests such as creating the parent structures and empty payload etc are not needed for mounted Netconf devices. They may be only needed for ODL&apos;s internal operations. So not doing those extra operations on mount points is good. Not all devices take kindly to those extra edit-configs.&lt;/p&gt;</comment>
                            <comment id="59990" author="agosain" created="Wed, 8 Nov 2017 00:42:52 +0000"  >&lt;p&gt;Submitted patch for Carbon - &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/65293/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/65293/&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="61017" author="klou" created="Fri, 9 Feb 2018 23:56:47 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=agosain&quot; class=&quot;user-hover&quot; rel=&quot;agosain&quot;&gt;agosain&lt;/a&gt; - please mark this issue as resolved as both patches have been merged.&#160; Thanks!&lt;/p&gt;</comment>
                            <comment id="68221" author="jluhrsen" created="Fri, 12 Jun 2020 16:33:19 +0000"  >&lt;p&gt;this did not make it to master... along with some other patches so was lost in Fluorine and beyond&lt;/p&gt;</comment>
                            <comment id="68538" author="jluhrsen" created="Fri, 14 Aug 2020 16:20:52 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=tcere&quot; class=&quot;user-hover&quot; rel=&quot;tcere&quot;&gt;tcere&lt;/a&gt;&#160;or &lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=rovarga&quot; class=&quot;user-hover&quot; rel=&quot;rovarga&quot;&gt;rovarga&lt;/a&gt;, can you take a look at this &lt;a href=&quot;https://git.opendaylight.org/gerrit/c/netconf/+/92142&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;patch &lt;/a&gt; please?&lt;/p&gt;

&lt;p&gt;This work was done, probably in a rush or during a release window, and was only merged to stable/oxygen and cherry picked&lt;br/&gt;
down to older stable branches. It never made it in to the existing master at the time, so it was lost.&lt;/p&gt;

&lt;p&gt;The patch is essentially the same work, but it was not a straight cherry-pick for me. I tested locally&lt;br/&gt;
and it&apos;s fixing the extra empty edit-config problem. I actually tested it in every branch (Na, Mg, Al, Si).&lt;br/&gt;
Once it&apos;s merged in master, I&apos;ll CP to everything else.&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_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i0378n:</customfieldvalue>

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