Skip to content

Node "blocked" in an Block Ack Request loop: Bug?

Hello everyone.

Attached is a scenario involving three nodes running AODV, 802.11 ac, an AdHoc Mac, and ns-3 version 3.0.

NS_LOG="YansWifiChannel:WifiPhy:MacLow:WifiMacQueue:Socket:AodvRoutingProtocol:WifiNetDevice:WifiMac" ./build/scratch/transport_3_30 --speed=5 --useOlsr=false --pcap=true --debug=true --dataRate=1Mb/s

I dumped PCAP traffic and the dumps are available there:

After t=14.002697, in the dump-1-0.pcap file, the node adopts a weird behaviour, only sending 802.11 Block Acknowledgment Requests. In particular, no AODV RREQ is sent, even if AODV tries to generate some (see https://remy.grunblatt.org/all.log for the whole text log):

+192.266792652s 1 [node 1] AodvRoutingProtocol:DeferredRouteOutput(): [LOGIC] Send new RREQ for outbound packet to 192.168.1.1
+192.266792652s 1 [node 1] AodvRoutingProtocol:SendRequest(0x55f0d3030490, 192.168.1.1)
[…]
+192.266792652s 1 [node 1] AodvRoutingProtocol:ScheduleRreqRetry(0x55f0d3030490, 192.168.1.1)       
[…]       
+192.266920413s 1 [mac=00:00:00:00:00:02] MacLow:ForwardDown(0x55f0d2feeaa0, 0x55f0d321c6a0, mode: OfdmRate6Mbps txpwrlvl: 0 preamble: 0 channel width: 20 GI: 800 NTx: 1 Nss: 1 Ness: 0 MPDU aggregation: 0 STBC: 0)
+192.266920413s 1 [mac=00:00:00:00:00:02] MacLow:ForwardDown(): [DEBUG] send CTL_BACKREQ, to=00:00:00:00:00:01, size=24, mode=OfdmRate6Mbps, preamble=0, duration=+84000.0ns, seq=0x88f0
+192.266920413s 1 [mac=00:00:00:00:00:02] MacLow:ForwardDown(): [DEBUG] Sending non aggregate MPDU
+192.266920413s 1 WifiPhy:SendPacket(0x55f0d2ff2510, 0x55f0d30ef4d0, mode: OfdmRate6Mbps txpwrlvl: 0 preamble: 0 channel width: 20 GI: 800 NTx: 1 Nss: 1 Ness: 0 MPDU aggregation: 0 STBC: 0)
+192.266920413s 1 WifiPhy:GetPayloadDuration(24, OfdmRate6Mbps)                 
+192.266920413s 1 WifiPhy:SendPacket(): [DEBUG] Transmitting without power restriction
+192.266920413s 1 WifiPhy:GetTxPowerForTransmission(0x55f0d2ff2510, 0)          
+192.266920413s 1 WifiPhy:GetTxPowerForTransmission(0x55f0d2ff2510, 0)          
+192.266920413s 1 YansWifiChannel:Send(0x55f0d2fe6960, 0x55f0d2ff2510, 0x55f0d30ef100, 16.0206, 5.6e-05)
+192.266920413s 1 YansWifiChannel:Send(): [DEBUG] propagation: txPower=16.0206dbm, rxPower=-119.87dbm, distance=941.388m, delay=+3140.0ns
+192.266920413s 1 YansWifiChannel:Send(): [DEBUG] propagation: txPower=16.0206dbm, rxPower=-83.8951dbm, distance=59.5116m, delay=+198.0ns
+192.266920611s 2 YansWifiChannel:Receive(0x55f0d2ff76c0, 0x55f0d30eddc0, -83.8951, 5.6e-05)
+192.266920611s 2 WifiPhy:StartReceivePreamble(0x55f0d2ff76c0, 0x55f0d30eddc0, 4.07836e-12, +56000.0ns)
+192.266920611s 2 WifiPhy:StartRx(0x55f0d2ff76c0, 0x55f0d30eddc0, mode: OfdmRate6Mbps txpwrlvl: 0 preamble: 0 channel width: 20 GI: 800 NTx: 1 Nss: 1 Ness: 0 MPDU aggregation: 0 STBC: 0, 0x55f0d30cc9a0, 4.07836e-12, +56000.0ns)
+192.266920611s 2 WifiPhy:StartRx(): [DEBUG] sync to signal (power=4.07836e-12W)
[…]
+192.266924611s 2 WifiPhy:StartReceiveHeader(0x55f0d2ff76c0, 0x55f0d30eddc0, mode: OfdmRate6Mbps txpwrlvl: 0 preamble: 0 channel width: 20 GI: 800 NTx: 1 Nss: 1 Ness: 0 MPDU aggregation: 0 STBC: 0, 0x55f0d30cc9a0, +52000.0ns)
+192.266924611s 2 WifiPhy:StartReceiveHeader(): [DEBUG] snr(dB)=10.0708, per=0  
+192.266924611s 2 WifiPhy:StartReceiveHeader(): [DEBUG] Drop packet because PHY preamble detection failed

Is that a bug, or does 802.11 ac and AdhocMac not play well together?

Thanks,

Rémy (I can provide any specific log if needed)

transport_3_30.cc