diff --git a/src/devices/wifi/adhoc-wifi-mac.cc b/src/devices/wifi/adhoc-wifi-mac.cc index 2baceceff..969d0563b 100644 --- a/src/devices/wifi/adhoc-wifi-mac.cc +++ b/src/devices/wifi/adhoc-wifi-mac.cc @@ -28,6 +28,7 @@ #include "ns3/pointer.h" #include "ns3/packet.h" #include "ns3/log.h" +#include "ns3/trace-source-accessor.h" NS_LOG_COMPONENT_DEFINE ("AdhocWifiMac"); @@ -48,7 +49,17 @@ AdhocWifiMac::GetTypeId (void) PointerValue (), MakePointerAccessor (&AdhocWifiMac::GetDcaTxop, &AdhocWifiMac::SetDcaTxop), - MakePointerChecker ()) + MakePointerChecker ()) + .AddTraceSource ( "TxOkHeader", + "The header of successfully transmitted packet", + MakeTraceSourceAccessor ( + &AdhocWifiMac::m_txOkCallback) + ) + .AddTraceSource ( "TxErrHeader", + "The header of unsuccessfully transmitted packet", + MakeTraceSourceAccessor ( + &AdhocWifiMac::m_txErrCallback) + ) ; return tid; } @@ -257,7 +268,16 @@ AdhocWifiMac::SetDcaTxop (Ptr dcaTxop) m_dca = dcaTxop; m_dca->SetLow (m_low); m_dca->SetManager (m_dcfManager); + m_dca->SetTxFailedCallback (MakeCallback (&AdhocWifiMac::TxFailed, this)); +} +void +AdhocWifiMac::TxOk (const WifiMacHeader &hdr) +{ + m_txOkCallback (hdr); +} +void +AdhocWifiMac::TxFailed (const WifiMacHeader &hdr) +{ + m_txErrCallback (hdr); } - - } // namespace ns3 diff --git a/src/devices/wifi/adhoc-wifi-mac.h b/src/devices/wifi/adhoc-wifi-mac.h index 3c56182c1..04280bf31 100644 --- a/src/devices/wifi/adhoc-wifi-mac.h +++ b/src/devices/wifi/adhoc-wifi-mac.h @@ -88,6 +88,8 @@ private: AdhocWifiMac &operator = (const AdhocWifiMac &o); Ptr GetDcaTxop(void) const; void SetDcaTxop (Ptr dcaTxop); + void TxOk (WifiMacHeader const &hdr); + void TxFailed (WifiMacHeader const &hdr); Ptr m_dca; Callback, Mac48Address, Mac48Address> m_upCallback; @@ -97,6 +99,8 @@ private: MacRxMiddle *m_rxMiddle; Ptr m_low; Ssid m_ssid; + TracedCallback m_txOkCallback; + TracedCallback m_txErrCallback; }; } // namespace ns3