diff --git a/src/linklayer/lte/mac/HARQEntity.h b/src/linklayer/lte/mac/HARQEntity.h index 10950da3ae2c644d27d4d29c38edae80123d7598..41f933e12567cbfa3f81d765246bc6b01ed57d8c 100644 --- a/src/linklayer/lte/mac/HARQEntity.h +++ b/src/linklayer/lte/mac/HARQEntity.h @@ -20,7 +20,7 @@ class HARQEntity { private: - std::vector procs; + std::map procs; public: HARQEntity(); virtual ~HARQEntity(); diff --git a/src/linklayer/lte/mac/MAC.cc b/src/linklayer/lte/mac/MAC.cc index c86172fbf428a10db66c2ce8d5191c44320e8e44..90eda0e3be3432f5554db5a999fbeaecf70295b7 100644 --- a/src/linklayer/lte/mac/MAC.cc +++ b/src/linklayer/lte/mac/MAC.cc @@ -24,7 +24,8 @@ Define_Module(MAC); MAC::MAC() { - // TODO Auto-generated constructor stub + // TODO Auto-generated constructor stub + ttiId = 0; } MAC::~MAC() { @@ -40,14 +41,22 @@ void MAC::initialize(int stage) { rnti = uniform(RA_RNTI_MIN_VALUE, RA_RNTI_MAX_VALUE); sendDown(new cPacket("RandomAccessRequest"), PRACH, RandomAccessRequest, RaRnti, rnti, 1); } + + ttiTimer = new cMessage("TTI-TIMER"); + this->scheduleAt(simTime() + TTI_TIMER_TIMEOUT, ttiTimer); + ttiTimer->setContextPointer(this); } } void MAC::handleMessage(cMessage *msg) { - if (msg->arrivedOn("lowerLayerIn")) { - handleLowerMessage(msg); + if (msg->isSelfMessage()) { + } else { - handleUpperMessage(msg); + if (msg->arrivedOn("lowerLayerIn")) { + handleLowerMessage(msg); + } else { + handleUpperMessage(msg); + } } } diff --git a/src/linklayer/lte/mac/MAC.h b/src/linklayer/lte/mac/MAC.h index f8ff3de920b172e0ab669e495fd7c4aa8a75becc..afe4b846271fe75ea0182a2deaecfb72427d4b1e 100644 --- a/src/linklayer/lte/mac/MAC.h +++ b/src/linklayer/lte/mac/MAC.h @@ -25,6 +25,7 @@ #define RA_RNTI_MAX_VALUE 60 #define C_RNTI_MIN_VALUE 1 #define C_RNTI_MAX_VALUE 65523 +#define TTI_TIMER_TIMEOUT 1 class MAC : public cSimpleModule, public INotifiable { protected: @@ -33,6 +34,9 @@ protected: NotificationBoard *nb; virtual void receiveChangeNotification(int category, const cPolymorphic *details) {} + + cMessage *ttiTimer; + unsigned ttiId; public: MAC(); virtual ~MAC();