MINDFul.jl is a tool to research coordination mechanisms and intent-driven algorithms for multi-domain IP-Optical networks. It combines modern paradigms like Software Defined Networking (SDN) and Intent-Based Networking (IBN) to build a novel flexible architecture, which is appropriate but not limited to decentralized control. It provides a stateful representation of common metro/core network equipment and facilitates event-based simulations with a hackable interface and visualization support.
MINDFul.jl is an effort to provide the scientific networking community with a flexible, easy-to-use tool aimed at state-of-the-art research in the algorithmic control and architecture of multi-domain IP-Optical networks. The tool offers interfaces to integrate novel mechanisms into the package and an easy way to evaluate them with event-based simulations.
The first part of the presentation is dedicated to clearly explaining some necessary networking terms and notions. We will introduce the ideas behind Software-Defined Networking (SDN) and Intent-Based Networking (IBN). We will talk about multi-domain and IP-Optical networks, which are globally used to enable data transfer and constitute the core of today's Internet.
Afterward, we will describe the architecture of MINDFul.jl, and how a network domain can be represented using NestedGraphs.jl. In short, MINDFul.jl leverages the common IBN architecture by positioning the IBN framework on top of the SDN controller. In addition, a novel flexible technique is introduced for handling network intents in decentralized multi-domain scenarios. We will mention some of the interfaces, like how to add a connectivity intent into an IBN framework instance, compile it down to a concrete implementation, and install it in the simulated network.
Later we will demonstrate the package usage and conduct a simple event-based simulation. The event-based simulation will be configured to enable link faults and repairs following an exponential distribution to showcase the influence on the connectivity intents' state. We will develop a simplistic heuristic algorithm, which we will integrate into the simulation. We can retrieve the data using the logs to evaluate the heuristic algorithm. In this stage, we will also show how to produce some visualizations using MINDFulMakie.jl.
We will end the presentation with future directions, plans, and a discussion of how the networking community could benefit from such a tool and the promising role of Julia in this field.
MINDFul.jl source code and documentation can be found in this repository: https://github.com/UniStuttgart-IKR/MINDFul.jl. Some notebook examples can be found here: https://github.com/UniStuttgart-IKR/MINDFulNotebookExamples.jl.