<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:09:29 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>[MDSAL-310] Instance Identifier is unable to represent Choice / Case, only children</title>
                <link>https://jira.opendaylight.org/browse/MDSAL-310</link>
                <project id="10137" key="MDSAL">mdsal</project>
                    <description>&lt;p&gt;It is impossible to construct instance identifier, which will explicitly reference choice / case. This makes binding instance identifier not suffiecient expresive,&lt;br/&gt;
since it is impossible to uniquelly reference nodes in following situation:&lt;/p&gt;

&lt;p&gt;Module 1:&lt;br/&gt;
   grouping foo {&lt;br/&gt;
      container bar {&lt;/p&gt;

&lt;p&gt;      }&lt;br/&gt;
   }&lt;/p&gt;

&lt;p&gt;   choice bar {&lt;br/&gt;
       case foo &lt;/p&gt;
{
           uses foo;
       }
&lt;p&gt;   }&lt;/p&gt;

&lt;p&gt;Module 2&lt;/p&gt;

&lt;p&gt;   augment bar {&lt;br/&gt;
     case foo2 &lt;/p&gt;
{
         uses foo;
     }
&lt;p&gt;   }&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="26865">MDSAL-310</key>
            <summary>Instance Identifier is unable to represent Choice / Case, only children</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="3" iconUrl="https://jira.opendaylight.org/images/icons/priorities/major.svg">Medium</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="JieHan2017">Jie Han</assignee>
                                    <reporter username="tony.tkacik@gmail.com">Tony Tkacik</reporter>
                        <labels>
                    </labels>
                <created>Fri, 1 Aug 2014 14:02:43 +0000</created>
                <updated>Thu, 13 Sep 2018 02:47:45 +0000</updated>
                            <resolved>Thu, 13 Sep 2018 02:47:45 +0000</resolved>
                                                                    <component>Binding V2 codegen</component>
                    <component>Binding V2 runtime</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>6</watches>
                                                                                                                <comments>
                            <comment id="54004" author="vrpolak" created="Tue, 27 Oct 2015 13:07:38 +0000"  >&lt;p&gt;&amp;gt; in following situation&lt;/p&gt;

&lt;p&gt;This is very similar to description of &quot;two sibling nodes with the same local name&quot; in &lt;a href=&quot;https://tools.ietf.org/html/draft-lhotka-netmod-yang-json-02#section-3.1&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://tools.ietf.org/html/draft-lhotka-netmod-yang-json-02#section-3.1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;How does ODL distinguish &quot;foomod:bar&quot; from &quot;barmod:bar&quot; (leafs in that link), and why does it not work for distinguishing &quot;module1:bar&quot; from &quot;module2:bar&quot; (inner containers in this Bug)?&lt;/p&gt;</comment>
                            <comment id="60961" author="jiehan2017" created="Wed, 7 Feb 2018 02:15:35 +0000"  >&lt;p&gt;See RFC 7950 section 6.2.1:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;o All leafs, leaf-lists, lists, containers, choices, rpcs, actions,&lt;br/&gt;
notifications, anydatas, and anyxmls defined (directly or through&lt;br/&gt;
a &quot;uses&quot; statement) within a parent node or at the top level of&lt;br/&gt;
the module or its submodules share the same identifier namespace.&lt;br/&gt;
This namespace is scoped to the parent node or module, unless the&lt;br/&gt;
parent node is a case node.&lt;font color=&quot;red&quot;&gt; In that case, the namespace is scoped&lt;br/&gt;
to the closest ancestor node that is not a case or choice node&lt;/font&gt;.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;So, the yang defined above seems illegal as there&apos;re two &apos;bar&apos; containers.&lt;/p&gt;</comment>
                            <comment id="61020" author="jiehan2017" created="Sun, 11 Feb 2018 08:54:44 +0000"  >&lt;p&gt;Detection of node name collision should be completed by yangtool parser,  move this bug to YANGTOOLS.&lt;/p&gt;</comment>
                            <comment id="61022" author="jiehan2017" created="Mon, 12 Feb 2018 02:43:01 +0000"  >&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/68134/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/68134/&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="61066" author="rovarga" created="Wed, 14 Feb 2018 20:21:52 +0000"  >&lt;p&gt;This issue has nothing to do with YangInstanceIdentifier nor organization of anything in yangtools. This concerns only the design of InstanceIdentifier, as defined in binding &#8211; SchemaContext provides all information required to make it work.&lt;/p&gt;

&lt;p&gt;Please do not hijack issues to completely unrelated issues.&lt;/p&gt;</comment>
                            <comment id="61070" author="jiehan2017" created="Thu, 15 Feb 2018 02:25:49 +0000"  >&lt;p&gt;Not at all I thought, the Instance Idendifier does not need to represent Choice/Case, it&apos;s nothing to do with binding, as in description I got that why the issue created is totally because there are name collision, the immediate idea of reporter to resolve that is to reference choice/case, but that&apos;s not the root cause.&lt;/p&gt;</comment>
                            <comment id="61386" author="jiehan2017" created="Fri, 2 Mar 2018 07:56:47 +0000"  >&lt;p&gt;What should the binding instance identifier of choice/case&apos;s descendant data nodes finally be?&lt;br/&gt;
For yang snippet:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
module test {
 &#160; ...
 &#160; container top {
 &#160; &#160; choice top-choice {
 &#160; &#160; &#160; &#160;&lt;span class=&quot;code-keyword&quot;&gt;case&lt;/span&gt; case1 {
 &#160; &#160; &#160; &#160; &#160; &#160; &#160;container cont-in-case1 {&#160;
               }
&#160; &#160; &#160; &#160; &#160; &#160; &#160; choice case1-choice {
 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &lt;span class=&quot;code-keyword&quot;&gt;case&lt;/span&gt; case11 {
 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; container cont-in-case11 {
                             }
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; }
 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;}
 &#160; &#160; &#160; &#160;}
&#160; }
}

module aug-test {
&#160; ...
 &#160; augment &lt;span class=&quot;code-quote&quot;&gt;&quot;/test:top/top-choice/case1&quot;&lt;/span&gt; {
 &#160; &#160; &#160; &#160; &#160; choice aug-case1-choice {
 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &lt;span class=&quot;code-keyword&quot;&gt;case&lt;/span&gt; case12 {
 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; container&#160;cont-in-case12 {
                             }
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; }
 &#160; &#160; &#160; &#160; &#160; &#160; }
&#160; }
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;1.II for &apos;cont-in-case1&apos; could be:&lt;br/&gt;
 A) InstanceIdentifier.builder(Top.class).child(ContInCase1.class) .build()or&lt;br/&gt;
 B) InstanceIdentifier.builder(Top.class).child(TopChoice.class).child(Case1.class).child(ContInCase1.class) .build()&lt;/p&gt;

&lt;p&gt;2.II for &apos;cont-in-case11&apos; could be:&lt;br/&gt;
 A) InstanceIdentifier.builder(Top.class).child(ContInCase11.class) or &lt;br/&gt;
 B) InstanceIdentifier.builder(Top.class).child(TopChoice.class).child(Case1.class).child(Case1Choice.class).child(Case11.class) &lt;br/&gt;
 .child(ContInCase11.class).build()&lt;/p&gt;

&lt;p&gt;3.II for &apos;cont-in-case12&apos; could be:&lt;br/&gt;
 A) InstanceIdentifier.builder(Top.class).child(ContInCase12.class).build() or&lt;br/&gt;
 B) InstanceIdentifier.builder(Top.class).child(TopChoice.class).child(Case1.class).augment(Case1Augment.class)&lt;br/&gt;
 .child(AugCase1Choice.class).child(Case12.class).child(CintInCase12.class).build()&lt;/p&gt;

&lt;p&gt;Since choice and case are not data tree nodes, so I prefer to choose option A).&lt;/p&gt;</comment>
                            <comment id="61478" author="jiehan2017" created="Wed, 7 Mar 2018 09:12:57 +0000"  >&lt;p&gt;Instance identifier should not reference choice/case.&lt;br/&gt;
MDSAL master:  &lt;a href=&quot;https://git.opendaylight.org/gerrit/68099&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/68099&lt;/a&gt;&lt;/p&gt;
</comment>
                            <comment id="63093" author="rovarga" created="Wed, 23 May 2018 18:26:18 +0000"  >&lt;p&gt;Based on the analysis done in &lt;a href=&quot;https://jira.opendaylight.org/browse/MDSAL-45&quot; title=&quot;InstanceIdentifier does not properly capture choice-case child relationship&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MDSAL-45&quot;&gt;&lt;del&gt;MDSAL-45&lt;/del&gt;&lt;/a&gt; and &lt;a href=&quot;https://jira.opendaylight.org/browse/MDSAL-342&quot; title=&quot;DataObjectModification not able find child via getModifiedChildContainer&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MDSAL-342&quot;&gt;&lt;del&gt;MDSAL-342&lt;/del&gt;&lt;/a&gt;, this issue should focus on addressability of choice/case statements &lt;b&gt;only&lt;/b&gt;. I.e. solving the problem of &apos;how can I read the entire choice, so that I can decide which case it actually is?&apos;. Note this has implications on DataTreeChangeListener: if InstanceIdentifier can address choices, we need to teach DataObjectModification how to represent a change inside a particular case and also the choice becoming a different case.&lt;/p&gt;</comment>
                            <comment id="64940" author="jiehan2017" created="Thu, 13 Sep 2018 02:47:11 +0000"  >&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/68099&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/68099&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10000">
                    <name>Blocks</name>
                                                                <inwardlinks description="is blocked by">
                                        <issuelink>
            <issuekey id="27059">MDSAL-237</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                                                <inwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="26867">MDSAL-45</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>1466</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=1466]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10206" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Issue Type</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10305"><![CDATA[Improvement]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10204" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>ODL SR Target Milestone</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10321"><![CDATA[Carbon]]></customfieldvalue>

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

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