* Yang Support of submodule, include and belongs-to.

* Improved unknown handling
* Configure option `CLICON_YANG_DIR` is changed from a single directory to a path of directories
    * Note CLIXON_DATADIR (=/usr/local/share/clixon) need to be in the list
This commit is contained in:
Olof hagsand 2018-12-01 18:17:42 +01:00
parent 56da97cb5b
commit 39a5086218
47 changed files with 977 additions and 469 deletions

View file

@ -447,11 +447,10 @@ main(int argc,
/* Load main application yang specification either module or specific file
* If -y <file> is given, it overrides main module */
if (yang_filename){
if (yang_spec_parse_file(h, yang_filename, clicon_yang_dir(h), yspec, NULL) < 0)
if (yang_spec_parse_file(h, yang_filename, yspec, NULL) < 0)
goto done;
}
else if (yang_spec_parse_module(h, clicon_yang_module_main(h),
clicon_yang_dir(h),
clicon_yang_module_revision(h),
yspec, NULL) < 0)
goto done;

View file

@ -32,7 +32,13 @@
***** END LICENSE BLOCK *****
*
* Code for handling netconf rpc messages according to RFC 4741 and RFC 5277
* Code for handling netconf rpc messages according to RFC 4741,5277,6241
* All NETCONF protocol elements are defined in the following namespace:
* urn:ietf:params:xml:ns:netconf:base:1.0
* YANG defines an XML namespace for NETCONF <edit-config> operations,
* <error-info> content, and the <action> element. The name of this
* namespace is "urn:ietf:params:xml:ns:yang:1".
*
*****************************************************************************/
#ifdef HAVE_CONFIG_H
#include "clixon_config.h" /* generated by config & autoconf */
@ -894,7 +900,7 @@ netconf_application_rpc(clicon_handle h,
}
cprintf(cb, "/%s:%s", xml_namespace(xn), xml_name(xn));
/* Find yang rpc statement, return yang rpc statement if found */
if (yang_abs_schema_nodeid(yspec, cbuf_get(cb), Y_RPC, &yrpc) < 0)
if (yang_abs_schema_nodeid(yspec, xml_spec(xn), cbuf_get(cb), Y_RPC, &yrpc) < 0)
goto done;
/* Check if found */
if (yrpc != NULL){