Known Issues:
* If you retrieve state _and_ config data using RESTCONF or NETCONF `get`, a severe performance penalty occurs if you have large lists (eg ACLs). Workaround: disable `VALIDATE_STATE_XML` in `include/clixon_custom.h`.
This commit is contained in:
parent
76a4d31c4b
commit
5dd3243f66
3 changed files with 17 additions and 3 deletions
|
|
@ -7,8 +7,11 @@
|
||||||
* C-api: Changed `clicon_session_id_get(clicon_handle h, uint32_t *id)`
|
* C-api: Changed `clicon_session_id_get(clicon_handle h, uint32_t *id)`
|
||||||
* From a cli perspective this is a revert to 4.1 behaviour, where the cli does not immediately exit on start if the backend is not running, but with the new session-id function
|
* From a cli perspective this is a revert to 4.1 behaviour, where the cli does not immediately exit on start if the backend is not running, but with the new session-id function
|
||||||
|
|
||||||
|
### Known Issues
|
||||||
|
* If you retrieve state _and_ config data using RESTCONF or NETCONF `get`, a severe performance penalty occurs if you have large lists (eg ACLs). Workaround: disable `VALIDATE_STATE_XML` in `include/clixon_custom.h`.
|
||||||
|
|
||||||
### Corrected Bugs
|
### Corrected Bugs
|
||||||
* Fixed: Enabling modstate (CLICON_XMLDB_MODSTATE), changing a revision on a yang, and restarting made the backend daemon exit at start (thanks Matt).
|
* Fixed: If you enabled modstate (CLICON_XMLDB_MODSTATE), changed a revision in a yang spec, and restarted the backend daemon, it exit at start (thanks Matt).
|
||||||
* Also: ensure to load `ietf-yang-library.yang ` if CLICON_XMLDB_MODSTATE is set
|
* Also: ensure to load `ietf-yang-library.yang ` if CLICON_XMLDB_MODSTATE is set
|
||||||
* Fixed: Pretty-printed XML using prefixes not parsed correctly.
|
* Fixed: Pretty-printed XML using prefixes not parsed correctly.
|
||||||
* eg `<a:x> <y/></a:x>` could lead to errors, wheras (`<x> <y/></x>`) works fine.
|
* eg `<a:x> <y/></a:x>` could lead to errors, wheras (`<x> <y/></x>`) works fine.
|
||||||
|
|
|
||||||
|
|
@ -979,14 +979,22 @@ from_client_get(clicon_handle h,
|
||||||
}
|
}
|
||||||
/* If not only-state, then read running config
|
/* If not only-state, then read running config
|
||||||
* Note xret can be pruned by nacm below and change name and
|
* Note xret can be pruned by nacm below and change name and
|
||||||
* metrged with state data, so zero-copy cant be used
|
* merged with state data, so zero-copy cant be used
|
||||||
* Also, must use external namespace context here due to <filter stmt
|
* Also, must use external namespace context here due to <filter stmt
|
||||||
*/
|
*/
|
||||||
|
#ifdef VALIDATE_STATE_XML
|
||||||
if (xmldb_get0(h, "running", nsc, NULL, 1, &xret, NULL) < 0) {
|
if (xmldb_get0(h, "running", nsc, NULL, 1, &xret, NULL) < 0) {
|
||||||
if (netconf_operation_failed(cbret, "application", "read registry")< 0)
|
if (netconf_operation_failed(cbret, "application", "read registry")< 0)
|
||||||
goto done;
|
goto done;
|
||||||
goto ok;
|
goto ok;
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
if (xmldb_get0(h, "running", nsc, xpath, 1, &xret, NULL) < 0) {
|
||||||
|
if (netconf_operation_failed(cbret, "application", "read registry")< 0)
|
||||||
|
goto done;
|
||||||
|
goto ok;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* If not only config,
|
/* If not only config,
|
||||||
* get state data from plugins as defined by plugin_statedata(), if any
|
* get state data from plugins as defined by plugin_statedata(), if any
|
||||||
|
|
|
||||||
|
|
@ -66,9 +66,12 @@
|
||||||
#undef XPATH_LIST_OPTIMIZE
|
#undef XPATH_LIST_OPTIMIZE
|
||||||
|
|
||||||
/*! Validate user state callback content
|
/*! Validate user state callback content
|
||||||
* Use may register state callbacks using ca_statedata callback
|
* Users may register state callbacks using ca_statedata callback
|
||||||
* When this option is set, the XML returned from the callback is validated after merging with the running
|
* When this option is set, the XML returned from the callback is validated after merging with the running
|
||||||
* db. If it fails, an internal error is returned to the originating user.
|
* db. If it fails, an internal error is returned to the originating user.
|
||||||
* If the option is not set, the XML returned by the user is not validated.
|
* If the option is not set, the XML returned by the user is not validated.
|
||||||
|
* Note that enabling this option causes a large performance overhead for large lists, therefore it
|
||||||
|
* is recommended to enable it during development and debugging but disable it in production, until
|
||||||
|
* this has been resolved.
|
||||||
*/
|
*/
|
||||||
#define VALIDATE_STATE_XML
|
#define VALIDATE_STATE_XML
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue