Merge branch 'develop' into coretk-enhance/scaling
This commit is contained in:
commit
83842fe9be
5 changed files with 77 additions and 21 deletions
32
CHANGELOG.md
32
CHANGELOG.md
|
@ -1,3 +1,35 @@
|
||||||
|
## 2020-02-20 CORE 6.1.0
|
||||||
|
* New
|
||||||
|
* config services - these services leverage a proper template engine and have configurable parameters, given enough time may replace existing services
|
||||||
|
* core-imn-to-xml - IMN to XML utility script
|
||||||
|
* replaced internal code for determining ip/mac address with netaddr library
|
||||||
|
* Enhancements
|
||||||
|
* added distributed package for built packages
|
||||||
|
* made use of python type hinting for functions and their return values
|
||||||
|
* updated Quagga zebra service to remove deprecated warning
|
||||||
|
* Removed
|
||||||
|
* removed stale ns3 code
|
||||||
|
* CORETK GUI
|
||||||
|
* added logging
|
||||||
|
* improved error dialog
|
||||||
|
* properly use global ipv6 addresses for nodes
|
||||||
|
* disable proxy usage by default, flag available to enable
|
||||||
|
* gRPC API
|
||||||
|
* add_link - now returns created interface information
|
||||||
|
* set_node_service - can now set files and directories to properly replicate previous usage
|
||||||
|
* get_emane_event_channel - return information related to the currently used emane event channel
|
||||||
|
* Bugfixes
|
||||||
|
* fixed session SDT functionality back to working order, due to python3 changes
|
||||||
|
* avoid shutting down services for nodes that are not up
|
||||||
|
* EMANE bypass model options will now display properly in GUIs
|
||||||
|
* XML scenarios will now properly read in custom node icons
|
||||||
|
* \#372 - fixed mobility waypoint comparisons
|
||||||
|
* \#370 - fixed radvd service
|
||||||
|
* \#368 - updated frr services to properly start staticd when needed
|
||||||
|
* \#358 - fixed systemd service install path
|
||||||
|
* \#350 - fixed frr babel wireless configuration
|
||||||
|
* \#354 - updated frr to reset interfaces to properly take configurations
|
||||||
|
|
||||||
## 2020-01-01 CORE 6.0.0
|
## 2020-01-01 CORE 6.0.0
|
||||||
* New
|
* New
|
||||||
* beta release of the python based tk GUI, use **coretk-gui** to try it out, plan will be to eventually sunset the old GUI once this is good enough
|
* beta release of the python based tk GUI, use **coretk-gui** to try it out, plan will be to eventually sunset the old GUI once this is good enough
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
# Process this file with autoconf to produce a configure script.
|
# Process this file with autoconf to produce a configure script.
|
||||||
|
|
||||||
# this defines the CORE version number, must be static for AC_INIT
|
# this defines the CORE version number, must be static for AC_INIT
|
||||||
AC_INIT(core, 6.0.0)
|
AC_INIT(core, 6.1.0)
|
||||||
|
|
||||||
# autoconf and automake initialization
|
# autoconf and automake initialization
|
||||||
AC_CONFIG_SRCDIR([netns/version.h.in])
|
AC_CONFIG_SRCDIR([netns/version.h.in])
|
||||||
|
|
|
@ -74,6 +74,9 @@ bootfrr()
|
||||||
fi
|
fi
|
||||||
|
|
||||||
bootdaemon "zebra"
|
bootdaemon "zebra"
|
||||||
|
if grep -q "^ip route " $FRR_CONF; then
|
||||||
|
bootdaemon "staticd"
|
||||||
|
fi
|
||||||
for r in rip ripng ospf6 ospf bgp babel; do
|
for r in rip ripng ospf6 ospf bgp babel; do
|
||||||
if grep -q "^router \\<$${}{r}\\>" $FRR_CONF; then
|
if grep -q "^router \\<$${}{r}\\>" $FRR_CONF; then
|
||||||
bootdaemon "$${}{r}d"
|
bootdaemon "$${}{r}d"
|
||||||
|
@ -93,3 +96,10 @@ if [ "$1" != "zebra" ]; then
|
||||||
fi
|
fi
|
||||||
confcheck
|
confcheck
|
||||||
bootfrr
|
bootfrr
|
||||||
|
|
||||||
|
# reset interfaces
|
||||||
|
% for ifc, _, _ , _ in interfaces:
|
||||||
|
ip link set dev ${ifc.name} down
|
||||||
|
sleep 1
|
||||||
|
ip link set dev ${ifc.name} up
|
||||||
|
% endfor
|
||||||
|
|
|
@ -291,10 +291,7 @@ class BasicRangeModel(WirelessModel):
|
||||||
label="transmission delay (usec)",
|
label="transmission delay (usec)",
|
||||||
),
|
),
|
||||||
Configuration(
|
Configuration(
|
||||||
_id="error",
|
_id="error", _type=ConfigDataTypes.STRING, default="0", label="loss (%)"
|
||||||
_type=ConfigDataTypes.STRING,
|
|
||||||
default="0",
|
|
||||||
label="error rate (%)",
|
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -573,10 +570,10 @@ class WayPoint:
|
||||||
return not self == other
|
return not self == other
|
||||||
|
|
||||||
def __lt__(self, other: "WayPoint") -> bool:
|
def __lt__(self, other: "WayPoint") -> bool:
|
||||||
result = self.time < other.time
|
if self.time == other.time:
|
||||||
if result:
|
return self.nodenum < other.nodenum
|
||||||
result = self.nodenum < other.nodenum
|
else:
|
||||||
return result
|
return self.time < other.time
|
||||||
|
|
||||||
|
|
||||||
class WayPointMobility(WirelessModel):
|
class WayPointMobility(WirelessModel):
|
||||||
|
|
17
daemon/tests/test_mobility.py
Normal file
17
daemon/tests/test_mobility.py
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
from core.location.mobility import WayPoint
|
||||||
|
|
||||||
|
|
||||||
|
class TestMobility:
|
||||||
|
@pytest.mark.parametrize(
|
||||||
|
"wp1, wp2, expected",
|
||||||
|
[
|
||||||
|
(WayPoint(10.0, 1, [0, 0], 1.0), WayPoint(1.0, 2, [0, 0], 1.0), False),
|
||||||
|
(WayPoint(1.0, 1, [0, 0], 1.0), WayPoint(10.0, 2, [0, 0], 1.0), True),
|
||||||
|
(WayPoint(1.0, 1, [0, 0], 1.0), WayPoint(1.0, 2, [0, 0], 1.0), True),
|
||||||
|
(WayPoint(1.0, 2, [0, 0], 1.0), WayPoint(1.0, 1, [0, 0], 1.0), False),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
def test_waypoint_lessthan(self, wp1, wp2, expected):
|
||||||
|
assert (wp1 < wp2) == expected
|
Loading…
Reference in a new issue