Commit graph

93 commits

Author SHA1 Message Date
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
Olof hagsand
baa6e821a8 Fixed [yang in CLICON_YANG_MAIN_DIR can't import module's in CLICON_YANG_DIR recursively](https://github.com/clicon/clixon/issues/286)
Which was a PR for [Recursive search CLIXON_YANG_DIR](https://github.com/clicon/clixon/issues/284)
2021-11-10 18:32:17 +01:00
Kristofer Hallin
057abe56e0
Fix for issue #284, do recursive lookup when reading YANG files from directory. 2021-11-08 20:09:19 +01:00
Olof hagsand
b70e22096e - Pagination: enabled LIST_PAGINATION and remobved constant
- Changed logic on how to find clixon_restconf in pseudo plugin
- Removed ==== in constants to avoid conflict with git merge
- Remove assert
- Added fuzzing for netconf
2021-09-23 13:33:26 +02:00
Olof hagsand
77bacc93bb - Updated code to clixon 5.2 status
- Added LIST_PAGINATION clixon_custom constant
- Fix: leafs added as augments on rpc input/output lacked cv:s
2021-09-21 11:22:40 +02:00
Olof hagsand
9aad253f1e Move Yang patterns: \n match from yang parse to regex compile stage 2021-08-05 12:53:26 +02:00
Olof hagsand
dcaeb581a1 * Fixed: Yang patterns: \n and other non-printable characters were broken
* Example: Clixon interpereted them two characters: `\\ n` instead of ascii 10
2021-08-05 09:59:20 +02:00
Olof hagsand
00645ee52b * Added linenumbers to all YANG symbols for better debug and errors
* Improved error messages for YANG identityref:s and leafref:s by adding original line numbers
2021-08-03 12:53:37 +02:00
Olof hagsand
e0ee365958 * Fixed: RFC 8040 yang-data extension allows non-key lists
* Added YANG_FLAG_NOKEY as exception to mandatory key lists
2021-07-19 11:15:49 +02:00
Olof hagsand
6bb6faadc9 * Fixed: mandatory leaf in a uses statement caused abort
* Occurence was in ietf-yang-patch.yang
2021-07-19 08:14:10 +02:00