Wednesday, October 6, 2010

Configs moved from /etc/core to $HOME/core

A new change in the development version of CORE (svn snapshot) is that the CORE GUI will now use a $HOME/.core directory for configuration that it writes.

  • the default scenario dir for imn files is now ~/.core/configs/
  • existing ~/.core preferences file is moved to ~/.core/prefs.conf
  • plugins.conf, servers.conf, and widgets.conf now live in ~/.core/
  • the read-only /etc/core/core.conf file still exists, for configuring the daemon (cored.py)

This fixes bug #25 (http://code.google.com/p/coreemu/issues/detail?id=25)

Monday, August 9, 2010

CORE 4.0 released

A new 4.0 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.0/

This is the first release of CORE that doesn't require you to patch and recompile your kernel. Using Ubuntu 10.04 or Fedora 12 or 13, you can install a single package (deb or rpm) and build virtual networks, using Linux network namespace containers. FreeBSD 8.x and OpenVZ are still supported platforms.

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

Quagga is available from the following page with OSPF MDR extensions:
http://cs.itd.nrl.navy.mil/work/ospf-manet/

Standard Quagga may also be used, but the configs generated for wireless routers will not be recognized.

Here are some of the high-level changes since version 3.5:
  • Python framework with Linux network namespace (netns) support
  • (Linux netns is now the primary supported platform)
  • ability to close the GUI and later reconnect to a running session (netns only)
  • EMANE integration (netns only)
  • new topology generators, host file generator
  • user-editable Observer Widgets
  • use of /etc/core instead of /usr/local/etc/core
  • various bugfixes

Wednesday, May 26, 2010

disconnected GUI

The notion of Sessions were added to the CORE services, so you can launch a new session using the GUI, exit the GUI while leaving the emulation running, and reconnect at some later time. You can also run multiple sessions simultaneously.



(This only works for Linux network namespaces for now, until FreeBSD and OpenVZ have been ported to using the cored.py Python daemon.)

more images than GIF supported


Use of the Tk::Img library was added to CORE. This allows you to use various image types besides just the GIFs that were supported before -- such as JPG, PNG, TIF, etc. Now the custom node icon and canvas wallpaper dialogs accept various image types.




The Img library is a new dependency for the CORE GUI. You can install it with:

# for RedHat/Fedora
yum install tkimg
or

# for Debian/Ubuntu
sudo apt-get install libtk-img

Friday, May 21, 2010

CORE is now a Python package

The CORE Python code has been reorganized into a Python package. New example scripts are included in the source under core/python/examples/netns/. Here is a snippet from one of the samples, how you would make N nodes connected to a switch:

from core import pycore
from core.misc import ipaddr

def main:
...
# IP subnet
prefix = ipaddr.IPv4Prefix("10.83.0.0/16")
session = pycore.Session()
# emulated ethernet switch
switch = session.addobj(cls = pycore.nodes.SwitchNode)
print "creating %d nodes with addresses from %s" % \
(options.numnodes, prefix)
for i in xrange(1, options.numnodes + 1):
tmp = session.addobj(cls = pycore.nodes.LxcNode, name = "n%d" % i)
tmp.newnetif(switch, ["%s/%s" % (prefix.addr(i), prefix.prefixlen)])
tmp.cmd(["sysctl", "net.ipv4.icmp_echo_ignore_broadcasts=0"])
n.append(tmp)

# start a shell on node 1
n[1].term("bash")

Monday, April 5, 2010

nodes find their place in this world

The Canvas resize dialog was updated to Canvas Size and Scale. This allows you to set a geographic reference point and scale in meters for the canvas, so the traditional X,Y node coordinates can now be translated to lat/long geo coordinates. This support was added so CORE now generates EMANE location events when a node is moved on the canvas.

Thursday, March 25, 2010

user-editable Observer Widgets

You can now edit the list of Observer Widgets. Insert your own commands that are run on the node with a mouse over. Changes are saved to a /usr/local/etc/core/widgets.conf file.