Removed and enabled code for compile options: RESTART_PLUGIN_RPC, XML_NEW_DIFFERENTIATE, OPTIMIZE_45_BIND and OPTIMIZE_45_SORT
This commit is contained in:
parent
a3b6ea9e10
commit
29235d5547
9 changed files with 27 additions and 112 deletions
34
CHANGELOG.md
34
CHANGELOG.md
|
|
@ -35,13 +35,13 @@ Expected: May 2020
|
|||
* ca_trans_commit_done: Called when all plugin commits have been done.
|
||||
* Note: If you have used "end" callback and usign transaction data, you should probably use this instead.
|
||||
|
||||
### API changes on existing protocol/config features (You may have have to change how you use Clixon)
|
||||
### API changes on existing protocol/config features (For users, you may have have to change how you use Clixon)
|
||||
|
||||
* Stricter validation detecting duplicate container or leaf in XML.
|
||||
* Eg `<x><a/><a/></x>` is invalid if `a` is a leaf or container.
|
||||
* New clixon-lib@2020-04-23.yang revision
|
||||
* Added: stats RPC for clixon XML and memory statistics.
|
||||
* Added: restart-plugin RPC for restarting individual plugins without restarting backend.
|
||||
* New RPC: `stats` for clixon XML and memory statistics.
|
||||
* New RPC: `restart-plugin` for restarting individual plugins without restarting backend.
|
||||
* New clixon-config@2020-04-23.yang revision
|
||||
* Removed xml-stats non-config data (replaced by rpc `stats` in clixon-lib.yang)
|
||||
* Added option `CLICON_YANG_UNKNOWN_ANYDATA` to treat unknown XML (wrt YANG) as anydata.
|
||||
|
|
@ -49,10 +49,13 @@ Expected: May 2020
|
|||
* Stricter incoming RPC sanity checking, error messages may have changed.
|
||||
* Changed output of `clixon_cli -G` option to show generated CLI spec original text instead of resulting parse-tree, which gives better detail from a debugging perspective.
|
||||
|
||||
### C-API changes on existing features (you may need to change your plugin C-code)
|
||||
### C-API changes on existing features (For developers: you may need to change your plugin C-code)
|
||||
|
||||
* Length of xml vector in many structs changed from `size_t` to `int`since it is a vector size, not byte size. This includes `transaction_data_t`
|
||||
* Length of xml vector in many structs changed from `size_t` to `int`since it is a vector size, not byte size.
|
||||
* Example: `transaction_data_t`
|
||||
* `xml_merge()` changed to use 3-value return: 1:OK, 0:Yang failed, -1: Error
|
||||
* Some function changed to use 3-value return: 1:OK, 0:Yang failed, -1: Error.
|
||||
* Example: `xml_merge()`
|
||||
* `clixon_netconf_error(category, xerr, msg, arg)` removed first argument -> `clixon_netconf_error(xerr, msg, arg)`
|
||||
* CLI
|
||||
* `clicon_parse()`: Changed signature due to new cligen error and result handling:
|
||||
|
|
@ -62,20 +65,23 @@ Expected: May 2020
|
|||
|
||||
* Added decriptive error message when plugins produce invalid state XML.
|
||||
* Example: `<error-tag>operation-failed</error-tag><error-info><bad-element>mystate</bad-element></error-info><error-message>No such yang module. Internal error, state callback returned invalid XML: example_backend</error-message>`
|
||||
* Such a message means there is something wrong in the internal plugins or elsewehere, ie it is not a proper end-user error.
|
||||
* Compile-time option: `USE_CLIGEN44` for running clixon-45 with cligen-44.
|
||||
* Temporary fix since cligen-45 have some non-backward compatible behaviour.
|
||||
* Optimizations
|
||||
* Reduced memory for attribute and body objects, see `XML_NEW_DIFFERENTIATE` compile-time option.
|
||||
* Optimized prefix checks at xml parse time: using many prefixes slowed down parsing considerably
|
||||
* Optimized cbuf handling in parsing and xml2cbuf functions.
|
||||
* Cycle optimizations
|
||||
* Optimized namespace prefix checks at xml parse time: using many prefixes slowed down parsing considerably
|
||||
* Optimized cbuf handling in parsing and xml2cbuf functions: use of new `cbuf_append()` function.
|
||||
* Optimized xml scanner to read strings rather than single chars
|
||||
* Optimized xml_merge for the case of disjunct trees.
|
||||
* Cleared startup-db cache after restart
|
||||
* Experimental optimzations of yang-bind and sort for large lists
|
||||
* Enabled by compile-time options: `OPTIMIZE_45_BIND` and `OPTIMIZE_45_SORT`
|
||||
* Identify early that trees are disjunct instead of recursively merge in `xml_merge`
|
||||
* Optimizations of `yang_bind` for large lists: use a "sibling/template" to use same binding as previous element.
|
||||
* Memory optimizations
|
||||
* Reduced memory for attribute and body objects, by allocating less memory in `xml_new()` than for elements, reducing XML storage with ca 25%
|
||||
* Cleared startup-db cache after restart, slashing datastore cache with (best-case) a third.
|
||||
* Removed nameserver binding cache for leaf/leaf-list objects.
|
||||
* Remove xml value cache after sorting (just use cligen value cache at sorting, remove after use)
|
||||
* Adapted to CLIgen 4.5 API changes, eg: `cliread()` and `cliread_parse()`
|
||||
* Renamed utility function `clixon_util_insert()` to `clixon_util_xml_mod()` and added merge functionality.
|
||||
* Sanity check of duplicates prefixes in Yang modules and submodules as defined in RFC 7950 Sec 7.1.4
|
||||
* Sanity check of duplicate prefixes in Yang modules and submodules as defined in RFC 7950 Sec 7.1.4
|
||||
|
||||
### Corrected Bugs
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue