Bug 1011

Summary: assert failed. file=../src/devices/wifi/dcf-manager.cc
Product: ns-3 Reporter: Alex <alejandro.espiga>
Component: wifiAssignee: Nicola Baldo <nicola>
Status: RESOLVED FIXED    
Severity: normal CC: nikkipui, ns-bugs, ruben, tomh, tommaso.pecorella
Priority: P5    
Version: ns-3.7   
Hardware: PC   
OS: Linux   
Attachments: Test scenario for a record.

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