Skip to content
sat edited this page Aug 18, 2026 · 24 revisions

dot2net Wiki

Welcome to the dot2net documentation. dot2net implements topology-driven configuration: you describe the network as a graph (DOT) and configure it with reusable classes and templates (YAML), and dot2net works out the addresses and writes every device's configuration — and the files the emulation platform needs to deploy it.

The pair you write, taken together, is what this documentation calls a topology. See Basic Concepts.

📖 Documentation

Getting Started

  • Upgrading to 0.8.0 - What changes for a topology written for 0.7.x
  • Tutorial - Installation, basic usage, and first steps with dot2net
  • Basic Concepts - Topology-driven configuration principles and architecture

Core Specification

Modules

Writing a topology well

  • Best Practices - How to design a topology, what multi-host asks of it, and what to do when something is wrong

📂 Topologies you can run

The repository ships 20 working topologies, and reading the one nearest to what you want is usually faster than assembling it from the pages above. Each is a pair of input files with the output dot2net should produce for it, checked on every build.

  • topologies/ — 13 networks worth deploying: the FRR topotests, the TiNET examples, and dot2net's own. Start with ospf_simple; ospf_multihost is the one to copy for a lab spanning machines
  • example/ — 7 small topologies, each showing what one piece of the notation does

Each directory's readme says what every topology is for, and which platforms it generates for.

🔧 Developer Documentation

  • Architecture Overview - Packages, the path from DOT to generated files, and the module system's place in it
  • NetworkModel Design - The objects the model is built from, and the interfaces they implement
  • FormatStyle Design - The two-phase formatting that keeps control syntax out of templates
  • Module Development - Writing a module: the interfaces, when each runs, and what a module may say to a topology
  • Development Guide - Building, testing, releasing, and how to contribute

🤝 Community

📚 Academic Publications

dot2net has been published and demonstrated in peer-reviewed academic venues:

IEEE Transactions on Network and Service Management (2025)

"Topology-Driven Configuration of Emulation Networks With Deterministic Templating" Satoru Kobayashi, Ryusei Shiiba, Shinsuke Miwa, Toshiyuki Miyachi, Kensuke Fukuda DOI: 10.1109/TNSM.2025.3582212

CNSM 2023

"dot2net: A Labeled Graph Approach for Template-Based Configuration of Emulation Networks" Satoru Kobayashi, Ryusei Shiiba, Ryosuke Miura, Shinsuke Miwa, Toshiyuki Miyachi, Kensuke Fukuda DOI: 10.23919/CNSM59352.2023.10327865

Citation Information

If you use dot2net in your research, please consider citing our work:

@article{Kobayashi_dot2net2025,
    author={Kobayashi, Satoru and Shiiba, Ryusei and Miwa, Shinsuke and Miyachi, Toshiyuki and Fukuda, Kensuke},
    journal={IEEE Transactions on Network and Service Management},
    title={Topology-Driven Configuration of Emulation Networks With Deterministic Templating},
    volume={22},
    number={5},
    pages={3933-3946},
    year={2025},
    doi={10.1109/TNSM.2025.3582212}
}

@inproceedings{Kobayashi_dot2net2023,
    author={Kobayashi, Satoru and Shiiba, Ryusei and Miura, Ryosuke and Miwa, Shinsuke and Miyachi, Toshiyuki and Fukuda, Kensuke},
    booktitle={19th International Conference on Network and Service Management (CNSM)},
    title={dot2net: A Labeled Graph Approach for Template-Based Configuration of Emulation Networks},
    pages={1-9},
    year={2023},
    doi={10.23919/CNSM59352.2023.10327865}
}

About This Wiki

This wiki documentation has been primarily generated using AI assistance (Claude Code) to provide comprehensive and up-to-date information about dot2net. The content is continuously being updated and improved. If you find missing information or have suggestions, please feel free to contribute!

License

This documentation is part of the dot2net project and is licensed under the Apache License 2.0.

Copyright 2022 Satoru Kobayashi

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Clone this wiki locally