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

« back to all changes in this revision

Viewing changes to configIMTA/configRMa.py

  • Committer: Maciej Muehleisen
  • Date: 2010-05-27 17:43:28 UTC
  • mto: This revision was merged to the branch mainline in revision 62.
  • Revision ID: mue@comnets.rwth-aachen.de-20100527174328-s9xe5ewfubkzxd90
Added forgotten files

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 = 100.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.021 # 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.CreatorPlacerBuilderRuralMacro(
 
78
    bsCreator, 
 
79
    ueCreator, 
 
80
    sectorization = True, 
 
81
    numberOfCircles = 0, 
 
82
    numberOfNodes = 6)
 
83
 
 
84
wimac.support.helper.setupPhy(WNS, Config, "RMa")
 
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
# DHCP, ARP, DNS for IP
 
105
ip.BackboneHelpers.createIPInfrastructure(WNS, "WIMAXRAN")
 
106
 
 
107
utNodes = WNS.simulationModel.getNodesByProperty("Type", "UE")
 
108
bsNodes = WNS.simulationModel.getNodesByProperty("Type", "BS")
 
109
 
 
110
# Probe configuration
 
111
loggingStationIDs = []
 
112
 
 
113
for node in utNodes + bsNodes:    
 
114
    loggingStationIDs.append(node.dll.stationID)
 
115
 
 
116
wimac.evaluation.default.installDebugEvaluation(WNS, loggingStationIDs, "Moments")
 
117
 
 
118
# There is currently a difference between opt and dbg, this will be fixed
 
119
WNS.environment.probeBusRegistry.removeMeasurementSource("wimac.cirSDMA")
 
120
WNS.environment.probeBusRegistry.removeMeasurementSource("wimac.carrierSDMA")
 
121
WNS.environment.probeBusRegistry.removeMeasurementSource("wimac.interferenceSDMA")
 
122
 
 
123
openwns.evaluation.default.installEvaluation(WNS)