core

Common Open Research Emulator

BSD-2-CLAUSE License

Stars
670
Committers
36

Bot releases are hidden (Show)

core - CORE 9.1.0 Latest Release

Published by bharnden 4 months ago

Installation

  • most install files are now consolidated under /opt/core
  • #830 / #831 - fixed issues with systemd service support

Documentation

  • added notes about MaxSession configuration for SSH when running distributed
  • #826 - updated tutorial 3 documentation

core-daemon

  • updated Docker nodes to use docker exec by default for commands
  • added Podman nodes
  • Docker/Podman compose support for nodes to allow greater configuration
  • Docker/Podman node images no longer require network tools for orchestration
  • EMANE configuration parsing updated to treat regexes as provided
  • executables are now symlinks under $prefix/bin to avoid PATH issues
  • new flag added to quickly enable debug logging
  • code refactoring for handling internal nodes like control nets and ptp
  • #789 - wlan nodes can now configure the subnet for connected nodes
  • #801 - fixed issue running EMANE within Docker/Podman
  • #816 - fixed split link configuration saving to XML
  • #823 - config services are now the default and only services available
  • #842 - gRPC WLAN add node during runtime fixed
  • #875 - fix dataclass creation for python 3.11+

core-gui

  • fixed copy/paste nodes to include image name
  • adds root to xhost by default when running
  • #811 - added convenience shortcut to run arbitrary commands from nodes, like wireshark
core - CORE 9.0.3

Published by bharnden about 1 year ago

Installation

  • updated various dependencies

Documentation

  • improved GUI docs to include node interaction and note xhost usage
  • #780 - fixed gRPC examples
  • #787 - complete documentation revamp to leverage mkdocs material
  • #790 - fixed custom emane model example

core-daemon

  • update type hinting to avoid deprecated imports
  • updated commands ran within docker based nodes to have proper environment variables
  • fixed issue improperly setting session options over gRPC
  • #668 - add fedora sbin path to frr service
  • #774 - fixed pcap configservice
  • #805 - fixed radvd configservice template error

core-gui

  • update type hinting to avoid deprecated imports
  • fixed issue allowing duplicate named hook scripts
  • fixed issue joining sessions with RJ45 nodes

utility scripts

  • fixed issue in core-cleanup for removing devices
core - CORE 9.0.2

Published by bharnden over 1 year ago

Installation

  • updated python dependencies, including invoke to resolve python 3.10+ issues
  • improved example dockerfiles to use less space for built images

Documentation

  • updated emane install instructions
  • added Docker related issues to install instructions

core-daemon

  • fixed issue using invalid device name in sysctl commands
  • updated PTP nodes to properly disable mac learning for their linux bridge
  • fixed issue for LXC nodes to properly use a configured image name and write it to XML
  • #742 - fixed issue with bad wlan node id being used
  • #744 - fixed issue not properly setting broadcast address

core-gui

  • fixed sample1.xml to remove SSH service
  • fixed emane demo examples
  • fixed issue displaying emane configs generally configured for a node
core - CORE 9.0.1

Published by bharnden almost 2 years ago

Installation

  • updated protobuf and grpcio-tools versions in pyproject.toml to account for bad version mix
core - CORE 9.0.0

Published by bharnden almost 2 years ago

Breaking Changes

  • removed session nodes file
  • removed session state file
  • emane now runs in one process per nem with unique control ports
  • grpc client has been refactored and updated
  • removed tcl/legacy gui, imn file support and the tlv api
  • link configuration is now different, but consistent, for wired links

Installation

  • added packaging for single file distribution
  • python3.9 is now the minimum required version
  • updated Dockerfile examples
  • updated various python dependencies
  • virtual environment is now installed to /opt/core/venv

Documentation

  • updated emane invoke task examples
  • revamped install documentation
  • added wireless node notes

core-gui

  • updated config services to display rendered templated and allow editing
  • fixed node icon issue when updating preferences
  • #89 - throughput widget now works for hubs/switches
  • #691 - fixed custom nodes to properly use config services

gRPC API

  • add linked call to support linking and unlinking interfaces without destroying them
  • fixed issue during start session clearing out session options
  • added call to get rendered config service files
  • removed get_node_links from links from client
  • nem id and nem port have been added to GetNode and AddLink calls

core-daemon

  • wired links always create two veth pairs joined by a bridge
  • node interfaces are now configured within the container to apply to outgoing traffic
  • session.add_node now uses NodeOptions, allowing for node specific options
  • fixed issue with xml reading node canvas values
  • removed Session.add_node_file
  • fixed get requirements logic
  • fixed docker/lxd node support terminal commands on remote servers
  • improved docker node command execution time using nsenter
  • new wireless node type added to support dynamic loss based on distance
  • #513 - add and deleting distributed links during runtime is now supported
  • #703 - fixed issue not starting emane event listening service
core - CORE 8.2.0

Published by bharnden over 2 years ago

core-gui

  • improved failed starts to trigger runtime to allow node investigation

core-daemon

  • improved default service loading to use a full import path
  • updated session instantiation to always set to a runtime state

core-cli

  • #672 - fixed xml loading
  • #578 - restored json flag and added geo output to session overview

Documentation

  • updated emane example and documentation
  • improved table markdown
core - CORE 8.1.0

Published by bharnden over 2 years ago

Installation

  • updated dependency versions to account for known vulnerabilities

GUI

  • fixed issue drawing asymmetric link configurations when joining a session

daemon

  • fixed issue getting templates and creating files for config services
  • added by directional support for network to network links
  • #647 - fixed issue when creating RJ45 nodes
  • #646 - fixed issue when creating files for Docker nodes
  • #645 - improved wlan change updates to account for all updates with no delay

services

  • fixed file generation for OSPFv2 config service
core - CORE 8.0.0

Published by bharnden almost 3 years ago

This release marks the beginning of a path to eventually phase out the Tcl based GUI, TLV API, and original services. core-gui now points
to the python based GUI, while core-gui-legacy, will give the original Tcl based version. The python based GUI will also now default to
using config services as the default, while still allowing the option to use the original services, marked for deprecation.

Breaking Changes

  • heavily refactored gRPC client, removing some calls, adding others, all using type hinted classes representing their protobuf counterparts
  • emane adjustments to run each nem in its own process, includes adjustments to configuration, which may cause issues
  • internal daemon cleanup and refactoring, in a script directly driving a scenario is used

Installation

  • added options to allow installation without ospf mdr
  • removed tasks that are no longer needed
  • updates to properly install/remove example files
  • pipx/poetry/invoke versions are now locked to help avoid update related issues
  • install.sh is now setup.sh and is a convenience to get tool setup to run invoke

Documentation

  • formally added notes for Docker and LXD based node types
  • added config services
  • Updated README to have quick notes for installation
  • #563 - update to note how to enable core service

Examples

  • #598 - update to fix sample1.imn to working order

core-daemon

  • emane global configuration is now configurable per nem
  • fixed wlan loss to support float values
  • improved default service loading to use full core path
  • improved emane model loading to occur one time
  • fixed handling rj45 link edits from tlv api
  • fixed wlan config getting a default value for the promiscuous setting when not provided
  • ebtables usage has now been replaced with nftables
  • #564 - logging is now using module named loggers
  • #573 - emane processes are not created 1 to 1 with nems
  • #608 - update lxml version
  • #609 - update pyyaml version
  • #623 - fixed issue with ovs mode and mac learning

core-gui

  • config services are now the default service type
  • legacy services are marked as deprecated
  • fix to properly load session options
  • logging is now using module named loggers
  • save as will not update the current session file name as expected
  • fix to properly clear out removed customized services
  • adding directories to a service that do not exist, is now valid
  • added flag to exit after creating gui directory from command line
  • added new options to enable/disable ip4/ip6 assignment
  • improved canvas draw order, when joining sessions
  • improved node copy/paste to avoid issues when pasting text into service config dialogs
  • each canvas will not correctly save and load their size from xml

gRPC API

  • session options are now returned for GetSession
  • fixed issue not properly creating the session directory during start session definition state
  • updates to separate editing a node and moving a node, new MoveNode call added, EditNode is now used for editing icons

Services

  • fixed default route config service
  • config services now have options for shadowing directories, including per node customization
core - CORE 7.5.2

Published by bharnden about 3 years ago

Installation

  • #596 - fixes issue related to installing poetry by pinning version to 1.1.7
  • updates pipx installation to pinned version 0.16.4

core-daemon

  • #600 - fixes known vulnerability for pillow dependency by updating version
core - CORE 7.5.1

Published by bharnden over 3 years ago

core-pygui

  • fixed issues creating and drawing custom nodes
core - CORE 7.5.0

Published by bharnden over 3 years ago

core-daemon

  • fixed issue setting mobility loop value properly
  • fixed issue that some states would not properly remove session directories
  • #560 - fixed issues with sdt integration for mobility movement and layer creation

core-pygui

  • added multiple canvas support
  • added support to hide nodes and restore them visually
  • update to assign full netmasks to wireless connected nodes by default
  • update to display services and action controls for nodes during runtime
  • fixed issues with custom nodes
  • fixed issue auto assigning macs, avoiding duplication
  • fixed issue joining session with different netmasks
  • fixed issues when deleting a session from the sessions dialog
  • #550 - fixed issue not sending all service customization data

core-cli

  • added delete session command
core - CORE 7.4.0

Published by bharnden almost 4 years ago

Installation

  • fixed issue for automated install assuming ID_LIKE is always present in /etc/os-release

gRPC API

  • fixed issue stopping session and not properly going to data collect state
  • fixed issue to have start session properly create a directory before configuration state

core-pygui

  • fixed issue handling deletion of wired link to a switch
  • avoid saving edge metadata to xml when values are default
  • fixed issue editing node mac addresses
  • added support for configuring interface names
  • fixed issue with potential node names to allow hyphens and remove under bars
  • #531 - fixed issue changing distributed nodes back to local

core-daemon

  • fixed issue to properly handle deleting links from a network to network node
  • updated xml to support writing and reading link buffer configurations
  • reverted change and removed mac learning from wlan, due to promiscuous like behavior
  • fixed issue creating control interfaces when starting services
  • fixed deadlock issue when clearing a session using sdt
  • #116 - fixed issue for wlans handling multiple mobility scripts at once
  • #539 - fixed issue in udp tlv api
core - CORE 7.3.0

Published by bharnden almost 4 years ago

core-daemon

  • fixed issue where emane global configuration was not being sent to core-gui
  • updated controlnet names on host to be prefixed with ctrl
  • fixed RJ45 link shutdown from core-gui causing an error
  • fixed emane external transport xml generation
  • #517 - update to account for radvd required directory
  • #514 - support added for session specific environment files
  • #529 - updated to configure netem limit based on delay or user specified, requires kernel 3.3+

core-pygui

  • fixed issue drawing wlan/emane link options when it should not have
  • edge labels are now placed a set distance from nodes like original gui
  • link color/width are now saved to xml files
  • added support to configure buffer size for links
  • #525 - added support for multiple wired links between the same nodes
  • #526 - added option to hide/show links with 100% loss

Documentation

  • #527 - typo in service documentation
  • #515 - added examples to docs for using EMANE features within a CORE context
core - CORE 7.2.1

Published by bharnden about 4 years ago

core-daemon

  • fixed issue where shutting down sessions may not have removed session directories
  • fixed issue with multiple emane interfaces on the same node not getting the right configuration

Installation

  • updated automated install to be a bit more robust for alternative distros
  • added force install type to try and leverage a redhat/debian like install
  • locked ospf mdr version installed to older commit to avoid issues with multiple interfaces on same node
core - CORE 7.2.0

Published by bharnden about 4 years ago

Installation

  • locked down version of ospf-mdr installed in automated install
  • locked down version of emane to v1.2.5 in automated emane install
  • added option to install locally using the -l option

core-daemon

  • improve error when retrieving services that do not exist, or failed to load
  • fixed issue with writing/reading emane node interface configurations to xml
  • fixed issue with not setting the emane model when creating a node
  • added common utility method for getting a emane node interface config id in core.utils
  • fixed issue running emane on more than one interface for a node
  • fixed issue validating paths when creating emane transport xml for a node
  • fixed issue avoiding multiple calls to shutdown, if already in shutdown state

core-pygui

  • fixed issue configuring emane for a node interface

gRPC API

  • added wrapper client that can provide type hinting and a simpler interface at core.api.grpc.clientw
  • fixed issue creating sessions that default to having a very large reference scale
  • fixed issue with GetSession returning control net nodes
core - CORE 7.1.0

Published by bharnden about 4 years ago

Installation

  • added core-python script that gets installed to help globally reference the virtual environment

gRPC API

  • GetSession will now return all configuration information for a session and the file it was opened from, if applicable
  • node update events will now include icon information
  • fixed issue with getting session throughputs for sessions with a high id

core-daemon

  • #503 - EMANE networks will now work with mobility again
  • #506 - fixed service dependency resolution issue
  • fixed issue sending hooks to core-gui when joining session

core-pygui

  • fixed issues editing hooks
  • fixed issue with cpu usage when joining a session
  • fixed mac field not being disabled during runtime when configuring a node
  • removed unlimited button from link config dialog
  • fixed issue with copy/paste links and their options
  • fixed issue with adding nodes/links and editing links during runtime
  • updated open file dialog in config dialogs to open to ~/.coregui home directory
  • fixed issue double clicking sessions dialog in invalid areas
  • added display of asymmetric link options on links
  • fixed emane config dialog display
  • fixed issue saving backgrounds in xml files
  • added view toggle for wired/wireless links
  • node events will now update icons
core - CORE 7.0.1

Published by bharnden about 4 years ago

Bugfixes

  • #500 - fixed issue running node commands with shell=True
  • fixed issue for poetry based install not properly vetting requirements for dataclasses dependency
core - CORE 7.0.0

Published by bharnden about 4 years ago

Breaking Changes

  • core.emudata and core.data combined and cleaned up into core.data
  • updates to consistently use mac instead of hwaddr/mac
  • #468 - code related to adding/editing/deleting links cleaned up
  • #469 - usages of per all changed to loss to be consistent
  • #470 - variables with numbered names now use numbers directly
  • #471 - node startup is no longer embedded within its constructor
  • #472 - code updated to refer to interfaces consistently as iface
  • #475 - code updates changing how ip addresses are stored on interfaces
  • #476 - executables to check for moved into own module core.executables
  • #486 - core will now install into its own python virtual environment managed by poetry

core-daemon

  • updates to properly save/load distributed servers to xml
  • #474 - added type hinting to all service files
  • #478 - fixed typo in config service directory
  • #479 - opening an xml file will now cycle through states like a normal session
  • #480 - ovs configuration will now save/load from xml and display in guis
  • #484 - changes to support adding emane links during runtime

core-pygui

  • fixed issue not displaying services for the default group in service dialogs
  • fixed issue starting a session when the daemon is not present
  • fixed issue attempting to open terminals for invalid nodes
  • fixed issue syncing session location
  • fixed issue joining a session with mobility, not in runtime
  • added cpu usage monitor to status bar
  • emane configurations can now be seen during runtime
  • rj45 nodes can only have one link
  • disabling throughputs will clear labels
  • improvements to custom service copy
  • link options will now be drawn on as a label
  • updates to handle runtime link events
  • #477 - added optional details pane for a quick view of node/link details
  • #485 - pygui fixed observer widget for invalid nodes
  • #496 - improved alert handling

core-gui

  • #493 - increased frame size to show all emane configuration options

gRPC API

  • added set session user rpc
  • added cpu usage stream
  • interface objects returned from get_node will now provide node_id, net_id, and net2_id data
  • peer to peer nodes will not be included in get_session calls
  • pathloss events will now throw an error when nem id not found
  • #481 - link rpc calls will broadcast out
  • #496 - added alert rpc call

Services

  • fixed issue reading files in security services
  • #494 - add staticd to daemons list for frr services
core - CORE 6.5.0

Published by bharnden over 4 years ago

Breaking Changes

  • CoreNode.newnetif - both parameters are required and now takes an InterfaceData object as its second parameter
  • CoreNetworkBase.linkconfig - now takes a LinkOptions parameter instead of a subset of some of the options (ie bandwidth, delay, etc)
  • #453 - Session.add_node and Session.get_node now requires the node class you expect to create/retrieve
  • #458 - rj45 cleanup to only inherit from one class

Enhancements

  • fixed issues with handling bad commands for TLV execute messages
  • removed unused boot.sh from CoreNode types
  • added linkconfig to CoreNetworkBase and cleaned up function signature
  • emane position hook now saves geo position to node
  • emane pathloss support
  • core.emulator.emudata leveraged dataclass and type hinting
  • #459 - updated transport type usage to an enum
  • #460 - updated network policy type usage to an enum

Python GUI Enhancements

  • fixed throughput events do not work for joined sessions
  • fixed exiting app with a toolbar picker showing
  • fixed issue with creating interfaces and reusing subnets after deletion
  • fixed issue with moving text shapes
  • fixed scaling with custom node selected
  • fixed toolbar state switching issues
  • enable/disable toolbar when running stop/start
  • marker config integrated into toolbar
  • improved color picker layout
  • shapes can now be moved while drawing shapes
  • added observers to toolbar in run mode

gRPC API

  • node events will now have geo positional data
  • node geo data is now returned in get_session and get_node calls
  • #451 - added wlan link api to allow direct linking/unlinking of wireless links between nodes
  • #462 - added streaming call for sending node position/geo changes
  • #463 - added streaming call for emane pathloss events

Bugfixes

  • #454 - fixed issue creating docker nodes, but containers are now required to have networking tools
  • #466 - fixed issue in python gui when xml file is loading nodes with no ip4 addresses
core - CORE 6.4.0

Published by bharnden over 4 years ago

Enhancements

  • updates to core-route-monitor, allow specific session, configurable settings, and properly
    listen on all interfaces
  • install.sh now has a "-r" option to help with reinstalling from current branch and installing
    current python dependencies
  • #202 - enable OSPFv2 fast convergence
  • #178 - added comments to OVS service

Python GUI Enhancements

  • supports drawing multiple links for wireless connections
  • supports differentiating wireless networks with different colored links
  • implemented unlink in node context menu to delete links to other nodes
  • implemented node run tool dialog
  • implemented find node dialog
  • implemented address configuration dialog
  • implemented mac configuration dialog
  • updated link address creation to more closely mimic prior behavior
  • updated configuration to use yaml class based configs
  • implemented auto grid layout for nodes
  • fixed drawn wlan ranges during configuration

Bugfixes

  • no longer writes link option data for WLAN/EMANE links in XML
  • avoid configuring links for WLAN/EMANE link options in XML, due to them being written to XML prior
  • updates to allow building python docs again
  • #431 - peer to peer node uplink link data was not using an enum properly due to code changes
  • #432 - loading XML was not setting EMANE nodes model
  • #435 - loading XML was not maintaining existing session options
  • #448 - fixed issue sorting hooks being saved to XML