Clixon 6.1.0
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
totrue
- 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
- Moved all extended internal NETCONF attributes to the clicon-lib namespace
- With-defaults default retrieval mode has changed from
REPORT-ALL
toEXPLICIT
- 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 RESTCONFGET
- To keep backward-compatible behavior, define option
NETCONF_DEFAULT_RETRIEVAL_REPORT_ALL
ininclude/clixon_custom.h
- Alternatively, change all get operation to include with-defaults parameter
report-all
- This means that all get operations without
C/CLI-API changes on existing features
Developers may need to change their code
- Changed docker builds
clixon-test
built indocker/test
- Renamed from
clixon-system
built indocker/main
- Renamed from
clixon-example
built indocker/example
- Added netconf ssh subsystem
- Renamed from
clixon
built indocker/base
- C-API
xml2xpath()
: Addedint 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: Addedclicon_handle h
as first parameter- Example change:
xml_bind_yang(x, y, yp, xe)
->xml_bind_yang(h, x, y, yp, xe)
->
- Example change:
xmldb_get0()
: Addedwith-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)
- Example change:
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)
- Example change:
xpath_vec_flag()
: Changed type of sixthveclen
parameter tosize_t *
clicon_log_xml()
: All calls changed to new functionclicon_debug_xml()
clixon_proc_socket()
: Addedsock_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.
- Implemented by:
- New plugin callbacks
ca_yang_mount
- see the RFC 8528 supportca_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 initializationMSG
= 2: Input and output packets, read datastoreDETAIL
= 4: xpath parse trees, etcEXTRA
= 8: Extra detailed logs, message dump in hex
- Added flag names:
- 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
-
Added translation from Yang type to SNMP type by @StasSt-siklu in #406
-
Fixed: Yang leaves without smiv2:oid directive are not shown well in snmpwalk #398
- Yang leaves without smiv2:oid directive are not shown well in]… by @doron2020 in #402
-
Fixed: Initialized session-id to 1 instead of 0 following ietf-netconf.yang
-
Fixed: snmpwalk doesn't show properly SNMP boolean values which equal false
-
Fixed: yang-library: Remove revision if empty instead of sending empty revision
- This was a change from RFC 7895 to RFC 8525
-
Fixed: locally scoped YANG typedef in grouping does not work #394
-
Fixed: Netconf monitoring
- Announce module capability
- Return origin Yang file in get-schema