author | Marco Miozzo <marco.miozzo@cttc.es> |
Fri, 15 Jun 2012 16:49:51 +0200 | |
changeset 9035 | e40974228d94 |
parent 8729 | 74de12409ee5 |
child 9036 | 5e09b29d4af5 |
permissions | -rw-r--r-- |
7385
10beb0e53130
standardize emacs c++ mode comments
Vedran Miletić <rivanvx@gmail.com>
parents:
6852
diff
changeset
|
1 |
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ |
6705 | 2 |
/* |
3 |
* Copyright (c) 2010 TELEMATICS LAB, DEE - Politecnico di Bari |
|
4 |
* |
|
5 |
* This program is free software; you can redistribute it and/or modify |
|
6 |
* it under the terms of the GNU General Public License version 2 as |
|
7 |
* published by the Free Software Foundation; |
|
8 |
* |
|
9 |
* This program is distributed in the hope that it will be useful, |
|
10 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
11 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
12 |
* GNU General Public License for more details. |
|
13 |
* |
|
14 |
* You should have received a copy of the GNU General Public License |
|
15 |
* along with this program; if not, write to the Free Software |
|
16 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 |
* |
|
18 |
* Author: Giuseppe Piro <g.piro@poliba.it> |
|
7886 | 19 |
* Marco Miozzo <mmiozzo@cttc.es> |
6705 | 20 |
*/ |
21 |
||
22 |
#include <ns3/object-factory.h> |
|
23 |
#include <ns3/log.h> |
|
24 |
#include <math.h> |
|
25 |
#include <ns3/simulator.h> |
|
7949 | 26 |
#include <ns3/attribute-accessor-helper.h> |
27 |
#include <ns3/double.h> |
|
28 |
||
29 |
||
7887 | 30 |
#include "lte-enb-phy.h" |
6705 | 31 |
#include "lte-net-device.h" |
32 |
#include "lte-spectrum-value-helper.h" |
|
9035
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
33 |
#include "lte-control-messages.h" |
7887 | 34 |
#include "lte-enb-net-device.h" |
7886 | 35 |
#include "lte-enb-mac.h" |
7947 | 36 |
#include <ns3/lte-common.h> |
7886 | 37 |
|
6705 | 38 |
|
7887 | 39 |
NS_LOG_COMPONENT_DEFINE ("LteEnbPhy"); |
6705 | 40 |
|
41 |
namespace ns3 { |
|
42 |
||
43 |
||
7886 | 44 |
//////////////////////////////////////// |
45 |
// member SAP forwarders |
|
46 |
//////////////////////////////////////// |
|
47 |
||
48 |
||
49 |
class EnbMemberLteEnbPhySapProvider : public LteEnbPhySapProvider |
|
50 |
{ |
|
51 |
public: |
|
7887 | 52 |
EnbMemberLteEnbPhySapProvider (LteEnbPhy* phy); |
7886 | 53 |
|
54 |
// inherited from LteEnbPhySapProvider |
|
55 |
virtual void SendMacPdu (Ptr<Packet> p); |
|
56 |
virtual void SetBandwidth (uint8_t ulBandwidth, uint8_t dlBandwidth); |
|
57 |
virtual void SetCellId (uint16_t cellId); |
|
9035
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
58 |
virtual void SendLteControlMessage (Ptr<LteControlMessage> msg); |
8729
74de12409ee5
Update m_macChTtiDelay fixed to 4 in UL (standard) and make schedulers unaware of channel delays (tests updated according to new delay)
mmiozzo
parents:
8728
diff
changeset
|
59 |
virtual uint8_t GetMacChTtiDelay (); |
8714
398bbcbb3f42
Add MIMO model, test and documentation
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8538
diff
changeset
|
60 |
virtual void SetTransmissionMode (uint16_t rnti, uint8_t txMode); |
398bbcbb3f42
Add MIMO model, test and documentation
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8538
diff
changeset
|
61 |
|
7886 | 62 |
|
63 |
private: |
|
7887 | 64 |
LteEnbPhy* m_phy; |
7886 | 65 |
}; |
66 |
||
7887 | 67 |
EnbMemberLteEnbPhySapProvider::EnbMemberLteEnbPhySapProvider (LteEnbPhy* phy) : m_phy (phy) |
7886 | 68 |
{ |
69 |
||
70 |
} |
|
71 |
||
72 |
||
73 |
void |
|
74 |
EnbMemberLteEnbPhySapProvider::SendMacPdu (Ptr<Packet> p) |
|
75 |
{ |
|
76 |
m_phy->DoSendMacPdu (p); |
|
77 |
} |
|
78 |
||
79 |
void |
|
80 |
EnbMemberLteEnbPhySapProvider::SetBandwidth (uint8_t ulBandwidth, uint8_t dlBandwidth) |
|
81 |
{ |
|
82 |
m_phy->DoSetBandwidth (ulBandwidth, dlBandwidth); |
|
83 |
} |
|
84 |
||
85 |
void |
|
86 |
EnbMemberLteEnbPhySapProvider::SetCellId (uint16_t cellId) |
|
87 |
{ |
|
88 |
m_phy->DoSetCellId (cellId); |
|
89 |
} |
|
90 |
||
91 |
void |
|
9035
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
92 |
EnbMemberLteEnbPhySapProvider::SendLteControlMessage (Ptr<LteControlMessage> msg) |
7886 | 93 |
{ |
9035
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
94 |
m_phy->DoSendLteControlMessage (msg); |
7886 | 95 |
} |
96 |
||
8729
74de12409ee5
Update m_macChTtiDelay fixed to 4 in UL (standard) and make schedulers unaware of channel delays (tests updated according to new delay)
mmiozzo
parents:
8728
diff
changeset
|
97 |
uint8_t |
74de12409ee5
Update m_macChTtiDelay fixed to 4 in UL (standard) and make schedulers unaware of channel delays (tests updated according to new delay)
mmiozzo
parents:
8728
diff
changeset
|
98 |
EnbMemberLteEnbPhySapProvider::GetMacChTtiDelay () |
74de12409ee5
Update m_macChTtiDelay fixed to 4 in UL (standard) and make schedulers unaware of channel delays (tests updated according to new delay)
mmiozzo
parents:
8728
diff
changeset
|
99 |
{ |
74de12409ee5
Update m_macChTtiDelay fixed to 4 in UL (standard) and make schedulers unaware of channel delays (tests updated according to new delay)
mmiozzo
parents:
8728
diff
changeset
|
100 |
return (m_phy->DoGetMacChTtiDelay ()); |
74de12409ee5
Update m_macChTtiDelay fixed to 4 in UL (standard) and make schedulers unaware of channel delays (tests updated according to new delay)
mmiozzo
parents:
8728
diff
changeset
|
101 |
} |
74de12409ee5
Update m_macChTtiDelay fixed to 4 in UL (standard) and make schedulers unaware of channel delays (tests updated according to new delay)
mmiozzo
parents:
8728
diff
changeset
|
102 |
|
8714
398bbcbb3f42
Add MIMO model, test and documentation
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8538
diff
changeset
|
103 |
void |
398bbcbb3f42
Add MIMO model, test and documentation
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8538
diff
changeset
|
104 |
EnbMemberLteEnbPhySapProvider::SetTransmissionMode (uint16_t rnti, uint8_t txMode) |
398bbcbb3f42
Add MIMO model, test and documentation
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8538
diff
changeset
|
105 |
{ |
398bbcbb3f42
Add MIMO model, test and documentation
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8538
diff
changeset
|
106 |
m_phy->DoSetTransmissionMode (rnti, txMode); |
398bbcbb3f42
Add MIMO model, test and documentation
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8538
diff
changeset
|
107 |
} |
398bbcbb3f42
Add MIMO model, test and documentation
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8538
diff
changeset
|
108 |
|
7886 | 109 |
|
110 |
//////////////////////////////////////// |
|
7887 | 111 |
// generic LteEnbPhy methods |
7886 | 112 |
//////////////////////////////////////// |
113 |
||
114 |
||
115 |
||
7887 | 116 |
NS_OBJECT_ENSURE_REGISTERED (LteEnbPhy); |
6705 | 117 |
|
118 |
||
7887 | 119 |
LteEnbPhy::LteEnbPhy () |
7980
f07d99163a56
LteSpectrumPhy instances now plugged onto LtePhy via its constructor
Nicola Baldo <nbaldo@cttc.es>
parents:
7977
diff
changeset
|
120 |
{ |
f07d99163a56
LteSpectrumPhy instances now plugged onto LtePhy via its constructor
Nicola Baldo <nbaldo@cttc.es>
parents:
7977
diff
changeset
|
121 |
NS_LOG_FUNCTION (this); |
f07d99163a56
LteSpectrumPhy instances now plugged onto LtePhy via its constructor
Nicola Baldo <nbaldo@cttc.es>
parents:
7977
diff
changeset
|
122 |
NS_FATAL_ERROR ("This constructor should not be called"); |
f07d99163a56
LteSpectrumPhy instances now plugged onto LtePhy via its constructor
Nicola Baldo <nbaldo@cttc.es>
parents:
7977
diff
changeset
|
123 |
} |
f07d99163a56
LteSpectrumPhy instances now plugged onto LtePhy via its constructor
Nicola Baldo <nbaldo@cttc.es>
parents:
7977
diff
changeset
|
124 |
|
f07d99163a56
LteSpectrumPhy instances now plugged onto LtePhy via its constructor
Nicola Baldo <nbaldo@cttc.es>
parents:
7977
diff
changeset
|
125 |
LteEnbPhy::LteEnbPhy (Ptr<LteSpectrumPhy> dlPhy, Ptr<LteSpectrumPhy> ulPhy) |
f07d99163a56
LteSpectrumPhy instances now plugged onto LtePhy via its constructor
Nicola Baldo <nbaldo@cttc.es>
parents:
7977
diff
changeset
|
126 |
: LtePhy (dlPhy, ulPhy), |
f07d99163a56
LteSpectrumPhy instances now plugged onto LtePhy via its constructor
Nicola Baldo <nbaldo@cttc.es>
parents:
7977
diff
changeset
|
127 |
m_nrFrames (0), |
7886 | 128 |
m_nrSubFrames (0) |
6705 | 129 |
{ |
7886 | 130 |
m_enbPhySapProvider = new EnbMemberLteEnbPhySapProvider (this); |
7944
f7e5e0540487
connection of SAPs moved from EnbNetDevice to LenaHelper
Nicola Baldo <nicola@baldo.biz>
parents:
7943
diff
changeset
|
131 |
Simulator::ScheduleNow (&LteEnbPhy::StartFrame, this); |
6705 | 132 |
} |
133 |
||
134 |
TypeId |
|
7887 | 135 |
LteEnbPhy::GetTypeId (void) |
6705 | 136 |
{ |
7887 | 137 |
static TypeId tid = TypeId ("ns3::LteEnbPhy") |
6707
2ac68a0381ca
improved module after Tom's review
Giuseppe Piro <g.piro@poliba.it>
parents:
6705
diff
changeset
|
138 |
.SetParent<LtePhy> () |
7887 | 139 |
.AddConstructor<LteEnbPhy> () |
7949 | 140 |
.AddAttribute ("TxPower", |
141 |
"Transmission power in dBm", |
|
142 |
DoubleValue (30.0), |
|
143 |
MakeDoubleAccessor (&LteEnbPhy::SetTxPower, |
|
144 |
&LteEnbPhy::GetTxPower), |
|
145 |
MakeDoubleChecker<double> ()) |
|
7981 | 146 |
.AddAttribute ("NoiseFigure", |
147 |
"Loss (dB) in the Signal-to-Noise-Ratio due to non-idealities in the receiver." |
|
148 |
" According to Wikipedia (http://en.wikipedia.org/wiki/Noise_figure), this is " |
|
149 |
"\"the difference in decibels (dB) between" |
|
150 |
" the noise output of the actual receiver to the noise output of an " |
|
151 |
" ideal receiver with the same overall gain and bandwidth when the receivers " |
|
152 |
" are connected to sources at the standard noise temperature T0.\" " |
|
153 |
"In this model, we consider T0 = 290K.", |
|
154 |
DoubleValue (5.0), |
|
155 |
MakeDoubleAccessor (&LteEnbPhy::SetNoiseFigure, |
|
156 |
&LteEnbPhy::GetNoiseFigure), |
|
157 |
MakeDoubleChecker<double> ()) |
|
8664
ab4c821fc251
revision after Giuseppe's comments http://codereview.appspot.com/4626069/#msg1
Nicola Baldo <nbaldo@cttc.es>
parents:
8538
diff
changeset
|
158 |
.AddAttribute ("MacToChannelDelay", |
ab4c821fc251
revision after Giuseppe's comments http://codereview.appspot.com/4626069/#msg1
Nicola Baldo <nbaldo@cttc.es>
parents:
8538
diff
changeset
|
159 |
"The delay in TTI units that occurs between a scheduling decision in the MAC and the actual start of the transmission by the PHY. This is intended to be used to model the latency of real PHY and MAC implementations.", |
8728
5a99218bfd1b
Bug-fix on m_macChTtiDelay management on UE-eNB PHY and consequently update RR-PF schedulers and tests
mmiozzo
parents:
8726
diff
changeset
|
160 |
UintegerValue (2), |
8670
8f63d16fb2e8
fixed compilation error with g++-4.4
Nicola Baldo <nbaldo@cttc.es>
parents:
8664
diff
changeset
|
161 |
MakeUintegerAccessor (&LteEnbPhy::SetMacChDelay, |
8f63d16fb2e8
fixed compilation error with g++-4.4
Nicola Baldo <nbaldo@cttc.es>
parents:
8664
diff
changeset
|
162 |
&LteEnbPhy::GetMacChDelay), |
8f63d16fb2e8
fixed compilation error with g++-4.4
Nicola Baldo <nbaldo@cttc.es>
parents:
8664
diff
changeset
|
163 |
MakeUintegerChecker<uint8_t> ()) |
6705 | 164 |
; |
165 |
return tid; |
|
166 |
} |
|
167 |
||
168 |
||
7887 | 169 |
LteEnbPhy::~LteEnbPhy () |
6705 | 170 |
{ |
171 |
} |
|
172 |
||
7886 | 173 |
void |
7913
ed3a9f8a76d7
added DoDispose to lte-phy and lte-spectrum-phy
Nicola Baldo <nbaldo@cttc.es>
parents:
7887
diff
changeset
|
174 |
LteEnbPhy::DoDispose () |
ed3a9f8a76d7
added DoDispose to lte-phy and lte-spectrum-phy
Nicola Baldo <nbaldo@cttc.es>
parents:
7887
diff
changeset
|
175 |
{ |
ed3a9f8a76d7
added DoDispose to lte-phy and lte-spectrum-phy
Nicola Baldo <nbaldo@cttc.es>
parents:
7887
diff
changeset
|
176 |
NS_LOG_FUNCTION (this); |
7921 | 177 |
m_ueAttached.clear (); |
7930
ccb40542ae88
fixed memory leak in PHY SAP usage
Nicola Baldo <nbaldo@cttc.es>
parents:
7928
diff
changeset
|
178 |
delete m_enbPhySapProvider; |
7913
ed3a9f8a76d7
added DoDispose to lte-phy and lte-spectrum-phy
Nicola Baldo <nbaldo@cttc.es>
parents:
7887
diff
changeset
|
179 |
LtePhy::DoDispose (); |
ed3a9f8a76d7
added DoDispose to lte-phy and lte-spectrum-phy
Nicola Baldo <nbaldo@cttc.es>
parents:
7887
diff
changeset
|
180 |
} |
ed3a9f8a76d7
added DoDispose to lte-phy and lte-spectrum-phy
Nicola Baldo <nbaldo@cttc.es>
parents:
7887
diff
changeset
|
181 |
|
ed3a9f8a76d7
added DoDispose to lte-phy and lte-spectrum-phy
Nicola Baldo <nbaldo@cttc.es>
parents:
7887
diff
changeset
|
182 |
void |
8015 | 183 |
LteEnbPhy::DoStart () |
184 |
{ |
|
185 |
NS_LOG_FUNCTION (this); |
|
186 |
Ptr<SpectrumValue> noisePsd = LteSpectrumValueHelper::CreateNoisePowerSpectralDensity (m_ulEarfcn, m_ulBandwidth, m_noiseFigure); |
|
187 |
m_uplinkSpectrumPhy->SetNoisePowerSpectralDensity (noisePsd); |
|
188 |
LtePhy::DoStart (); |
|
189 |
} |
|
190 |
||
191 |
||
192 |
void |
|
7887 | 193 |
LteEnbPhy::SetLteEnbPhySapUser (LteEnbPhySapUser* s) |
7886 | 194 |
{ |
195 |
m_enbPhySapUser = s; |
|
196 |
} |
|
197 |
||
198 |
LteEnbPhySapProvider* |
|
7887 | 199 |
LteEnbPhy::GetLteEnbPhySapProvider () |
7886 | 200 |
{ |
201 |
return (m_enbPhySapProvider); |
|
202 |
} |
|
203 |
||
7949 | 204 |
void |
205 |
LteEnbPhy::SetTxPower (double pow) |
|
206 |
{ |
|
207 |
NS_LOG_FUNCTION (this << pow); |
|
208 |
m_txPower = pow; |
|
209 |
} |
|
7886 | 210 |
|
7949 | 211 |
double |
212 |
LteEnbPhy::GetTxPower () const |
|
213 |
{ |
|
214 |
NS_LOG_FUNCTION (this); |
|
215 |
return m_txPower; |
|
216 |
} |
|
7886 | 217 |
|
7981 | 218 |
void |
219 |
LteEnbPhy::SetNoiseFigure (double nf) |
|
220 |
{ |
|
221 |
NS_LOG_FUNCTION (this << nf); |
|
8148
09e2d03022a2
run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents:
8015
diff
changeset
|
222 |
m_noiseFigure = nf; |
7981 | 223 |
} |
224 |
||
225 |
double |
|
226 |
LteEnbPhy::GetNoiseFigure () const |
|
227 |
{ |
|
228 |
NS_LOG_FUNCTION (this); |
|
229 |
return m_noiseFigure; |
|
230 |
} |
|
231 |
||
8670
8f63d16fb2e8
fixed compilation error with g++-4.4
Nicola Baldo <nbaldo@cttc.es>
parents:
8664
diff
changeset
|
232 |
void |
8f63d16fb2e8
fixed compilation error with g++-4.4
Nicola Baldo <nbaldo@cttc.es>
parents:
8664
diff
changeset
|
233 |
LteEnbPhy::SetMacChDelay (uint8_t delay) |
8f63d16fb2e8
fixed compilation error with g++-4.4
Nicola Baldo <nbaldo@cttc.es>
parents:
8664
diff
changeset
|
234 |
{ |
8f63d16fb2e8
fixed compilation error with g++-4.4
Nicola Baldo <nbaldo@cttc.es>
parents:
8664
diff
changeset
|
235 |
m_macChTtiDelay = delay; |
8729
74de12409ee5
Update m_macChTtiDelay fixed to 4 in UL (standard) and make schedulers unaware of channel delays (tests updated according to new delay)
mmiozzo
parents:
8728
diff
changeset
|
236 |
for (int i = 0; i < m_macChTtiDelay; i++) |
74de12409ee5
Update m_macChTtiDelay fixed to 4 in UL (standard) and make schedulers unaware of channel delays (tests updated according to new delay)
mmiozzo
parents:
8728
diff
changeset
|
237 |
{ |
74de12409ee5
Update m_macChTtiDelay fixed to 4 in UL (standard) and make schedulers unaware of channel delays (tests updated according to new delay)
mmiozzo
parents:
8728
diff
changeset
|
238 |
Ptr<PacketBurst> pb = CreateObject <PacketBurst> (); |
74de12409ee5
Update m_macChTtiDelay fixed to 4 in UL (standard) and make schedulers unaware of channel delays (tests updated according to new delay)
mmiozzo
parents:
8728
diff
changeset
|
239 |
m_packetBurstQueue.push_back (pb); |
9035
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
240 |
std::list<Ptr<LteControlMessage> > l; |
8729
74de12409ee5
Update m_macChTtiDelay fixed to 4 in UL (standard) and make schedulers unaware of channel delays (tests updated according to new delay)
mmiozzo
parents:
8728
diff
changeset
|
241 |
m_controlMessagesQueue.push_back (l); |
9035
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
242 |
std::list<UlDciLteControlMessage> l1; |
8729
74de12409ee5
Update m_macChTtiDelay fixed to 4 in UL (standard) and make schedulers unaware of channel delays (tests updated according to new delay)
mmiozzo
parents:
8728
diff
changeset
|
243 |
m_ulDciQueue.push_back (l1); |
74de12409ee5
Update m_macChTtiDelay fixed to 4 in UL (standard) and make schedulers unaware of channel delays (tests updated according to new delay)
mmiozzo
parents:
8728
diff
changeset
|
244 |
} |
74de12409ee5
Update m_macChTtiDelay fixed to 4 in UL (standard) and make schedulers unaware of channel delays (tests updated according to new delay)
mmiozzo
parents:
8728
diff
changeset
|
245 |
for (int i = 0; i < UL_PUSCH_TTIS_DELAY; i++) |
74de12409ee5
Update m_macChTtiDelay fixed to 4 in UL (standard) and make schedulers unaware of channel delays (tests updated according to new delay)
mmiozzo
parents:
8728
diff
changeset
|
246 |
{ |
9035
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
247 |
std::list<UlDciLteControlMessage> l1; |
8729
74de12409ee5
Update m_macChTtiDelay fixed to 4 in UL (standard) and make schedulers unaware of channel delays (tests updated according to new delay)
mmiozzo
parents:
8728
diff
changeset
|
248 |
m_ulDciQueue.push_back (l1); |
74de12409ee5
Update m_macChTtiDelay fixed to 4 in UL (standard) and make schedulers unaware of channel delays (tests updated according to new delay)
mmiozzo
parents:
8728
diff
changeset
|
249 |
} |
8670
8f63d16fb2e8
fixed compilation error with g++-4.4
Nicola Baldo <nbaldo@cttc.es>
parents:
8664
diff
changeset
|
250 |
} |
8f63d16fb2e8
fixed compilation error with g++-4.4
Nicola Baldo <nbaldo@cttc.es>
parents:
8664
diff
changeset
|
251 |
|
8f63d16fb2e8
fixed compilation error with g++-4.4
Nicola Baldo <nbaldo@cttc.es>
parents:
8664
diff
changeset
|
252 |
uint8_t |
8f63d16fb2e8
fixed compilation error with g++-4.4
Nicola Baldo <nbaldo@cttc.es>
parents:
8664
diff
changeset
|
253 |
LteEnbPhy::GetMacChDelay (void) const |
8f63d16fb2e8
fixed compilation error with g++-4.4
Nicola Baldo <nbaldo@cttc.es>
parents:
8664
diff
changeset
|
254 |
{ |
8f63d16fb2e8
fixed compilation error with g++-4.4
Nicola Baldo <nbaldo@cttc.es>
parents:
8664
diff
changeset
|
255 |
return (m_macChTtiDelay); |
8f63d16fb2e8
fixed compilation error with g++-4.4
Nicola Baldo <nbaldo@cttc.es>
parents:
8664
diff
changeset
|
256 |
} |
8f63d16fb2e8
fixed compilation error with g++-4.4
Nicola Baldo <nbaldo@cttc.es>
parents:
8664
diff
changeset
|
257 |
|
7886 | 258 |
bool |
8180
5429db8b8c37
Fix Bug JIRA:LENA-145, RNTI as uint16_t in LteEnbPhy
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8148
diff
changeset
|
259 |
LteEnbPhy::AddUePhy (uint16_t rnti, Ptr<LteUePhy> phy) |
7886 | 260 |
{ |
8180
5429db8b8c37
Fix Bug JIRA:LENA-145, RNTI as uint16_t in LteEnbPhy
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8148
diff
changeset
|
261 |
std::map <uint16_t, Ptr<LteUePhy> >::iterator it; |
7886 | 262 |
it = m_ueAttached.find (rnti); |
263 |
if (it == m_ueAttached.end ()) |
|
264 |
{ |
|
8180
5429db8b8c37
Fix Bug JIRA:LENA-145, RNTI as uint16_t in LteEnbPhy
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8148
diff
changeset
|
265 |
m_ueAttached.insert (std::pair<uint16_t, Ptr<LteUePhy> > (rnti, phy)); |
7886 | 266 |
return (true); |
267 |
} |
|
268 |
else |
|
269 |
{ |
|
270 |
NS_LOG_ERROR ("UE already attached"); |
|
271 |
return (false); |
|
272 |
} |
|
273 |
} |
|
6705 | 274 |
|
275 |
bool |
|
8180
5429db8b8c37
Fix Bug JIRA:LENA-145, RNTI as uint16_t in LteEnbPhy
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8148
diff
changeset
|
276 |
LteEnbPhy::DeleteUePhy (uint16_t rnti) |
6705 | 277 |
{ |
8180
5429db8b8c37
Fix Bug JIRA:LENA-145, RNTI as uint16_t in LteEnbPhy
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8148
diff
changeset
|
278 |
std::map <uint16_t, Ptr<LteUePhy> >::iterator it; |
7886 | 279 |
it = m_ueAttached.find (rnti); |
280 |
if (it == m_ueAttached.end ()) |
|
281 |
{ |
|
282 |
NS_LOG_ERROR ("UE not attached"); |
|
283 |
return (false); |
|
284 |
} |
|
285 |
else |
|
286 |
{ |
|
287 |
m_ueAttached.erase (it); |
|
288 |
return (true); |
|
289 |
} |
|
290 |
} |
|
291 |
||
292 |
||
293 |
||
294 |
void |
|
7887 | 295 |
LteEnbPhy::DoSendMacPdu (Ptr<Packet> p) |
7886 | 296 |
{ |
297 |
NS_LOG_FUNCTION (this); |
|
298 |
SetMacPdu (p); |
|
299 |
} |
|
300 |
||
8729
74de12409ee5
Update m_macChTtiDelay fixed to 4 in UL (standard) and make schedulers unaware of channel delays (tests updated according to new delay)
mmiozzo
parents:
8728
diff
changeset
|
301 |
uint8_t |
74de12409ee5
Update m_macChTtiDelay fixed to 4 in UL (standard) and make schedulers unaware of channel delays (tests updated according to new delay)
mmiozzo
parents:
8728
diff
changeset
|
302 |
LteEnbPhy::DoGetMacChTtiDelay () |
74de12409ee5
Update m_macChTtiDelay fixed to 4 in UL (standard) and make schedulers unaware of channel delays (tests updated according to new delay)
mmiozzo
parents:
8728
diff
changeset
|
303 |
{ |
74de12409ee5
Update m_macChTtiDelay fixed to 4 in UL (standard) and make schedulers unaware of channel delays (tests updated according to new delay)
mmiozzo
parents:
8728
diff
changeset
|
304 |
return (m_macChTtiDelay); |
74de12409ee5
Update m_macChTtiDelay fixed to 4 in UL (standard) and make schedulers unaware of channel delays (tests updated according to new delay)
mmiozzo
parents:
8728
diff
changeset
|
305 |
} |
74de12409ee5
Update m_macChTtiDelay fixed to 4 in UL (standard) and make schedulers unaware of channel delays (tests updated according to new delay)
mmiozzo
parents:
8728
diff
changeset
|
306 |
|
7886 | 307 |
|
308 |
void |
|
7887 | 309 |
LteEnbPhy::PhyPduReceived (Ptr<Packet> p) |
7886 | 310 |
{ |
311 |
NS_LOG_FUNCTION (this); |
|
312 |
m_enbPhySapUser->ReceivePhyPdu (p); |
|
6705 | 313 |
} |
314 |
||
315 |
void |
|
7887 | 316 |
LteEnbPhy::DoSetDownlinkSubChannels () |
6705 | 317 |
{ |
318 |
NS_LOG_FUNCTION (this); |
|
319 |
Ptr<SpectrumValue> txPsd = CreateTxPowerSpectralDensity (); |
|
7928
b736f63e9bdf
removed LtePhy::Get{Up,Down}linkSpectrumPhy methods which are evil
Nicola Baldo <nbaldo@cttc.es>
parents:
7921
diff
changeset
|
320 |
m_downlinkSpectrumPhy->SetTxPowerSpectralDensity (txPsd); |
6705 | 321 |
} |
322 |
||
323 |
||
324 |
Ptr<SpectrumValue> |
|
7887 | 325 |
LteEnbPhy::CreateTxPowerSpectralDensity () |
6705 | 326 |
{ |
327 |
NS_LOG_FUNCTION (this); |
|
328 |
||
8015 | 329 |
Ptr<SpectrumValue> psd = LteSpectrumValueHelper::CreateTxPowerSpectralDensity (m_dlEarfcn, m_dlBandwidth, m_txPower, GetDownlinkSubChannels ()); |
6705 | 330 |
|
331 |
return psd; |
|
332 |
} |
|
333 |
||
334 |
||
335 |
void |
|
7887 | 336 |
LteEnbPhy::CalcChannelQualityForUe (std::vector <double> sinr, Ptr<LteSpectrumPhy> ue) |
6705 | 337 |
{ |
338 |
NS_LOG_FUNCTION (this); |
|
339 |
} |
|
340 |
||
7886 | 341 |
|
6705 | 342 |
void |
9035
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
343 |
LteEnbPhy::DoSendLteControlMessage (Ptr<LteControlMessage> msg) |
6705 | 344 |
{ |
345 |
NS_LOG_FUNCTION (this << msg); |
|
7886 | 346 |
// queues the message (wait for MAC-PHY delay) |
347 |
SetControlMessages (msg); |
|
6705 | 348 |
} |
349 |
||
350 |
||
7886 | 351 |
|
6705 | 352 |
void |
9035
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
353 |
LteEnbPhy::ReceiveLteControlMessage (Ptr<LteControlMessage> msg) |
6705 | 354 |
{ |
9035
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
355 |
NS_FATAL_ERROR ("Obsolete function"); |
6705 | 356 |
NS_LOG_FUNCTION (this << msg); |
9035
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
357 |
m_enbPhySapUser->ReceiveLteControlMessage (msg); |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
358 |
} |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
359 |
|
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
360 |
void |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
361 |
LteEnbPhy::ReceiveLteControlMessageList (std::list<Ptr<LteControlMessage> > msgList) |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
362 |
{ |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
363 |
NS_LOG_FUNCTION (this); |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
364 |
std::list<Ptr<LteControlMessage> >::iterator it; |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
365 |
for (it = msgList.begin (); it != msgList.end(); it++) |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
366 |
{ |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
367 |
m_enbPhySapUser->ReceiveLteControlMessage (*it); |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
368 |
} |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
369 |
|
6705 | 370 |
} |
371 |
||
372 |
||
373 |
||
374 |
void |
|
7887 | 375 |
LteEnbPhy::StartFrame (void) |
6705 | 376 |
{ |
7886 | 377 |
NS_LOG_FUNCTION (this); |
6705 | 378 |
|
7886 | 379 |
++m_nrFrames; |
380 |
NS_LOG_INFO ("-----frame " << m_nrFrames << "-----"); |
|
381 |
m_nrSubFrames = 0; |
|
6705 | 382 |
StartSubFrame (); |
383 |
} |
|
384 |
||
385 |
||
386 |
void |
|
7887 | 387 |
LteEnbPhy::StartSubFrame (void) |
6705 | 388 |
{ |
7886 | 389 |
NS_LOG_FUNCTION (this); |
6705 | 390 |
|
7886 | 391 |
++m_nrSubFrames; |
392 |
NS_LOG_INFO ("-----sub frame " << m_nrSubFrames << "-----"); |
|
8728
5a99218bfd1b
Bug-fix on m_macChTtiDelay management on UE-eNB PHY and consequently update RR-PF schedulers and tests
mmiozzo
parents:
8726
diff
changeset
|
393 |
|
9035
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
394 |
|
8728
5a99218bfd1b
Bug-fix on m_macChTtiDelay management on UE-eNB PHY and consequently update RR-PF schedulers and tests
mmiozzo
parents:
8726
diff
changeset
|
395 |
// update info on TB to be received |
9035
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
396 |
std::list<UlDciLteControlMessage> uldcilist = DequeueUlDci (); |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
397 |
std::list<UlDciLteControlMessage>::iterator dciIt = uldcilist.begin (); |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
398 |
m_ulRntiRxed.clear (); |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
399 |
NS_LOG_DEBUG (this << " eNB Expected TBs " << uldcilist.size ()); |
8728
5a99218bfd1b
Bug-fix on m_macChTtiDelay management on UE-eNB PHY and consequently update RR-PF schedulers and tests
mmiozzo
parents:
8726
diff
changeset
|
400 |
for (dciIt = uldcilist.begin (); dciIt!=uldcilist.end (); dciIt++) |
5a99218bfd1b
Bug-fix on m_macChTtiDelay management on UE-eNB PHY and consequently update RR-PF schedulers and tests
mmiozzo
parents:
8726
diff
changeset
|
401 |
{ |
9035
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
402 |
std::map <uint16_t, Ptr<LteUePhy> >::iterator it2; |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
403 |
it2 = m_ueAttached.find ((*dciIt).GetDci ().m_rnti); |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
404 |
|
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
405 |
if (it2 == m_ueAttached.end ()) |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
406 |
{ |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
407 |
NS_LOG_ERROR ("UE not attached"); |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
408 |
} |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
409 |
else |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
410 |
{ |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
411 |
// send info of TB to LteSpectrumPhy |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
412 |
// translate to allocation map |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
413 |
std::vector <int> rbMap; |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
414 |
for (int i = (*dciIt).GetDci ().m_rbStart; i < (*dciIt).GetDci ().m_rbStart + (*dciIt).GetDci ().m_rbLen; i++) |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
415 |
{ |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
416 |
rbMap.push_back (i); |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
417 |
} |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
418 |
m_uplinkSpectrumPhy->AddExpectedTb ((*dciIt).GetDci ().m_rnti, (*dciIt).GetDci ().m_tbSize, (*dciIt).GetDci ().m_mcs, rbMap, 0 /* always SISO*/); |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
419 |
m_ulRntiRxed.push_back ((*dciIt).GetDci ().m_rnti); |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
420 |
} |
8728
5a99218bfd1b
Bug-fix on m_macChTtiDelay management on UE-eNB PHY and consequently update RR-PF schedulers and tests
mmiozzo
parents:
8726
diff
changeset
|
421 |
} |
8148
09e2d03022a2
run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents:
8015
diff
changeset
|
422 |
|
9035
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
423 |
// process the current burst of control messages |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
424 |
std::list<Ptr<LteControlMessage> > ctrlMsg = GetControlMessages (); |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
425 |
std::list<DlDciListElement_s> dlDci; |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
426 |
std::list<UlDciListElement_s> ulDci; |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
427 |
// std::vector <int> dlRb; |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
428 |
m_dlDataRbMap.clear (); |
7886 | 429 |
if (ctrlMsg.size () > 0) |
430 |
{ |
|
9035
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
431 |
std::list<Ptr<LteControlMessage> >::iterator it; |
7886 | 432 |
it = ctrlMsg.begin (); |
433 |
while (it != ctrlMsg.end ()) |
|
434 |
{ |
|
9035
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
435 |
Ptr<LteControlMessage> msg = (*it); |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
436 |
if (msg->GetMessageType () == LteControlMessage::DL_DCI) |
7886 | 437 |
{ |
9035
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
438 |
Ptr<DlDciLteControlMessage> dci = DynamicCast<DlDciLteControlMessage> (msg); |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
439 |
dlDci.push_back (dci->GetDci ()); |
7886 | 440 |
// get the tx power spectral density according to DL-DCI(s) |
441 |
// translate the DCI to Spectrum framework |
|
442 |
uint32_t mask = 0x1; |
|
443 |
for (int i = 0; i < 32; i++) |
|
444 |
{ |
|
445 |
if (((dci->GetDci ().m_rbBitmap & mask) >> i) == 1) |
|
446 |
{ |
|
447 |
for (int k = 0; k < GetRbgSize (); k++) |
|
448 |
{ |
|
9035
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
449 |
m_dlDataRbMap.push_back ((i * GetRbgSize ()) + k); |
7886 | 450 |
//NS_LOG_DEBUG(this << " [enb]DL-DCI allocated PRB " << (i*GetRbgSize()) + k); |
451 |
} |
|
452 |
} |
|
453 |
mask = (mask << 1); |
|
454 |
} |
|
455 |
} |
|
9035
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
456 |
else if (msg->GetMessageType () == LteControlMessage::UL_DCI) |
7886 | 457 |
{ |
9035
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
458 |
Ptr<UlDciLteControlMessage> dci = DynamicCast<UlDciLteControlMessage> (msg); |
8728
5a99218bfd1b
Bug-fix on m_macChTtiDelay management on UE-eNB PHY and consequently update RR-PF schedulers and tests
mmiozzo
parents:
8726
diff
changeset
|
459 |
QueueUlDci (*dci); |
9035
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
460 |
ulDci.push_back (dci->GetDci ()); |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
461 |
} |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
462 |
it++; |
8148
09e2d03022a2
run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents:
8015
diff
changeset
|
463 |
|
7886 | 464 |
} |
465 |
} |
|
9035
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
466 |
|
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
467 |
SendControlChannels (ctrlMsg); |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
468 |
|
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
469 |
// send data frame |
7886 | 470 |
Ptr<PacketBurst> pb = GetPacketBurst (); |
471 |
if (pb) |
|
472 |
{ |
|
9035
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
473 |
Simulator::Schedule (Seconds (0.000214286), // ctrl frame fixed to 3 symbols |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
474 |
&LteEnbPhy::SendDataChannels, |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
475 |
this,pb); |
7886 | 476 |
} |
6705 | 477 |
|
7886 | 478 |
// trigger the MAC |
479 |
m_enbPhySapUser->SubframeIndication (m_nrFrames, m_nrSubFrames); |
|
8148
09e2d03022a2
run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents:
8015
diff
changeset
|
480 |
|
09e2d03022a2
run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents:
8015
diff
changeset
|
481 |
|
7886 | 482 |
// trigger the UE(s) |
8180
5429db8b8c37
Fix Bug JIRA:LENA-145, RNTI as uint16_t in LteEnbPhy
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8148
diff
changeset
|
483 |
std::map <uint16_t, Ptr<LteUePhy> >::iterator it; |
7886 | 484 |
for (it = m_ueAttached.begin (); it != m_ueAttached.end (); it++) |
485 |
{ |
|
486 |
(*it).second->SubframeIndication (m_nrFrames, m_nrSubFrames); |
|
487 |
} |
|
6705 | 488 |
|
9035
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
489 |
|
6705 | 490 |
Simulator::Schedule (Seconds (GetTti ()), |
7887 | 491 |
&LteEnbPhy::EndSubFrame, |
6705 | 492 |
this); |
493 |
||
494 |
} |
|
495 |
||
9035
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
496 |
void |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
497 |
LteEnbPhy::SendControlChannels (std::list<Ptr<LteControlMessage> > ctrlMsgList) |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
498 |
{ |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
499 |
NS_LOG_FUNCTION (this << " eNB " << m_cellId << " start tx ctrl frame"); |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
500 |
// set the current tx power spectral density (full bandwidth) |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
501 |
std::vector <int> dlRb; |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
502 |
for (uint8_t i = 0; i < m_dlBandwidth; i++) |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
503 |
{ |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
504 |
dlRb.push_back (i); |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
505 |
} |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
506 |
SetDownlinkSubChannels (dlRb); |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
507 |
NS_LOG_LOGIC (this << " eNB start TX CTRL"); |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
508 |
m_downlinkSpectrumPhy->StartTxDlCtrlFrame (ctrlMsgList); |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
509 |
|
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
510 |
} |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
511 |
|
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
512 |
void |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
513 |
LteEnbPhy::SendDataChannels (Ptr<PacketBurst> pb) |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
514 |
{ |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
515 |
// set the current tx power spectral density |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
516 |
SetDownlinkSubChannels (m_dlDataRbMap); |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
517 |
// send the current burts of packets |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
518 |
NS_LOG_LOGIC (this << " eNB start TX DATA"); |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
519 |
double dlDataFrame = 0.000785714; // 0.001 / 14 * 11 (fixed to 11 symbols) |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
520 |
std::list<Ptr<LteControlMessage> > ctrlMsgList; |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
521 |
ctrlMsgList.clear (); |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
522 |
m_downlinkSpectrumPhy->StartTxDataFrame (pb, ctrlMsgList, dlDataFrame); |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
523 |
} |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
524 |
|
6705 | 525 |
|
526 |
void |
|
7887 | 527 |
LteEnbPhy::EndSubFrame (void) |
6705 | 528 |
{ |
529 |
NS_LOG_FUNCTION (this << Simulator::Now ().GetSeconds ()); |
|
7886 | 530 |
if (m_nrSubFrames == 10) |
6705 | 531 |
{ |
7887 | 532 |
Simulator::ScheduleNow (&LteEnbPhy::EndFrame, this); |
6705 | 533 |
} |
534 |
else |
|
535 |
{ |
|
7887 | 536 |
Simulator::ScheduleNow (&LteEnbPhy::StartSubFrame, this); |
6705 | 537 |
} |
538 |
} |
|
539 |
||
540 |
||
541 |
void |
|
7887 | 542 |
LteEnbPhy::EndFrame (void) |
6705 | 543 |
{ |
544 |
NS_LOG_FUNCTION (this << Simulator::Now ().GetSeconds ()); |
|
7887 | 545 |
Simulator::ScheduleNow (&LteEnbPhy::StartFrame, this); |
6705 | 546 |
} |
547 |
||
548 |
||
7886 | 549 |
void |
8664
ab4c821fc251
revision after Giuseppe's comments http://codereview.appspot.com/4626069/#msg1
Nicola Baldo <nbaldo@cttc.es>
parents:
8538
diff
changeset
|
550 |
LteEnbPhy::GenerateCqiReport (const SpectrumValue& sinr) |
7886 | 551 |
{ |
552 |
NS_LOG_FUNCTION (this << sinr); |
|
9035
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
553 |
UlCqi_s ulcqi = CreateUlCqiReport (sinr); |
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
554 |
m_enbPhySapUser->UlCqiReport (ulcqi); |
7910 | 555 |
} |
556 |
||
557 |
||
7934
0f09fc707a8c
Convert UL-CQI from IdealControlMessage to PhySap Primitive
mmiozzo
parents:
7930
diff
changeset
|
558 |
UlCqi_s |
0f09fc707a8c
Convert UL-CQI from IdealControlMessage to PhySap Primitive
mmiozzo
parents:
7930
diff
changeset
|
559 |
LteEnbPhy::CreateUlCqiReport (const SpectrumValue& sinr) |
7910 | 560 |
{ |
8148
09e2d03022a2
run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents:
8015
diff
changeset
|
561 |
NS_LOG_FUNCTION (this << sinr); |
7910 | 562 |
Values::const_iterator it; |
563 |
UlCqi_s ulcqi; |
|
564 |
ulcqi.m_type = UlCqi_s::PUSCH; |
|
565 |
int i = 0; |
|
566 |
for (it = sinr.ConstValuesBegin (); it != sinr.ConstValuesEnd (); it++) |
|
8148
09e2d03022a2
run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents:
8015
diff
changeset
|
567 |
{ |
09e2d03022a2
run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents:
8015
diff
changeset
|
568 |
double sinrdb = 10 * log10 ((*it)); |
8728
5a99218bfd1b
Bug-fix on m_macChTtiDelay management on UE-eNB PHY and consequently update RR-PF schedulers and tests
mmiozzo
parents:
8726
diff
changeset
|
569 |
// NS_LOG_DEBUG ("ULCQI RB " << i << " value " << sinrdb); |
8148
09e2d03022a2
run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents:
8015
diff
changeset
|
570 |
// convert from double to fixed point notation Sxxxxxxxxxxx.xxx |
09e2d03022a2
run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents:
8015
diff
changeset
|
571 |
int16_t sinrFp = LteFfConverter::double2fpS11dot3 (sinrdb); |
09e2d03022a2
run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents:
8015
diff
changeset
|
572 |
ulcqi.m_sinr.push_back (sinrFp); |
09e2d03022a2
run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents:
8015
diff
changeset
|
573 |
i++; |
09e2d03022a2
run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents:
8015
diff
changeset
|
574 |
} |
7934
0f09fc707a8c
Convert UL-CQI from IdealControlMessage to PhySap Primitive
mmiozzo
parents:
7930
diff
changeset
|
575 |
return (ulcqi); |
7910 | 576 |
|
7886 | 577 |
} |
6705 | 578 |
|
8714
398bbcbb3f42
Add MIMO model, test and documentation
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8538
diff
changeset
|
579 |
void |
398bbcbb3f42
Add MIMO model, test and documentation
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8538
diff
changeset
|
580 |
LteEnbPhy::DoSetTransmissionMode (uint16_t rnti, uint8_t txMode) |
398bbcbb3f42
Add MIMO model, test and documentation
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8538
diff
changeset
|
581 |
{ |
398bbcbb3f42
Add MIMO model, test and documentation
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8538
diff
changeset
|
582 |
NS_LOG_FUNCTION (this << rnti << (uint16_t)txMode); |
398bbcbb3f42
Add MIMO model, test and documentation
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8538
diff
changeset
|
583 |
// UL supports only SISO MODE |
398bbcbb3f42
Add MIMO model, test and documentation
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8538
diff
changeset
|
584 |
} |
398bbcbb3f42
Add MIMO model, test and documentation
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8538
diff
changeset
|
585 |
|
8728
5a99218bfd1b
Bug-fix on m_macChTtiDelay management on UE-eNB PHY and consequently update RR-PF schedulers and tests
mmiozzo
parents:
8726
diff
changeset
|
586 |
void |
9035
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
587 |
LteEnbPhy::QueueUlDci (UlDciLteControlMessage m) |
8728
5a99218bfd1b
Bug-fix on m_macChTtiDelay management on UE-eNB PHY and consequently update RR-PF schedulers and tests
mmiozzo
parents:
8726
diff
changeset
|
588 |
{ |
5a99218bfd1b
Bug-fix on m_macChTtiDelay management on UE-eNB PHY and consequently update RR-PF schedulers and tests
mmiozzo
parents:
8726
diff
changeset
|
589 |
NS_LOG_FUNCTION (this); |
8729
74de12409ee5
Update m_macChTtiDelay fixed to 4 in UL (standard) and make schedulers unaware of channel delays (tests updated according to new delay)
mmiozzo
parents:
8728
diff
changeset
|
590 |
m_ulDciQueue.at (UL_PUSCH_TTIS_DELAY - 1).push_back (m); |
8728
5a99218bfd1b
Bug-fix on m_macChTtiDelay management on UE-eNB PHY and consequently update RR-PF schedulers and tests
mmiozzo
parents:
8726
diff
changeset
|
591 |
} |
5a99218bfd1b
Bug-fix on m_macChTtiDelay management on UE-eNB PHY and consequently update RR-PF schedulers and tests
mmiozzo
parents:
8726
diff
changeset
|
592 |
|
9035
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
593 |
std::list<UlDciLteControlMessage> |
8728
5a99218bfd1b
Bug-fix on m_macChTtiDelay management on UE-eNB PHY and consequently update RR-PF schedulers and tests
mmiozzo
parents:
8726
diff
changeset
|
594 |
LteEnbPhy::DequeueUlDci (void) |
5a99218bfd1b
Bug-fix on m_macChTtiDelay management on UE-eNB PHY and consequently update RR-PF schedulers and tests
mmiozzo
parents:
8726
diff
changeset
|
595 |
{ |
5a99218bfd1b
Bug-fix on m_macChTtiDelay management on UE-eNB PHY and consequently update RR-PF schedulers and tests
mmiozzo
parents:
8726
diff
changeset
|
596 |
NS_LOG_FUNCTION (this); |
5a99218bfd1b
Bug-fix on m_macChTtiDelay management on UE-eNB PHY and consequently update RR-PF schedulers and tests
mmiozzo
parents:
8726
diff
changeset
|
597 |
if (m_ulDciQueue.at (0).size ()>0) |
5a99218bfd1b
Bug-fix on m_macChTtiDelay management on UE-eNB PHY and consequently update RR-PF schedulers and tests
mmiozzo
parents:
8726
diff
changeset
|
598 |
{ |
9035
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
599 |
std::list<UlDciLteControlMessage> ret = m_ulDciQueue.at (0); |
8728
5a99218bfd1b
Bug-fix on m_macChTtiDelay management on UE-eNB PHY and consequently update RR-PF schedulers and tests
mmiozzo
parents:
8726
diff
changeset
|
600 |
m_ulDciQueue.erase (m_ulDciQueue.begin ()); |
9035
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
601 |
std::list<UlDciLteControlMessage> l; |
8728
5a99218bfd1b
Bug-fix on m_macChTtiDelay management on UE-eNB PHY and consequently update RR-PF schedulers and tests
mmiozzo
parents:
8726
diff
changeset
|
602 |
m_ulDciQueue.push_back (l); |
5a99218bfd1b
Bug-fix on m_macChTtiDelay management on UE-eNB PHY and consequently update RR-PF schedulers and tests
mmiozzo
parents:
8726
diff
changeset
|
603 |
return (ret); |
5a99218bfd1b
Bug-fix on m_macChTtiDelay management on UE-eNB PHY and consequently update RR-PF schedulers and tests
mmiozzo
parents:
8726
diff
changeset
|
604 |
} |
5a99218bfd1b
Bug-fix on m_macChTtiDelay management on UE-eNB PHY and consequently update RR-PF schedulers and tests
mmiozzo
parents:
8726
diff
changeset
|
605 |
else |
5a99218bfd1b
Bug-fix on m_macChTtiDelay management on UE-eNB PHY and consequently update RR-PF schedulers and tests
mmiozzo
parents:
8726
diff
changeset
|
606 |
{ |
5a99218bfd1b
Bug-fix on m_macChTtiDelay management on UE-eNB PHY and consequently update RR-PF schedulers and tests
mmiozzo
parents:
8726
diff
changeset
|
607 |
m_ulDciQueue.erase (m_ulDciQueue.begin ()); |
9035
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
608 |
std::list<UlDciLteControlMessage> l; |
8728
5a99218bfd1b
Bug-fix on m_macChTtiDelay management on UE-eNB PHY and consequently update RR-PF schedulers and tests
mmiozzo
parents:
8726
diff
changeset
|
609 |
m_ulDciQueue.push_back (l); |
9035
e40974228d94
Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8729
diff
changeset
|
610 |
std::list<UlDciLteControlMessage> emptylist; |
8728
5a99218bfd1b
Bug-fix on m_macChTtiDelay management on UE-eNB PHY and consequently update RR-PF schedulers and tests
mmiozzo
parents:
8726
diff
changeset
|
611 |
return (emptylist); |
5a99218bfd1b
Bug-fix on m_macChTtiDelay management on UE-eNB PHY and consequently update RR-PF schedulers and tests
mmiozzo
parents:
8726
diff
changeset
|
612 |
} |
5a99218bfd1b
Bug-fix on m_macChTtiDelay management on UE-eNB PHY and consequently update RR-PF schedulers and tests
mmiozzo
parents:
8726
diff
changeset
|
613 |
} |
5a99218bfd1b
Bug-fix on m_macChTtiDelay management on UE-eNB PHY and consequently update RR-PF schedulers and tests
mmiozzo
parents:
8726
diff
changeset
|
614 |
|
8714
398bbcbb3f42
Add MIMO model, test and documentation
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8538
diff
changeset
|
615 |
|
6705 | 616 |
}; |