YAML Network Topology Description Language (YNTDL: "Entitle") - buzz66boy/ns3-lxc GitHub Wiki

A major portion of the ns3-lxc project was the work to develop a language that succinctly represents a network topology. This syntax, implemented in the YAML format, can have many applications well beyond the scope of a network simulation.

Potential Applications:

  • Automated network setup/deployment
  • Automated application deployment
  • Network configuration management

The Goal

The topology parser portion will be separated from ns3-lxc and provided as a standalone library. The syntax will be re-worked to facilitate use for other uses.

The Code

ns3-lxc was architected so that the parser was separable. The parser code will be migrated to a single folder structure under the "lib" folder. This folder will then be replicated to another git repository, and the ns3-lxc code modified to use the installed library instead of compiling the source. The parser source will then be removed from ns3-lxc, and the library added as a dependency.

The Syntax

The parser was made to support simulations, and has some simulation-specific syntax (such as the "time" flag). This metadata will need to be handled in a more generic/usable format than hard-coded tags. This may be implemented initially under a "metadata" tag in the yaml file.