Skip to content

vlvassilev/yuma123

Repository files navigation

Yuma123 README
-----------

==What is Yuma123==
The purpose of the Yuma123 project is to provide an opensource YANG API in C and cli (yangcli) and server (netconfd) YANG automation enabled appications.
Branching from the last BSD licensed branch of the Yuma project the code has evolved in the following direction:
- a more mainstream build system based on autoconf/automake was added
- a number of critical bugs have been fixed
- new IETF standards support was added (ietf-nacm, ietf-system, etc.)
- support was added for new YANG extensions
- added to debian.org repositories

==Compilation==
 #Build dependencies resolution for Debian Bullseye. Replace with appropriate command line if you are not using Debian.
 sudo apt-get install git autoconf automake pkg-config gcc libtool libxml2-dev libssh2-1-dev make libncurses5-dev zlib1g-dev libreadline-dev libssl-dev
 git clone git://git.code.sf.net/p/yuma123/git yuma123-git
 cd yuma123-git
 autoreconf -i -f
 ./configure CFLAGS='-g -O0' CXXFLAGS='-g -O0' --prefix=/usr
 make
 sudo make install

==Configure and start==
 #Runtime dependencies resolution for Debian Bullseye. Replace with appropriate command line if you are not using Debian.
 sudo apt-get install openssh-server

 echo '<config/>' > /tmp/startup-cfg.xml
 /usr/sbin/netconfd --module=helloworld --startup=/tmp/startup-cfg.xml --log-level="debug4" --superuser="$USER"

The server is now started with the example helloworld module.

Tell sshd to listen on port 830. Add the following 2 lines to /etc/ssh/sshd_config:

 Port 830
 Subsystem netconf "/usr/sbin/netconf-subsystem --ncxserver-sockname=830@/tmp/ncxserver.sock"

Start sshd (on Debian):
 sudo /etc/init.d/ssh restart
 
You can verify everything is OK:

 root@lmf:~# yangcli --user="$USER" --server=localhost --password='mysecretpass'
 ...
 yangcli root@localhost> xget /helloworld-state 
 
 RPC Data Reply 2 for session 3:
 
 rpc-reply {
   data {
     helloworld-state {
       message 'Hello World!'
     }
   }
 }
 
 yangcli root@localhost>

or

 yangcli root@localhost> xget /
 ...