make sure the trace hooks get a full packet as input.
--- 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;