From 39a1bb584898ec82893ed7396c2aded54e192a33 Mon Sep 17 00:00:00 2001 From: calincerchez Date: Wed, 23 Jan 2013 18:19:27 +0200 Subject: [PATCH] mac --- src/linklayer/lte/mac/HARQEntity.h | 2 +- src/linklayer/lte/mac/MAC.cc | 17 +++++++++++++---- src/linklayer/lte/mac/MAC.h | 4 ++++ 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/linklayer/lte/mac/HARQEntity.h b/src/linklayer/lte/mac/HARQEntity.h index 10950da..41f933e 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 c86172f..90eda0e 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 f8ff3de..afe4b84 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(); -- GitLab