Common Open Research Emulator
Find a file
Gabriel Somlo 6609d2c394 daemon: streamline Quagga startup
Currently, all Quagga daemons are started concurrently by their
respective CORE services, using "quaggaboot.sh" generated by the
'zebra' service. However, all routing services depend on 'zebra'
already running, and 'vtysh' depends on ALL other Quagga services
before it can push configuration from the common "Quagga.conf" to
all running daemons (see "waitforvtyfiles()" in "quaggaboot.sh").

The spinwait+timeout based implementation of "waitforvtyfiles()"
may, depending on load, give up too early and fail to configure
all Quagga daemons.

This patch streamlines the way Quagga daemons are started, by
launching them all from the 'zebra' service. The correct sequence
is to first launch the 'zebra' daemon itself, then proceed with
all routing daemons, and finish with a call to "vtysh -b" which
configures all running daemons.

The list of all applicable daemons to launch is obtained using
'grep' from Quagga.conf, in the same way "waitforvtyfiles()" used
to discover which *.vty files to look for in /var/run/quagga/.

The startup command for all services other than 'zebra' becomes
empty, and "quaggaboot.sh" issues a warning on attempts to have
it launch any other daemon.

Signed-off-by: Gabriel Somlo <glsomlo@cert.org>
2017-01-12 16:40:45 -05:00
daemon daemon: streamline Quagga startup 2017-01-12 16:40:45 -05:00
doc [MRG] DOC typo in EMANE install instructions 2017-01-11 09:24:41 -05:00
gui gui: Avoid added an extra newline to hook scripts when saving. 2016-09-29 17:28:31 -04:00
kernel kernel: Avoid using the gawk-specific gensub function. 2015-04-03 01:44:00 +00:00
packaging packaging: Update RPM spec to include core/coreserver.py 2016-09-14 18:19:22 -07:00
scripts systemd: remove limit on fork() branching factor 2017-01-12 14:14:41 -05:00
.gitignore packaging: Add a makefile to directly build RPM packages. 2016-09-06 11:36:32 -04:00
bootstrap.sh initial import (Boeing r1752, NRL r878) 2013-08-29 14:21:13 +00:00
Changelog Declare version 4.8. 2015-06-05 22:02:08 +00:00
configure.ac autoconf: Remove an unused variable. 2016-09-06 11:36:32 -04:00
LICENSE initial import (Boeing r1752, NRL r878) 2013-08-29 14:21:13 +00:00
Makefile.am deb: Move post-remove cleanup to the pre-remove script. 2016-01-29 13:39:34 -05:00
python-prefix.py Fix typo in previous commit. 2015-02-19 18:18:33 +00:00
README-Xen initial import (Boeing r1752, NRL r878) 2013-08-29 14:21:13 +00:00
README.rst Added direct link to manual 2016-10-22 21:18:17 -04:00
revision.sh build: Include revision information in distributions. 2016-01-26 17:01:23 -05:00

====
CORE
====

CORE: Common Open Research Emulator

Copyright (c)2005-2013 the Boeing Company.

See the LICENSE file included in this distribution.

About
=====

CORE is a tool for emulating networks using a GUI or Python scripts. The CORE
project site (1) is a good source of introductory information, with a manual,
screenshots, and demos about this software. Also a supplemental
Google Code page (2) hosts a wiki, blog, bug tracker, and quickstart guide.

1. http://www.nrl.navy.mil/itd/ncs/products/core

2. http://code.google.com/p/coreemu/

3. `Official Documentation`_

.. _Official Documentation: http://downloads.pf.itd.nrl.navy.mil/docs/core/core-html/index.html


Building CORE
=============

To build this software you should use:

    ./bootstrap.sh
    ./configure
    make
    sudo make install

Here is what is installed with 'make install':

    /usr/local/bin/core-gui
    /usr/local/sbin/core-daemon
    /usr/local/sbin/[vcmd, vnoded, coresendmsg, core-cleanup.sh]
    /usr/local/lib/core/*
    /usr/local/share/core/*
    /usr/local/lib/python2.6/dist-packages/core/*
    /usr/local/lib/python2.6/dist-packages/[netns,vcmd].so
    /etc/core/*
    /etc/init.d/core

See the manual for the software required for building CORE.


Running CORE
============

First start the CORE services:

    sudo /etc/init.d/core-daemon start

This automatically runs the core-daemon program. 
Assuming the GUI is in your PATH, run the CORE GUI by typing the following:

    core-gui

This launches the CORE GUI. You do not need to run the GUI as root.


Support
=======

If you have questions, comments, or trouble, please use the CORE mailing lists:

- `core-users`_ for general comments and questions

- `core-dev`_ for bugs, compile errors, and other development issues


.. _core-users: http://pf.itd.nrl.navy.mil/mailman/listinfo/core-users
.. _core-dev: http://pf.itd.nrl.navy.mil/mailman/listinfo/core-dev