[General]
tkenv-plugin-path = ../../../etc/plugins
cmdenv-express-mode = false
#record-eventlog = true
#debug-on-errors = true

**.constraintAreaMinX = 0m
**.constraintAreaMinY = 0m
**.constraintAreaMinZ = 0m
**.constraintAreaMaxX = 400m
**.constraintAreaMaxY = 400m
**.constraintAreaMaxZ = 0m

# MAC settings
**.wlan*.bitrate = 18Mbps
**.mac.maxQueueSize = 14
**.mac.rtsThresholdBytes = 3000B
**.mac.retryLimit = 7
**.mac.cwMinData = 31
**.mac.cwMinBroadcast = 31

# Radio
**.radio.transmitter.power = 20mW
**.radio.receiver.sensitivity = -85dBm
**.radio.receiver.snirThreshold = 4dB

**.wlan.macType = "Ieee80211CompatibleMac"

[Config AggregationTest1] # n clients continuously send packets to an AP
network = AggregationTest

# AP
**.ap.wlan.mac.address = "10:00:00:00:00:00"
**.cliHost[*].wlan.mac.address = "auto"
**.mgmt.accessPointAddress = "10:00:00:00:00:00"
**.mgmt.frameCapacity = 10

# cli
**.cli.reqLength = 1000B
**.cli.respLength = 0
**.cli.destAddress = "10:00:00:00:00:00"
**.cli.sendInterval = 0.5ms

AggregationTest.numCli = 3

[Config AggregationTest2] # One client continuously sends packets to multiple clients through an AP.
network = AggregationTest2
num-rngs = 2
**.udpApp[*].rng-0 = 1

**.arpType = "GlobalARP"
**.*.wlan[*].macType = "Ieee80211CompatibleMac"
**.addDefaultRoutes = false

# Sender
**.sender*.numUdpApps = 1
**.sender*.udpApp[0].typename = "UDPBasicApp"
**.sender*.udpApp[0].destAddresses = "sink1 sink2"

**.sender*.udpApp[0].destPort = 1000
**.sender*.udpApp[0].messageLength = 100B
**.sender*.udpApp[0].sendInterval = 1ms
**.sender*.udpApp[0].stopTime = 300s
**.sender*.udpApp[0].startTime = 1s

# Sink
**.sink*.numUdpApps = 1
**.sink*.udpApp[0].typename = "UDPBasicApp"
**.sink*.udpApp[0].destAddresses = "" # They don't send packets.
**.sink*.udpApp[0].destPort = 1000
**.sink*.udpApp[0].localPort = 1000
**.sink*.udpApp[0].messageLength = 1000B
**.sink*.udpApp[0].sendInterval = 10ms
**.sink*.udpApp[0].stopTime = 300s

# Aggregation is turned off. RTS threshold is never reached since the packets
# are 1000 bytes long. In spite of this fact, this scenario has the worst throughput
# performance.
[Config WithoutAggregation]
extends = AggregationTest1

# Aggregation is turned on and rtsThreshold has the default value. RTS threshold is
# reached for all A-MSDU frames but it still has better throughput than WithoutAggregation
# config.
[Config WithAggregation]
extends = AggregationTest1
**.wlan.mac.aMsduAggregatorModuleType = "MsduAggregation"
**.wlan.mac.msduAggregator.aggregationPolicyType = "BasicMsduAggregationPolicy"
**.wlan.mac.msduAggregator.aggregationPolicy.qOsCheck = false

# Aggregation is turned on and rtsThreshold is greater than the default maxAMsduSize so it
# never initiates RTS/CTS exchange. This config has the highest throughput.
[Config WithAggregationAndWithHighRTSThreshold]
extends = AggregationTest1
**.wlan.mac.aMsduAggregatorModuleType = "MsduAggregation"
**.wlan.mac.msduAggregator.aggregationPolicyType = "BasicMsduAggregationPolicy"
**.wlan.mac.msduAggregator.aggregationPolicy.qOsCheck = false
**.mac.rtsThresholdBytes = 5000B

[Config UDPWithoutAggregation]
extends = AggregationTest2

[Config UDPWithAggregation]
extends = AggregationTest2
**.*.wlan[*].mac.aMsduAggregatorModuleType = "MsduAggregation"
**.wlan.mac.msduAggregator.aggregationPolicyType = "BasicMsduAggregationPolicy"
**.wlan.mac.msduAggregator.aggregationPolicy.qOsCheck = false