Skip to content
This repository has been archived by the owner on Jan 11, 2021. It is now read-only.

tmytek/NI-ns3-ApplicationExample

 
 

Repository files navigation

National Instruments ns-3 Application Example

This is an implementation of an API to interface ns-3 network simulator to NI software defined radios for 802.11 and LTE.

Overview

The following figure shows an overview of the setup that can be used for 802.11 and LTE.

Overview

Supported Hardware and Software

  • Support for USRP-2974 (Link)
  • Support for LabVIEW Communications System Design Suite 2.0 (LINK)
  • Support for LabVIEW Communications LTE Application Framework 2.2 (LINK)
  • Support for LabVIEW Communications 802.11 Application Framework 2.2 (LINK )
  • Support for NI-USRP 17.2 Driver (LINK )
  • Support for NI Linux RT LabVIEW Communications 2.0.1 Real-Time Target Image (LINK )
  • Support for Single LTE eNB or 802.11 AccessPoint (AP) and single LTE UE or 802.11 Station (Sta)

Installation Guide

The setup of the system can be accomplished in four steps

  1. Prepare the Hardware
  2. Install Linux RT
  3. Install NS-3
  4. Install LabVIEW Communications and Application Frameworks and run NI ns3 Application Example for 802.11 or LTE

These steps will be described in the next sections.

Prepare the Hardware

The following hardware setup is supported and shall be cabled as shown.

Hardware Setup for NI NS-3 Application Example

Install Linux RT

This section describes the installation of Linux RT on a USRP 2974.

The following steps need to be executed on both eNB/AP and UE/Sta USRP-2974.

To use the ns-3 simulator with the L1/L2 API and integration towards the PHY layer implementations of the LTE and 802.11 Application Framework, the proper Linux RT image for the USRP-2974 as well as for LabVIEW Communications System Design Suite 2.0 has to be used.

Download the image from LabVIEW Communications 2.0.1 Real-Time Target Image

Install the image as described under Provisioning a Real-Time Controller or USRP Stand-Alone Device for LabVIEW Communications for every USRP-2974 in the setup.

Install NS-3

This section describes the installation of the ns-3 stack with the L1/L2 API on a USRP-2974.

The following steps need to be executed on both eNB/AP and UE/Sta USRP-2974.

Connect remotely via ssh (use ssh under Linux or putty under Windows). To find the correct IP address of the device, connect a monitor and keyboard to the USRP-2974 and run ifconfig to yield the IP address for eth0 or check under the Hardware Tab in LabVIEW Communications System Design Suite (if already available) for the registered devices. Use username root with empty password.

For an automated installation process

or proceed with the manual setup described below.

Install required packages from dependencies with the following commands:

opkg update
opkg install --force-downgrade packagegroup-core-buildessential git

Clone the repository and copy it to /home/root/ns-3.26

git clone https://github.com/ni/NI-ns3-ApplicationExample.git /home/root/ns-3.26 

Go into ns-3 folder

cd ns-3.26

Build/compile ns-3 code:

make

The compilation should run without an error.

Install binaries related to NI examples:

make install_ni

To check whether the NI ns3 Application Example has been compiled and installed correctly, just run

For LTE:

ns3.26-ni-lte-simple-optimized

For 802.11

ns3.26-ni-wifi-simple-optimized

These calls of the compiled NI ns3 Application Examples for LTE and 802.11 are running the example in simulation mode where transmitter and receiver are both simulated in one ns3 instance without any connection to the NI Application Frameworks.

Install LabVIEW Communications System Design Suite 2.0 and Application Frameworks 2.2 and run Application Examples

To connect with ns-3 properly over the L1/L2 API, the Application Frameworks need to be configured correctly. The instructions to setup the 802.11 Application Framework and run the NI ns3 Application Example for 802.11 can be found here: Setup 802.11 Application Framework The instructions to setup the LTE Application Framework and run the NI ns3 Application Example for LTE can be found here: Setup LTE Application Framework

LWA/LWIP Extension

In conjunction with the EU funded research project ORCA and the Open Call 1 for Extensions, an extension for the Wifi/LTE interworking technologies LWA and LWIP has been implemented. See a detailed description of the functionality from the authors HERE.

The extension can be used in simulation mode by running the following executable in the terminal:

ns3.26-ni-lte-wifi-extended-optimized

LWA/LWIP functionality can be configured in the corresponding main file: ni-lte-wifi-extended.cc.

Known Issues / Limitations

  • NI examples are currently running only if binaries are build in optimized mode
  • Transmission of packets with MTU size >=1500 bytes is not recommended because of packet fragmentation
  • Tap bridge mode works only if logging is disabled (--niApiEnableLogging="false")
  • On high CPU consumption (e.g. running experiments with high data rates) the eNB stack will drop packets (CNF_TIMEOUT) to ensure further real time processing
  • LWA/LWIP
    • Data aggregation on UE is not implemented (because NS-3 PDCP reordering is not available)
    • WIFI measurement reporting over LWA/LWIP is not implemented

Additional Links

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 65.2%
  • C++ 33.6%
  • C 0.5%
  • Perl 0.5%
  • MATLAB 0.1%
  • Makefile 0.1%