I am attempting to implement an RPC in a supplied yang file. Whenever I try to register for the rpc, I am getting the “registered for non-existing actionpoint” error. I’ve tried to distill the issue down to this:
So, you are setting a struct element called actionpoint to the name of the RPC - no warning bells ringing?
You need to do the exact same thing for an RPC as for an action (or tailf:action) - add or annotate a tailf:actionpoint and use that in your callback registration. It’s reasonable at least from an implementation point of view to think of an RPC as “just a special type of action”.
I probably did not describe the issue, which could just be my own misunderstanding, very well in the post title. After writing a more simplified example, my question becomes “Is it possible to register for a rpc with out adding the tailf:actionpoint annotation to my model?”
If there is a different function to call to register a callback for an rpc rather than for an actionpoint, that could be the issue that I don’t know that.
I.e. I think it should be pretty clear that the answer to your new question is “no”.
This is ConfD’s “netconf-client-friendly” way of saying “the developer hasn’t added an actionpoint for this RPC yet”.
What is your actual problem, i.e. why don’t you want to add a tailf:actionpoint even though you have verified that this is what works? I assume you are aware that you don’t need to modify the actual YANG module for this, but can use an annotation module with tailf:annotate? Ah, while I was writing this, your next message arrived:
And the answer to that is thus "No, you can use tailf:annotate in an annotation module that you include in the compilation via the -a / --annotate option to confdc. There are some illustrations of this in the $CONFD_DIR/src/confd/yang directory in the release (check the Makefile there), as well as in some of the examples (look for files matching *-ann.yang - that’s just a convention, but pretty handy).