~comnets/openwns-systemtest-wimac/systemtest-wimac--main--1.0

« back to all changes in this revision

Viewing changes to configIMTA/configUMa.py

  • Committer: Maciej Muehleisen
  • Date: 2010-05-26 20:12:45 UTC
  • mto: This revision was merged to the branch mainline in revision 61.
  • Revision ID: mue@comnets.rwth-aachen.de-20100526201245-18g45454981e2yjy
Reduced OFDMA tests to one test at 5MHz BW. Added IMT-A UMa test.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
import openwns
 
2
from openwns.pyconfig import Frozen
 
3
import openwns.evaluation.default
 
4
 
 
5
import scenarios
 
6
import scenarios.builders
 
7
import scenarios.placer
 
8
import scenarios.antenna
 
9
 
 
10
import ip
 
11
import ip.BackboneHelpers
 
12
 
 
13
import wimac.support.nodecreators
 
14
import wimac.support.helper
 
15
import wimac.evaluation.default
 
16
import wimac.support.PostProcessor as PostProcessor
 
17
 
 
18
from wimac.support.Parameters16m import ParametersOFDMA, ParametersMAC
 
19
 
 
20
import random
 
21
random.seed(7)
 
22
 
 
23
# Global station id generator
 
24
def stationID():
 
25
    id = 1
 
26
    while (True):
 
27
        yield id
 
28
        id += 1
 
29
        
 
30
stationIDs = stationID()
 
31
 
 
32
associations = {}
 
33
 
 
34
####################################################
 
35
###  Distinguished Simulation Settings             #
 
36
####################################################
 
37
class Config(Frozen):
 
38
    # Set basic WiMAX Parameters
 
39
    parametersPhy         = ParametersOFDMA(5)
 
40
    parametersMAC         = ParametersMAC
 
41
    
 
42
    
 
43
    parametersPhy.slotDuration = 6 *  parametersPhy.symbolDuration
 
44
    
 
45
    # 3 * 6 = 18 symbols UD and 18 DL, total of 36 symbols. Other 47 - 36 = 11 symbols
 
46
    # are for PYH, control, and management traffic
 
47
    numberOfTimeSlots = 3
 
48
 
 
49
    packetSize = 2400.0 
 
50
    
 
51
    # Only generate one initial UL packet per UT
 
52
    trafficUL = 0.0 # bit/s per station
 
53
    trafficDL = 0.0 # bit/s per station
 
54
    
 
55
    noIPHeader = True #Set to true to set IP header to 0
 
56
    probeWindowSize = 0.01 # Probe per frame
 
57
    scheduler = "RoundRobin" # "PropFair"
 
58
 
 
59
# General Setup
 
60
WNS = openwns.Simulator(simulationModel = openwns.node.NodeSimulationModel())
 
61
openwns.setSimulator(WNS)
 
62
WNS.maxSimTime = 0.0201 # seconds
 
63
WNS.masterLogger.backtrace.enabled = False
 
64
WNS.masterLogger.enabled = True
 
65
WNS.outputStrategy = openwns.simulator.OutputStrategy.DELETE
 
66
WNS.statusWriteInterval = 30 # in seconds
 
67
WNS.probesWriteInterval = 300 # in seconds
 
68
        
 
69
# Pass WiMAX Phy parameters to wimac::parameter::PHY singleton
 
70
WNS.modules.wimac.parametersPHY = Config.parametersPhy
 
71
                
 
72
WNS.modules.rise.debug.antennas = True                
 
73
                
 
74
bsCreator = wimac.support.nodecreators.WiMAXBSCreator(stationIDs, Config)
 
75
ueCreator = wimac.support.nodecreators.WiMAXUECreator(stationIDs, Config)
 
76
 
 
77
scenario = scenarios.builders.CreatorPlacerBuilderUrbanMacro(
 
78
    bsCreator, 
 
79
    ueCreator, 
 
80
    sectorization = True, 
 
81
    numberOfCircles = 0, 
 
82
    numberOfNodes = 30)
 
83
 
 
84
wimac.support.helper.setupPhy(WNS, Config, "UMa")
 
85
 
 
86
# Set the scheduler
 
87
wimac.support.helper.setupScheduler(WNS, Config.scheduler)
 
88
 
 
89
# Set IP Header to 0 (else it is 20 byte)
 
90
if Config.noIPHeader:
 
91
    wimac.support.helper.disableIPHeader(WNS)
 
92
 
 
93
# Always create uplink traffic, if traffic UL is 0 we sent exacly 
 
94
# one packet for initialization
 
95
wimac.support.helper.createULPoissonTraffic(WNS, Config.trafficUL, Config.packetSize)
 
96
 
 
97
# Only create downlink traffic if we have any
 
98
if Config.trafficDL > 0.0:
 
99
    wimac.support.helper.createDLPoissonTraffic(WNS, Config.trafficDL, Config.packetSize)
 
100
 
 
101
# Configure the window probes
 
102
wimac.support.helper.setL2ProbeWindowSize(WNS, Config.probeWindowSize)
 
103
 
 
104
utNodes = WNS.simulationModel.getNodesByProperty("Type", "UE")
 
105
 
 
106
# DHCP, ARP, DNS for IP
 
107
ip.BackboneHelpers.createIPInfrastructure(WNS, "WIMAXRAN")
 
108
 
 
109
# Probe configuration
 
110
loggingStationIDs = []
 
111
 
 
112
for node in utNodes:    
 
113
    loggingStationIDs.append(node.dll.stationID)
 
114
 
 
115
wimac.evaluation.default.installDebugEvaluation(WNS, loggingStationIDs, "Moments")
 
116
 
 
117
openwns.evaluation.default.installEvaluation(WNS)