Commit graph

1144 commits

Author SHA1 Message Date
Olof hagsand
e898dda016 * Auto-CLI enhancements
* A generated clispec including state (default @datanodestate) also generated along with the config clispec tree (default @datanode)
  * New mode `GT_HIDE` set by option `CLICON_CLI_GENMODEL_TYPE` to collapse non-presence containers that only contain a single list
  * Added a prfix for cli_show_config/cli_show_auto so that it can produce parseable output
  * Thanks dcornejo@netgate.com for trying it out and suggestions
2020-06-13 12:05:26 +02:00
Olof hagsand
ff5462ecac Replaced the global variable debug with access function: clicon_debug_get(). 2020-06-09 16:04:49 +02:00
Olof hagsand
7ffa2920a4 * Removed printfs in xpath-equal code 2020-06-06 12:34:48 +02:00
Olof hagsand
14b03f63a3 all clixon event functions prepended with clixon_
Replaced fcgi getparam code with clixon-data parameters
2020-06-05 16:19:03 +02:00
Olof hagsand
b6edc4aff0 Added new function (this time for real) 2020-05-29 13:43:43 +02:00
Olof hagsand
fdf335fb2f new function ; Added valgrind mem check in leak tests; pattern CDATA tests 2020-05-29 12:39:07 +02:00
Olof hagsand
6629f3d780 * Added new function xml_child_index_each() to iterate over the children of an XML node according to the order defined by an explicit index variable. 2020-05-20 15:21:59 +02:00
Olof hagsand
132122c937 enabled and removed USE_CLIGEN44 2020-05-12 14:02:25 +02:00
Olof hagsand
ac1f36009f Makefile copyright 2020-05-12 13:59:45 +02:00
Olof hagsand
29235d5547 Removed and enabled code for compile options: RESTART_PLUGIN_RPC, XML_NEW_DIFFERENTIATE, OPTIMIZE_45_BIND and OPTIMIZE_45_SORT 2020-05-11 15:29:58 +02:00
Olof hagsand
a3b6ea9e10 New clixon-config@2020-04-23.yang revision
* Removed xml-stats non-config data (replaced by rpc `stats` in clixon-lib.yang)
  * Added option `CLICON_YANG_UNKNOWN_ANYDATA` to treat unknown XML (wrt YANG) as anydata.
2020-05-11 14:38:38 +02:00
Olof hagsand
bf04131e54 Added decriptive error message when plugins produce invalid state XML. 2020-05-10 17:10:07 +02:00
Olof hagsand
266e5581e4 Changed output of clixon_cli -G option to show generated CLI spec original text instead of resulting parse-tree, which gives better detail from a debugging perspective. 2020-05-09 16:20:50 +02:00
Olof hagsand
f9e1fe5de7 removed state path kludge 2020-05-05 17:13:38 +02:00
Olof hagsand
592c513b83 Fix up state bypass get code 2020-05-04 13:10:43 +02:00
Olof hagsand
dafc6d10e0 Added option to treat unknown XML (wrt YANG) as anydata. 2020-05-03 22:03:33 +02:00
Olof hagsand
12d1b67250 * Stricter validation detecting duplicate container or leaf in XML.
* Eg `<x><a/><a/></x>` is invalid if `a` is anything else than leaf or leaf-list
2020-05-02 17:30:02 +02:00
Olof hagsand
861f78f588 fix state path kludge 2020-05-02 17:08:54 +02:00
Olof hagsand
b4c591a985 add state-path kludge to cligen frontend bind statement as well 2020-05-02 10:37:02 +02:00
Olof hagsand
442e96bdf0 Merge branch 'master' of https://github.com/clicon/clixon 2020-05-01 17:09:56 +02:00
Olof hagsand
82529a2f16 * Experimental optimzations of yang-bind and sort for large lists
* Enabled by compile-time options: `OPTIMIZE_45_BIND` and `OPTIMIZE_45_SORT`
2020-05-01 17:08:32 +02:00
Olof hagsand
772759e42f * Compile-time option: USE_CLIGEN44 for running clixon-45 with cligen-44.
* Temporary fix since cligen-45 have some non-backward compatible behaviour.
2020-05-01 00:42:54 +02:00
Olof hagsand
b8ec6a4957 * Optimized prefix checks at xml parse time: using many prefixes slowed down parsing considerably
* Cleared startup-db cache after restart
2020-04-29 23:11:48 +02:00
Olof hagsand
94cf4a88b3 * Optimizations
* Reduced memory for attribute and body objects, see `XML_NEW_DIFFERENTIATE` compile-time option.
  * Optimized cbuf handling in parsing and xml2cbuf functions.
  * Optimized xml scanner to read strings rather than single chars
  * Optimized xml_merge for the case of disjunct trees.
2020-04-28 22:31:58 +02:00
Olof hagsand
9a8c6cf3e6 * New clixon-lib@2020-04-23.yang revision
* Added: stats RPC for clixon XML and memory statistics.
  * Added: restart-plugin RPC for restarting individual plugins without restarting backend.
* xml-stats moved from clixon-config.yang as state data to an rpc `datastats` in clixon-lib.yang
* Experimental: restart_plugin
* Two new plugin callbacks added
  * ca_daemon: Called just after a server has "daemonized", ie put in background.
  * ca_trans_commit_done: Called when all plugin commits have been done.
    * Note: If you have used "end" callback and usign transaction data, you should probably use this instead.
2020-04-28 22:10:06 +02:00
Olof hagsand
1c99bd6a9b * xml-stats moved from clixon-config.yang as state data to an rpc datastatsin clixon-lib.yang
* Two new plugin callbacks added
  * ca_daemon: Called just after a server has "daemonized", ie put in background.
  * ca_trans_commit_done: Called when all plugin commits have been done.
2020-04-23 22:58:57 +02:00
Olof hagsand
65806f1ef2 Copyright change: LLC -> LLC(Netgate) 2020-04-23 16:55:56 +02:00
Olof hagsand
476f1d84d3 Fix a bind rpc assert on unknown namespace 2020-04-23 11:06:25 +02:00
Olof hagsand
dc36282874 * Fixed instance-id multiple results
* Fixed last NACM write paths
2020-04-22 14:00:40 +02:00
Olof hagsand
04017c97ba Length of xml vector in many structs changed from to since it is a vector size, not byte size. This includes transaction_data_t 2020-04-21 10:17:09 +02:00
Olof hagsand
5be5b02a84 NACM write path delete works as well 2020-04-20 22:29:09 +02:00
Olof hagsand
1dff0e681b Adapted to CLIgen 4.5 API changes, eg: and 2020-04-20 13:14:40 +02:00
Olof hagsand
8897df202e NACM RFC8341 datanode write paths 2020-04-18 17:45:47 +02:00
Olof hagsand
0d4263e324 * xml_merge() changed to use 3-value return: 1:OK, 0:Yang failed, -1: Error
* `clixon_netconf_error(category, xerr, msg, arg)` removed first argument -> `clixon_netconf_error(xerr, msg, arg)`
* Renamed utility function `clixon_util_insert()` to `clixon_util_xml_mod()` and added merge functionality.
* Fixed: Insertion of subtree leaf nodes were not made in the crrect place, always ended up last regardless of yang spec (if ordered-by system).
2020-04-17 15:47:37 +02:00
Olof hagsand
f401c07c4b optimized NACM read paths 2020-04-15 22:02:33 +02:00
Olof hagsand
1fb3dcc686 NACM datnode read path implementation revised 2020-04-15 16:55:22 +02:00
Olof hagsand
ba59e22fd7 NACM RFC341 datanode paths, read operation 2020-04-14 11:38:29 +02:00
Olof hagsand
58c36decef new file: clixon_xml_bind.[ch] 2020-04-07 20:57:50 +02:00
Olof hagsand
ac5637a46a Stricter incoming RPC sanity checking, error messages may have changed 2020-04-07 20:54:24 +02:00
Olof hagsand
f9998c441c Merge branch 'clixon-4.5'
C-API changes for CLIgen code:
  * `clicon_parse()`: Changed signature due to new cligen error and result handling:
  * Removed: `cli_nomatch()`
2020-04-07 18:21:10 +02:00
Olof hagsand
662d6b0a3f Clixon 4.4 three compile-time options: MOVE_TRANS_END for changing transaction-end callbacks; STATE_ORDERED_BY_SYSTEM to make state data system ordered; XML_MERGE_TWO_ROUNDS to improve xml_merge performance. 2020-04-02 14:28:58 +02:00
Olof hagsand
6e2cb1b97d Adjust to cligen 4.5 update 2020-04-01 09:56:50 +02:00
Olof hagsand
5535239363 readd namespace cache 2020-03-30 22:07:46 +02:00
Olof hagsand
0fd71ec372 loosen yang check of keys in lists to not do it in rpc declarations 2020-03-27 15:44:05 +01:00
Olof hagsand
8131bd1834 2020 copyright 2020-03-27 15:42:03 +01:00
Olof hagsand
aa191152cb minor things for clixon.4.4 2020-03-27 11:20:35 +01:00
Olof hagsand
916c1aabd7 NULL->/ for state callbacks. Clarified socket close error 2020-03-26 20:42:42 +01:00
Olof hagsand
1079fcad47 Added / to api-path to xpath conversion 2020-03-25 22:11:07 +01:00
Olof hagsand
a7e0a30938 Fixes for 4.4 release 2020-03-24 16:41:30 +01:00
Olof hagsand
09a2e09848 * New XML parsing API:
* `clixon_xml_parse_string()`
   * `clixon_xml_parse_file()`
* New JSON parsing API, with same signature as XML parsing:
   * `clixon_json_parse_string()`
   * `clixon_xml_parse_file()`
* XML YANG binding API have been rearranged as follows:
   * `xml_bind_yang_rpc()`
   * `xml_bind_yang_rpc_reply()`
   * `xml_bind_yang()`
   * `xml_bind_yang0()`
2020-03-19 21:32:27 +01:00