clixon-config.yang: Added CLICON_DEBUG, Removed: CLICON_NETCONF_DUPLICATE_ALLOW
Rearranged and grouped options clixon-lib.yang: Added debug types Removed git reliance in test - moved to configure script
This commit is contained in:
parent
c8a8197e92
commit
b6480ac07d
15 changed files with 320 additions and 174 deletions
|
|
@ -52,10 +52,10 @@ module clixon-config {
|
|||
revision 2024-04-01 {
|
||||
description
|
||||
"Added options:
|
||||
CLICON_DEBUG: Debug flags.
|
||||
CLICON_YANG_SCHEMA_MOUNT_SHARE: Share same YANGs of equal moint-points.
|
||||
CLICON_SOCK_PRIO: Enable socket event priority
|
||||
CLICON_XMLDB_MULTI: Split datastore into multiple sub files
|
||||
CLICON_NETCONF_DUPLICATE_ALLOW: Disable duplicate check in NETCONF messages.
|
||||
CLICON_CLI_OUTPUT_FORMAT: Default CLI output format
|
||||
CLICON_AUTOLOCK: Implicit locks
|
||||
Released in Clixon 7.1";
|
||||
|
|
@ -456,6 +456,14 @@ module clixon-config {
|
|||
Ensure that YANG_INSTALLDIR (default
|
||||
/usr/local/share/clixon) is present in the path";
|
||||
}
|
||||
leaf CLICON_DEBUG{
|
||||
type cl:clixon_debug_t;
|
||||
description
|
||||
"Debug flags as bitfields.
|
||||
Can also be given directly as -D <flag> to clixon commands (which overrides this)
|
||||
Note only partly implemented;
|
||||
- Only CLI, only single value, cannot be combined with -D, not in RPC";
|
||||
}
|
||||
leaf CLICON_CONFIGFILE{
|
||||
type string;
|
||||
description
|
||||
|
|
@ -539,12 +547,6 @@ module clixon-config {
|
|||
Note this is similar to what happens to YANG nodes that are disabled by a false
|
||||
if-feature statement.";
|
||||
}
|
||||
leaf CLICON_BACKEND_DIR {
|
||||
type string;
|
||||
description
|
||||
"Location of backend .so plugins. Load all .so
|
||||
plugins in this dir as backend plugins";
|
||||
}
|
||||
leaf CLICON_YANG_SCHEMA_MOUNT{
|
||||
type boolean;
|
||||
description
|
||||
|
|
@ -568,12 +570,89 @@ module clixon-config {
|
|||
Only if CLICON_YANG_SCHEMA_MOUNT is enabled";
|
||||
default false;
|
||||
}
|
||||
leaf CLICON_YANG_AUGMENT_ACCEPT_BROKEN {
|
||||
type boolean;
|
||||
default false;
|
||||
description
|
||||
"Debug option. If enabled, accept broken augments on the form:
|
||||
augment <target> { ... }
|
||||
where <target> is an XPath which MUST be an existing node but for many
|
||||
yangmodels do not.
|
||||
There are several cases why this may be the case:
|
||||
- syntax errors,
|
||||
- features that need to be enabled
|
||||
- wrong XPaths, etc
|
||||
This option should be enabled only for passing some testcases it should
|
||||
normally never be enabled in system YANGs that are used in a system.";
|
||||
}
|
||||
leaf CLICON_YANG_LIBRARY {
|
||||
type boolean;
|
||||
default true;
|
||||
description
|
||||
"Enable YANG library support as state data according to RFC8525.
|
||||
If enabled, module info will appear when doing netconf get or
|
||||
restconf GET.
|
||||
The module state data is on the form:
|
||||
<yang-library><module-set>...
|
||||
instead where the module state is on the form:
|
||||
<modules-state>...
|
||||
See also CLICON_XMLDB_MODSTATE where the module state info is used to tag datastores
|
||||
with module information.";
|
||||
}
|
||||
leaf CLICON_BACKEND_DIR {
|
||||
type string;
|
||||
description
|
||||
"Location of backend .so plugins. Load all .so
|
||||
plugins in this dir as backend plugins";
|
||||
}
|
||||
leaf CLICON_BACKEND_REGEXP {
|
||||
type string;
|
||||
description
|
||||
"Regexp of matching backend plugins in CLICON_BACKEND_DIR";
|
||||
default "(.so)$";
|
||||
}
|
||||
leaf CLICON_BACKEND_USER {
|
||||
type string;
|
||||
description
|
||||
"User name for backend (both foreground and daemonized).
|
||||
If you set this value the backend if started as root will lower
|
||||
the privileges after initialization.
|
||||
The ownership of files created by the backend will also be set to this
|
||||
user (eg datastores).
|
||||
It also sets the backend unix socket owner to this user, but its group
|
||||
is set by CLICON_SOCK_GROUP.
|
||||
See also CLICON_BACKEND_PRIVILEGES setting";
|
||||
}
|
||||
leaf CLICON_BACKEND_PRIVILEGES {
|
||||
type priv_mode;
|
||||
default none;
|
||||
description
|
||||
"Backend privileges mode.
|
||||
If CLICON_BACKEND_USER user is set, mode can be set to drop_perm or
|
||||
drop_temp.
|
||||
Drop privs may not be used together with CLICON_XMLDB_MULTI";
|
||||
}
|
||||
leaf CLICON_BACKEND_PIDFILE {
|
||||
type string;
|
||||
mandatory true;
|
||||
description "Process-id file of backend daemon";
|
||||
}
|
||||
leaf CLICON_BACKEND_RESTCONF_PROCESS {
|
||||
type boolean;
|
||||
default false;
|
||||
description
|
||||
"If set, enable process-control of restconf daemon, ie start/stop restconf
|
||||
daemon internally from backend daemon.
|
||||
Also, if set, restconf daemon queries backend for its config
|
||||
if not set, restconf daemon reads its config from main config file
|
||||
It uses clixon-restconf.yang for config and clixon-lib.yang for RPC
|
||||
Process control of restconf daemon is as follows:
|
||||
- on RPC start, if enable is true, start the service, if false, error or ignore it
|
||||
- on RPC stop, stop the service
|
||||
- on backend start make the state as configured
|
||||
- on enable change, make the state as configured
|
||||
Disable if you start the restconf daemon by other means.";
|
||||
}
|
||||
leaf CLICON_NETCONF_DIR{
|
||||
type string;
|
||||
description "Location of netconf (frontend) .so plugins";
|
||||
|
|
@ -616,16 +695,6 @@ module clixon-config {
|
|||
RFC6242 for example.
|
||||
This only applies to the external NETCONF";
|
||||
}
|
||||
leaf CLICON_NETCONF_DUPLICATE_ALLOW {
|
||||
type boolean;
|
||||
default false;
|
||||
description
|
||||
"Disable duplicate check in NETCONF messages.
|
||||
In Clixon 7.0, a stricter check of duplicate entries in incoming NETCONF messages was made.
|
||||
More specifically: lists and leaf-lists with non-unique entries.
|
||||
Enable to disable this check, and to allow duplicates in incoming NETCONF messages.
|
||||
Note that this is an error by such a client, but there is some legacy code that uses this";
|
||||
}
|
||||
leaf CLICON_NETCONF_CREATOR_ATTR {
|
||||
type boolean;
|
||||
default false;
|
||||
|
|
@ -641,6 +710,21 @@ module clixon-config {
|
|||
config";
|
||||
status obsolete;
|
||||
}
|
||||
leaf CLICON_NETCONF_MONITORING {
|
||||
type boolean;
|
||||
default true;
|
||||
description
|
||||
"Enable Netconf monitoring support as state data according to RFC6022.
|
||||
If enabled, netconf monitoring info will appear when doing netconf get or
|
||||
restconf GET.";
|
||||
}
|
||||
leaf CLICON_NETCONF_MONITORING_LOCATION {
|
||||
type string;
|
||||
description
|
||||
"Extra Netconf monitoring location directory where schemas can be retrieved
|
||||
apart from NETCONF.
|
||||
Only if CLICON_NETCONF_MONITORING";
|
||||
}
|
||||
leaf CLICON_RESTCONF_API_ROOT {
|
||||
type string;
|
||||
default "/restconf";
|
||||
|
|
@ -952,48 +1036,6 @@ module clixon-config {
|
|||
non-prio events is disabled
|
||||
This is useful if the backend opens other sockets, such as the controller";
|
||||
}
|
||||
leaf CLICON_BACKEND_USER {
|
||||
type string;
|
||||
description
|
||||
"User name for backend (both foreground and daemonized).
|
||||
If you set this value the backend if started as root will lower
|
||||
the privileges after initialization.
|
||||
The ownership of files created by the backend will also be set to this
|
||||
user (eg datastores).
|
||||
It also sets the backend unix socket owner to this user, but its group
|
||||
is set by CLICON_SOCK_GROUP.
|
||||
See also CLICON_BACKEND_PRIVILEGES setting";
|
||||
}
|
||||
leaf CLICON_BACKEND_PRIVILEGES {
|
||||
type priv_mode;
|
||||
default none;
|
||||
description
|
||||
"Backend privileges mode.
|
||||
If CLICON_BACKEND_USER user is set, mode can be set to drop_perm or
|
||||
drop_temp.
|
||||
Drop privs may not be used together with CLICON_XMLDB_MULTI";
|
||||
}
|
||||
leaf CLICON_BACKEND_PIDFILE {
|
||||
type string;
|
||||
mandatory true;
|
||||
description "Process-id file of backend daemon";
|
||||
}
|
||||
leaf CLICON_BACKEND_RESTCONF_PROCESS {
|
||||
type boolean;
|
||||
default false;
|
||||
description
|
||||
"If set, enable process-control of restconf daemon, ie start/stop restconf
|
||||
daemon internally from backend daemon.
|
||||
Also, if set, restconf daemon queries backend for its config
|
||||
if not set, restconf daemon reads its config from main config file
|
||||
It uses clixon-restconf.yang for config and clixon-lib.yang for RPC
|
||||
Process control of restconf daemon is as follows:
|
||||
- on RPC start, if enable is true, start the service, if false, error or ignore it
|
||||
- on RPC stop, stop the service
|
||||
- on backend start make the state as configured
|
||||
- on enable change, make the state as configured
|
||||
Disable if you start the restconf daemon by other means.";
|
||||
}
|
||||
leaf CLICON_AUTOCOMMIT {
|
||||
type int32;
|
||||
default 0;
|
||||
|
|
@ -1014,17 +1056,6 @@ module clixon-config {
|
|||
Also, any edits in candidate are discarded if the client closes the connection.
|
||||
This effectively disables shared candidate";
|
||||
}
|
||||
leaf CLICON_XMLDB_DIR {
|
||||
type string;
|
||||
mandatory true;
|
||||
description
|
||||
"Directory where datastores such as \"running\", \"candidate\" and \"startup\"
|
||||
are placed.
|
||||
If CLICON_XMLDB_MULTI is enabled, this is the directory where a datastore
|
||||
subdir is stored, such as \"running.d/\"
|
||||
";
|
||||
}
|
||||
|
||||
leaf CLICON_DATASTORE_CACHE {
|
||||
type datastore_cache;
|
||||
default cache;
|
||||
|
|
@ -1036,6 +1067,16 @@ module clixon-config {
|
|||
Note that from 7.0 this is OBSOLETED, only datastore_cache is supported";
|
||||
status obsolete;
|
||||
}
|
||||
leaf CLICON_XMLDB_DIR {
|
||||
type string;
|
||||
mandatory true;
|
||||
description
|
||||
"Directory where datastores such as \"running\", \"candidate\" and \"startup\"
|
||||
are placed.
|
||||
If CLICON_XMLDB_MULTI is enabled, this is the directory where a datastore
|
||||
subdir is stored, such as \"running.d/\"
|
||||
";
|
||||
}
|
||||
leaf CLICON_XMLDB_FORMAT {
|
||||
type cl:datastore_format;
|
||||
default xml;
|
||||
|
|
@ -1138,21 +1179,6 @@ module clixon-config {
|
|||
If true: The symbols defined by this shared object will be made available for symbol res‐
|
||||
olution of subsequently loaded shared objects.";
|
||||
}
|
||||
leaf CLICON_YANG_AUGMENT_ACCEPT_BROKEN {
|
||||
type boolean;
|
||||
default false;
|
||||
description
|
||||
"Debug option. If enabled, accept broken augments on the form:
|
||||
augment <target> { ... }
|
||||
where <target> is an XPath which MUST be an existing node but for many
|
||||
yangmodels do not.
|
||||
There are several cases why this may be the case:
|
||||
- syntax errors,
|
||||
- features that need to be enabled
|
||||
- wrong XPaths, etc
|
||||
This option should be enabled only for passing some testcases it should
|
||||
normally never be enabled in system YANGs that are used in a system.";
|
||||
}
|
||||
leaf CLICON_NAMESPACE_NETCONF_DEFAULT {
|
||||
type boolean;
|
||||
default false;
|
||||
|
|
@ -1162,7 +1188,6 @@ module clixon-config {
|
|||
If defined, top-level rpc calls need not have namespaces (eg using xmlns=<ns>)
|
||||
since the default NETCONF namespace will be assumed. (This is not standard).
|
||||
See rfc6241 3.1: urn:ietf:params:xml:ns:netconf:base:1.0.";
|
||||
|
||||
}
|
||||
leaf CLICON_STARTUP_MODE {
|
||||
type startup_mode;
|
||||
|
|
@ -1218,20 +1243,6 @@ module clixon-config {
|
|||
If this option is set, Clixon disables NACM if a datastore does NOT contain a
|
||||
NACM config on load.";
|
||||
}
|
||||
leaf CLICON_YANG_LIBRARY {
|
||||
type boolean;
|
||||
default true;
|
||||
description
|
||||
"Enable YANG library support as state data according to RFC8525.
|
||||
If enabled, module info will appear when doing netconf get or
|
||||
restconf GET.
|
||||
The module state data is on the form:
|
||||
<yang-library><module-set>...
|
||||
instead where the module state is on the form:
|
||||
<modules-state>...
|
||||
See also CLICON_XMLDB_MODSTATE where the module state info is used to tag datastores
|
||||
with module information.";
|
||||
}
|
||||
leaf CLICON_MODULE_SET_ID {
|
||||
type string;
|
||||
default "0";
|
||||
|
|
@ -1244,21 +1255,6 @@ module clixon-config {
|
|||
If CLICON_MODULE_LIBRARY_RFC7895 is enabled, it sets the modules-state/module-set-id
|
||||
instead";
|
||||
}
|
||||
leaf CLICON_NETCONF_MONITORING {
|
||||
type boolean;
|
||||
default true;
|
||||
description
|
||||
"Enable Netconf monitoring support as state data according to RFC6022.
|
||||
If enabled, netconf monitoring info will appear when doing netconf get or
|
||||
restconf GET.";
|
||||
}
|
||||
leaf CLICON_NETCONF_MONITORING_LOCATION {
|
||||
type string;
|
||||
description
|
||||
"Extra Netconf monitoring location directory where schemas can be retrieved
|
||||
apart from NETCONF.
|
||||
Only if CLICON_NETCONF_MONITORING";
|
||||
}
|
||||
leaf CLICON_STREAM_DISCOVERY_RFC5277 {
|
||||
type boolean;
|
||||
default false;
|
||||
|
|
|
|||
|
|
@ -71,7 +71,8 @@ module clixon-lib {
|
|||
|
||||
revision 2024-04-01 {
|
||||
description
|
||||
"Added: xmldb-split extension
|
||||
"Added: debug bits type
|
||||
Added: xmldb-split extension
|
||||
Added: Default format
|
||||
Released in Clixon 7.1";
|
||||
}
|
||||
|
|
@ -187,6 +188,113 @@ module clixon-lib {
|
|||
}
|
||||
}
|
||||
}
|
||||
typedef clixon_debug_t {
|
||||
description
|
||||
"Debug flags.
|
||||
Flags are seperated into subject areas and detail
|
||||
Can also be given directly as -D <flag> to clixon commands
|
||||
Note there are also constants in the code thaht need to be in sync with these values";
|
||||
type bits {
|
||||
/* Subjects: */
|
||||
bit default {
|
||||
description "Default logs";
|
||||
position 0;
|
||||
}
|
||||
bit msg {
|
||||
description "In/out messages";
|
||||
position 1;
|
||||
}
|
||||
bit init {
|
||||
description "Initialization";
|
||||
position 2;
|
||||
}
|
||||
bit xml {
|
||||
description "XML processing";
|
||||
position 3;
|
||||
}
|
||||
bit xpath {
|
||||
description "XPath processing";
|
||||
position 4;
|
||||
}
|
||||
bit yang {
|
||||
description "YANG processing";
|
||||
position 5;
|
||||
}
|
||||
bit backend {
|
||||
description "Backend-specific";
|
||||
position 6;
|
||||
}
|
||||
bit cli {
|
||||
description "CLI frontend";
|
||||
position 7;
|
||||
}
|
||||
bit netconf {
|
||||
description "NETCONF frontend";
|
||||
position 8;
|
||||
}
|
||||
bit restconf {
|
||||
description "RESTCONF frontend";
|
||||
position 9;
|
||||
}
|
||||
bit snmp {
|
||||
description "SNMP frontend";
|
||||
position 10;
|
||||
}
|
||||
bit nacm {
|
||||
description "NACM processing";
|
||||
position 11;
|
||||
}
|
||||
bit proc {
|
||||
description "Process handling";
|
||||
position 12;
|
||||
}
|
||||
bit datastore {
|
||||
description "Datastore xmldb management";
|
||||
position 13;
|
||||
}
|
||||
bit event {
|
||||
description "Event processing";
|
||||
position 14;
|
||||
}
|
||||
bit rpc {
|
||||
description "RPC handling";
|
||||
position 15;
|
||||
}
|
||||
bit stream {
|
||||
description "Notification streams";
|
||||
position 16;
|
||||
}
|
||||
bit parse {
|
||||
description "Parser: XML,YANG, etc";
|
||||
position 17;
|
||||
}
|
||||
bit app {
|
||||
description "External applications";
|
||||
position 20;
|
||||
}
|
||||
bit app2 {
|
||||
description "External application";
|
||||
position 21;
|
||||
}
|
||||
bit app3 {
|
||||
description "External application 2";
|
||||
position 22;
|
||||
}
|
||||
/* Detail level: */
|
||||
bit detail {
|
||||
description "Details: traces, parse trees, etc";
|
||||
position 24;
|
||||
}
|
||||
bit detail2 {
|
||||
description "Extra details";
|
||||
position 25;
|
||||
}
|
||||
bit detail3 {
|
||||
description "Probably more detail than you want";
|
||||
position 26;
|
||||
}
|
||||
}
|
||||
}
|
||||
identity snmp {
|
||||
description
|
||||
"SNMP";
|
||||
|
|
@ -276,44 +384,27 @@ module clixon-lib {
|
|||
}
|
||||
}
|
||||
container datastores{
|
||||
list datastore{
|
||||
description "Per datastore statistics for cxobj";
|
||||
key "name";
|
||||
leaf name{
|
||||
description "Name of datastore (eg running).";
|
||||
type string;
|
||||
}
|
||||
leaf nr{
|
||||
description "Number of XML objects. That is number of residing xml/json objects
|
||||
list datastore{
|
||||
description "Per datastore statistics for cxobj";
|
||||
key "name";
|
||||
leaf name{
|
||||
description "Name of datastore (eg running).";
|
||||
type string;
|
||||
}
|
||||
leaf nr{
|
||||
description "Number of XML objects. That is number of residing xml/json objects
|
||||
in the internal 'cxobj' representation.";
|
||||
type uint64;
|
||||
type uint64;
|
||||
}
|
||||
leaf size{
|
||||
description "Size in bytes of internal datastore cache of datastore tree.";
|
||||
type uint64;
|
||||
}
|
||||
}
|
||||
leaf size{
|
||||
description "Size in bytes of internal datastore cache of datastore tree.";
|
||||
type uint64;
|
||||
}
|
||||
}
|
||||
}
|
||||
container module-sets{
|
||||
list module-set{
|
||||
description "Statistics per group of module, eg top-level and mount-points";
|
||||
key "name";
|
||||
leaf name{
|
||||
description "Name of YANG module.";
|
||||
type string;
|
||||
}
|
||||
leaf nr{
|
||||
description
|
||||
"Total number of YANG objects in set";
|
||||
type uint64;
|
||||
}
|
||||
leaf size{
|
||||
description
|
||||
"Total size in bytes of internal YANG object representation for module set";
|
||||
type uint64;
|
||||
}
|
||||
list module{
|
||||
description "Statistics per module (if modules set in input)";
|
||||
list module-set{
|
||||
description "Statistics per group of module, eg top-level and mount-points";
|
||||
key "name";
|
||||
leaf name{
|
||||
description "Name of YANG module.";
|
||||
|
|
@ -321,16 +412,33 @@ module clixon-lib {
|
|||
}
|
||||
leaf nr{
|
||||
description
|
||||
"Number of YANG objects. That is number of residing YANG objects";
|
||||
"Total number of YANG objects in set";
|
||||
type uint64;
|
||||
}
|
||||
leaf size{
|
||||
description
|
||||
"Size in bytes of internal YANG object representation.";
|
||||
"Total size in bytes of internal YANG object representation for module set";
|
||||
type uint64;
|
||||
}
|
||||
list module{
|
||||
description "Statistics per module (if modules set in input)";
|
||||
key "name";
|
||||
leaf name{
|
||||
description "Name of YANG module.";
|
||||
type string;
|
||||
}
|
||||
leaf nr{
|
||||
description
|
||||
"Number of YANG objects. That is number of residing YANG objects";
|
||||
type uint64;
|
||||
}
|
||||
leaf size{
|
||||
description
|
||||
"Size in bytes of internal YANG object representation.";
|
||||
type uint64;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue