Skip to content

Open-source router operating system with stream manipulation and redundancy capabilities.

Notifications You must be signed in to change notification settings

ConnectIT/streamvise

Repository files navigation

Streamvise: Open-source router operating system with stream manipulation and redundancy capabilities.

The OS uses NETCONF implementation "Yuma". This repository mainly hosts the custom NETCONF modules developed by us, and just a snapshot (image) of the whole OS.

A complete description of the development process, along with examples for the module's usage can be found in the Full Diploma Thesis text here: http://bit.ly/19j07un, and in the "extras" document found here: http://bit.ly/12bE8yX.

Project folders:
- cit-helper: a small library to hold custom functions used by other modules
- cit-ifconfig: YANG/Yuma module that implements basic network interface configuration
- cit-system: YANG/Yuma module that provides system reboot functionality and live connection view.
- cit-vrrp: YANG/Yuma module that configures and starts VRRPd.
- cit-udhcpd: YANG/Yuma module that configures and starts UDHCPD, a lightweight DHCP server.
- cit-iptables: YANG/Yuma module that controls Iptables rules.

INSTALLING:

To compile the external C library (cit-helper) run in a terminal:
$ cd streamvise/cit-helper
$ gcc -c cit-helper.c
(on a 64-bit system add "-fPIC" to the above command)
$ gcc -o libcit-helper.so cit-helper.o --share
# cp libcit-helper.so /usr/lib/yuma/libcit-helper.so

export LD_LIBRARY_PATH=/usr/lib/yuma



To compile the one of the modules, run in a terminal:
$ MODULENAME=cit-ifconfig or 
$ MODULENAME=cit-system or
$ MODULENAME=cit-vrrp or
$ MODULENAME=cit-udhcpd or
$ MODULENAME=cit-iptables


and then:
$ cd streamvise/$MODULENAME
# cp $MODULENAME.yang /usr/share/yuma/modules/$MODULENAME.yang
# cp $MODULENAME.yang /usr/share/yuma/modules/netconfcentral/$MODULENAME.yang
$ cd $MODULENAME
$ cp ../../cit-helper/cit-helper.h src/cit-helper.h
$ cp ../../cit-helper/libcit-helper.so lib/libcit-helper.so
$ make clean
$ make
# make install
$ netconfd --module $MODULENAME &

(If you get an error during making, e.g. "xmlstring.h: No such file or directory" install the appropriate library, libxml2-dev in this case)
Also, in order for the system commands to work properly, the sudoers file of the host system must be edited to allow execution of the relevant commands (iptables, reboot etc) by the user starting the NETCONF server (netconfd).

To build for a different device (referred to as "network device" here):
1. use a testbed device/VM of the same architecture (32/64bit)
2. install yuma on both
3. build modules normally on the testbed
4. copy the whole streamvise directory to the /tmp directory of the network device
5. $ cd /tmp/streamvise
6. set MODULENAME to the appropriate module, using the names above
7. $ cp $MODULENAME/$MODULENAME/lib/lib$MODULENAME.so /usr/lib/yuma/lib$MODULENAME.so
8. $ cp $MODULENAME/$MODULENAME.yang /usr/share/yuma/modules/$MODULENAME.yang
9. Repeate steps 7 & 8 for all modules

About

Open-source router operating system with stream manipulation and redundancy capabilities.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published