Skip to content

Latest commit

 

History

History
81 lines (51 loc) · 3.38 KB

README.md

File metadata and controls

81 lines (51 loc) · 3.38 KB

ExternalProcess: ns-3 module

Tested via ns3-compatibility-action on egiona/ns3-base Docker images

.github/workflows/ns-3.35.yml .github/workflows/ns-3.40.yml .github/workflows/ns-3.41.yml

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 documentation

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.

Citing this work

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.

License

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.