Skip to content

Clixon 6.1.0

Compare
Choose a tag to compare
@olofhagsand olofhagsand released this 19 Feb 10:59
· 532 commits to master since this release

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