Skip to content

Commit 5ab7137

Browse files
authored
Merge pull request #712 from coreemu/develop
merge develop for 9.0.0 release
2 parents 1841fb1 + 50bc434 commit 5ab7137

File tree

386 files changed

+6414
-53738
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

386 files changed

+6414
-53738
lines changed

.github/workflows/daemon-checks.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ on: [push]
44

55
jobs:
66
build:
7-
runs-on: ubuntu-18.04
7+
runs-on: ubuntu-22.04
88
steps:
99
- uses: actions/checkout@v1
10-
- name: Set up Python 3.6
10+
- name: Set up Python 3.9
1111
uses: actions/setup-python@v1
1212
with:
13-
python-version: 3.6
13+
python-version: 3.9
1414
- name: install poetry
1515
run: |
1616
python -m pip install --upgrade pip

.gitignore

+4
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ config.h.in
1414
config.log
1515
config.status
1616
configure
17+
configure~
1718
debian
1819
stamp-h1
1920

@@ -58,3 +59,6 @@ daemon/setup.py
5859

5960
# python
6061
__pycache__
62+
63+
# ignore core player files
64+
*.core

CHANGELOG.md

+43
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,46 @@
1+
## 2022-11-18 CORE 9.0.0
2+
3+
* Breaking Changes
4+
* removed session nodes file
5+
* removed session state file
6+
* emane now runs in one process per nem with unique control ports
7+
* grpc client has been refactored and updated
8+
* removed tcl/legacy gui, imn file support and the tlv api
9+
* link configuration is now different, but consistent, for wired links
10+
* Installation
11+
* added packaging for single file distribution
12+
* python3.9 is now the minimum required version
13+
* updated Dockerfile examples
14+
* updated various python dependencies
15+
* virtual environment is now installed to /opt/core/venv
16+
* Documentation
17+
* updated emane invoke task examples
18+
* revamped install documentation
19+
* added wireless node notes
20+
* core-gui
21+
* updated config services to display rendered templated and allow editing
22+
* fixed node icon issue when updating preferences
23+
* \#89 - throughput widget now works for hubs/switches
24+
* \#691 - fixed custom nodes to properly use config services
25+
* gRPC API
26+
* add linked call to support linking and unlinking interfaces without destroying them
27+
* fixed issue during start session clearing out session options
28+
* added call to get rendered config service files
29+
* removed get_node_links from links from client
30+
* nem id and nem port have been added to GetNode and AddLink calls
31+
* core-daemon
32+
* wired links always create two veth pairs joined by a bridge
33+
* node interfaces are now configured within the container to apply to outgoing traffic
34+
* session.add_node now uses NodeOptions, allowing for node specific options
35+
* fixed issue with xml reading node canvas values
36+
* removed Session.add_node_file
37+
* fixed get requirements logic
38+
* fixed docker/lxd node support terminal commands on remote servers
39+
* improved docker node command execution time using nsenter
40+
* new wireless node type added to support dynamic loss based on distance
41+
* \#513 - add and deleting distributed links during runtime is now supported
42+
* \#703 - fixed issue not starting emane event listening service
43+
144
## 2022-03-21 CORE 8.2.0
245

346
* core-gui

Dockerfile

-100
This file was deleted.

Makefile.am

+73-14
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,6 @@ if WANT_DOCS
66
DOCS = docs man
77
endif
88

9-
if WANT_GUI
10-
GUI = gui
11-
endif
12-
139
if WANT_DAEMON
1410
DAEMON = daemon
1511
endif
@@ -19,12 +15,13 @@ if WANT_NETNS
1915
endif
2016

2117
# keep docs last due to dependencies on binaries
22-
SUBDIRS = $(GUI) $(DAEMON) $(NETNS) $(DOCS)
18+
SUBDIRS = $(DAEMON) $(NETNS) $(DOCS)
2319

2420
ACLOCAL_AMFLAGS = -I config
2521

2622
# extra files to include with distribution tarball
2723
EXTRA_DIST = bootstrap.sh \
24+
package \
2825
LICENSE \
2926
README.md \
3027
ASSIGNMENT_OF_COPYRIGHT.pdf \
@@ -51,7 +48,7 @@ fpm -s dir -t deb -n core-distributed \
5148
--description "Common Open Research Emulator Distributed Package" \
5249
--url https://github.com/coreemu/core \
5350
--vendor "$(PACKAGE_VENDOR)" \
54-
-p core_distributed_VERSION_ARCH.deb \
51+
-p core-distributed_VERSION_ARCH.deb \
5552
-v $(PACKAGE_VERSION) \
5653
-d "ethtool" \
5754
-d "procps" \
@@ -62,7 +59,8 @@ fpm -s dir -t deb -n core-distributed \
6259
-d "libev4" \
6360
-d "openssh-server" \
6461
-d "xterm" \
65-
-C $(DESTDIR)
62+
netns/vnoded=/usr/bin/ \
63+
netns/vcmd=/usr/bin/
6664
endef
6765

6866
define fpm-distributed-rpm =
@@ -72,7 +70,7 @@ fpm -s dir -t rpm -n core-distributed \
7270
--description "Common Open Research Emulator Distributed Package" \
7371
--url https://github.com/coreemu/core \
7472
--vendor "$(PACKAGE_VENDOR)" \
75-
-p core_distributed_VERSION_ARCH.rpm \
73+
-p core-distributed_VERSION_ARCH.rpm \
7674
-v $(PACKAGE_VERSION) \
7775
-d "ethtool" \
7876
-d "procps-ng" \
@@ -83,12 +81,75 @@ fpm -s dir -t rpm -n core-distributed \
8381
-d "net-tools" \
8482
-d "openssh-server" \
8583
-d "xterm" \
86-
-C $(DESTDIR)
84+
netns/vnoded=/usr/bin/ \
85+
netns/vcmd=/usr/bin/
86+
endef
87+
88+
define fpm-rpm =
89+
fpm -s dir -t rpm -n core \
90+
-m "$(PACKAGE_MAINTAINERS)" \
91+
--license "BSD" \
92+
--description "core vnoded/vcmd and system dependencies" \
93+
--url https://github.com/coreemu/core \
94+
--vendor "$(PACKAGE_VENDOR)" \
95+
-p core_VERSION_ARCH.rpm \
96+
-v $(PACKAGE_VERSION) \
97+
--rpm-init package/core-daemon \
98+
--after-install package/after-install.sh \
99+
--after-remove package/after-remove.sh \
100+
-d "ethtool" \
101+
-d "tk" \
102+
-d "procps-ng" \
103+
-d "bash >= 3.0" \
104+
-d "ebtables" \
105+
-d "iproute" \
106+
-d "libev" \
107+
-d "net-tools" \
108+
-d "nftables" \
109+
netns/vnoded=/usr/bin/ \
110+
netns/vcmd=/usr/bin/ \
111+
package/etc/core.conf=/etc/core/ \
112+
package/etc/logging.conf=/etc/core/ \
113+
package/examples=/opt/core/ \
114+
daemon/dist/core-$(PACKAGE_VERSION)-py3-none-any.whl=/opt/core/
115+
endef
116+
117+
define fpm-deb =
118+
fpm -s dir -t deb -n core \
119+
-m "$(PACKAGE_MAINTAINERS)" \
120+
--license "BSD" \
121+
--description "core vnoded/vcmd and system dependencies" \
122+
--url https://github.com/coreemu/core \
123+
--vendor "$(PACKAGE_VENDOR)" \
124+
-p core_VERSION_ARCH.deb \
125+
-v $(PACKAGE_VERSION) \
126+
--deb-systemd package/core-daemon.service \
127+
--deb-no-default-config-files \
128+
--after-install package/after-install.sh \
129+
--after-remove package/after-remove.sh \
130+
-d "ethtool" \
131+
-d "tk" \
132+
-d "libtk-img" \
133+
-d "procps" \
134+
-d "libc6 >= 2.14" \
135+
-d "bash >= 3.0" \
136+
-d "ebtables" \
137+
-d "iproute2" \
138+
-d "libev4" \
139+
-d "nftables" \
140+
netns/vnoded=/usr/bin/ \
141+
netns/vcmd=/usr/bin/ \
142+
package/etc/core.conf=/etc/core/ \
143+
package/etc/logging.conf=/etc/core/ \
144+
package/examples=/opt/core/ \
145+
daemon/dist/core-$(PACKAGE_VERSION)-py3-none-any.whl=/opt/core/
87146
endef
88147

89-
.PHONY: fpm-distributed
90-
fpm-distributed: clean-local-fpm
91-
$(MAKE) -C netns install DESTDIR=$(DESTDIR)
148+
.PHONY: fpm
149+
fpm: clean-local-fpm
150+
cd daemon && poetry build -f wheel
151+
$(call fpm-deb)
152+
$(call fpm-rpm)
92153
$(call fpm-distributed-deb)
93154
$(call fpm-distributed-rpm)
94155

@@ -115,15 +176,13 @@ $(info creating file $1 from $1.in)
115176
-e 's,[@]CORE_STATE_DIR[@],$(CORE_STATE_DIR),g' \
116177
-e 's,[@]CORE_DATA_DIR[@],$(CORE_DATA_DIR),g' \
117178
-e 's,[@]CORE_CONF_DIR[@],$(CORE_CONF_DIR),g' \
118-
-e 's,[@]CORE_GUI_CONF_DIR[@],$(CORE_GUI_CONF_DIR),g' \
119179
< $1.in > $1
120180
endef
121181

122182
all: change-files
123183

124184
.PHONY: change-files
125185
change-files:
126-
$(call change-files,gui/core-gui-legacy)
127186
$(call change-files,daemon/core/constants.py)
128187
$(call change-files,netns/setup.py)
129188

README.md

+25-6
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,46 @@
11
# CORE
2-
32
CORE: Common Open Research Emulator
43

54
Copyright (c)2005-2022 the Boeing Company.
65

76
See the LICENSE file included in this distribution.
87

98
## About
10-
119
The Common Open Research Emulator (CORE) is a tool for emulating
1210
networks on one or more machines. You can connect these emulated
1311
networks to live networks. CORE consists of a GUI for drawing
1412
topologies of lightweight virtual machines, and Python modules for
1513
scripting network emulation.
1614

1715
## Quick Start
16+
Requires Python 3.9+. More detailed instructions and install options can be found
17+
[here](https://coreemu.github.io/core/install.html).
18+
19+
### Package Install
20+
Grab the latest deb/rpm from [releases](https://github.com/coreemu/core/releases).
21+
22+
This will install vnoded/vcmd, system dependencies, and CORE within a python
23+
virtual environment at `/opt/core/venv`.
24+
```shell
25+
sudo <yum/apt> install -y ./<package>
26+
```
1827

19-
The following should get you up and running on Ubuntu 18+ and CentOS 7+
20-
from a clean install, it will prompt you for sudo password. This would
28+
Then install OSPF MDR from source:
29+
```shell
30+
git clone https://github.com/USNavalResearchLaboratory/ospf-mdr.git
31+
cd ospf-mdr
32+
./bootstrap.sh
33+
./configure --disable-doc --enable-user=root --enable-group=root \
34+
--with-cflags=-ggdb --sysconfdir=/usr/local/etc/quagga --enable-vtysh \
35+
--localstatedir=/var/run/quagga
36+
make -j$(nproc)
37+
sudo make install
38+
```
39+
40+
### Script Install
41+
The following should get you up and running on Ubuntu 22.04. This would
2142
install CORE into a python3 virtual environment and install
2243
[OSPF MDR](https://github.com/USNavalResearchLaboratory/ospf-mdr) from source.
23-
For more detailed installation see [here](https://coreemu.github.io/core/install.html).
2444

2545
```shell
2646
git clone https://github.com/coreemu/core.git
@@ -36,7 +56,6 @@ inv install -p /usr
3656
```
3757

3858
## Documentation & Support
39-
4059
We are leveraging GitHub hosted documentation and Discord for persistent
4160
chat rooms. This allows for more dynamic conversations and the
4261
capability to respond faster. Feel free to join us at the link below.

bootstrap.sh

-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
11
#!/bin/sh
22
#
3-
# (c)2010-2012 the Boeing Company
4-
#
5-
# author: Jeff Ahrenholz <[email protected]>
6-
#
73
# Bootstrap the autoconf system.
84
#
95

0 commit comments

Comments
 (0)