faq docker
This commit is contained in:
parent
aaf5116bb4
commit
cd0883ba95
1 changed files with 19 additions and 16 deletions
35
doc/FAQ.txt
35
doc/FAQ.txt
|
|
@ -22,20 +22,20 @@ Yes. All application semantics is defined in plugins with well-defined APIs. The
|
||||||
Q: Which language is CliXon implemented in?
|
Q: Which language is CliXon implemented in?
|
||||||
-------------------------------------------
|
-------------------------------------------
|
||||||
CliXon is written in C. The plugins are written in C. The CLI
|
CliXon is written in C. The plugins are written in C. The CLI
|
||||||
specification uses cligen.
|
specification uses cligen (http://cligen.se)
|
||||||
|
|
||||||
There is a project for writing plugins in Python. It is reasonable
|
There is a project for writing plugins in Python. It is reasonable
|
||||||
simple to spawn an external script from a backend.
|
simple to spawn an external script from a backend.
|
||||||
|
|
||||||
Q: Is CliXon different from Clicon?
|
Q: Is CliXon different from Clicon?
|
||||||
-----------------------------------
|
-----------------------------------
|
||||||
Yes, but CliXon is a fork of Clicon focussing on Yang specification and XML
|
CliXon is a fork of Clicon focussing on Yang specification and XML
|
||||||
database. The yang support in clicon was grown out of a key-based
|
database. The yang support in clicon was grown out of a key-based
|
||||||
scheme that became more and more complex since it had to translate
|
scheme that became more and more complex since it had to translate
|
||||||
between many different formats. CliXon uses only XML internally.
|
between many different formats. CliXon uses only XML internally.
|
||||||
|
|
||||||
The commit transaction mechanism has been simplified too. But CliXon
|
The commit transaction mechanism has been simplified too. But CliXon
|
||||||
is not backward compliant with key-based Clicon applications, such as
|
is not backward compliant with key-based Clixon applications, such as
|
||||||
Rost.
|
Rost.
|
||||||
|
|
||||||
Q: How to best understand CliXon?
|
Q: How to best understand CliXon?
|
||||||
|
|
@ -58,26 +58,29 @@ The example:
|
||||||
Q: What about reference documentation?
|
Q: What about reference documentation?
|
||||||
--------------------------------------
|
--------------------------------------
|
||||||
CliXon uses Doxygen for reference documentation.
|
CliXon uses Doxygen for reference documentation.
|
||||||
Build using 'make doc' and aim your browser at doc/html/index.html
|
Build using 'make doc' and aim your browser at doc/html/index.html or
|
||||||
|
use the web resource: http://clicon.org/ref/index.html
|
||||||
|
|
||||||
Q: How do you run the example?
|
Q: How do you run the example?
|
||||||
------------------------------
|
------------------------------
|
||||||
- Start a backend server: 'clicon_backend -Ff /usr/local/etc/routing.conf'
|
- Start a backend server: 'clixon_backend -Ff /usr/local/etc/routing.conf'
|
||||||
- Start a cli session: clicon_cli -f /usr/local/etc/routing.conf
|
- Start a cli session: clixon_cli -f /usr/local/etc/routing.conf
|
||||||
- Start a netconf session: clicon_netconf -f /usr/local/etc/routing.conf
|
- Start a netconf session: clixon_netconf -f /usr/local/etc/routing.conf
|
||||||
|
|
||||||
Q: Can you run clicon as docker containers?
|
Q: Can you run CliXon as docker containers?
|
||||||
-------------------------------------------
|
-------------------------------------------
|
||||||
Yes, the example works as docker containers as well. backend and cli needs a
|
Yes, the example works as docker containers as well. backend and cli needs a
|
||||||
common file-system so they need to run as a composed pair.
|
common file-system so they need to run as a composed pair.
|
||||||
cd example/docker
|
cd example/docker
|
||||||
make docker # Prepares /data as shared file-system mount
|
make docker # Prepares /data as shared file-system mount
|
||||||
run.sh # Starts an example backend and a cli
|
run.sh # Starts an example backend and a cli
|
||||||
Futhermore, you build the clicon docker containers as follows:
|
|
||||||
|
The containers are by default downloaded from dockerhib, but you may
|
||||||
|
build the containers locally:
|
||||||
cd docker
|
cd docker
|
||||||
make docker
|
make docker
|
||||||
You may also push the containers with 'make push' but you may then consider changing the image
|
|
||||||
name in the makefile.
|
You may also push the containers with 'make push' but you may then consider changing the image name in the makefile.
|
||||||
|
|
||||||
Q: How do you change the example?
|
Q: How do you change the example?
|
||||||
---------------------------------
|
---------------------------------
|
||||||
|
|
@ -90,10 +93,10 @@ Q: How do you change the example?
|
||||||
|
|
||||||
Q: How do you check what is in a database?
|
Q: How do you check what is in a database?
|
||||||
------------------------------------------
|
------------------------------------------
|
||||||
Use clicon_dbctrl. The name of the running or candidate databases are found in the
|
Use clixon_dbctrl. The name of the running or candidate databases are found in the
|
||||||
configuration file.
|
configuration file.
|
||||||
Example:
|
Example:
|
||||||
> clicon_dbctrl -d /usr/local/var/routing/candidate_db / -p
|
> clixon_dbctrl -d /usr/local/var/routing/candidate_db / -p
|
||||||
/interfaces/interface/eth0/ipv4
|
/interfaces/interface/eth0/ipv4
|
||||||
/interfaces/interface/eth0/type bgp
|
/interfaces/interface/eth0/type bgp
|
||||||
/interfaces/interface/eth0
|
/interfaces/interface/eth0
|
||||||
|
|
@ -118,7 +121,7 @@ You write a commit function in routing_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
|
||||||
information using access functions as defined in clicon_backend_transaction.h
|
information using access functions as defined in clixon_backend_transaction.h
|
||||||
|
|
||||||
Q: How do you check what has changed on commit?
|
Q: How do you check what has changed on commit?
|
||||||
-----------------------------------------------
|
-----------------------------------------------
|
||||||
|
|
@ -168,6 +171,6 @@ Q: How do you use netconf?
|
||||||
|
|
||||||
As an alternative to cli configuration, you can use netconf
|
As an alternative to cli configuration, you can use netconf
|
||||||
directly. Easiesty is to just pipe netconf commands to the
|
directly. Easiesty is to just pipe netconf commands to the
|
||||||
clicon_netconf application.
|
clixon_netconf application.
|
||||||
Example:
|
Example:
|
||||||
echo "<rpc><get-config><source><candidate/></source><configuration/></get-config></rpc>]]>]]>" | clicon_netconf -f /usr/local/etc/routing.conf
|
echo "<rpc><get-config><source><candidate/></source><configuration/></get-config></rpc>]]>]]>" | clixon_netconf -f /usr/local/etc/routing.conf
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue