viate these drawbacks, a distributed architecture with several SDN controller nodes has been proposed as an alternative to the centralized SDN controller architecture [107]. However, a distributed SDN poses design and implementation complexities. Therefore, the OpenFlow protocol has addressed these drawbacks by supporting multiple controller architecture [111]. In large networks where multiple controllers are deployed, an east-west communication interface is mandated to share network information between the several SDN controllers and to coordinate their decision- making processes [107]. The SDN concept can also be represented by three abstraction layers, i.e., forwarding, distribution, and specifications layers [107]. The forwarding layer hides the details of the underlying hardware and permits the business application to design a dedicated forwarding model. On the other hand, the distribution abstraction has two main functions: (1) configure the control commands on the forwarding devices and (2) collect a status information, e.g., network devices and links, from the forwarding layer [107]. Meanwhile, the specifications layer permits the business application to design a dedicated network framework that represents a simplified model of the real implementation [107]. 1.4.1.2 Research Works on SDN In order to guarantee an efficient and reliable communication in the dynamic and heterogeneous 5G RAN, various challenges have been raised regarding the implementation of routing and discovery protocols. Table 1.5 presents several algorithms and protocols that were proposed, in the literature, to tackle the various SDN challenges on topology discovery, failover duration, load balancing, controller placement, and security. OpenFlow is the most popular SDN protocol that defines a standard API to separate logically the controller and the network devices. It offers an API between the SDN controller and the network devices to communicate over TCP/IP stack for any network topology [111]. Similar protocols that can be considered