|
|
| 2957 |
newPacket = packet->Copy (); |
2957 |
newPacket = packet->Copy (); |
| 2958 |
Ptr<Packet> currentAggregatedPacket; |
2958 |
Ptr<Packet> currentAggregatedPacket; |
| 2959 |
CtrlBAckRequestHeader blockAckReq; |
2959 |
CtrlBAckRequestHeader blockAckReq; |
|
|
2960 |
uint8_t barTid = 0; |
| 2960 |
//missing hdr.IsAck() since we have no means of knowing the Tid of the Ack yet |
2961 |
//missing hdr.IsAck() since we have no means of knowing the Tid of the Ack yet |
| 2961 |
if (hdr.IsQosData () || hdr.IsBlockAck ()|| hdr.IsBlockAckReq ()) |
2962 |
if (hdr.IsQosData () || hdr.IsBlockAck ()|| hdr.IsBlockAckReq ()) |
| 2962 |
{ |
2963 |
{ |
|
|
| 3013 |
blockAckSize = packet->GetSize () + hdr.GetSize () + WIFI_MAC_FCS_LENGTH; |
3014 |
blockAckSize = packet->GetSize () + hdr.GetSize () + WIFI_MAC_FCS_LENGTH; |
| 3014 |
qosPolicy = 3; //if the last subrame is block ack req then set ack policy of all frames to blockack |
3015 |
qosPolicy = 3; //if the last subrame is block ack req then set ack policy of all frames to blockack |
| 3015 |
packet->PeekHeader (blockAckReq); |
3016 |
packet->PeekHeader (blockAckReq); |
|
|
3017 |
barTid = blockAckReq.GetTidInfo (); |
| 3016 |
startingSequenceNumber = blockAckReq.GetStartingSequence (); |
3018 |
startingSequenceNumber = blockAckReq.GetStartingSequence (); |
|
|
3019 |
return newPacket; //TODO: since multi-TID is not supported, we should not include the BAR in an A-MPDU |
| 3017 |
} |
3020 |
} |
| 3018 |
aggregated = false; |
3021 |
aggregated = false; |
| 3019 |
bool retry = false; |
3022 |
bool retry = false; |