Hello,
I recently simulated a network of 30-60 nodes in INET, using the
Ieee80211Mac module as the mac layer. The network is composed of N nodes
all sending to a central node. Each node is composed by an Ethernet
Traffic Generator (EtherTrafGen) that sends packets between 14 and 2000
bytes (uniformly distributed) with an intergeneration time exp(0.005s).
The problem arises when more than 1 AC is declared. With the same
conditions, when the number of queues goes over 1 the delay introduced
in the frame transmission seems unreasonable. All the packets are going
as best effort by default, and no packet is moved to other ACs. The
problem persists even when all the packets are placed in AC 0, and when
they are placed all in AC 3.
The problem persists both with a classifier and the EDCA parameter set
to true, and by forcing the number of queues to be more than two (that,
in turns, makes the edcAF vector size more than 1). Delays measured in
MAC layer at ACKs, SendUp, and in the application layer all agree on the
trend.
For example, after 5 times per try, the delay, vs the number of declared
queues is (along with 95% confidence interval, rightmost column):
nQueues 1 0.0350814453248 0.00106252822337
nQueues 2 2.32976075577 0.0122470987909
nQueues 3 2.33648048436 0.00533848181253
nQueues 4 2.28427334765 0.051946303581
. As is possible to notice, it jumps 2 orders of magnitude up.
Parameters use in the ini file follows at the end of the message.
All the other parameters do not express the same behaviour, remaining
fairly stable. I suspect is the currentAC variable that varying creates
somewhat an error in the backoff computation, but I ma not entirely
sure.
I think it is a bug.
Regards
*.constraintAreaMinX = 0m
*.constraintAreaMinY = 0m
*.constraintAreaMinZ = 0m
*.constraintAreaMaxX = 600m
*.constraintAreaMaxY = 400m
*.constraintAreaMaxZ = 0m
*.debug = true
*.coreDebug = false
**.channelNumber = 0
*.channelControl.carrierFrequency = 2.4GHz
*.channelControl.pMax = 20.0mW
*.channelControl.sat = -110dBm
*.channelControl.alpha = 2
**.mobilityType = "StationaryMobility"
.wlan.bitrate = 54Mbps
*.wlan.mac.opMode = "g"
*.EDCA = true
*.mac.address = "auto"
*.mac.maxQueueSize = 100
*.mac.rtsThresholdBytes = 3000B
*.wlan.mac.retryLimit = 7
*.wlan.mac.cwMinData = 7
*.wlan.mac.cwMinBroadcast = 31
*.wlan.mac.TXOP = 0s #All TXOPs disabled
#.wlan.mac.AIFSN0 = 2
*.radio.transmitterPower = 20.0mW
*.radio.carrierFrequency = 2.4GHz
*.radio.thermalNoise = -110dBm
*.radio.sensitivity = -85dBm
*.radio.pathLossAlpha = 2
*.radio.snirThreshold = 4dB
.apAddress = "10:00:00:00:00:00"
*.accessPointAddress = "10:00:00:00:00:00"
*.mgmt.frameCapacity = 100
**.ap..destAddress = ""
host[*]..destAddress = "10:00:00:00:00:00"
*.packetLength = uniform(14B,2000B) #from ACK_SIZE (112bit) to 2kbyte
*.startTime = uniform(0s,1s)
**.wlan.mac.classifier = "Ieee80211eClassifier4q"
[Config nQueues]
.numHosts = 30
repeat = 5
#.nQueues = ${nq = 1,2,3,4}
*.wlan.mac.classifier = ${classifier =
"Ieee80211eClassifier1q","Ieee80211eClassifier2q","Ieee80211eClassifier3q","Ieee80211eClassifier4q"}
*.sendInterval = exponential(${intrv = 0.005}s)
sim-time-limit = 100s
cmdenv-express-mode = true
**.vector-recording = false
cmdenv-status-frequency=60s