Bug 1011 - assert failed. file=../src/devices/wifi/dcf-manager.cc
assert failed. file=../src/devices/wifi/dcf-manager.cc
Status: RESOLVED FIXED
Product: ns-3
Classification: Unclassified
Component: wifi
ns-3.7
PC Linux
: P5 normal
Assigned To: Nicola Baldo
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2010-10-21 07:25 UTC by Alex
Modified: 2013-10-10 12:16 UTC (History)
5 users (show)

See Also:


Attachments
Test scenario for a record. (7.33 KB, text/plain)
2013-10-10 12:05 UTC, Daniel L.
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Alex 2010-10-21 07:25:19 UTC
I'm simulating a mesh network, the topology are 5 nodes on line, 90 meters apart. 
 
N0 <-----------> N1 <-----------> N2 <-----------> N3 <-----------> N4

I have set the wifi standard as WIFI_PHY_STANDARD_80211a and enable RTS/CTS.
I have 10 UDP OnOff applications installed from N1 to N0 and 10 other from N3 to N4. Packet size is 1024 Bytes. On node N2 I have an UDP client that send packet to N0 first, and then to N4.
With a datarate of 80 Kbps, per flow in applications on nodes N1 and N3, it works, but when I put datarate of 90 Kps I get the following error:
 
assert failed. file=../src/devices/wifi/dcf-manager.cc, line=699, cond="m_lastNavStart < Simulator::Now ()"
 
When I disable RTS/CTS this error disappears. 
Does anyone know why this error occurs? 

Thanks.
Comment 1 Daniel L. 2013-10-10 12:05:55 UTC
Created attachment 1678 [details]
Test scenario for a record.

Test scenario for a record.
Comment 2 Daniel L. 2013-10-10 12:08:46 UTC
I think changing the assert condition in DcfManager::NotifyNavStartNow from

NS_ASSERT (m_lastNavStart < Simulator::Now ());

to

NS_ASSERT (m_lastNavStart <= Simulator::Now ());

will fix this problem. The new condition is the same as in MacLow::NotifyNav.
Comment 3 Daniel L. 2013-10-10 12:16:15 UTC
changeset:   10211:1af765ed27c8