Commit graph

1217 commits

Author SHA1 Message Date
Olof hagsand
fdfeec96ec Recursive (erroneous) Yang specs with recursive grouping/use statement is now fixed: instead of stack overflow, you get an error message and an exit 2020-03-05 20:13:24 +01:00
Olof hagsand
3855508622 stricter xml populate made some cornercase errors appear 2020-03-05 11:56:13 +01:00
Olof hagsand
bab3b5ad56 * Added yang population of data in clicon_rpc_get[_config] 2020-03-04 17:31:52 +01:00
Olof hagsand
2de8497972 leafref state test error 2020-03-04 11:53:28 +01:00
Olof hagsand
cdcffa768f * Replaced compile option VALIDATE_STATE_XML with runtime option CLICON_VALIDATE_STATE_XML.
* XML childvec Compile error
2020-03-04 11:46:30 +01:00
Olof hagsand
0f54899ae4 * Added option: CLICON_CLI_BUF_START and CLICON_CLI_BUF_THRESHOLD so you can change the start and
threshold of quadratic and linear growth of CLIgen buffers (cbuf:s)
* Memory footprint
  * Do not autopopulate namespace cache, instead use on-demand, see `xml2ns()`.
  * Set CBUF start level to 256 (`CLICON_CLI_BUF_START` option)
  * Reduced xml child vector default size from 4 to 1 with quadratic growoth to 64K then linear
2020-03-04 11:27:43 +01:00
Olof hagsand
250ead517c CHanged back xvec API to use cxobj ** instead if clixon_xvec since it may be easier for the an end-user. 2020-03-02 10:59:46 +01:00
Olof hagsand
75b20936d3 Moved code from clixon_xml.c to namespace and io functions to reduce size of core xml file 2020-03-02 09:43:57 +01:00
Olof hagsand
2d521d52c8 * Added clixon-stats in clixon-config.yang for clixon XML and memory statistics. 2020-03-01 10:59:24 +01:00
Olof hagsand
f1ceec689a Refactoring search code using clixon_xvec data structures 2020-02-28 18:08:10 +01:00
Olof hagsand
bac2089a04 unsorted state data test change 2020-02-28 14:52:51 +01:00
Olof hagsand
760cdda49a Fixed: Search function checked only own not for config false statement, should have checked all ancestors. 2020-02-28 14:05:56 +01:00
Olof hagsand
451adfaf1f * Explicit search indexes
* Added object-based `clixon_xvec` as a new programming construct for contiguous XML object vectors.
2020-02-28 12:16:16 +01:00
Olof hagsand
94c7be42b6 rpc-error error tests 2020-02-27 21:16:12 +01:00
Olof hagsand
86e251f30b * Fixed: Some restconf errors were wrongly formatted such as: {"ietf-restconf:errors":{"error":{"rpc-error": . There should be no "rpc-error" level. 2020-02-26 21:33:31 +01:00
Olof hagsand
a71c256898 * New clixon-config@2020-02-22.yang revision
* C-code changes:
  - Replaced stream uri:s w constants
  - Replaced large debug print code with single clicon_log_xml
  - Restconf put and post handling refactored using new parse API
2020-02-24 15:25:06 +01:00
Olof hagsand
de3853a126 readnme buttons 2020-02-23 17:17:28 +01:00
Olof hagsand
e16ef2daff Logo 2020-02-23 17:12:59 +01:00
Olof hagsand
83b22e7c2b 2020 copyright statement 2020-02-22 15:54:15 +01:00
Olof hagsand
3c6a521a80 Merge branch 'master' of https://github.com/clicon/clixon 2020-02-22 11:15:55 +01:00
Olof hagsand
3b26b22391 internal type/var/prefix name changes for yacc parsing 2020-02-22 11:15:51 +01:00
Olof Hagsand
644cf96f44 utc time in stream test 2020-02-22 00:06:40 -10:00
Olof hagsand
e1bccfa2a7 Sorting error cornercase with invalid two choices, and also sort attributes first. 2020-02-21 16:40:35 +01:00
Olof hagsand
b31297cb21 memory leaks 2020-02-21 10:23:42 +01:00
Olof hagsand
51a28f9bbf changelog toc. disable searchindex test 2020-02-20 17:37:28 +01:00
Olof hagsand
2eae2b6000 extension search index 2020-02-20 15:08:25 +01:00
Olof hagsand
c43ee9e1ef latest commit, table-of-content, etc 2020-02-20 14:18:15 +01:00
Olof hagsand
5918efa7c1 Clixon 4.3.3 2020-02-20 14:06:10 +01:00
Olof hagsand
9fa5e216c4 * New "general-purpose" datastore upgrade callback added which i called once on startup, intended for lo
w-level general upgrades and as a complement to module-specific upgrade.
  * Called on startup after initial XML parsing, but before module-specific upgrades
  * Enabled by definign the `.ca_datastore_upgrade`
  * [General-purpose upgrade documentation](https://clixon-docs.readthedocs.io/en/latest/backend.html#ge
neral-purpose)
* JSON parse error messages change from ` on line x: syntax error,..` to `json_parse: line x: syntax err
or`
* Unknown-element error message is more descriptive, eg from `namespace is: urn:example:clixon` to: `Fai
led to find YANG spec of XML node: x with parent: xp in namespace urn:example:clixon`.
* C-API parse and validation API more capable
  * `xml_spec_populate` family of functions extended with three-value return values
    * -1: error, 0: parse OK, 1: parse and YANG binding OK.
  * `xml_parse` and `json_parse` API changes
    * Three value returns: -1: error, 0: parse OK, 1: parse and YANG binding OK.
    * Extended `xml_parse_file2` and `xml_parse_string2` extended API functions with all options available.
      * New concept called `yang_bind` that defines how XML symbols are bound to YANG after parsing
    * Existing API same except `xml_parse_file` `endtag` argument moved to `xml_parse_file2`
* C-API: Added instrumentation: `xml_size` and `xml_stats_get`.
* Fixed: Enabling modstate (CLICON_XMLDB_MODSTATE), changing a revision on a yang, and restarting made the backend daemon exit at start (thanks Matt)
  * Also: ensure to load `ietf-yang-library.yang ` if CLICON_XMLDB_MODSTATE is set
2020-02-20 14:00:01 +01:00
Olof hagsand
4338b68167 Due to increased memory usage in internal XML trees, the [use cbuf for xml value code](9575d10887) is reversed. 2020-02-19 16:48:18 +01:00
Olof hagsand
d665992f7c Uniform time cmd in performance tests 2020-02-16 10:23:03 +01:00
Olof hagsand
d78a6401c3 4.3.2 CHANGELOG updated
VALIDATE_STATE_XML disabled
2020-02-15 14:45:01 +01:00
Olof hagsand
7fd1751302 Merge branch 'datastore-repair' into release-4.3 2020-02-15 14:31:38 +01:00
Olof hagsand
5dd3243f66 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`.
2020-02-14 15:16:17 +01:00
Olof hagsand
fa257ebb88 datastore upgrade bugs 2020-02-12 17:37:23 +01:00
Olof hagsand
cdd22bc33d example typo 2020-02-12 17:01:25 +01:00
Olof hagsand
b6812793f9 General-purpose upgrade 2020-02-12 16:40:52 +01:00
Olof hagsand
3748eefb8e datastore repair test branch 2020-02-11 20:17:15 +01:00
Olof hagsand
76a4d31c4b Fixed: Enabling modstate (CLICON_XMLDB_MODSTATE), changing a revision on a yang, and restarting made the backend daemon exit at start (thanks Matt).
* Also: ensure to load `ietf-yang-library.yang ` if CLICON_XMLDB_MODSTATE is set
2020-02-10 20:23:48 +01:00
Olof hagsand
5831c053fa clixon_util_path did not sort XML properly 2020-02-08 17:00:47 +01:00
Olof hagsand
a674af6f2c Cleaning up code for xml insignificant whitespace removal
Experimenal explicit index search code
2020-02-07 14:59:57 +01:00
Olof hagsand
61e03690ca 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.
2020-02-06 18:02:14 +01:00
Olof hagsand
a2b1674708 XML namespace merge bug fixed. Example: two xmlns attributes could both survive a merge whereas one should replace the other. 2020-02-05 19:49:23 +01:00
Olof hagsand
3d5c2cc678 * Session-id CLI functionality delayed: "lazy evaluation"
* 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
2020-02-05 16:09:26 +01:00
Olof hagsand
c7d6f69a85 * Session-id CLI functionality delayed: "lazy evaluation"
* 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
2020-02-05 15:37:25 +01:00
Olof hagsand
39e7f387f8 XML namespace merge bug fixed. Example: two xmlns attributes could both survive a merge whereas one should replace the other. 2020-02-05 12:08:20 +01:00
Olof hagsand
e68753655b Obsoleted and removed XMLDB format "tree". This function did not work. Only xml and json allowed. 2020-02-02 19:15:39 +01:00
Olof hagsand
51e17671a8 cicd tests 2020-02-02 18:46:18 +01:00
Olof hagsand
7350ec1624 warnings in travis 2020-02-02 17:07:46 +01:00
Olof hagsand
7bcd6aed08 added instance_id parse files 2020-02-02 16:05:10 +01:00