Tuesday, December 13, 2011

XORP routing services

XORP routing services were added to the development version of CORE (SVN snapshot) on 10/24/11. These services provide an alternative to Quagga routing, and include multicast routing support with PIM SM.
Similar to Quagga's zebra service, a unified configuration (/etc/xorp/config.boot) is written by the xorp_rtrmgr (router manager) service. This means that once you have enabled XORP protocols, use the customize button next to the xorp_rtrmgr service to edit the config file.

The default router node type still uses Quagga's OSPF, but you can create your own node types that use XORP protocols as default.

Thursday, November 3, 2011

check emulation light (CEL)

A new feedback system has been added to CORE (SVN): the Check Emulation Light (CEL). A small yellow indicator appears in the bottom right corner of the screen when problems arise. In the screenshot below, for example, the OSPFv3 service reports a problem that the ospf6d daemon is not running.
A dialog listing the problem items (exceptions) will pop up when you click the yellow CEL icon. The CEL will blink for fatal errors, such as the failure to spawn a new network namespace or failure to launch EMANE processes. The affected node is also highlighted so it is easy to find.

Node services have a new field named validation commands. These commands (if any) are invoked following the service startup commands to verify that the service has correctly started. The validation commands for existing services are currently defined with something like `pidof ospfd`, to check that a daemon is actually running. A non-zero return code from a validation command causes a CEL exception to be thrown.

The motivation for the CEL is to be more informative about underlying emulation problems. With previous versions of CORE, something may have gone terribly wrong, but the GUI continued happily along with no indication of issues. We're also cooking up some performance monitoring scripts that monitor the CPU, memory, and throughput used by nodes; future plans are to tie in performance alarms with this exception system.

Thursday, September 22, 2011

improved customization of services 2

As a follow-up to the new tabbed dialog described previously, the service list for each node now has yellow customize buttons for services that require customization. The BGP service must be customized, for example, as BGP requires fine-tuning peering relationships and AS numbers.

Thursday, August 25, 2011

yargh, hooks

One of the goals of the CORE project is hackability. In that spirit, you can now define hooks under the experiment menu. Hooks are optional shell scripts that run at the specified session state. (If you previously used the global experiment script, this is the same thing; the experiment script now becomes a runtime hook.) The hook script runs on the host as root, is not associated with any particular node, and is saved in the imn file.
 Below the hook configuration dialog is shown. You select the session state from a drop-down menu.

Here are the session states and their meanings:
  1. Definition - used by the GUI to tell the backend to clear any state.
  2. Configuration - when the user presses the Start button, node, link, and other configuration data is sent to the backend.
  3. Instantiation - after configuration data has been sent, just before the nodes are created.
  4. Runtime - all nodes and networks have been built and are running.
  5. Datacollect - the user has pressed the Stop button; a good time to collect log files before nodes are shut down.
  6. Shutdown - all nodes and networks have been shut down and destroyed.
Another related feature that has been added is a /tmp/pycore.nnnnn/state file. As a session changes states, it will write the current state number and name into this file. This would enable an external program or script to monitor that file.

Friday, August 19, 2011

CORE 4.2 released



A new 4.2 release of CORE is available. To obtain the software, please visit:
http://cs.itd.nrl.navy.mil/work/core/
http://downloads.pf.itd.nrl.navy.mil/core/packages/4.2/

Quickstart installation instructions are here:
http://code.google.com/p/coreemu/wiki/Quickstart

Here are some of the high-level changes since version 4.1:

  • EMANE 0.7.1 support
    support for Bypass model, Universal PHY, logging, realtime
  • configurable MAC addresses
  • control interfaces (backchannel between node and host)
  • service customization dialog improved (tabbed)
  • new testing scripts for MDR and EMANE performance testing
  • improved upgrading of old imn files
  • new coresendmsg.py utility (deprecates libcoreapi and coreapisend)
  • new security services, custom service becomes UserDefined
  • new services and Python scripting chapters in manual
  • fixes to distributed emulation, linking tunnels/RJ45s with WLANs/hubs/switches
  • fixed the following bugs:
    18, 32, 34, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,  52, 53, 55, 57, 58, 60, 62, 64, 65, 66, 68, 71, 72, 74


These release notes along with a list of known issues are posted here:
http://code.google.com/p/coreemu/wiki/ReleaseNotes

Monday, August 1, 2011

customize service tabbed dialog

The customize service dialog was limited in the past, only allowing configuration of the first config/script file. This dialog has been revamped with a new tabbed dialog, using Ttk (Tcl/Tk 8.5 now required).


To add a new config/script file, you would enter the new name into the combo box and press the new button.

Below the Directories and Startup/Shutdown tabs are shown.



Friday, July 15, 2011

custom MAC assignments


Next to the IP address configuration in the node configuration dialog, you can now configure a MAC address for each interface. Default is the usual auto-assign. Also a little trash icon next to the IP addresses should make removing unwanted addresses much easier.

improved customization of services


Node services in CORE have been a relatively new feature, and we're working on improving ways to customize your services. The Customize... button has now been replaced with a little edit icon next to each service. You click the edit button to customize that service.

The color of this button can indicate several things:
  • Gray (default): the service config will be auto-generated
  • Green: this service has been customized for this node
  • Yellow (future): this is a service that requires customization
We've added some new security services that you can see on the right column. For some services there isn't a great way to auto-generate a complete config. The VPN client for example, must be configured with the server it should connect with, among other things. We'll be adding a new property to services that allows a service to flag that it requires customization. Then in the service list (shown above) the edit button will be colored yellow.

Friday, May 6, 2011

EMANE 0.7.1 supported

If you build CORE from source using the nightly SVN snapshot, you can now use EMANE 0.7.1 for more detailed wireless networking. The previous version 0.6.4 is no longer supported. The full list of changes in EMANE 0.7.1 is available here, but if you use EMANE with CORE here are some highlights:
  • Location now works with IEEE 802.11abg. Thanks to the new Universal PHY, the 802.11 model now handles location events; if you drag nodes around the canvas, location events are generated and alter node connectivity.
  • Rebuild your imn scenarios. Any custom EMANE parameters from your old scenarios need to be removed and re-entered; you can do this by editing the imn file and removing the "custom-config { }" block within the WLAN node definition.

Wednesday, January 5, 2011

CORE 4.1 released

A new 4.1 release of CORE is available. To obtain the software, please visit: http://cs.itd.nrl.navy.mil/work/core/
http://downloads.pf.itd.nrl.navy.mil/core/packages/4.1/

Quickstart installation instructions are here. If you are upgrading, you may want to remove any /etc/core/* and ~/.core preferences files (don't forget to first save any configs you may have in /etc/core/configs/ or ~/.core/configs.)

Here are some of the high-level changes since version 4.0:
  • new icons for toolbars and nodes
  • node services introduced, node models deprecated
  • customizable node types
  • traffic flow editor with MGEN support
  • user configs moved from /etc/core/* to ~/.core/
  • allocate addresses from custom IPv4/IPv6 prefixes
  • distributed emulation using GRE tunnels
  • FreeBSD 8.1 now uses cored.py
  • EMANE 0.6.4 support
  • numerous bugfixes
These release notes along with a list of known issues are posted here.