ConfD User Community

Does get_object callpoint do not suport augment?


#1

Confd version:6.7.
===igmp.yang
augment /exa:config/exa:system/exa:vlan { / vlan is defined in the vlan.yang /
when “((exa:mode = ‘N2ONE’) or (exa:mode = ‘ONE2ONE’)) and (count(/exa:config/exa:system/exa:router/pim:pim) = 0)” {
tailf:dependency “exa:mode”;
tailf:dependency “/exa:config/exa:system/exa:router/pim:pim”;
}
leaf igmp-profile {
type leafref {
path “/exa:config/exa:profile/igmp-profile/name”;
}
}

Confd developer log:
18-Mar-2019::02:07:14.105 E7-2 confd[6227]: devel-c get_object request for callpoint config_cp path /exa:config/system/vlan{124}
18-Mar-2019::02:07:14.109 E7-2 confd[6227]: devel-c get_object succeeded for callpoint config_cp path /exa:config/system/vlan{124}
18-Mar-2019::02:07:14.110 E7-2 confd[6227]: devel-c bad get_object() return value: /exa:config/system/vlan{124}: igmp-profile is not a child element

The code is like below:
switch (sbt_db_get_node_type(child_hdl)) {
case snt_leaf:
s_value = sbt_db_print_value(child_hdl);
CONFD_SET_TAG_STR(&confd_elem[return_count], confd_str2hash(sbt_db_get_name(child_hdl)), s_value);

}
confd_data_reply_tag_value_array(p_confd_trans_ctx, confd_elem, return_count);

==
However, if the leaf node is, instead of the augment, added directly to
list , confd doesn’t deliver the error.

Much appreciated.


#2

This looks like an issue with namespace boundary, you may need to set the ns field for the tagged value using CONFD_SET_TAG_NS.


#3

Thanks you @mvf . After using this function CONFD_SET_TAG_NS, the namespace can be returned correctly, Much appreciated.
But after the get-object callpoint function worked, I encounter another issue.
Firstly, I didn’t return nodes with default values, so the netconf requests’ elapsed time were improved about 40%. But some netconf requests have the option “with-defaults”, and the confd doesn’t fill out the default value of the nodes according to yang file, which were omitted by our data provider since their values are default values… @mvf, Is this confd expected behavior? So I had to change the code to return all the nodes with the non-default values or default values. After the code changed, there was no 40% improvement any more. Some cases, the elapsed time was even as long as what get-elem callpoint did… @mvf , can you give me some guidance? Thanks a lot.


#4

A data provider should return a C_DEFAULT value (e.g. via the macro CONFD_SET_DEFAULT) for a leaf node with the default value - have a look at the confd_lib_dp manpage.

As for performance degradation - were you able to check which part performs worse, if it is the data provider or confd processing and rendering the NETCONF messages? If that’s the latter, there is some chance the performance improves again (at least in the with-defaults="trim" mode, if supported by your setting).


#5

Thanks you @mvf. I’ll change my code with “C_DEFAULT” and update the performance result. And There is an issue to retrieve all schema file in external data provider, so with-defaults = “report-all-tagged” have to be used in the netconf request currently.
Thanks again.