Bug 1912

Summary: There should only be one instance of MacTxMiddle per RegularWifiMac station, the current implementation causes sequence number confusion and drops
Product: ns-3 Reporter: l.salameh
Component: wifiAssignee: Daniel L. <nikkipui>
Status: RESOLVED FIXED    
Severity: critical CC: l.salameh, ns-bugs, tomh
Priority: P2 Keywords: bug, patch
Version: ns-3.14   
Hardware: Mac Intel   
OS: Mac OS   
Attachments: Patch for having single MacTxMiddle instance
Patch against ns-3-dev

Description l.salameh 2014-05-07 11:26:46 UTC
Created attachment 1837 [details]
Patch for having single MacTxMiddle instance

The RegularWifiMac class creates a MacTxMiddle instance to allocate
transmitted packet sequence numbers. It gives all the EdcaTxop instances pointers
to this MacTxMiddle instance which is correct.

Unfortunately, on creating a DcaTxop instance, the txop creates its own
MacTxMiddle. To make matters even worse, the beacon dcatxop in the ApWifiMac also
creates another MacTxMiddle instance.

There should me only one sequence number manager per station shared amongst all these classes.

The consequence of having multiple MacTxMiddles is having many sequence number spaces which causes confusion and a divergence from the expected behaviour. 

For example, one of this bug's side effects is dropped Addba response packets.
If an Addba response is a retried packet, it is marked
as a duplicate and dropped even though it has been received correctly
the second time.

The fix should be very straightforward. See attached patch.
Comment 1 Daniel L. 2014-05-16 09:44:38 UTC
Created attachment 1840 [details]
Patch against ns-3-dev

Note that this fix will break the "devices-mesh-dot11s-regression" test (pcap files differ).
Comment 2 Tom Henderson 2014-05-30 02:02:01 UTC
pushed in changeset 10792:75d257577104