Next Article in Journal
A Novel Hybrid Model Combining LMD, MSCA, and SCINet for Electricity Forecasting
Previous Article in Journal
Two-Degree-of-Freedom Proportional Integral Controllers for Stability Enhancement of Power Electronic Converters in Weak Grids: Inverter and Rectifier Operating Modes
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

On the Use of Containers for LoRaWAN Node Virtualization: Practice and Performance Evaluation

Department of Information Engineering, University of Brescia, 25123 Brescia, Italy
*
Authors to whom correspondence should be addressed.
Electronics 2025, 14(8), 1568; https://doi.org/10.3390/electronics14081568
Submission received: 21 February 2025 / Revised: 4 April 2025 / Accepted: 10 April 2025 / Published: 12 April 2025

Abstract

:
This paper investigates the virtualization of LoRaWAN end nodes through Linux containers (LXCs) to improve scalability, flexibility, and resource management. By leveraging lightweight Docker-based virtualization, we break down the core functions of the LoRaWAN node, comprising the application, LoRaWAN, and LoRa layers, into modular containers. In this work, a fully virtualized end node is demonstrated. The obtainable performance is not only compared against the standard approach that leverages a LoRaWAN-compliant module but also against an emulated solution that mimics the desired functionalities purely in software. A controlled, uniform testbed, exploiting the capability of a virtual machine hypervisor to change the way the underlying hardware is abstracted to guest environments, is considered. Key metrics, including resource utilization and latency, are explicitly defined and evaluated. The results underscore the potential of container technologies to transform the deployment and management of communication solutions targeting Internet-of-Things (IoT) scenarios not only for the infrastructure but also for end devices, with implications for future advancements in wireless network virtualization.

1. Introduction

In recent years, wired networks have evolved to offer higher and higher flexibility, largely due to the shift from dedicated hardware solutions to software-driven functionalities. This trend has enhanced network performance and scalability, enabling network services to be provisioned, scaled, and optimized with remarkable efficiency. In the past, when dedicated hardware was used for implementing specific network functionalities, the update of an already deployed infrastructure required the introduction of new equipment. Supporting novel user application scenarios and/or protocols, which require disruptive network changes, resulted in a communication infrastructure redesign to comply with the new (standard) specifications. Software-Defined Networking (SDN) and Network Function Virtualization (NFV) technologies, just to mention a few, have played pivotal roles in this transformation by introducing programmability, flexibility, and cost-efficiency into the network infrastructure, for enabling the dynamic reconfiguration of available resources to meet diverse and changing demands [1].
Softwarization and virtualization of networks [2,3] have recently extended into the wireless domain, when challenges such as the efficient use of spectrum and the need for low-latency, high-throughput communication are prominent [4]. The integration of the previously mentioned SDN and NFV solutions into wireless networks has opened new possibilities for flexible network and traffic management. Among the many advancements, the Software-Defined Radio (SDR) concept has gained attention for its ability to virtualize radio functions, enabling real-time changes in radio access technology without requiring hardware modifications. In turn, these approaches permitted the so-called network disaggregation, which can be split into (i) vertical disaggregation, when the software part is decoupled from the hardware part, allowing multiple combinations to be used, and (ii) horizontal disaggregation, when network functionalities are implemented using more granular elements interconnected by explicitly designed interfaces. Such an approach is a fundamental pillar of the latest mobile communication generation, minimizing both the capital expenditure (CAPEX) in deploying new architectures and the operating expenditure (OPEX) related to the upgrade of network functionalities, which in turn results in higher revenues for operators and service providers.
However, despite leveraging different business models, IoT-like applications also demand efficient and scalable network solutions. In particular, Low-Power Wide-Area Networks (LPWANs) emerged as viable solutions that trade off coverage and battery lifetime against data rate and latency. LoRaWAN, based on the LoRa physical layer, merges these requirements with simple infrastructure devices (the gateways) and an innovative backend, where most of the infrastructure complexity is concentrated. Such a combination makes LoRaWAN ideal for a range of IoT applications, as confirmed by its wide adoption in both academia and industry. However, as the LoRaWAN ecosystem evolves, there is a growing demand for more dynamic and reconfigurable network solutions to accommodate the diverse requirements of connected devices. Traditional LoRaWAN architectures, characterized by their monolithic and hardware-dependent setups, are ripe for innovation through the application of software-centric approaches. As regards connectivity to the backend, it must be highlighted that the gateway is a relatively dumb and transparent device that is only in charge of en/decapsulating the user payload in/from a LoRa frame; i.e., it is a simple hardware component dependent on the backend software. On the other hand, virtualizing the entire functionality of the LoRaWAN end nodes could offer a promising solution that allows modular, scalable, and flexible deployment of LoRaWAN applications.
By integrating concepts from the literature and our previous research [5,6], this paper delves into the application of Linux container (LXC) [7] technology, specifically leveraging Docker lightweight virtualization, to disaggregate the LoRaWAN end node stacks into more manageable and dynamic components. Once LoRaWAN end-node functionalities are encapsulated within containers, the use of SDR allows for the complete virtualization of all the stack layers, significantly enhancing the deployment, scalability, and management of the overall application. However, despite the feasibility of this strategy having been somehow already demonstrated, a comprehensive characterization is still missing.
This work provides an answer to this research question. The novel and original contributions are as follows:
  • The full virtualization of a LoRaWAN end node, across all the stack layers, is proposed based on the use of LXCs and a low-cost SDR device;
  • A uniform environment for performance evaluation is described, leveraging virtualization of the underlying physical device to easily change memory and computational resource availability;
  • Multiple scenarios, based on different implementations of the same network functionality, are described and realized in real-world experiments to carry out rigorous testing and measuring and comparing key performance indicators such as latency and system resource utilization;
  • Analysis of the obtained results and insights about the benefits and challenges of the proposed architecture is carried out.
This paper is arranged as follows: First of all, in Section 2, the relevant literature about the topics of interest is addressed. In Section 3, the proposed approach is briefly described. In Section 4, some characteristics of the LoRaWAN technology are discussed. In Section 5, some key aspects of Docker virtualization technologies are explored. In Section 6, the experimental setup is detailed. In Section 7 and Section 8, the obtained results are discussed. For the sake of completeness, the target applications of the proposed approach, considering the obtained results, are listed in Section 9. Finally, some conclusions are drawn.

2. Related Works

In recent developments within IoT architectures, the integration of SDN and containerization technologies like Docker has shown promising results for improving network management and efficiency. As outlined in [8], SDN decouples networking control and data planes, providing a flexible management layer that enhances IoT operations. Concurrently, Docker enables portable, scalable application deployment across diverse IoT devices, streamlining network operations and facilitating rapid service deployment. This dual approach advances the scalability and flexibility required in heterogeneous IoT environments. The performance of virtual machines (VMs), containers, and containers on top of virtual machines is discussed in terms of CPU, memory, disk, and network key performance in [9], where it is reported that Docker containers on KVM-based systems are an optimal choice in terms of CPU usage.
Lightweight virtualization via Docker containers has demonstrated flexibility and efficiency and attracted attention from academics about its vast ecosystem and possible security issues, as in [10,11].
In the context of SDR for wireless networks, the potential to enhance flexibility and resource utilization is significant. In [12], the authors provide an overview of the network reconfigurability enabled by softwarization and virtualization in wireless domains. They discuss how technologies like NFV and SDN have been adapted for wireless communications, offering insights into their benefits for improved management and efficiency in network operations.
In the field of IoT communication, the utilization of SDR and LXC for the virtualization of network functionalities presents a transformative approach, which leverages container-based architectures to enhance the flexibility and scalability of network operations, allowing for the dynamic adaptation of network behaviors in real-time environments. The adoption of Docker containers facilitates the deployment and management of these network functions, simplifying the integration and scaling of LoRaWAN infrastructures across diverse application scenarios. Similar approaches are discussed in [13,14,15].
As regards virtualization techniques for Radio Access Networks (RANs), the use of both VMs and Docker containers has garnered considerable attention. Paper [16] provides a comprehensive comparison between these two approaches in the deployment of SDR functions. Their evaluation demonstrates Docker’s advantages in terms of reduced overhead, lower latency, and faster deployment times—supporting the ongoing shift toward more agile and efficient containerized network architectures.
In the domain of container migration and virtualization for wireless networks, [17] proposes a novel approach for the live migration of containerized Baseband Units (BBUs) in Cloud-RANs, focusing on ensuring network continuity, particularly in LoRaWAN and LTE networks. This work highlights the use of containerization technologies such as Docker, which enables the migration of BBUs with minimal downtime, thus preserving network stability and optimizing resource usage. Similarly, the study [18] explores the impact of Docker container virtualization on wireless mesh networks (WMNs) using SDN. Their study demonstrates how Docker containers can replace traditional, costly networking devices, optimizing WMNs by reducing operational and capital expenditures. By integrating SDN controllers like POX and Ryu, this work improves routing protocol redistribution, enhancing packet transfer, reducing latency, and improving overall network performance. Additionally, similar methodologies are explored in [19,20,21].
Particularly relevant to our study, paper [22] proposes a container-based architecture to virtualize LoRaWAN end nodes, integrating seamlessly with IP-based networks. Their architecture employs the Constrained Application Protocol (CoAP) to ensure lightweight communications, offering transparent integration with private and public LoRaWAN networks and enabling routing among end nodes, overcoming LoRaWAN’s inherent lack of IP compliance and inter-node communication. Their performance evaluations confirmed the effectiveness of deploying multiple CoAP servers per container, especially for constrained IoT devices such as Raspberry Pi. However, it must be noted that this document does not describe the entire softwarization of the end device.
Indeed, the latter concept emerged with the recent activities of some of the authors of the present work. The paper [23] discusses the potential of lightweight virtualization technologies, especially containerization, for end-to-end LoRaWAN network emulation; it highlights how containerizing both the node functionalities and backend services enables scalable and flexible deployments, facilitating realistic emulation of LoRaWAN networks with minimal hardware. As described in the germinal work [5], the integration of Docker-based microservices within the LoRaWAN architecture not only enhances operational agility but also promotes robust, scalable configurations for diverse IoT applications. This approach underpins the notion of disaggregation and decomposition of traditional hardware-centric LoRaWAN nodes, facilitating a transition to a more versatile and dynamic network infrastructure. A fully virtualized LoRaWAN end device is preliminarily discussed in [6], where the LoRa modulation is managed by a MATLAB (version R2023b) model streaming baseband samples towards/from an SDR.
In this work, the authors try to answer the open research questions about the resource requirements and scalability of full LoRaWAN node virtualization, by means of a comprehensive evaluation carried out using an explicitly designed experimental setup. In particular, the importance of an efficient implementation of software components is underlined by comparing the LoRa modulation implemented by a MATLAB-based model against a C-based one; the need for computational, storage, and communication resources is estimated in a controlled environment deploying containers within a virtual machine and changing the number of virtual processors and the memory amount accordingly. The obtainable performance for different configurations is evaluated by means of properly defined, time-related figures of merit.

3. The Proposed Approach

This paper focuses on evaluating the performance of a regular end device against a fully decomposed functionalities node. Starting from Figure 1, various disaggregation and decomposition strategies are detailed, showcasing how functionalities within end devices are segmented and containerized in different implementation scenarios. Each scenario uniquely handles the relevant stack layers, namely (a) the end-user application, (b) the LoRaWAN stack (including the management of the initial binding procedure and the payload (de)ciphering), and (c) the LoRa physical layer, utilizing either software virtualization or dedicated hardware. For the sake of clarity, a summary of the different scenarios is provided in Table 1; further details are presented in Section 4.
More specifically, based on the previous activities described in [5,6,23], the considered scenarios are as follows:
  • Standard: This is the reference scenario, representing a typical implementation of a LoRaWAN end node, leveraging a commercially available module. In this architecture, a clear separation between hardware-based communication functionalities and software-based application execution exists. Specifically, the LoRaWAN communication stack is fully handled by the hardware module, which also embeds the LoRa radio. Conversely, the end-user application, which is generally implemented by an external system/processor, is virtualized by means of an LXC.
  • Fully virtualized: This scenario represents the proposed, holistic virtualization strategy. Disaggregation and decomposition of functionalities are implemented across all the layers of the communication stack. In particular, this setup relies on an LXC per layer and takes advantage of the versatility of SDR technology to manage the LoRa radio modulation and demodulation functionalities (occurring at the baseband) through software instead of hardware. Fortunately, despite LoRa being a proprietary modulation scheme patented by Semtech, several reverse engineering (which is generally legal in the European Union if it is peformed for research and development purposes) efforts have been carried out in the past, e.g., as in [24,25].
  • Emulation: In this scenario, the end-node functionalities are still confined in LXCs, as in the fully virtualized case. However, the physical layer is completely abstracted out, demonstrating an implementation in which regular radio communications are omitted. Instead of utilizing LoRa radios to link the end nodes and the gateways, message forwarding towards the backend (and vice versa) is also containerized in a sort of virtual gateway.
As regards the latter scenario, its attractiveness as a (purely software) service for stress-testing real-world LoRaWAN infrastructure during the initial deployment or during normal operations must be underlined. Indeed, a variable, but controllable, load towards the backend can be easily injected, adding “emulated” devices, each one configured with a different update rate and user payload. Obviously, in this case, the impairments of the physical layer are not considered at all, since the LoRaWAN messages are directly conveyed to the backend using the virtual gateway.

4. LoRaWAN: Description and Definitions

Understanding the architecture of LoRaWAN is of paramount importance for exploring the virtualization of its network components. LoRaWAN stands for the Long-Range Wide-Area Network [26]. It is standardized by the LoRa alliance, which manages the specifications and certification procedures but relies on a proprietary radio technology, named LoRa and patented by Semtech. As suggested by the name, it is a protocol for long-range communications, but operating on low power. Accordingly, LoRaWAN is typically used for IoT-like applications, where the traffic is mainly from the field towards the users (the uplink direction), and devices have several constraints, in particular limited resources in terms of available power. This section delineates the core components of the LoRaWAN architecture: the end node, the gateway, and the backend. As a matter of fact, there is no network layer in the wireless part of a LoRaWAN infrastructure, due to the simple star-of-stars topology (i.e., there is no need for path discovery and routing). Two tiers can be identified:
  • The wireless tier, which includes the end devices, located a single hop away from the gateway (the center of the star);
  • The backend tier, further defined below, which concentrates most of the computational resources and it is often offered as a Platform as a Service (PaaS) in the cloud; it acts as a collector for the data from/to the gateways, thus forming another star consisting of wired (and wireless) links, generally based on the Internet (or Intranet for on-premise solutions).

4.1. End Node

Within the LoRaWAN architecture, the end node hosts the sensor or device endpoint that interacts with the physical world and transmits (refined) data to the final sink through one or more gateways.
Focusing on end-node protocol stack functionalities and services, it is possible to identify three primary components and layers:
  • Application Layer: The top layer or the end-user application, which generates traffic (uplink), handles specific user-defined tasks, and processes data before sending them over the network. It is important to stress that the LoRaWAN specifications do not define how data must be formatted, since only a generic binary user payload field is defined for the message; the implementer is in charge of this task. For this reason, real-world LoRaWAN backends support payload formatters. These code snippets interpret and process data going to and from end devices, e.g., converting binary payloads to human-readable values.
  • Medium Access Control Layer: LoRaWAN actually defines a Medium Access Control (MAC) protocol, which sits directly above the physical LoRa layer. LoRaWAN is responsible for coordinating the data transmission and reception processes across the wireless tier. A pure-ALOHA access scheme is adopted, a contention-based method that simplifies the transmission process; generally, robust mechanisms to handle potential collisions are not needed, because of the non-real-time nature of data transactions. The LoRaWAN layer ensures efficient use of the available communication medium by managing several critical tasks. These tasks include frame formatting, as well as adding headers and trailers to the frame for structuring the data for transmission; additionally, data rate selection is also performed, which adjusts the transmission rate to match network conditions and optimize energy consumption: the adaptive data rate (ADR) mechanism is managed by the backend. Furthermore, the LoRaWAN layer regulates the duty cycle, ensuring compliance with regional regulations on transmission times and preventing network congestion. The communication paradigm depends on the node class it belongs to, which dictates its transmission and reception patterns. In particular, (a) Class A must be supported by all nodes; communication is initiated by transmitting an uplink message to the backend after a relevant event occurs, and this is followed by two reception windows (often named RX1 and RX2) to receive a downlink message if needed, either for providing acknowledgment or additional data. (b) Class B introduces additional beacon messages for time synchronization, allowing for extra reception windows, which improves the potential throughput along the downlink direction. (c) Class C offers continuous listening for downlink messages, limiting the usage to devices that do not suffer from limited power availability (e.g., because they are main-powered or provided with some form of energy harvesting).
  • Physical Layer: The LoRa physical layer (PHY) is primarily responsible for the physical transmission and reception of radio signals. This layer utilizes the LoRa modulation technique, an implementation of Chirp Spread Spectrum (CSS) modulation, which is especially effective for long-range communications due to its robustness against interference and signal attenuation. Operating within the sub-GHz frequency spectrum, the LoRa PHY layer capitalizes on the properties of CSS modulation to enable communication over long distances while maintaining low power consumption. The modulation process within the LoRa PHY layer involves encoding a variable number of bits in a symbol that modulates into upchirps with a fixed bandwidth ( B C ) and a variable time duration ( T C ). The encoding efficiency is determined by the spreading factor (SF), which allows for 2 S F distinct initial chirp frequencies, thus accommodating the diverse number of bits per symbol. The SF can be set between 7 and 12, offering a versatile scale of data transmission rates and enhancing signal robustness against noise due to the additional processing gain.
    Indeed, the relationship 2 S F = B C · T C must be satisfied, underpinning the balance among the communication range (the sensitivity), the data rate, and the noise immunity. This relationship highlights the flexibility of the LoRa modulation technique, which can be finely tuned to meet specific operational demands of IoT applications, ranging from throughput in the order of several k b p s down to hundreds of b p s . For increasing message reliability, forward error correction mechanisms are applied; the redundant code bits are determined by the configurable coding rate parameter C R { 4 / 5 , . . , 4 / 8 } . Additional insights into the intricacies of LoRa’s modulation strategy and its implications for network performance are discussed in further detail in [27].
Operating in unlicensed sub-GHz regions of the spectrum, regional parameters are defined that, when applied in the EU, result in B C = 125   kHz in the proximity of the 868 MHz region. In this case, in Europe, the duty cycle D C is regulated by Section 4.3.3 of the ETSI EN300.220-2 standard [28], requiring D C { 0.1 , 1 , 10 } % , depending on the actual channel.
As regards the practical implementation of LoRaWAN end nodes, the common approach involves the use of a microcontroller for running the upper layers of the protocol stack, including the application, which is interconnected by means of a serial link with a single-chip radio (e.g., one of the SX127X devices from Semtech, hosting a Serial Peripheral Interface—SPI—slave) [29]. Despite being effective and power-friendly, the adoption of an integrated transceiver limits configurability and customization, with limited parameter tuning (e.g., spreading factor, bandwidth, coding rate) and supporting only one channel at a time. When flexibility, experimentation, or advanced signal processing are required, an SDR becomes an intriguing choice.

4.2. Gateway

Gateways act as the communication bridge between end nodes and the backend server. They receive frames from multiple co-located end nodes and relay this information to the backend. Unlike end nodes, which operate on configurable but fixed channels and S F s , gateways are designed to concurrently receive traffic by leveraging different channels and S F s , thus minimizing the impact of the limited bandwidth and the simple MAC strategy. As regards the connectivity towards the backend, the specifications do not define how it is actually implemented; however, they are typically connected to an IP-based wired or wireless infrastructure. In particular, the  G W executes the so-called packet forwarder software, in charge of embedding/extracting LoRaWAN payloads into the payload of the protocol connecting with the backend. Currently, two main packet forwarders exist:
  • The UDP packet forwarder, also referred to as the legacy packet forwarder, is the original implementation, initially proposed by Semtech. It uses UDP as the transport protocol to transfer LoRaWAN packets. This solution is widely adopted in both industry and academia, and most manufacturers preinstall it on their gateways. The protocol is quite simple, facilitating the implementation, but also has some drawbacks. Notably, the link between the gateway and the backend is not encrypted, and the use of the unreliable UDP protocol can lead to message loss. However, these drawbacks are overcome using VPN tunneling, which ensures both privacy and reliability.
  • The LoRa Basics Station uses the WebSockets technology to communicate, natively supporting data encryption as it moves between the gateway and the network server. A two-step procedure is supported, in which a preliminary discovery procedure occurs before the actual connection with the gateway; additionally, a Configuration and Update Server (CUPS) is defined, which allows for easy management of device update and configuration.
It is also interesting to note that frontend solutions, like the Semtech SX125X devices, tailored for the design of LoRaWAN Gateways, allow us to lower the cost of the hardware for SDR-based LoRaWAN transceivers [30], which is relevant for medium- and large-scale deployments. Moreover, these devices also have limited supply currents, especially in standby and sleep modes, a key characteristic to limit overall power consumption.

4.3. Backend

The backend of a LoRaWAN network is the core of operations, comprising several key entities that manage the flow of data and ensure secure and efficient network functionality. These entities include the Network Server (NS), Application Server (AS), and Join Server (JS):
  • NS: The NS manages the routing of data across the network, ensuring efficient message delivery by deduplicating messages from multiple gateways and maintaining data integrity through network session keys. It also handles network responses such as acknowledgments and adaptive data rate commands. The NS is the endpoint of the packet forwarder connection.
  • AS: The AS interfaces with user applications, providing secure data delivery by decrypting messages using application-specific keys. It tailors data processing to meet the specific needs of various applications.
  • JS: The JS enhances network security by managing the authentication and initial device onboarding processes. It securely handles device root keys and session key generation, ensuring that each device’s identity is secure and unique.
Additional details can be found in [31].

5. Docker Virtualization

Virtualization technologies, especially lightweight ones, e.g., based on containers as for the Docker solution [32], have become central to the flexibility and scalability of IoT networks. An example is the implementation of the edge computing paradigm, as shown in [33].
Docker has become a cornerstone of modern containerization, providing a lightweight and efficient solution for deploying and managing applications across different environments. It enables operating system-level virtualization, where multiple isolated containers share the same kernel, but each has its own file system, processes, and network interfaces. This isolation allows Docker to run applications independently without the need for a fullfledged virtual machine, reducing both overhead and resource consumption. Docker also simplifies the orchestration of these containers. With Docker-Compose [34], users can define and manage multicontainer applications in a single configuration file, making deployment and scaling straightforward.
Docker includes an engine that changes an image (stored somewhere) into a running container. By leveraging an overlay filesystem, additional layers can be added on the initial image, so that the final image consists of many overimposed layers, which are efficiently stored on disk and can be easily removed if no longer needed.
Furthermore, Docker enhances the portability of applications. Containers encapsulate all dependencies required to run an application, ensuring that the application can be deployed across different environments—whether on a local machine, a cloud server, or a remote device—without worrying about compatibility issues. This portability is particularly valuable in IoT networks, where devices may run on different hardware and software configurations yet need to interact in a standardized way.

6. Experimental Setup

An explicitly designed testbed has been developed to evaluate the computational, storage, and connectivity demands of the proposed approach. Efforts have been made to ensure that experiments are carried out in well-defined conditions, to easily and effectively compare results. In particular, we have decided to leverage a virtual machine to host the containerized functionalities. Accordingly, the underlying hardware components and platform are completely abstracted, and consistency is ensured across all the testing conditions. Indeed, despite the fact that we can suffer from additional latencies due to such an additional abstraction layer, in this work, we are mainly interested in comparing the impact of different levels of memory and computational resource availability, rather than analyzing absolute performance. For this reason, a uniform, configurable environment is a main concern.
The main characteristics of the host and guest systems are summarized in Table 2. As shown in Figure 2, the setup is based on an ML350 Gen10 server from HPE; the processor is an Intel Xeon Silver 4208 with eight cores, and the system memory is 64 GB. It has to be stressed that the machine is not chosen according to the actual application requirements: as explained in the following, it is just a platform for running the VM instances to be compared under varying numbers of virtual CPUs and different amounts of available virtual memory. The host operating system is Ubuntu Server 20.04.6 LTS; as regards the hypervisor, the open-source Kernel-based Virtual Machine (KVM) has been considered, which is integrated in Linux from Kernel version 2.6.20. As a matter of fact, the KVM architecture mimics the Linux arrangement, which is based on (i) a native kernel module, switching the processor in a new guest state, executing the guest code, and leveraging the virtualization features offered by recent CPUs, and (ii) a virtual machine monitor, based on the Quick EMUlator (QEMU), which virtualizes the hardware devices and provides some virtual networking functions. An interesting feature is that the guest code is emulated in a Posix thread, which can be managed by means of regular Linux tools; when a two- or four-core guest is needed, two or four threads are created, each of them calling the KVM kernel module to start the execution. If enough real cores are available (or through scheduling otherwise), concurrent execution is managed by the normal Linux scheduler, keeping the codebase minimal. The KVM environment is configured by means of the Cockpit, a free and open-source frontend tool, furnishing an intuitive web interface that allows us to manage and modify the relevant system features and resources easily and intuitively.
In this way, the core setup remains consistent, but available (virtual) resources can be modified easily. Accordingly, different configurations can be devised to explore and evaluate significant aspects of the containerized LoRaWAN end device (see also Figure 3). The guest OS is Ubuntu 20.04.6 LTS; the VM is configured for using different numbers of virtual cores v C P U { 1 , 3 , 5 , 7 } and virtual memory space v M e m o r y { 4 , 8 , 16 } GB; the virtual disk has a size of 215 GB.
As shown in Figure 2, the gateway used for communication is the Laird RG186 LoRaWAN gateway [35], which runs the Semtech UDP packet forwarder protocol, allowing communication between the end node and the backend services. In order to minimize impairments due to limited SDR transmitting power, noise, and interfering traffic, all the devices in the setup are positioned very close one each other. In terms of backend services, the system relies on The Things Stack (TTS) [36], a popular open-source LoRaWAN framework that provides all the necessary network management services.

Configurations

The experimental framework adopted for this study utilizes four distinct setups, as shown in Figure 3. Indeed, other than the setups mimicking the aforementioned Standard and Emulation scenarios, two other setups have been defined for implementing different “flavors” of the Fully Virtualized scenario, as better detailed in the following. In all the experiments, the message length is L P L = 10 B, and the message interval period is T T X = 30 s. The overall experiment duration is T E X P = 3 h. Other relevant settings are summarized in Table 3, resulting in the message duration of T O A = 61.7 ms.
  • Reference Setup: A top-level container hosts an application developed using Node-RED [37], an open-source flow-based development tool, leveraging JavaScript code for data manipulation. This Node-RED flow simulates the behavior of an end-user application that triggers the transmission of a fixed-length message based on a predefined schedule, possibly representing the uplink traffic of a sensor device in a real-world IoT-like application.
    A second container serves as the bridge between the containerized Node-RED application and the LoRaWAN module, the RN2483 from Microchip, shown in Figure 2, which is connected through a virtual COM above a USB link. This container handles the serialization of the application payload into the AT-commands that are interpreted by the module.
    The containers communicate publishing and subscribing MQTT messages exchanged across a (containerized) Mosquitto broker [38].
  • Fully Virtualized (MATLAB-based LoRa): In this setup, the application container implements the same functions as the standard setup. The user payload is processed by the next container, named “LoRaWAN”. This container runs a C script responsible for managing various LoRaWAN operations; other than adding headers and trailers, it performs tasks such as ciphering and deciphering the payload and appending the necessary headers and trailers to prepare the data for transmission using the LoRa radio.
    Once the message is formatted, it is passed to the LoRa container, which hosts a MATLAB-based model of the LoRa modulation process. This model has been compiled into a standalone application and it is responsible for encoding (and decoding) symbols and performing the actual baseband (de)modulation. The MATLAB-based container outputs in-phase (I) and quadrature (Q) baseband samples, supposing a F s = 2 MSa/s sample rate. Each I/Q sample is a 2B-long signed integer value.
    The subsequent container, named Serializer, is responsible for streaming the I/Q components to the SDR device for actual signal transmission. The low-cost ADALM-PLUTO [39] from Analog Devices is adopted, capable of operating up to 6 GHz with a maximum real-time bandwidth of 20 MHz imposed by the maximum sampling frequency of F s M A X = 61.44 MSa/s. It is a cost-effective experimentation platform that leverages the Analog Devices AD9363 transceiver and the Xilinx Zynq Z-7010 System On Chip (hosting both an FPGA for pre-processing and an ARM dual-core CPU for supervision) capable of streaming the I/Q samples from the ADC and towards the DAC, with a 12-bit vertical resolution. This SDR is supported by the Linux Industrial Input/Output (IIO) driver, which is part of the Linux kernel. The ADALM-PLUTO is connected to the system via a USB 2.0 interface, which imposes a throughput limit of several MSa/s, adequate for the low-bandwidth requirements of LoRa. As also described in [6], a fixed buffer of 10 MSa stores the samples (i.e., 40 MB are transferred each time to the SDR), enough to contain the actual message. Indeed, since the actual sample rate is limited to F s = 2 MSa/s and T O A = 61.7 ms, the number of samples per message is in the order of N S a = F S · T O A = 123.4 kSa.
    All containers communicate via an MQTT broker, except for the Serializer, which sends the I/Q streams to the SDR using a TCP/IP client–server flow.
  • Fully Virtualized (C-based LoRa): In this setup, our proposed method adopts a virtualization strategy similar to that of the MATLAB-based SDR driven scenario, with a distinct implementation approach for the LoRa layer. In this case, the LoRa model is developed using the C programming language, known for its efficiency and control over system resources, and it is executed by its own dedicated container.
  • Emulation: This setup demonstrates the flexibility of the proposed approach. As already described in Section 3, this configuration does not involve any actual LoRa transmissions. Instead, communication is emulated through a virtualized component known as the Virtual Gateway (VGW). The VGW collects the Application container output, which is immediately forwarded to the backend by means of the implemented packet forwarder functionality.
Table 4 shows the network traffic for each container in the different experimental scenarios, with values for incoming (I) and outgoing (O) traffic, obtained by means of the docker stats –no-stream command. These values represent the amount of data the container has sent and received over its network interface, calculated as the incremental changes in the actual Net I and Net O metrics over time. This information provides a clear picture of data movement in kilobytes (kB) and megabytes (MB), highlighting the network load and communication patterns within the virtualized environments used in this study. These statistics are consistent with the expected traffic previously described. As expected, there is no difference in the Application traffic in all cases; similarly, both the MATLAB- and the C-based LoRa containers for the Fully Virtualized configurations provide the same traffic levels.

7. Results—Resource-Related Metrics

This section presents and discusses the results of the experiments carried out using the previously introduced Fully Virtualized configurations; the focus is on resource-related metrics.
To compare the resource usage across containers, we employed a monitoring stack comprising Prometheus and Grafana [40], well-established tools for collecting and visualizing time series. This setup provides detailed insights into the resource consumption of different system components in real time. For containerlevel resource monitoring, we used cAdvisor (Container Advisor) [41] to expose container-specific metrics, while node-exporter [42] offered system-level metrics.
In addition to the monitoring stack, we also used the docker stats –no-stream commandline tool, which provides real-time performance data for running containers. This tool was particularly useful for tracking the Process IDs (PIDs) and Network Traffic I/O for each container.

Resource Usage Comparison: MATLAB- vs. C-Based LoRa

Both the C-based and MATLAB-based LoRa containers are the most demanding, since algorithms for the baseband (de)modulation process must be executed. Figure 4 illustrates the CPU usage of the LoRa containers as a percentage of the total computational capacity of the host machine. To monitor the container’s CPU usage, cAdvisor was employed to expose container-level metrics, container_cpu_usage_seconds_total, while node-exporter provided system-level metrics, machine_cpu_cores. These metrics were scraped by Prometheus every 15 s and queried using the following PromQL expression:
Electronics 14 01568 i001
The numerator (rate(container_cpu_usage_seconds_total[5m])) calculates the rate of change in CPU time consumed by the LoRa containers, averaged over a 5 min long window. The denominator (avg(machine_cpu_cores)) represents the total number of vCPU cores available on the host machine; the result is multiplied by 100 to express the CPU usage as a percentage.
It is interesting to highlight the relevant overhead introduced by the MATLAB runtime environment, which, differently from the C-based implementation, exhibits a huge vCPU usage in the startup phase and is an order of magnitude more demanding than the plain C counterpart. As regards the number of the vCPUs, a relevant impact moving from one to three vCPUs (the usage is almost divided by a factor of two) can be shown, which is less evident when moving from five to seven vCPUs.
Table 5 presents the distribution of PIDs between different vCPU cores for each container in the various configurations. A significant observation is the contrast in PID utilization within the LoRa containers in different scenarios. In the Fully Virtualized (C-LoRa) scenario, where the LoRa container is implemented using C, the container, as expected, consistently uses only a single process. In contrast, in the Fully Virtualized (M-LoRa) configuration, where the LoRa container is developed using MATLAB, the number of processes involved is substantially higher and it increases as more vCPU cores are allocated to the system. This behavior reflects the usage of the MATLAB native signal processing functions for implementing the algorithms of interest.
Figure 5 illustrates the memory usage of the LoRa containers, represented as a percentage of the total memory available on the guest machine (changing in the set {4,8,16}GB), when the number of available vCPU cores is limited to one core. These metrics were scraped by Prometheus every 15 s and queried using the following PromQL query:
Electronics 14 01568 i002
As expected, memory usage scales almost linearly with the overall amount. Also, in this case, the C-based LoRa container generally uses less memory and shows more stable usage compared to the MATLAB-based one.
As a concluding remark, it is possible to state that these stress the importance of an effective implementation and allow us to figure out the feasibility of this fully virtualized LoRaWAN node on an embedded platform.

8. Results—Time-Related Metrics

After highlighting the need for resources, in this section, the results of the experiments carried out using the previously introduced configurations are presented and discussed, focusing on time-related metrics.

8.1. Time Synchronization

Given the distributed nature of the system, both the local devices and the backend need to be synchronized to a common reference time, such as UTC, to assess time-related performance. The LoRaWAN backend is inherently synchronized with UTC. Therefore, the local PC, which hosts the containers, runs the Network Time Protocol (NTP) service [43], managed by chrony [44], to periodically adjust the local time, based on measurements of offset and delay from previous steps.
The synchronization uncertainty is calculated using the formula u s n = μ s n 2 + σ s n 2 , where μ s n is the average uncompensated systematic error introduced by the operating system (i.e., the average offset), and σ s n represents the random error (i.e., the standard deviation of the offset). The system logs were collected over a three-hour period to measure the residual time offset after compensation, yielding u s n 3.47 ms.
It is important to note that when calculating statistics based on differences in timestamps from the same clock, the systematic errors tend to cancel out. As a result, u s n = σ s n 0.5 ms. A similar level of uncertainty can be attributed to timestamping accuracy, as discussed in prior studies [45]. It is also expected that the synchronization and timestamping accuracy of the backend servers do not exceed these values.

8.2. Time-Related Metrics

To evaluate the performance of each scenario from the time domain point of view, we tracked the uplink message path by capturing a series of timestamps at each stage. Within the virtualized environment, each container recorded the time at which a message entered and exited. The relevant figures of merit for direct comparison were obtained by computing the time taken at each step for the different configurations. An additional container, named Logger and specifically tasked with this function, managed the publication of these timestamps on the MQTT database. In the backend sections, timestamp collection was facilitated by the TTS platform, which automatically timestamps the reception of the uplink message at the GW, NS, and AS. Therefore, other figures of merit can be evaluated for the characterization of the complete path from the field to the end user, e.g., for direct comparison with other setups discussed in the literature.
Figure 6 illustrates the duration of each process in the different experimental configurations, identified by the subscript C o n f { S , F M , F C , E } for Standard, Fully Virtualized (M-LoRa), Fully Virtualized (C-LoRa), and Emulation, respectively. The timestamps T C o n f i , where the subscript i is nothing but the progressive index, as shown in Figure 6, permit the computation of duration intervals D C o n f i , better detailed in the following for the different configurations. In particular, in all configurations, the Node Delay  D C o n f N D , representing the time spent within the virtualized environment, and the End-to-End Delay  D C o n f E E , representing the overall time needed to complete a roundtrip LoRaWAN transaction, are computed as well.
  • Standard Configuration:
    • D S 1 = T S 2 T S 1 , representing the processing time taken by the Serializer service;
      T S 1 marks the moment when the Serializer service first receives a request for an uplink communication.
      T S 2 corresponds to the instant when the Serializer service has completed processing the request and forwards the uplink payload to the RN2483 module.
    • D S 2 = T S 3 T S 2 , representing the time taken for the message to be gathered by the gateway;
      T S 3 is defined as the instant when the physical gateway (GW) acknowledges the reception of the new uplink communication originating from the module.
    • D S 3 = T S 4 T S 3 , representing the time taken for the message to travel from the gateway to the NS;
      T S 4 identifies the moment the NS is notified of the new uplink communication.
    • D S 4 = T S 5 T S 4 , representing the time taken for the message to travel from the NS to the AS;
      T S 5 identifies the moment the AS is notified of the new uplink communication.
    • D S E E = T S 5 T S 1 is the End-to-End delay;
    • D S N D = T S 2 T S 1 is the Node delay;
  • Fully Virtualized (M-LoRa) Configuration:
    • D F M 1 = T F M 2 T F M 1 , representing the time spent within the containerized service for managing the LoRaWAN layer, from receiving the uplink request to relaying the processed payload to the next layer.
      T F M 1 marks the moment when the LoRaWAN service initially receives a request for a new uplink communication.
      T F M 2 corresponds to the instant when the LoRaWAN service has processed the request and relays the uplink payload to the subsequent lower layer.
    • D F M 2 = T F M 3 T F M 2 , representing the time spent in the containerized service for managing the LoRa layer, from receiving the payload to generating the I/Q samples for transmission.
      T F M 3 is the instant when the LoRa service has completed the LoRa encoding and baseband modulation, meaning the actual I/Q discrete samples have been generated.
    • D F M 3 = T F M 4 T F M 3 , representing the time spent in the containerized service for setting up the link between the Serializer service and the SDR, ensuring the system is ready to transmit the samples.
      T F M 4 denotes the point at which the Serializer service has successfully established the connection with the SDR and is ready to stream the samples.
    • D F M 4 = T F M 5 T F M 4 , representing the time spent in the containerized service for streaming the I/Q samples to the SDR and propagating the uplink signal through the air until it is received by the gateway.
      T F M 5 is defined as the instant when the physical GW acknowledges the reception of the new uplink communication originating from the SDR.
    • D F M 5 = T F M 6 T F M 5 , representing the additional time required for the uplink communication to reach the NS, capturing the time taken for the message to travel from the gateway to the NS.
      T F M 6 identifies the moment the NS is notified of the new uplink communication.
    • D F M 6 = T F M 7 T F M 6 , representing the additional time required for the uplink communication to travel from the NS to the AS.
      T F M 7 identifies the moment the AS is notified of the new uplink communication.
    • D F M E E = T F M 7 T S 1 is the End-to-End delay;
    • D F M N D = T F M 4 T S 1 is the Node delay;
  • Fully Virtualized (C-LoRa) Configuration:
    • Durations, D F C i , D F C E E , D F C N D , and time points, T i , in this configuration are analogous to those in the previous one, the Fully Virtualized (M-LoRa) configuration, with the only difference being their naming convention.
  • Emulation Configuration:
    • D E 1 = T E 2 T E 1 , representing the time spent within the containerized service for managing the LoRaWAN layer, from receiving the uplink request to relaying the processed payload to the next layer.
      T E 1 marks the moment when the LoRaWAN service initially receives a request for a new uplink communication.
      T E 2 corresponds to the instant when the LoRaWAN service has processed the request and relays the uplink payload to the subsequent lower layer.
    • D E 2 = T E 3 T E 2 , representing the time spent within the VGW container, from receiving the uplink payload to preparing it for transmission to the backend.
      T E 3 is the instant when the VGW has processed the payload and is ready to send it to the backend.
    • D E 3 = T E 4 T E 3 , representing the time taken for the uplink communication to travel from the VGW to the backend.
      T E 4 is the instant when the backend acknowledges the reception of the new uplink communication originating from the VGW.
    • D E 4 = T E 5 T E 4 , representing the time taken for the uplink communication to forward from the backend to the NS.
      T E 5 identifies the instant when the NS is notified of the new uplink communication.
    • D E 5 = T E 6 T E 5 , representing the additional time required for the uplink communication to travel from the NS to the AS.
      T E 6 identifies the instant when the AS is notified of the new uplink communication.
    • D E E E = T E 6 T E 1 is the End-to-End delay;
    • D E N D = T E 3 T E 1 is the Node delay;

8.3. Performance Overview

Table 6, Table 7, Table 8 and Table 9 provide a summary of statistics for the time-related metrics, organized by different CPU (virtual) cores, with 8 GiB of memory allocated in all cases. Each table presents an overview of the performance metrics for specific intervals measured in milliseconds, allowing for an assessment of efficiency at each stage of the uplink message path across the virtualized environments and the overall path.
Additionally, Figure 7, Figure 8, Figure 9 and Figure 10 illustrate the End-to-End and the Node uplink delays for different vCPU cores for all the configurations. All results presented in these figures are filtered to the 95th percentile in order to better highlight variations imputable to an increasing amount of computational resources, excluding upper outliers.
Obviously, metrics depending on the cloud-hosted backend are not affected by the changing number of vCPUs. On the other hand, it is also interesting to highlight that the time spent for processing the (de)modulation is not affected as well.

9. Discussion

Any form of virtualization adds an additional software layer that translates into overhead in terms of computational and storage requirements. For this reason, the proposed approach is not intended to substitute the use of full custom implementation of a LoRaWAN end device, which leverages the use of components explicitly designed to minimize the software and hardware footprints. On the other hand, these solutions are rigid and do not allow us to fully exploit the possibilities offered by the “white spaces” of LoRaWAN specifications. Radio virtualization enhances flexibility by enabling multiple (maybe heterogeneous) virtual radios to coexist on the same hardware. A well-accepted method for virtualizing radio devices involves the adoption of virtual machines and containers to multiplex software radio implementations over generic multipurpose radio hardware, as reported in [16].
For instance, regular LoRa radio transceivers, as the ones in the Semtech SX126X family, only permit the use of a single channel and SF at a time, preventing the implementation of interference/noise countermeasures based on the retransmission of the same message on multiple channels and/or multiple SFs. Indeed, efforts have been made to exploit SDR to support multi-user detection in LoRa radios based on successive interference cancellation and for integrating LoRa with ARQ error-control protocols and rate-less packet-level coding as in [24]. Software-defined transceivers also pave the way for an improved version of the LoRa scheme, e.g., as suggested in [46]. Another possible target application scenario is the addition of communication interfaces in systems where computational and storage resources are already available (as edge devices); in this case, the use of a full virtual approach would allow us to easily switch from one protocol to another without the need of changing the underlying hardware [47].
Another point that must be stressed is that recent research has focused on porting the containerization paradigm into constrained devices as well, allowing the integration of low-power IoT devices in DevOps workflows [48]. In this case, the efficient management of containers is also a main concern. For instance, the automotive industry is moving towards a software-defined model, which requires cars to host and execute a large number of applications with limited resources (in terms of limited memory, CPU, and energy); the solution could be the containerization of the applications, and energy and cost-efficiency could be reached exploiting the smart selection of containers to turn off based on container priorities and available resources, as suggested in [49].
A final comment is about the power consumption. The additional overhead introduced by virtualization not only requires more powerful hardware but also results in higher power consumption, if compared against a customized embedded solution. Additionally, SDRs are generally more power-hungry than regular hardwired transceivers, since the flexibility they offer also depends on higher bandwidth and sample rates, which adversely affect the supply current. For all these reasons, the proposed approach is suitable for applications where power supply is not an issue.

10. Conclusions

Our findings underline the substantial potential of container technologies to change the way nodes of wireless networks are implemented, even for relatively simple protocol stacks such as LoRaWAN. The transition to a fully virtualized design—where not only all layers of the LoRaWAN stack are disaggregated into containers, but also the radio is implemented by an SDR—proves particularly effective in enabling dynamic reconfiguration and efficient resource management, making it a promising solution for large-scale and flexible IoT deployments. This work not only confirms the feasibility of the proposed approach but also objectively quantifies the importance of an effective implementation, comparing the MATLAB- and C-based versions of the LoRa baseband. As expected, the C-based implementation provides better resource utilization, stability, and scalability, features of paramount importance in real-world applications.
While the results from this study are promising, the proposed architecture would benefit from further validation in field-based, dynamic environments to assess its performance when embedded platforms are considered. Additionally, integrating the containerized approach with other wireless communication technologies could provide insights into the broader applicability of this method in diverse IoT applications. This work paves the way for future innovations in wireless network virtualization, demonstrating the critical role of containerization in transforming IoT infrastructure management. Additional experiments have been already planned for a large-scale deployment to evaluate the impact of wireless channel impairments, which we currently intentionally limit by operating in a lab-grade, controlled environment.

Author Contributions

Conceptualization and methodology, H.K. and E.S.; software, H.K.; formal analysis, E.S. and P.F.; investigation and validation, H.K.; data curation, H.K. and E.S.; writing, all the authors contributed to writing—review and editing; visualization, H.K; supervision, A.F.; project administration and funding acquisition, A.F. All authors have read and agreed to the published version of the manuscript.

Funding

This study was carried out within the MOST—Sustainable Mobility National Research Center and received funding from the European Union Next-GenerationEU (Piano Nazionale di Ripresa e Resilienza (PNRR)—Missione 4, Componente 2, Investimento 1.4—D.D. 1033 17/06/2022, CN00000023), Spoke 5 Light Vehicle and Active Mobility.

Data Availability Statement

The data presented in this study are available in the article.

Conflicts of Interest

The authors declare no conflicts of interest.

Abbreviations

The following abbreviations are used in this manuscript:
IoTInternet of Things
LPWANsLow-Power Wide-Area Networks
LXCLinux Container
VMsVirtual Machines
RANRadio Access Network
SDRSoftware-Defined Radio
SDNSoftware-Defined Networking
NFVNetwork Function Virtualization
PaaSPlatform as a Service
CSSChirp Spread Spectrum
PHYPhysical Layer
MACMedium Access Control
ADRAdaptive Data Rate
NSNetwork Server
ASApplication Server
JSJoin Server
KVMKernel-based Virtual Machine
QEMUQuick Emulator
IIOIndustrial Input/Output
GWGateway
VGWVirtual Gateway
NTPNetwork Time Protocol
PromQLThe Prometheus Query Language
PIDsProcess IDs

References

  1. Josbert, N.N.; Wei, M.; Wang, P.; Rafiq, A. A look into smart factory for Industrial IoT driven by SDN technology: A comprehensive survey of taxonomy, architectures, issues and future research orientations. J. King Saud Univ.-Inf. Sci. 2024, 36, 102069. [Google Scholar] [CrossRef]
  2. Satpathy, A.; Sahoo, M.N.; Swain, C.; Bellavista, P.; Guizani, M.; Muhammad, K.; Bakshi, S. Virtual Network Embedding: Literature Assessment, Recent Advancements, Opportunities, and Challenges. IEEE Commun. Surv. Tutorials 2025, 1. [Google Scholar] [CrossRef]
  3. Adel, A.; Alani, N.H.; Jan, T. Factories of the future in industry 5.0—Softwarization, Servitization, and Industrialization. Internet Things 2024, 28, 101431. [Google Scholar] [CrossRef]
  4. Khan, U.S.; Mahboob, T. Network Softwarization and Virtualization: Management of QoS in Wireless and Mobile Networks. In Quality of Service (QoS); Chapter 2; Hussein, Y.S., Al-Jumaily, A., Eds.; IntechOpen: Rijeka, Croatia, 2024. [Google Scholar] [CrossRef]
  5. Sisinni, E.; Flammini, A.; Gaffurini, M.; Pasetti, M.; Rinaldi, S.; Ferrari, P. LoRaWAN end device disaggregation and decomposition by means of lightweight virtualization. Internet Things 2024, 25, 101033. [Google Scholar] [CrossRef]
  6. Khalilnasl, H.; Depari, A.; Ferrari, P.; Flammini, A.; Gaffurini, M.; Sisinni, E. Implementing a Software Defined LoRaWAN Node Exploiting Container-Based Lightweight Virtualization. In Proceedings of the 2024 IEEE International Symposium on Measurements & Networking (M&N), Rome, Italy, 2–5 July 2024; pp. 1–6. [Google Scholar] [CrossRef]
  7. Kumar, E.S.; Ramamoorthy, R.; Kesavan, S.; Shobha, T.; Patil, S.; Vighneshwari, B. Comparative Study and Analysis of Cloud Container Technology. In Proceedings of the 2024 11th International Conference on Computing for Sustainable Global Development (INDIACom), Hyderabad, India, 28 February–1 March 2024; pp. 1681–1686. [Google Scholar] [CrossRef]
  8. Bedhief, I.; Kassar, M.; Aguili, T. Empowering sdn-docker based architecture for internet of things heterogeneity. J. Netw. Syst. Manag. 2023, 31, 14. [Google Scholar] [CrossRef]
  9. Aqasizade, H.; Ataie, E.; Bastam, M. Experimental assessment of containers running on top of virtual machines. IET Netw. 2024, 14. [Google Scholar] [CrossRef]
  10. Baker, S.A.; Mohammed, H.H.; Alsaif, O.I. Docker Container Security Analysis Based on Virtualization Technologies. Int. J. Comput. Their Appl. 2024, 31, 69–78. [Google Scholar]
  11. Muzumdar, P.; Bhosale, A.; Basyal, G.P.; Kurian, G. Navigating the Docker Ecosystem: A Comprehensive Taxonomy and Survey. Asian J. Res. Comput. Sci. 2024, 17, 42–61. [Google Scholar] [CrossRef]
  12. Liu, W.; Santos, J.F.; de Belt, J.v.; Jiao, X.; Moerman, I.; Marquez-Barja, J.; DaSilva, L.; Pollin, S. Enabling virtual radio functions on software defined radio for future wireless networks. Wirel. Pers. Commun. 2020, 113, 1579–1595. [Google Scholar] [CrossRef]
  13. Machado, E.R.; Feldman, M.; Müller, I. A Container-based Architecture to Provide Services from SDR Devices. In Proceedings of the 2023 IEEE 21st International Conference on Industrial Informatics (INDIN), Lemgo, Germany, 17–20 July 2023; pp. 1–6. [Google Scholar] [CrossRef]
  14. Mehr, I.E.; Minetto, A.; Dovis, F.; Pica, E.; Cesaroni, C.; Romano, V. An Open Architecture for Signal Monitoring and Recording Based on SDR and Docker Containers: A GNSS Use Case. In Proceedings of the 20th IEEE International Conference on Smart Technologies (EUROCON 2023), Torino, Italy, 6–8 July 2023; pp. 66–71. [Google Scholar] [CrossRef]
  15. Rito, P.; Almeida, A.; Figueiredo, A.; Gomes, C.; Teixeira, P.; Rosmaninho, R.; Lopes, R.; Dias, D.; Vítor, G.; Perna, G.; et al. Aveiro Tech City Living Lab: A Communication, Sensing, and Computing Platform for City Environments. IEEE Internet Things J. 2023, 10, 13489–13510. [Google Scholar] [CrossRef]
  16. Bezerra, G.M.G.; de Oliveira, N.R.; Ferreira, T.N.; Mattos, D.M.F. A comprehensive evaluation of software-defined radio performance in virtualized environments for radio access networks. Ann. Telecommun. 2024, 79, 523–535. [Google Scholar] [CrossRef]
  17. Schiller, E.; Ajayi, J.; Weber, S.; Braun, T.; Stiller, B. Toward a live BBU container migration in wireless networks. IEEE Open J. Commun. Soc. 2022, 3, 301–321. [Google Scholar] [CrossRef]
  18. Kadam, S.S.; Ingle, D.R. Impact of Docker Container Virtualization on Wireless Mesh Network by Using Software-Defined Network. Int. J. Recent Innov. Trends Comput. Commun. 2023, 11, 1121–1130. [Google Scholar] [CrossRef]
  19. Yang, R.; Zhang, J. imuLab: Internet of Things Simulation Platform Based on OpenStack and Container Technology. In Proceedings of the 2021 IEEE 6th International Conference on Computer and Communication Systems (ICCCS), Chengdu, China, 23–26 April 2021; pp. 927–932. [Google Scholar] [CrossRef]
  20. Bonanni, M. Distributed Services Management over Dynamic Networks of Things: Toward a Unified SDN-Oriented Design. Ph.D. Thesis, University of Florence, Florence, Italy, 2023. [Google Scholar]
  21. Makris, N.; Zarafetas, C.; Valantasis, A.; Korakis, T. Service Orchestration Over Wireless Network Slices: Testbed Setup and Integration. IEEE Trans. Netw. Serv. Manag. 2021, 18, 482–497. [Google Scholar] [CrossRef]
  22. Cilfone, A.; Davoli, L.; Ferrari, G. LoRa Meets IP: A Container-Based Architecture to Virtualize LoRaWAN End Nodes. IEEE Trans. Mob. Comput. 2024, 23, 9191–9207. [Google Scholar] [CrossRef]
  23. Gaffurini, M.; Flammini, A.; Ferrari, P.; Fernandes Carvalho, D.; Godoy, E.P.; Sisinni, E. End-to-End Emulation of LoRaWAN Architecture and Infrastructure in Complex Smart City Scenarios Exploiting Containers. Sensors 2024, 24, 2024. [Google Scholar] [CrossRef]
  24. Busacca, F.; Mangione, S.; Palazzo, S.; Restuccia, F.; Tinnirello, I. SDR-LoRa, an open-source, full-fledged implementation of LoRa on Software-Defined-Radios: Design and potential exploitation. Comput. Netw. 2024, 241, 110194. [Google Scholar] [CrossRef]
  25. Xu, Z.; Tong, S.; Xie, P.; Wang, J. From Demodulation to Decoding: Toward Complete LoRa PHY Understanding and Implementation. ACM Trans. Sens. Netw. 2022, 18, 1–27. [Google Scholar] [CrossRef]
  26. de Campos, M.G.; de Almeida, L.G.; Matheus, L.E.M.; Borin, J.F. On the Simulation of LoRaWAN Networks: A Focus on Reproducible Parameter Configuration. Comput. Netw. Commun. 2024, 2, 148–171. [Google Scholar] [CrossRef]
  27. Colombo, R.M.; Mahmood, A.; Sisinni, E.; Ferrari, P.; Gidlund, M. Low-cost SDR-based Tool for Evaluating LoRa Satellite Communications. In Proceedings of the 2022 IEEE International Symposium on Measurements & Networking (M&N), Padua, Italy, 18–20 July 2022; pp. 1–6. [Google Scholar] [CrossRef]
  28. European Telecommunications Standards Institute (ETSI). ETSI EN 300 220-2 V3.2.1; Short Range Devices (SRD) operating in the frequency range 25 MHz to 1000 MHz; Part 2: Harmonised Standard for access to radio spectrum for non-specific radio equipment; ETSI: Sophia Antipolis, France, 2018; Available online: https://www.etsi.org/deliver/etsi_en/300200_300299/30022002/03.02.01_60/en_30022002v030201p.pdf (accessed on 4 February 2025).
  29. López, J.J.; Lamo, P. Rapid IoT Prototyping: A Visual Programming Tool and Hardware Solutions for LoRa-Based Devices. Sensors 2023, 23, 7511. [Google Scholar] [CrossRef]
  30. Myrick, W.; Shiga, N.; James, J.S.; Byagowi, A. Timing, Communications, and Ranging SDR (TCR-SDR) for IoT Wireless Synchronization. In Proceedings of the 2024 IEEE International Symposium on Precision Clock Synchronization for Measurement, Control, and Communication (ISPCS), Tokyo, Japan, 7–11 October 2024; pp. 1–7. [Google Scholar] [CrossRef]
  31. Vangelista, L.; Centenaro, M. Worldwide Connectivity for the Internet of Things Through LoRaWAN. Future Internet 2019, 11, 57. [Google Scholar] [CrossRef]
  32. Silva, D.; Rafael, J.; Fonte, A. Toward Optimal Virtualization: An Updated Comparative Analysis of Docker and LXD Container Technologies. Computers 2024, 13, 94. [Google Scholar] [CrossRef]
  33. Urblik, L.; Kajati, E.; Papcun, P.; Zolotová, I. Containerization in Edge Intelligence: A Review. Electronics 2024, 13, 1335. [Google Scholar] [CrossRef]
  34. Eng, K.; Hindle, A.; Stroulia, E. Patterns of Multi-Container Composition for Service Orchestration with Docker Compose. Empir. Softw. Eng. 2024, 29, 65. [Google Scholar] [CrossRef]
  35. Laird Connectivity (Now Ezurio). RG186 LoRaWAN Gateway: Technical Specification. 2025. Available online: https://www.ezurio.com/part/rg186 (accessed on 4 February 2025).
  36. Hernandez, C.F.; Iova, O.; Valois, F. Downlink Scheduling in LoRaWAN: ChirpStack vs The Things Stack. In Proceedings of the 2024 IEEE Latin-American Conference on Communications (LATINCOM), Medellín, Colombia, 6–8 November 2024; pp. 1–6. [Google Scholar] [CrossRef]
  37. Conway-Jones, D.; O’Leary, N.; Rees, J. Node-RED: Low-Code Programming for Event-Driven Applications. 2023. Available online: https://nodered.org/ (accessed on 4 February 2025).
  38. Paolo, E.D.; Bassetti, E.; Spognardi, A. Security assessment of common open source MQTT brokers and clients. arXiv 2023, arXiv:2309.03547. [Google Scholar]
  39. Hanbali, S.B.S. Low-cost software-defined radio for electrical engineering education. IEEE Potentials 2023, 42, 13–19. [Google Scholar] [CrossRef]
  40. Jani, Y. Unified monitoring for microservices: Implementing prometheus and grafana for scalable solutions. J. Artif. Intell. Mach. Learn. Data Sci. 2024, 2, 848–852. [Google Scholar] [CrossRef]
  41. Google. cAdvisor: Analyzes Resource Usage and Performance Characteristics of Running Containers. 2024. Available online: https://github.com/google/cadvisor (accessed on 4 February 2025).
  42. Graf, F.; Watteyne, T.; Villnow, M. Monitoring performance metrics in low-power wireless systems. ICT Express 2024, 10, 989–1018. [Google Scholar] [CrossRef]
  43. Barhoumi, M. Quantum-Assisted Network Time Synchronisation: A Literature Review, Considering Examples and Challenges. 2025. Available online: https://ssrn.com/abstract=5170022 (accessed on 4 February 2025). [CrossRef]
  44. Chrony Project. Chrony: An NTP Client and Server for Time Synchronization. 2025. Available online: https://chrony-project.org/index.html (accessed on 4 February 2025).
  45. Sisinni, E.; Fernandes Carvalho, D.; Depari, A.; Bellagente, P.; Flammini, A.; Pasetti, M.; Rinaldi, S.; Ferrari, P. Assessing a Methodology for Evaluating the Latency of IPv6 with SCHC Compression in LoRaWAN Deployments. Sensors 2023, 23, 2407. [Google Scholar] [CrossRef]
  46. Vangelista, L.; Cattapan, A. Extending the Lora modulation to add parallel channels and improve the LoRaWAN network performance. In Proceedings of the 2021 11th IFIP International Conference on New Technologies, Mobility and Security (NTMS), Paris, France, 19–21 April 2021; pp. 1–5. [Google Scholar] [CrossRef]
  47. Wang, J.; Jiang, W.; Liu, R.; Wang, S. Towards Efficient and Portable Software Modulator via Neural Networks for IoT Gateways. IEEE Trans. Mob. Comput. 2024, 23, 13866–13881. [Google Scholar] [CrossRef]
  48. Zandberg, K.; Baccelli, E.; Yuan, S.; Besson, F.; Talpin, J.P. Femto-containers: Lightweight virtualization and fault isolation for small software functions on low-power IoT microcontrollers. In Proceedings of the 23rd ACM/IFIP International Middleware Conference (Middleware ’22), Quebec, QC, Canada, 7–11 November 2022; ACM: New York, NY, USA, 2022; pp. 161–173. [Google Scholar] [CrossRef]
  49. Ghammam, A.; Khalsi, R.; Kessentini, M.; Hassan, F. Efficient Management of Containers for Software Defined Vehicles. ACM Trans. Softw. Eng. Methodol. 2024, 33, 1–36. [Google Scholar] [CrossRef]
Figure 1. Overview of functional split scenarios in LoRaWAN node implementations.
Figure 1. Overview of functional split scenarios in LoRaWAN node implementations.
Electronics 14 01568 g001
Figure 2. The experimental setup including the LoRaWAN GW, the SDR, the module, and the host.
Figure 2. The experimental setup including the LoRaWAN GW, the SDR, the module, and the host.
Electronics 14 01568 g002
Figure 3. Experimental setups for virtualized LoRaWAN environments, showcasing different communication and network configurations across scenarios.
Figure 3. Experimental setups for virtualized LoRaWAN environments, showcasing different communication and network configurations across scenarios.
Electronics 14 01568 g003
Figure 4. CPU usage of the C- and MATLAB-based LoRa containers as a percentage of the total capacity.
Figure 4. CPU usage of the C- and MATLAB-based LoRa containers as a percentage of the total capacity.
Electronics 14 01568 g004
Figure 5. Memory usage of the LoRa containers as a percentage of total guest memory capacity.
Figure 5. Memory usage of the LoRa containers as a percentage of total guest memory capacity.
Electronics 14 01568 g005
Figure 6. Time-related metrics for each stage of the uplink message path across different experimental configurations.
Figure 6. Time-related metrics for each stage of the uplink message path across different experimental configurations.
Electronics 14 01568 g006
Figure 7. End-to-End and Node delays for different vCPU cores in the Standard configuration.
Figure 7. End-to-End and Node delays for different vCPU cores in the Standard configuration.
Electronics 14 01568 g007
Figure 8. End-to-End and Node delays for different vCPU cores in the Fully Virtualized (M-LoRa) configuration.
Figure 8. End-to-End and Node delays for different vCPU cores in the Fully Virtualized (M-LoRa) configuration.
Electronics 14 01568 g008
Figure 9. End-to-End and Node delays for different vCPU cores in the Fully Virtualized (C-LoRa) configuration.
Figure 9. End-to-End and Node delays for different vCPU cores in the Fully Virtualized (C-LoRa) configuration.
Electronics 14 01568 g009
Figure 10. End-to-End and Node delays for different vCPU cores in the Emulation configuration.
Figure 10. End-to-End and Node delays for different vCPU cores in the Emulation configuration.
Electronics 14 01568 g010
Table 1. Overview of the different experimental scenarios.
Table 1. Overview of the different experimental scenarios.
ScenarioApplication LayerLoRaWAN/DLL LayerPhysical LayerGatewayNodeDelay
ReferenceContainerizedHW ModuleHW ModuleReal+++
Fully VirtualizedContainerizedContainerizedSDRReal+
EmulationContainerizedContainerizedAbsentVirtual++
Note: The symbols (+, ++, +++) represent qualitative assessments of the NodeDelay impact, from largest (+, the worst) to shortest (+++, the best) delay values.
Table 2. Hardware and platform specification of the experimental setup.
Table 2. Hardware and platform specification of the experimental setup.
Host ProcessorIntel(R) Xeon(R) Silver 4208 CPU @ 2.10 GHz (Cascadelake)
Host OSUbuntu Server 20.04.6 LTS
Guest vCPU Core (s){1, 3, 5, 7} Cores
Guest OSUbuntu 20.04.6 LTS
Guest vMemory{4, 8, 16} GB
Guest vHardDisk215 GB
PlatformDocker 27.4.0, Docker compose 2.20.0, MATLAB R2023b
Monitoring ToolscAdvisor v0.39.3, node-exporter v1.8.2, Prometheus v3.1.0, Grafana v11.4.0
Table 3. Configuration parameters for LoRaWAN end-node setup.
Table 3. Configuration parameters for LoRaWAN end-node setup.
StackParameterAssumption
ApplicationPayload Size L P L = 10 B
Message Interval T T X = 30 s
Experimental Period T E X P = 3 h
LoRaWANVersionLoRaWAN Specification 1.0.4
ClassA
LoRaSpreading Factor S F = S F 7
Coding Rate C R = 4 / 5
Band868 MHz
Bandwidth B C = 125 kHz
Airtime T O A = 61.7 ms
Table 4. Network traffic.
Table 4. Network traffic.
ScenariosContainer Δ Network Traffic
IO
StandardApplication00.1 kB
Serializer0.4 kB1.2 kB
Fully Virtualized (M-LoRa)Application00.1 kB
LoRaWAN0.4 kB0.6 kB
LoRa1.7 kB0.5 MB
Serializer1.3 MB40 MB
Fully Virtualized (C-LoRa)Application00.1 kB
LoRaWAN0.4 kB0.6 kB
LoRa1.7 kB0.5 MB
Serializer1.3 MB40 MB
EmulationApplication00.1 kB
LoRaWAN0.4 kB0.6 kB
Virtual GW0.6 kB1.7 kB
Table 5. Distribution of PIDs across CPU cores for containers in different experimental scenarios.
Table 5. Distribution of PIDs across CPU cores for containers in different experimental scenarios.
ScenariosContainerCPU Cores
# 1# 3# 5# 7
StandardApplication21212121
Serializer1111
EmulationApplication21212121
LoRaWAN3333
Virtual GW5555
Fully Virtualized (C-LoRa)Application21212121
LoRaWAN3333
LoRa1111
Serializer5555
Fully Virtualized (M-LoRa)Application21212121
LoRaWAN3333
LoRa25313639
Serializer5555
Table 6. Summary of time-related statistics for the Standard configuration.
Table 6. Summary of time-related statistics for the Standard configuration.
CPU#Statistic (ms) D S 1 D S 2 D S 3 D S 4 End-to-End
CPU1Mean1.103138.49612.461219.366371.425
Std0.40010.4789.27122.76723.785
Median1.071137.30919.168208.269363.636
Min0.304120.3240.556202.886345.685
Max6.838159.62530.921359.219516.022
5th Pctl0.484123.0950.642203.646347.992
95th Pctl1.497156.83320.509260.058416.620
CPU3Mean0.376138.17412.210216.399367.159
Std0.09210.5748.90718.71319.706
Median0.362137.45618.889207.070361.409
Min0.140120.2500.560203.083343.897
Max1.295161.38526.186298.126451.522
5th Pctl0.316122.8130.633203.580347.655
95th Pctl0.467156.85319.678260.683410.096
CPU5Mean0.357132.08518.177206.253356.872
Std0.0506.8103.3254.4357.414
Median0.352132.09118.861205.137357.266
Min0.135120.2320.758202.522343.874
Max0.710157.38929.595245.883396.458
5th Pctl0.305122.24817.918203.417345.756
95th Pctl0.429141.13819.618212.657366.738
CPU7Mean0.365136.86312.528206.501356.256
Std0.04911.0349.3404.1847.567
Median0.366135.94919.508205.521356.014
Min0.186119.1260.636202.592343.174
Max0.744159.27841.206231.535406.053
5th Pctl0.318120.9570.693203.455345.833
95th Pctl0.446155.65320.201215.862366.599
Table 7. Summary of time-related statistics for the Fully Virtualized (M-LoRa) configuration.
Table 7. Summary of time-related statistics for the Fully Virtualized (M-LoRa) configuration.
CPU#Statistic (ms) D FM 1 D FM 2 D FM 3 D FM 4 D FM 5 D FM 6 End-to-End
CPU1Mean3.07763.74728.4351254.33019.093221.5061590.188
Std0.75722.8397.93866.9811.00842.42484.692
Median2.97757.09029.6141271.43818.945209.5551604.391
Min0.15749.89616.1471136.79518.080203.0781448.641
Max6.942338.310109.4591367.98535.139889.9882254.066
5th Pctl2.69154.84517.0191153.18618.782203.8421468.904
95th Pctl3.809102.91436.9661336.18519.833272.1451694.090
CPU3Mean0.49965.66418.7281258.62519.037212.1721574.725
Std0.41816.2973.67162.7120.41313.72867.151
Median0.27064.33218.1021275.23418.930206.5961591.873
Min0.11753.60014.3681142.15618.729203.1021440.253
Max2.103300.90267.4591347.93223.384290.7741903.769
5th Pctl0.21355.86115.3101156.57618.797203.7271466.188
95th Pctl1.41176.75523.1231332.37519.744244.3041656.257
CPU5Mean0.27365.45317.3901245.47318.198206.6041553.391
Std0.12613.8852.90473.7640.4533.77875.676
Median0.21965.18617.3671288.70918.022205.4421592.710
Min0.08955.08113.8861134.82717.733203.0031434.621
Max0.894248.15062.5381349.60120.639231.5331842.127
5th Pctl0.19956.91814.8651146.11017.866203.7301450.479
95th Pctl0.60277.61819.9451333.66919.169212.6771642.595
CPU7Mean0.24464.85417.2021238.71818.332207.2901546.640
Std0.08813.3082.50274.1880.7244.64274.625
Median0.21865.01217.1761271.38018.352206.6051577.603
Min0.10552.47413.5701138.84917.443203.5791441.945
Max0.949258.07357.3791355.92421.150258.3611703.294
5th Pctl0.20355.79714.7861147.88217.519203.9721451.935
95th Pctl0.31777.10319.0441331.39519.560212.4281641.435
Table 8. Summary of time-related statistics for the Fully Virtualized (C-LoRa) configuration.
Table 8. Summary of time-related statistics for the Fully Virtualized (C-LoRa) configuration.
CPU#Statistic (ms) D FC 1 D FC 2 D FC 3 D FC 4 D FC 5 D FC 6 End-to-End
CPU1Mean2.97524.17213.1621261.52519.994215.6931537.520
Std0.5471.7021.44870.6531.25917.72275.449
Median2.96323.92613.0001289.53019.791207.0851565.277
Min0.13318.1408.0001132.53119.565203.0631396.831
Max5.55833.08119.0001362.27835.340296.8151691.212
5th Pctl2.43722.21011.0001152.20619.648203.9121419.026
95th Pctl3.59326.64816.0001348.79320.702257.6681637.980
CPU3Mean0.40026.4517.6731267.80919.689212.4901534.513
Std0.3682.9632.55868.4901.18714.75771.085
Median0.25125.9088.0001297.60819.607206.5131561.665
Min0.08315.5253.0001136.67518.626203.0881395.617
Max2.42858.77818.0001364.69733.113306.4471668.700
5th Pctl0.21123.9874.0001155.51518.752203.7591417.508
95th Pctl1.22831.00711.1501346.36720.388241.6131624.121
CPU5Mean0.29022.8515.9051259.13819.360206.5941514.137
Std0.1951.4181.46972.2631.7674.18072.185
Median0.21922.5686.0001299.79219.178205.6241553.839
Min0.19018.9392.0001138.66017.921203.0611393.222
Max1.60131.69313.0001352.91349.466244.8421609.577
5th Pctl0.20021.1393.0001152.89018.062203.7801408.988
95th Pctl0.69625.2318.0001339.76320.401212.0121595.753
CPU7Mean0.23622.6566.0431247.00119.356206.1021501.395
Std0.0591.1931.23572.8680.8383.07372.973
Median0.22122.4106.0001288.60219.171205.3881541.454
Min0.14220.7252.0001130.17918.938202.7921387.329
Max0.74430.93610.0001346.01330.304237.3971598.844
5th Pctl0.20521.1674.0001149.00418.999203.6561402.240
95th Pctl0.28824.4678.0001334.16820.216209.9891588.620
Table 9. Summary of time-related statistics for the Emulation configuration.
Table 9. Summary of time-related statistics for the Emulation configuration.
CPU#Statistic (ms) D E 1 D E 2 D E 3 D E 4 D E 5 End-to-End
CPU1Mean2.9884.31017.6611.041206.644232.644
Std0.9730.9330.7060.8622.6153.100
Median2.9114.18217.9500.834206.471232.328
Min0.2981.98114.6070.584203.115226.830
Max7.9419.06020.23711.394225.908252.066
5th Pctl1.3463.39116.7140.666203.524228.716
95th Pctl5.3016.31318.3052.114211.176238.089
CPU3Mean0.5166.95018.0901.382207.329234.266
Std0.3513.0871.7054.9544.1897.333
Median0.3476.90017.6870.821206.565233.118
Min0.1561.13715.5660.591202.669223.405
Max2.24313.36225.46885.180239.199313.516
5th Pctl0.2962.03316.0480.652203.606227.222
95th Pctl1.33411.38019.9172.047216.235244.661
CPU5Mean0.3786.87118.5530.985206.696233.484
Std0.1363.0510.1870.9423.0734.410
Median0.3367.03918.5670.831206.303233.127
Min0.1701.12217.5360.574202.859224.395
Max1.48611.86119.64916.581226.068256.010
5th Pctl0.3071.70918.1380.652203.285227.087
95th Pctl0.64511.17018.7611.674211.360240.102
CPU7Mean0.3706.99019.7150.989206.958235.021
Std0.1053.0110.3510.6654.5925.544
Median0.3337.18519.6790.834206.496234.724
Min0.1991.05219.0160.599202.755225.999
Max1.20111.65323.1489.318265.534296.767
5th Pctl0.3101.90819.4400.655203.519228.480
95th Pctl0.60111.01819.9201.892211.362240.759
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Share and Cite

MDPI and ACS Style

Khalilnasl, H.; Ferrari, P.; Flammini, A.; Sisinni, E. On the Use of Containers for LoRaWAN Node Virtualization: Practice and Performance Evaluation. Electronics 2025, 14, 1568. https://doi.org/10.3390/electronics14081568

AMA Style

Khalilnasl H, Ferrari P, Flammini A, Sisinni E. On the Use of Containers for LoRaWAN Node Virtualization: Practice and Performance Evaluation. Electronics. 2025; 14(8):1568. https://doi.org/10.3390/electronics14081568

Chicago/Turabian Style

Khalilnasl, Hossein, Paolo Ferrari, Alessandra Flammini, and Emiliano Sisinni. 2025. "On the Use of Containers for LoRaWAN Node Virtualization: Practice and Performance Evaluation" Electronics 14, no. 8: 1568. https://doi.org/10.3390/electronics14081568

APA Style

Khalilnasl, H., Ferrari, P., Flammini, A., & Sisinni, E. (2025). On the Use of Containers for LoRaWAN Node Virtualization: Practice and Performance Evaluation. Electronics, 14(8), 1568. https://doi.org/10.3390/electronics14081568

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop