# A Comprehensive Survey of In-Band Control in SDN: Challenges and Opportunities
## 4 A Survey of In-Band SDN Control in SDN
### Preliminary Survey Overview and Classification
Furthermore, bootstrapping could help to deploy all initial parameters and default setup and this might require topology discovery for it. Although it might seem that routing and topology discovery are both closely related, not all routing proposals might need to obtain the full topology; this is especially true if it is based on tree routing. For example, in Figure 2, all switches have at least one route towards a controller, but link 2-4, 3-6, 4-6, and 6-7 might be completely unknown for the control plane if a topology discovery function is not implemented. It is also important to highlight the most common technologies and tools found in the surveyed works in order to provide an overview of the protocols, controllers, switches and simulation, and emulation tools currently used in in-band SDN environments. First of all, almost all proposals in the D-CPI/SBI use OpenFlow [4] protocol, while some of the most recent ones consider Programming Protocol-independent Packet Processors (P4) [45,46] and/or P4 Runtime [5]. OpenFlow exchanges messages between the controller and its legacy switches to communicate the control and data planes. The controller indicates forwarding or metric rules to the switches by matching header fields. However, the reduced number of predefined OpenFlow rules limits its flexibility. This has led to new solutions such as P4 and P4 Runtime, which create a new programmable data plane paradigm through a universal high-level language. It also replaces control and data plane communication with message exchange using Google Remote Procedure Call (gRPC), providing a fast and flexible communication interface. In the case of SDN controllers, the most commonly leveraged ones are Open Network Operating System (ONOS) [47], OpenDaylight (ODL) [48], Ryu [49], and Floodlight, among others [1]. ONOS and ODL are high-performance controllers used in real-world deployments, while Ryu and Floodlight are simpler and intended for prototyping or low-performance use. However, there are also several proposals that simply simulate the behaviour of the controller instead of using a real one. Regarding SDN devices/switches, the most common by far is Open vSwitch (OVS) [50]; however, Basic OpenFlow Userspace Software Switch (BOFUSS) [51] is also used in a few works. The target, Behavioral Model version 2 (BMv2) [52], is also used, particularly when P4 is considered. In most cases, these switches were deployed using the Mininet [53] emulation platform. As for simulated environments, OMNeT++ [54; 55] was predominant, followed by ns-3 [56; 57]; many others exist as well [58]. Finally, for the evaluation, diverse types of topologies have been considered, including simple linear, star or mesh networks, data center networks like fat tree or Clos, or other modeled networks (adjusted by a set of parameters) like Waxman [59] or Barabasi-Albert [60]. According to this preliminary study, we have organised all works in four main subsections, and for each of them, all surveyed items have been summarised in a table. This table contains the year the article was published, its key features, evaluation tools, if its code is publicly available, and an overall contribution based on three stars. The contribution was qualitatively assigned based on all previous characteristics together with its impact in number of citations.