make sure the trace hooks get a full packet as input.

This commit is contained in:
Mathieu Lacage
2008-03-19 12:36:09 -07:00
parent c6aa4c8fb4
commit 5b42ef5b02
2 changed files with 13 additions and 9 deletions

View File

@@ -237,12 +237,12 @@ WifiPhy::GetTypeId (void)
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 @@ WifiPhy::SetChannel (Ptr<WifiChannel> channel)
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 @@ WifiPhy::SendPacket (Ptr<const Packet> packet, WifiMode txMode, WifiPreamble pre
*/
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 @@ WifiPhy::EndSync (Ptr<Packet> packet, Ptr<RxEvent> event)
{
NotifySyncEndOk ();
SwitchFromSync ();
m_rxOkTrace (packet, snr, event->GetPayloadMode (), event->GetPreambleType ());
m_syncOkCallback (packet, snr, event->GetPayloadMode (), event->GetPreambleType ());
}
else
@@ -1357,6 +1358,7 @@ WifiPhy::EndSync (Ptr<Packet> packet, Ptr<RxEvent> event)
/* failure. */
NotifySyncEndError ();
SwitchFromSync ();
m_rxErrorTrace (packet, snr);
m_syncErrorCallback (packet, snr);
}
}

View File

@@ -343,9 +343,11 @@ private:
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;