Friday, April 12, 2013

CORE 4.5 released


A new 4.5 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.5/

The high-level changes since version 4.4 are:

GUI

  • improved behavior when starting GUI without daemon, or using File New after connection with daemon is lost
  • fix various GUI issues when reconnecting to a session
  • support 3D GUI via output to SDT3D
  • added "Execute Python script..." entry to the File Menu
  • support user-defined terminal program instead of hard-coded xterm
  • added session options for "enable RJ45s", "preserve session dir"
  • added buttons to the IP Addresses dialog for removing all/selected IPv4/IPv6
  • allow sessions with multiple canvases to enter RUNTIME state
  • added "--addons" startup mode to pass control to code included from addons dir
  • added "Locked" entry to View menu to prevent moving items
  • use currently selected node type when invoking a topology generator
  • updated throughput plots with resizing, color picker, plot labels, locked
  • scales, and save/load plot configuration with imn file
  • improved session dialog

EMANE

  • EMANE 0.8.1 support with backwards-compatibility for 0.7.4
  • extend CommEffect model to generate CommEffect events upon receipt of Link Messages having link effects

Services

  • updated FTP service with root directory for anonymous users
  • added HTTP, PCAP, BIRD, RADVD, and Babel services
  • support copying existing files instead of always generating them
  • added "Services..." entry to node right-click menu
  • added "View" button for side-by-side comparison when copying customized config files
  • updated Quagga daemons to wait for zebra.vty VTY file before starting

General

  • XML import and export
  • renamed "cored.py" to "cored", "coresendmsg.py" to "coresendmsg"
  • code reorganization and clean-up
  • updated XML export to write NetworkPlan, MotionPlan, and ServicePlan within a Scenario tag, added new "Save As XML..." File menu entry
  • added script_start/pause/stop options to Ns2ScriptedMobility
  • "python" source sub-directory renamed to "daemon"
  • added "cored -e" option to execute a Python script, adding its session to the active sessions list, allowing for GUI connection
  • support comma-separated list for custom_services_dir in core.conf file
  • updated kernel patches for Linux kernel 3.5
  • support RFC 6164-style IPv6 /127 addressing

ns-3

  • integrate ns-3 node location between CORE and ns-3 simulation
  • added ns-3 random walk mobility example
  • updated ns-3 Wifi example to allow GUI connection and moving of nodes

The following bugs were fixed:
  54, 103, 111, 136, 145, 153, 157, 160, 161, 162, 164, 165, 168, 170, 171, 173, 174, 176, 184, 190, 193

These release notes along with a list of known issues are posted on the CORE Wiki.




Friday, November 30, 2012

Routing Tutorials from RNP

A CORE user from Brazil's RNP training unit, ESR, has contributed some tutorial material developed for a course on IP routing protocols.

The PDFs cover configuration of static routes, RIP, OSPF, and BGP protocols, and include imn scenario files and some pcap traces. The material is available on the supplemental downloads page. Thanks Luiz Carlos Lobato!

Wednesday, October 31, 2012

3D GUI with SDT3D

A new 3D GUI menu item has been introduced under the View menu. CORE can now publish its topology to the SDT3D (Scripted Display Tool 3D) developed by NRL. The latitude, longitude, and altitude settings under the Canvas Size and Scale dialog will determine the coordinate mapping to a geographic location. SDT3D is based on NASA's WorldWind Java SDK. This is three-dimensional virtual globe software similar to Google Earth.
Node movements and links are drawn on the 3D map as depicted in the screenshot below.
In order to get this working, a /usr/local/bin/sdt3d.sh launcher script is made with the following contents:
#!/bin/sh
cd ~
/opt/sdt/sdt3d.sh $@
The following line is used in an ~/sdtConfig.txt file in the user's home directory; this causes SDT3D to receive commands on a local UDP port 5000 socket :
listen 5000
Here we have SDT3D installed to /opt/sdt, with a /opt/sdt/sdt3d.sh script as shown below:

#!/bin/sh
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/
THISDIR=`dirname $0`
export LD_LIBRARY_PATH=${THISDIR}/lib
java -jar -Dsun.java2d.noddraw=true -Xmx512m \ ${THISDIR}/jars/sdt3d.jar


For tips on building and install SDT3D under Ubuntu 12.04 x86_64, see this SDT3D wiki page. OpenJDK 1.7 is used, as the Oracle JDK did not seem to work.

Tuesday, September 25, 2012

CORE 4.4 released

A new 4.4 release of CORE is available. To obtain the software, please visit:


The high-level changes since version 4.3 are:

GUI
  • real-time bandwidth plotting tool
  • added Wireshark and tshark right-click menu items
  • X,Y coordinates shown in the status bar
  • updated GUI attribute option to link messages for changing color/width/dash
  • added sample IPsec and VPN scenarios, how many nodes script
  • added jitter parameter to WLANs
  • renamed Experiment menu to Session menu, added session options
  • use 'key=value' configuration for services, EMANE models, WLAN models, etc.
  • save only service values that have been customized
  • copy service parameters from one customized service to another
  • right-click menu to start/stop/restart each service

EMANE
  • EMANE 0.7.4 support
  • added support for EMANE CommEffect model and Comm Effect controller GUI
  • added support for EMANE Raw Transport when using RJ45 devices

Services
  • improved service customization; allow a service to define custom Tcl tab
  • added vtysh.conf for Quagga service to support 'write mem'
  • support scheduled events and services that start N seconds after runtime
  • added UCARP service

Documentation
  • converted the CORE manual to reStructuredText using Sphinx; added Python docs

General
  • Python code reorganization
  • improved cored.py thread locking
  • merged xen branch into trunk
  • added an event queue to a session with notion of time zero
  • added UDP support to cored.py
  • use UDP by default in coresendmsg.py; added '-H' option to print examples
  • enter a bash shell by default when running vcmd with no arguments
  • fixes to distributed emulation entering runtime state
  • write 'nodes' file upon session startup
  • make session number and other attributes available in environment
  • support /etc/core/environment and ~/.core/environment files
  • added Ns2ScriptedMobility model to Python, removed from the GUI
  • namespace nodes mount a private /sys
  • fixed the following bugs:  80, 81, 84, 99, 104, 109, 110, 122, 124, 131, 133, 134, 135, 137, 140,  143, 144, 146, 147, 151, 154, 155

These release notes along with a list of known issues are posted here:

Monday, April 30, 2012

throughput plots

The Throughput Widget in CORE has shown the real-time kbps bandwidth usage on each link, and now we can plot this data using a new Plot Tool.
About the new Plot Tool:
  • Available in the SVN snapshot of CORE
  • Click on the new blue plot icon in the Execution Toolbar
  • Click on any link to open a new plot for that link. (Opening a new plot will turn on the Throughput Widget if it is off.)
  • Plots are updated every second (along with the throughput labels.)
  • Plots can be dragged around the canvas with the mouse.
  • Right-click on a plot to close it.

To-do list -- help wanted!

Are you interested in improving the plot tool? Here are some items on the To-do list:
  • Plot re-sizing: drag the edge/corner of a plot to resize it; use Tk canvas scale command
  • Color picker: click an icon to choose one of several preset color schemes for the plot (choices could appear after floating the mouse in the upper-right corner of the plot)
  • link/interface label on a plot (with many plots on screen, it may be useful to know which plot belongs to which nodes)
  • lock all scales together (plots will auto-scale up to display higher throughputs; this may cause the scales of several plots to be out of sync and difficult to compare)
  • pause plot (e.g. float mouse in upper-right corner and pause/color selection buttons appear)
  • scroll back plot history
  • save/log plot data to a file (throughput data is calculated from bytes reported in /proc/net/dev)
  • save location and plot settings with the imn file for auto-loading
  • plot something else: kbps in/out? plot different protocols, TCP/UDP, unicast/multicast?

Thursday, March 8, 2012

CORE 4.3 released



A new 4.3 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.3/

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

The high-level changes since version 4.2 are:

  • EMANE 0.7.2 and 0.7.3 support
  • hook scripts: customize actions at any of six different session states
  • Check Emulation Light (CEL) exception feedback system
  • added FTP and XORP services, and service validate commands
  • services can flag when customization is required
  • Python classes to support ns-3 simulation experiments
  • write state, node X,Y position, and servers to pycore session dir
  • removed over 9,000 lines of unused GUI code
  • performance monitoring script
  • batch mode improvements and --closebatch option
  • export session to EmulationScript XML files
  • basic range model moved from GUI to Python, supports 3D coordinates
  • improved WLAN dialog with tabs
  • added PhysicalNode class for joining real nodes with emulated networks
  • fixed the following bugs: 50, 75, 76, 79, 82, 83, 85, 86, 89, 90, 92, 94, 96, 98, 100, 112, 113, 116, 119, 120


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

Wednesday, February 1, 2012

XML export

There's a new option under the Save As dialog box, to export your topology to an XML format. The supported schema can be found here. This is the NRL EmulationScript NetworkPlan with time 0 location information. Note that this format will see some updating as the spec evolves.
Sample output for two router nodes linked together is shown below. There is still much to be done in order to represent all of the data contained in the imn file format.
The XML export occurs at the Python (cored.py) level, with the GUI feeding the back-end the filename to write. This was done so that Python-scripted scenarios could be saved/loaded directly to/from XML without the GUI.