Bug 2761

Summary: Packet has no Traffic ID for CTS frames when A-MPDU is used
Product: ns-3 Reporter: Varun Reddy <varunamarreddy>
Component: wifiAssignee: sebastien.deronne
Status: RESOLVED FIXED    
Severity: normal CC: ns-bugs
Priority: P3    
Version: ns-3.26   
Hardware: All   
OS: All   
Attachments: Add a check for CTS packets inside ForwardDown()
Add a check for CTS packets inside ForwardDown()
Add a check for CTS packets inside ForwardDown()

Description Varun Reddy 2017-06-25 12:09:58 UTC
I'm unable to produce a script for this bug, since it does not pop up all the time. However, when I run the same script repeatedly for random TCP application start times (which in turn implies different scenarios), this bug appears. Nevertheless, I will try to post a script soon.

The problem arises in mac-low.cc when SendCtsAfterRts() is called (This does not happen all the time) and then ForwardDown() is called from within this function. Inside ForwardDown(), GetTid() is called, and since the Type ID for a CTS is not checked, it results in the fatal error (Line 163, qos-utils.cc)-      

NS_FATAL_ERROR ("Packet has no Traffic ID");

My suggestion would be to incorporate a check for CTS-type packets as well, inside ForwardDown().
Comment 1 Varun Reddy 2017-06-25 12:11:06 UTC
Created attachment 2875 [details]
Add a check for CTS packets inside ForwardDown()
Comment 2 Varun Reddy 2017-06-25 12:18:46 UTC
Created attachment 2876 [details]
Add a check for CTS packets inside ForwardDown()
Comment 3 sebastien.deronne 2017-06-27 16:24:36 UTC
Patch is OK, thanks.
Comment 4 Varun Reddy 2017-06-28 11:27:53 UTC
Created attachment 2884 [details]
Add a check for CTS packets inside ForwardDown()
Comment 5 sebastien.deronne 2017-07-02 09:45:20 UTC
Fixed in changeset 12944:12dacac685dc