Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Releases: clicon/clixon

Clixon 6.3.0

29 Jul 12:56

Choose a tag to compare

6.3.0

29 July 2023

Clixon 6.3 introduces CLI output pipes and multiple updates and optimizations, primarily to the CLI.

New features

API changes on existing protocol/config features

Users may have to change how they access the system

  • New [email protected] revision
    • Added options: CLICON_CONFIG_EXTEND
    • Moved datastore-format datastype to clixon-lib
  • New [email protected] revision
    • Restructured and extended stats rpc to schema mountpoints
    • rpc <stats> is not backward compatible
  • New [email protected] revision
    • New alias and skip extensions (NOTE: just added in YANG, not implemented)
    • New grouping-treeref option

C/CLI-API changes on existing features

Developers may need to change their code

  • Added uid, gid and fdkeep parameters to clixon_process_register() for drop privs
  • Added output function to JSON output:
    • xml2json_vec(...,skiptop) --> xml2json_vec(..., cligen_output, skiptop)
  • yang2cli_yspec removed last argument printgen.
  • Removed obsolete: cli_auto_show()

Minor features

  • 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_cli
  • Changed YANG uses/grouping to keep uses statement and flag it with YANG_FLAG_USES_EXP
  • Removed extras/ and build-root/ build code since they are not properly maintained
  • Refactored cli-syntax code to use cligen pt_head instead (long overdue)
  • Modified backend exit strategy so that 2nd ^C actually exits
  • Performance: A change in the merge code made "co-located" config and non-config get retrieval go considerable faster. This is done by a specialized xml_child_each_attr() function.
  • CLI: Added show statistics example code for backend and CLI memory stats
  • Support yang type union with are same subtypes with SNMP
  • Removed obsolete compile options introduced in 6.1:
    • NETCONF_DEFAULT_RETRIEVAL_REPORT_ALL
    • AUTOCLI_DEPRECATED_HIDE

Corrected Bugs

Clixon 6.2.0

30 Apr 19:13

Choose a tag to compare

6.2.0

30 April 2023

Clixon 6.2.0 brings no new major feature changes, but completes YANG
schema mount and other features required by the clixon controller
project, along with minor improvements and bugfixes.

API changes on existing protocol/config features

Users may have to change how they access the system

  • New [email protected] revision
    • Added options: CLICON_RESTCONF_NOALPN_DEFAULT
    • Extended datastore-format with CLI and text
  • New [email protected] revision
    • Added creator meta-object

C/CLI-API changes on existing features

Developers may need to change their code

  • C-API
    • clixon_xml2file and clixon_xml2cbuf added prefix argument
      • Example application is to add "+"/"-" for diffs
      • Example change:
        • clixon_xml2file(f,x,p,f,s,a) -> clixon_xml2file(f,x,p,NULL,f,s,a)
        • clixon_xml2cbuf(c,x,l,p,d,s) -> clixon_xml2cbuf(c,x,l,p,NULL,d,s)
    • xmldb_validate is removed. Yang checks should be enough, remnant of time before YANG checks.
    • xml_diff: removed 1st yspec parameter
    • xml2xpath(): Added int apostrophe as 4th parameter, default 0
      • This is for being able to choose single or double quote as xpath literal quotes
    • clicon_msg_rcv: Added intr parameter for interrupting on ^C (default 0)
    • Renamed include file: clixon_backend_handle.hto clixon_backend_client.h
    • candidate_commit(): validate_level (added in 6.1) marked obsolete

Minor features

  • Adjusted to Openssl 3.0
  • Unified netconf input function
    • Three different implementations were used in external, internal and controller code
      • Internal netconf still not moved to unified
    • The new clixon_netconf_input API unifies all three uses
    • Code still experimental controlled by NETCONF_INPUT_UNIFIED_INTERNAL
  • RFC 8528 YANG schema mount
    • Made cli/autocli mount-point-aware
  • Internal NETCONF (client <-> backend)
    • Ensure message-id increments
    • Separated rpc from notification socket in same session
  • Restconf: Added fallback mechanism for non-ALPN HTTPS
    • Set CLICON_RESTCONF_NOALPN_DEFAULT to http/2 or http/1.1
    • For http/1 or http/2 only, that will be the default if no ALPN is set.
  • Fixed: Add support decimal64 for SNMP

Corrected Bugs

  • Fixed RESTCONF race conditions on SSL_shutdown sslerr ZERO_RETURN appears occasionally and exits.
  • Fixed: RESTCONF: some client cert failure leads to restconf exit. Instead close and continue

Clixon 6.1.0

19 Feb 10:59

Choose a tag to compare

6.1.0

19 Feb 2023

The Clixon 6.1 release completes Network monitoring (RFC 6022) and introduces a first version of YANG schema mount (RFC 8528). The main focus has been interoperability and basic support for the ongoing Clixon controller work.

New features

  • YANG schema mount RFC 8528
    • The primary use-case is the clixon-controller but can be used independently
    • New plugin callback: ca_yang_mount
      • To specify which YANG modules should be mounted
    • New plugin callback: ca_yang_patch
      • A method to patch a YANG module
    • To enable yang mounts, set new option CLICON_YANG_SCHEMA_MOUNT to true
    • Restrictions:
      • Only schema-ref=inline, not shared-schema
      • Mount-points must be presence containers, regular containers or lists are not supported.
  • Netconf monitoring RFC 6022
    • This is part 2, first part was in 6.0
    • Datastores, sessions and statistics
      • Added clixon-specific transport identities: cli, snmp, netconf, restconf
      • Added source-host from native restonf, but no other transports
      • Hello statistics is based on backend statistics, hellos from RESTCONF, SNMP and CLI clients are included and dropped external NETCONF sessions are not
      • RFC 6022 "YANG Module for NETCONF Monitoring"
    • See Feature Request: Support RFC 6022 (NETCONF Monitoring)

API changes on existing protocol/config features

Users may have to change how they access the system

  • Obsolete config options given in the configuration file are considered an error
  • New [email protected] revision
    • Added option: 'CLICON_YANG_SCHEMA_MOUNT`
    • Removed obsolete option: CLICON_MODULE_LIBRARY_RFC7895
  • clixon-lib,yang
    • Moved all extended internal NETCONF attributes to the clicon-lib namespace
      • These are: content, depth, username, autocommit, copystartup, transport, source-host, objectcreate, objectexisted.
    • The internal attributes are documented in https://clixon-docs.readthedocs.io/en/latest/netconf.html
  • With-defaults default retrieval mode has changed from REPORT-ALL to EXPLICIT
    • This means that all get operations without with-defaults parameter do no longer
      return implicit default values, only explicitly set values.
    • Applies to NETCONF <get>, <get-config> and RESTCONF GET
    • To keep backward-compatible behavior, define option NETCONF_DEFAULT_RETRIEVAL_REPORT_ALL in include/clixon_custom.h
    • Alternatively, change all get operation to include with-defaults parameter report-all

C/CLI-API changes on existing features

Developers may need to change their code

  • Changed docker builds
    • clixon-test built in docker/test
      • Renamed from clixon-system built in docker/main
    • clixon-example built in docker/example
      • Added netconf ssh subsystem
      • Renamed from clixon built in docker/base
  • C-API
    • xml2xpath(): Added int spec as third parameter, default 0
      • This was for making an xpath to a yang-mount point (only for yang-mount)
      • Example change:
        • xml2xpath(x, n, xp) -> xml2xpath(x, n, 0, xp)
    • xml_bind_*() functions: Added clicon_handle h as first parameter
      • Example change:
        • xml_bind_yang(x, y, yp, xe) -> xml_bind_yang(h, x, y, yp, xe) ->
    • xmldb_get0(): Added with-defaults parameter, default 0
      • Example change:
        • xmldb_get0(0, db, yb, n, xp, c, x, m, x) -> xmldb_get0(0, db, yb, n, xp, c, WITHDEFAULTS_REPORT_ALL, x, m, x)
    • candidate_commit(): Add myid as fourth and validate_level as fifth parameter, default 0
      • Example change:
        • candidate_commit(h, x, d, c) -> candidate_commit(h, x, d, 0, VL_FULL, c)
    • xpath_vec_flag(): Changed type of sixth veclen parameter to size_t *
    • clicon_log_xml(): All calls changed to new function clicon_debug_xml()
    • clixon_proc_socket(): Added sock_flags parameter

Minor features

  • Misc. build fixes encountered when cross-compiling by @troglobit in #418
  • Update FAQ.md hello world example url by @jarrodb in #419
  • Done: Request to suppress auto-completion for "deprecated" / "obsolete" status and warn the user.
    • Implemented by:
      • Not generating any autocli syntax for obsolete YANG statements,
      • Hide statements for deprecated YANG statements.
  • New plugin callbacks
    • ca_yang_mount - see the RFC 8528 support
    • ca_yang_patch - for modifying existing YANG modules
  • 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: xpath parse trees, etc
      • EXTRA = 8: Extra detailed logs, message dump in hex
  • Added ISO/IEC 10646 encodings to XML parser: &#[0-9]+; and &#[0-9a-fA-F]+;
  • Added CLIXON_CLIENT_SSH to client API to communicate remotely via SSH netconf sub-system

Corrected Bugs

Clixon 6.0.0

29 Nov 16:37

Choose a tag to compare

6.0.0

29 Nov 2022

The 6.0 release features confirmed-commit and an initial version of
netconf monitoring along with many minor changes and bug fixes.

New features

  • Confirmed-commit capability
    • Standards
      • RFC 4741 "NETCONF Configuration Protocol": Section 8.4
      • RFC 6241 "Network Configuration Protocol (NETCONF)": Section 8.4
    • Features
      • :confirmed-commit:1.0 capability
      • :confirmed-commit:1.1 capability
    • Added support for relevant arguments to CLI commit
    • See Netconf Confirmed Commit Capability
  • Netconf monitoring, part 1

API changes on existing protocol/config features

Users may have to change how they access the system

  • New [email protected] revision
    • Added option:
      • CLICON_NETCONF_MONITORING
      • CLICON_NETCONF_MONITORING_LOCATION
  • Added PRETTYPRINT_INDENT compile-time option controlling indentation level for XML, JSON, TEXT and YANG
    • Default value is 3
  • NETCONF: Removed message-id from hello protocol following RFC 6241

C/CLI-API changes on existing features

Developers may need to change their code

  • Code formatting: Change indentation style to space
    • Applies to all c/h/y/l/sh files and .editorconfig
  • C API changes:
    • Added expanddefault parameter to xml_yang_validate_rpc()
    • Added defaults parameter to clicon_rpc_get_pageable_list()
    • clicon_rpc_commit() and cli_commit
      • Added confirmed, cancel, timeout, persist-id, and persist-id-val parameters to
    • clicon_rpc_commit() and clicon_rpc_validate
      • Added three-value return.
      • Code need to be changed from: checking for <0 to <1 to keep same semantics
    • Added skiptop parameter to xml2json_vec()
    • Added xe argument to candidate_commit for confirmed commit extra parameters

Minor features

  • Removed obsoleted compile-time options since 5.4:
    • YANG_ORDERING_WHEN_LAST
    • JSON_CDATA_STRIP
  • Added fuzz code for xpath
  • List-pagination: Follow ietf-draft 100%: Removed list-pagination "presence"
  • Main example: Removed dependency of external IETF RFCs
  • Added warning if modstate is not present in datastore if CLICON_XMLDB_MODSTATE is set.

Corrected Bugs

Clixon 5.9.0

24 Sep 15:10

Choose a tag to compare

The 5.9 release features with-defaults (RFC 6243) and RESTCONF Call-home (RFC 8071) along with numerous bugfixes and usability improvements.

New features

  • With-defaults capability
    • Standards
      • RFC 6243 "With-defaults Capability for NETCONF"
      • RFC 8040 "RESTCONF Protocol": Section 4.8.9
    • Features:
      • :with-defaults capability
      • explicit basic mode
      • Full retrieval modes: explicit, trim, report-all, report-all-tagged.
      • RESTCONF with-defaults query for XML and JSON
        • Assigned meta-data for the ietf-netconf-with-defaults:default attribute for JSON (RFC8040 Sec 5.3.2)
    • Added withdefault option to cli show commands
    • See Netconf With-defaults Capability
  • RESTCONF call home
    • Standard: RFC 8071 "NETCONF Call Home and RESTCONF Call Home"
    • clixon-restconf.yang extended with callhome inspired by ietf-restconf-server.yang
      • See e.g., draft-ietf-netconf-restconf-client-server-26.txt
    • The <socket> list has been extended with a call-home presence container including:
      • reconnect-strategy/max-attempts
      • connection-type: either persistent or periodic
      • idle-timeout for periodic call-homes.
    • An example util client is clixon_restconf_callhome_client.c used in test cases
    • See call-home user guide

API changes on existing protocol/config features

Users may have to change how they access the system

  • NETCONF error handling for data-not-unique and missing-choice follows standard more closely
    • data-not-unique:
      • Added YANG namespace to <non-unique> tag
      • Changed yang-unique value to path insytead of single name
      • See RFC 7950 Sec 15.1
    • missing-choice:
      • Added <error-path>
      • Added YANG namespace to <missing-choice> tag
      • See RFC 7950 Sec 15.6
  • Backend transaction plugins: edit of choice node will always result in a "del/add" event for all edits of change nodes, never a "change" event.
  • Constraints on number of elements have been made stricter (ie unique, min/max-elements)
    • Usecases that passed previously may now return error
    • This includes:
      • Check of incoming RPCs
      • Check of non-presence containers

C/CLI-API changes on existing features

Developers may need to change their code

  • C API changes
    • Added defaults parameter to clicon_rpc_get() and clicon_rpc_get_config()
      • For upgrade, add new sixth parameter and set it to NULL.
  • CLISPEC changes of cli show functions
    • For details of updated API, see https://clixon-docs.readthedocs.io/en/latest/cli.html#show-commands
    • Changed cli_show_auto()
      • Added parameters for pretty-print, state and with-default
      • If the <prefix>is used, you need to change the call as follows:
        • cli_show_auto(<db>, <format>, <prefix>) -> cli_show_auto(<db>, <format>, true, false, NULL, <prefix>)
      • Otherwise the API is backward-compatible
    • Changed cli_show_config()
      • Added parameters for pretty-print, state and with-default
      • If the <prefix> parameter is used, you need to change the call as follows:
        • cli_show_config(<db>, <format>, <xpath>, <ns>, <prefix>) -> cli_show_auto(<db>, <format>, <xpath>, <ns>, true, false, NULL, <prefix>)
      • Otherwise the API is backward-compatible
    • Removed cli_show_auto_state(), replace with cli_show_auto with state set to true
    • Removed cli_show_config_state(), replace with cli_auto_show with state set to true
    • Replaced cli_auto_show() with cli_show_auto_mode()
      • The first argument is removed. You need to change all calls as follows:
        • cli_show_config(<treename>, <db>, ... -> cli_show_auto_menu(<db>, ...)
      • The cli_auto_show() callback remains in 5.9.0 for backward compatible reasons, but will be removed in later releaes.

Minor features

  • Restconf:
    • Openssl 3.0 is supported
    • Refactoring of code closing sockets. Some cornercase bugs have been removed.

Corrected Bugs

Clixon 5.8.0

28 Jul 18:51

Choose a tag to compare

5.8.0

28 July 2022

New features in Clixon 5.8.0 include a new SNMP frontend, YANG action and parse-able TEXT syntax.

New features

  • New SNMP frontend

    • Support for SNMP for retreiving and setting values via net-snmp using MIB-YANG mapping defined in RFC6643.
    • For details, see SNMP section of user manual
    • YANG [email protected] changes:
      • Added options:
        • CLICON_SNMP_AGENT_SOCK
        • CLICON_SNMP_MIB
    • New configure options:
      • --enable-netsnmp
      • --with-mib-generated-yang-dir=DIR (test only)
    • Thanks: Siklu Communications LTD for sponsoring this work
  • YANG Action (RFC 7950 Section 7.15)

    • Register action callback with action_callback_register()
      • The main example contains example code
    • Remains: check list keys, validate output
    • See Support for "action" statement
  • TEXT syntax is now parseable

API changes on existing protocol/config features

Users may have to change how they access the system

  • TEXT file format changed
    • With new parsing of TEXT format, the output is changed
      • Namespace/modulename added to top-level
      • Leaf-list support: a [ x y z ]
      • List key support: a x y { ... }
      • See compile-time option TEXT_LIST_KEYS
    • Keep backward-compatible non-top-level prefix with compile-time option TEXT_SYNTAX_NOPREFIX
  • Augmented XML uses default namespace
    • Instead of using prefixes for augmented XML, assign the default namespace
    • This does not change the semantics, but changes the way XML prefixes are used
    • Example augmented ipv4 into interface:
      • Previously: <interface><ip:ipv4 xmlns:ip="urn:...:ietf-ip"><ip:enabled>...
      • Now: <interface><ipv4 xmlns="urn:...:ietf-ip"><enabled>...

C/CLI-API changes on existing features

Developers may need to change their code

  • Changed C-API for xml translation/print the internal cxobj tree data structure to other formats.
    • Functions are merged, ie removed and replaced with more generic functions
    • Added skiptop parameter, if set only apply to children of a node, skip top node
      • default is 0
    • The new API is as follows:
      • clixon_xml2file() / clixon_xml2cbuf() - Print internal tree as XML to file or buffer, respectively
      • clixon_json2file() / clixon_json2cbuf() - Print internal tree as JSON to file or buffer, respectively
      • clixon_cli2file() - Print internal tree as CLI format to file
      • clixon_txt2file() - Print internal tree as text format to file
    • As developer, you need to replace the old functions to the new API as follows:
      • clicon_xml2file(f, x, l, p) -> clixon_xml2file(f, x, l, p, NULL, 0, 0)
      • clicon_xml2file_cb(f, x, l, p, fn) -> clixon_xml2file(f, x, l, p, fn, 0, 0)
      • cli_xml2file(x, l, p, fn) -> clixon_xml2file(stdout, x, l, p, fn, 0, 0)
      • clicon_xml2cbuf(c, x, l, p, d) -> clixon_xml2cbuf(c, x, l, p, d, 0)
      • clicon_xml2str(x) -> Rewrite using cbufs and clixon_xml2cbuf()
      • xml2json(f, x, p) -> clixon_json2file(f, x, p, NULL, 0, 0)
      • xml2json_cb(f, x, p, fn) -> clixon_json2file(f, x, p, fn, 0, 0)
      • xml2json_cbuf(c, x, p) -> clixon_json2cbuf(c, x, p, 0, 0)
      • xml2cli(h, f, x, p, fn) -> clixon_cli2file(h, f, x, p, fn, 0)
      • cli_xml2txt(x, fn, l) -> clixon_txt2file(stdout, x, l, NULL, 0, 0)
      • xml2txt(f, x, l) -> clixon_txt2file(f, x, l, NULL, 0, 0)
      • xml2txt_cb(f, x, fn) -> clixon_txt2file(f, x, 0, NULL, 0, 0)

Minor features

Corrected Bugs

Clixon 5.7.0

17 May 10:06

Choose a tag to compare

17 May 2022

The Clixon 5.7 release introduces (long overdue) NETCONF chunked framing as defined
in RFC 6242. It also introduces a limited http data service and lots of bugfixes.

New features

  • Implementation of "chunked framing" according to RFC6242 for Netconf 1.1.
  • Extended the Restconf implementation with a limited http-data static service
    • Added two new config options to clixon-config.yang:
      • CLICON_HTTP_DATA_PATH
      • CLICON_HTTP_DATA_ROOT
    • Added feature http-data to restconf-config.yang and the following option that needs to be true
      • enable-http-data
    • Added HTTP_DATA_INTERNAL_REDIRECT compile-time option for internal redirects to index.html
    • For more info, see user manual documentation

API changes on existing protocol/config features

Users may have to change how they access the system

  • CLI

    • clixon_cli reconnects to backend if backend restarts with a warning
    • Expansion of YANG leafref type default behavior has changed
      • In the autocli and handcrafted CLI:s using expand_dbvar() the CLI expansion followed the leafrefs to the sources, ie the origin of the leafrefs
      • Instead leafref expansion now expands according to existing leafrefs by default
      • Example:
        • Assume leafref with leafref pointing to source if values:
          • <if>a</if><if>b</if><if>c</if> <ifref>b</ifref>
        • Existing behavior: expand to: a, b, c
        • New default behavior: expand to: b
      • To keep existing behavior, set <CLICON_CLI_EXPAND_LEAFREF>true<CLICON_CLI_EXPAND_LEAFREF>
  • Restconf

    • Added 404 return without body if neither restconf, data or streams prefix match
  • Netconf:

    • Usage of chunked framing
      • To keep existing end-of-message encoding, set CLICON_NETCONF_BASE_CAPABILITY to 0
      • Added clixon_netconf command-line option -0 and changed -H to -1
        • -0 means dont send hello, but fix netconf base version to 0 and use EOM framing
        • -1 means dont send hello, but fix netconf base version to 1 and use chunked framing
    • Error message data-not-unique changed to return schema nodes instead of XML for RFC7950 compliance
  • YANG

    • Instead of removing YANG which is disabled by if-feature, replace it with an yang anydata node.
    • New [email protected] revision
      • Added option:
        • CLICON_RESTCONF_API_ROOT
        • CLICON_NETCONF_BASE_CAPABILITY
        • CLICON_HTTP_DATA_PATH
        • CLICON_HTTP_DATA_ROOT
        • CLICON_CLI_EXPAND_LEAFREF
    • New [email protected] revision
      • Added option:
        • enable-http-data
      • Added feature:
        • http-data

C/CLI-API changes on existing features

Developers may need to change their code

  • Added nsc parameter to xml2xpath() and ensured the xpath uses prefixes.
    • Old code: add NULL as second parameter
  • Added eof parameter to clicon_rpc() and clicon_rpc1() and error handling modified

Minor features

Corrected Bugs

5.6.0

08 Mar 09:52

Choose a tag to compare

Clixon 5.6 removes the dependency of libevhtp and libevent2 for native HTTP/1
RESTCONF, module-state has been upgraded to RFC8525 and a lot of bugs
have been fixed, thanks to the community for all feedback.

New features

  • Yang library upgraded from RFC7895 to RFC 8525
  • RESTCONF Internal HTTP/1 native parser
    • Removed dependency of libevhtp/libevent2
    • Replace configure option --disable-evhtp with --disable-http1 for disabling HTTP/1 (default enabled)

API changes on existing protocol/config features

Users may have to change how they access the system

  • Module state upgrade: RFC7895 to RFC8525:
    • To upgrade to RFC8525:
      • Set CLICON_YANG_LIBRARY to true and CLICON_MODULE_LIBRARY_RFC7895 to false
    • To keep RFC7895:
      • Set both CLICON_YANG_LIBRARY and CLICON_MODULE_LIBRARY_RFC7895 to true
    • Following RFC8525, the upgrade means that the state-data returned using GET is changed:
      • Preamble changed from: <modules-state>... to: <yang-library><module-set>...
      • module-state-id changed to content-id
      • conformance-type removed
    • Note that the datastore feature CLICON_XMLDB_MODSTATE is backward compatible with RFC8525.
  • New [email protected] revision
    • Added option:
      • CLICON_LOG_STRING_LIMIT
      • CLICON_YANG_LIBRARY
    • Changed default value:
      • CLICON_MODULE_LIBRARY_RFC7895 to false
    • Removed (previosly marked) obsolete options:
      • CLICON_RESTCONF_PATH
      • CLICON_RESTCONF_PRETTY
      • CLICON_CLI_GENMODEL
      • CLICON_CLI_GENMODEL_TYPE
      • CLICON_CLI_GENMODEL_COMPLETION
      • CLICON_CLI_AUTOCLI_EXCLUDE
      • CLICON_CLI_MODEL_TREENAME
  • RESTCONF replies on the form: {"data":...} changed to: {"ietf-restconf:data":...}
  • YANG leafref require-instance default changed to true
  • Autotools/configure changes
    • configure --with-wwwdir=<dir> is removed
    • Configure option --disable-evhtp with --disable-http1 for disabling HTTP/1 (default enabled)
  • Command field of clixon-lib:process-control RPC reply used CDATA encoding but now uses regular XML encoding

C/CLI-API changes on existing features

  • Added RFC7951 parameter to clixon_json_parse_string() and clixon_json_parse_file()
    • If set, honor RFC 7951: JSON Encoding of Data Modeled with YANG, eg it requires module name prefixes
    • If not set, parse as regular JSON

Minor features

Corrected Bugs

5.5.0

20 Jan 17:06

Choose a tag to compare

5.5.0

20 January 2022

This release introduces a new autocli design with a clixon-autocli YANG file

New features

  • Changed auto-cli design
    • See autocli documentation for overview
    • Added new YANG clixon-autocli.yang moving all autocli options there
      • Default rules for module exclusion, list-keywords, edit-modes, treeref-state and completion
      • Specialized rules for module exclusion and compression
    • Replaced separate autocli trees with a single @basemodel tree by using filter labels
      • Filter labels are added to the basemodel tree and then filtered out using @remove:<label>
      • This method reduces memory usage and is more generic
      • Backward compatible: can continue use the "old" trees.
      • Note: while @datamodel etc are backward compatible, the autocli redesign is NOT backward compatible
        • see API changes
    • New autocli edit-mode design
      • Control which modes to use with edit-mode-default
        • Default is create edit-mode for all containers and list entries
      • New edit-mode tree: @datamodelmode
    • Moved hide extensions from clixon-lib to clixon-autocli

API changes on existing protocol/config features

Users may have to change how they access the system

  • Auto-cli edit-modes changed
    • CLI-spec variable CLICON_PROMPT %W changed semantics due to long prompt
      • From "Full Working edit path" to "Last element of working path"
      • Use %w if you want to keep "Full working path"
    • Edit modes only for list and container nodes
    • Change cli spec entry to edit @datamodelmode, cli_auto_edit("basemodel");
  • New [email protected] revision
    • Extension autocli-op obsoleted and no longer supported, use clixon-autocli hide and hide-show instead as follows:
      • cl:autocli-op hide -> autocli:hide
      • cl:autocli-op hide-database -> autocli:hide-show
      • cl:autocli-op hide-database-auto-completion -> autocli:hide; autocli:hide-show
  • New [email protected] revision
    • Removed obsolete options:
      • CLICON_YANG_LIST_CHECK
    • Fixed: Configure option CLICON_RESTCONF_PRETTY was marked as obsolete but was still used.
      • CLICON_RESTCONF_PRETTY is now obsolete for sure
      • Use: restconf/pretty
    • Fixed: Configure option CLICON_RESTCONF_PATH was marked as obsolete but was still used.
      • CLICON_RESTCONF_PATH is now obsolete for sure
      • Instead if you use fgci/nginx:
        • Use restconf/fcgi-socket
        • Ensure <CLICON_FEATURE>clixon-restconf:fcgi</CLICON_FEATURE> is set
    • Marked as obsolete and moved autocli config options from clixon-config.yang to clixon-autocli.yang

C/CLI-API changes on existing features

Developers may need to change their code

  • Removed #ifdef __GNUC__ around printf-like prototypes since both clang and gcc have format/printf macros defined

  • Test changes

    • Use YANG_STANDARD_DIR from ./configure --with-yang-standard-dir=DIR instead of YANGMODELS from site.sh
    • Remove dependency of IETF YANGs on most tests
    • Remove dependency of example/main in most tests, instead make local copy of example yang
    • Changed configure --with-yang-standard-installdir to configure --with-yang-standard-dir

Corrected Bugs

  • Fixed: Autocli YANG patterns including " were not properly escaped: \"
  • Ensure auto-cli can be run with config option CLICON_CLI_VARONLY=1
  • Fixed: SEGV in backend callback for user-defined RFC:
    • rpc_callback_call(): Check if nrp parameter is NULL