190 likes | 410 Views
LTE-Sim. 2014/05/13 報告者 - 蘇宏仁. 安裝流程. 1. 下載 LTE-SIM https://code.google.com/p/lte-sim/downloads/list 目前最新版本為 lte-sim-r5 2. 解壓縮 3.make. 執行指令. . /LTE-Sim Simple . /LTE-Sim -h. LTE-Sim is an open source framework to simulate LTE networks.
E N D
LTE-Sim 2014/05/13 報告者-蘇宏仁
安裝流程 • 1.下載LTE-SIM • https://code.google.com/p/lte-sim/downloads/list • 目前最新版本為 lte-sim-r5 • 2.解壓縮 • 3.make
執行指令 • . /LTE-Sim Simple • . /LTE-Sim -h
LTE-Sim is an open source framework to simulate LTE networks. • Simulate uplink and downlink scheduling strategies in multicell/multiuser environments, taking into account user mobility, radio resource optimization,QoS,handover procedures, frequency reuse techniques, the adaptive modulation and coding module.
SOFTWARE DESIGN • There are four main components: • 1) the Simulator • 2) the NetworkManager • 3) the FlowsManager • 4) the FrameManager
SOFTWARE DESIGN • Four different traffic generators: • voice over IP (VoIP) • Constant bit rate (CBR) • Infinite buffer • Video
SOFTWARE DESIGN • PF: It assigns radio resources taking into account both the experienced channel quality and the past user throughput. • M-LWDF : It supports multiple data users with different QoS requirements. • EXP : It has been designed to increase the priority of real-time flows with respect to non-real-time ones, where their head-of-line packet delay is very close to the delay threshold.
. /LTE-Sim Simple • 1) ID = Identifier. It uniquely identifies the packet. • 2) B = Bearer ID. It identifies the bearer used to map the packet. • 3) SRC = Source ID. It identifies the node that sends the packet.
. /LTE-Sim Simple • 4) DST = Destination ID. It identifies the node that receives the packet. • 5) T = Time. It represents the instant in which the packet is created. • 6) D = Delay. It represents the delay of the received packet.
#include " . . / channel /LteChannel.h" • #include " . . / core / spectrum/bandwidth-manager.h" • #include " . . / networkTopology / Cell .h" • #include " . . / core / eventScheduler / simulator.h" • #include " . . / flows / application / InfiniteBuffer.h" • #include " . . / flows /QoS/QoSParameters.h" • #include " . . / componentManagers/FrameManager.h" • #include " . . / componentManagers/FlowsManager.h" • static void SimpleScenario ( ) • { • }
Create four basic LTE-Sim components • Simulator simulator = Simulator::Init( ) ; • FrameManager frameManager = FrameManager::Init( ) ; • NetworkManager networkManager = NetworkManager::Init( ) ; • FlowsManager flowsManager = FlowsManager::Init( ) ;
Create Channels and Spectrum • LteChannel dlCh = new LteChannel ( ) ; • LteChannel ulCh = new LteChannel ( ) ; • BandwidthManager spectrum = new BandwidthManager ( 5 , 5 , 0 , 0 ) ;
Create an LTE cell • int idCell = 0 ; • int radius = 1 ; //km • int minDistance = 0 .0035 ; //km • int posX = 0 ; • int posY = 0 ; • Cell* cell = networkManager->CreateCell ( • idCell , radius , minDistance , posX , posY );
Create network elements (eNB, GW, and UE) • //Create ENodeB • int idEnb = 1 ; • ENodeB enb = networkManager->CreateEnodeb ( • idEnb , cell , posX , posY , dlCh , ulCh , spectrum ) ; • Enb->SetDLScheduler(ENodeB::DLScheduler_TYPE_PROPORTIONAL_FAIR ) ; • //Create GW • Gateway gw = networkManager->CreateGateway ( ) ;
//Create UE • int idUe = 2 ; • int posX_ue = 4 0 ; //m • int posY_ue = 0 ; //m • int speed = 3 ; //km/h • double speeDirection = 0 ; • UserEquipment ue = networkManager->CreateUserEquipment ( • idUe , posX_ue , posY_ue , speed , speeDirection , cell , enb ) ;
Create an Infinite Buffer Application • QoSParameters qos = new QoSParameters ( ) ; • int applicationID = 0 ; • int srcPort = 0 ; • int dstPort = 100; • int startTime = 1 0 ; // s • int stopTime = 3 0 ; // s • Application* be = flowsManager->CreateApplication ( • applicationID ,gw, ue ,srcPort , dstPort , TransportProtocol::TRANSPORT_ PROTOCOL_TYPE_UDP ,Application::APPLICATION_TYPE_INFINITE_BUFFER , qos , startTime , stopTime ) ;
//Define the duration of the simulation. • simulator->SetStop ( 6 0 ) ; • //Call the Simulator::Run() function to start the simulation. • simulator->Run ( ) ;