Bug 2478

Summary: VHT A-MPDU subframes are transmitted with the wrong length
Product: ns-3 Reporter: yousridaldoul
Component: wifiAssignee: sebastien.deronne
Status: RESOLVED INVALID    
Severity: major CC: ns-bugs
Priority: P5    
Version: ns-3.25   
Hardware: All   
OS: All   
Attachments: VHT network with bug scenario

Description yousridaldoul 2016-08-16 15:44:39 UTC
Created attachment 2542 [details]
VHT network with bug scenario

If we build a VHT network (802.11ac) and enable A-MPDU, we can observe that A-MPDU subframes are transmitted with the wrong length. Besides, this length increases remarkably when the number of enqueued packets increases.

In the attached file, you can find a simple network configuration that shows this bug. At the top of the file, you find the obtained output. In this configuration there is a VHT network composed of 1 AP and 1 station. A-MPDU is enabled. The station sends packets to the AP every 100ms. It sends packets at the following instants:
- Simulator::Now() = 1000ms : sends 1 packet of 1500 Bytes (transmitted with 1538 Bytes, which is OK as there is the MAC header to be added)
- Simulator::Now() = 1100ms : sends 5 packets of 1500 Bytes each (transmitted with 1570 Bytes, which is a BUG)
- Simulator::Now() = 1200ms : sends 5 packets of 1500 Bytes each (transmitted with 1570 Bytes, which is a BUG)
- Simulator::Now() = 1300ms : sends 40 packets of 1500 Bytes each (transmitted with 1850 Bytes, which is a BUG)
- Simulator::Now() = 1400ms : sends 50 packets of 1500 Bytes each (transmitted with 1930 Bytes, which is a BUG)
- Simulator::Now() = 1500ms : sends 80 packets of 1500 Bytes each (transmitted with 2170 Bytes, which is a BUG)
- Simulator::Now() = 1600ms : sends 80 packets of 1500 Bytes each (transmitted with 2170 Bytes, which is a BUG)

Regards
Comment 1 sebastien.deronne 2016-08-16 16:28:58 UTC
The attached script is not correct, bug to be rejected.

You are calling the Send method with a pointer to the same packet, which keeps adding the headers (llc) to the packet:

SEND: 0x7fc462e1bc40 -> 1508
SEND after LLC: 1516
queue: 1516
SEND: 0x7fc462e1bc40 -> 1516
SEND after LLC: 1524
queue: 1524
SEND: 0x7fc462e1bc40 -> 1524
SEND after LLC: 1532
queue: 1532
SEND: 0x7fc462e1bc40 -> 1532
SEND after LLC: 1540
queue: 1540