Pydtnsim

Latest version: v0.1.1

Safety actively analyzes 629788 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 2

0.0.5

Added
- Added profiling script to project and integrated that script into CI.

Changed
- Major performance optimizations based on analysis using cProfile,
pyprof2calltree and KCacheGrind.
- Removed `deepcopy` operations for `ContactGraph` object (every
node/destination combination had a own copied object with custom *nominal*
nodes) and switched to shared `ContactGraph` object which has all *nominal*
nodes integrated. Route finding logic prevents the usage of nominal nodes
other than the designated ones in a specific route search.
- The removal/invalidation of edges within the `ContactGraph` object is now
performed by maintaining a list of excluded nodes that is provided to
`cgr_neighbor_function()`. The function then does not provide these excluded
nodes in the returned neighbor list.
- The generation and edge determination of the *nominal* nodes during the
standard graph generation procedure also improves the overall `ContactGraph`
generation performance.
- The test cases of the `ContactGraph` object had to be changed to accommodate
the changes in the graph generation procedure (the integration of the
*nominal* nodes).

Fixed
-

0.0.4

Added
- Auto-detection of submodules for packet installation purposes.
- Chaining of `position` and `desc` variables for `tqdm` in `Simulator`
object.
- Stat function in simulator to allow applications to extract the number of
remaining packets in limbos and contacts and the total packet count.

Changed
- Updated python docker container used for CI to `3.5-stretch`.
- Precompute hashes for Dijkstra search in all three routing approaches and
provide them to to Dijkstra to improve performance.
- Make extensive use of `namedtuples` in all routing approaches: use provided
specific access functionality (namedtuple.<value>) in routing logic instead
of standard tuple access (tuple[x]) for `Routes`, `Neighbors`,
`RouteListEntry`. This greatly improves readability.
- Updated neighbor functions called by Dijkstra in all routing approaches.
- Updated docstrings/documentation in scgr.

Fixed
- Terminate Dijkstra search when shortest route is found. (Was improperly
running until no more (worse) routes were available).
- Ensure correct order of returned routes from Dijkstra search in terms of
second characteristic (hops) and third characteristic (hash of nodes).
- Fixed bug where loops (in terms of nodes, not contacts) were not prevented.
- Separated handling of suppressed nodes and suppressed contacts and fixed
handling logic.

0.0.3

Added
- Stat function in simulator to allow applications to extract the number of
remaining packets in limbos and contacts and the total packet count.

Changed
- The Dijkstra implementation now also adds the hop count to the priority
queue and thus ensures the correct order of route finding both for the
first (EDT) and second (hop count) CGR route selection criterion. This was
not the case before and additional code was required to ensure the order in
terms of the second criterion. Change is not necessary or relevant for
current core CGR implementations (also backward compatible), but is helpful
for additional newly developed routing approaches.

Fixed
- Wrong callback call in MonitorNotifier object (routed instead of injected).
- Fixed order of action and monitoring callback for injecting packets in
SimpleCGRNode object.

0.0.2

Added
- Added packet generator base class to remove code redundancy. Adapted the two
existing packet generators to be based on that base class.
- Convenience imports in multiple `__init__.py` files to make imports shorter.

Changed
- Use namedTuples instead of anonymous tuples in the routing context to improve
readability.

Fixed
- Fixed integration and behaviour of continous packet generator.
- Comparison source destination node comparison bug in Dijkstra implementation.
- Removed various statements that were not complying with the EAFP paradigm of
Python.
- Removed statements that were type-checking things and thus contradicting the
duct-typing paradigm of Python.
- Fixed various Docstring issues (i.e. moved class attributes from init
function to class Docstring)

0.0.1

Added
- Initial release.
- Added simulation environment.
- Added three routing algorithms (CGR basic, CGR with anchorin, SCGR).
- Added continous and batch packet generators.
- Added simple cgr-based node implementation.
- Added example file.
- Added unit tests.
- Added determinism and equivalence check for routing approaches.

Page 2 of 2

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.