Mishandling of NBI insert/move on system-ordered lists/leaf-lists

Hi,

Here`s an issue I encountered, about the “system ordered” list or leaf-list, happened when I try to do “insert"or"move” opreation on them, via the northbound interface.

The problems are:

  • has no auto completion for insert or move
  • CLI shows “Commit complete.” but target data is not changed and actually the change was made to another data node!
  • Notification reflects the “fake change” (as if the commit succeed, which is not)

for example,
The yang model file:

container test-container {
    leaf-list "i8ll" {
        type int8;
    }
	leaf-list "i8lluser" {
        ordered-by user;
        type int8;
    }
}

The CLI shows:

user1@CMYP-test(config)#
user1@CMYP-test(config)#test-container i8ll 10
user1@CMYP-test(config)#commit
Commit complete.
user1@CMYP-test(config)#insert test-container i8ll 11
user1@CMYP-test(config)#commit
Commit complete.
user1@CMYP-test(config)#show full-configuration test-container
test-container i8ll [ 10 ]
test-container i8lluser [ 11 ]
user1@CMYP-test(config)#

Notification:

<?xml version="1.0" encoding="UTF-8"?>
<notification xmlns="urn:ietf:params:xml:ns:netconf:notification:1.0">
  <eventTime>2021-03-29T06:05:16.368776+00:00</eventTime>
  <push-change-update xmlns="urn:rdns:com:notifications">
    <sequence-number>8</sequence-number>
    <changed-by>
      <username>user1</username>
      <session-id>138</session-id>
      <source-host>0.0.0.0</source-host>
    </changed-by>
    <change>
      <target xmlns:ecomplete="urn:rdns:com:complete">/ecomplete:test-container/ecomplete:i8lluser[.="11"]</target>
      <operation>create</operation>
    </change>
  </push-change-update>
</notification>

Change was made to i8lluser rather than i8ll

Tanks very much!
Best regards

If there is a problem here, it is that ConfD is trying to be a bit too clever. Note that commands like insert or move can be applied only on “ordered-by user” lists, which i8ll is not; so when you write

insert test-container i8ll 11

it would be an invalid command. But ConfD is “able” to complete the path so that it is a valid command, to

insert test-container i8lluser 11

I’m not sure if this kind of automatic completion can be turned off, but perhaps you may want to rename or add tailf:alt-name to one of the two leaf-lists, the common prefix might be inconvenient for CLI users anyway.