I've upgraded from ConfD 6.4 to ConfD 6.6 and I'm trying to adapt my program to use the new API for leaf-lists. Everything went smoothly except for the two problems below:
1 - When using
cdb_trigger_subscriptions(), libconfd processes the received configuration changes using the old API for leaf-lists. In other words, the
cdb_diff_iterate() iterator is called with the operation parameter set to
newv->type set to
C_LIST. Wouldn't it be possible to use the new leaf-list API to process changes triggered by
cdb_trigger_subscriptions() in addition to run-time configuration changes?
2 - The man page of the
confd_xpath_pp_kpath() function says the following:
Similar to confd_pp_kpath() except that the path is formatted as an XPath path, i.e. "/servers:servers/server[name="www"]/ip" (...)
The problem is that I'm getting XPaths like this in my program:
I'm not entirely sure, but I believe this notation is not a valid XPath expression (it's not understood by the libyang library for instance). What I would expect is to have the leaf-list values formatted like this:
/frr-ripd:ripd/instance/static-route[.="10.0.2.0/24"]. Does that make any sense? I've workarounded this problem using some obscure string manipulation in my program, but it would be nice if can remove this workaround somehow.
Any help would be appreciated.