A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
lte-enb-phy.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2010 TELEMATICS LAB, DEE - Politecnico di Bari
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation;
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16 *
17 * Author: Giuseppe Piro <g.piro@poliba.it>
18 * Author: Marco Miozzo <marco.miozzo@cttc.es>
19 */
20
21#ifndef ENB_LTE_PHY_H
22#define ENB_LTE_PHY_H
23
25#include "lte-enb-cphy-sap.h"
26#include "lte-enb-phy-sap.h"
27#include "lte-harq-phy.h"
28#include "lte-phy.h"
29
30#include <map>
31#include <set>
32
33namespace ns3
34{
35
36class PacketBurst;
37class LteNetDevice;
38class LteUePhy;
39
40/**
41 * \ingroup lte
42 * LteEnbPhy models the physical layer for the eNodeB
43 */
44class LteEnbPhy : public LtePhy
45{
46 /// allow EnbMemberLteEnbPhySapProvider class friend access
48 /// allow MemberLteEnbCphySapProvider<LteEnbPhy> class friend access
50
51 public:
52 /**
53 * @warning the default constructor should not be used
54 */
55 LteEnbPhy();
56
57 /**
58 *
59 * \param dlPhy the downlink LteSpectrumPhy instance
60 * \param ulPhy the uplink LteSpectrumPhy instance
61 */
63
64 ~LteEnbPhy() override;
65
66 /**
67 * \brief Get the type ID.
68 * \return the object TypeId
69 */
70 static TypeId GetTypeId();
71 // inherited from Object
72 void DoInitialize() override;
73 void DoDispose() override;
74
75 /**
76 * \brief Get the PHY SAP provider
77 * \return a pointer to the SAP Provider of the PHY
78 */
80
81 /**
82 * \brief Set the PHY SAP User
83 * \param s a pointer to the PHY SAP user
84 */
86
87 /**
88 * \brief Get the CPHY SAP provider
89 * \return a pointer to the SAP Provider
90 */
92
93 /**
94 * \brief Set the CPHY SAP User
95 * \param s a pointer to the SAP user
96 */
98
99 /**
100 * \param pow the transmission power in dBm
101 */
102 void SetTxPower(double pow);
103
104 /**
105 * \return the transmission power in dBm
106 */
107 double GetTxPower() const;
108
109 /**
110 * \return the transmission power in dBm
111 */
113
114 /**
115 * \param pow the noise figure in dB
116 */
117 void SetNoiseFigure(double pow);
118
119 /**
120 * \return the noise figure in dB
121 */
122 double GetNoiseFigure() const;
123
124 /**
125 * \param delay the TTI delay between MAC and channel
126 */
127 void SetMacChDelay(uint8_t delay);
128
129 /**
130 * \returns the TTI delay between MAC and channel
131 */
132 uint8_t GetMacChDelay() const;
133
134 /**
135 * \return a pointer to the LteSpectrumPhy instance relative to the downlink
136 */
138
139 /**
140 * \return a pointer to the LteSpectrumPhy instance relative to the uplink
141 */
143
144 /**
145 * \brief set the resource blocks (a.k.a. sub channels) to be used in the downlink for
146 * transmission
147 *
148 * \param mask a vector of integers, if the i-th value is j it means
149 * that the j-th resource block is used for transmission in the
150 * downlink. If there is no i such that the value of the i-th
151 * element is j, it means that RB j is not used.
152 */
153 void SetDownlinkSubChannels(std::vector<int> mask);
154
155 /**
156 * \brief set the resource blocks (a.k.a. sub channels) and its power
157 * to be used in the downlink for transmission
158 *
159 * \param mask a vector of integers, if the i-th value is j it means
160 * that the j-th resource block is used for transmission in the
161 * downlink. If there is no i such that the value of the i-th
162 * element is j, it means that RB j is not used.
163 */
164 void SetDownlinkSubChannelsWithPowerAllocation(std::vector<int> mask);
165 /**
166 *
167 * \return a vector of integers, if the i-th value is j it means
168 * that the j-th resource block is used for transmission in the
169 * downlink. If there is no i such that the value of the i-th
170 * element is j, it means that RB j is not used.
171 */
172 std::vector<int> GetDownlinkSubChannels();
173
174 /**
175 * \brief Generate power allocation map (i.e. tx power level for each RB)
176 *
177 * \param rnti indicates which UE will occupy this RB
178 * \param rbId indicates which RB UE is using,
179 * power level for this RB is power level of UE
180 */
181 void GeneratePowerAllocationMap(uint16_t rnti, int rbId);
182
183 /**
184 * \brief Create the PSD for TX
185 * \returns the PSD
186 */
188
189 /**
190 * \brief Create the PSD for TX with power allocation for each RB
191 * \return the PSD
192 */
194
195 /**
196 * \brief Calculate the channel quality for a given UE
197 * \param sinr a list of computed SINR
198 * \param ue the UE
199 */
200 void CalcChannelQualityForUe(std::vector<double> sinr, Ptr<LteSpectrumPhy> ue);
201
202 /**
203 * \brief Receive the control message
204 * \param msg the received message
205 */
207
208 /**
209 * \brief Create the UL CQI feedback from SINR values perceived at
210 * the physical layer with the PUSCH signal received from eNB
211 * \param sinr SINR values vector
212 * \return UL CQI feedback in the format usable by an FF MAC scheduler
213 */
215 const SpectrumValue& sinr);
216
217 /**
218 * \brief Create the UL CQI feedback from SINR values perceived at
219 * the physical layer with the SRS signal received from eNB
220 * \param sinr SINR values vector
221 * \return UL CQI feedback in the format usable by an FF MAC scheduler
222 */
224 const SpectrumValue& sinr);
225
226 /**
227 * \brief Send the PDCCH and PCFICH in the first 3 symbols
228 * \param ctrlMsgList the list of control messages of PDCCH
229 */
230 void SendControlChannels(std::list<Ptr<LteControlMessage>> ctrlMsgList);
231
232 /**
233 * \brief Send the PDSCH
234 * \param pb the PacketBurst to be sent
235 */
237
238 /**
239 * \param m the UL-CQI to be queued
240 */
242
243 /**
244 * \returns the list of UL-CQI to be processed
245 */
246 std::list<UlDciLteControlMessage> DequeueUlDci();
247
248 /**
249 * \brief Start a LTE frame
250 */
251 void StartFrame();
252 /**
253 * \brief Start a LTE sub frame
254 */
255 void StartSubFrame();
256 /**
257 * \brief End a LTE sub frame
258 */
259 void EndSubFrame();
260 /**
261 * \brief End a LTE frame
262 */
263 void EndFrame();
264
265 /**
266 * \brief PhySpectrum received a new PHY-PDU
267 * \param p the packet received
268 */
270
271 /**
272 * \brief PhySpectrum received a new list of LteControlMessage
273 * \param msgList List of control messages
274 */
275 virtual void ReceiveLteControlMessageList(std::list<Ptr<LteControlMessage>> msgList);
276
277 // inherited from LtePhy
278 void GenerateCtrlCqiReport(const SpectrumValue& sinr) override;
279 void GenerateDataCqiReport(const SpectrumValue& sinr) override;
280 void ReportInterference(const SpectrumValue& interf) override;
281 void ReportRsReceivedPower(const SpectrumValue& power) override;
282
283 /**
284 * \brief Report the uplink HARQ feedback generated by LteSpectrumPhy to MAC
285 *
286 * \param mes UlInfoListElement_s
287 */
289
290 /**
291 * \brief Set the HARQ Phy module
292 *
293 * \param harq the HARQ Phy
294 */
296
297 /**
298 * TracedCallback signature for the linear average of SRS SINRs.
299 *
300 * \param [in] cellId
301 * \param [in] rnti
302 * \param [in] sinrLinear
303 */
304 typedef void (*ReportUeSinrTracedCallback)(uint16_t cellId,
305 uint16_t rnti,
306 double sinrLinear,
307 uint8_t componentCarrierId);
308
309 /**
310 * TracedCallback signature for the linear average of SRS SINRs.
311 *
312 * \param [in] cellId
313 * \param [in] spectrumValue
314 * \deprecated The non-const \c Ptr<SpectrumValue> argument is deprecated
315 * and will be changed to \c Ptr<const SpectrumValue> in a future release.
316 */
317 typedef void (*ReportInterferenceTracedCallback)(uint16_t cellId,
318 Ptr<SpectrumValue> spectrumValue);
319
320 private:
321 // LteEnbCphySapProvider forwarded methods
322 /**
323 * Set bandwidth function
324 *
325 * \param ulBandwidth UL bandwidth
326 * \param dlBandwidth DL bandwidth
327 */
328 void DoSetBandwidth(uint16_t ulBandwidth, uint16_t dlBandwidth);
329 /**
330 * Set EARFCN
331 *
332 * \param dlEarfcn DL EARFCN
333 * \param ulEarfcn UL EARFCN
334 */
335 void DoSetEarfcn(uint32_t dlEarfcn, uint32_t ulEarfcn);
336 /**
337 * Add UE
338 *
339 * \param rnti RNTI
340 */
341 void DoAddUe(uint16_t rnti);
342 /**
343 * Remove UE
344 *
345 * \param rnti RNTI
346 */
347 void DoRemoveUe(uint16_t rnti);
348 /**
349 * Set PA
350 *
351 * \param rnti RNTI
352 * \param pa PA
353 */
354 void DoSetPa(uint16_t rnti, double pa);
355 /**
356 * Set transmission mode
357 *
358 * \param rnti RNTI
359 * \param txMode transmit mode
360 */
361 void DoSetTransmissionMode(uint16_t rnti, uint8_t txMode);
362 /**
363 * Set source configuration index
364 *
365 * \param rnti RNTI
366 * \param srcCi source configuration index
367 */
368 void DoSetSrsConfigurationIndex(uint16_t rnti, uint16_t srcCi);
369 /**
370 * Set master information block
371 *
372 * \param mib LteRrcSap::MasterInformationBlock
373 */
375 /**
376 * Set system information block
377 *
378 * \param sib1 LteRrcSap::SystemInformationBlockType1
379 */
381
382 // LteEnbPhySapProvider forwarded methods
383 void DoSendMacPdu(Ptr<Packet> p) override;
384 /**
385 * Send LTE Control Message function
386 *
387 * \param msg LTE control message
388 */
390 /**
391 * Get MAC ch TTI delay function
392 *
393 * \returns delay value
394 */
395 uint8_t DoGetMacChTtiDelay();
396
397 /**
398 * Add the given RNTI to the list of attached UE #m_ueAttached.
399 * \param rnti RNTI of a UE
400 * \return true if the RNTI has _not_ existed before, or false otherwise.
401 */
402 bool AddUePhy(uint16_t rnti);
403 /**
404 * Remove the given RNTI from the list of attached UE #m_ueAttached.
405 * \param rnti RNTI of a UE
406 * \return true if the RNTI has existed before, or false otherwise.
407 */
408 bool DeleteUePhy(uint16_t rnti);
409
410 /**
411 * Create SRS report function
412 *
413 * \param rnti the RNTI
414 * \param srs the SRS
415 */
416 void CreateSrsReport(uint16_t rnti, double srs);
417
418 /**
419 * List of RNTI of attached UEs. Used for quickly determining whether a UE is
420 * attached to this eNodeB or not.
421 */
422 std::set<uint16_t> m_ueAttached;
423
424 /// P_A per UE RNTI.
425 std::map<uint16_t, double> m_paMap;
426
427 /// DL power allocation map.
428 std::map<int, double> m_dlPowerAllocationMap;
429
430 /**
431 * A vector of integers, if the i-th value is j it means that the j-th
432 * resource block is used for transmission in the downlink. If there is
433 * no i such that the value of the i-th element is j, it means that RB j
434 * is not used.
435 */
437
438 std::vector<int> m_dlDataRbMap; ///< DL data RB map
439
440 /// For storing info on future receptions.
441 std::vector<std::list<UlDciLteControlMessage>> m_ulDciQueue;
442
443 LteEnbPhySapProvider* m_enbPhySapProvider; ///< ENB Phy SAP provider
444 LteEnbPhySapUser* m_enbPhySapUser; ///< ENB Phy SAP user
445
446 LteEnbCphySapProvider* m_enbCphySapProvider; ///< ENB CPhy SAP provider
447 LteEnbCphySapUser* m_enbCphySapUser; ///< ENB CPhy SAP user
448
449 /**
450 * The frame number currently served. In ns-3, frame number starts from 1.
451 * In contrast, the 3GPP standard's frame number starts from 0.
452 */
454 /**
455 * The subframe number currently served. In ns-3, subframe number starts
456 * from 1. In contrast, the 3GPP standard's subframe number starts from 0.
457 * The number resets to the beginning again after 10 subframes.
458 */
460
461 uint16_t m_srsPeriodicity; ///< SRS periodicity
462 Time m_srsStartTime; ///< SRS start time
463 std::map<uint16_t, uint16_t> m_srsCounter; ///< SRS counter
464 std::vector<uint16_t> m_srsUeOffset; ///< SRS UE offset
465 uint16_t m_currentSrsOffset; ///< current SRS offset
466
467 /**
468 * The Master Information Block message to be broadcasted every frame.
469 * The message content is specified by the upper layer through the RRC SAP.
470 */
472 /**
473 * The System Information Block Type 1 message to be broadcasted. SIB1 is
474 * broadcasted every 6th subframe of every odd-numbered radio frame.
475 * The message content is specified by the upper layer through the RRC SAP.
476 */
478
479 Ptr<LteHarqPhy> m_harqPhyModule; ///< HARQ Phy module
480
481 /**
482 * The `ReportUeSinr` trace source. Reporting the linear average of SRS SINR.
483 * Exporting cell ID, RNTI, SINR in linear unit and ComponentCarrierId
484 */
486 /**
487 * The `UeSinrSamplePeriod` trace source. The sampling period for reporting
488 * UEs' SINR stats.
489 */
491 std::map<uint16_t, uint16_t> m_srsSampleCounterMap; ///< SRS sample counter map
492
493 /**
494 * The `ReportInterference` trace source. Reporting the interference per PHY
495 * RB (TS 36.214 section 5.2.2, measured on DATA). Exporting cell ID and
496 * interference linear power per RB basis.
497 * \deprecated The non-const \c Ptr<SpectrumValue> argument is deprecated
498 * and will be changed to \c Ptr<const SpectrumValue> in a future release.
499 */
501 /**
502 * The `InterferenceSamplePeriod` attribute. The sampling period for
503 * reporting interference stats.
504 * \todo In what unit is this?
505 */
507 uint16_t m_interferenceSampleCounter; ///< interference sample counter
508
509 /**
510 * The `DlPhyTransmission` trace source. Contains trace information regarding
511 * PHY stats from DL Tx perspective. Exporting a structure with type
512 * PhyTransmissionStatParameters.
513 */
515
516}; // end of `class LteEnbPhy`
517
518} // namespace ns3
519
520#endif /* LTE_ENB_PHY_H */
Service Access Point (SAP) offered by the UE PHY to the UE RRC for control purposes.
Service Access Point (SAP) offered by the UE PHY to the UE RRC for control purposes.
LteEnbPhy models the physical layer for the eNodeB.
Definition: lte-enb-phy.h:45
uint16_t m_srsPeriodicity
SRS periodicity.
Definition: lte-enb-phy.h:461
double GetTxPower() const
Definition: lte-enb-phy.cc:311
Time m_srsStartTime
SRS start time.
Definition: lte-enb-phy.h:462
int8_t DoGetReferenceSignalPower() const
Definition: lte-enb-phy.cc:318
void StartSubFrame()
Start a LTE sub frame.
Definition: lte-enb-phy.cc:593
void CreateSrsReport(uint16_t rnti, double srs)
Create SRS report function.
uint16_t m_interferenceSamplePeriod
The InterferenceSamplePeriod attribute.
Definition: lte-enb-phy.h:506
virtual void ReportUlHarqFeedback(UlInfoListElement_s mes)
Report the uplink HARQ feedback generated by LteSpectrumPhy to MAC.
std::list< UlDciLteControlMessage > DequeueUlDci()
uint16_t m_srsSamplePeriod
The UeSinrSamplePeriod trace source.
Definition: lte-enb-phy.h:490
void SetLteEnbCphySapUser(LteEnbCphySapUser *s)
Set the CPHY SAP User.
Definition: lte-enb-phy.cc:290
FfMacSchedSapProvider::SchedUlCqiInfoReqParameters CreatePuschCqiReport(const SpectrumValue &sinr)
Create the UL CQI feedback from SINR values perceived at the physical layer with the PUSCH signal rec...
Definition: lte-enb-phy.cc:861
uint32_t m_nrSubFrames
The subframe number currently served.
Definition: lte-enb-phy.h:459
std::set< uint16_t > m_ueAttached
List of RNTI of attached UEs.
Definition: lte-enb-phy.h:422
LteEnbPhySapProvider * GetLteEnbPhySapProvider()
Get the PHY SAP provider.
Definition: lte-enb-phy.cc:284
void SetLteEnbPhySapUser(LteEnbPhySapUser *s)
Set the PHY SAP User.
Definition: lte-enb-phy.cc:278
void DoSetMasterInformationBlock(LteRrcSap::MasterInformationBlock mib)
Set master information block.
bool DeleteUePhy(uint16_t rnti)
Remove the given RNTI from the list of attached UE m_ueAttached.
Definition: lte-enb-phy.cc:395
std::vector< std::list< UlDciLteControlMessage > > m_ulDciQueue
For storing info on future receptions.
Definition: lte-enb-phy.h:441
double GetNoiseFigure() const
Definition: lte-enb-phy.cc:332
void SetTxPower(double pow)
Definition: lte-enb-phy.cc:304
std::vector< int > m_dlDataRbMap
DL data RB map.
Definition: lte-enb-phy.h:438
TracedCallback< uint16_t, uint16_t, double, uint8_t > m_reportUeSinr
The ReportUeSinr trace source.
Definition: lte-enb-phy.h:485
~LteEnbPhy() override
Definition: lte-enb-phy.cc:239
Ptr< LteSpectrumPhy > GetDlSpectrumPhy() const
Definition: lte-enb-phy.cc:366
void DoDispose() override
Destructor implementation.
Definition: lte-enb-phy.cc:244
void GenerateCtrlCqiReport(const SpectrumValue &sinr) override
generate a CQI report based on the given SINR of Ctrl frame
Definition: lte-enb-phy.cc:822
void GenerateDataCqiReport(const SpectrumValue &sinr) override
generate a CQI report based on the given SINR of Data frame (used for PUSCH CQIs)
Definition: lte-enb-phy.cc:834
void SendDataChannels(Ptr< PacketBurst > pb)
Send the PDSCH.
Definition: lte-enb-phy.cc:789
std::map< uint16_t, uint16_t > m_srsSampleCounterMap
SRS sample counter map.
Definition: lte-enb-phy.h:491
void DoSetSrsConfigurationIndex(uint16_t rnti, uint16_t srcCi)
Set source configuration index.
void PhyPduReceived(Ptr< Packet > p)
PhySpectrum received a new PHY-PDU.
Definition: lte-enb-phy.cc:425
void(* ReportUeSinrTracedCallback)(uint16_t cellId, uint16_t rnti, double sinrLinear, uint8_t componentCarrierId)
TracedCallback signature for the linear average of SRS SINRs.
Definition: lte-enb-phy.h:304
FfMacSchedSapProvider::SchedUlCqiInfoReqParameters CreateSrsCqiReport(const SpectrumValue &sinr)
Create the UL CQI feedback from SINR values perceived at the physical layer with the SRS signal recei...
LteEnbPhySapUser * m_enbPhySapUser
ENB Phy SAP user.
Definition: lte-enb-phy.h:444
void EndFrame()
End a LTE frame.
Definition: lte-enb-phy.cc:815
void CalcChannelQualityForUe(std::vector< double > sinr, Ptr< LteSpectrumPhy > ue)
Calculate the channel quality for a given UE.
Definition: lte-enb-phy.cc:501
void DoSetPa(uint16_t rnti, double pa)
Set PA.
Definition: lte-enb-phy.cc:989
uint8_t GetMacChDelay() const
Definition: lte-enb-phy.cc:360
uint16_t m_currentSrsOffset
current SRS offset
Definition: lte-enb-phy.h:465
void DoSetEarfcn(uint32_t dlEarfcn, uint32_t ulEarfcn)
Set EARFCN.
Definition: lte-enb-phy.cc:901
Ptr< SpectrumValue > CreateTxPowerSpectralDensity() override
Create the PSD for TX.
Definition: lte-enb-phy.cc:472
void DoSetTransmissionMode(uint16_t rnti, uint8_t txMode)
Set transmission mode.
LteEnbPhySapProvider * m_enbPhySapProvider
ENB Phy SAP provider.
Definition: lte-enb-phy.h:443
uint8_t DoGetMacChTtiDelay()
Get MAC ch TTI delay function.
Definition: lte-enb-phy.cc:419
std::map< int, double > m_dlPowerAllocationMap
DL power allocation map.
Definition: lte-enb-phy.h:428
std::vector< int > m_listOfDownlinkSubchannel
A vector of integers, if the i-th value is j it means that the j-th resource block is used for transm...
Definition: lte-enb-phy.h:436
void GeneratePowerAllocationMap(uint16_t rnti, int rbId)
Generate power allocation map (i.e.
Definition: lte-enb-phy.cc:457
void QueueUlDci(UlDciLteControlMessage m)
void SetNoiseFigure(double pow)
Definition: lte-enb-phy.cc:325
std::map< uint16_t, uint16_t > m_srsCounter
SRS counter.
Definition: lte-enb-phy.h:463
void SetMacChDelay(uint8_t delay)
Definition: lte-enb-phy.cc:339
void SetHarqPhyModule(Ptr< LteHarqPhy > harq)
Set the HARQ Phy module.
virtual void ReceiveLteControlMessageList(std::list< Ptr< LteControlMessage > > msgList)
PhySpectrum received a new list of LteControlMessage.
Definition: lte-enb-phy.cc:523
void SendControlChannels(std::list< Ptr< LteControlMessage > > ctrlMsgList)
Send the PDCCH and PCFICH in the first 3 symbols.
Definition: lte-enb-phy.cc:769
void DoRemoveUe(uint16_t rnti)
Remove UE.
Definition: lte-enb-phy.cc:921
void SetDownlinkSubChannelsWithPowerAllocation(std::vector< int > mask)
set the resource blocks (a.k.a.
Definition: lte-enb-phy.cc:441
void ReportRsReceivedPower(const SpectrumValue &power) override
generate a report based on the linear RS power perceived during CTRL frame NOTE: used only by UE for ...
Definition: lte-enb-phy.cc:855
LteRrcSap::MasterInformationBlock m_mib
The Master Information Block message to be broadcasted every frame.
Definition: lte-enb-phy.h:471
void DoSendMacPdu(Ptr< Packet > p) override
Queue the MAC PDU to be sent (according to m_macChTtiDelay)
Definition: lte-enb-phy.cc:412
void ReportInterference(const SpectrumValue &interf) override
generate a report based on the linear interference and noise power perceived during DATA frame NOTE: ...
Definition: lte-enb-phy.cc:842
TracedCallback< uint16_t, Ptr< SpectrumValue > > m_reportInterferenceTrace
The ReportInterference trace source.
Definition: lte-enb-phy.h:500
Ptr< LteSpectrumPhy > GetUlSpectrumPhy() const
Definition: lte-enb-phy.cc:372
void DoAddUe(uint16_t rnti)
Add UE.
Definition: lte-enb-phy.cc:909
void DoSetSystemInformationBlockType1(LteRrcSap::SystemInformationBlockType1 sib1)
Set system information block.
void DoSendLteControlMessage(Ptr< LteControlMessage > msg)
Send LTE Control Message function.
Definition: lte-enb-phy.cc:507
virtual Ptr< SpectrumValue > CreateTxPowerSpectralDensityWithPowerAllocation()
Create the PSD for TX with power allocation for each RB.
Definition: lte-enb-phy.cc:486
bool AddUePhy(uint16_t rnti)
Add the given RNTI to the list of attached UE m_ueAttached.
Definition: lte-enb-phy.cc:378
void DoInitialize() override
Initialize() implementation.
Definition: lte-enb-phy.cc:255
LteRrcSap::SystemInformationBlockType1 m_sib1
The System Information Block Type 1 message to be broadcasted.
Definition: lte-enb-phy.h:477
std::map< uint16_t, double > m_paMap
P_A per UE RNTI.
Definition: lte-enb-phy.h:425
void DoSetBandwidth(uint16_t ulBandwidth, uint16_t dlBandwidth)
Set bandwidth function.
Definition: lte-enb-phy.cc:878
void EndSubFrame()
End a LTE sub frame.
Definition: lte-enb-phy.cc:801
LteEnbCphySapUser * m_enbCphySapUser
ENB CPhy SAP user.
Definition: lte-enb-phy.h:447
uint16_t m_interferenceSampleCounter
interference sample counter
Definition: lte-enb-phy.h:507
void SetDownlinkSubChannels(std::vector< int > mask)
set the resource blocks (a.k.a.
Definition: lte-enb-phy.cc:432
virtual void ReceiveLteControlMessage(Ptr< LteControlMessage > msg)
Receive the control message.
Definition: lte-enb-phy.cc:515
void StartFrame()
Start a LTE frame.
Definition: lte-enb-phy.cc:575
uint32_t m_nrFrames
The frame number currently served.
Definition: lte-enb-phy.h:453
LteEnbCphySapProvider * m_enbCphySapProvider
ENB CPhy SAP provider.
Definition: lte-enb-phy.h:446
std::vector< uint16_t > m_srsUeOffset
SRS UE offset.
Definition: lte-enb-phy.h:464
LteEnbCphySapProvider * GetLteEnbCphySapProvider()
Get the CPHY SAP provider.
Definition: lte-enb-phy.cc:297
TracedCallback< PhyTransmissionStatParameters > m_dlPhyTransmission
The DlPhyTransmission trace source.
Definition: lte-enb-phy.h:514
std::vector< int > GetDownlinkSubChannels()
Definition: lte-enb-phy.cc:450
Ptr< LteHarqPhy > m_harqPhyModule
HARQ Phy module.
Definition: lte-enb-phy.h:479
void(* ReportInterferenceTracedCallback)(uint16_t cellId, Ptr< SpectrumValue > spectrumValue)
TracedCallback signature for the linear average of SRS SINRs.
Definition: lte-enb-phy.h:317
static TypeId GetTypeId()
Get the type ID.
Definition: lte-enb-phy.cc:166
Service Access Point (SAP) offered by the eNB-PHY to the eNB-MAC.
Service Access Point (SAP) offered by the eNB-PHY to the eNB-MAC.
The LtePhy models the physical layer of LTE.
Definition: lte-phy.h:51
Template for the implementation of the LteEnbCphySapProvider as a member of an owner class of type C ...
Smart pointer class similar to boost::intrusive_ptr.
Definition: ptr.h:77
Set of values corresponding to a given SpectrumModel.
Simulation virtual time values and global simulation resolution.
Definition: nstime.h:105
Forward calls to a chain of Callback.
a unique identifier for an interface.
Definition: type-id.h:59
The Uplink Data Control Indicator messages defines the RB allocation for the users in the uplink.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Parameters of the SCHED_UL_CQI_INFO_REQ primitive.
MasterInformationBlock structure.
Definition: lte-rrc-sap.h:622
SystemInformationBlockType1 structure.
Definition: lte-rrc-sap.h:629
See section 4.3.12 ulInfoListElement.