Monday, July 3, 2017

Hello, wiki!

We've moved to GitHub a while back but haven't transitioned the old Google Code archive over yet. Let's start to populate the GitHub wiki -- starting with the essentials: how to get started with CORE on Ubuntu 16.04:



Wednesday, August 6, 2014

CORE 4.7 released

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

Brief summary of changes:



The full release notes and list of known issues are posted on the Wiki Release Notes page.

Ubuntu 14.04 and Debian users can install a "core-network" package via apt-get (look for version 4.7 soon.) Also, Subversion source control access can be found here.


Tuesday, December 3, 2013

Asymmetric Links and Jitter

Asymmetric link effects can now be configured using the CORE GUI. A new Unidir. >> button in the Link Configuration dialog (when you double-click a link) will expand to show unidirectional link effects. When collapsed, the specified parameters are used bidirectionally.
Below is a screenshot of the expanded dialog. The parameters on the left are for downstream (e.g. for a link from n1 to n2, traffic going from n2 to n1) and upstream on the right.

Jitter

Also a new jitter parameter has been added. Like delay, this value is in microseconds, and specifies a random variation in delay for each packet. See this netem page for details. If you're curious about which tc netem rules that CORE is using, turn on the "-v" verbose logging option in the daemon:
16276: linkconfig: [['/sbin/tc', 'qdisc', 'replace', 'dev', 'n1.eth0.69', 'root', 'handle', '1:', 'tbf', 'rate', '512000', 'burst', '3000', 'limit', '65535']]
16276: linkconfig: [['/sbin/tc', 'qdisc', 'replace', 'dev', 'n1.eth0.69', 'parent', '1:1', 'handle', '10:', 'netem', 'delay', '45000us', '7000us', '25%', 'loss', '0.0%', 'duplicate', '0.0%']]

Caveats

There are a few caveats with asymmetric link effects. To get unidirectional link effects in a wireless model (using the WLAN), look to the EMANE Comm Effect model. The basic on/off model can only support on/off connectivity and uniform effects for the WLAN network as a whole. The asymmetric effects can be used between layer-3 nodes (router, PC, host, etc.), between hubs/switches, and links with RJ45s -- but not for a link between a hub/switch and another node.
Links between hubs/switches and other nodes only have a downstream effect. The round-trip delay (RTT) in the example above is 5ms between n1 and n2 (not 10ms) and 3ms between n1 and n3. This is because CORE is configuring the netem queue, which is outbound queuing only, on one of the veth pair interfaces, highlighted in yellow in the diagram below.

To get a round-trip delay using a switch, configure half the delay on all of the links to the switch (e.g. use 1.5ms on all links for a 3ms round-trip delay.) This could be fixed in future revisions by adding a netem queue on the outbound interface (e.g. the white veths in the diagram) inside the namespace, or by using inbound netem queuing with IFB devices.



Thursday, September 26, 2013

CORE 4.6 released

A new 4.6 release of CORE is available. To obtain the software, please visit:
https://code.google.com/p/coreemu/downloads/list

(In a few weeks, 4.6 also available here: http://downloads.pf.itd.nrl.navy.mil/core/packages/4.6/)


Brief summary of changes:

  • Cut/Copy/Paste and Find options added to the Edit menu
  • Debian package compliance
  • distributed emulation fixes and other bugfixes.

NOTE: cored is now core-daemon and core is now core-gui (for Debian acceptance)
NOTE: /etc/init.d/core is now /etc/init.d/core-daemon (for insserv compatibility)

The full release notes and list of known issues are posted on the Wiki Release Notes page. Debian unstable/testing users can now install CORE directly using "sudo apt-get install core-network" (native Ubuntu packages coming soon.)


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.