The Clixon example has changed name from routing to example affecting all config files, plugins, tests, etc.
This commit is contained in:
parent
0e52e86c0f
commit
6ed769e082
29 changed files with 187 additions and 182 deletions
|
|
@ -42,6 +42,7 @@
|
||||||
|
|
||||||
### Minor changes:
|
### Minor changes:
|
||||||
|
|
||||||
|
* The Clixon example has changed name from "routing" to "example" affecting all config files, plugins, tests, etc.
|
||||||
* Removed username to rpc calls (added below)
|
* Removed username to rpc calls (added below)
|
||||||
* README.md extended with new yang, netconf, restconf, datastore, and auth sections.
|
* README.md extended with new yang, netconf, restconf, datastore, and auth sections.
|
||||||
* The key-value datastore is no longer supported. Use the default text datastore.
|
* The key-value datastore is no longer supported. Use the default text datastore.
|
||||||
|
|
@ -175,11 +176,11 @@ SUNET for support, requests, debugging, bugfixes and proposed solutions.
|
||||||
* In backward compatible mode both .xml and .conf works
|
* In backward compatible mode both .xml and .conf works
|
||||||
* For migration from old to new, a utility is clixon_cli -x to print new format. Run the command and save in configuration file with .xml suffix instead.
|
* For migration from old to new, a utility is clixon_cli -x to print new format. Run the command and save in configuration file with .xml suffix instead.
|
||||||
```
|
```
|
||||||
> clixon_cli -f /usr/local/etc/routing.conf -1x
|
> clixon_cli -f /usr/local/etc/example.conf -1x
|
||||||
<config>
|
<config>
|
||||||
<CLICON_CONFIGFILE>/usr/local/etc/routing.xml</CLICON_CONFIGFILE>
|
<CLICON_CONFIGFILE>/usr/local/etc/example.xml</CLICON_CONFIGFILE>
|
||||||
<CLICON_YANG_DIR>/usr/local/share/routing/yang</CLICON_YANG_DIR>
|
<CLICON_YANG_DIR>/usr/local/share/example/yang</CLICON_YANG_DIR>
|
||||||
<CLICON_BACKEND_DIR>/usr/local/lib/routing/backend</CLICON_BACKEND_DIR>
|
<CLICON_BACKEND_DIR>/usr/local/lib/example/backend</CLICON_BACKEND_DIR>
|
||||||
...
|
...
|
||||||
</config>
|
</config>
|
||||||
```
|
```
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ sudo /etc/init.d nginx start
|
||||||
|
|
||||||
Start clixon restconf daemon
|
Start clixon restconf daemon
|
||||||
```
|
```
|
||||||
olof@vandal> sudo su -c "/www-data/clixon_restconf -f /usr/local/etc/routing.xml " -s /bin/sh www-data
|
olof@vandal> sudo su -c "/www-data/clixon_restconf -f /usr/local/etc/example.xml " -s /bin/sh www-data
|
||||||
```
|
```
|
||||||
|
|
||||||
Make restconf calls with curl
|
Make restconf calls with curl
|
||||||
|
|
@ -56,7 +56,7 @@ curl -sX POST -d '{"interfaces":{"interface":{"name":"eth1","type":"eth","enable
|
||||||
|
|
||||||
Start the restconf fastcgi program with debug flag:
|
Start the restconf fastcgi program with debug flag:
|
||||||
```
|
```
|
||||||
sudo su -c "/www-data/clixon_restconf -Df /usr/local/etc/routing.xml" -s /bin/sh www-data
|
sudo su -c "/www-data/clixon_restconf -Df /usr/local/etc/example.xml" -s /bin/sh www-data
|
||||||
```
|
```
|
||||||
Look at syslog:
|
Look at syslog:
|
||||||
```
|
```
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@
|
||||||
* sudo apt-get install libfcgi-dev
|
* sudo apt-get install libfcgi-dev
|
||||||
* gcc -o fastcgi fastcgi.c -lfcgi
|
* gcc -o fastcgi fastcgi.c -lfcgi
|
||||||
|
|
||||||
* sudo su -c "/www-data/clixon_restconf -Df /usr/local/etc/routing.xml " -s /bin/sh www-data
|
* sudo su -c "/www-data/clixon_restconf -Df /usr/local/etc/example.xml " -s /bin/sh www-data
|
||||||
|
|
||||||
* This is the interface:
|
* This is the interface:
|
||||||
* api/data/profile=<name>/metric=<name> PUT data:enable=<flag>
|
* api/data/profile=<name>/metric=<name> PUT data:enable=<flag>
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@
|
||||||
* sudo apt-get install libfcgi-dev
|
* sudo apt-get install libfcgi-dev
|
||||||
* gcc -o fastcgi fastcgi.c -lfcgi
|
* gcc -o fastcgi fastcgi.c -lfcgi
|
||||||
|
|
||||||
* sudo su -c "/www-data/clixon_restconf -Df /usr/local/etc/routing.xml " -s /bin/sh www-data
|
* sudo su -c "/www-data/clixon_restconf -Df /usr/local/etc/example.xml " -s /bin/sh www-data
|
||||||
|
|
||||||
* This is the interface:
|
* This is the interface:
|
||||||
* api/data/profile=<name>/metric=<name> PUT data:enable=<flag>
|
* api/data/profile=<name>/metric=<name> PUT data:enable=<flag>
|
||||||
|
|
|
||||||
|
|
@ -33,11 +33,11 @@
|
||||||
|
|
||||||
* Examples:
|
* Examples:
|
||||||
|
|
||||||
./datastore_client -d candidate -b /usr/local/var/routing -p /home/olof/src/clixon/datastore/keyvalue/keyvalue.so -y /usr/local/share/routing/yang -m ietf-ip get /
|
./datastore_client -d candidate -b /usr/local/var/example -p /home/olof/src/clixon/datastore/keyvalue/keyvalue.so -y /usr/local/share/example/yang -m ietf-ip get /
|
||||||
|
|
||||||
sudo ./datastore_client -d candidate -b /usr/local/var/routing -p /home/olof/src/clixon/datastore/keyvalue/keyvalue.so -y /usr/local/share/routing/yang -m ietf-ip put merge /interfaces/interface=eth66 '<config>eth66</config>'
|
sudo ./datastore_client -d candidate -b /usr/local/var/example -p /home/olof/src/clixon/datastore/keyvalue/keyvalue.so -y /usr/local/share/example/yang -m ietf-ip put merge /interfaces/interface=eth66 '<config>eth66</config>'
|
||||||
|
|
||||||
sudo ./datastore_client -d candidate -b /usr/local/var/routing -p /home/olof/src/clixon/datastore/keyvalue/keyvalue.so -y /usr/local/share/routing/yang -m ietf-ip put merge / '<config><interfaces><interface><name>eth0</name><enabled>true</enabled></interface></interfaces></config>'
|
sudo ./datastore_client -d candidate -b /usr/local/var/example -p /home/olof/src/clixon/datastore/keyvalue/keyvalue.so -y /usr/local/share/example/yang -m ietf-ip put merge / '<config><interfaces><interface><name>eth0</name><enabled>true</enabled></interface></interfaces></config>'
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -69,11 +69,11 @@ EOF
|
||||||
cat <<EOF > /tmp/myconf.xml
|
cat <<EOF > /tmp/myconf.xml
|
||||||
<config>
|
<config>
|
||||||
<CLICON_CONFIGFILE>/tmp/myconf.xml</CLICON_CONFIGFILE>
|
<CLICON_CONFIGFILE>/tmp/myconf.xml</CLICON_CONFIGFILE>
|
||||||
<CLICON_YANG_DIR>/usr/local/share/routing/yang</CLICON_YANG_DIR>
|
<CLICON_YANG_DIR>/usr/local/share/example/yang</CLICON_YANG_DIR>
|
||||||
<CLICON_YANG_MODULE_MAIN>example</CLICON_YANG_MODULE_MAIN>
|
<CLICON_YANG_MODULE_MAIN>example</CLICON_YANG_MODULE_MAIN>
|
||||||
<CLICON_SOCK>/usr/local/var/routing/routing.sock</CLICON_SOCK>
|
<CLICON_SOCK>/usr/local/var/example/example.sock</CLICON_SOCK>
|
||||||
<CLICON_BACKEND_PIDFILE>/usr/local/var/routing/routing.pidfile</CLICON_BACKEND_PIDFILE>
|
<CLICON_BACKEND_PIDFILE>/usr/local/var/example/example.pidfile</CLICON_BACKEND_PIDFILE>
|
||||||
<CLICON_XMLDB_DIR>/usr/local/var/routing</CLICON_XMLDB_DIR>
|
<CLICON_XMLDB_DIR>/usr/local/var/example</CLICON_XMLDB_DIR>
|
||||||
<CLICON_XMLDB_PLUGIN>/usr/local/lib/xmldb/text.so</CLICON_XMLDB_PLUGIN>
|
<CLICON_XMLDB_PLUGIN>/usr/local/lib/xmldb/text.so</CLICON_XMLDB_PLUGIN>
|
||||||
</config>
|
</config>
|
||||||
EOF
|
EOF
|
||||||
|
|
|
||||||
39
doc/FAQ.md
39
doc/FAQ.md
|
|
@ -24,7 +24,7 @@ Clixon is written in C. The plugins are written in C. The CLI
|
||||||
specification uses cligen (http://cligen.se)
|
specification uses cligen (http://cligen.se)
|
||||||
|
|
||||||
## How to best understand Clixon?
|
## How to best understand Clixon?
|
||||||
Run the ietf yang routing example, in the example directory.
|
Run the Clixon example, in the example directory.
|
||||||
|
|
||||||
## How do you build and install Clixon (and the example)?
|
## How do you build and install Clixon (and the example)?
|
||||||
Clixon:
|
Clixon:
|
||||||
|
|
@ -56,14 +56,14 @@ Build using 'make doc' and aim your browser at doc/html/index.html or
|
||||||
use the web resource: http://clicon.org/ref/index.html
|
use the web resource: http://clicon.org/ref/index.html
|
||||||
|
|
||||||
## How do you run the example?
|
## How do you run the example?
|
||||||
- Start a backend server: 'clixon_backend -Ff /usr/local/etc/routing.xml'
|
- Start a backend server: 'clixon_backend -Ff /usr/local/etc/example.xml'
|
||||||
- Start a cli session: clixon_cli -f /usr/local/etc/routing.xml
|
- Start a cli session: clixon_cli -f /usr/local/etc/example.xml
|
||||||
- Start a netconf session: clixon_netconf -f /usr/local/etc/routing.xml
|
- Start a netconf session: clixon_netconf -f /usr/local/etc/example.xml
|
||||||
|
|
||||||
## How is configuration data stored?
|
## How is configuration data stored?
|
||||||
Configuration data is stored in an XML datastore. The default is a
|
Configuration data is stored in an XML datastore. The default is a
|
||||||
text-based datastore. In the example the datastore are regular files found in
|
text-based datastore. In the example the datastore are regular files found in
|
||||||
/usr/local/var/routing/.
|
/usr/local/var/example/.
|
||||||
|
|
||||||
## What is validate and commit?
|
## What is validate and commit?
|
||||||
Clixon follows netconf in its validate and commit semantics.
|
Clixon follows netconf in its validate and commit semantics.
|
||||||
|
|
@ -79,7 +79,7 @@ is the core functionality of a clixon system.
|
||||||
|
|
||||||
Clixon options are stored in an XML configuration file. The default
|
Clixon options are stored in an XML configuration file. The default
|
||||||
configuration file is /usr/local/etc/clixon.xml. The example
|
configuration file is /usr/local/etc/clixon.xml. The example
|
||||||
configuration file is installed at /usr/local/etc/routing.xml. The
|
configuration file is installed at /usr/local/etc/example.xml. The
|
||||||
YANG specification for the configuration file is clixon-config.yang.
|
YANG specification for the configuration file is clixon-config.yang.
|
||||||
|
|
||||||
You can change where CLixon looks for the configuration FILE as follows:
|
You can change where CLixon looks for the configuration FILE as follows:
|
||||||
|
|
@ -109,12 +109,12 @@ You may also push the containers with 'make push' but you may then consider chan
|
||||||
|
|
||||||
As an alternative to cli configuration, you can use netconf. Easiest is to just pipe netconf commands to the clixon_netconf application.
|
As an alternative to cli configuration, you can use netconf. Easiest is to just pipe netconf commands to the clixon_netconf application.
|
||||||
Example:
|
Example:
|
||||||
echo "<rpc><get-config><source><candidate/></source><configuration/></get-config></rpc>]]>]]>" | clixon_netconf -f /usr/local/etc/routing.xml
|
echo "<rpc><get-config><source><candidate/></source><configuration/></get-config></rpc>]]>]]>" | clixon_netconf -f /usr/local/etc/example.xml
|
||||||
|
|
||||||
However, more useful is to run clixon_netconf as an SSH
|
However, more useful is to run clixon_netconf as an SSH
|
||||||
subsystem. Register the subsystem in /etc/sshd_config:
|
subsystem. Register the subsystem in /etc/sshd_config:
|
||||||
```
|
```
|
||||||
Subsystem netconf /usr/local/bin/clixon_netconf -f /usr/local/etc/routing.xml
|
Subsystem netconf /usr/local/bin/clixon_netconf -f /usr/local/etc/example.xml
|
||||||
```
|
```
|
||||||
and then invoke it from a client using
|
and then invoke it from a client using
|
||||||
```
|
```
|
||||||
|
|
@ -149,7 +149,7 @@ cli>
|
||||||
```
|
```
|
||||||
or via netconf:
|
or via netconf:
|
||||||
```
|
```
|
||||||
clixon_netconf -qf /usr/local/etc/routing.xml
|
clixon_netconf -qf /usr/local/etc/example.xml
|
||||||
<rpc><create-subscription><stream>ROUTING</stream></create-subscription></rpc>]]>]]>
|
<rpc><create-subscription><stream>ROUTING</stream></create-subscription></rpc>]]>]]>
|
||||||
<rpc-reply><ok/></rpc-reply>]]>]]>
|
<rpc-reply><ok/></rpc-reply>]]>]]>
|
||||||
<notification><event>Routing notification</event></notification>]]>]]>
|
<notification><event>Routing notification</event></notification>]]>]]>
|
||||||
|
|
@ -194,18 +194,19 @@ clixon_backend ... -c extra.xml
|
||||||
```
|
```
|
||||||
|
|
||||||
The second way is by programming the plugin_reset() in the backend
|
The second way is by programming the plugin_reset() in the backend
|
||||||
plugin. The example code contains an example on how to do this (see plugin_reset() in routing_backend.c).
|
plugin. The example code contains an example on how to do this (see plugin_reset() in example_backend.c).
|
||||||
|
|
||||||
## I want to program. How do I extend the example?
|
## I want to program. How do I extend the example?
|
||||||
- routing.xml - Change the configuration file
|
- example.xml - Change the configuration file
|
||||||
- The yang specifications - This is the central part. It changes the XML, database and the config cli.
|
- The yang specifications - This is the central part. It changes the XML, database and the config cli.
|
||||||
- routing_cli.cli - Change the fixed part of the CLI commands
|
- example_cli.cli - Change the fixed part of the CLI commands
|
||||||
- routing_cli.c - Cli C-commands are placed here.
|
- example_cli.c - Cli C-commands are placed here.
|
||||||
- routing_backend.c - Commit and validate functions.
|
- example_backend.c - Commit and validate functions.
|
||||||
- routing_netconf.c - Modify semantics of netconf commands.
|
- example_netconf.c - Netconf plugin
|
||||||
|
- example_restconf.c - Add restconf authentication, etc.
|
||||||
|
|
||||||
## How do I write a commit function?
|
## How do I write a commit function?
|
||||||
In the example, you write a commit function in routing_backend.c.
|
In the example, you write a commit function in example_backend.c.
|
||||||
Every time a commit is made, transaction_commit() is called in the
|
Every time a commit is made, transaction_commit() is called in the
|
||||||
backend. It has a 'transaction_data td' argument which is used to fetch
|
backend. It has a 'transaction_data td' argument which is used to fetch
|
||||||
information on added, deleted and changed entries. You access this
|
information on added, deleted and changed entries. You access this
|
||||||
|
|
@ -235,9 +236,9 @@ More are found in the doxygen reference.
|
||||||
|
|
||||||
## How do I write a CLI callback function?
|
## How do I write a CLI callback function?
|
||||||
|
|
||||||
1. You add an entry in routing_cli.cli
|
1. You add an entry in example_cli.cli
|
||||||
> example("This is a comment") <var:int32>("This is a variable"), mycallback("myarg");
|
> example("This is a comment") <var:int32>("This is a variable"), mycallback("myarg");
|
||||||
2. Then define a function in routing_cli.c
|
2. Then define a function in example_cli.c
|
||||||
> mycallback(clicon_handle h, cvec *cvv, cvec *arv)
|
> mycallback(clicon_handle h, cvec *cvv, cvec *arv)
|
||||||
where 'cvv' contains the value of the variable 'var' and 'argv' contains the string "myarg".
|
where 'cvv' contains the value of the variable 'var' and 'argv' contains the string "myarg".
|
||||||
|
|
||||||
|
|
@ -320,5 +321,5 @@ If a plugin is provided, it needs to supply a username. If not, the
|
||||||
request is unauthorized. the function mallocs a username and returns
|
request is unauthorized. the function mallocs a username and returns
|
||||||
it.
|
it.
|
||||||
|
|
||||||
See (../apps/example/routing_restconf.c) plugin_credentials() for
|
See (../apps/example/example_restconf.c) plugin_credentials() for
|
||||||
an example of HTTP basic auth.
|
an example of HTTP basic auth.
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ bindir = @bindir@
|
||||||
includedir = @includedir@
|
includedir = @includedir@
|
||||||
datarootdir = @datarootdir@
|
datarootdir = @datarootdir@
|
||||||
|
|
||||||
APPNAME = routing
|
APPNAME = example
|
||||||
CC = @CC@
|
CC = @CC@
|
||||||
CFLAGS = @CFLAGS@ -rdynamic -fPIC
|
CFLAGS = @CFLAGS@ -rdynamic -fPIC
|
||||||
|
|
||||||
|
|
@ -53,13 +53,12 @@ PLUGINS = $(BE_PLUGIN) $(CLI_PLUGIN) $(NETCONF_PLUGIN) $(RESTCONF_PLUGIN)
|
||||||
|
|
||||||
all: $(PLUGINS)
|
all: $(PLUGINS)
|
||||||
|
|
||||||
# Note: clixon.mk has a rule for:
|
# Note: clixon.mk has rules for clixon_DBSPECDIR, clixon_SYSCONFDIR, etc used below
|
||||||
# $(APPNAME.conf)
|
|
||||||
-include $(DESTDIR)$(datarootdir)/clixon/clixon.mk
|
-include $(DESTDIR)$(datarootdir)/clixon/clixon.mk
|
||||||
|
|
||||||
CLISPECS = routing_cli.cli
|
CLISPECS = $(APPNAME)_cli.cli
|
||||||
|
|
||||||
#YANGSPECS = $(APPNAME).yang
|
YANGSPECS = $(APPNAME).yang
|
||||||
YANGSPECS += ietf-yang-types@2013-07-15.yang
|
YANGSPECS += ietf-yang-types@2013-07-15.yang
|
||||||
YANGSPECS += ietf-inet-types@2013-07-15.yang
|
YANGSPECS += ietf-inet-types@2013-07-15.yang
|
||||||
YANGSPECS += ietf-interfaces@2014-05-08.yang
|
YANGSPECS += ietf-interfaces@2014-05-08.yang
|
||||||
|
|
@ -68,28 +67,27 @@ YANGSPECS += ietf-routing@2014-10-26.yang
|
||||||
YANGSPECS += ietf-ipv4-unicast-routing@2014-10-26.yang
|
YANGSPECS += ietf-ipv4-unicast-routing@2014-10-26.yang
|
||||||
YANGSPECS += ietf-ipv6-unicast-routing@2014-10-26.yang
|
YANGSPECS += ietf-ipv6-unicast-routing@2014-10-26.yang
|
||||||
YANGSPECS += ietf-ipsec@2016-03-09.yang
|
YANGSPECS += ietf-ipsec@2016-03-09.yang
|
||||||
YANGSPECS += example.yang
|
|
||||||
|
|
||||||
# Backend plugin
|
# Backend plugin
|
||||||
BE_SRC = routing_backend.c
|
BE_SRC = $(APPNAME)_backend.c
|
||||||
BE_OBJ = $(BE_SRC:%.c=%.o)
|
BE_OBJ = $(BE_SRC:%.c=%.o)
|
||||||
$(BE_PLUGIN): $(BE_OBJ)
|
$(BE_PLUGIN): $(BE_OBJ)
|
||||||
$(CC) -Wall -shared -o $@ -lc $<
|
$(CC) -Wall -shared -o $@ -lc $<
|
||||||
|
|
||||||
# CLI frontend plugin
|
# CLI frontend plugin
|
||||||
CLI_SRC = routing_cli.c
|
CLI_SRC = $(APPNAME)_cli.c
|
||||||
CLI_OBJ = $(CLI_SRC:%.c=%.o)
|
CLI_OBJ = $(CLI_SRC:%.c=%.o)
|
||||||
$(CLI_PLUGIN): $(CLI_OBJ)
|
$(CLI_PLUGIN): $(CLI_OBJ)
|
||||||
$(CC) -Wall -shared -o $@ -lc $^
|
$(CC) -Wall -shared -o $@ -lc $^
|
||||||
|
|
||||||
# NETCONF frontend plugin
|
# NETCONF frontend plugin
|
||||||
NETCONF_SRC = routing_netconf.c
|
NETCONF_SRC = $(APPNAME)_netconf.c
|
||||||
NETCONF_OBJ = $(NETCONF_SRC:%.c=%.o)
|
NETCONF_OBJ = $(NETCONF_SRC:%.c=%.o)
|
||||||
$(NETCONF_PLUGIN): $(NETCONF_OBJ)
|
$(NETCONF_PLUGIN): $(NETCONF_OBJ)
|
||||||
$(CC) -Wall -shared -o $@ -lc $^
|
$(CC) -Wall -shared -o $@ -lc $^
|
||||||
|
|
||||||
# RESTCONF frontend plugin
|
# RESTCONF frontend plugin
|
||||||
RESTCONF_SRC = routing_restconf.c
|
RESTCONF_SRC = $(APPNAME)_restconf.c
|
||||||
RESTCONF_OBJ = $(RESTCONF_SRC:%.c=%.o)
|
RESTCONF_OBJ = $(RESTCONF_SRC:%.c=%.o)
|
||||||
$(RESTCONF_PLUGIN): $(RESTCONF_OBJ)
|
$(RESTCONF_PLUGIN): $(RESTCONF_OBJ)
|
||||||
$(CC) -Wall -shared -o $@ -lc $^
|
$(CC) -Wall -shared -o $@ -lc $^
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,19 @@
|
||||||
# Clixon yang routing example
|
# Clixon example
|
||||||
|
|
||||||
|
This directory contains a Clixon example which includes a simple
|
||||||
|
routing example. It contains the following files:
|
||||||
|
* example.xml The configuration file. See yang/clixon-config@<date>.yang for all available fields.
|
||||||
|
* example.yang The yang spec of the example. It mainly includes ietf routing and IP modules.
|
||||||
|
* example_cli.cli CLIgen specification.
|
||||||
|
* example_cli.c CLI callback plugin containing functions called in the cli file above: a generic callback (`mycallback`) and an RPC (`fib_route_rpc`).
|
||||||
|
* example_backend.c Backend callback plugin including example of:
|
||||||
|
* transaction callbacks (validate/commit),
|
||||||
|
* notification,
|
||||||
|
* rpc handler
|
||||||
|
* state-data handler, ie non-config data
|
||||||
|
* example_restconf.c Restconf callback plugin containing an HTTP basic authentication callback
|
||||||
|
* example_netconf.c Netconf callback plugin
|
||||||
|
* Makefile.in Example makefile where plugins are built and installed
|
||||||
|
|
||||||
## Compile and run
|
## Compile and run
|
||||||
```
|
```
|
||||||
|
|
@ -7,15 +22,23 @@
|
||||||
```
|
```
|
||||||
Start backend:
|
Start backend:
|
||||||
```
|
```
|
||||||
clixon_backend -f /usr/local/etc/routing.xml -I
|
clixon_backend -f /usr/local/etc/example.xml -I
|
||||||
```
|
```
|
||||||
Edit cli:
|
Edit cli:
|
||||||
```
|
```
|
||||||
clixon_cli -f /usr/local/etc/routing.xml
|
clixon_cli -f /usr/local/etc/example.xml
|
||||||
```
|
```
|
||||||
Send netconf command:
|
Send netconf command:
|
||||||
```
|
```
|
||||||
clixon_netconf -f /usr/local/etc/routing.xml
|
clixon_netconf -f /usr/local/etc/example.xml
|
||||||
|
```
|
||||||
|
Start clixon restconf daemon
|
||||||
|
```
|
||||||
|
> sudo su -c "/www-data/clixon_restconf -f /usr/local/etc/example.xml " -s /bin/sh www-data
|
||||||
|
```
|
||||||
|
Send restconf command
|
||||||
|
```
|
||||||
|
curl -G http://127.0.0.1/restconf/data
|
||||||
```
|
```
|
||||||
|
|
||||||
## Setting data example using netconf
|
## Setting data example using netconf
|
||||||
|
|
@ -114,7 +137,7 @@ plugin_init(clicon_handle h)
|
||||||
|
|
||||||
Netconf <get> and restconf GET also returns state data, in contrast to
|
Netconf <get> and restconf GET also returns state data, in contrast to
|
||||||
config data.
|
config data.
|
||||||
|
p
|
||||||
In YANG state data is specified with "config false;". In the example, interface-state is state data.
|
In YANG state data is specified with "config false;". In the example, interface-state is state data.
|
||||||
|
|
||||||
To return state data, you need to write a backend state data callback
|
To return state data, you need to write a backend state data callback
|
||||||
|
|
|
||||||
18
example/example.xml
Normal file
18
example/example.xml
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
<config>
|
||||||
|
<CLICON_CONFIGFILE>/usr/local/etc/example.xml</CLICON_CONFIGFILE>
|
||||||
|
<CLICON_YANG_DIR>/usr/local/share/example/yang</CLICON_YANG_DIR>
|
||||||
|
<CLICON_YANG_MODULE_MAIN>example</CLICON_YANG_MODULE_MAIN>
|
||||||
|
<CLICON_CLI_MODE>example</CLICON_CLI_MODE>
|
||||||
|
<CLICON_BACKEND_DIR>/usr/local/lib/example/backend</CLICON_BACKEND_DIR>
|
||||||
|
<CLICON_NETCONF_DIR>/usr/local/lib/example/netconf</CLICON_NETCONF_DIR>
|
||||||
|
<CLICON_RESTCONF_DIR>/usr/local/lib/example/restconf</CLICON_RESTCONF_DIR>
|
||||||
|
<CLICON_CLI_DIR>/usr/local/lib/example/cli</CLICON_CLI_DIR>
|
||||||
|
<CLICON_CLISPEC_DIR>/usr/local/lib/example/clispec</CLICON_CLISPEC_DIR>
|
||||||
|
<CLICON_SOCK>/usr/local/var/example/example.sock</CLICON_SOCK>
|
||||||
|
<CLICON_BACKEND_PIDFILE>/usr/local/var/example/example.pidfile</CLICON_BACKEND_PIDFILE>
|
||||||
|
<CLICON_CLI_GENMODEL_COMPLETION>1</CLICON_CLI_GENMODEL_COMPLETION>
|
||||||
|
<CLICON_XMLDB_DIR>/usr/local/var/example</CLICON_XMLDB_DIR>
|
||||||
|
<CLICON_XMLDB_PLUGIN>/usr/local/lib/xmldb/text.so</CLICON_XMLDB_PLUGIN>
|
||||||
|
<CLICON_CLI_LINESCROLLING>0</CLICON_CLI_LINESCROLLING>
|
||||||
|
<CLICON_STARTUP_MODE>init</CLICON_STARTUP_MODE>
|
||||||
|
</config>
|
||||||
|
|
@ -6,9 +6,6 @@ module example {
|
||||||
import ietf-routing {
|
import ietf-routing {
|
||||||
prefix rt;
|
prefix rt;
|
||||||
}
|
}
|
||||||
import ietf-netconf-acm {
|
|
||||||
prefix nacm; /* See RFC 6536 */
|
|
||||||
}
|
|
||||||
description
|
description
|
||||||
"Example code that includes ietf-ip and ietf-routing";
|
"Example code that includes ietf-ip and ietf-routing";
|
||||||
leaf basic_auth{
|
leaf basic_auth{
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
# Common CLI syntax for both server and PMNode operatio mode
|
# Common CLI syntax for both server and PMNode operatio mode
|
||||||
CLICON_MODE="routing";
|
CLICON_MODE="example";
|
||||||
CLICON_PROMPT="%U@%H> ";
|
CLICON_PROMPT="%U@%H> ";
|
||||||
CLICON_PLUGIN="routing_cli";
|
CLICON_PLUGIN="example_cli";
|
||||||
|
|
||||||
# Note, when switching to PT, change datamodel to only @datamodel
|
# Note, when switching to PT, change datamodel to only @datamodel
|
||||||
set @datamodel:example, cli_set();
|
set @datamodel:example, cli_set();
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
# Main YANG module first parsed by parser (in CLICON_YANG_DIR). eg clicon.yang.
|
|
||||||
|
|
||||||
# Startup CLI mode. This should match the CLICON_MODE in your startup clispec file
|
|
||||||
CLICON_CLI_MODE routing
|
|
||||||
|
|
||||||
# Option used to construct initial yang file:
|
|
||||||
# <module>[@<revision>]
|
|
||||||
#CLICON_YANG_MODULE_MAIN ietf-ip
|
|
||||||
CLICON_YANG_MODULE_MAIN example
|
|
||||||
|
|
||||||
# Option used to construct initial yang file:
|
|
||||||
# <module>[@<revision>]
|
|
||||||
#CLICON_YANG_MODULE_REVISION 2014-06-16
|
|
||||||
|
|
||||||
# Set to 0 if you want CLI to wrap to next line.
|
|
||||||
# Set to 1 if you want CLI to scroll sideways when approaching right margin
|
|
||||||
CLICON_CLI_LINESCROLLING 0
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
<config>
|
|
||||||
<CLICON_CONFIGFILE>/usr/local/etc/routing.xml</CLICON_CONFIGFILE>
|
|
||||||
<CLICON_YANG_DIR>/usr/local/share/routing/yang</CLICON_YANG_DIR>
|
|
||||||
<CLICON_YANG_MODULE_MAIN>example</CLICON_YANG_MODULE_MAIN>
|
|
||||||
<CLICON_CLI_MODE>routing</CLICON_CLI_MODE>
|
|
||||||
<CLICON_BACKEND_DIR>/usr/local/lib/routing/backend</CLICON_BACKEND_DIR>
|
|
||||||
<CLICON_NETCONF_DIR>/usr/local/lib/routing/netconf</CLICON_NETCONF_DIR>
|
|
||||||
<CLICON_RESTCONF_DIR>/usr/local/lib/routing/restconf</CLICON_RESTCONF_DIR>
|
|
||||||
<CLICON_CLI_DIR>/usr/local/lib/routing/cli</CLICON_CLI_DIR>
|
|
||||||
<CLICON_CLISPEC_DIR>/usr/local/lib/routing/clispec</CLICON_CLISPEC_DIR>
|
|
||||||
<CLICON_SOCK>/usr/local/var/routing/routing.sock</CLICON_SOCK>
|
|
||||||
<CLICON_BACKEND_PIDFILE>/usr/local/var/routing/routing.pidfile</CLICON_BACKEND_PIDFILE>
|
|
||||||
<CLICON_CLI_GENMODEL_COMPLETION>1</CLICON_CLI_GENMODEL_COMPLETION>
|
|
||||||
<CLICON_XMLDB_DIR>/usr/local/var/routing</CLICON_XMLDB_DIR>
|
|
||||||
<CLICON_XMLDB_PLUGIN>/usr/local/lib/xmldb/text.so</CLICON_XMLDB_PLUGIN>
|
|
||||||
<CLICON_CLI_LINESCROLLING>0</CLICON_CLI_LINESCROLLING>
|
|
||||||
<CLICON_STARTUP_MODE>init</CLICON_STARTUP_MODE>
|
|
||||||
</config>
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Authentication and authorization
|
# Authentication and authorization
|
||||||
|
|
||||||
|
APPNAME=example
|
||||||
# include err() and new() functions and creates $dir
|
# include err() and new() functions and creates $dir
|
||||||
. ./lib.sh
|
. ./lib.sh
|
||||||
|
|
||||||
|
|
@ -11,23 +12,23 @@ fyangerr=$dir/err.yang
|
||||||
cat <<EOF > $cfg
|
cat <<EOF > $cfg
|
||||||
<config>
|
<config>
|
||||||
<CLICON_CONFIGFILE>$cfg</CLICON_CONFIGFILE>
|
<CLICON_CONFIGFILE>$cfg</CLICON_CONFIGFILE>
|
||||||
<CLICON_YANG_DIR>/usr/local/share/routing/yang</CLICON_YANG_DIR>
|
<CLICON_YANG_DIR>/usr/local/share/$APPNAME/yang</CLICON_YANG_DIR>
|
||||||
<CLICON_YANG_MODULE_MAIN>example</CLICON_YANG_MODULE_MAIN>
|
<CLICON_YANG_MODULE_MAIN>$APPNAME</CLICON_YANG_MODULE_MAIN>
|
||||||
<CLICON_CLISPEC_DIR>/usr/local/lib/routing/clispec</CLICON_CLISPEC_DIR>
|
<CLICON_CLISPEC_DIR>/usr/local/lib/$APPNAME/clispec</CLICON_CLISPEC_DIR>
|
||||||
<CLICON_RESTCONF_DIR>/usr/local/lib/routing/restconf</CLICON_RESTCONF_DIR>
|
<CLICON_RESTCONF_DIR>/usr/local/lib/$APPNAME/restconf</CLICON_RESTCONF_DIR>
|
||||||
<CLICON_CLI_DIR>/usr/local/lib/routing/cli</CLICON_CLI_DIR>
|
<CLICON_CLI_DIR>/usr/local/lib/$APPNAME/cli</CLICON_CLI_DIR>
|
||||||
<CLICON_CLI_MODE>routing</CLICON_CLI_MODE>
|
<CLICON_CLI_MODE>$APPNAME</CLICON_CLI_MODE>
|
||||||
<CLICON_SOCK>/usr/local/var/routing/routing.sock</CLICON_SOCK>
|
<CLICON_SOCK>/usr/local/var/$APPNAME/$APPNAME.sock</CLICON_SOCK>
|
||||||
<CLICON_BACKEND_PIDFILE>/usr/local/var/routing/routing.pidfile</CLICON_BACKEND_PIDFILE>
|
<CLICON_BACKEND_PIDFILE>/usr/local/var/$APPNAME/$APPNAME.pidfile</CLICON_BACKEND_PIDFILE>
|
||||||
<CLICON_CLI_GENMODEL_COMPLETION>1</CLICON_CLI_GENMODEL_COMPLETION>
|
<CLICON_CLI_GENMODEL_COMPLETION>1</CLICON_CLI_GENMODEL_COMPLETION>
|
||||||
<CLICON_XMLDB_DIR>/usr/local/var/routing</CLICON_XMLDB_DIR>
|
<CLICON_XMLDB_DIR>/usr/local/var/$APPNAME</CLICON_XMLDB_DIR>
|
||||||
<CLICON_XMLDB_PLUGIN>/usr/local/lib/xmldb/text.so</CLICON_XMLDB_PLUGIN>
|
<CLICON_XMLDB_PLUGIN>/usr/local/lib/xmldb/text.so</CLICON_XMLDB_PLUGIN>
|
||||||
<CLICON_RESTCONF_PRETTY>false</CLICON_RESTCONF_PRETTY>
|
<CLICON_RESTCONF_PRETTY>false</CLICON_RESTCONF_PRETTY>
|
||||||
</config>
|
</config>
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
cat <<EOF > $fyang
|
cat <<EOF > $fyang
|
||||||
module example{
|
module $APPNAME{
|
||||||
prefix ex;
|
prefix ex;
|
||||||
leaf basic_auth{
|
leaf basic_auth{
|
||||||
description "Basic user / password authentication as in HTTP basic auth";
|
description "Basic user / password authentication as in HTTP basic auth";
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@
|
||||||
# Set the mandatory type
|
# Set the mandatory type
|
||||||
# Commit
|
# Commit
|
||||||
|
|
||||||
|
APPNAME=example
|
||||||
# include err() and new() functions and creates $dir
|
# include err() and new() functions and creates $dir
|
||||||
. ./lib.sh
|
. ./lib.sh
|
||||||
cfg=$dir/conf_yang.xml
|
cfg=$dir/conf_yang.xml
|
||||||
|
|
@ -15,15 +16,15 @@ cfg=$dir/conf_yang.xml
|
||||||
cat <<EOF > $cfg
|
cat <<EOF > $cfg
|
||||||
<config>
|
<config>
|
||||||
<CLICON_CONFIGFILE>$cfg</CLICON_CONFIGFILE>
|
<CLICON_CONFIGFILE>$cfg</CLICON_CONFIGFILE>
|
||||||
<CLICON_YANG_DIR>/usr/local/share/routing/yang</CLICON_YANG_DIR>
|
<CLICON_YANG_DIR>/usr/local/share/$APPNAME/yang</CLICON_YANG_DIR>
|
||||||
<CLICON_YANG_MODULE_MAIN>example</CLICON_YANG_MODULE_MAIN>
|
<CLICON_YANG_MODULE_MAIN>$APPNAME</CLICON_YANG_MODULE_MAIN>
|
||||||
<CLICON_CLISPEC_DIR>/usr/local/lib/routing/clispec</CLICON_CLISPEC_DIR>
|
<CLICON_CLISPEC_DIR>/usr/local/lib/$APPNAME/clispec</CLICON_CLISPEC_DIR>
|
||||||
<CLICON_CLI_DIR>/usr/local/lib/routing/cli</CLICON_CLI_DIR>
|
<CLICON_CLI_DIR>/usr/local/lib/$APPNAME/cli</CLICON_CLI_DIR>
|
||||||
<CLICON_CLI_MODE>routing</CLICON_CLI_MODE>
|
<CLICON_CLI_MODE>$APPNAME</CLICON_CLI_MODE>
|
||||||
<CLICON_SOCK>/usr/local/var/routing/routing.sock</CLICON_SOCK>
|
<CLICON_SOCK>/usr/local/var/$APPNAME/$APPNAME.sock</CLICON_SOCK>
|
||||||
<CLICON_BACKEND_PIDFILE>/usr/local/var/routing/routing.pidfile</CLICON_BACKEND_PIDFILE>
|
<CLICON_BACKEND_PIDFILE>/usr/local/var/$APPNAME/$APPNAME.pidfile</CLICON_BACKEND_PIDFILE>
|
||||||
<CLICON_CLI_GENMODEL_COMPLETION>1</CLICON_CLI_GENMODEL_COMPLETION>
|
<CLICON_CLI_GENMODEL_COMPLETION>1</CLICON_CLI_GENMODEL_COMPLETION>
|
||||||
<CLICON_XMLDB_DIR>/usr/local/var/routing</CLICON_XMLDB_DIR>
|
<CLICON_XMLDB_DIR>/usr/local/var/$APPNAME</CLICON_XMLDB_DIR>
|
||||||
<CLICON_XMLDB_PLUGIN>/usr/local/lib/xmldb/text.so</CLICON_XMLDB_PLUGIN>
|
<CLICON_XMLDB_PLUGIN>/usr/local/lib/xmldb/text.so</CLICON_XMLDB_PLUGIN>
|
||||||
</config>
|
</config>
|
||||||
EOF
|
EOF
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Test7: Yang specifics: leafref
|
# Test7: Yang specifics: leafref
|
||||||
|
APPNAME=example
|
||||||
# include err() and new() functions and creates $dir
|
# include err() and new() functions and creates $dir
|
||||||
. ./lib.sh
|
. ./lib.sh
|
||||||
cfg=$dir/conf_yang.xml
|
cfg=$dir/conf_yang.xml
|
||||||
|
|
@ -9,15 +9,15 @@ fyang=$dir/leafref.yang
|
||||||
cat <<EOF > $cfg
|
cat <<EOF > $cfg
|
||||||
<config>
|
<config>
|
||||||
<CLICON_CONFIGFILE>$cfg</CLICON_CONFIGFILE>
|
<CLICON_CONFIGFILE>$cfg</CLICON_CONFIGFILE>
|
||||||
<CLICON_YANG_DIR>/usr/local/share/routing/yang</CLICON_YANG_DIR>
|
<CLICON_YANG_DIR>/usr/local/share/$APPNAME/yang</CLICON_YANG_DIR>
|
||||||
<CLICON_YANG_MODULE_MAIN>example</CLICON_YANG_MODULE_MAIN>
|
<CLICON_YANG_MODULE_MAIN>example</CLICON_YANG_MODULE_MAIN>
|
||||||
<CLICON_CLISPEC_DIR>/usr/local/lib/routing/clispec</CLICON_CLISPEC_DIR>
|
<CLICON_CLISPEC_DIR>/usr/local/lib/$APPNAME/clispec</CLICON_CLISPEC_DIR>
|
||||||
<CLICON_CLI_DIR>/usr/local/lib/routing/cli</CLICON_CLI_DIR>
|
<CLICON_CLI_DIR>/usr/local/lib/$APPNAME/cli</CLICON_CLI_DIR>
|
||||||
<CLICON_CLI_MODE>routing</CLICON_CLI_MODE>
|
<CLICON_CLI_MODE>$APPNAME</CLICON_CLI_MODE>
|
||||||
<CLICON_SOCK>/usr/local/var/routing/routing.sock</CLICON_SOCK>
|
<CLICON_SOCK>/usr/local/var/$APPNAME/$APPNAME.sock</CLICON_SOCK>
|
||||||
<CLICON_BACKEND_PIDFILE>/usr/local/var/routing/routing.pidfile</CLICON_BACKEND_PIDFILE>
|
<CLICON_BACKEND_PIDFILE>/usr/local/var/$APPNAME/$APPNAME.pidfile</CLICON_BACKEND_PIDFILE>
|
||||||
<CLICON_CLI_GENMODEL_COMPLETION>1</CLICON_CLI_GENMODEL_COMPLETION>
|
<CLICON_CLI_GENMODEL_COMPLETION>1</CLICON_CLI_GENMODEL_COMPLETION>
|
||||||
<CLICON_XMLDB_DIR>/usr/local/var/routing</CLICON_XMLDB_DIR>
|
<CLICON_XMLDB_DIR>/usr/local/var/$APPNAME</CLICON_XMLDB_DIR>
|
||||||
<CLICON_XMLDB_PLUGIN>/usr/local/lib/xmldb/text.so</CLICON_XMLDB_PLUGIN>
|
<CLICON_XMLDB_PLUGIN>/usr/local/lib/xmldb/text.so</CLICON_XMLDB_PLUGIN>
|
||||||
</config>
|
</config>
|
||||||
EOF
|
EOF
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Test2: backend and netconf basic functionality
|
# Test2: backend and netconf basic functionality
|
||||||
|
APPNAME=example
|
||||||
# include err() and new() functions and creates $dir
|
# include err() and new() functions and creates $dir
|
||||||
. ./lib.sh
|
. ./lib.sh
|
||||||
|
|
||||||
|
|
@ -9,18 +9,18 @@ cfg=$dir/conf_yang.xml
|
||||||
cat <<EOF > $cfg
|
cat <<EOF > $cfg
|
||||||
<config>
|
<config>
|
||||||
<CLICON_CONFIGFILE>$cfg</CLICON_CONFIGFILE>
|
<CLICON_CONFIGFILE>$cfg</CLICON_CONFIGFILE>
|
||||||
<CLICON_YANG_DIR>/usr/local/share/routing/yang</CLICON_YANG_DIR>
|
<CLICON_YANG_DIR>/usr/local/share/$APPNAME/yang</CLICON_YANG_DIR>
|
||||||
<CLICON_YANG_MODULE_MAIN>example</CLICON_YANG_MODULE_MAIN>
|
<CLICON_YANG_MODULE_MAIN>example</CLICON_YANG_MODULE_MAIN>
|
||||||
<CLICON_CLISPEC_DIR>/usr/local/lib/routing/clispec</CLICON_CLISPEC_DIR>
|
<CLICON_CLISPEC_DIR>/usr/local/lib/$APPNAME/clispec</CLICON_CLISPEC_DIR>
|
||||||
<CLICON_BACKEND_DIR>/usr/local/lib/routing/backend</CLICON_BACKEND_DIR>
|
<CLICON_BACKEND_DIR>/usr/local/lib/$APPNAME/backend</CLICON_BACKEND_DIR>
|
||||||
<CLICON_NETCONF_DIR>/usr/local/lib/routing/netconf</CLICON_NETCONF_DIR>
|
<CLICON_NETCONF_DIR>/usr/local/lib/$APPNAME/netconf</CLICON_NETCONF_DIR>
|
||||||
<CLICON_RESTCONF_DIR>/usr/local/lib/routing/restconf</CLICON_RESTCONF_DIR>
|
<CLICON_RESTCONF_DIR>/usr/local/lib/$APPNAME/restconf</CLICON_RESTCONF_DIR>
|
||||||
<CLICON_CLI_DIR>/usr/local/lib/routing/cli</CLICON_CLI_DIR>
|
<CLICON_CLI_DIR>/usr/local/lib/$APPNAME/cli</CLICON_CLI_DIR>
|
||||||
<CLICON_CLI_MODE>routing</CLICON_CLI_MODE>
|
<CLICON_CLI_MODE>$APPNAME</CLICON_CLI_MODE>
|
||||||
<CLICON_SOCK>/usr/local/var/routing/routing.sock</CLICON_SOCK>
|
<CLICON_SOCK>/usr/local/var/$APPNAME/$APPNAME.sock</CLICON_SOCK>
|
||||||
<CLICON_BACKEND_PIDFILE>/usr/local/var/routing/routing.pidfile</CLICON_BACKEND_PIDFILE>
|
<CLICON_BACKEND_PIDFILE>/usr/local/var/$APPNAME/$APPNAME.pidfile</CLICON_BACKEND_PIDFILE>
|
||||||
<CLICON_CLI_GENMODEL_COMPLETION>1</CLICON_CLI_GENMODEL_COMPLETION>
|
<CLICON_CLI_GENMODEL_COMPLETION>1</CLICON_CLI_GENMODEL_COMPLETION>
|
||||||
<CLICON_XMLDB_DIR>/usr/local/var/routing</CLICON_XMLDB_DIR>
|
<CLICON_XMLDB_DIR>/usr/local/var/$APPNAME</CLICON_XMLDB_DIR>
|
||||||
<CLICON_XMLDB_PLUGIN>/usr/local/lib/xmldb/text.so</CLICON_XMLDB_PLUGIN>
|
<CLICON_XMLDB_PLUGIN>/usr/local/lib/xmldb/text.so</CLICON_XMLDB_PLUGIN>
|
||||||
</config>
|
</config>
|
||||||
EOF
|
EOF
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
# The ordered-by user MUST be the order it is entered.
|
# The ordered-by user MUST be the order it is entered.
|
||||||
# No test of ordered-by system is done yet
|
# No test of ordered-by system is done yet
|
||||||
# (we may want to sort them alphabetically for better performance).
|
# (we may want to sort them alphabetically for better performance).
|
||||||
|
APPNAME=example
|
||||||
# include err() and new() functions and creates $dir
|
# include err() and new() functions and creates $dir
|
||||||
. ./lib.sh
|
. ./lib.sh
|
||||||
cfg=$dir/conf_yang.xml
|
cfg=$dir/conf_yang.xml
|
||||||
|
|
@ -25,13 +25,13 @@ fi
|
||||||
cat <<EOF > $cfg
|
cat <<EOF > $cfg
|
||||||
<config>
|
<config>
|
||||||
<CLICON_CONFIGFILE>/tmp/conf_yang.xml</CLICON_CONFIGFILE>
|
<CLICON_CONFIGFILE>/tmp/conf_yang.xml</CLICON_CONFIGFILE>
|
||||||
<CLICON_YANG_DIR>/usr/local/share/routing/yang</CLICON_YANG_DIR>
|
<CLICON_YANG_DIR>/usr/local/share/$APPNAME/yang</CLICON_YANG_DIR>
|
||||||
<CLICON_YANG_MODULE_MAIN>example</CLICON_YANG_MODULE_MAIN>
|
<CLICON_YANG_MODULE_MAIN>example</CLICON_YANG_MODULE_MAIN>
|
||||||
<CLICON_CLISPEC_DIR>/usr/local/lib/routing/clispec</CLICON_CLISPEC_DIR>
|
<CLICON_CLISPEC_DIR>/usr/local/lib/$APPNAME/clispec</CLICON_CLISPEC_DIR>
|
||||||
<CLICON_CLI_DIR>/usr/local/lib/routing/cli</CLICON_CLI_DIR>
|
<CLICON_CLI_DIR>/usr/local/lib/$APPNAME/cli</CLICON_CLI_DIR>
|
||||||
<CLICON_CLI_MODE>routing</CLICON_CLI_MODE>
|
<CLICON_CLI_MODE>$APPNAME</CLICON_CLI_MODE>
|
||||||
<CLICON_SOCK>/usr/local/var/routing/routing.sock</CLICON_SOCK>
|
<CLICON_SOCK>/usr/local/var/$APPNAME/$APPNAME.sock</CLICON_SOCK>
|
||||||
<CLICON_BACKEND_PIDFILE>/usr/local/var/routing/routing.pidfile</CLICON_BACKEND_PIDFILE>
|
<CLICON_BACKEND_PIDFILE>/usr/local/var/$APPNAME/$APPNAME.pidfile</CLICON_BACKEND_PIDFILE>
|
||||||
<CLICON_CLI_GENMODEL_COMPLETION>1</CLICON_CLI_GENMODEL_COMPLETION>
|
<CLICON_CLI_GENMODEL_COMPLETION>1</CLICON_CLI_GENMODEL_COMPLETION>
|
||||||
<CLICON_XMLDB_DIR>$dbdir</CLICON_XMLDB_DIR>
|
<CLICON_XMLDB_DIR>$dbdir</CLICON_XMLDB_DIR>
|
||||||
<CLICON_XMLDB_PLUGIN>/usr/local/lib/xmldb/text.so</CLICON_XMLDB_PLUGIN>
|
<CLICON_XMLDB_PLUGIN>/usr/local/lib/xmldb/text.so</CLICON_XMLDB_PLUGIN>
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ else
|
||||||
echo "Usage: $0 [<number> [<requests>]]"
|
echo "Usage: $0 [<number> [<requests>]]"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
APPNAME=example
|
||||||
# include err() and new() functions and creates $dir
|
# include err() and new() functions and creates $dir
|
||||||
. ./lib.sh
|
. ./lib.sh
|
||||||
|
|
||||||
|
|
@ -46,10 +46,10 @@ cat <<EOF > $cfg
|
||||||
<CLICON_CONFIGFILE>$cfg</CLICON_CONFIGFILE>
|
<CLICON_CONFIGFILE>$cfg</CLICON_CONFIGFILE>
|
||||||
<CLICON_YANG_DIR>$fyang</CLICON_YANG_DIR>
|
<CLICON_YANG_DIR>$fyang</CLICON_YANG_DIR>
|
||||||
<CLICON_YANG_MODULE_MAIN>ietf-ip</CLICON_YANG_MODULE_MAIN>
|
<CLICON_YANG_MODULE_MAIN>ietf-ip</CLICON_YANG_MODULE_MAIN>
|
||||||
<CLICON_SOCK>/usr/local/var/routing/routing.sock</CLICON_SOCK>
|
<CLICON_SOCK>/usr/local/var/$APPNAME/$APPNAME.sock</CLICON_SOCK>
|
||||||
<CLICON_BACKEND_PIDFILE>/usr/local/var/routing/routing.pidfile</CLICON_BACKEND_PIDFILE>
|
<CLICON_BACKEND_PIDFILE>/usr/local/var/$APPNAME/$APPNAME.pidfile</CLICON_BACKEND_PIDFILE>
|
||||||
<CLICON_RESTCONF_PRETTY>false</CLICON_RESTCONF_PRETTY>
|
<CLICON_RESTCONF_PRETTY>false</CLICON_RESTCONF_PRETTY>
|
||||||
<CLICON_XMLDB_DIR>/usr/local/var/routing</CLICON_XMLDB_DIR>
|
<CLICON_XMLDB_DIR>/usr/local/var/$APPNAME</CLICON_XMLDB_DIR>
|
||||||
<CLICON_XMLDB_PLUGIN>/usr/local/lib/xmldb/text.so</CLICON_XMLDB_PLUGIN>
|
<CLICON_XMLDB_PLUGIN>/usr/local/lib/xmldb/text.so</CLICON_XMLDB_PLUGIN>
|
||||||
</config>
|
</config>
|
||||||
EOF
|
EOF
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Restconf basic functionality
|
# Restconf basic functionality
|
||||||
# Assume http server setup, such as nginx described in apps/restconf/README.md
|
# Assume http server setup, such as nginx described in apps/restconf/README.md
|
||||||
|
APPNAME=example
|
||||||
# include err() and new() functions and creates $dir
|
# include err() and new() functions and creates $dir
|
||||||
. ./lib.sh
|
. ./lib.sh
|
||||||
cfg=$dir/conf.xml
|
cfg=$dir/conf.xml
|
||||||
|
|
@ -11,18 +11,18 @@ fyang=$dir/restconf.yang
|
||||||
cat <<EOF > $cfg
|
cat <<EOF > $cfg
|
||||||
<config>
|
<config>
|
||||||
<CLICON_CONFIGFILE>$cfg</CLICON_CONFIGFILE>
|
<CLICON_CONFIGFILE>$cfg</CLICON_CONFIGFILE>
|
||||||
<CLICON_YANG_DIR>/usr/local/share/routing/yang</CLICON_YANG_DIR>
|
<CLICON_YANG_DIR>/usr/local/share/$APPNAME/yang</CLICON_YANG_DIR>
|
||||||
<CLICON_YANG_MODULE_MAIN>$fyang</CLICON_YANG_MODULE_MAIN>
|
<CLICON_YANG_MODULE_MAIN>$fyang</CLICON_YANG_MODULE_MAIN>
|
||||||
<CLICON_CLISPEC_DIR>/usr/local/lib/routing/clispec</CLICON_CLISPEC_DIR>
|
<CLICON_CLISPEC_DIR>/usr/local/lib/$APPNAME/clispec</CLICON_CLISPEC_DIR>
|
||||||
<CLICON_BACKEND_DIR>/usr/local/lib/routing/backend</CLICON_BACKEND_DIR>
|
<CLICON_BACKEND_DIR>/usr/local/lib/$APPNAME/backend</CLICON_BACKEND_DIR>
|
||||||
<CLICON_RESTCONF_DIR>/usr/local/lib/routing/restconf</CLICON_RESTCONF_DIR>
|
<CLICON_RESTCONF_DIR>/usr/local/lib/$APPNAME/restconf</CLICON_RESTCONF_DIR>
|
||||||
<CLICON_RESTCONF_PRETTY>false</CLICON_RESTCONF_PRETTY>
|
<CLICON_RESTCONF_PRETTY>false</CLICON_RESTCONF_PRETTY>
|
||||||
<CLICON_CLI_DIR>/usr/local/lib/routing/cli</CLICON_CLI_DIR>
|
<CLICON_CLI_DIR>/usr/local/lib/$APPNAME/cli</CLICON_CLI_DIR>
|
||||||
<CLICON_CLI_MODE>routing</CLICON_CLI_MODE>
|
<CLICON_CLI_MODE>$APPNAME</CLICON_CLI_MODE>
|
||||||
<CLICON_SOCK>/usr/local/var/routing/routing.sock</CLICON_SOCK>
|
<CLICON_SOCK>/usr/local/var/$APPNAME/$APPNAME.sock</CLICON_SOCK>
|
||||||
<CLICON_BACKEND_PIDFILE>/usr/local/var/routing/routing.pidfile</CLICON_BACKEND_PIDFILE>
|
<CLICON_BACKEND_PIDFILE>/usr/local/var/$APPNAME/$APPNAME.pidfile</CLICON_BACKEND_PIDFILE>
|
||||||
<CLICON_CLI_GENMODEL_COMPLETION>1</CLICON_CLI_GENMODEL_COMPLETION>
|
<CLICON_CLI_GENMODEL_COMPLETION>1</CLICON_CLI_GENMODEL_COMPLETION>
|
||||||
<CLICON_XMLDB_DIR>/usr/local/var/routing</CLICON_XMLDB_DIR>
|
<CLICON_XMLDB_DIR>/usr/local/var/$APPNAME</CLICON_XMLDB_DIR>
|
||||||
<CLICON_XMLDB_PLUGIN>/usr/local/lib/xmldb/text.so</CLICON_XMLDB_PLUGIN>
|
<CLICON_XMLDB_PLUGIN>/usr/local/lib/xmldb/text.so</CLICON_XMLDB_PLUGIN>
|
||||||
</config>
|
</config>
|
||||||
EOF
|
EOF
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Restconf basic functionality
|
# Restconf basic functionality
|
||||||
# Assume http server setup, such as nginx described in apps/restconf/README.md
|
# Assume http server setup, such as nginx described in apps/restconf/README.md
|
||||||
|
APPNAME=example
|
||||||
# include err() and new() functions and creates $dir
|
# include err() and new() functions and creates $dir
|
||||||
. ./lib.sh
|
. ./lib.sh
|
||||||
cfg=$dir/conf.xml
|
cfg=$dir/conf.xml
|
||||||
|
|
@ -14,9 +14,9 @@ cat <<EOF > $cfg
|
||||||
<CLICON_YANG_DIR>/usr/local/var</CLICON_YANG_DIR>
|
<CLICON_YANG_DIR>/usr/local/var</CLICON_YANG_DIR>
|
||||||
<CLICON_YANG_MODULE_MAIN>$fyang</CLICON_YANG_MODULE_MAIN>
|
<CLICON_YANG_MODULE_MAIN>$fyang</CLICON_YANG_MODULE_MAIN>
|
||||||
<CLICON_RESTCONF_PRETTY>false</CLICON_RESTCONF_PRETTY>
|
<CLICON_RESTCONF_PRETTY>false</CLICON_RESTCONF_PRETTY>
|
||||||
<CLICON_SOCK>/usr/local/var/routing/routing.sock</CLICON_SOCK>
|
<CLICON_SOCK>/usr/local/var/$APPNAME/$APPNAME.sock</CLICON_SOCK>
|
||||||
<CLICON_BACKEND_PIDFILE>$dir/restconf.pidfile</CLICON_BACKEND_PIDFILE>
|
<CLICON_BACKEND_PIDFILE>$dir/restconf.pidfile</CLICON_BACKEND_PIDFILE>
|
||||||
<CLICON_XMLDB_DIR>/usr/local/var/routing</CLICON_XMLDB_DIR>
|
<CLICON_XMLDB_DIR>/usr/local/var/$APPNAME</CLICON_XMLDB_DIR>
|
||||||
<CLICON_XMLDB_PLUGIN>/usr/local/lib/xmldb/text.so</CLICON_XMLDB_PLUGIN>
|
<CLICON_XMLDB_PLUGIN>/usr/local/lib/xmldb/text.so</CLICON_XMLDB_PLUGIN>
|
||||||
</config>
|
</config>
|
||||||
EOF
|
EOF
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
# - An extra xml configuration file starts with an "extra" interface
|
# - An extra xml configuration file starts with an "extra" interface
|
||||||
# - running db starts with a "run" interface
|
# - running db starts with a "run" interface
|
||||||
# - startup db starts with a "start" interface
|
# - startup db starts with a "start" interface
|
||||||
|
APPNAME=example
|
||||||
# include err() and new() functions and creates $dir
|
# include err() and new() functions and creates $dir
|
||||||
. ./lib.sh
|
. ./lib.sh
|
||||||
cfg=$dir/conf_startup.xml
|
cfg=$dir/conf_startup.xml
|
||||||
|
|
@ -13,18 +13,18 @@ cfg=$dir/conf_startup.xml
|
||||||
cat <<EOF > $cfg
|
cat <<EOF > $cfg
|
||||||
<config>
|
<config>
|
||||||
<CLICON_CONFIGFILE>$cfg</CLICON_CONFIGFILE>
|
<CLICON_CONFIGFILE>$cfg</CLICON_CONFIGFILE>
|
||||||
<CLICON_YANG_DIR>/usr/local/share/routing/yang</CLICON_YANG_DIR>
|
<CLICON_YANG_DIR>/usr/local/share/$APPNAME/yang</CLICON_YANG_DIR>
|
||||||
<CLICON_YANG_MODULE_MAIN>example</CLICON_YANG_MODULE_MAIN>
|
<CLICON_YANG_MODULE_MAIN>example</CLICON_YANG_MODULE_MAIN>
|
||||||
<CLICON_CLI_MODE>routing</CLICON_CLI_MODE>
|
<CLICON_CLI_MODE>$APPNAME</CLICON_CLI_MODE>
|
||||||
<CLICON_BACKEND_DIR>/usr/local/lib/routing/backend</CLICON_BACKEND_DIR>
|
<CLICON_BACKEND_DIR>/usr/local/lib/$APPNAME/backend</CLICON_BACKEND_DIR>
|
||||||
<CLICON_NETCONF_DIR>/usr/local/lib/routing/netconf</CLICON_NETCONF_DIR>
|
<CLICON_NETCONF_DIR>/usr/local/lib/$APPNAME/netconf</CLICON_NETCONF_DIR>
|
||||||
<CLICON_RESTCONF_DIR>/usr/local/lib/routing/restconf</CLICON_RESTCONF_DIR>
|
<CLICON_RESTCONF_DIR>/usr/local/lib/$APPNAME/restconf</CLICON_RESTCONF_DIR>
|
||||||
<CLICON_CLI_DIR>/usr/local/lib/routing/cli</CLICON_CLI_DIR>
|
<CLICON_CLI_DIR>/usr/local/lib/$APPNAME/cli</CLICON_CLI_DIR>
|
||||||
<CLICON_CLISPEC_DIR>/usr/local/lib/routing/clispec</CLICON_CLISPEC_DIR>
|
<CLICON_CLISPEC_DIR>/usr/local/lib/$APPNAME/clispec</CLICON_CLISPEC_DIR>
|
||||||
<CLICON_SOCK>/usr/local/var/routing/routing.sock</CLICON_SOCK>
|
<CLICON_SOCK>/usr/local/var/$APPNAME/$APPNAME.sock</CLICON_SOCK>
|
||||||
<CLICON_BACKEND_PIDFILE>/usr/local/var/routing/routing.pidfile</CLICON_BACKEND_PIDFILE>
|
<CLICON_BACKEND_PIDFILE>/usr/local/var/$APPNAME/$APPNAME.pidfile</CLICON_BACKEND_PIDFILE>
|
||||||
<CLICON_CLI_GENMODEL_COMPLETION>1</CLICON_CLI_GENMODEL_COMPLETION>
|
<CLICON_CLI_GENMODEL_COMPLETION>1</CLICON_CLI_GENMODEL_COMPLETION>
|
||||||
<CLICON_XMLDB_DIR>/usr/local/var/routing</CLICON_XMLDB_DIR>
|
<CLICON_XMLDB_DIR>/usr/local/var/$APPNAME</CLICON_XMLDB_DIR>
|
||||||
<CLICON_XMLDB_PLUGIN>/usr/local/lib/xmldb/text.so</CLICON_XMLDB_PLUGIN>
|
<CLICON_XMLDB_PLUGIN>/usr/local/lib/xmldb/text.so</CLICON_XMLDB_PLUGIN>
|
||||||
<CLICON_CLI_LINESCROLLING>0</CLICON_CLI_LINESCROLLING>
|
<CLICON_CLI_LINESCROLLING>0</CLICON_CLI_LINESCROLLING>
|
||||||
<CLICON_STARTUP_MODE>init</CLICON_STARTUP_MODE>
|
<CLICON_STARTUP_MODE>init</CLICON_STARTUP_MODE>
|
||||||
|
|
@ -48,7 +48,7 @@ run(){
|
||||||
</interfaces>
|
</interfaces>
|
||||||
</config>
|
</config>
|
||||||
EOF
|
EOF
|
||||||
sudo mv $dbdir /usr/local/var/routing/running_db
|
sudo mv $dbdir /usr/local/var/$APPNAME/running_db
|
||||||
|
|
||||||
cat <<EOF > $dbdir
|
cat <<EOF > $dbdir
|
||||||
<config>
|
<config>
|
||||||
|
|
@ -60,7 +60,7 @@ EOF
|
||||||
</interfaces>
|
</interfaces>
|
||||||
</config>
|
</config>
|
||||||
EOF
|
EOF
|
||||||
sudo mv $dbdir /usr/local/var/routing/startup_db
|
sudo mv $dbdir /usr/local/var/$APPNAME/startup_db
|
||||||
|
|
||||||
cat <<EOF > $dir/config
|
cat <<EOF > $dir/config
|
||||||
<config>
|
<config>
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Advanced union types and generated code
|
# Advanced union types and generated code
|
||||||
# and enum w values
|
# and enum w values
|
||||||
|
APPNAME=example
|
||||||
# include err() and new() functions and creates $dir
|
# include err() and new() functions and creates $dir
|
||||||
. ./lib.sh
|
. ./lib.sh
|
||||||
|
|
||||||
|
|
@ -12,15 +12,15 @@ fyang=$dir/type.yang
|
||||||
cat <<EOF > $cfg
|
cat <<EOF > $cfg
|
||||||
<config>
|
<config>
|
||||||
<CLICON_CONFIGFILE>$cfg</CLICON_CONFIGFILE>
|
<CLICON_CONFIGFILE>$cfg</CLICON_CONFIGFILE>
|
||||||
<CLICON_YANG_DIR>/usr/local/share/routing/yang</CLICON_YANG_DIR>
|
<CLICON_YANG_DIR>/usr/local/share/$APPNAME/yang</CLICON_YANG_DIR>
|
||||||
<CLICON_YANG_MODULE_MAIN>example</CLICON_YANG_MODULE_MAIN>
|
<CLICON_YANG_MODULE_MAIN>example</CLICON_YANG_MODULE_MAIN>
|
||||||
<CLICON_CLISPEC_DIR>/usr/local/lib/routing/clispec</CLICON_CLISPEC_DIR>
|
<CLICON_CLISPEC_DIR>/usr/local/lib/$APPNAME/clispec</CLICON_CLISPEC_DIR>
|
||||||
<CLICON_CLI_DIR>/usr/local/lib/routing/cli</CLICON_CLI_DIR>
|
<CLICON_CLI_DIR>/usr/local/lib/$APPNAME/cli</CLICON_CLI_DIR>
|
||||||
<CLICON_CLI_MODE>routing</CLICON_CLI_MODE>
|
<CLICON_CLI_MODE>$APPNAME</CLICON_CLI_MODE>
|
||||||
<CLICON_SOCK>/usr/local/var/routing/routing.sock</CLICON_SOCK>
|
<CLICON_SOCK>/usr/local/var/$APPNAME/$APPNAME.sock</CLICON_SOCK>
|
||||||
<CLICON_BACKEND_PIDFILE>/usr/local/var/routing/routing.pidfile</CLICON_BACKEND_PIDFILE>
|
<CLICON_BACKEND_PIDFILE>/usr/local/var/$APPNAME/$APPNAME.pidfile</CLICON_BACKEND_PIDFILE>
|
||||||
<CLICON_CLI_GENMODEL_COMPLETION>1</CLICON_CLI_GENMODEL_COMPLETION>
|
<CLICON_CLI_GENMODEL_COMPLETION>1</CLICON_CLI_GENMODEL_COMPLETION>
|
||||||
<CLICON_XMLDB_DIR>/usr/local/var/routing</CLICON_XMLDB_DIR>
|
<CLICON_XMLDB_DIR>/usr/local/var/$APPNAME</CLICON_XMLDB_DIR>
|
||||||
<CLICON_XMLDB_PLUGIN>/usr/local/lib/xmldb/text.so</CLICON_XMLDB_PLUGIN>
|
<CLICON_XMLDB_PLUGIN>/usr/local/lib/xmldb/text.so</CLICON_XMLDB_PLUGIN>
|
||||||
</config>
|
</config>
|
||||||
EOF
|
EOF
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Test4: Yang specifics: multi-keys and empty type
|
# Test4: Yang specifics: multi-keys and empty type
|
||||||
|
APPNAME=example
|
||||||
# include err() and new() functions and creates $dir
|
# include err() and new() functions and creates $dir
|
||||||
. ./lib.sh
|
. ./lib.sh
|
||||||
|
|
||||||
|
|
@ -11,21 +11,21 @@ fyangerr=$dir/err.yang
|
||||||
cat <<EOF > $cfg
|
cat <<EOF > $cfg
|
||||||
<config>
|
<config>
|
||||||
<CLICON_CONFIGFILE>$cfg</CLICON_CONFIGFILE>
|
<CLICON_CONFIGFILE>$cfg</CLICON_CONFIGFILE>
|
||||||
<CLICON_YANG_DIR>/usr/local/share/routing/yang</CLICON_YANG_DIR>
|
<CLICON_YANG_DIR>/usr/local/share/$APPNAME/yang</CLICON_YANG_DIR>
|
||||||
<CLICON_YANG_MODULE_MAIN>example</CLICON_YANG_MODULE_MAIN>
|
<CLICON_YANG_MODULE_MAIN>$APPNAME</CLICON_YANG_MODULE_MAIN>
|
||||||
<CLICON_CLISPEC_DIR>/usr/local/lib/routing/clispec</CLICON_CLISPEC_DIR>
|
<CLICON_CLISPEC_DIR>/usr/local/lib/$APPNAME/clispec</CLICON_CLISPEC_DIR>
|
||||||
<CLICON_CLI_DIR>/usr/local/lib/routing/cli</CLICON_CLI_DIR>
|
<CLICON_CLI_DIR>/usr/local/lib/$APPNAME/cli</CLICON_CLI_DIR>
|
||||||
<CLICON_CLI_MODE>routing</CLICON_CLI_MODE>
|
<CLICON_CLI_MODE>$APPNAME</CLICON_CLI_MODE>
|
||||||
<CLICON_SOCK>/usr/local/var/routing/routing.sock</CLICON_SOCK>
|
<CLICON_SOCK>/usr/local/var/$APPNAME/$APPNAME.sock</CLICON_SOCK>
|
||||||
<CLICON_BACKEND_PIDFILE>/usr/local/var/routing/routing.pidfile</CLICON_BACKEND_PIDFILE>
|
<CLICON_BACKEND_PIDFILE>/usr/local/var/$APPNAME/$APPNAME.pidfile</CLICON_BACKEND_PIDFILE>
|
||||||
<CLICON_CLI_GENMODEL_COMPLETION>1</CLICON_CLI_GENMODEL_COMPLETION>
|
<CLICON_CLI_GENMODEL_COMPLETION>1</CLICON_CLI_GENMODEL_COMPLETION>
|
||||||
<CLICON_XMLDB_DIR>/usr/local/var/routing</CLICON_XMLDB_DIR>
|
<CLICON_XMLDB_DIR>/usr/local/var/$APPNAME</CLICON_XMLDB_DIR>
|
||||||
<CLICON_XMLDB_PLUGIN>/usr/local/lib/xmldb/text.so</CLICON_XMLDB_PLUGIN>
|
<CLICON_XMLDB_PLUGIN>/usr/local/lib/xmldb/text.so</CLICON_XMLDB_PLUGIN>
|
||||||
</config>
|
</config>
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
cat <<EOF > $fyang
|
cat <<EOF > $fyang
|
||||||
module example{
|
module $APPNAME{
|
||||||
prefix ex;
|
prefix ex;
|
||||||
extension c-define {
|
extension c-define {
|
||||||
description "Example from RFC 6020";
|
description "Example from RFC 6020";
|
||||||
|
|
@ -87,7 +87,7 @@ EOF
|
||||||
|
|
||||||
# This yang definition uses an extension which is not defined. Error when loading
|
# This yang definition uses an extension which is not defined. Error when loading
|
||||||
cat <<EOF > $fyangerr
|
cat <<EOF > $fyangerr
|
||||||
module example{
|
module $APPNAME{
|
||||||
prefix ex;
|
prefix ex;
|
||||||
extension c-define {
|
extension c-define {
|
||||||
description "Example from RFC 6020";
|
description "Example from RFC 6020";
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue