![]() |
5G-LENA nr-v3.3-120-gdac69c56
The 5G/NR module for the ns-3 simulator
|
An example to study Fronthaul limitations on XR traffic. More...
#include "ns3/antenna-module.h"
#include "ns3/applications-module.h"
#include "ns3/boolean.h"
#include "ns3/config-store.h"
#include "ns3/core-module.h"
#include "ns3/flow-monitor-module.h"
#include "ns3/internet-module.h"
#include "ns3/mobility-module.h"
#include "ns3/network-module.h"
#include "ns3/nr-module.h"
#include "ns3/point-to-point-module.h"
#include "ns3/xr-traffic-mixer-helper.h"
#include <vector>
Go to the source code of this file.
Functions | |
void | ConfigureBwpTo (BandwidthPartInfoPtr &bwp, double centerFreq, double bwpBw) |
void | ConfigurePhy (Ptr< NrHelper > nrHelper, Ptr< NetDevice > gnb, double orientationRads, uint16_t beamConfSector, double beamConfElevation) |
void | ConfigureVoiceApp (VoiceApplicationSettings &voiceAppSettings) |
void | ConfigureXrApp (NodeContainer &ueContainer, uint32_t i, Ipv4InterfaceContainer &ueIpIface, enum NrXrConfig config, uint16_t uePort, std::string transportProtocol, NodeContainer &remoteHostContainer, NetDeviceContainer &ueNetDev, Ptr< NrHelper > nrHelper, NrEpsBearer &bearer, Ptr< NrEpcTft > tft, bool isMx1, std::vector< Ptr< NrEpcTft > > &tfts, ApplicationContainer &serverApps, ApplicationContainer &clientApps, ApplicationContainer &pingApps, std::string direction, double arDataRate, uint16_t arFps, double vrDataRate, uint16_t vrFps, double cgDataRate, Ipv4Address remoteHostAddress, uint16_t remoteHostPort) |
static void | PrintUePosition (NodeContainer ueNodes) |
void | ReportAiTrace (const SfnSf &sfn, uint16_t physCellId, uint16_t bwpId, uint32_t airRbs) |
void | ReportFhTrace (const SfnSf &sfn, uint16_t physCellId, uint16_t bwpId, uint64_t reqFh) |
Variables | |
std::ofstream | m_aiTraceFile |
std::string | m_aiTraceFileName |
uint32_t | m_fhCapacity |
std::string | m_fhControlMethod |
std::ofstream | m_fhTraceFile |
std::string | m_fhTraceFileName |
std::string | m_outputDir |
An example to study Fronthaul limitations on XR traffic.
This example has been implemented in order to study the Fronthaul (FH) Control feature implemented in the NrFhControl class. It allows for simulations of single- or multi-cell deployments with variable number of UEs with XR traffic per cell. Each UE can be configured with AR, VR, CG and VoIP traffic. Moreover, a variety of parameters can be configured by the user, such as the propagation scenario, the data rate, the frame per seconds (FPS), the transmit power, and the antenna parameters. You can have a look at the rest of the parameters to check all the possible options offered using the following command:
The basic command to study a single-cell FH schenario with XR traffic and evaluate the impact that the FH limitation can have on the end-to-end throughput and latency, looks as follows:
./ns3 run cttc-nr-fh-xr – –fhCapacity=5000 –fhControlMethod=OptimizeRBs –frequency=30e9 –bandwidth=400e6 –numerology=3 –deployment=SIMPLE –arUeNum=3 –vrUeNum=3 –cgUeNum=3 –voiceUeNum=3 –appDuration=5000 –enableTDD4_1=1 –enableMimoFeedback=1 –txPower=30 –distance=2 –channelUpdatePeriod=0 –channelConditionUpdatePeriod=0 –enableShadowing=0 –isLos=1 –enableHarqRetx=1 –useFixedMcs=0 –enableInterServ=0 –enablePdcpDiscarding=1 –schedulerType=PF –reorderingTimerMs=10
The configuration used in this command is based on the 3GPP R1-2111046 specification for for performance evaluations for XR traffic. Varying the fhCapacity and the fhControlMethod you can reproduce the results presented in the paper "On the impact of Open RAN Fronthaul Control in scenarios with XR Traffic", K. Koutlia, S. Lagen, Computer Networks, Volume 253, August 2024, where you can find a detailed description of the FH Control implementation and an explanation of the results.
Notice that the hexagonal deployment is not updated to latest versions of ns-3 and 5G-LENA therefore errors might por-up. If you are interested on working on it, you will have first to ensure its proper operation.
For the REM generation use:
./ns3 run "cttc-nr-fh-xr –voiceUeNum=2 –numRings=1 –deployment=HEX –dlRem=1 –xMin=-250 –xMax=250 –xRes=700 –yMin=-250 –yMax=250 –yRes=700 –remSector=0 –ns3::NrRadioEnvironmentMapHelper::RemMode=BeamShape –ns3::NrRadioEnvironmentMapHelper::SimTag=testREM"
Definition in file cttc-nr-fh-xr.cc.
void ConfigureBwpTo | ( | BandwidthPartInfoPtr & | bwp, |
double | centerFreq, | ||
double | bwpBw | ||
) |
Definition at line 2242 of file cttc-nr-fh-xr.cc.
void ConfigurePhy | ( | Ptr< NrHelper > | nrHelper, |
Ptr< NetDevice > | gnb, | ||
double | orientationRads, | ||
uint16_t | beamConfSector, | ||
double | beamConfElevation | ||
) |
Definition at line 2251 of file cttc-nr-fh-xr.cc.
void ConfigureVoiceApp | ( | VoiceApplicationSettings & | voiceAppSettings | ) |
Definition at line 2386 of file cttc-nr-fh-xr.cc.
void ConfigureXrApp | ( | NodeContainer & | ueContainer, |
uint32_t | i, | ||
Ipv4InterfaceContainer & | ueIpIface, | ||
enum NrXrConfig | config, | ||
uint16_t | uePort, | ||
std::string | transportProtocol, | ||
NodeContainer & | remoteHostContainer, | ||
NetDeviceContainer & | ueNetDev, | ||
Ptr< NrHelper > | nrHelper, | ||
NrEpsBearer & | bearer, | ||
Ptr< NrEpcTft > | tft, | ||
bool | isMx1, | ||
std::vector< Ptr< NrEpcTft > > & | tfts, | ||
ApplicationContainer & | serverApps, | ||
ApplicationContainer & | clientApps, | ||
ApplicationContainer & | pingApps, | ||
std::string | direction, | ||
double | arDataRate, | ||
uint16_t | arFps, | ||
double | vrDataRate, | ||
uint16_t | vrFps, | ||
double | cgDataRate, | ||
Ipv4Address | remoteHostAddress, | ||
uint16_t | remoteHostPort | ||
) |
Definition at line 2269 of file cttc-nr-fh-xr.cc.
|
static |
Definition at line 2219 of file cttc-nr-fh-xr.cc.
void ReportAiTrace | ( | const SfnSf & | sfn, |
uint16_t | physCellId, | ||
uint16_t | bwpId, | ||
uint32_t | airRbs | ||
) |
Definition at line 2462 of file cttc-nr-fh-xr.cc.
void ReportFhTrace | ( | const SfnSf & | sfn, |
uint16_t | physCellId, | ||
uint16_t | bwpId, | ||
uint64_t | reqFh | ||
) |
Definition at line 2436 of file cttc-nr-fh-xr.cc.
std::ofstream m_aiTraceFile |
Definition at line 75 of file cttc-nr-fh-xr.cc.
std::string m_aiTraceFileName |
Definition at line 76 of file cttc-nr-fh-xr.cc.
uint32_t m_fhCapacity |
Definition at line 72 of file cttc-nr-fh-xr.cc.
std::string m_fhControlMethod |
Definition at line 71 of file cttc-nr-fh-xr.cc.
std::ofstream m_fhTraceFile |
Definition at line 73 of file cttc-nr-fh-xr.cc.
std::string m_fhTraceFileName |
Definition at line 74 of file cttc-nr-fh-xr.cc.
std::string m_outputDir |
Definition at line 77 of file cttc-nr-fh-xr.cc.