Tested via ns3-compatibility-action on egiona/ns3-base Docker images
This repository contains ExternalProcess, a simple module to facilitate communication with external processes within ns-3 simulations.
Aim & Features
-
Custom program execution as a process parallel to ns-3 simulations
-
Parallel process is started and kept alive until required
-
Support for remote-only processes, i.e. no launcher script needed
-
Bi-directional communication with processes based on TCP sockets
-
Support for server/client role selection for maximum compatibility with side process implementations
-
Multiple parallel processes supported (each with own
ExternalProcess
instance) -
Non-interfering with Unix signals: watchdog thread for process supervision (Thanks @vincenzosu)
Note: This module is currently NOT intended for processes that have to carry out operations asynchronously to the ns-3 simulation. This means that all communications to an external process are blocking.
Installation guidelines and detailed documentation for the latest version is hosted on GitHub Pages.
Documentation for legacy versions is stored as PDF files named docs-<tag>.pdf
in the docs
directory within this repository.
Full changelog can be found at this page.
If you use the module in this repository, please cite this work using any of the following methods:
APA
Giona, E. ns3-ext-process [Computer software]. https://doi.org/10.5281/zenodo.8172121
BibTeX
@software{Giona_ns3-ext-process,
author = {Giona, Emanuele},
doi = {10.5281/zenodo.8172121},
license = {GPL-2.0},
title = {{ns3-ext-process}},
url = {https://github.com/emanuelegiona/ns3-ext-process}
}
Bibliography entries generated using Citation File Format described in the CITATION.cff file.
Copyright (c) 2023 Emanuele Giona (SENSES Lab, Sapienza University of Rome)
This repository is distributed under GPLv2 license.
ns-3 is distributed via its own license and shall not be considered part of this work.