mech: Initial add

The mechanic, Infix's integration layer to Clixon
This commit is contained in:
Tobias Waldekranz
2023-02-08 14:05:47 +01:00
parent f8b32fb1be
commit 252feef1c4
17 changed files with 220 additions and 0 deletions
+2
View File
@@ -1 +1,3 @@
clixon -1 clixon -1 * - - wheel Clixon backend
factory -1 wheel -1 =reset - /sbin/factory - Reset to factory defaults
+1
View File
@@ -5,6 +5,7 @@ source "$BR2_EXTERNAL_INFIX_PATH/package/finit/Config.in"
source "$BR2_EXTERNAL_INFIX_PATH/package/ifupdown2/Config.in"
source "$BR2_EXTERNAL_INFIX_PATH/package/ifupdown-ng/Config.in"
source "$BR2_EXTERNAL_INFIX_PATH/package/mdnsd/Config.in"
source "$BR2_EXTERNAL_INFIX_PATH/package/mech/Config.in"
source "$BR2_EXTERNAL_INFIX_PATH/package/python-templating/Config.in"
source "$BR2_EXTERNAL_INFIX_PATH/package/skeleton-init-finit/Config.in"
source "$BR2_EXTERNAL_INFIX_PATH/package/sysrepo-plugins-common/Config.in"
+6
View File
@@ -0,0 +1,6 @@
config BR2_PACKAGE_MECH
bool "mech"
select BR2_PACKAGE_CLIXON
help
Orchestrate an Infix node using any of the front-ends
offered by Clixon, e.g. NETCONF, RESTCONF or SNMP.
+12
View File
@@ -0,0 +1,12 @@
################################################################################
#
# mech
#
################################################################################
MECH_VERSION = 1.0
MECH_LICENSE = GPL
MECH_SITE_METHOD = local
MECH_SITE = $(BR2_EXTERNAL_INFIX_PATH)/src/mech
MECH_AUTORECONF = YES
$(eval $(autotools-package))
+33
View File
@@ -0,0 +1,33 @@
*~
*.o
*.la
*.lo
*.so
.deps
.libs
/aclocal.m4
/autom4te.cache/
/aux
/clixon.xml
/compile
/config.h
/config.h.in
/config.guess
/config.log
/config.status
/config.sub
/configure
/depcomp
/install-sh
/libtool
/ltmain.sh
/m4
/missing
GPATH
GRTAGS
GTAGS
Makefile
Makefile.in
+5
View File
@@ -0,0 +1,5 @@
SUBDIRS = src yang
DISTCLEANFILES = *~ *.d
ACLOCAL_AMFLAGS = -I m4
sysconf_DATA = clixon.xml
+3
View File
@@ -0,0 +1,3 @@
#!/bin/sh
autoreconf -W portability -vifm
+26
View File
@@ -0,0 +1,26 @@
<clixon-config xmlns="http://clicon.org/config">
<CLICON_CONFIGFILE>@SYSCONFDIR@/clixon.xml</CLICON_CONFIGFILE>
<CLICON_FEATURE>ietf-netconf:startup</CLICON_FEATURE>
<CLICON_FEATURE>ietf-netconf:confirmed-commit</CLICON_FEATURE>
<CLICON_FEATURE>clixon-restconf:allow-auth-none</CLICON_FEATURE>
<CLICON_FEATURE>clixon-restconf:fcgi</CLICON_FEATURE>
<CLICON_YANG_DIR>@DATAROOTDIR@/clixon</CLICON_YANG_DIR>
<CLICON_YANG_DIR>@DATAROOTDIR@/yang</CLICON_YANG_DIR>
<CLICON_YANG_MODULE_MAIN>infix</CLICON_YANG_MODULE_MAIN>
<CLICON_CLI_MODE>exec</CLICON_CLI_MODE>
<CLICON_BACKEND_DIR>@LIBDIR@/clixon/backend</CLICON_BACKEND_DIR>
<CLICON_NETCONF_DIR>@LIBDIR@/clixon/netconf</CLICON_NETCONF_DIR>
<CLICON_RESTCONF_DIR>@LIBDIR@/clixon/restconf</CLICON_RESTCONF_DIR>
<CLICON_CLI_DIR>@LIBDIR@/clixon/cli</CLICON_CLI_DIR>
<CLICON_CLISPEC_DIR>@LIBDIR@/clixon/clispec</CLICON_CLISPEC_DIR>
<CLICON_SOCK>@LOCALSTATEDIR@/clixon/backend.sock</CLICON_SOCK>
<CLICON_SOCK_GROUP>clixon</CLICON_SOCK_GROUP>
<CLICON_BACKEND_PIDFILE>@RUNSTATEDIR@/clixon_backend.pid</CLICON_BACKEND_PIDFILE>
<CLICON_CLI_LINESCROLLING>0</CLICON_CLI_LINESCROLLING>
<CLICON_CLI_TAB_MODE>0</CLICON_CLI_TAB_MODE>
<CLICON_XMLDB_DIR>@LOCALSTATEDIR@/clixon</CLICON_XMLDB_DIR>
<CLICON_STARTUP_MODE>init</CLICON_STARTUP_MODE>
<CLICON_NACM_MODE>disabled</CLICON_NACM_MODE>
<CLICON_STREAM_DISCOVERY_RFC5277>true</CLICON_STREAM_DISCOVERY_RFC5277>
<CLICON_YANG_LIBRARY>false</CLICON_YANG_LIBRARY>
</clixon-config>
+13
View File
@@ -0,0 +1,13 @@
clixonlibdir = $(libdir)/clixon
backenddir = $(clixonlibdir)/backend
clidir = $(clixonlibdir)/cli
clispecdir = $(clixonlibdir)/clispec
yangdir = $(datarootdir)/clixon
backend_LTLIBRARIES =
cli_LTLIBRARIES =
clispec_DATA =
yang_DATA =
cli_libadd = -lclixon -lclixon_cli
cli_ldflags = -module -avoid-version -shared
+45
View File
@@ -0,0 +1,45 @@
AC_PREREQ(2.61)
AC_INIT([orc], [1.0.0],
[https://github.com/kernelkit/infix/issues])
AM_INIT_AUTOMAKE(1.11 foreign subdir-objects)
AM_SILENT_RULES(yes)
LT_INIT
AC_CONFIG_FILES([
clixon.xml
Makefile
src/Makefile
src/core/Makefile
yang/Makefile
])
AC_PROG_CC
AC_PROG_INSTALL
AC_CHECK_LIB([clixon], [yang_len_get],, AC_MSG_ERROR([Clixon not found]))
test "x$prefix" = xNONE && prefix=$ac_default_prefix
test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
DATAROOTDIR=`eval echo $datarootdir`
DATAROOTDIR=`eval echo $DATAROOTDIR`
AC_SUBST(DATAROOTDIR)
LIBDIR=`eval echo $libdir`
LIBDIR=`eval echo $LIBDIR`
AC_SUBST(LIBDIR)
LOCALSTATEDIR=`eval echo $localstatedir`
LOCALSTATEDIR=`eval echo $LOCALSTATEDIR`
AC_SUBST(LOCALSTATEDIR)
RUNSTATEDIR=`eval echo $runstatedir`
RUNSTATEDIR=`eval echo $RUNSTATEDIR`
AC_SUBST(RUNSTATEDIR)
SYSCONFDIR=`eval echo $sysconfdir`
SYSCONFDIR=`eval echo $SYSCONFDIR`
AC_SUBST(SYSCONFDIR)
AC_OUTPUT
+7
View File
@@ -0,0 +1,7 @@
include $(top_srcdir)/common.am
CFLAGS = -Wall -Wextra -Werror -Wno-unused-parameter
SUBDIRS = core
install-exec-hook:
find $(DESTDIR)$(clixonlibdir) -name '*.la' -delete
+8
View File
@@ -0,0 +1,8 @@
include $(top_srcdir)/common.am
cli_LTLIBRARIES += cli.la
clispec_DATA += cli.cli
cli_la_LDFLAGS = $(cli_ldflags)
cli_la_LIBADD = $(cli_libadd)
cli_la_SOURCES = cli.c
+22
View File
@@ -0,0 +1,22 @@
#include <stdio.h>
#include <cligen/cligen.h>
#include <clixon/clixon.h>
#include <clixon/clixon_cli.h>
#include <clixon/cli_generate.h>
int cli_sysinfo(clicon_handle h, cvec *cvv, cvec *argv)
{
printf("System Information: Infix\n");
return 0;
}
static clixon_plugin_api cli_api = {
.ca_name = "infix-cli",
.ca_init = clixon_plugin_init,
};
clixon_plugin_api *clixon_plugin_init(clicon_handle h)
{
return &cli_api;
}
+9
View File
@@ -0,0 +1,9 @@
CLICON_MODE="exec";
CLICON_PROMPT="%U@%H> ";
CLICON_PLUGIN="cli";
exit("Exit"), cli_quit();
show("Show various system state and configuration") {
system-information("System information"), cli_sysinfo();
}
+3
View File
@@ -0,0 +1,3 @@
include $(top_srcdir)/common.am
yang_DATA += infix.yang
+25
View File
@@ -0,0 +1,25 @@
module infix {
yang-version 1.1;
namespace "urn:kernelkit:infix";
prefix ix;
/*
import ietf-interfaces {
prefix if;
}
import ietf-ip {
prefix ip;
}
import iana-if-type {
prefix ianaift;
}
import ietf-datastores {
prefix ds;
}
import clixon-autocli{
prefix autocli;
}
*/
description
"Base model
";
}