No description
Find a file
2018-01-05 09:56:10 -02:00
apps 2017->2018 2018-01-01 12:25:33 +01:00
build-root/scripts Implement make dist target 2017-12-05 05:23:27 -06:00
datastore 2017->2018 2018-01-01 12:25:33 +01:00
doc 2017->2018 2018-01-01 12:25:33 +01:00
docker 2017->2018 2018-01-01 12:25:33 +01:00
etc Update Makefile.in 2018-01-05 09:56:10 -02:00
example 2017->2018 2018-01-01 12:25:33 +01:00
extras Prepare build system to produce RPMs 2017-12-05 07:27:59 -06:00
include 2017->2018 2018-01-01 12:25:33 +01:00
lib 2017->2018 2018-01-01 12:25:33 +01:00
test sort xml children on parsing 2017-12-31 18:25:53 +01:00
yang 2017->2018 2018-01-01 12:25:33 +01:00
.gitignore Prepare build system to produce RPMs 2017-12-05 07:27:59 -06:00
CHANGELOG.md 3.4.0 2018-01-01 12:28:58 +01:00
clixon.conf.cpp.cpp 2017->2018 2018-01-01 12:25:33 +01:00
clixon.mk.cpp 2017->2018 2018-01-01 12:25:33 +01:00
config.guess Inital commit 2016-02-22 22:17:30 +01:00
config.sub Inital commit 2016-02-22 22:17:30 +01:00
configure 3.4.0 2018-01-01 12:28:58 +01:00
configure.ac 3.4.0 2018-01-01 12:28:58 +01:00
develop.md Datastore cache introduced; Added yang to XML API 2017-12-02 14:49:49 +01:00
install-sh Inital commit 2016-02-22 22:17:30 +01:00
LICENSE.md 2017->2018 2018-01-01 12:25:33 +01:00
Makefile.in 2017->2018 2018-01-01 12:25:33 +01:00
README.md Clean up README.md 2017-08-27 12:03:19 -04:00

Clixon

Clixon is an automatic configuration manager where you generate interactive CLI, NETCONF, RESTCONF and embedded databases with transaction support from a YANG specification.

Table of contents

Documentation

Installation

A typical installation is as follows:

     configure	       	       # Configure clixon to platform
     make                      # Compile
     sudo make install         # Install libs, binaries, and config-files
     sudo make install-include # Install include files (for compiling)

One example application is provided, a IETF IP YANG datamodel with generated CLI and configuration interface.

Dependencies

Clixon depends on the following software packages, which need to exist on the target machine.

  • CLIgen is required for building Clixon. If you need to build and install CLIgen:
    git clone https://github.com/olofhagsand/cligen.git
    cd cligen; configure; make; make install
  • Yacc/bison
  • Lex/Flex
  • Fcgi (if restconf is enabled)
  • Qdbm key-value store (if keyvalue datastore is enabled)

There is no yum/apt/ostree package for Clixon (please help?)

Licenses

Clixon is dual licensed. Either Apache License, Version 2.0 or GNU General Public License Version 2; you choose.

See LICENSE.md for the license.

Background

We implemented Clixon since we needed a generic configuration tool in several projects, including KTH. Most of these projects were for embedded network and measuring-probe devices. We started with something called Clicon which was based on a key-value specification and data-store. But as time passed new standards evolved and we started adapting it to XML, Yang and netconf. Finally we made Clixon, where the legacy key specification has been replaced completely by YANG and using XML as configuration data. This means that legacy Clicon applications do not run on Clixon.

SDK

clixon sdk

The figure shows the SDK runtime of Clixon.

YANG and XML is at the heart of Clixon. Yang modules are used as a specification for handling XML configuration data. The spec is also used to generate an interactive CLI client as well as provide Netconf and Restconf clients.

The YANG RFC 6020 is implemented with the following exceptions:

  • conformance: feature, if-feature, deviation
  • identity, base, identityref
  • list features: min/max-elements, unique, ordered-by

There are also new features in YANG 1.1 YANG RFC 7950, most of which are not implemented.