make sure the trace hooks get a full packet as input.
authorMathieu Lacage <mathieu.lacage@sophia.inria.fr>
Wed, 19 Mar 2008 12:36:09 -0700
changeset 2659 38f50c9d55f4
parent 2658 4885203b7855
child 2660 1d54065d728a
make sure the trace hooks get a full packet as input.
src/devices/wifi/wifi-phy.cc
src/devices/wifi/wifi-phy.h
--- a/src/devices/wifi/wifi-phy.cc	Wed Mar 19 12:30:19 2008 -0700
+++ b/src/devices/wifi/wifi-phy.cc	Wed Mar 19 12:36:09 2008 -0700
@@ -237,12 +237,12 @@
                      MakeTraceSourceAccessor (&WifiPhy::m_stateLogger))
     .AddTraceSource ("RxOk",
                      "A packet has been received successfully.",
-                     MakeTraceSourceAccessor (&WifiPhy::m_syncOkCallback))
+                     MakeTraceSourceAccessor (&WifiPhy::m_rxOkTrace))
     .AddTraceSource ("RxError",
                      "A packet has been received unsuccessfully.",
-                     MakeTraceSourceAccessor (&WifiPhy::m_syncErrorCallback))
+                     MakeTraceSourceAccessor (&WifiPhy::m_rxErrorTrace))
     .AddTraceSource ("Tx", "Packet transmission is starting.",
-                     MakeTraceSourceAccessor (&WifiPhy::m_txCallback))
+                     MakeTraceSourceAccessor (&WifiPhy::m_txTrace))
     ;
   return tid;
 }
@@ -371,12 +371,12 @@
 void 
 WifiPhy::SetReceiveOkCallback (SyncOkCallback callback)
 {
-  m_syncOkCallback.ConnectWithoutContext (callback);
+  m_syncOkCallback = callback;
 }
 void 
 WifiPhy::SetReceiveErrorCallback (SyncErrorCallback callback)
 {
-  m_syncErrorCallback.ConnectWithoutContext (callback);
+  m_syncErrorCallback = callback;
 }
 void 
 WifiPhy::StartReceivePacket (Ptr<Packet> packet, 
@@ -480,7 +480,7 @@
    */
   NS_ASSERT (!IsStateTx ());
 
-  m_txCallback (packet, txMode, preamble, txPower);
+  m_txTrace (packet, txMode, preamble, txPower);
   Time txDuration = CalculateTxDuration (packet->GetSize (), txMode, preamble);
   NotifyTxStart (txDuration);
   SwitchToTx (txDuration);
@@ -1350,6 +1350,7 @@
     {
       NotifySyncEndOk ();
       SwitchFromSync ();
+      m_rxOkTrace (packet, snr, event->GetPayloadMode (), event->GetPreambleType ());
       m_syncOkCallback (packet, snr, event->GetPayloadMode (), event->GetPreambleType ());
     } 
   else 
@@ -1357,6 +1358,7 @@
       /* failure. */
       NotifySyncEndError ();
       SwitchFromSync ();
+      m_rxErrorTrace (packet, snr);
       m_syncErrorCallback (packet, snr);
     }
 }
--- a/src/devices/wifi/wifi-phy.h	Wed Mar 19 12:30:19 2008 -0700
+++ b/src/devices/wifi/wifi-phy.h	Wed Mar 19 12:36:09 2008 -0700
@@ -343,9 +343,11 @@
   Time m_previousStateChangeTime;
 
   Ptr<WifiChannel> m_channel;
-  TracedCallback<Ptr<Packet>, double, WifiMode, enum WifiPreamble> m_syncOkCallback;
-  TracedCallback<Ptr<Packet>, double> m_syncErrorCallback;
-  TracedCallback<Ptr<const Packet>,WifiMode,WifiPreamble,uint8_t> m_txCallback;
+  SyncOkCallback m_syncOkCallback;
+  SyncErrorCallback m_syncErrorCallback;
+  TracedCallback<Ptr<const Packet>, double, WifiMode, enum WifiPreamble> m_rxOkTrace;
+  TracedCallback<Ptr<const Packet>, double> m_rxErrorTrace;
+  TracedCallback<Ptr<const Packet>,WifiMode,WifiPreamble,uint8_t> m_txTrace;
   Modes m_modes;
   Listeners m_listeners;
   EventId m_endSyncEvent;