Skip to content

Simulating WSN/IoT Systems under ns-3 using NB-IoT Module.

Low-power wide-area network (LPWAN).

NB-IoT (Narrowband Internet of Things) is a low-power, wide-area network (LPWAN) technology designed for connecting devices and sensors to the internet of things (IoT). It operates on licensed cellular bands, providing better coverage and longer battery life compared to other wireless IoT technologies. NB-IoT is optimized for low-bandwidth, low-power applications that require long-range connectivity and is suitable for use cases such as smart metering, asset tracking, and environmental monitoring.

These networks use low-power radio signals, such as those in the sub-1 GHz range, to send small amounts of data over a large area. LPWANs are used in applications such as wireless sensor networks(WSN), smart energy, smart cities, and the Internet of Things (IoT). 

They are also used to connect devices in remote locations that don’t have access to reliable internet connections. LPWANs are ideal for applications that require low data rates, long battery life, and low cost. 

Examples of LPWANs include Sigfox, LoRaWAN, and Weightless. LPWANs are commonly used in applications including Smart metering, smart lighting, asset monitoring and tracking, smart cities, precision agriculture, livestock monitoring, energy management, manufacturing, and industrial IoT deployments.

The following article presents some introduction to some of the available LPWAN technologies:

 

Low-power wide-area networks(LPWAN) & Internet of Things(IoT)

 

NBIoT (Narrowband Internet of Things)

It is a cellular network technology specifically designed to connect lowpower devices over long distances. It is a Low Power Wide Area (LPWA) network technology that operates in licensed spectrum, and can be deployed in both existing 2G/3G/4G cellular networks, as well as in dedicated networks. Compared to WiFi or Bluetooth, NBIoT offers a lowcost and lowpower solution for connecting devices to a widearea network. It is also more secure than other solutions due to its use of cellular networks. NBIoT is ideal for applications such as smart meters, wearables, connected cars, and other lowpower IoT devices.

NB-IOT is based on LTE, but it expands LTE in a number of ways. The NB-IOT model implementation will split the development into sub-modules that are as much as possible independent from each other.

The current development has been focused on these points[1]:

  • DL Signalling traffic – MIB-NB and SIB-NB
  • NB-IOT UE class support (CAT NB1)

The next steps will involve[1]:

  • New NB-IOT channels mappings
  • UL Random access procedures
  • New RRC messages

NB-IoT ns-3 module

As mentioned in [2], the implementation of ns-3 NB-IoT module is based on 3GPP NB-IoT release 13 [3-9].

In order to explore the performance of NB-IoT, ns-3 NB-IoT module is required. Although the NB-IoT module is developing by official ns-3 team, some crucial part of NB-IoT havn’t been involved yet, such as NB-IoT random access and NB-IoT scheduler.

In[2], they implement following part based on ns-3.26 LTE module and  this project only support format 1 RU. (15kHz, 12 SC and 2 slots)

  • NB-IoT Random Access(RA) (SIB2-NB and CE level mechanism)
  • NB-IoT Schedulers (SIB1-NB, NPDCCH, NPDSCH and NPUSCH)

Installing NB-IoT ns-3 module

Step 1: Installing ns-2.26

The installation of the NB-IoT module depend on pre-installed ns-3.26. As you may already know, installing a old version of ns-3 on any latest version of Linux often fails with some conflict with library versions or gcc version. 

So, you may install the old ns-3.26 version in VirtualBox by adapting the following procedure[10] :

Installing an old Linux under VirtualBox and using Shared Folders.

You can download is from the official download url of ns-3.26 : https://www.nsnam.org/releases/ns-3-26/.
And then install ns-2.26 using a procedure such as the following one :

Installing ns3.35 in Debian 10 chroot Jail Under Debian 11 Host OS or any Version of Linux Host

If your compilation of ns-3 fails, then you may need to do the following:

Hidden Section! Contact Charles  

The key/passphrase will be given once you have been approved for getting paid research support/assistance from Charles. To get paid support, you may start a 'free' research discussion.  

WhatsApp chatDiscuss Through WhatsApp
 

The following screenshot shows one such sucessful insallation o ns-3.26. But here I am did this installation under Debian10 chroot environment since Ubuntu 16.04 is derived from the nearest version of  Debian 10.

Step 2: Adding NB-IoT Module

After the installation of ns-3.26, replace the content of the folder ‘/ns-allinone-3.26/ns-3.26/src/lte/model'

with the one that was provided by NB-IoT project.

./Your_home/ns-allinone-3.26/ns-3.26/src/lte/model

Step 3: Recompile ns-3

Now re-compile ns-2.26 again as follows so that the new version of lte model get compiled and contain NB-IoT support.

$ cd ./Your_home/ns-allinone-3.26/ns-3.26/
$ ./waf

If you notice that the LTE related components are getting compiled again : 

At the end of successful recompile, we will see the list of available modules as follows:

 

Step 4: Running the NB-IoT example simulations in ns-3

Run the example as follows:

$ cd ./Your_home/ns-allinone-3.26/ns-3.26/
$ ./waf --run  NB-IoT_scheduler_example.cc

Now it will start running like this :

 

And will end up with the following output:

 

If you have any problems or doubts then follow this :

Hidden Section! Contact Charles  

The key/passphrase will be given once you have been approved for getting paid research support/assistance from Charles. To get paid support, you may start a 'free' research discussion.  

WhatsApp chatDiscuss Through WhatsApp
 

 

Conclusion :

NB-IoT module provides some basic features to simulate LoT using lte networking features and as far now this only support format 1 RU. (15kHz, 12 SC and 2 slots)

 

Further Experiment:

There seems to be another old implementation of NB-IoT available at [12]. The official wiki page of that project can be found in[13].  It was mentione in [13] that the Department of Information Engineering of the University of Florence ( DINFO ) has begun work on the analysis, design, and development of this module at the end of 2016. At the beginning of 2017 other partners get involved in the project, among them are Magister Solutions, imec, Telecom Italia and the Department of Information Engineering of the University of Rome ( DIET ). Currently, this NB-IOT module is under active development.

Project goals[13]

NB-IOT is based on LTE, but it expands LTE in a number of ways. The NB-IOT model implementation will split the development into sub-modules that are as much as possible independent of each other.

The current development has been focused on these points:

  • DL Signalling traffic – MIB-NB and SIB-NB
  • NB-IOT UE class support (CAT NB1)

The next steps will involve:

  • New NB-IOT channels mappings
  • UL Random access procedures
  • New RRC messages

I do not know whether the NB-IoT module discussed in my article is originated from that old project. If some one know that, then just put a mail to me. We may explore that old NB-IOT module in another future article.

For a simple and powerful network simulations, one may consider using LoRaWAN LoRaWAN ns-3 module, as mentioned in the following article:

Simulation and Analysis of IoT LoRaWAN Networks Under ns-3

 

References

  1. https://www.nsnam.org/wiki/NB-IOT
  2. https://github.com/a3794110/ns-3-NB-IoT
  3. 3GPP, “3rd Generation Partnership Project; Technical Specification Group Radio Access Network; Evolved Universal Terrestrial Radio Access (E-UTRA); Medium Access Control (MAC) protocol specification (Release 15) ,” Tech. Rep. 3G TS 36.321, 3GPP, March 2018.

  4. “ns-3 lte module design documentation.”

  5. 3GPP, “3rd Generation Partnership Project; Technical Specification Group Radio Access Network; Evolved Universal Terrestrial Radio Access (E-UTRA); Physical channels and modulation (Release 15),” Tech. Rep. 3G TS 36.211, 3GPP, March 2018.

  6. 3GPP, “3rd Generation Partnership Project; Technical Specification Group Radio Access Network; Evolved Universal Terrestrial Radio Access (E-UTRA); Requirements for support of radio resource management (Release 15),” Tech. Rep. 3G TS 36.133, 3GPP, March 2018

  7. 3GPP, “3rd Generation Partnership Project; Technical Specification Group Radio Access Network; Evolved Universal Terrestrial Radio Access (E-UTRA); Radio Resource Control (RRC); Protocol specification (Release 13),” Tech. Rep. 3G TS 36.331, 3GPP, April 2018.

  8. 3GPP, “3rd Generation Partnership Project; Technical Specification Group Radio Access Network; Evolved Universal Terrestrial Radio Access (E-UTRA); Physical layer procedures (Release 15) ,” Tech. Rep. 3G TS 36.213, 3GPP, March 2018.

  9. 3GPP, “3rd Generation Partnership Project; Technical Specification Group GSM/EDGE Radio Access Network; Cellular system support for ultra-low complexity and low throughput Internet of Things (CIoT) (Release 13) ,” Tech. Rep. 3G TR 45.820, 3GPP, November 2015.

  10. Installing an old Linux under VirtualBox and using Shared Folders.
  11. Simulation and Analysis of IoT LoRaWAN Networks Under ns-3
  12. https://github.com/TommyPec/ns-3-dev-NB-IOT
  13. https://www.nsnam.org/wiki/NB-IOT
WhatsApp Discuss Through WhatsApp