## 1 Introduction  
The number of connected devices to the internet is sharply increasing. It is predicted that the number of Internet of Things (IoT) devices worldwide will increase from around 8.74 billion in 2020 to more than 25.4 billion IoT devices in 2030 [1]. These devices will transform today's IoT into massive IoT of the future. It is also predicted with the massive IoT, we will be faced with a very high density network (i.e., up to around \(1\) million devices per square kilometer), where a large number of tasks (services) should be performed and a huge amount of data should be stored and analyzed [2]. As a result, future massive IoT will require high communication and computing capacity to meet the various demands of highly connected devices. A few years ago, traditional cloud computing, including one or a few large data centers (DCs), was considered to be a promising computing model to store and process a huge volume of data and offer many reliable and mission critical services with strict delay constraints to users. As these centralized DCs are usually far away from end users and cannot provide ultra-low latency and high bandwidth connectivity, they are not suitable for supporting the emerging applications related to future massive IoT [3]. In addition, many real-time requirements of edge devices with mobility, such as location awareness, are not met by traditional cloud computing. To overcome all of these technological challenges, Cisco introduced fog computing in 2012. With fog computing, Cisco extended the traditional cloud computing technology paradigm to the edge of the network [4, 5]. In other words, fog computing extends cloud services to the edge of networks to reduce latency through the geographical distribution of IoT application components, and provides support for device mobility [6]. In order to make fog computing (i.e., fog nodes) more intelligent, analytic, and efficient, software-defined networking (SDN), an important network technology, can be integrated with fog [5]. On the other hand, 5G and beyond (i.e., 6G) has been considered to be another key enabler for massive IoT and related applications [7]. In essence, 5G implies rethinking from scratch, due to the abrupt transition concerning new use cases and challenging demands, compared to previous generations. The one-network-fits-all model based on slicing must answer to these demanding and ambitious objectives. Therefore, 5G is conceived to support very extreme and demanding use cases, such as enhanced mobile broadband (eMBB), ultra reliable low latency communications (URLLC), and massive machine type communications (mMTC), not only demanding a data rate of gigabits per second, but also ubiquitous connectivity. Moving to 6G networks, they take for granted an AI-empowered vision (for example, see [8]) to support emerging applications with a data rate of up to terabits per second, such as augmented reality, virtual reality, autonomous and connected drones and vehicles, internet of robots, haptic communications and intelligent and automated machines. Figure 1 shows three key infrastructure enablers to support such types of future applications (i.e., future generation cellular technologies, cloud-related technologies, and computer network with softwarization). Some enablers, in addition to enabling applications, are considered to be key enablers for other enablers (i.e., reflexive enablers). For example, while cloud computing is considered to be a key enabler for 5G/6G through its underlying technologies, such as Cloud-RAN, cloud computing also needs high-speed 5G/6G networks to offer services with higher quality to its users. The contributions of this work are summarized as follows:  
* This paper introduces some of the key enabling technologies for future applications, such as massive IoT. * It sets out the potential opportunities of these enabling technologies to support future applications, focusing on SDN for cloud-fog systems to support 5G and beyond-enabled applications.