Releases: clicon/clixon-controller
Controller 1.6.0
1.6.0
21 November 2025
New features
- New: Configure and adapt to device netconf encapsulation 1.0 or 1.1
- Improved NETCONF error messages on locked datastore
- New
[email protected]revision- Added the following fields to device-common:
- private-candidate
- Added the following fields to device-common:
- New
[email protected]revision- Added the following fields to device-common:
- private-candidate
- netconf-framing
- netconf-state-schemas
- Added the following fields to device-common:
Corrected Bugs
- Fixed: Allow retrieving modules with empty revisions
- Fixed: Memory leak after reopening connection
- Fixed: commit on multiple devices with one device with not pulled local commit drops connection to subset of devices
- Fixed: Device closes when device out-of-sync (Only > 50 devices)
- Fixed: set glob skip disabled devices correctly and warn of different YANGs
- Fixed: get-schema rpc in netconf monitoring: need to decode yang module with CDATA
Controller 1.5.0
1.5.0
29 July 2025
New features
- New: NACM for Clixon Controller
- Support for services
- Testcases for controller nacm and nacm+restconf
- Added cli show detail command
- New: CLI exclusive mode for candidate
- Set
CLICON_AUTOLOCK=true
- Set
- New: new command "pull diff"
- Added
pull <device> diff | check
- Added
- New: ssh keep-alive
- Hard-coded to 300s
- New
[email protected]revision- Added rpc
device-rpc
- Added rpc
API changes on existing protocol/config features
- New
[email protected]revision
Corrected Bugs
- Fixed: Candidate CLICON_AUTOLOCK not automatically removed
- Fixed: RESTCONF PUT/POST data does sometimes not work across mountpoint
- Fixed: Controller diff does not check for NACM read rules
- Fixed: Controller commit RPC does not check locks
- Fixed: Syntax errror when deleting leafs on Junos
- Fixed: Confusing error message if device has NACM
- Fixed: Improve error message when creator tag is malformed
Controller 1.4.0
1.4.0
3 April 2025
The controller 1.4 introduces RESTCONF support and a new extensions architecture.
New features
- Controller RESTCONF support
- New extension plugin dir with ability to add device-specific plugins and YANGs
- First junos-native plugin for non-rfc-compliant devices
- Check if part of client-rpc, if so send notifications asynchronously
- Device handle flags and dynamic mechanism to allocate flags
API changes on existing protocol/config features
- New
[email protected]revision- Added
CONTROLLER_SSH_IDENTITYFILE
- Added
- New
[email protected]revision- Added restconf
- Added common fields to transaction state and notification
Controller 1.3.0
1.3.0
30 January 2025
The controller 1.3 release features device RPCs, device-groups, and show device state as well as cycle optimization.
New features
- New: device-groups to be first level objects
- Use device-groups when connecting, pull, push and show
- Optimization Performance: commit takes long time with many devices
- Avoid copy in compare/diff
- Optimized strip service at commit
- Show device state
- New CLI show device state command
- See CLI show state does not return device state (config false) data
- Execute arbitrary device RPCs using templates
API changes on existing protocol/config features
- New
[email protected]revision- Changed RPC input parameter parameter name
devname->device:config-pullcontroller-commitconnection-changeget-device-configdatastore-diffdevice-template-apply- This applies to any "raw" NETCONF RPC:s, CLI code is updated
- Changed default device-common/port to 830
- Added hide-show extension to created container
- Added device-generic-rpc
- Changed RPC input parameter parameter name
Corrected Bugs
- Fixed: Not possible to remove service if "ctrl:created-by-service" is located in the top of the YANG specification
- Fixed: Running undefined RPC towards a device closes connection
- Fixed: RPC commit diff problem
- Fixed: CLI: default format text | display
- Fixed: CLI: Don't show ... tags by default
- Fixed: YANG domains: issues if devices in different domains have identical schemas
- Fixed: Generalize default autocli.xml file
- Fixed: Commit without changes results in weird diff
Controller 1.2.0
1.2.0
28 October 2024
New features
- Added configurable port for NETCONF over SSH
- Added yang domains for mount-point isolation
- New CLI commands:
- show device yang
- show device capability
API changes on existing protocol/config features
- New version string on the form:
1.1.0-1+70+gbae59f2 - Edits to device addr, user, domain, etc causes device disconnect
- Removed
--with yang-installdirfrom configure- Use
DATADIRinstead
- Use
- New
[email protected]revision- Added
device-domains - Added
portto device-common
- Added
- New
[email protected]revision- Removed defaults for:
CONTROLLER_ACTION_COMMANDCONTROLLER_PYAPI_MODULE_PATHCONTROLLER_PYAPI_PIDFILE
- Obsoleted
CONTROLLER_YANG_SCHEMA_MOUNT_DIR
- Removed defaults for:
- Re-arranged directories
- Put Controller YANG under
$DATADIR/controller, typically /usr/local/share/controller. - Removed
YANG_INSTALLDIR - Mountpoint dirs moved to sub-levels under
/usr/local/share/controller/mounts- Example:
/usr/local/share/controller/mounts/default - For isolated domains
- Example:
- Put controller YANG root in
/usr/local/share/controller- Moved from
/usr/local/share/clixon/controller
- Moved from
- Put Controller YANG under
Corrected Bugs
- Fixed: CLI bug w/ device domains on juniper qfx devices
- Fixed: Controller doesn't properly identify ietf-netconf-monitoring in hello statement on FS switch
- Fixed: commit fail in transaction caused assertion
Controller 1.1.0
1.1.0
3 July 2024
New features
- Added CLI command logging
- Added split config data into multi-datastore
- Added priority for north-bound sockets
- Added session kill
- CLI configurable format: Default format should be configurable
API changes on existing protocol/config features
- Rearranged CLI
connectioncommand and made it blocking.
Corrected Bugs
- Fixed: When changing configuration for devices which are in state closed we get an error message
- Fixed: "show devices" hangs if SSH-process to any device is killed
- Fixed: CLI load merge from stdin only worked once
- Fixed: default format does not work in configure mode
But must be default format xml for pipe display to work - Fixed: connection open does local commit on services
- Fixed: CLI: Can't change configuration on Juniper QFX devices
- Fixed: Commit to device(s) in OPEN state even if we have other devices in CLOSED state
Clixon controller 1.0.0
1.0.0
12 March 2024
Clixon controller 1.0 is the first major release.
New features
- Added badges for readthedocs, codecov and coverity
- New: show version(s)
- New: Added template (formal) variables which includes CLI autocompletion and sanity checks
- New: SSH StrictHostKeyChecking optional
- New: Exclusive candidate configuration
- Replaced creator attributes with a configured solution
- New: show creator paths associated to service instance
- New CLI commands:
show sessions [detail]unlock <datastore>Add unlock CLI command
- Optimization
- YANG memory-footprint optimization
- Optimize memory by sharing yspec between devices
- Performance issues with CLI tab-completion
- Optimization of
cligen_treeref_wrap - Dont read device config data when read device state
- Also in clixon:
- Optimization of
yang_find - Added mountpoint cache as yang flag
YANG_FLAG_MTPOINT_POTENTIAL
- Optimization of
- Optimization of
- YANG memory-footprint optimization
API changes on existing protocol/config features
- Debug level
-D 1changed to-D app.- -D msg (-D 2) still applies for message debugging
- CLI apply service syntax changed:
- From:
apply services <path>to:apply services <service> <instance> - Example:
apply services testA[name='foo']to:apply services testA foo
- From:
- In configure mode, reordered apply template/services to:
apply [template|services]
- New
[email protected]revision- Added warning field to transaction
- Added created-by-service grouping
- Added service-instance parameter to rpc controller-commit
- Added ssh-stricthostkey
Corrected Bugs
- Fixed: CLI expand of apply services instance
- Fixed: Syntax errors must be shown in CLI
- Fixed: Lock-denied if device connection fails
- Fixed: Device connection errors could be more informative
- Fixed: apply services does not allow dry-run
- Fixed: old device config wrongly pushed back
- Fixed: services reapply does not allow specific service instance
- Fixed: Device pull from configure only sync running
- Fixed: Notification is not sent when a service parameter is changed
- Fixed: Commit/connect transaction may lock datastore with no info or method to break it
- Fixed: pull config from device also does commit local config
- Fixed: Commit don't push configuration if service is configured
- Fixed: "commit diff" after applying a service always seems to show a diff
- Fixed: Backend may exit with assertion if the device return warnings
- Fixed: apply template with multiple variables do not work in some cases
Clixon controller 0.2.0
0.2.0
6 December 2023
The clixon controller 0.2.0 release features device templates, local
yang modules, simple templates and many bugfixes.
Based on CLIgen/Clixon 6.5.0.
New features
- Templates
- First version uses simple variable substitution in XML bodies
- Template is YANG anydata which means CLI editing is not possible, instead needs XML input
- CLI: Load raw XML/JSON from stdin
- Add device / profile ignore fields
- Support a loadable mechanism for device profiles
- The mechanism loads a set of configured modules locally from disk,
- Instead of using RFC 6022 NETCONF monitoring get-schema method to devices
- Modified the controller yang with device-profile and device-common
API changes on existing protocol/config features
- New
[email protected]revision- Added CONTROLLER_YANG_SCHEMA_MOUNT_DIR
- New
[email protected]revision- Added device-profile list
- Added device-common grouping, for common device/device-profile fields
- Added module-set to device-common
- Added ignore-compare extension
Corrected Bugs
- Fixed: Unable to commit to device with warnings
- Fixed: cl:creator tags should survive a backend restart
- Fixed: "show compare devices diff" should display device name
- Fixed: Device configuration is removed when starting from running
- Fixed: "validate push" etc should only use the connected devices
- Fixed: Command 'show compare' broken
- Fixed: Possible to get stuck in an lock-denied state with no way to recover
- Fixed: NETCONF delete messages include extra XML
- Fixed: Validation errors not shown in CLI
Clixon controller 0.1.0
0.1.0
30 September 2023
Based on CLIgen/Clixon 6.4.0.
This release focuses on testing with openconfig, arista and juniper
routers. It is still experimental.
API changes on existing protocol/config features
- New
[email protected]revision- Added identity services for NETCONF monitoring/transport
Minor features
- Added backend memory tests and checks for file descriptor leaks
- Changed and extended CI (github actions) with openconfig devices
- Checked and fixed memeory leaks
- Added: Add show command for processes
Corrected Bugs
- Fixed: Tab completion with configuration for multiple vendors
- Fixed: OpenConfig: Error when validating/committing
- Fixed: XML parse error
- Changed show output to start from root
- Fixed: "show devices detail" returns data for all devices
- Fixed: Abort transaction if more one client
- Fixed: RPC error when using pipe
- Fixed: 'show devices | display cli' throws an error
- Fixed: Weird things happen when piping set command
Clixon controller release 0.0.0
Clixon controller 0.0.0
14 August 2023
First prototype version. Based on CLIgen 6.3.0 and Clixon 6.3.1