Hi Team,
I am trying to set leaf interface-name to 123 setting target as running via NETCONF. It is able to write to CDB and returns OK.
But when i set the target to candidate. It throws error.
It fails only for the leaves that has validation of “derived-from-or-self”. In other cases it is success for candidate.
Kindly let know if we should do anything different via netconf in case of candidate during “derived-from-or-self” scenarios. Because i dont face any issue for leaves with no validation of “derived-from-or-self” via NETCONF
augment "/core-model:control-construct/core-model:logical-termination-point/core-model:layer-protocol" {
when "derived-from-or-self(./core-model:layer-protocol-name, 'air-interface:LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER')";
uses air-interface-lp-pac;
description
"none";
}
grouping air-interface-lp-pac {
container air-interface-pac {
leaf interface-name {
type string;
default "interface not yet defined.";
description
"none";
}
description
"none";
}
}
RPC request
<?xml version="1.0" encoding="utf-8"?>
<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"
xmlns:air-interface="urn:onf:yang:air-interface"
message-id="1">
<edit-config>
<target>
<candidate/>
</target>
<config>
<control-construct xmlns="urn:onf:yang:core-model">
<logical-termination-point>
<uuid>83</uuid>
<layer-protocol>
<local-id>01</local-id>
<air-interface-pac xmlns="urn:onf:yang:air-interface">
<interface-name>123</interface-name>
</air-interface-pac>
</layer-protocol>
</logical-termination-point>
</control-construct>
</config>
</edit-config>
</rpc>
RPC reply
<?xml version="1.0" encoding="utf-8"?>
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="89">
<rpc-error>
<error-type>application</error-type>
<error-tag>unknown-element</error-tag>
<error-severity>error</error-severity>
<error-path xmlns:air-interface="urn:onf:yang:air-interface"
xmlns:core-model="urn:onf:yang:core-model">
/rpc/edit-config/config/core-model:control-construct/core-model:logical-termination-point[core-model:uuid='83']/core-model:layer-protocol[core-model:local-id='01']/air-interface:air-interface-pac
</error-path>
<error-message xml:lang="en">/control-construct/logical-termination-point[uuid='83']/layer-protocol[local-id='01']/air-interface:air-interface-pac: the 'when' expression "derived-from-or-self(./core-model:layer-protocol-name, 'air-interface:LAYER_PROTOCOL_NAME_TYPE_AIR_LAYER')" failed</error-message>
<error-info>
<bad-element>air-interface-pac</bad-element>
</error-info>
</rpc-error>
</rpc-reply>
In confd.conf, candidate is enabled.
With the same request , when target is running, it is success.