Overview

Clixon is a management framework that can be used by networking devices and other computer systems. Clixon provides a datastore, CLI, NETCONF and RESTCONF interfaces all defined by YANG.

Clixon links:

Most of the projects using Clixon are for networking devices. But Clixon can be used for other YANG-based systems as well due to a modular and pluggable architecture.

Clixon has a transaction mechanism that ensures configuration operations are atomic. It also features a generated interactive command-line interface using CLIgen.

The goal of Clixon is to provide a useful, production-grade, scalable and free YANG based configuration tool.

Clixon is open-source and dual licensed. Either Apache License, Version 2.0 or GNU General Public License Version 2.

System Architecture

            +------------------------------------------+
            |  Frontends:          +------------+      |
            |  +----------+        | configfile |      |
            |  |   cli    |--+     +------------+      |
            |  +----------+   \ +----------+--------+  |
            |  +----------+    \| backend  | plugin |  |
User  <-->  |  | restconf |---- | daemon   | plugin |  |  <--> Underlying
            |  +----------+    /+----------+--------+  |       System
            |  +----------+   /    +------------+      |
            |  | netconf  |--+     | datastores |      |
            |  +----------+        +------------+      |
            +------------------------------------------+

The core of the Clixon architecture is a backend daemon with configuration datastores and a set of internal clients: cli, restconf and netconf.

The clients provide frontend interfaces to users, including an interactive CLI, RESTCONF over HTTP, and XML NETCONF over SSH. Internally, the clients and backend communicate via NETCONF over a UNIX socket.

The backend manages a configuration datastore and implements a transaction mechanism for configuration operations (eg, create, read, update, delete) . The datastore supports candidate, running and startup configurations.

When you adapt Clixon to your system, you typically start with a set of YANG specifications that you want implemented. You then write backend plugins that interact with the underlying system. The plugins are written in C using the Clixon API and a set of plugin callbacks. The main callback is a transaction callback, where you specify how configuration changes are made to your system.

You can also design an interactive CLI using CLIgen, where you specify the CLI commands and write CLI plugins. You will have to write CLI rules, but Clixon can generate the configuration part of the CLI, including set, delete, show commands for a specific syntax.

Platforms

Clixon supports GNU/Linux, FreeBSD and Docker. MacOS may work. Linux platforms include 32 and 64 bits Ubuntu, Alpine, Raspian, etc.

Standards

Clixon supports standards including YANG, NETCONF, RESTCONF, XML and XPATH. See Standards for more details.

How to get Clixon

Get the Clixon source code from Github

Support

For support issues use the Clixon slack channel

Bug reports

Report bugs via Github issues