Commit graph

102 commits

Author SHA1 Message Date
Olof hagsand
b09e326307 C-API: string to pointer map
Optimization of yspec+namespace lookup
Optimization of non-presence container default tree
2025-01-10 16:29:50 +01:00
Olof hagsand
21476c1399 Fixed: [Mem error when more multiple uses on top level with multiple statements in grouping](https://github.com/clicon/clixon/issues/583) 2024-12-05 15:44:01 +01:00
Olof hagsand
ca695ea386 Fixed: [Error with submodules and feature Interaction](https://github.com/clicon/clixon-controller/issues/158) 2024-11-08 16:37:31 +01:00
Olof hagsand
0c8aef0291 Fixed: [CLI bug w/ device domains on juniper qfx devices](https://github.com/clicon/clixon-controller/issues/145)
Reverted uses/grouping remove optimization
2024-10-05 13:35:00 +02:00
Olof hagsand
6a634effea Fixed: [Clixon handle if-feature incorrectly](https://github.com/clicon/clixon/issues/555) 2024-09-21 15:15:15 +02:00
Olof hagsand
cc194ac7c5 Added yang domains for mount-point isolation
New option: `CLICON_YANG_DOMAIN_DIR`
New `clixon-config@2024-08-01.yang` revision
2024-09-12 20:48:14 +02:00
Olof hagsand
c08dac2e5d YANG optimization: move "when" and "mymodule" to external maps 2024-08-11 14:07:33 +02:00
Olof hagsand
275cefbae7 Moved map functions from clixon_string to _map, new ptr2ptr map 2024-08-10 13:42:37 +02:00
Olof hagsand
781c9d9d27 YANG optimize, add orig pointer for derived trees
Skip some yang objects in derived trees
Add function to remove USES in augment/grouping trees
2024-08-09 12:03:14 +02:00
Olof hagsand
af29a0f974 Added YANG_SPEC_LINENR compile-time option 2024-07-31 14:33:31 +02:00
Olof hagsand
36f3c95768 List-pagination sort-by parameter 2024-07-11 22:45:15 +02:00
Olof hagsand
4b9ee6740b C-API changes: Replace yn_each with yn_iter, add keyw argument to yang_stats() 2024-07-04 18:27:14 +02:00
Olof hagsand
68bf76201c CLI show mem: show as MiB/GiB etc 2024-06-29 10:29:32 +02:00
Olof hagsand
c353c6dcab Debug: Added PARSE debug flag 2024-05-15 13:51:18 +02:00
Olof hagsand
344786a971 Fixed: [Duplicate config files in configdir causes merge problems -> set ? = NULL](https://github.com/clicon/clixon/issues/510)
Made file-dir match more exact, eg .cli not ?cli
Added -1 as any arg to xml_rm_children()
2024-04-11 12:02:08 +02:00
Philip Prindeville
cf2e27b43d Drop __FUNCTION__ from clixon_debug() calls 2024-01-11 17:29:37 +01:00
Philip Prindeville
cb134875f9 Discriminate YANG debugging 2024-01-10 20:06:38 +01:00
Olof hagsand
9e54f0602f Changed ca_errmsg callback to a more generic variant
Includes all error, log and debug messages
See [Customized NETCONF error message](https://github.com/clicon/clixon/issues/454)
2024-01-05 16:41:53 +01:00
Olof hagsand
24a4991ec8 Restructured error,debug anf log API
Renamed functions clicon->clixon, replaced global variables w access functions
Unified clicon_netconf_error with clixon_err()
2023-12-18 08:29:14 +01:00
Olof hagsand
e7313fc9a2 New clixon-lib@2023-11-01.yang revision with ignore-compare extension 2023-10-25 18:09:40 +02:00
Olof hagsand
62348fc9c7 C-style update: Unified comment, retvals in order, remove trailing spaces
Changed function name for `clicon_debug` functions
2023-10-23 09:58:13 +02:00
Olof hagsand
f6dbb30110 Minor fixes: UTF str: removed unused code, clarified loading of yang-lib load 2023-10-20 10:04:03 +02:00
Olof hagsand
3b636b51f0 Fixed: [Openconfig configuration on Juniper MX does not work](https://github.com/clicon/clixon-controller/issues/20) 2023-08-11 17:12:11 +02:00
Olof hagsand
836ec5dde5 Renamed custom constant to better reflect usage, fixed some vagrant problems 2023-07-28 16:56:08 +02:00
Olof hagsand
f526d5b7a0 Autocli optimization feature for generating smaller CLISPECs for large YANGs using treerefs
New `grouping-treeref` option added to clixon-autocli.yang
Default is disabled, set to true to generate smaller memory footprint of clixon_cl
Add prefix "mtpoint:" to cli api-paths to identify change of yang schemas
2023-07-23 15:21:59 +02:00
Olof hagsand
d48442960e Changed YANG uses/grouping to keep uses statement and flag it with YANG_FLAG_USES_EXP
Updated yang code headers
2023-07-19 10:52:29 +02:00
Shmuel Hazan
b13917b2ac Call ys_populate_feature from if_feature_check
In some cases, the feature won't be populated yet, and therefore, we
will consider this feature as disabled.

Fixes #429
2023-04-30 17:34:31 +03:00
Olof hagsand
f8324df917 Creator tagging for leafs, sort-modules: remove flag setting, yang_lib2yspec patch 2023-04-13 21:11:57 +02:00
Olof hagsand
48a7eac096 yang load add test to not parse files if not already loaded 2023-02-21 12:02:40 +01:00
Olof Hagsand
fcb6e5cb03 yang path sanity checks and use of real module as root 2023-02-07 11:14:58 +01:00
Olof Hagsand
a5220805b1 New plugin callback: ca_yang_patch - for modifying existing YANG modules
C-API: Added `spec` parameter to `xml2xpath()`
2023-02-05 14:14:57 +01:00
Olof Hagsand
034ab632f1 * C-API: Added vlev validate level parameter to candidate_commit
* `vlev` : validate level
2023-01-29 20:02:56 +01:00
Olof hagsand
da9bfcbb53 * Changed debug levels in clicon_debug() to be based on maskable flags
* Added flag names: `CLIXON_DBG_*`
  * Added maskable flags that can be combined when debugging:
    * `DEFAULT` = 1: Basic debug message, espcially initialization
    * `MSG` = 2: Input and output packets, read datastore
    * `DETAIL` = 4: Details: message dump in hex, xpath parse trees, etc
    * `EXTRA` = 8: Extra detailed logs
* Test: some errors in yang-lib where content-id was in wrong place
2023-01-27 14:56:58 +01:00
Olof Hagsand
ddfcb9716c C-API: Add yang_parse_post() as externally accessible 2023-01-03 21:46:58 +01:00
Olof Hagsand
99c6f61637 Enhanced for client-side functionality:
- parse of yang from string, not only file
- Decode of xml encoding, not only decoding
2023-01-02 21:29:28 +01:00
Olof hagsand
e27336e054 C-API change yang_print: print top-level and add pretty-print parameter
Test: Fix valgrind dlclose suppresion
2022-11-24 17:42:48 +01:00
Olof hagsand
d84c529ff1 [Code formatting: Change indentation style to space](https://github.com/clicon/clixon/issues/379)
* Applies to all c/h/y/l/sh files and .editorconfig
2022-10-27 14:21:17 +02:00
Olof hagsand
9a5504eed0 Fixed: [Issues with ietf-snmp modules](https://github.com/clicon/clixon/issues/353) 2022-08-18 18:07:29 +02:00
Olof hagsand
9d65fb81d7 * Break-out RFC 7950 Section 6.1 tokenization
* This enables full string lexical parsing of some rules previously not fully compliant, including:
    * refine
    * user-augment
    * if-feature
  * Also solves previous tokenization issues
2022-07-25 09:25:11 +02:00
Olof hagsand
89f8567f75 Refactoring of if-feature parse code
Moved if-feature sub-parser to clixon_yang_parse_sub.[ch]
2022-07-20 22:48:09 +02:00
Olof hagsand
6f7a33d196 SNMP frontend, new preli table handling code
Skipped data set and use table-helper only
Specialized SNMP error handling
2022-06-26 11:28:42 +02:00
Olof hagsand
f112580546 SNMP MIB->YANG translation file handling.
Added configure option  --with-mib-generated-yang-dir=DIR with
default value /usr/share/mibyang where generated YANGs from MIBs
should be placed so that SNMP tests know where to find the YANGs.
2022-06-26 11:28:42 +02:00
Olof hagsand
a00e36caa2 * Full RFC 7950 if-feature-expr support (Section 7.20.2)
* Previous implementation did not handle nested if-feature expressions
  * As part of fixing: [YANG if-feature does not support nested boolean expression](https://github.com/clicon/clixon/issues/341)
  * Added new yacc/lex parser for if-feature-expr string
2022-06-26 10:58:43 +02:00
Olof hagsand
bdb516fec9 YANG Action (RFC 7950 Section 7.15)
See [Support for "action" statement](https://github.com/clicon/clixon/issues/101)
2022-06-21 15:44:02 +02:00
Olof hagsand
fa077839f0 Misc sanity checks and documentation 2022-04-19 14:19:29 +02:00
Olof hagsand
f1300d7a12 * [Adding feature to top level container doesn't work](https://github.com/clicon/clixon/issues/322)
* Instead of removing YANG which is disabled by `if-feature`, replace it with an yang `anydata` node.
  * This means XML specified by such YANG is ignored, and it is not an error to access it
  * Note the similarity with `CLICON_YANG_UNKNOWN_ANYDATA`
2022-04-06 14:04:11 +02:00
Olof hagsand
77b4468eb3 Updated copyright statements to 2022 2022-01-18 16:36:00 +01:00
Olof hagsand
3117332ddd Changes in clixon-config.yang:
* Removed obsolete options:
    * `CLICON_YANG_LIST_CHECK`
    * `CLICON_RESTCONF_PATH` (moved to restconf/fcgi-path)
  * Fixed: Configure option `CLICON_RESTCONF_PRETTY` was marked as obsolete but was still used.
    * `CLICON_RESTCONF_PRETTY` is now obsolete for sure
    * Instead restconf/pretty is used with API function restconf_pretty_get()
2021-12-28 11:44:19 +01:00
Olof hagsand
339b744835 * Optional yangs for testing have been removed from the Clixon repo
* These were included for testing
  * If you want to run the Clixon test suite you need to point `YANGMODELS`, see test/README.md
  * The following configure options have been removed:
    * `configure --with-opt-yang-installdir=DIR`
    * `configure   --enable-optyangs`
  * You may need to specify standard YANGs using configure option `--with-yang-standard-dir=DIR`
* Updated yang ietf models with fetures for tet
* Added option `CLICON_YANG_AUGMENT_ACCEPT_BROKEN` to accept broken yangmodels.
  * This is a debug option for CI testcases where standard YANG models are broken
2021-11-29 10:28:34 +01:00
Olof hagsand
2dcc14a0db Added error handling in yang_path_arg triggered by no filter in get paginated
Fixed cornercase of restconf error return when no body
Fixed cornercase when exactly / given as xpath
Better error message when YANG not found: added which YANG file imports it
2021-11-10 18:35:24 +01:00