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).
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. Since the version 1.3, for each NR release we will recommend which ns-3 release to use.
To download a working copy of the ns-3-dev repository with the latest changes, you can do the following:
$ git clone https://gitlab.com/nsnam/ns-3-dev.git
$ cd ns-3-dev
At this step, you should check in RELEASE_NOTES.md which is the recommended ns-3 release to use for the specific NR release, and then you can switch to the corresponding ns-3 release branch, e.g., in the following way:
$ git checkout ns-3.36
You can replace "36" with the specific release that you want to use.
If the recommended ns-3 release is not available yet (such in the case that NR is released before the recommended ns-3 release), then you can use ns-3 master until ns-3 recommended release is ready.
Provide your username and password when asked.
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 https://gitlab.com/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.
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!).
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):
$ ./ns3 configure --enable-examples --enable-tests
$ ./ns3 build
A success for both previous commands indicates an overall success.
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 https://gitlab.com/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.
Finally, switch to the latest release branch (fixes are included in the release
branch and not master). For example, for version 1.1 you have to git checkout
to the 5g-lena-v1.1.y
branch.
Let's configure the project:
$ ./ns3 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:
$ ./ns3
If that command returns successfully, Welcome to the NR world !
Notice that sqlite development package and semaphore.h are required (otherwise
you will get an error, e.g: fatal error: ns3/sqlite-output.h
). In this case
you should install libc6-dev:
sudo apt-get install libc6-dev
that will provide semaphore.h and/or sqlite:
apt-get install sqlite sqlite3 libsqlite3-dev
For more details, related to the prerequisites for ns-3 please visit: https://www.nsnam.org/wiki/Installation#Ubuntu.2FDebian.2FMint
.
After the installation of the missing packages run again ./ns3 configure --enable-tests --enable-examples
.
You should see: SQLite stats support: enabled
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.
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/documentation/doxygen.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.
To see the features, please go to the official webpage.
An updated list of published papers that are based on the outcome of this module is available here.
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.
In alphabetical order:
Inspired by [mmWave module by NYU/UniPD] (https://github.com/nyuwireless-unipd/ns3-mmwave)
This software is licensed under the terms of the GNU GPLv2, as like as ns-3. See the LICENSE file for more details.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。