Merge branch 'develop' for 3.4.0

This commit is contained in:
Olof hagsand 2017-12-31 18:30:36 +01:00
commit d3460bfc26
74 changed files with 4391 additions and 1538 deletions

View file

@ -1,11 +1,56 @@
# Clixon Changelog
## 3.4.0 (Upcoming)
### Known issues
* Please use text datastore, key-value datastore no up-to-date
### Major changes:
* Optimized search performance for large lists by sorting and binary search.
* New CLICON_XML_SORT configuration option. Default is true. Disable by setting to false.
* Added yang ordered-by user. The default (ordered-by system) will now sort lists and leaf-lists alphabetically to increase search performance. Note that this may change outputs.
* If you need legacy order, either set CLICON_XML_SORT to false, or set that list to "ordered-by user".
* This replaces XML hash experimental code, ie xml_child_hash variables and all xml_hash_ functions have been removed.
* Implementation detail: Cached keys are stored in in yang Y_LIST nodes as cligen vector, see ys_populate_list()
* Datastore cache introduced: cache XML tree in memory for faster get access.
* Reads are cached. Writes are written to disk.
* New CLICON_XMLDB_CACHE configuration option. Default is true. To disable set to false.
* With cache, you cannot have multiple backends (with single datastore). You need to have a single backend.
* Thanks netgate for proposing this.
* Changed C functional API for XML creation and parsing for better coherency and closer YANG/XML integration. This may require your action.
* New yang spec parameter has been added to most functions (default NULL) and functions have been removed and renamed. You may need to change the XML calls as follows.
* xml_new(name, parent) --> xml_new(name, xn_parent, yspec)
* xml_new_spec(name, parent, spec) --> xml_new(name, parent, spec)
* clicon_xml_parse(&xt, format, ...) --> xml_parse_va(&xt, yspec, format, ...)
* clicon_xml_parse_file(fd, &xt, endtag) --> xml_parse_file(fd, endtag, yspec, &xt)
* clicon_xml_parse_string(&str, &xt) --> xml_parse_string(str, yspec, &xt)
* clicon_xml_parse_str(str, &xt) --> xml_parse_string(str, yspec, &xt)
* xml_parse(str, xt) --> xml_parse_string(str, yspec, &xt)
* Backward compatibility is enabled by (will be removed in 3.5.0:
```
configure --with-xml-compat
```
### Minor changes:
* Better semantic versioning, eg MAJOR/MINOR/PATCH, where increment in PATCH does not change API.
* Added CLICON_XMLDB_PRETTY option. If set to false, XML database files will be more compact.
* Added CLICON_XMLDB_FORMAT option. Default is "xml". If set to "json", XML database files uses JSON format.
* Clixon_backend now returns -1/255 on error instead of 0. Useful for systemd restarts, for example.
* Experimental: netconf yang rpc. That is, using ietf-netconf@2011-06-01.yang
formal specification instead of hardcoded C-code.
### Corrected Bugs
* Fixed bug that deletes running on startup if backup started with -m running.
When clixon starts again, running is lost.
The error was that the running (or startup) configuration may fail when
clixon backend starts.
The fix now makes a copy of running and copies it back on failure
clixon backend starts.
The fix now makes a copy of running and copies it back on failure.
* datastore/keyvalue/Makefile was left behind on make distclean. Fixed by conditional configure. Thanks renato@netgate.com.
* Escape " in JSON names and strings and values
## 3.3.3 (25 November 2017)
Thanks to Matthew Smith, Joe Loeliger at Netgate; Fredrik Pettai at