Olof hagsand
af720e8f28
Merge branch 'master' of https://github.com/clicon/clixon
2019-06-18 14:50:30 +02:00
Olof hagsand
17e3e74ad5
All hash_ functions have been prefixed with clicon_ to avoid name collision with other packages (frr)
2019-06-18 14:49:18 +02:00
Olof hagsand
3bad8bc874
* startup_extraxml triggers unnecessary validation
...
* Renamed startup_db_reset -> xmldb_db_reset (its a general function)
* In startup_extraxml(), check if reset callbacks or extraxml file actually makes and changes to the tmp db.
2019-06-14 22:01:30 +02:00
Olof hagsand
daa01b3a5e
Print CLICON_YANG_DIR and CLICON_FEATURE lists on startup with debug flag
2019-06-13 10:36:37 +02:00
Olof hagsand
98cc62eace
Fixed a problem with some netconf error messages caused restconf daemon to exit due to no XML encoding
2019-06-12 18:15:44 +02:00
Olof hagsand
de15b2bf80
* RESTCONF strict namespace validation of data in POST and PUT.
...
* Accepted:
```
curl -X PUT http://localhost/restconf/data/mod:a -d {"mod:a":"x"}
```
* Not accepted (must prefix "a" with module):
```
curl -X PUT http://localhost/restconf/data/mod:a -d {"a":"x"}
```
* Undefine `RESTCONF_NS_DATA_CHECK` in include/clixon_custom.h to disable strict check.
2019-06-10 16:15:02 +02:00
Olof hagsand
fc78824110
Many validation functions have changed error parameter from cbuf to xml tree.
2019-06-10 12:49:40 +02:00
Olof hagsand
519fac186c
Extended util/clixon_util_xml with yang and validate functionality so it can be used as a stand-alone utility for validating XML/JSON files
2019-06-07 10:16:03 +02:00
Olof hagsand
88b0db3e95
* Replaced CLIXON_DATADIR with two configurable options defining where Clixon installs Yang files.
...
* use `--with-yang-installdir=DIR` to install Clixon yang files in DIR
* use `--with-std-yang-installdir=DIR` to install standard yang files that Clixon may use in DIR
* Default is (as before) `/usr/local/share/clixon`
2019-06-05 17:46:30 +02:00
Olof hagsand
d3c392b69d
* New clixon-config@2019-06-05.yang revision
...
* Added: `CLICON_YANG_REGEXP, CLICON_CLI_TAB_MODE, CLICON_CLI_HIST_FILE, CLICON_CLI_HIST_SIZE, CLICON_XML_CHANGELOG, CLICON_XML_CHANGELOG_FILE`.
* Renamed: `CLICON_XMLDB_CACHE` to `CLICON_DATASTORE_CACHE` and type changed.
* Deleted: `CLICON_XMLDB_PLUGIN, CLICON_USE_STARTUP_CONFIG`;
* New clixon-lib@2019-06-05.yang revision
* Added: ping rpc added (for liveness)
* Check cligen tab mode, dont start if CLICON_CLI_TAB_MODE is undefined
2019-06-05 10:58:02 +02:00
Olof hagsand
dc45600074
Yang 'refine' feature supported, According to RFC 7950 7.13.2
2019-06-05 10:23:49 +02:00
Olof hagsand
3dba0b5370
Restore xmldb_get() to original (but removed one parameter
...
Moved all zero-copy xmldb_get functions to xmldb_get0.
Clarified CHANGELOG for xmldb_get changes
2019-06-04 11:14:03 +02:00
Olof hagsand
55f9b7cab0
Added CLIgen tab-modes in config option CLICON_CLI_TAB_MODE, which means you can control the behaviour of <tab> in the CLI.
2019-05-29 20:11:31 +02:00
Olof hagsand
5706703ab4
Added support for inverted regexps
2019-05-29 14:39:36 +02:00
Olof hagsand
2fe185d683
* Support for multiple patterns as described in RFC7950 Section 9.4.7
...
* Added regex cache to type resolution
* Added compiled regexp parameter as part of internal yang type resolution functions
* All internal `ys_populate_*()` functions (except ys_populate()) have switched parameters: `clicon_handle, yang_stmt *)`
2019-05-29 11:39:09 +02:00
Olof hagsand
5b39b63698
Added --with-libxml2 to configure
2019-05-24 10:04:29 +02:00
Olof hagsand
a804e05375
* Added clicon_handle as parameter to all validate functions
...
* Added libxml2 XSD regexp mode as alternative to posix translation
* Added `CLICON_YANG_REGEXP` option with possible values libxml2 and posix
2019-05-23 22:48:33 +02:00
Olof hagsand
f7771d86c2
* Better compliance with XSD regexps (when transforming to Posix regexps)
...
* Added `\p{L}` and `\p{N}`
* Added escaping of `$`
* Added regexp [test/test_pattern.sh]
2019-05-22 20:21:48 +02:00
Olof hagsand
7e109d1d4b
Startup transactions did not mark added tree with XML_FLAG_ADD as it should
2019-05-21 10:55:16 +02:00
Olof hagsand
bc54f2d04c
* Regexp improvements
...
* Added check for libxml in configure';
* Added clixon_util_regexp utility function
* Yang state get improvements
* Integrated state and config into same tree on retrieval, not separate trees
* Added cli functions `cli_show_config_state()` and `cli_show_auto_state()` for showing combined config and state info.
* Added integrated state in the main example: `interface/oper-state`.
* Added performance tests for getting state, see [test/test_perf_state.sh].
2019-05-20 16:03:29 +02:00
Olof hagsand
c17784cfe9
Removed O(n^2) in cli expand/completion code
2019-05-16 20:08:25 +02:00
Olof hagsand
712d8a6ff1
Restconf PUT different keys detected (thanks @dcornejo) and fixed
2019-05-15 17:38:52 +02:00
Olof hagsand
b4f860b5ef
Merge branch 'master' of https://github.com/clicon/clixon
2019-05-15 11:16:43 +02:00
Olof hagsand
6f294fe67a
Yang Enumeration including space did not generate working CLIgen code, see [Choice with space is not working in CLIgen code]( https://github.com/olofhagsand/cligen/issues/24 )
2019-05-15 11:12:23 +02:00
Olof hagsand
0b0fef12cc
Merge branch 'master' of https://github.com/clicon/clixon
2019-05-14 14:11:43 +02:00
Olof hagsand
d775eb5374
* Improved submodule implementation, as part of [Yang submodule import prefix restrictions #60 ]( https://github.com/clicon/clixon/issues/60 ).
2019-05-14 14:09:02 +02:00
Olof hagsand
b103599a1a
* Clixon transaction mechanism has changed which may affect your backend plugin callbacks:
...
* Validate-only transactions are terminated by an `end` or `abort` callback.
* If a commit user callback fails, a new `revert` callback will be made to plugins that have made a succesful commit.
2019-05-10 14:45:23 +02:00
Olof hagsand
99b7a1fe5b
Clixon config option CLICON_XMLDB_CACHE renamed to CLICON_DATASTORE_CACHE and changed type from boolean to datastore_cache
2019-05-09 14:25:16 +02:00
Olof hagsand
70221742f7
Merge branch 'master' of https://github.com/clicon/clixon
2019-05-08 13:05:51 +02:00
Olof hagsand
06e6ef80d1
Non-key list now not accepted in edit-config (before only on validation)
2019-05-08 12:51:10 +02:00
Olof hagsand
1cfb190ea9
* Changed return values in internal functions: netconf_trymerge, startup_module_state, yang_modules_state_get
2019-05-07 13:26:34 +02:00
Olof hagsand
c529847790
* Yang "min-element" and "max-element" feature supported
...
* New Clixon Yang RPC: ping. To check if backup is running.
* Fixed support for multiple datanodes in a choice/case statement.
2019-05-07 11:47:30 +02:00
Olof hagsand
2fc37d2470
Yang "unique" feature supported according to RFC 7950 7.8.3
2019-05-03 14:03:10 +02:00
Olof hagsand
a5e955c95f
Fixed an ordering problem showing up in validate/commit callbacks. If two new items following each order (yang-wise), only the first showed up in the new-list. Thanks achernavin!
2019-04-30 15:46:40 +02:00
Olof hagsand
220a872188
Fixed a problem caused by recent sorting patches that made "ordered-by user" lists fail in some cases, causing multiple list entries with same keys. NACM being one example. Thanks vratnikov!
2019-04-29 16:31:38 +02:00
Olof hagsand
4e23864acd
Merge branch 'master' of https://github.com/clicon/clixon
2019-04-26 13:41:14 +02:00
Olof hagsand
50ca7b7845
New XMLDB_FORMAT added: tree. An experimental record-based tree database for direct access of records.
2019-04-26 13:38:55 +02:00
Olof hagsand
6bf2a74e24
* Restconf with startup feature will now copy all edit changes to startup db (as it should according to RFC 8040)
...
* See [Restconf does not handle startup datastore according to the RFC](https://github.com/clicon/clixon/issues/74 )
* Netconf Startup feature is no longer hardcoded, you need to explicitly enable it (See RFC 6241, Section 8.7)
* Enable in config file with: `<CLICON_FEATURE>ietf-netconf:startup</CLICON_FEATURE>`, or use `*:*`
2019-04-26 12:12:55 +02:00
Olof hagsand
16de5f47ba
Merge branch 'master' of https://github.com/clicon/clixon
2019-04-24 15:35:57 +02:00
Olof hagsand
65c809b1c3
Removed external direct access to the yang_stmt struct.
2019-04-24 15:13:19 +02:00
Olof hagsand
7847e74c5e
yang_cvec_set(y, cvv) added
2019-04-24 09:56:07 +02:00
Olof hagsand
6a0628141a
More performance tweaks
2019-04-21 17:29:11 +02:00
Olof hagsand
b714eff077
Failure in startup with -m startup or running left running_db cleared.
2019-04-18 12:20:31 +02:00
Olof hagsand
c3d9b392dd
Scaling large lists report
2019-04-17 15:50:38 +02:00
Olof hagsand
14d319dd9b
* A new "hello world" example is added
...
* The directory `docker/system` has been moved to `docker/main`
2019-04-17 11:26:05 +02:00
Olof hagsand
71da2ac6cb
Merge branch 'master' of https://github.com/clicon/clixon
2019-04-14 14:43:20 +02:00
Olof hagsand
c79baf1b1f
* Optimized validation of large lists
...
* New xmldb_get1() returning actual cache - not a copy. This has lead to some householding instead of just deleting the copy
* xml_diff rewritten to work linearly instead of O(2)
* New xml_insert function using tree search. The new code uses this in insertion xmldb_put and defaults. (Note previous xml_insert renamed to xml_wrap_all)
2019-04-14 14:36:41 +02:00
Olof hagsand
cef0dc5a22
* Added yang access functions
...
* Change all y->ys_parent to yang_parent_get(y)
* Change all y->ys_keyword to yang_keyword_get(y)
* Change all y->ys_argument to yang_argument_get(y)
* Change all y->ys_cv to yang_cv_get(y)
* Change all y->ys_cvec to yang_cvec_get(y)
2019-04-11 15:53:25 +02:00
Olof hagsand
cf7675dfac
Experimental customized error output strings, see [lib/clixon/clixon_err_string.h]
2019-04-11 12:45:31 +02:00
Olof hagsand
56f32371ce
* Backend plugin returning NULL was still installed - is now logged and skipped.
...
* [Parent list key is not validated if not provided via RESTCONF #83 ](https://github.com/clicon/clixon/issues/83 ), thanks achernavin22.
2019-04-11 11:25:42 +02:00