Olof hagsand
1f8c759f3d
Merge branch 'master' of https://github.com/clicon/clixon .
...
Added new API function `xpath_parse()` to split parsing and xml evaluation.
2019-07-08 14:47:18 +02:00
Olof hagsand
67b8685bab
The Clixon API has been extended with namespaces, or namespace contexts in the following cases:
...
* CLIspec functions have added namespace parameter:
* `cli_show_config <db> <format> <xpath>` --> `cli_show_config <db> <format> <xpath> <namespace>`
* `cli_copy_config <db> <xpath> ...` --> `cli_copy_config <db> <xpath> <namespace> ...`
* Xpath API
* `xpath_first(x, format, ...)` --> `xpath_first(x, nsc, format, ...)`
* `xpath_vec(x, format, vec, veclen, ...)` --> `xpath_vec(x, nsc, format, vec, veclen, ...)`
* `xpath_vec_flag(x, format, flags, vec, veclen, ...)` --> `xpath_vec_flag(x, format, flags, vec, veclen, ...)`
* `xpath_vec_bool(x, format, ...)` --> `xpath_vec_bool(x, nsc, format, ...)`
* `xpath_vec_ctx(x, xpath, xp)` --> `xpath_vec_ctx(x, nsc, xpath, xp)`
* xmldb_get0 has an added `nsc` parameter:
* `xmldb_get0(h, db, xpath, copy, xret, msd)` --> `xmldb_get0(h, db, nsc, xpath, copy, xret, msd)`
* The plugin statedata callback (ca_statedata) has been extended with an nsc parameter:
* `int example_statedata(clicon_handle h, cvec *nsc, char *xpath, cxobj *xstate);`
* rpc get and get-config api function has an added namespace argument:
* `clicon_rpc_get_config(clicon_handle h, char *db, char *xpath, char *namespace, cxobj **xt);`
* `int clicon_rpc_get(clicon_handle h, char *xpath, char *namespace, cxobj **xt);`
2019-07-08 10:36:37 +02:00
Olof hagsand
b64dd678dc
CLI ranges error shown instead of "Unknown command"
2019-06-21 17:44:52 +02:00
Olof hagsand
d12644a5ef
Fixed [Wrong yang-generated cli code for typeref identityref combination #88 ]( https://github.com/clicon/clixon/issues/88 )
2019-06-20 19:00:22 +02:00
Olof Hagsand
2ae9529a3e
added regexp free routines, replaced regexp mode string with symbol
2019-05-29 14:17:30 +00: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
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
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
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
b5f1f7346e
Structural C-code change: Merged yang_spec and yang_node types into yang_stmt
2019-04-02 12:27:33 +02:00
Olof hagsand
b182e8666f
[yang type range statement does not support multiple values]( https://github.com/clicon/clixon/issues/59 )
...
[Multiple ranges support](https://github.com/clicon/clixon/issues/78 )
Restructured "cb" parameter in cli_generate.c
2019-03-04 14:36:43 +01:00
Olof hagsand
19343c2b21
* Partially corrected: [yang type range statement does not support multiple values]( https://github.com/clicon/clixon/issues/59 ).
...
* Should work for netconf and restconf, but not for CLI.
* Fixed again: [Range parsing is not RFC 7950 compliant](https://github.com/clicon/clixon/issues/71 )
2019-02-05 14:03:58 +01:00
Olof hagsand
ef86cda2fe
NACM Data node WRITE access module support (RFC8341 3.4.5)
2019-01-30 10:02:17 +01:00
Olof hagsand
f48c8f45c6
* Date-and-time type now properly uses ISO 8601 UTC timezone designators.
...
* Renamed yang file `ietf-netconf-notification@2008-07-01.yang` to `clixon-rfc5277`.
* Cligen uses posix regex while yang uses XSD. It differs in some aspects. A translator function has been added for `\d` -> `[0-9]` translation, there may be more.
* [ietf-netconf-notification@2008-07-01.yang validation problem #62 ](https://github.com/clicon/clixon/issues/62 )
2019-01-11 17:30:08 +01:00
Olof hagsand
207858e20d
* Support of yangmodels supported, see test_yangmodels.sh
...
* Added -o "<option>=<value>" command-line option to all programs: backend, cli, netconf, restconf.
* Ignore CR(\r) in yang files for DOS files
2019-01-10 20:52:19 +01:00
Olof hagsand
c7e847cd24
Keyword "min" (not only "max") can be used in built-in types "range" and "length" statements.
2019-01-06 22:11:59 +01:00
Olof hagsand
058a14579f
Yang choice functionality improved and stricter validation for CLI generation, mandatory flags, etc.
2019-01-04 11:37:26 +01:00
Olof hagsand
b443471e7b
Removed CLI generation for yang notifications (and other non-data yang nodes
2019-01-02 18:44:27 +01:00
Olof hagsand
0103d58994
2019
2019-01-02 15:48:30 +01:00
Olof hagsand
39a5086218
* Yang Support of submodule, include and belongs-to.
...
* Improved unknown handling
* Configure option `CLICON_YANG_DIR` is changed from a single directory to a path of directories
* Note CLIXON_DATADIR (=/usr/local/share/clixon) need to be in the list
2018-12-01 18:17:42 +01:00
Olof hagsand
ea77e7f02d
* YANG Features
...
* Yang 1.1 feature and if-feature according to RFC 7950 7.20.1 and 7.20.2.
* See https://github.com/clicon/clixon/issues/41
* Features are declared via CLICON_FEATURE in the configuration file.
* logical combination of features not implemented, eg if-feature "not foo or
* Identity without any identityref:s caused SEGV
2018-10-10 20:11:20 +02:00
Olof hagsand
ba7f84afee
* Much better support for XPATH 1.0 according to https://www.w3.org/TR/xpath-10 using yacc/lex
...
* NOTE: Due to an error in the previous implementation, all XPATH calls on the form `x[a=str]` where `str` is a string (not a number or XML symbol), must be changed to: `x[a='str'] or x[a="str"]`
* This includes all calls to `xpath_vec, xpath_first`, etc.
* All calls to cli_copy_config in CLI spec files must replace 2nd argument from `x[%s=%s]` to `x[%s='%s']`
* The old API is stillenabled. To define the new, define XPATH_USE_NEW in include/clixon_custom.h and recompile
2018-07-17 16:59:32 +02:00
Olof hagsand
85c4782e36
Dedicated xml,json,yang and xsl parser utility programs added
...
Sanity check of stdarg (...) added
Cleanup of error messages.
2018-06-17 19:40:06 +02:00
Olof hagsand
9eff879458
CDATA Encode and decode (parsing) support
2018-06-13 22:55:46 +02:00
Olof Hagsand
de69b253dc
check null ptr
2018-06-07 21:10:01 +02:00
Olof hagsand
c5991c9844
* Added a generated CLI show command that works on the generated parse tree with auto completion.
...
* A typical call is: show @datamodel:example, cli_show_auto("candidate", "json");
* The example contains a more elaborate example.
* Thanks ngashok for request, see https://github.com/clicon/clixon/issues/24
2018-06-05 16:45:43 +02:00
Olof hagsand
7e4e1d6deb
* Support for YANG identity and identityref according to RFC 7950 Sec 7.18 and 9.10
...
* Previous support did no validation of values.
* Validation of types and CLI expansion
* Example extended with inclusion of iana-if-type RFC 7224 interface identities
2018-06-03 15:36:05 +02:00
Olof hagsand
859d424ea3
(Work in progress) Restconf error handling for get and edit operations
2018-03-11 20:17:11 +01:00
Olof hagsand
e40d785d5c
* Added a "user" parameter to plugin_credentials() restconf callback.
...
To enable authentication and in preparation for access control a la RFC 6536.
* yang string length "max" keyword set to MAXPATHLEN
2018-02-08 15:24:05 +07:00
Olof hagsand
38f0b446fa
2017->2018
2018-01-01 12:25:33 +01:00
Olof hagsand
4b92dbdc10
Optimized search performance for large lists by sorting and binary search
2017-12-27 11:34:47 +01:00
Olof hagsand
0c065dc026
yang resolve union
2017-07-28 12:38:41 +02:00
Olof hagsand
fd2a5db31b
fixed empty cli gen err
2017-07-27 12:09:57 +02:00
Olof hagsand
5ae1aeb427
Added support for YANG anyxml; Yang union CLI generation and validation; Removed yang string escaping
2017-07-27 11:54:28 +02:00
Olof hagsand
1b6c9aacbe
Added validation for leafref forward and nackward references.
2017-07-18 19:56:54 +02:00
Olof hagsand
91f91fe526
memleaks, cli-generate leafref
2017-06-06 22:09:37 +02:00
Olof hagsand
3453dae0db
- removed api_path extension from internal netconf
...
- Strings in xmldb_put not properly encoded, eg eth/0 became eth.00000
2017-05-30 21:57:06 +02:00
Olof hagsand
31c45e5c62
removed cli single callback arg code
2017-04-06 10:26:10 +02:00
Olof hagsand
7f0b9909b3
Library functions in clixon_cli_api.h (e.g cli_commit) is rewritten in new
...
for (eg cli_commitv). See clixon_cli_api.h for new names.
Use restconf format for internal xmldb keys. Eg /a/b=3,4
Changed example to use multiple cli callbacks
2017-01-31 22:36:14 +01:00
Olof hagsand
2db346abc8
Added cli multiple callback and expand support.
2017-01-15 20:22:51 +01:00
Olof hagsand
319e7707d8
Empty yang type. Relaxed yang types for unions, eg two strings with different length.
2017-01-09 21:26:50 +01:00
Olof hagsand
bc2b606167
dual license
2016-12-30 16:14:48 +01:00
Olof hagsand
f4e0b4bf20
Fixes for multiple list keys
2016-11-19 21:20:56 +01:00
Olof Hagsand
c80ddf0f96
decimal64 generated cli
2016-04-28 16:26:23 +02:00
Olof hagsand
c1c1670a74
getting legacy grideye application to work on clixon
2016-03-20 22:25:42 +01:00
Olof hagsand
6d8acdea9f
truncate helptext
2016-03-09 21:01:57 +01:00
Olof hagsand
cf3cf351c8
xmldb api cleanup
2016-03-02 09:38:52 +01:00
Olof Hagsand
79b77943f9
renamed .h and libs clicon->clixon
2016-02-28 15:27:36 +01:00
Olof hagsand
5a45eca301
file rearrangement
2016-02-26 16:05:34 +01:00