NSTAT SDN Controller Handlers
535
NSTAT SDN controller handlers are autonomous scripts which perform certain operations required by NSTAT. We currently support controller handlers for the following versions of OpenDaylight
However, similar handlers for other SDN controllers (i.e ONOS) are about to be introduced in future releases of this repository. Users are strongly encouraged to submit their own handlers both for ODL or other SDN controllers.
Controller handlers can be directly executed on your local machine provided
that necessary tools/libraries, prerequisite for the *.sh, *.py
handler files are properly installed. However. for keeping your local machine
clean, a container based testing environment is provided or can be built as
desrcibed below.
The container based testing environment provided, can either be downloaded
directly from
dockerhub
or built from the tools available within the <PROJECT_DIR>/deploy folder.
In both cases, the docker platform must be installed on the host side.
and the actions below have to be followed
sudo gpasswd -a ${USER} docker
sudo service docker restart
Once docker platform is installed, the user can pull the pre-built enviroment as follows
docker pull intracom/nstat-sdn-controllers
Once the image pull operation is complete, check locally the existence of the image
docker images
which should list the intracom/nstat-sdn-controllers:latest image. For
running a container out of the intracom/nstat-sdn-controllers:latest image
docker run -it intracom/nstat-sdn-controllers /bin/bash
password: root123
Once logging in the container make a
git clone https://github.com/intracom-telecom-sdn/nstat-sdn-controllers.git nstat-sdn-controllers
git --git-dir=nstat-sdn-controllers/.git --work-tree=nstat-sdn-controllers checkout v.1.0
and start testing all available controller handlers which are present under
<PROJECT_DIR>/controllers/ directory
Once the docker platform is installed on the host machine, the user can build locally the testing enviroment as follows
Make a git clone of the nstat-sdn-controllers repository within the host machine
git clone https://github.com/intracom-telecom-sdn/nstat-sdn-controllers.git nstat-sdn-controllers
git --git-dir=nstat-sdn-controllers/.git --work-tree=nstat-sdn-controllers checkout v.1.0
Navigate to
<PROJECT_DIR>/deploy/docker/no_proxy directory. Enter the command below to
start building locally your own image based on the existing Dockerfile.
docker build -t intracom/nstat-sdn-controllers:latest .
Once the build process is over, verify that the image exists locally
docker images
should list intracom/nstat-sdn-controllers:latest image. Start your own
container as mentioned in the previous section.
Currently the supported controller is OpenDaylight. There is a common API in the controller handling logic, followed by all versions of this controller. Next, we describe this common API logic for the controller handlers.
change_persistence.py:
org.opendaylight.controller.cluster.datastore.cfg of
OpenDaylight. In this case the controller will not backup datastore on the
disk. Run the ./get_controller.sh handler before running this handler0 in case of success, 1 otherwisepython3.4 change_persistence.pychange_stats_period.py:
./get_controller.sh handler before running this handler.python3.4 change_stats_period.py 500flowmods_configure.py:
./get_controller.sh handler before running this handler
<controller base dir>/etc/opendaylight/karaf/54-arphandler.xml:
changes the value of key is-proactive-flood-mode from true to false.<controller base dir>/etc/opendaylight/karaf/58-l2switchmain.xml:
changes the values of keys reactive-flow-idle-timeout and
reactive-flow-hard-timeout to 1. Run the ./get_controller.sh handler
before running this handler.get_controller.sh:
0 in case of success, non-zero otherwise./get_controller.shget_flows.py:
./get_controller.sh
handler before running this handler.str form, controller restconf
port number in int form, username for restconf authorization in str form
password for restconf authorization in str formpython3.4 get_flows.py '127.0.0.1' 8181 'admin' 'admin' get_hosts.py:
./get_controller.sh handler before running this handler.str form, controller restconf
port number in int form, username for restconf authorization in str form
password for restconf authorization in str formpython3.4 get_flows.py '127.0.0.1' 8181 'admin' 'admin' get_links.py:
./get_controller.sh
handler before running this handler.str form, controller restconf
port number in int form, username for restconf authorization in str form
password for restconf authorization in str formpython3.4 get_flows.py '127.0.0.1' 8181 'admin' 'admin' get_switches.py:
./get_controller.sh handler
before running this handler.str form, controller restconf
port number in int form, username for restconf authorization in str form
password for restconf authorization in str formpython3.4 get_flows.py '127.0.0.1' 8181 'admin' 'admin' start.sh:
./get_controller.sh handler before running this handler.0 in case of success, non-zero otherwise./start.shstatus.sh:
./get_controller.sh handler
before running this handler.1 if controller is running, 0 otherwise./status.shstop.sh:
./get_controller.sh handler before running this handler.0 in case of success, non-zero otherwise./stop.shContent type
Image
Digest
Size
1.7 GB
Last updated
over 9 years ago
docker pull intracom/nstat-sdn-controllers