Skip to content

Installing sns3-satellite network extension module under ns-3

Satellite Network Simulator 3

Satellite Network Simulator 3 (SNS3) is an open-source network simulator specifically designed for satellite communication networks. It provides a platform for simulating and analyzing various aspects of satellite networks, including satellite constellations, communication protocols, routing algorithms, and network performance.  The image from [5] shown at the right side explains the possible research application scenario of SNS3.

SNS3 is built upon the popular network simulator, Network Simulator 3 (NS-3), and extends its capabilities to model and simulate satellite networks. It offers a range of features and functionalities to simulate different satellite communication scenarios and evaluate network performance metrics.

Some key features of SNS3 include:

  • Satellite Models: SNS3 provides models for different types of satellites, including geostationary satellites, low Earth orbit (LEO) satellites, and medium Earth orbit (MEO) satellites. These models incorporate parameters such as satellite orbits, link characteristics, and antenna configurations.
  • Channel Models: SNS3 supports various channel models to simulate satellite communication links, including models for path loss, atmospheric effects, rain attenuation, and interference.
  • Protocol Stacks: It includes protocol models for different layers of the communication stack, such as physical, data link, network, and transport layers. These models enable the simulation of communication protocols specific to satellite networks.
  • Mobility Models: SNS3 offers mobility models to simulate the movement of satellites and emulate the dynamics of satellite constellations. This allows for the study of satellite handovers, routing protocols, and network performance in mobile satellite scenarios.
  • Visualization and Analysis: SNS3 provides tools for visualizing simulation results and analyzing network performance metrics. It allows users to plot graphs, generate statistics, and gain insights into the behavior of satellite networks under different conditions.

SNS3 was initially developed by Magister Solutions under ESA contract[1]. Now SNS3 is actively maintained and supported by a community of researchers and developers. It is released under an open-source license, allowing users to modify and extend its capabilities to suit their specific needs.

To get started with SNS3, you can visit the official SNS3 website or GitHub repository[1], where you’ll find documentation, tutorials, example scenarios, and resources to help you explore and utilize the simulator for satellite network simulations.

This article presents a step-by-step procedure for installing the sns3-satellite extension module under ns-3 simulator.

Things Needed to install SNS3

  1. A suitable version of ns-3
  2. sns3-satellite module for ns-3
  3. SNS3 traffic module for ns-3
  4. SNS3 magister-stats ns-3 module
  5. SNS3 data

Even though, the SNS3 repository[1] contains all the above things under its folder, the SNS3 traffic module[2] and SNS3 magister-stats[3] should be installed outside the main sns3 and should be installed as separate ns-3 module. The original SNS3 repository contains a ‘data’ folder, but it should be coloned separately from another git repository[4].

The content of the SNS3 Data folder

The repository [4] contains the following data:

  • linkresults/ : The AVI files for DVB-S2(X) and RCS2 waveform performance
  • antennapaterns/ : antenna patterns for the 72 beams refernence scenario
  • utpositions/ : Fixed positions for user terminals in beams
  • *trace/input : folders for storing external traces files
  • sinrmeaserror/ : SINR Measurement error file

 

Installing ns-3 with SNS3

Step 1: Download a suitable version of ns-3

$ cd /home/your_home
$ git clone https://gitlab.com/nsnam/ns-3-dev.git ns-3.xx

For the installation of ns-3, one may follow the procedure as explained in [7]

Step 2: Get the ”satellite” module  by cloning it

$ cd ns-3.xx/contrib
$ git clone https://github.com/sns3/sns3-satellite.git satellite

Step 3: Get the ”traffic” module

$ git clone https://github.com/sns3/traffic.git traffic

Step 4: Get the ”magister-stats” module

$ git clone https://github.com/sns3/stats.git magister-stats

Step 5: Get the necessary data

These data are available as a separate repository and bundled as a submodule in SNS-3.
So, we can download them afterwards under the ”satellite” repository as follows:

$ cd /home/your_home/ns-3.xx/contrib/satellite
$ git submodule update --init --recursive

Is it just freezing? or failing after some time? You may try 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
 

Step 6:  Configure ns-3

We have to configure ns-3 as follows so that it will automatically build all modules found in contrib folder:

$ cd ns-3.xx
$ ./waf configure -d optimized --enable-examples --enable-tests

Step 7:  Compile ns-3

$ ./waf build -j 6

It may possibly end with some errors. We may correct them as follows:

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
 

Finally, the compilation will get successful and will end up showing the following :

If you check the list of compiled modules, then you will find the newly added modules :

  • magister-stats (no Python)
  • satellite (no Python)
  • traffic (no Python)

Testing the working of sns3-satellite module

Now we can test the working of newly added sns3-satellite module by running the provided example simulation as follows:

$ ./waf --run=sat-multicast-example

Now it will end without showing any errors.

Conclusion

sns3-satellite module contains rich features to simulate different aspects of a typical satellite network. We will explore the simulations and visualisation of satellite networks in another article.

Visualizing ns-3 LEO Satellite Network using NetSimulyzer 3D

sns3-satellite module for ns-3 is an open-source project maintained at [1]. The authors of [1]  offer additional services such as simulation process, research, development and configuration services as well as standardization support and training services through [5].

References:

  1. sns3-satellite module for ns-3
  2. SNS3 traffic module for ns-3
  3. SNS3 magister-stats ns-3 module
  4. SNS3 data
  5. https://satellite-ns3.com/
  6. https://www.projectguideline.com/cmake-based-ns-3-37-install-in-debian-11-chroot-environment/
  7. https://www.projectguideline.com/visualizing-ns-3-leo-satellite-network-using-netsimulyzer-3d/
WhatsApp Discuss Through WhatsApp