Commit graph

162 commits

Author SHA1 Message Date
Olof hagsand
2603b6f139 CLI show compare example function
Improved diff algorithm for XML and TEXT/curly, replaced UNIX diff with structural in-mem algorithm
Fixed: ["show compare" and "show compare | display cli" differs #23](https://github.com/clicon/clixon-controller/issues/23)
Changed parameters of example clispec function `compare_dbs()`
Added show2cbuf functions for TEXT/CLI
Renamed clixon_txt2file to clixon_text2file
2023-09-22 10:42:00 +02:00
Olof hagsand
7352894c7e Removed sending restconf config inline using -R when CLICON_BACKEND_RESTCONF_PROCESS=true
Define RESTCONF_INLINE to revert
2023-08-15 20:45:15 +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
05c082b202 init variables, vagrant with-cligen 2023-07-28 12:49:51 +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
Renato Botelho do Couto
d7d81fbd13 clixon_custom.h: Remove RESTCONF_NETNS_DEFAULT
It's now defined under clixon_config.h
2023-07-06 19:55:23 +02:00
Renato Botelho do Couto
8caaef639e autoreconf: Regenerate after changing configure.ac 2023-07-06 19:55:23 +02:00
Olof hagsand
fab8d35dff Output pipe function detection in configure.ac 2023-07-05 15:49:30 +02:00
Olof hagsand
e8a8b17e1b Removed obsolete compile options introduced in 6.1:
`NETCONF_DEFAULT_RETRIEVAL_REPORT_ALL` and `AUTOCLI_DEPRECATED_HIDE`
2023-05-05 08:55:47 +02:00
Olof hagsand
5d1c6b5759 Preparations for 6.2.0
Openssl 3.0 and autoconf 2.71
2023-04-29 16:23:54 +02:00
Olof hagsand
447b8eb1d3 test fix breaking actions. Minor doc changes 2023-04-25 16:22:25 +02:00
Olof hagsand
e7c9f3d075 Unified netconf input function
First for external use, later internal
2023-04-20 21:28:01 +02:00
Olof hagsand
04d5f52d90 Revert Temporar fix in clixon_custom.h: XPATH_CANONICAL_SKIP_CHECK 2023-04-19 10:45:21 +02:00
Olof hagsand
da2edceb7e * Added new functions: xml_tree_equal and xpath2xml
* RFC 8528 yang schema mount-points:
  * Made expand_dbvar and cli_dbxml mountpoint-aware (RFC 8528)
  * autocli supportgenerate
  * Made api_path2xml and xml2api_path mount-point-aware
  * Temporar fix in clixon_custom.h: XPATH_CANONICAL_SKIP_CHECK
* `xml2xpath()`: Added `apostrophe` as 4th parameter, default 0
* removed extra assert.h includes
2023-03-23 22:16:33 +01:00
Olof hagsand
585e725aec Yang schema mount: replaced config --enable-yang-schame-mount with runtime option CLICON_YANG_SCHEMA_MOUNT
Added config and validation-level as parameters to ca_yang_mount
2023-02-17 16:39:39 +01:00
Olof Hagsand
ecd60fbcfe
Merge pull request #418 from kernelkit/kkit
Misc. build fixes encountered when cross-compiling
2023-02-17 09:52:42 +01:00
Olof hagsand
0ef0970c04 Implemented: [Request to suppress auto-completion for "deprecated" / "obsolete" status and warn the user.](https://github.com/clicon/clixon/issues/410) 2023-02-14 16:42:43 +01:00
Joachim Wiberg
e84d43c8e3 configure.ac: add proper check for libcurl + curl/curl.h
Both util/clixon_util_stream.c and lib/src/clixon_stream.c depend on
libcurl.  The latter has `#ifdef CLIXON_PUBLISH_STREAMS` but the former
does not.  So `make util` fails without `--enable-publish` if libcurl
is not installed.

To preserve the original behavior (libcurl is an implicit dependency),
this patch adds a `--without-libcurl` option to indicate this default.
The check for libcurl and curl/curl.h is factored out as a separate
check before checking for `--enable-publish`.  If the two build options
are in conflict we exit with a clear error code.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2023-02-09 15:53:52 +01:00
Olof hagsand
91034e5361 YANG schema mount, added configure option --enable-yang-schema-mount 2023-01-30 11:49:11 +01:00
Olof Hagsand
a8e13047fc * YANG schema mount RFC 8528, state data 2023-01-27 15:11:08 +01:00
Olof Hagsand
b3dcee9639 * YANG schema mount RFC 8528, Initial commit (work in progress)
* Keep track of YANG unknowns with ys_cvec of EXTENSION
* C-API: Init ys_cvec to NULL, added yang_cvec_add() and adjusted code to use it
2023-01-20 16:16:02 +01:00
Olof Hagsand
bc6cc2b31f C-API: All calls to clicon_log_xml() changed to new function `clicon_debug_xml()\
Debugging, moved many detailed debugs from level 1 to 2
2023-01-15 13:17:58 +01:00
Olof hagsand
571e26e0d6 Revert with-defaults option,
Added clarifying NETCONF_DEFAULT_RETRIEVAL_REPORT_ALL compile-time option instead
2022-12-08 20:28:32 +01:00
Olof hagsand
100f15b699 Add SSH_BIN compile-time option
Clarify documentation of internal netconf message struct
2022-12-07 12:15:08 +01:00
Olof hagsand
d5c657bde3 Removed YANG_ORDERING_WHEN_LAST compile-time option (obsolete since 5.4) 2022-11-07 10:47:08 +01:00
Olof hagsand
1683723b1d Removed JSON_CDATA_STRIP compile-time option (obsolete since 5.4) 2022-11-07 10:07:10 +01:00
Olof hagsand
4b21a05bcc Fixed IDENTITYREF_KLUDGE removal #2 2022-11-07 09:19:29 +01:00
Olof hagsand
b0f898cf66 Fixed: [Yang identityref XML encoding is not general](https://github.com/clicon/clixon/issues/90)
* Revisiting this issue now seems to work, there are no regressions that fail when disabling IDENTITYREF_KLUDGE.
2022-11-05 12:07:44 +01:00
Olof hagsand
56f4bb45cc * Added PRETTYPRINT_INDENT compile-time option controlling indentation level for XML,JSON and TEXT
* Default value is `3`
2022-10-31 14:20:14 +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
c1e4595949 Refactoring of RESTCONF/TLS close code
Single closing function: restconf_close_ssl_socket
Added constant HTTP_ON_HTTPS_REPLY for http request on https socket
2022-09-13 23:01:19 +02:00
Olof hagsand
7d8ddf7697 Restconf RFC8071 call-home first working prototype 2022-07-31 09:59:52 +02:00
Olof hagsand
bed6d3c739 TEXT file format: Keep backward-compatible non-top-level prefix with compile-time option TEXT_SYNTAX_NOPREFIX
See https://github.com/clicon/clixon/issues/345
2022-07-26 18:10:27 +02:00
Olof hagsand
f6fe9f6a64 SNMP: fix SNMP set access of table entries
[Conversion of ethernet address (PhysAddress) and IP address (IPAddress) crashes agent](https://github.com/clicon/clixon/issues/340)
Hwaddress and IP adress for scalar and table set should now work
2022-06-26 11:31:28 +02:00
Olof hagsand
b5d17d643a SNMP: Started register table entries dynamically
Compile-time constant: SNMP_TABLE_DYNAMIC
Added MIB SNMP erroir handling
2022-06-26 11:30:29 +02:00
Olof hagsand
e32cb81b49 Clixon SNMP frontend update
Integrated netsnmp agent and clixon event handling, made a workaround of fdset:s
used in the netsnmp API with sockets used in Clixon
Added a hardcoded MIB OID handler as subagent
Added libnetsnmpagent to autotools dependency check
New OE_SNMP error code
2022-06-26 11:26:04 +02:00
Olof hagsand
d72aa58f90 Initial Net-snmp frontend commit
Added apps/snmp with makefiles, autotools, docker adjustment
Minimal snmp_main program
2022-06-26 11:26:04 +02:00
Olof hagsand
33c77c8a09 Cleanup, debug stmts, diff vars and obsolete compile options 2022-06-23 15:40:47 +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
4f9ed02a46 Text syntax parser/loader, fixed double leaf-list issue
Test: extended test_cli with format 4x tests
2022-06-03 14:03:01 +02:00
Olof hagsand
b6bfcb69f7 Text syntax parser/loader
Added support for list x y;
Uses a mechanism to parse as unknown XML body and post-parsing replace with list keys
Fixed example and test to work with new TEXT syntax
2022-06-02 19:28:49 +02:00
Olof hagsand
87719c623c Text syntax parser/loader
Leaf-list syntax using: "id [ leaf leaf ...]" syntax for output and input
Variables using \n\r in text
Added clixon_xvec_merge()
2022-06-01 11:08:19 +02:00
Olof hagsand
f11e4bad6c Http data server changes
* Indirect redirects from directory to `index.html`
  * Added `HTTP_DATA_INTERNAL_REDIRECT` compile-time option
* Added CLICON_RESTCONF_API_ROOT to clixon-config.yang
* Added 404 return without body if neither restconf, data or streams prefix match
* Fixed: HTTP/1 parse error for '/' path
2022-04-28 16:17:07 +02:00
Olof hagsand
76213057b6 * Extended the Restconf implementation with a limited www-data
* This is an experimental implementation
  * Added `www-data` feature and two new config options to clixon-config.yang:
     * `CLICON_WWW_DATA_PATH`
     * `CLICON_WWW_DATA_ROOT`
  * The limited implemtation is as follows:
     * path: Local files within `CLICON_WWW_DATA_ROOT`
     * operation GET, HEAD, or OPTIONS
     * query parameters not supported
     * indata should be NULL (no write operations)
     * Limited media: text/html, JavaScript, image, and css
     * Authentication as restconf
Generic changes:
  * Uniform path selection across fcgi, native http/1 + http/2
2022-04-21 16:01:33 +02:00
Olof hagsand
580396d32f - Misc documentation
- Test: move pid file from tmp to global storage to prevent multiple instances
2022-04-14 15:21:25 +02:00
Olof hagsand
8c60d81ed2 - Disabled xpath optimization for hierarchical list
- Made cli show xpath command more capable
2022-04-14 15:21:25 +02:00
Olof hagsand
aaf8dee44f * autotools: removed warning of HAVE_HTTP1 by adding doc-string
* NETCONF 1.1 capability: removed extra, redundant conditional
2022-04-03 12:43:54 +02:00
Olof hagsand
bf983d7ca4 * New clixon-config@2022-03-21.yang revision
* Added option:
    * `CLICON_NETCONF_BASE_CAPABILITY`
* Removed `NETCONF_1_1_ANNOUNCE` compile option
2022-03-27 17:38:36 +02:00
Olof hagsand
85c6c11970 * Netconf: Disabled default announcing of Netconf 1.1, instead only announce 1.0
* See [Clixon does not switch to chunked framing after NETCONF 1.1 is negotiated](https://github.com/clicon/clixon/issues/314)
  * To enable Netconf 1.1, set `NETCONF_1_1_ANNOUNCE`
2022-03-17 20:29:41 +01:00
Olof hagsand
dfeb7cef75 * CLI reconnects to backend if backend restarts with a warning
* Note that edits to the candidate database or locks will be lost
  * To force the CLI to exit if backend restarts, undef `PROTO_RESTART_RECONNECT`
  * This is an effect of the fix of [Broken pipe error seen in client (cli) when backend restarts and CLICON_SOCK is recreated](https://github.com/clicon/clixon/issues/312), the CLI behavior on backend restart is changed.
* Added `eof` parameter to `clicon_rpc()` and `clicon_rpc1()` and error handling modified
2022-03-16 18:30:21 +01:00