Commit graph

1500 commits

Author SHA1 Message Date
Olof hagsand
f524a89b2d * Fixed: YANG uses statements in sub-modules did not search for grouping statements in other submodules of the module it belongs to. 2020-09-04 16:23:18 +02:00
Olof hagsand
81fc7f742b * Netconf as default namespace has been disabled by default.
* Only requests on the form: `<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"><edit-config>...` will be accepted
  * All replies will be on the form: `<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">...`
  * Requests such as: `<rpc><edit-config>...` will not  be accepted.
  * You can revert this behaviour (to clixon pre-4.6 behaviour) by enabling `CLICON_NAMESPACE_NETCONF_DEFAULT`
  * This API change is a consequence of: [copy-config's RPC cxobj parameter does not contain namespace #131](https://github.com/clicon/clixon/issues/131)
2020-09-02 15:44:10 +02:00
Olof hagsand
a01fe04613 Fixed: [CLI crash if error-info is empty #134](https://github.com/clicon/clixon/issues/134) 2020-09-01 16:19:58 +02:00
Olof hagsand
41ac192362 Fixed: [Cannot create or modify NACM data node access rule with path using JSON encoding #129](https://github.com/clicon/clixon/issues/129). The evaluation of NACM datanode rule path is assumed to be canonical namespace and cannot be overruled with xmlns rules. 2020-08-30 17:03:49 +02:00
Olof hagsand
043acb6a54 Remove default sets in init cache 2020-08-28 09:51:14 +02:00
Olof hagsand
558abb1f9b Corrected error message for list min/max-value to comply to RFC 7950: a proper path is now returned, peviously only the list symbol. it is also exposed in the CLI correctly.
* Example: `<error-path>/c/a1</error-path>`
2020-08-27 15:52:31 +02:00
Olof hagsand
a3e80080e2 added error-app-tag to netconf error textual message 2020-08-27 13:15:16 +02:00
Olof hagsand
96a8192cd2 Fixed: [Yang modules skipped if the name is a proper prefix of other module name](https://github.com/clicon/clixon/issues/130) 2020-08-27 11:55:42 +02:00
Olof hagsand
576533ed82 Changed singnature of ys_real_module and improved error handling 2020-08-27 11:01:09 +02:00
Olof hagsand
1a2e074539 - Added newline after restconf evhtp GET reply 2020-08-24 22:31:12 +02:00
Olof hagsand
3e054fedc3 Fixed an error in global default values. Global default values were not written to datastore after startup, but AFTER an edit/commit. 2020-08-24 22:26:31 +02:00
Olof hagsand
2e23856676 fixed memory leaks in restconf evhtp module 2020-08-22 18:02:08 +02:00
Olof hagsand
6be4b18391 Fixed: [Type / Endianism problem in yang_parse_file #128](https://github.com/clicon/clixon/issues/128) 2020-08-21 13:33:38 +02:00
Olof hagsand
25f67d1eb9 Fixed: [(CLI) the description of a used grouping is shown instead of the encapsulating container #124](https://github.com/clicon/clixon/issues/124) 2020-08-19 15:55:55 +02:00
Olof hagsand
3d33335f4b Last minute documentation and testing changes befoire 4.6 2020-08-13 14:58:42 +02:00
Olof hagsand
dc1ad560f9 * Bundle internal NETCONF on RESTCONF: A RESTCONF operation could produce several (up to four) internal NETCONF messages between RESTCONF server and backend. These have now been bundled into one.
* NACM recovery user session is now properly enforced. This means that if `CLICON_NACM_CREDENTIALS` is `except` (default), then a specific `CLICON_NACM_RECOVERY_USER` can make any edits and bypass NACM rules.
* If a default value is replaced by an actual value, RESTCONF return values have changed from `204 No Content` to `201 Created`
* clixon-config.yang: Removed default valude of CLICON_NACM_RECOVERY_USER
2020-08-11 14:49:30 +02:00
Olof hagsand
a7737c283c restricted NACM recovery user 2020-08-06 21:43:27 +02:00
Olof hagsand
794d51a365 * Top-level default leafs assigned.
* Enforcing RFC 7950 Sec 7.6.1 means unassigned top-level leafs (or leafs under non-presence containers) are assigned default values.
* NACM default behaviour is read-only (empty configs are dead-lockedd)
  * This applies if NACM is loaded and `CLICON_NACM_MODE` is `internal`
* Fixed: [default values don't show up in datastores #111](https://github.com/clicon/clixon/issues/111)
2020-08-06 15:20:57 +02:00
Olof hagsand
65733ffe69 * Added yang-binding yb parameter to xmldb_get0() and all xmldb get functions. 2020-08-03 13:57:04 +02:00
Olof hagsand
5911d23efc patch quit startup upgrading 2020-08-03 13:08:43 +02:00
Olof hagsand
5b81c43d96 New backend switch: -q : Quit startup directly after upgrading and print result on stdout 2020-08-03 12:49:33 +02:00
Olof hagsand
daeab85446 removed obsolete example yang, mod cli_dbxml to only append leaf in cli_set 2020-07-30 22:52:42 +02:00
Olof hagsand
d2ccee4eab Added nsctx argument to cli_dbxml() and exposed it as a public function
Added function clixon_instance_id_bind()
2020-07-28 16:15:02 +02:00
Olof hagsand
3ecc259ec7 misc documentation 2020-07-28 16:15:02 +02:00
Olof hagsand
23bcee8185 * Netconf lock/unlock behaviour changed to adhere to RFC 6241
* Changed commit lock error tag from "lock denied" to "in-use".
  * Changed unlock error message from "lock is already held" to #lock not active" or "lock held by other session".
  * Fixed [lock candidate succeeded even though it is modified #110](https://github.com/clicon/clixon/issues/110)
2020-07-28 16:13:34 +02:00
Vladimir Ratnikov
f5d57ae50f fix clauses 2020-07-28 06:03:22 -04:00
Vladimir Ratnikov
8b5c77838b Don't call upgrade callbacks for module with no revision defined 2020-07-28 05:52:07 -04:00
Olof hagsand
9d2102cebf Fixed: [Need to add the possibility to use anchors around patterns #51](https://github.com/clicon/cligen/issues/51):
* Dont escape `$` if it is last in a regexp in translation from XML to POSIX.
2020-07-27 20:03:52 +02:00
Olof hagsand
918bf6223b added CR delimiters to if-feature 2020-07-27 13:00:56 +02:00
Olof hagsand
f7b640810b * Enhanced Clixon if-feature handling:
* If-feature now supports and/or lists, such as: `if-feature "a and b"` and `if-feature "a or b or c"`. However, full if-feature-expr including `not` and nested boolean experessions is still not supported.
  * Sanity check: if an `if-feature` statement exists, a corresponding `feature` statement must exists that declares that feature.
2020-07-27 12:06:36 +02:00
Olof hagsand
cb58b2bb12 log warning, error doc 2020-07-26 16:16:32 +02:00
Olof hagsand
864e2d1692 Instance-id yang validation checks corrected 2020-07-26 16:14:39 +02:00
Olof hagsand
ab2f7cbbb4 Merge branch 'master' of https://github.com/clicon/clixon 2020-07-25 16:14:42 +02:00
Olof hagsand
57b104bc25 * Checked yang binding validity which lead to:
* Changed and enhanced several `bad-element` error replies to `unknown-element` with more detailed error-message.
2020-07-25 16:09:24 +02:00
Vladimir Isaev
cc8e727f85 Added error message for each CLICON_YANG_UNKNOWN_ANYDATA occasion 2020-07-24 15:46:38 +03:00
Olof hagsand
83203623cd Optimized get config xpath of large lists, such as a[x=1000] in a list of 100000s a:s. 2020-07-23 20:41:32 +02:00
Olof hagsand
316cad35ff Another CLICON_YANG_UNKNOWN_ANYDATA issue: top-level unknown namespace caused segv in backend 2020-07-17 19:03:40 +02:00
Olof hagsand
490f7d8023 Two CLICON_YANG_UNKNOWN_ANYDATA issues: segv when exiting cli and diff errors on commit 2020-07-17 14:18:09 +02:00
Olof hagsand
62446db752 Fixed CLICON_YANG_UNKNOWN_ANYDATA for config and state data. This feature introduced in 4.5 didnt really work. 2020-07-14 19:56:42 +02:00
Olof hagsand
94ad44a2ea Merge branch 'master' of https://github.com/clicon/clixon 2020-07-12 10:59:23 +02:00
Olof hagsand
25245a12d2 code documentation 2020-07-12 10:59:12 +02:00
Olof Hagsand
2d97c1e2c6 handle sanity check removed that triggered c++ linkage errors 2020-07-09 08:07:41 +00:00
Olof hagsand
593ed2ef3b Added const char * in multiple places 2020-07-02 19:25:48 +02:00
Olof hagsand
839dc3231d Merge branch 'mycpp/new-test' of https://github.com/shmuelnatan/clixon into shmuelnatan-mycpp/new-test 2020-07-02 17:20:38 +02:00
shmuels
11836151d4 Changed code so that it will be compatible with c++.
1. Added #ifdef extern "C" to public header files.
2. Changed variables that are key words in c++, to different names (like ns instead of namespace).
3. Add a test_c++.sh for c++ compiling.
2020-07-02 15:31:22 +03:00
shmuels
58ea4eba27 Changed code so that it will be compatible with c++.
1. Added #ifdef extern "C" to public header files.
2. Changed variables that are key words in c++, to different names (like ns instead of namespace).
3. Changed char* to const char* for constant strings.
2020-07-02 15:00:53 +03:00
Olof hagsand
99b01040a7 * Fixed: [Double free when using libxml2 as regex engine #117](https://github.com/clicon/clixon/issues/117)
* added libxml2 support in test_pattern.sh when libxml2 is configured
2020-07-02 13:26:15 +02:00
Olof hagsand
9c82e97072 Added http support for evhtp (not only https) 2020-06-29 14:41:08 +02:00
Olof hagsand
c2e459e8bb Three errors in new upgrade code: DEL didnt work, empty config did now work, neither did no yang files in a dir 2020-06-27 13:02:04 +02:00
Olof hagsand
8f1de15ad3 Changed module-specific upgrade API, not backward compatible. The API has been simplified which means more has to be done by the programmer.
* In summary, a user registers an upgrade callback per module. The callback is called at startup if the module is added, has been removed or if the revision on file is different from the one in the system.
  * The register function has removed `from` and `rev` parameters: `upgrade_callback_register(h, cb, namespace, arg)`
  * The callback function has a new `op` parameter with possible values: `XML_FLAG_ADD`, `XML_FLAG_CHANGE` or `XML_FLAG_CHANGE`: `clicon_upgrade_cb(h, xn, ns, op, from, to, arg, cbret)`
2020-06-26 14:39:04 +02:00