# A Microservices-Based Control Plane for Time-Sensitive Networking
## 3 \(\mu\)TSN-CP Architecture
### Southconf Microservice  
The following microservice in the pipeline of the stream is the Southconf microservice, which processes the information containing the schedule and network configuration coming from the ILP Calculator. Figure 7 depicts the general interaction between the modules of the microservice and other microservices. As in the previous cases, we use RabbitMQ to receive information from the ILP Calculator microservice. Once the JSON information is received and parsed, it is sent to the TAS configurator module, which creates the JSON payload containing the configuration to be sent through RESTCONF to the Opendaylight container.  
Specifically, the TAS configurator module uses the _ieee802-dot1q-sched_ YANG module [29]. This module defines all of the parameters for the TSN switches' settings; we mapped each one to an output of the previous microservices. Normally, the module defines the configuration of a single TSN device. However, the SDN Controller provides an inventory system for storing the network information and YANG capabilities of all the devices managed in the SDN Controller domain; this leads to centralizing the configuration of all the elements into a single configuration payload sent by RESTCONF. The SDN Controller will parse this unified payload and will generate NETCONF sessions in each device covered  
\begin{table}
\begin{tabular}{p{56.9 pt} p{113.8 pt} p{113.8 pt}} \hline
**Solver Name** & **License Type** & **Description** \\ \hline \multirow{3}{*}{AMPL} & Free reduced version, & Focus on maintainability, integrates a common language for analysis and debugging [24] \\ \hline \multirow{3}{*}{Pico} & Open source, available in pip & Allows to enter an optimization problem as a high-level model, with painless support for vector and matrix variables and multidimensional algebra [25] \\ \hline \multirow{3}{*}{CBC} & \multirow{3}{*}{Open source} & An open-source mixed-integer program (MIP) solver written in C++. CBC is intended to be used primarily as a callable library to create customized branch-and-cut solvers [26] \\ \hline \multirow{3}{*}{GLPK} & \multirow{3}{*}{Open source} & It is a set of routines written in ANSI C and organized in the form of a callable library. Is intended for solving large-scale Linear Programming (LP) and mixed-integer programming (MIP) [27] \\ \hline \multirow{3}{*}{Gurobi} & Student license Pay license & According to their website, Gurobi claims to be the fastest and most powerful mathematical programming solver available for your linear problems [28] \\ \hline \end{tabular}
\end{table}
Table 1: ILP solvers considered in this work.  
Figure 7: Overview of the Southconf microservice.  
in the configuration to set its YANG model. If the controller was not implemented in the architecture, the system would need to generate a NETCONF payload for each device in the network to be managed by the CNC, which would be harder to implement, maintain, and monitor, since NETCONF goes through SSH and not over HTTP, as RESTCONF does.  
Lastly, we included a Web server that prompts the scheduler and network configuration as depicted in figures of Section 4.1.