diff --git a/src/lte/examples/lena-rlc-calculator.cc b/src/lte/examples/lena-rlc-calculator.cc index d74999ef2..aad992359 100644 --- a/src/lte/examples/lena-rlc-calculator.cc +++ b/src/lte/examples/lena-rlc-calculator.cc @@ -23,8 +23,6 @@ #include "ns3/network-module.h" #include "ns3/mobility-module.h" #include "ns3/lte-module.h" -#include "ns3/mac-stats-calculator.h" -#include "ns3/rlc-stats-calculator.h" #include "ns3/config-store.h" //#include "ns3/gtk-config-store.h" @@ -33,29 +31,8 @@ using namespace ns3; -void UlTxPduCallback(Ptr rlcStats, std::string path, - uint16_t rnti, uint8_t lcid, uint32_t packetSize) -{ - rlcStats->UlTxPdu(rnti, lcid, packetSize); -} -void UlRxPduCallback(Ptr rlcStats, std::string path, - uint16_t rnti, uint8_t lcid, uint32_t packetSize, uint64_t delay) -{ - rlcStats->UlRxPdu(rnti, lcid, packetSize, delay); -} -void DlTxPduCallback(Ptr rlcStats, std::string path, - uint16_t rnti, uint8_t lcid, uint32_t packetSize) -{ - rlcStats->DlTxPdu(rnti, lcid, packetSize); -} - -void DlRxPduCallback(Ptr rlcStats, std::string path, - uint16_t rnti, uint8_t lcid, uint32_t packetSize, uint64_t delay) -{ - rlcStats->DlRxPdu(rnti, lcid, packetSize, delay); -} int main (int argc, char *argv[]) @@ -104,19 +81,8 @@ int main (int argc, char *argv[]) Simulator::Stop (Seconds (4)); - // Insert RLC Performance Calculator - Ptr rlcStats = CreateObject (); - Config::Connect("/NodeList/0/DeviceList/0/LteEnbRrc/UeMap/*/RadioBearerMap/*/LteRlc/TxPDU", - MakeBoundCallback(&DlTxPduCallback, rlcStats)); - Config::Connect("/NodeList/*/DeviceList/0/LteUeRrc/RlcMap/*/RxPDU", - MakeBoundCallback(&DlRxPduCallback, rlcStats)); - - Config::Connect("/NodeList/*/DeviceList/0/LteUeRrc/RlcMap/*/TxPDU", - MakeBoundCallback(&UlTxPduCallback, rlcStats)); - Config::Connect ("/NodeList/0/DeviceList/0/LteEnbRrc/UeMap/*/RadioBearerMap/*/LteRlc/RxPDU", - MakeBoundCallback(&UlRxPduCallback, rlcStats)); - lena->EnableMacTraces (); + lena->EnableRlcTraces (); Simulator::Run (); diff --git a/src/lte/helper/lena-helper.cc b/src/lte/helper/lena-helper.cc index 7ce685eae..c5d73e244 100644 --- a/src/lte/helper/lena-helper.cc +++ b/src/lte/helper/lena-helper.cc @@ -64,6 +64,7 @@ LenaHelper::DoStart (void) m_downlinkChannel->AddSpectrumPropagationLossModel (dlPropagationModel); m_uplinkChannel->AddSpectrumPropagationLossModel (ulPropagationModel); macStats = CreateObject (); + rlcStats = CreateObject (); Object::DoStart (); } @@ -402,5 +403,59 @@ LenaHelper::EnableUlMacTraces (void) MakeBoundCallback(&UlSchedulingCallback, macStats)); } +void +LenaHelper::EnableRlcTraces (void) +{ + EnableDlRlcTraces (); + EnableUlRlcTraces (); + +} + +void +DlTxPduCallback(Ptr rlcStats, std::string path, + uint16_t rnti, uint8_t lcid, uint32_t packetSize) +{ + rlcStats->DlTxPdu(rnti, lcid, packetSize); +} + +void +DlRxPduCallback(Ptr rlcStats, std::string path, + uint16_t rnti, uint8_t lcid, uint32_t packetSize, uint64_t delay) +{ + rlcStats->DlRxPdu(rnti, lcid, packetSize, delay); +} + +void +LenaHelper::EnableDlRlcTraces (void) +{ + Config::Connect("/NodeList/0/DeviceList/0/LteEnbRrc/UeMap/*/RadioBearerMap/*/LteRlc/TxPDU", + MakeBoundCallback(&DlTxPduCallback, rlcStats)); + Config::Connect("/NodeList/*/DeviceList/0/LteUeRrc/RlcMap/*/RxPDU", + MakeBoundCallback(&DlRxPduCallback, rlcStats)); +} + +void +UlTxPduCallback(Ptr rlcStats, std::string path, + uint16_t rnti, uint8_t lcid, uint32_t packetSize) +{ + rlcStats->UlTxPdu(rnti, lcid, packetSize); +} + +void +UlRxPduCallback(Ptr rlcStats, std::string path, + uint16_t rnti, uint8_t lcid, uint32_t packetSize, uint64_t delay) +{ + rlcStats->UlRxPdu(rnti, lcid, packetSize, delay); +} + + +void +LenaHelper::EnableUlRlcTraces (void) +{ + Config::Connect("/NodeList/*/DeviceList/0/LteUeRrc/RlcMap/*/TxPDU", + MakeBoundCallback(&UlTxPduCallback, rlcStats)); + Config::Connect ("/NodeList/0/DeviceList/0/LteEnbRrc/UeMap/*/RadioBearerMap/*/LteRlc/RxPDU", + MakeBoundCallback(&UlRxPduCallback, rlcStats)); +} } // namespace ns3 diff --git a/src/lte/helper/lena-helper.h b/src/lte/helper/lena-helper.h index 34d6aa7d8..34bd29c60 100644 --- a/src/lte/helper/lena-helper.h +++ b/src/lte/helper/lena-helper.h @@ -31,6 +31,7 @@ #include #include #include +#include namespace ns3 { @@ -166,6 +167,20 @@ public: */ void EnableUlMacTraces (void); + /** + * Enable trace sinks for RLC layer + */ + void EnableRlcTraces (void); + + /** + * Enable trace sinks for DL RLC layer + */ + void EnableDlRlcTraces (void); + + /** + * Enable trace sinks for UL MAC layer + */ + void EnableUlRlcTraces (void); protected: @@ -184,6 +199,7 @@ private: ObjectFactory m_propagationModelFactory; Ptr macStats; + Ptr rlcStats; };