Giter Club home page Giter Club logo

nr-module's Introduction

3GPP NR ns-3 module

This is an ns-3 3GPP NR module for the simulation of NR non-standalone cellular networks. Ns-3 is used as a base, on top of which we will add our module as plug-in (with limitations that will be discussed below).

Installation for an authorized developer

We try to keep in sync with the latest advancements in ns-3-dev. By the version 1.0, we have upstreamed all our patches to ns-3-dev, making our module independent from the ns-3 version used.

Brand new installation of ns-3-dev repository

To download a working copy of the ns-3-dev repository with the latest changes, you can do the following:

$ git clone [email protected]:nsnam/ns-3-dev.git # If you have an account in gitlab.com
$ cd ns-3-dev

Provide your username and password when asked. If you don't have an account on gitlab.com, you can use https://gitlab.com/nsnam/ns-3-dev.git as the repository address.

Switching from CTTC-provided ns-3-dev

Before v1.0, the NR module needed a custom ns-3-dev version. For those of you that are upgrading from v0.4 to v1.0, the steps to switch to the official ns-3 repository are the following (without recreating the repo configuration):

$ git remote add nsnam [email protected]:nsnam/ns-3-dev.git
$ git checkout master
$ git pull nsnam master

Anyway, we will make sure that the master of our custom ns-3-dev will stay up-to-date with respect to the official ns-3-dev.

Using an existing installation of ns-3

In case you are already using the git mirror of ns-3-dev, hosted at GitHub or GitLab, you are already ready to go (please make sure to be up-to-date with git pull in the master branch!).

Test the installation

To test the installation, after following one of the previous point, you can do a simple configuration and compile test (more options for that later):

$ ./waf configure --enable-examples --enable-tests
$ ./waf

A success for both previous commands indicates an overall success.

Brand new installation of the NR module

As a precondition to the following steps, you must have a working local git repository of ns-3-dev. If that is the case, then, your local git repo is ready to include our nr module (only for authorized users):

$ cd contrib
$ git clone [email protected]:cttc-lena/nr.git
$ cd ..

Please note that the contrib/nr directory will be listed as "Untracked files" every time you do a git status command. Ignore it, as the directory lives as an independent module. As a result, we have now two parallel repository, but one lives inside the other.

Test the NR installation

Let's configure the project:

$ ./waf configure --enable-examples --enable-tests

If the NR module is recognized correctly, you should see "nr" in the list of built modules. If that is not the case, then most probably the previous point failed. Otherwise, you could compile it:

$ ./waf

If that command returns successfully, Welcome to the NR world !

Upgrading 5G-LENA

We assume that your work lives in a separate branch, and that the 'master' branch of the NR repository is left untouched as the first time you downloaded it. If it is not the case, then please move all your work in a separate branch.

A vanilla 'master' branch can be updated by simply running:

$ cd ns-3-dev/contrib/nr    # or src/nr if the module lives under src/
$ git checkout master
$ git pull

At each release, we will incorporate into the master branch all the work that is meant to be released.

Documentation

We maintain two sources of documentation: a user manual, and the Doxygen API documentation. The user manual describes the models and their assumptions; as we developed the module while the standard was not fully available, some parts are not modeling precisely the bits and the procedures indicated by the standard. However, we tried to abstract them accurately. In the Doxygen API documentation, you will find details about design and user usage of any class of the module, as well as description and images for the examples and the tests.

To build the user manual, please do:

$ cd doc
$ make latexpdf

And you fill find the PDF user manual in the directory build/latex. Please note that you may have to install some requirements to build the documentation; you can find the list of packages for any Ubuntu-based distribution in the file .gitlab-ci.yml.

To build the doxygen documentation, please do:

$ python3 doc/m.css/doxygen/dox2html5.py doc/doxygen-mcss.conf --debug

And then you will find the doxygen documentation inside doc/doc/html/. Please note that you may need to initialize the m.css submodule, and to install some packages like python3.

Features

To see the features, please go to the official webpage.

Papers

An updated list of published papers that are based on the outcome of this module is available here.

Future work

About

The Mobile Networks group in CTTC is a group of 10 highly skilled researchers, with expertise in the area of mobile and computer networks, ML/AI based network management, SDN/NFV, energy management, performance evaluation. Our work on performance evaluation started with the design and development of the LTE module of ns-3.

We are on the web.

Authors

In alphabetical order:

  • Zoraze Ali
  • Biljana Bojovic
  • Lorenza Giupponi
  • Katerina Koutlia
  • Sandra Lagen
  • Natale Patriciello

Inspired by [mmWave module by NYU/UniPD] (https://github.com/nyuwireless-unipd/ns3-mmwave)

License

This software is licensed under the terms of the GNU GPLv2, as like as ns-3. See the LICENSE file for more details.

nr-module's People

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.