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)`
|
||||
* 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
|
||||
* 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
|
||||
* 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.
|
||||
|
|
|
|||
|
|
@ -979,14 +979,22 @@ from_client_get(clicon_handle h,
|
|||
}
|
||||
/* If not only-state, then read running config
|
||||
* 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
|
||||
*/
|
||||
#ifdef VALIDATE_STATE_XML
|
||||
if (xmldb_get0(h, "running", nsc, NULL, 1, &xret, NULL) < 0) {
|
||||
if (netconf_operation_failed(cbret, "application", "read registry")< 0)
|
||||
goto done;
|
||||
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,
|
||||
* get state data from plugins as defined by plugin_statedata(), if any
|
||||
|
|
|
|||
|
|
@ -66,9 +66,12 @@
|
|||
#undef XPATH_LIST_OPTIMIZE
|
||||
|
||||
/*! 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
|
||||
* 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.
|
||||
* 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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue