src/devices/wifi/dca-txop.cc
changeset 2268 0e57ac711220
parent 2165 6acd0dca66f9
child 2270 7eb30e93d305
--- a/src/devices/wifi/dca-txop.cc	Wed Dec 12 09:33:22 2007 +0100
+++ b/src/devices/wifi/dca-txop.cc	Wed Dec 12 12:03:38 2007 +0100
@@ -31,6 +31,8 @@
 #include "mac-low.h"
 #include "wifi-mac-queue.h"
 #include "mac-tx-middle.h"
+#include "wifi-mac-trailer.h"
+#include "mac-stations.h"
 #include "wifi-phy.h"
 #include "random-stream.h"
 
@@ -132,6 +134,11 @@
 {
   m_parameters = parameters;
 }
+void
+DcaTxop::SetStations (MacStations *stations)
+{
+  m_stations = stations;
+}
 void 
 DcaTxop::SetTxMiddle (MacTxMiddle *txMiddle)
 {
@@ -162,6 +169,10 @@
 void 
 DcaTxop::Queue (Ptr<const Packet> packet, WifiMacHeader const &hdr)
 {
+  WifiMacTrailer fcs;
+  uint32_t fullPacketSize = hdr.GetSerializedSize () + packet->GetSize () + fcs.GetSerializedSize ();
+  MacStation *station = m_stations->Lookup (hdr.GetAddr1 ());
+  station->PrepareForQueue (packet, fullPacketSize);
   m_queue->Enqueue (packet, hdr);
   StartAccessIfNeeded ();
 }