## 6 IoT Leveraging SDN
SDN provides data agility, flexibility, and mobility handling, whereas distributed data service is used to manage big data. The proposed approach is needed in  
Figure 3: Conceptual IoT Architecture based on Intelligent SDN with Machine learning module. IoT as its applications and services depend upon the collection and analysis of sensing data. The architecture addresses three domains: M2M, networks, and application domains of IoT. In [192], a software-defined infrastructure (SDI) manager-based approach is proposed. SDI Manager consists of cloud computing controllers such as OpenStack and network controllers such as FlowVisor. Cloud computing controller performs user-level management of computing resources. Network controller performs network-level management such as network resource management and collection of topology information of the network. The network controller also interacts with openvswitches for the configuration of the data plane's forwarding tables. Heterogeneity is addressed using the network operating system (NOS) to allow the deployment of different applications on a set of devices of different networks. In paper [193], an operating system has been developed based on ONOS SDN controller for IoT systems to support SDN-WISE. SDN-WISE is a protocol for extending the capabilities of SDN for wireless sensor networks. In paper [194], the issue of heterogeneity in the IoT environment is addressed and solved using a multi-SDN environment. The proposed approach consists of an IoT controller which communicates with the IoT devices. IoT controller handles communication requests and estimates forwarding rules. The proposed approach has some limitations, such as scalability, heterogeneity of identity schemes, routing protocols, and IoT agents' integration. In paper [195], management, security, and scalability relevant issues of IoT are addressed and solved using a layered architecture. The physical layer consists of IoT devices, and the middleware or control layer consists of software-defined blocks. Software-defined blocks include blocks for security, storage, IoT controller, and software-defined controller. Data collectors process the data received from an IoT gateway, where a software-defined security block authenticates and flags the data as positive and negative. IoT controller block computes forwarding rules, and forwarding rules are forwarded to software-defined controller block. Software-defined controller downloads the data into the network switches. SDN-based WoT architecture has limitations of security, data management, and things in web technologies [196]. SDN layer on top of WoT resources provides security and management of devices. SDN-based WoT architecture comprises three layers, the access layer, control layer, and the application layer. The access layer provides WOT gateways to the things, the control layer provides control functions and manages the resources database, and the application layer provides application-level management. The need for Universal customer premises equipment (uCPE) based edge gateway is increasing to facilitate various SDN/NFV functions. These functions include sensing data aggregation, policy management, data storage, protocol translation, and cloud-specific functions. To make easier flow data between SBI and NBI, MQTT protocol is deployed. Bluetooth and ZigBee modules were adapted to setup the uCPE [197; 198]. Softwareized WiFi networks require dedicated softwares for wireless functionalities realization, which is not fully flexible and causes management complexities. In, the authors proposed Po-Fi, highly flexible architecture for SDWSN based on Protocol-Oblivious Forwarding (POF) for WiFi-based innovations. Po-Fi abstract WiFi Access point as a programmable forwarding pipeline based on SDN consensus [199]. The data traffic collected at the Macro Base Station (MBS) increases due to the wide usage of mobile phones. The MBS cannot manage all user's requirements, and to get the expected services, some users are offloaded to the nearby small cells [200].