Common Open Research Emulator
Find a file
Gabriel Somlo e8ad324d3a gui: exec.tcl: cache local IP address across calls to getMyIP
Modify getMyIP to cache the local machine's IP address, and
return it without further accessing of the underlying resolver
libraries during subsequent invocations.

getMyIP is called roughly once a second from within monitor_loop
when refreshing CPU utilization in the bottom-right corner of
the GUI window. Other, dedicated CPU usage windows might also
call getMyIP at regular intervals.

With systemd commit cda458a54 (between v232 and v233), the
implementation of gethostbyname4_r() was updated to a more
intransigently standard-compliant error reporting convention,
which in turn causes glibc to retry in a more labor intensive
way (see https://github.com/systemd/systemd/pull/5359).

Under certain circumstances depending on the local hostname
and IP configuration, the glibc/systemd back-end resolver
routines triggered by getMyIP's call to [socket ...] and
[fconfigure ...] end up taking long enough to noticeably slow
down refreshing the main core-gui window, to the point where
interaction with the GUI becomes difficult.

Signed-off-by: Gabriel Somlo <glsomlo@cert.org>
2018-02-12 18:16:07 -05:00
daemon fixed typo in bridge name for ovs 2017-10-03 11:38:58 -07:00
doc Merge branch 'master' into rel/5.0 2017-10-05 08:32:05 -07:00
gui gui: exec.tcl: cache local IP address across calls to getMyIP 2018-02-12 18:16:07 -05:00
kernel kernel: Avoid using the gawk-specific gensub function. 2015-04-03 01:44:00 +00:00
packaging Merge branch 'master' into rel/5.0 2017-10-05 08:32:05 -07:00
scripts systemd: remove limit on fork() branching factor 2017-01-12 14:14:41 -05:00
.editorconfig removed pip check, updated make files for using DESTDIR, removed usage of pip during make install 2017-08-21 12:55:51 -07:00
.gitignore small test cleanup, can isolate to a singular core test fixture 2017-07-25 10:16:18 -07:00
ASSIGNMENT OF COPYRIGHT .pdf added assignment of copyright pdf 2017-09-27 11:14:49 -07:00
bootstrap.sh initial import (Boeing r1752, NRL r878) 2013-08-29 14:21:13 +00:00
Changelog marked 5.0 release as 09/01/2017 in changelog related files 2017-08-31 15:33:28 -07:00
configure.ac Merge branch 'master' into rel/5.0 2017-10-05 08:32:05 -07:00
LICENSE Update LICENSE 2017-09-27 11:06:17 -07:00
Makefile.am updated dates within changelog files, updated readme to show how to build docs, updated root makefile to build the python docs as well, update the base makefile to allow building the source rpm on systems that are not fedora and can build rpms 2017-08-18 16:35:26 -07:00
python-prefix.py merged cleanup branch with master 2017-06-19 18:09:28 -07:00
README-Xen initial import (Boeing r1752, NRL r878) 2013-08-29 14:21:13 +00:00
README.rst Merge branch 'master' into rel/5.0 2017-10-05 08:32:05 -07:00
revision.sh build: Include revision information in distributions. 2016-01-26 17:01:23 -05:00
sonar-project.properties small test cleanup, can isolate to a singular core test fixture 2017-07-25 10:16:18 -07:00

====
CORE
====

CORE: Common Open Research Emulator

Copyright (c)2005-2017 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. The GitHub project (2) hosts the
source repos, wiki, and bug tracker. There is a deprecated
Google Code page (3) with the old wiki, blog, bug tracker, and quickstart guide.

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

2. https://github.com/coreemu/core

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

4. `Official Documentation`_

.. _Official Documentation: https://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

Note: You may need to pass the proxy settings to sudo make install:
    sudo make install HTTP_PROXY=<proxy>

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.

Building Documentation
======================

Being able to build documentation depends on help2man being installed.

Once that has been done you can run the following commands:

    ./bootstrap.sh
    ./configure
    make html

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: https://publists.nrl.navy.mil/mailman/listinfo/core-users
.. _core-dev: https://publists.nrl.navy.mil/mailman/listinfo/core-dev