# A Comprehensive Survey of In-Band Control in SDN: Challenges and Opportunities
## 4 A Survey of In-Band SDN Control in SDN
### Automatic Routing  
To start, we describe the different articles found in the literature that propose designs for automatic routing in in-band control in SDN. Although the majority of surveyed works provide a routing approach, some of them only focused on routing (and failure recovery in some cases). Those are the ones classified in this initial section. To provide a quick overview, Table 2 summarises them all. Afterwards, we individually examine each work. **[PERSON]** et al. [44] present the basic ideas for the design of in-band control in OpenFlow networks. They analyse the extent to which diverse SDN switches could support this type of control and implement a prototype with NOX and TrafficLab1.3 (currently known as BOFUSS [51]), tested with diverse topologies. Additionally, they examine how failure recovery is a cornerstone in this type of control, presenting the restoration and protection methods to implement it. This article is particularly relevant in the field, as it defined the foundations for automatic and resilient bootstrapping for in-band control in SDN. **[PERSON]** et al. [61] present the Intermediate System to Controller (ICS) protocol, focused on resilient connectivity, while keeping protocol overhead low, for in-band control in SDN. The design relies on the fact that communication only occurs between the controller and the rest of nodes--not among all pairs of nodes. Considering this aspect, they design a labelled spanning tree and its behavior when a single link failure occurs. However, it requires some convergence time and multiple failures are not considered. **[PERSON]** et al. [62] formulate an algorithm for automatic in-band control routing which is resilient to multiple failures. However, it requires the assignment of a unique label to every switch. This becomes quite complex when multiple failures occurs because loops should be avoided without a global knowledge of paths. Moreover, no reference implementation with a SDN controller is provided. [PERSON] et al. [63] focus on the in-band channel availability and propose the use of MultiPath TCP (MPTCP) instead of simply Transmission Control Protocol (TCP). High availability is achieved using as many disjoint paths to a switch as possible by selecting a set of adjacent switches to the controller. The search of this adjacent switches might be time consuming, so they only propose and evaluate two simple heuristic algorithms. [PERSON] et al. [64] design an in-band OpenFlow channel through MPTCP which leverages the multiple paths for enhanced resilience. However, it requires an out-of-band channel for the initial setup. [PERSON] et al. [65] propose a control path routing approach that selects two node-disjoint control paths for every switch in the network. In that way, a malicious node can be detected based on the normal packet-in messages sent on the control paths. Then, the controller can send explicit test flows to determine and isolate the malicious switch. They derive an optimization formula to provide a routing solution that minimises the average number of intermediate nodes while satisfying the malicious switch detection and resilience constraints. They demonstrate the effectiveness of the proposed approach through numerical analysis. Their results show that the proposed approach enables faster malicious switch detection with less control overhead compared to a previous approach. However, the solution does not scale for large networks due to the high number of decision variables. [PERSON] et al. [66] define a dynamic control plane architecture to redistribute and scale controller load and re-route in-band control traffic using control flow tables depending on underlying the network topology and the requirements of the applications running on top. They test their dynamic paradigm on a virtualised network with an arbitrary number of controllers (running a modified version of POX) and OVS switches in hybrid ring-tree and balanced binary tree topologies.