diff --git a/CHANGELOG.md b/CHANGELOG.md
index b8daae53..adfcbf43 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,368 +1,368 @@
## 2019-06-10 CORE 5.3.0
- * Enhancements
- - python 2 / 3 support
- - added new API using [gRPC](https://grpc.io/)
- - --grpc --grpc-port --grpc-address flags added to core-daemon
- - core.api.grpc.client.CoreGrpcClient, provides a convenience wrapper for leveraging the API
- * Docs
- - Updates to installation instructions for latest changes
- * Services
- - Added FRR service
- * EMANE
- - Added EMANE prefix configuration when looking for emane model manifest files
- - requires configuring **emane_prefix** in /etc/core/core.conf
- * Cleanup
- - Refactoring of the core python package structure, trying to help provide better organization and
- logical groupings
- * Issues
- - \#246 - Fixed network to network link handling when reading xml files
- - \#236 - Fixed storing/reading of link configuration values within xml files
- - \#170 - FRR Service
- - \#155 - EMANE path configuration
- - \#233 - Python 3 support
- - \#245 - Fixed bidirectional link configurations when reading from xml files
- - \#208 - gRPC API
- - Fixed link configuration dup handling when loaded from xml files
+* Enhancements
+ * python 2 / 3 support
+ * added new API using [gRPC](https://grpc.io/)
+ * --grpc --grpc-port --grpc-address flags added to core-daemon
+ * core.api.grpc.client.CoreGrpcClient, provides a convenience wrapper for leveraging the API
+* Docs
+ * Updates to installation instructions for latest changes
+* Services
+ * Added FRR service
+* EMANE
+ * Added EMANE prefix configuration when looking for emane model manifest files
+ * requires configuring **emane_prefix** in /etc/core/core.conf
+* Cleanup
+ * Refactoring of the core python package structure, trying to help provide better organization and
+ logical groupings
+* Issues
+ * \#246 - Fixed network to network link handling when reading xml files
+ * \#236 - Fixed storing/reading of link configuration values within xml files
+ * \#170 - FRR Service
+ * \#155 - EMANE path configuration
+ * \#233 - Python 3 support
+ * \#245 - Fixed bidirectional link configurations when reading from xml files
+ * \#208 - gRPC API
+ * Fixed link configuration dup handling when loaded from xml files
## 2019-06-07 CORE 5.2.2
- * Enhancements:
- - adds back in core-daemon udp support for coresendmsg, people may have depended on previously for certain scenarios
- * Bug Fixes:
- - fixes issue in GUI that would prevent moving nodes during mobility scenarios
+* Enhancements:
+ * adds back in core-daemon udp support for coresendmsg, people may have depended on previously for certain scenarios
+* Bug Fixes:
+ * fixes issue in GUI that would prevent moving nodes during mobility scenarios
## 2019-03-25 CORE 5.2.1
- * Packaging:
- - documentation no longer builds by default, must use configure flag
- - added configure flag to allow only building vcmd
- - sphinx will no long be required when not building documentation
- * Services:
- - Added source NAT service
- - Fixed DHCP service for Ubuntu 18.04
- * BUGFIXES:
- - \#188 - properly remove session on delete TLV API call
- - \#192 - updated default gnome terminal command for nodes to be Ubuntu 18.04 compatible
- - \#193 - updates to service validation, will retry on failure and better exception logging
- - \#195 - TLV link message data fix
- - \#196 - fix to avoid clearing out default services
- - \#197 - removed wireless_link_all API from EmuSession
- - \#216 - updated default WLAN bandwidth to 54Mbps
- - \#223 - fix to saving RJ45 to session XML files
+* Packaging:
+ * documentation no longer builds by default, must use configure flag
+ * added configure flag to allow only building vcmd
+ * sphinx will no long be required when not building documentation
+* Services:
+ * Added source NAT service
+ * Fixed DHCP service for Ubuntu 18.04
+* BUGFIXES:
+ * \#188 - properly remove session on delete TLV API call
+ * \#192 - updated default gnome terminal command for nodes to be Ubuntu 18.04 compatible
+ * \#193 - updates to service validation, will retry on failure and better exception logging
+ * \#195 - TLV link message data fix
+ * \#196 - fix to avoid clearing out default services
+ * \#197 - removed wireless_link_all API from EmuSession
+ * \#216 - updated default WLAN bandwidth to 54Mbps
+ * \#223 - fix to saving RJ45 to session XML files
## 2018-05-22 CORE 5.1
- * DAEMON:
- - removed and cleared out code that is either legacy or no longer supported (Xen, BSD, Kernel patching, RPM/DEB
- specific files)
- - default nodes are now set in the node map
- - moved ns3 and netns directories to the top of the repo
- - changes to make use of fpm as the tool for building packages
- - removed usage of logzero to avoid dependency issues for built packages
- - removed daemon addons directory
- - added CoreEmu to core.emulator.coreemu to help begin serving as the basis for a more formal API for scripting
- and creating new external APIs out of
- - cleaned up logging, moved more logging to DEBUG from INFO, tried to mold INFO message to be more simple and
- informative
- - EMANE 1.0.1-1.21 supported
- - updates to leverage EMANE python bindings for dynamically parsing phy/mac manifest files
- - example custom EMANE model lives under /usr/share/core/examples/myemane/examplemodel.py
- - EMANE TDMA model now supports an option to start a TDMA schedule when running
- - fixed issues with coresendmsg script due to code refactoring
- - added make target for generating documentation "make doc"
- - Python 2.7+ is now required
- - ns3 is no longer bundled by default, but will be produced as a separate package for installation
- * GUI:
- - updated broken help links in GUI Help->About
- * Packaging:
- - fixed PYTHON_PATH to PYTHONPATH in sysv script
- - added make command to leverage FPM as the tool for creating deb/rpm packages going forward, there is documentation
- within README.md to try it out
- * TEST:
- - fixed some broken tests
- - new test cases based on CoreEmu usage
- * BUGFIXES:
- - \#142 - duplication of custom services
- - \#136 - sphinx-apidoc command not found
- - \#137 - make command fails when using distclean
-
+* DAEMON:
+ * removed and cleared out code that is either legacy or no longer supported (Xen, BSD, Kernel patching, RPM/DEB
+ specific files)
+ * default nodes are now set in the node map
+ * moved ns3 and netns directories to the top of the repo
+ * changes to make use of fpm as the tool for building packages
+ * removed usage of logzero to avoid dependency issues for built packages
+ * removed daemon addons directory
+ * added CoreEmu to core.emulator.coreemu to help begin serving as the basis for a more formal API for scripting
+ and creating new external APIs out of
+ * cleaned up logging, moved more logging to DEBUG from INFO, tried to mold INFO message to be more simple and
+ informative
+ * EMANE 1.0.1-1.21 supported
+ * updates to leverage EMANE python bindings for dynamically parsing phy/mac manifest files
+ * example custom EMANE model lives under /usr/share/core/examples/myemane/examplemodel.py
+ * EMANE TDMA model now supports an option to start a TDMA schedule when running
+ * fixed issues with coresendmsg script due to code refactoring
+ * added make target for generating documentation "make doc"
+ * Python 2.7+ is now required
+ * ns3 is no longer bundled by default, but will be produced as a separate package for installation
+* GUI:
+ * updated broken help links in GUI Help->About
+* Packaging:
+ * fixed PYTHON_PATH to PYTHONPATH in sysv script
+ * added make command to leverage FPM as the tool for creating deb/rpm packages going forward, there is documentation
+ within README.md to try it out
+* TEST:
+ * fixed some broken tests
+ * new test cases based on CoreEmu usage
+* BUGFIXES:
+ * \#142 - duplication of custom services
+ * \#136 - sphinx-apidoc command not found
+ * \#137 - make command fails when using distclean
+
## 2017-09-01 CORE 5.0
- * DEVELOPMENT:
- - support for editorconfig to help standardize development across IDEs, from the defined configuration file
- - support for sonarqube analysis, from the defined configuration file
- * DAEMON:
- - code cleanup and improvements to adhere to coding standards (SonarQube)
- - leverage "logzero" module to make easy usage of the standard logging module
- - improvements to documentation across the code base
- - initial work to separate the dependence on TCP API messaging from the core library (easier core scripting)
- - beta support for running core in Open vSwitch mode, leveraging Open vSwitch bridges, instead of Linux bridges
- * SERVICES:
- - added Ryu SDN controller service
- - added Open vSwitch service
- * TEST:
- - added unit/integration tests to support validating changes going forward
- * BUGFIXES:
- - merged pull requests for: #115, #110, #109, #107, #106, #105, #103, #102, #101, #96
+* DEVELOPMENT:
+ * support for editorconfig to help standardize development across IDEs, from the defined configuration file
+ * support for sonarqube analysis, from the defined configuration file
+* DAEMON:
+ * code cleanup and improvements to adhere to coding standards (SonarQube)
+ * leverage "logzero" module to make easy usage of the standard logging module
+ * improvements to documentation across the code base
+ * initial work to separate the dependence on TCP API messaging from the core library (easier core scripting)
+ * beta support for running core in Open vSwitch mode, leveraging Open vSwitch bridges, instead of Linux bridges
+* SERVICES:
+ * added Ryu SDN controller service
+ * added Open vSwitch service
+* TEST:
+ * added unit/integration tests to support validating changes going forward
+* BUGFIXES:
+ * merged pull requests for: #115, #110, #109, #107, #106, #105, #103, #102, #101, #96
## 2015-06-05 CORE 4.8
- * EMANE:
- - support for EMANE 0.9.2
- - run emane in each container when using EMANE 0.9.2
- - support using separate control networks for EMANE OTA and event traffic
- * GUI:
- - fixed an issue where the adjacency widget lines pointed to old node positions
- - fixed an issue where not all EMANE 0.9.x IEEE 802.11 MAC parameter were configurable
- - fixed an issue related to running python scripts from the GUI when using tcl/tk version 8.6
- - improved batch mode execution to display the check emulation light status
- - improved managing multiple sessions
- - improved support for using multiple canvases
- - added a reload option to the file menu to revert back to a saved scenario
- * DAEMON:
- - support exporting scenarios in NRL Network Modeling Framework 1.0 XML format
- - support importing scenarios in NRL Network Modeling Framework 1.0 XML format
- - support exporting the deployed scenario state in NRL NMF XML 1.0 format
- - improved EMANE post-startup processing to better synchronize distributed emulations
- - improved how addresses are assigned to tun/tap devices
- - added support for python state-change callbacks
- * SERVICES:
- - added mgen sink and mgen actor services
- - added oslrv2 and olsr.org services
- - added a docker service
- * BUILD:
- - improved the install/uninstall process
- - improved debian and rpm packaging
- * BUGFIXES:
- - updated the http service for ubuntu 14.04
- - improved included examples
- - shortened the length of network interface names
- - improved how the core system service manages running the core daemon
- - fixed an issues related to applying session configuration setting
- - improved detecting when a distributed emulation is already running
- - improved documentation
+* EMANE:
+ * support for EMANE 0.9.2
+ * run emane in each container when using EMANE 0.9.2
+ * support using separate control networks for EMANE OTA and event traffic
+* GUI:
+ * fixed an issue where the adjacency widget lines pointed to old node positions
+ * fixed an issue where not all EMANE 0.9.x IEEE 802.11 MAC parameter were configurable
+ * fixed an issue related to running python scripts from the GUI when using tcl/tk version 8.6
+ * improved batch mode execution to display the check emulation light status
+ * improved managing multiple sessions
+ * improved support for using multiple canvases
+ * added a reload option to the file menu to revert back to a saved scenario
+* DAEMON:
+ * support exporting scenarios in NRL Network Modeling Framework 1.0 XML format
+ * support importing scenarios in NRL Network Modeling Framework 1.0 XML format
+ * support exporting the deployed scenario state in NRL NMF XML 1.0 format
+ * improved EMANE post-startup processing to better synchronize distributed emulations
+ * improved how addresses are assigned to tun/tap devices
+ * added support for python state-change callbacks
+* SERVICES:
+ * added mgen sink and mgen actor services
+ * added oslrv2 and olsr.org services
+ * added a docker service
+* BUILD:
+ * improved the install/uninstall process
+ * improved debian and rpm packaging
+* BUGFIXES:
+ * updated the http service for ubuntu 14.04
+ * improved included examples
+ * shortened the length of network interface names
+ * improved how the core system service manages running the core daemon
+ * fixed an issues related to applying session configuration setting
+ * improved detecting when a distributed emulation is already running
+ * improved documentation
## 2014-08-06 CORE 4.7
- * EMANE:
- - support for EMANE 0.9.1
- - fix error when using Comm Effect model with loss/duplicate string values
- - enable flow control in virtual transport if enabled in the MAC model
- - fix bug #150 where EMANE event service/address port were not used
- * GUI:
- - support Tcl/Tk 8.6 when available
- - added --(a)ddress and --(p)ort arguments to core-gui command-line
- - added File > Execute XML or Python script... option
- - added File > Execute Python script with options... menu item
- - when executing Python script from GUI, run in background thread, wait for
- RUNTIME state
- - enter RUNTIME state when start button pressed with empty canvas
- - added support for asymmetric link effects
- - support link delays up to 274 seconds (netem maximum)
- - allow runtime changes of WLAN link effects
- * DAEMON:
- - set NODE_NAME, NODE_NUMBER, SESSION_SHORT in default vnoded environment
- - changed host device naming to use veth, tap prefixes; b.n.SS for bridges
- - allow parsing XML files into live running session
- - enable link effects between hub/switch and hub/switch connections
- - update MDR service to use broadcast interfaces for non-WLAN links
- - allow node class to be specified when initializing XML parser
- - save and parse canvas origin (reference point) and scale in MP XML
- - up/down control script session option
- - fix hash calculation used to determine GRE tunnel keys
- - use shell script to detach SMF on startup
- - added NRL services for mgen sink and nrlolsrv2
- - use SDT URL session option
- - added core-manage tool for addons to add/remove/check services, models,
- and custom node types
- * API:
- - implement local flag in Execute Message for running host commands
- - jitter changed to 64-bit value to align with delay in Link Message
- - added unidirectional link flag TLV to Link Message
- - added reconfigure event type for re-generating service config files
- - return errors in API with failed services
- * BUGFIXES:
- - fix HTTP service running under Ubuntu
- - fixed the following bugs: #150, 169, 188, 220, 225, 230, 231, 242, 244,
- 247, 248, 250, 251
+* EMANE:
+ * support for EMANE 0.9.1
+ * fix error when using Comm Effect model with loss/duplicate string values
+ * enable flow control in virtual transport if enabled in the MAC model
+ * fix bug #150 where EMANE event service/address port were not used
+* GUI:
+ * support Tcl/Tk 8.6 when available
+ * added --(a)ddress and --(p)ort arguments to core-gui command-line
+ * added File > Execute XML or Python script... option
+ * added File > Execute Python script with options... menu item
+ * when executing Python script from GUI, run in background thread, wait for
+ RUNTIME state
+ * enter RUNTIME state when start button pressed with empty canvas
+ * added support for asymmetric link effects
+ * support link delays up to 274 seconds (netem maximum)
+ * allow runtime changes of WLAN link effects
+* DAEMON:
+ * set NODE_NAME, NODE_NUMBER, SESSION_SHORT in default vnoded environment
+ * changed host device naming to use veth, tap prefixes; b.n.SS for bridges
+ * allow parsing XML files into live running session
+ * enable link effects between hub/switch and hub/switch connections
+ * update MDR service to use broadcast interfaces for non-WLAN links
+ * allow node class to be specified when initializing XML parser
+ * save and parse canvas origin (reference point) and scale in MP XML
+ * up/down control script session option
+ * fix hash calculation used to determine GRE tunnel keys
+ * use shell script to detach SMF on startup
+ * added NRL services for mgen sink and nrlolsrv2
+ * use SDT URL session option
+ * added core-manage tool for addons to add/remove/check services, models,
+ and custom node types
+* API:
+ * implement local flag in Execute Message for running host commands
+ * jitter changed to 64-bit value to align with delay in Link Message
+ * added unidirectional link flag TLV to Link Message
+ * added reconfigure event type for re-generating service config files
+ * return errors in API with failed services
+* BUGFIXES:
+ * fix HTTP service running under Ubuntu
+ * fixed the following bugs: #150, 169, 188, 220, 225, 230, 231, 242, 244,
+ 247, 248, 250, 251
## 2013-09-25 CORE 4.6
- * 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)
- * EMANE:
- - don't start EMANE locally if no local NEMs
- - EMANE poststartup() to re-transmit location events during initialization
- - added debug port to EMANE options
- - added a basic EMANE 802.11 CORE Python script example
- - expose transport XML block generation to EmaneModels
- - expose NEM entry to the EmaneModel so it can be overridden by a model
- - add the control interface bridge prior to starting EMANE, as some models may
- - depend on the controlnet functionality
- - added EMANE model to CORE converter
- - parse lat/long/alt from node messages, for moving nodes using command-line
- - fix bug #196 incorrect distance when traversing UTM zones
- * GUI:
- - added Cut, Copy, and Paste options to the Edit menu
- - paste will copy selected services and take care of node and interface
- - renumbering
- - implement Edit > Find dialog for searching nodes and links
- - when copying existing file for a service, perform string replacement of:
- - "~", "%SESSION%", "%SESSION_DIR%", "%SESSION_USER%", "%NODE%", "%NODENAME%"
- - use CORE_DATA_DIR insteadof LIBDIR
- - fix Adjacency Widget to work with OSPFv2 only networks
- * BUILD:
- - build/packaging improvements for inclusion on Debian
- - fix error when running scenario with a mobility script in batch mode
- - include Linux kernel patches for 3.8
- - renamed core-cleanup.sh to core-cleanup for Debian conformance
- - don't always generate man pages from Makefile; new manpages for
- coresendmsg and core-daemon
- * BUGFIXES:
- - don't auto-assign IPv4/IPv6 addresses when none received in Link Messages (session reconnect)
- - fixed lock view
- - fix GUI spinbox errors for Tk 8.5.8 (RHEL/CentOS 6.2)
- - fix broker node count for distributed session entering the RUNTIME state when
- - (non-EMANE) WLANs or GreTapBridges are involved;
- - fix "file exists" error message when distributed session number is re-used
- - and servers file is written
- - fix bug #194 configuration dialog too long, make dialog scrollable/resizable
- - allow float values for loss and duplicates percent
- - fix the following bugs: 166, 172, 177, 178, 192, 194, 196, 201, 202,
- 205, 206, 210, 212, 213, 214, 221
+* 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)
+* EMANE:
+ * don't start EMANE locally if no local NEMs
+ * EMANE poststartup() to re-transmit location events during initialization
+ * added debug port to EMANE options
+ * added a basic EMANE 802.11 CORE Python script example
+ * expose transport XML block generation to EmaneModels
+ * expose NEM entry to the EmaneModel so it can be overridden by a model
+ * add the control interface bridge prior to starting EMANE, as some models may
+ * depend on the controlnet functionality
+ * added EMANE model to CORE converter
+ * parse lat/long/alt from node messages, for moving nodes using command-line
+ * fix bug #196 incorrect distance when traversing UTM zones
+* GUI:
+ * added Cut, Copy, and Paste options to the Edit menu
+ * paste will copy selected services and take care of node and interface
+ * renumbering
+ * implement Edit > Find dialog for searching nodes and links
+ * when copying existing file for a service, perform string replacement of:
+ * "~", "%SESSION%", "%SESSION_DIR%", "%SESSION_USER%", "%NODE%", "%NODENAME%"
+ * use CORE_DATA_DIR insteadof LIBDIR
+ * fix Adjacency Widget to work with OSPFv2 only networks
+* BUILD:
+ * build/packaging improvements for inclusion on Debian
+ * fix error when running scenario with a mobility script in batch mode
+ * include Linux kernel patches for 3.8
+ * renamed core-cleanup.sh to core-cleanup for Debian conformance
+ * don't always generate man pages from Makefile; new manpages for
+ coresendmsg and core-daemon
+* BUGFIXES:
+ * don't auto-assign IPv4/IPv6 addresses when none received in Link Messages (session reconnect)
+ * fixed lock view
+ * fix GUI spinbox errors for Tk 8.5.8 (RHEL/CentOS 6.2)
+ * fix broker node count for distributed session entering the RUNTIME state when
+ * (non-EMANE) WLANs or GreTapBridges are involved;
+ * fix "file exists" error message when distributed session number is re-used
+ * and servers file is written
+ * fix bug #194 configuration dialog too long, make dialog scrollable/resizable
+ * allow float values for loss and duplicates percent
+ * fix the following bugs: 166, 172, 177, 178, 192, 194, 196, 201, 202,
+ 205, 206, 210, 212, 213, 214, 221
## 2013-04-13 CORE 4.5
- * 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
- * fixed the following bugs: 54, 103, 111, 136, 145, 153, 157, 160, 161, 162, 164, 165, 168, 170, 171, 173, 174, 176,
- 184, 190, 193
+* 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
+* fixed the following bugs: 54, 103, 111, 136, 145, 153, 157, 160, 161, 162, 164, 165, 168, 170, 171, 173, 174, 176,
+184, 190, 193
## 2012-09-25 CORE 4.4
- * 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
+* 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
## 2012-03-07 CORE 4.3
- * 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
+* 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
## 2011-08-19 CORE 4.2
- * 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
+* 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
## 2011-01-05 CORE 4.1
- * 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
+* 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
## 2010-08-17 CORE 4.0
- * 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
+* 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
## 2009-09-15 CORE 3.5
diff --git a/README.md b/README.md
index 76435683..a0af9390 100644
--- a/README.md
+++ b/README.md
@@ -17,13 +17,13 @@ scripting network emulation.
## Documentation and Examples
* Documentation hosted on GitHub
- *
+ *
* Basic Script Examples
- * [Examples](daemon/examples/api)
+ * [Examples](daemon/examples/api)
* Custom Service Example
- * [sample.py](daemon/examples/myservices/sample.py)
+ * [sample.py](daemon/examples/myservices/sample.py)
* Custom Emane Model Example
- * [examplemodel.py](daemon/examples/myemane/examplemodel.py)
+ * [examplemodel.py](daemon/examples/myemane/examplemodel.py)
## Support