#include <ns3/core-module.h>
#include <ns3/network-module.h>
#include <ns3/mobility-module.h>
#include <ns3/internet-module.h>
#include <ns3/lte-module.h>
#include <ns3/config-store-module.h>
#include <ns3/buildings-module.h>
#include <ns3/point-to-point-helper.h>
#include <ns3/applications-module.h>
#include <ns3/log.h>
#include <iomanip>
#include <ios>
#include <string>
#include <vector>
Go to the source code of this file.
Classes | |
class | FemtocellBlockAllocator |
Functions | |
bool | AreOverlapping (Box a, Box b) |
int | main (int argc, char *argv[]) |
NS_LOG_COMPONENT_DEFINE ("LenaDualStripe") | |
void | PrintGnuplottableBuildingListToFile (std::string filename) |
void | PrintGnuplottableEnbListToFile (std::string filename) |
void | PrintGnuplottableUeListToFile (std::string filename) |
Variables | |
static ns3::GlobalValue | g_areaMarginFactor ("areaMarginFactor","how much the UE area extends outside the macrocell grid, ""expressed as fraction of the interSiteDistance", ns3::DoubleValue(0.5), ns3::MakeDoubleChecker< double >()) |
static ns3::GlobalValue | g_epc ("epc","If true, will setup the EPC to simulate an end-to-end topology, ""with real IP applications over PDCP and RLC UM (or RLC AM by changing ""the default value of EpsBearerToRlcMapping e.g. to RLC_AM_ALWAYS). ""If false, only the LTE radio access will be simulated with RLC SM. ", ns3::BooleanValue(false), ns3::MakeBooleanChecker()) |
static ns3::GlobalValue | g_epcDl ("epcDl","if true, will activate data flows in the downlink when EPC is being used. ""If false, downlink flows won't be activated. ""If EPC is not used, this parameter will be ignored.", ns3::BooleanValue(true), ns3::MakeBooleanChecker()) |
static ns3::GlobalValue | g_epcUl ("epcUl","if true, will activate data flows in the uplink when EPC is being used. ""If false, uplink flows won't be activated. ""If EPC is not used, this parameter will be ignored.", ns3::BooleanValue(true), ns3::MakeBooleanChecker()) |
static ns3::GlobalValue | g_fadingTrace ("fadingTrace","The path of the fading trace (by default no fading trace ""is loaded, i.e., fading is not considered)", ns3::StringValue(""), ns3::MakeStringChecker()) |
static ns3::GlobalValue | g_generateRem ("generateRem","if true, will generate a REM and then abort the simulation;""if false, will run the simulation normally (without generating any REM)", ns3::BooleanValue(false), ns3::MakeBooleanChecker()) |
static ns3::GlobalValue | g_homeEnbActivationRatio ("homeEnbActivationRatio","The HeNB activation ratio as per 3GPP R4-092042", ns3::DoubleValue(0.5), ns3::MakeDoubleChecker< double >()) |
static ns3::GlobalValue | g_homeEnbBandwidth ("homeEnbBandwidth","bandwidth [num RBs] used by HeNBs", ns3::UintegerValue(25), ns3::MakeUintegerChecker< uint16_t >()) |
static ns3::GlobalValue | g_homeEnbDeploymentRatio ("homeEnbDeploymentRatio","The HeNB deployment ratio as per 3GPP R4-092042", ns3::DoubleValue(0.2), ns3::MakeDoubleChecker< double >()) |
static ns3::GlobalValue | g_homeEnbDlEarfcn ("homeEnbDlEarfcn","DL EARFCN used by HeNBs", ns3::UintegerValue(100), ns3::MakeUintegerChecker< uint16_t >()) |
static ns3::GlobalValue | g_homeEnbTxPowerDbm ("homeEnbTxPowerDbm","TX power [dBm] used by HeNBs", ns3::DoubleValue(20.0), ns3::MakeDoubleChecker< double >()) |
static ns3::GlobalValue | g_homeUesHomeEnbRatio ("homeUesHomeEnbRatio","How many (on average) home UEs per HeNB there are in the simulation", ns3::DoubleValue(1.0), ns3::MakeDoubleChecker< double >()) |
static ns3::GlobalValue | g_interSiteDistance ("interSiteDistance","min distance between two nearby macro cell sites", ns3::DoubleValue(500), ns3::MakeDoubleChecker< double >()) |
static ns3::GlobalValue | g_macroEnbBandwidth ("macroEnbBandwidth","bandwidth [num RBs] used by macro eNBs", ns3::UintegerValue(25), ns3::MakeUintegerChecker< uint16_t >()) |
static ns3::GlobalValue | g_macroEnbDlEarfcn ("macroEnbDlEarfcn","DL EARFCN used by macro eNBs", ns3::UintegerValue(100), ns3::MakeUintegerChecker< uint16_t >()) |
static ns3::GlobalValue | g_macroEnbTxPowerDbm ("macroEnbTxPowerDbm","TX power [dBm] used by macro eNBs", ns3::DoubleValue(46.0), ns3::MakeDoubleChecker< double >()) |
static ns3::GlobalValue | g_macroUeDensity ("macroUeDensity","How many macrocell UEs there are per square meter", ns3::DoubleValue(0.00002), ns3::MakeDoubleChecker< double >()) |
static ns3::GlobalValue | g_nApartmentsX ("nApartmentsX","Number of apartments along the X axis in a femtocell block", ns3::UintegerValue(10), ns3::MakeUintegerChecker< uint32_t >()) |
static ns3::GlobalValue | g_nBlocks ("nBlocks","Number of femtocell blocks", ns3::UintegerValue(1), ns3::MakeUintegerChecker< uint32_t >()) |
static ns3::GlobalValue | g_nFloors ("nFloors","Number of floors", ns3::UintegerValue(1), ns3::MakeUintegerChecker< uint32_t >()) |
static ns3::GlobalValue | g_nMacroEnbSites ("nMacroEnbSites","How many macro sites there are", ns3::UintegerValue(3), ns3::MakeUintegerChecker< uint32_t >()) |
static ns3::GlobalValue | g_nMacroEnbSitesX ("nMacroEnbSitesX","(minimum) number of sites along the X-axis of the hex grid", ns3::UintegerValue(1), ns3::MakeUintegerChecker< uint32_t >()) |
static ns3::GlobalValue | g_numBearersPerUe ("numBearersPerUe","How many bearers per UE there are in the simulation", ns3::UintegerValue(1), ns3::MakeUintegerChecker< uint16_t >()) |
static ns3::GlobalValue | g_outdoorUeMaxSpeed ("outdoorUeMaxSpeed","Maximum speed value of macor UE with random waypoint model [m/s].", ns3::DoubleValue(0.0), ns3::MakeDoubleChecker< double >()) |
static ns3::GlobalValue | g_outdoorUeMinSpeed ("outdoorUeMinSpeed","Minimum speed value of macor UE with random waypoint model [m/s].", ns3::DoubleValue(0.0), ns3::MakeDoubleChecker< double >()) |
static ns3::GlobalValue | g_simTime ("simTime","Total duration of the simulation [s]", ns3::DoubleValue(0.25), ns3::MakeDoubleChecker< double >()) |
static ns3::GlobalValue | g_srsPeriodicity ("srsPeriodicity","SRS Periodicity (has to be at least ""greater than the number of UEs per eNB)", ns3::UintegerValue(80), ns3::MakeUintegerChecker< uint16_t >()) |
static ns3::GlobalValue | g_useUdp ("useUdp","if true, the UdpClient application will be used. ""Otherwise, the BulkSend application will be used over a TCP connection. ""If EPC is not used, this parameter will be ignored.", ns3::BooleanValue(true), ns3::MakeBooleanChecker()) |
Definition at line 47 of file lena-dual-stripe.cc.
References ns3::Box::xMax, ns3::Box::xMin, ns3::Box::yMax, and ns3::Box::yMin.
Referenced by FemtocellBlockAllocator::OverlapsWithAnyPrevious().
int main | ( | int | argc, |
char * | argv[] | ||
) |
Definition at line 351 of file lena-dual-stripe.cc.
References ns3::LteHelper::ActivateDataRadioBearer(), ns3::LteHelper::ActivateDedicatedEpsBearer(), ns3::EpcTft::Add(), ns3::ApplicationContainer::Add(), ns3::NetDeviceContainer::Add(), ns3::NodeContainer::Add(), ns3::Ipv4StaticRouting::AddNetworkRouteTo(), ns3::LteHelper::AddX2Interface(), ns3::Ipv4AddressHelper::Assign(), ns3::PointToPointEpcHelper::AssignUeIpv4Address(), ns3::LteHelper::Attach(), ns3::LteHelper::AttachToClosestEnb(), ns3::NetDeviceContainer::Begin(), ns3::NodeContainer::Begin(), first::clientApps, ns3::ConfigStore::ConfigureDefaults(), FemtocellBlockAllocator::Create(), ns3::NodeContainer::Create(), ns3::LteHelper::EnableMacTraces(), ns3::LteHelper::EnablePdcpTraces(), ns3::LteHelper::EnableRlcTraces(), ns3::NetDeviceContainer::End(), ns3::NodeContainer::End(), ns3::StringValue::Get(), ns3::DoubleValue::Get(), ns3::BooleanValue::Get(), ns3::UintegerValue::Get(), ns3::NetDeviceContainer::Get(), ns3::NodeContainer::Get(), ns3::Ipv4InterfaceContainer::GetAddress(), ns3::NetDeviceContainer::GetN(), ns3::NodeContainer::GetN(), ns3::Object::GetObject(), ns3::PointToPointEpcHelper::GetPgwNode(), ns3::Ipv4StaticRoutingHelper::GetStaticRouting(), ns3::PointToPointEpcHelper::GetUeDefaultGatewayAddress(), ns3::UniformRandomVariable::GetValue(), ns3::PacketSinkHelper::Install(), ns3::RadioEnvironmentMapHelper::Install(), ns3::BulkSendHelper::Install(), ns3::PointToPointHelper::Install(), ns3::InternetStackHelper::Install(), ns3::UdpClientHelper::Install(), ns3::MobilityHelper::Install(), ns3::LteHelper::InstallEnbDevice(), ns3::LteHelper::InstallUeDevice(), ns3::EpcTft::PacketFilter::localPortEnd, ns3::EpcTft::PacketFilter::localPortStart, ns3::Time::MilliSeconds(), NS_LOG_LOGIC, ns3::CommandLine::Parse(), PrintGnuplottableBuildingListToFile(), PrintGnuplottableEnbListToFile(), PrintGnuplottableUeListToFile(), ns3::EpcTft::PacketFilter::remotePortEnd, ns3::EpcTft::PacketFilter::remotePortStart, ns3::Time::Seconds(), first::serverApps, ns3::BulkSendHelper::SetAttribute(), ns3::ObjectBase::SetAttribute(), ns3::Ipv4AddressHelper::SetBase(), ns3::PointToPointHelper::SetChannelAttribute(), ns3::Config::SetDefault(), ns3::Ipv4StaticRouting::SetDefaultRoute(), ns3::PointToPointHelper::SetDeviceAttribute(), ns3::LteHelper::SetEnbAntennaModelAttribute(), ns3::LteHelper::SetEnbAntennaModelType(), ns3::LteHelper::SetEnbDeviceAttribute(), ns3::LteHelper::SetEpcHelper(), ns3::LteHelper::SetFadingModelAttribute(), ns3::LteHexGridEnbTopologyHelper::SetLteHelper(), ns3::MobilityHelper::SetMobilityModel(), ns3::LteHelper::SetPathlossModelAttribute(), ns3::MobilityHelper::SetPositionAllocator(), ns3::LteHexGridEnbTopologyHelper::SetPositionAndInstallEnbDevice(), ns3::LteHelper::SetSpectrumChannelType(), ns3::LteHelper::SetUeDeviceAttribute(), ns3::ApplicationContainer::Start(), startTime, ns3::Box::xMax, ns3::Box::xMin, ns3::Box::yMax, ns3::Box::yMin, ns3::Box::zMax, and ns3::Box::zMin.
NS_LOG_COMPONENT_DEFINE | ( | "LenaDualStripe" | ) |
void PrintGnuplottableBuildingListToFile | ( | std::string | filename | ) |
Definition at line 144 of file lena-dual-stripe.cc.
References NS_LOG_ERROR, ns3::Box::xMax, ns3::Box::xMin, ns3::Box::yMax, and ns3::Box::yMin.
Referenced by main().
void PrintGnuplottableEnbListToFile | ( | std::string | filename | ) |
Definition at line 195 of file lena-dual-stripe.cc.
References ns3::LteEnbNetDevice::GetCellId(), ns3::Node::GetDevice(), ns3::Node::GetNDevices(), ns3::Object::GetObject(), GetPosition(), NS_LOG_ERROR, ns3::Vector3D::x, and ns3::Vector3D::y.
Referenced by main().
void PrintGnuplottableUeListToFile | ( | std::string | filename | ) |
Definition at line 167 of file lena-dual-stripe.cc.
References ns3::Node::GetDevice(), ns3::LteUeNetDevice::GetImsi(), ns3::Node::GetNDevices(), ns3::Object::GetObject(), GetPosition(), NS_LOG_ERROR, ns3::Vector3D::x, and ns3::Vector3D::y.
Referenced by main().
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |