A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
lte-enb-mac.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
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: Marco Miozzo <marco.miozzo@cttc.es>
18 * Nicola Baldo <nbaldo@cttc.es>
19 * Modified by:
20 * Danilo Abrignani <danilo.abrignani@unibo.it> (Carrier Aggregation - GSoC 2015)
21 * Biljana Bojovic <biljana.bojovic@cttc.es> (Carrier Aggregation)
22 */
23
24#ifndef LTE_ENB_MAC_H
25#define LTE_ENB_MAC_H
26
27#include "ff-mac-csched-sap.h"
28#include "ff-mac-sched-sap.h"
29#include "lte-ccm-mac-sap.h"
30#include "lte-common.h"
31#include "lte-enb-cmac-sap.h"
32#include "lte-enb-phy-sap.h"
33#include "lte-mac-sap.h"
34
35#include <ns3/nstime.h>
36#include <ns3/packet-burst.h>
37#include <ns3/packet.h>
38#include <ns3/trace-source-accessor.h>
39#include <ns3/traced-value.h>
40
41#include <map>
42#include <vector>
43
44namespace ns3
45{
46
47class DlCqiLteControlMessage;
48class UlCqiLteControlMessage;
49class PdcchMapLteControlMessage;
50
51/// DlHarqProcessesBuffer_t typedef
52typedef std::vector<std::vector<Ptr<PacketBurst>>> DlHarqProcessesBuffer_t;
53
54/**
55 * This class implements the MAC layer of the eNodeB device
56 */
57class LteEnbMac : public Object
58{
59 /// allow EnbMacMemberLteEnbCmacSapProvider class friend access
61 /// allow EnbMacMemberLteMacSapProvider<LteEnbMac> class friend access
63 /// allow EnbMacMemberFfMacSchedSapUser class friend access
65 /// allow EnbMacMemberFfMacCschedSapUser class friend access
67 /// allow EnbMacMemberLteEnbPhySapUser class friend access
69 /// allow MemberLteCcmMacSapProvider<LteEnbMac> class friend access
71
72 public:
73 /**
74 * \brief Get the type ID.
75 * \return the object TypeId
76 */
77 static TypeId GetTypeId();
78
79 LteEnbMac();
80 ~LteEnbMac() override;
81 void DoDispose() override;
82
83 /**
84 * \brief Set the component carrier ID
85 * \param index the component carrier ID
86 */
87 void SetComponentCarrierId(uint8_t index);
88 /**
89 * \brief Set the scheduler SAP provider
90 * \param s a pointer SAP provider of the FF packet scheduler
91 */
93 /**
94 * \brief Get the scheduler SAP user
95 * \return a pointer to the SAP user of the scheduler
96 */
98 /**
99 * \brief Set the control scheduler SAP provider
100 * \param s a pointer to the control scheduler SAP provider
101 */
103 /**
104 * \brief Get the control scheduler SAP user
105 * \return a pointer to the control scheduler SAP user
106 */
108
109 /**
110 * \brief Set the MAC SAP user
111 * \param s a pointer to the MAC SAP user
112 */
114 /**
115 * \brief Get the MAC SAP provider
116 * \return a pointer to the SAP provider of the MAC
117 */
119 /**
120 * \brief Set the control MAC SAP user
121 * \param s a pointer to the control MAC SAP user
122 */
124 /**
125 * \brief Get the control MAC SAP provider
126 * \return a pointer to the control MAC SAP provider
127 */
129
130 /**
131 * \brief Get the eNB-PHY SAP User
132 * \return a pointer to the SAP User of the PHY
133 */
135
136 /**
137 * \brief Set the PHY SAP Provider
138 * \param s a pointer to the PHY SAP provider
139 */
141
142 /**
143 * \brief Get the eNB-ComponentCarrierManager SAP User
144 * \return a pointer to the SAP User of the ComponentCarrierManager
145 */
147
148 /**
149 * \brief Set the ComponentCarrierManager SAP user
150 * \param s a pointer to the ComponentCarrierManager provider
151 */
153
154 /**
155 * TracedCallback signature for DL scheduling events.
156 *
157 * \param [in] frame Frame number.
158 * \param [in] subframe Subframe number.
159 * \param [in] rnti The C-RNTI identifying the UE.
160 * \param [in] mcs0 The MCS for transport block..
161 * \param [in] tbs0Size
162 * \param [in] mcs1 The MCS for transport block.
163 * \param [in] tbs1Size
164 * \param [in] component carrier id
165 */
166 typedef void (*DlSchedulingTracedCallback)(const uint32_t frame,
167 const uint32_t subframe,
168 const uint16_t rnti,
169 const uint8_t mcs0,
170 const uint16_t tbs0Size,
171 const uint8_t mcs1,
172 const uint16_t tbs1Size,
173 const uint8_t ccId);
174
175 /**
176 * TracedCallback signature for UL scheduling events.
177 *
178 * \param [in] frame Frame number.
179 * \param [in] subframe Subframe number.
180 * \param [in] rnti The C-RNTI identifying the UE.
181 * \param [in] mcs The MCS for transport block
182 * \param [in] tbsSize
183 */
184 typedef void (*UlSchedulingTracedCallback)(const uint32_t frame,
185 const uint32_t subframe,
186 const uint16_t rnti,
187 const uint8_t mcs,
188 const uint16_t tbsSize);
189
190 private:
191 /**
192 * \brief Receive a DL CQI ideal control message
193 * \param msg the DL CQI message
194 */
196
197 /**
198 * \brief Receive a DL CQI ideal control message
199 * \param msg the DL CQI message
200 */
202
203 /**
204 * \brief Receive a CE element containing the buffer status report
205 * \param bsr the BSR message
206 */
208
209 /**
210 * \brief UL CQI report
211 * \param ulcqi FfMacSchedSapProvider::SchedUlCqiInfoReqParameters
212 */
214
215 // forwarded from LteEnbCmacSapProvider
216 /**
217 * \brief Configure MAC function
218 * \param ulBandwidth the UL bandwidth
219 * \param dlBandwidth the DL bandwidth
220 */
221 void DoConfigureMac(uint16_t ulBandwidth, uint16_t dlBandwidth);
222 /**
223 * \brief Add UE function
224 * \param rnti the RNTI
225 */
226 void DoAddUe(uint16_t rnti);
227 /**
228 * \brief Remove UE function
229 * \param rnti the RNTI
230 */
231 void DoRemoveUe(uint16_t rnti);
232 /**
233 * \brief Add LC function
234 * \param lcinfo the LC info
235 * \param msu the LTE MAC SAP user
236 */
238 /**
239 * \brief Reconfigure LC function
240 * \param lcinfo the LC info
241 */
243 /**
244 * \brief Release LC function
245 * \param rnti the RNTI
246 * \param lcid the LCID
247 */
248 void DoReleaseLc(uint16_t rnti, uint8_t lcid);
249 /**
250 * \brief UE Update configuration request function
251 * \param params LteEnbCmacSapProvider::UeConfig
252 */
254 /**
255 * \brief Get RACH configuration function
256 * \returns LteEnbCmacSapProvider::RachConfig
257 */
259 /**
260 * \brief Allocate NC RA preamble function
261 * \param rnti the RNTI
262 * \returns LteEnbCmacSapProvider::AllocateNcRaPreambleReturnValue
263 */
265
266 // forwarded from LteMacSapProvider
267 /**
268 * \brief Transmit PDU function
269 * \param params LteMacSapProvider::TransmitPduParameters
270 */
272 /**
273 * \brief Report Buffer Status function
274 * \param params LteMacSapProvider::ReportBufferStatusParameters
275 */
277
278 // forwarded from FfMacCchedSapUser
279 /**
280 * \brief CSched Cell Config configure function
281 * \param params FfMacCschedSapUser::CschedCellConfigCnfParameters
282 */
284 /**
285 * \brief CSched UE Config configure function
286 * \param params FfMacCschedSapUser::CschedUeConfigCnfParameters
287 */
289 /**
290 * \brief CSched LC Config configure function
291 * \param params FfMacCschedSapUser::CschedLcConfigCnfParameters
292 */
294 /**
295 * \brief CSched LC Release configure function
296 * \param params FfMacCschedSapUser::CschedLcReleaseCnfParameters
297 */
299 /**
300 * \brief CSched UE Release configure function
301 * \param params FfMacCschedSapUser::CschedUeReleaseCnfParameters
302 */
304 /**
305 * \brief CSched UE Config Update Indication function
306 * \param params FfMacCschedSapUser::CschedUeConfigUpdateIndParameters
307 */
309 /**
310 * \brief CSched Cell Config Update Indication function
311 * \param params FfMacCschedSapUser::CschedCellConfigUpdateIndParameters
312 */
315
316 // forwarded from FfMacSchedSapUser
317 /**
318 * \brief Sched DL Config Indication function
319 * \param ind FfMacSchedSapUser::SchedDlConfigIndParameters
320 */
322 /**
323 * \brief Sched UL Config Indication function
324 * \param params FfMacSchedSapUser::SchedUlConfigIndParameters
325 */
327
328 // forwarded from LteEnbPhySapUser
329 /**
330 * \brief Subrame Indication function
331 * \param frameNo frame number
332 * \param subframeNo subframe number
333 */
334 void DoSubframeIndication(uint32_t frameNo, uint32_t subframeNo);
335 /**
336 * \brief Receive RACH Preamble function
337 * \param prachId PRACH ID number
338 */
339 void DoReceiveRachPreamble(uint8_t prachId);
340
341 // forwarded by LteCcmMacSapProvider
342 /**
343 * Report MAC CE to scheduler
344 * \param bsr the BSR
345 */
347
348 /**
349 * \brief Report SR to scheduler
350 * \param rnti RNTI of the UE that requested the SR
351 *
352 * Since SR is not implemented in LTE, this method does nothing.
353 */
354 void DoReportSrToScheduler(uint16_t rnti [[maybe_unused]])
355 {
356 }
357
358 public:
359 /**
360 * legacy public for use the Phy callback
361 * \param p packet
362 */
364
365 private:
366 /**
367 * \brief UL Info List ELements HARQ Feedback function
368 * \param params UlInfoListElement_s
369 */
371 /**
372 * \brief DL Info List ELements HARQ Feedback function
373 * \param params DlInfoListElement_s
374 */
376
377 /// RNTI, LC ID, SAP of the RLC instance
378 std::map<uint16_t, std::map<uint8_t, LteMacSapUser*>> m_rlcAttached;
379
380 std::vector<CqiListElement_s> m_dlCqiReceived; ///< DL-CQI received
381 std::vector<FfMacSchedSapProvider::SchedUlCqiInfoReqParameters>
382 m_ulCqiReceived; ///< UL-CQI received
383 std::vector<MacCeListElement_s> m_ulCeReceived; ///< CE received (BSR up to now)
384
385 std::vector<DlInfoListElement_s> m_dlInfoListReceived; ///< DL HARQ feedback received
386
387 std::vector<UlInfoListElement_s> m_ulInfoListReceived; ///< UL HARQ feedback received
388
389 /*
390 * Map of UE's info element (see 4.3.12 of FF MAC Scheduler API)
391 */
392 // std::map <uint16_t,UlInfoListElement_s> m_ulInfoListElements;
393
394 LteMacSapProvider* m_macSapProvider; ///< the MAC SAP provider
395 LteEnbCmacSapProvider* m_cmacSapProvider; ///< the CMAC SAP provider
396 LteMacSapUser* m_macSapUser; ///< the MAC SAP user
397 LteEnbCmacSapUser* m_cmacSapUser; ///< the CMAC SAP user
398
399 FfMacSchedSapProvider* m_schedSapProvider; ///< the Sched SAP provider
400 FfMacCschedSapProvider* m_cschedSapProvider; ///< the Csched SAP provider
401 FfMacSchedSapUser* m_schedSapUser; ///< the Sched SAP user
402 FfMacCschedSapUser* m_cschedSapUser; ///< the CSched SAP user
403
404 // PHY-SAP
405 LteEnbPhySapProvider* m_enbPhySapProvider; ///< the ENB Phy SAP provider
406 LteEnbPhySapUser* m_enbPhySapUser; ///< the ENB Phy SAP user
407
408 // Sap For ComponentCarrierManager 'Uplink case'
409 LteCcmMacSapProvider* m_ccmMacSapProvider; ///< CCM MAC SAP provider
410 LteCcmMacSapUser* m_ccmMacSapUser; ///< CCM MAC SAP user
411 /**
412 * frame number of current subframe indication
413 */
415 /**
416 * subframe number of current subframe indication
417 */
419 /**
420 * Trace information regarding DL scheduling
421 * Frame number, Subframe number, RNTI, MCS of TB1, size of TB1,
422 * MCS of TB2 (0 if not present), size of TB2 (0 if not present)
423 */
425
426 /**
427 * Trace information regarding UL scheduling
428 * Frame number, Subframe number, RNTI, MCS of TB, size of TB, component carrier id
429 */
431
432 uint8_t m_macChTtiDelay; ///< delay of MAC, PHY and channel in terms of TTIs
433
434 std::map<uint16_t, DlHarqProcessesBuffer_t>
435 m_miDlHarqProcessesPackets; ///< Packet under transmission of the DL HARQ process
436
437 uint8_t m_numberOfRaPreambles; ///< number of RA preambles
438 uint8_t m_preambleTransMax; ///< preamble transmit maximum
439 uint8_t m_raResponseWindowSize; ///< RA response window size
440 uint8_t m_connEstFailCount; ///< the counter value for T300 timer expiration
441
442 /**
443 * info associated with a preamble allocated for non-contention based RA
444 *
445 */
447 {
448 uint16_t rnti; ///< rnti previously allocated for this non-contention based RA procedure
449 Time expiryTime; ///< value the expiration time of this allocation (so that stale preambles
450 ///< can be reused)
451 };
452
453 /**
454 * map storing as key the random access preamble IDs allocated for
455 * non-contention based access, and as value the associated info
456 *
457 */
458 std::map<uint8_t, NcRaPreambleInfo> m_allocatedNcRaPreambleMap;
459
460 std::map<uint8_t, uint32_t> m_receivedRachPreambleCount; ///< received RACH preamble count
461
462 std::map<uint16_t, uint32_t> m_rapIdRntiMap; ///< RAPID RNTI map
463
464 /// component carrier Id used to address sap
466};
467
468} // end namespace ns3
469
470#endif /* LTE_ENB_MAC_ENTITY_H */
EnbMacMemberFfMacCschedSapUser class.
Definition: lte-enb-mac.cc:170
EnbMacMemberFfMacSchedSapUser class.
Definition: lte-enb-mac.cc:135
EnbMacMemberLteEnbCmacSapProvider class.
Definition: lte-enb-mac.cc:50
EnbMacMemberLteMacSapProvider class.
Definition: lte-mac-sap.h:203
Provides the CSCHED SAP.
FfMacCschedSapUser class.
Provides the SCHED SAP.
FfMacSchedSapUser class.
Service Access Point (SAP) offered by the component carrier manager (CCM) by MAC to CCM.
Service Access Point (SAP) offered by MAC to the component carrier manager (CCM).
Service Access Point (SAP) offered by the eNB MAC to the eNB RRC See Femto Forum MAC Scheduler Interf...
Service Access Point (SAP) offered by the MAC to the RRC See Femto Forum MAC Scheduler Interface Spec...
This class implements the MAC layer of the eNodeB device.
Definition: lte-enb-mac.h:58
void SetFfMacCschedSapProvider(FfMacCschedSapProvider *s)
Set the control scheduler SAP provider.
Definition: lte-enb-mac.cc:416
~LteEnbMac() override
Definition: lte-enb-mac.cc:374
void DoReceivePhyPdu(Ptr< Packet > p)
legacy public for use the Phy callback
Definition: lte-enb-mac.cc:709
void DoSchedDlConfigInd(FfMacSchedSapUser::SchedDlConfigIndParameters ind)
Sched DL Config Indication function.
FfMacSchedSapUser * m_schedSapUser
the Sched SAP user
Definition: lte-enb-mac.h:401
void DoCschedCellConfigCnf(FfMacCschedSapUser::CschedCellConfigCnfParameters params)
CSched Cell Config configure function.
FfMacCschedSapProvider * m_cschedSapProvider
the Csched SAP provider
Definition: lte-enb-mac.h:400
void SetLteEnbPhySapProvider(LteEnbPhySapProvider *s)
Set the PHY SAP Provider.
Definition: lte-enb-mac.cc:452
uint32_t m_frameNo
frame number of current subframe indication
Definition: lte-enb-mac.h:414
void DoDispose() override
Destructor implementation.
Definition: lte-enb-mac.cc:380
LteEnbPhySapProvider * m_enbPhySapProvider
the ENB Phy SAP provider
Definition: lte-enb-mac.h:405
void DoReportBufferStatus(LteMacSapProvider::ReportBufferStatusParameters params)
Report Buffer Status function.
FfMacCschedSapUser * GetFfMacCschedSapUser()
Get the control scheduler SAP user.
Definition: lte-enb-mac.cc:422
void(* DlSchedulingTracedCallback)(const uint32_t frame, const uint32_t subframe, const uint16_t rnti, const uint8_t mcs0, const uint16_t tbs0Size, const uint8_t mcs1, const uint16_t tbs1Size, const uint8_t ccId)
TracedCallback signature for DL scheduling events.
Definition: lte-enb-mac.h:166
FfMacCschedSapUser * m_cschedSapUser
the CSched SAP user
Definition: lte-enb-mac.h:402
static TypeId GetTypeId()
Get the type ID.
Definition: lte-enb-mac.cc:316
LteCcmMacSapUser * m_ccmMacSapUser
CCM MAC SAP user.
Definition: lte-enb-mac.h:410
void DoCschedUeReleaseCnf(FfMacCschedSapUser::CschedUeReleaseCnfParameters params)
CSched UE Release configure function.
void SetLteEnbCmacSapUser(LteEnbCmacSapUser *s)
Set the control MAC SAP user.
Definition: lte-enb-mac.cc:440
LteEnbPhySapUser * GetLteEnbPhySapUser()
Get the eNB-PHY SAP User.
Definition: lte-enb-mac.cc:458
void DoUlInfoListElementHarqFeedback(UlInfoListElement_s params)
UL Info List ELements HARQ Feedback function.
std::vector< CqiListElement_s > m_dlCqiReceived
DL-CQI received.
Definition: lte-enb-mac.h:380
std::map< uint8_t, uint32_t > m_receivedRachPreambleCount
received RACH preamble count
Definition: lte-enb-mac.h:460
LteCcmMacSapProvider * m_ccmMacSapProvider
CCM MAC SAP provider.
Definition: lte-enb-mac.h:409
FfMacSchedSapProvider * m_schedSapProvider
the Sched SAP provider
Definition: lte-enb-mac.h:399
void DoReceiveRachPreamble(uint8_t prachId)
Receive RACH Preamble function.
Definition: lte-enb-mac.cc:658
void DoCschedLcConfigCnf(FfMacCschedSapUser::CschedLcConfigCnfParameters params)
CSched LC Config configure function.
uint8_t m_componentCarrierId
component carrier Id used to address sap
Definition: lte-enb-mac.h:465
void DoCschedUeConfigCnf(FfMacCschedSapUser::CschedUeConfigCnfParameters params)
CSched UE Config configure function.
TracedCallback< uint32_t, uint32_t, uint16_t, uint8_t, uint16_t, uint8_t > m_ulScheduling
Trace information regarding UL scheduling Frame number, Subframe number, RNTI, MCS of TB,...
Definition: lte-enb-mac.h:430
void DoReleaseLc(uint16_t rnti, uint8_t lcid)
Release LC function.
Definition: lte-enb-mac.cc:918
void DoReceiveLteControlMessage(Ptr< LteControlMessage > msg)
Receive a DL CQI ideal control message.
Definition: lte-enb-mac.cc:631
void SetLteCcmMacSapUser(LteCcmMacSapUser *s)
Set the ComponentCarrierManager SAP user.
Definition: lte-enb-mac.cc:464
std::map< uint16_t, std::map< uint8_t, LteMacSapUser * > > m_rlcAttached
RNTI, LC ID, SAP of the RLC instance.
Definition: lte-enb-mac.h:378
LteMacSapUser * m_macSapUser
the MAC SAP user
Definition: lte-enb-mac.h:396
std::vector< MacCeListElement_s > m_ulCeReceived
CE received (BSR up to now)
Definition: lte-enb-mac.h:383
LteEnbPhySapUser * m_enbPhySapUser
the ENB Phy SAP user
Definition: lte-enb-mac.h:406
void DoTransmitPdu(LteMacSapProvider::TransmitPduParameters params)
Transmit PDU function.
std::vector< FfMacSchedSapProvider::SchedUlCqiInfoReqParameters > m_ulCqiReceived
UL-CQI received.
Definition: lte-enb-mac.h:382
LteEnbCmacSapProvider * m_cmacSapProvider
the CMAC SAP provider
Definition: lte-enb-mac.h:395
TracedCallback< DlSchedulingCallbackInfo > m_dlScheduling
Trace information regarding DL scheduling Frame number, Subframe number, RNTI, MCS of TB1,...
Definition: lte-enb-mac.h:424
void SetFfMacSchedSapProvider(FfMacSchedSapProvider *s)
Set the scheduler SAP provider.
Definition: lte-enb-mac.cc:404
void ReceiveBsrMessage(MacCeListElement_s bsr)
Receive a CE element containing the buffer status report.
Definition: lte-enb-mac.cc:691
uint8_t m_connEstFailCount
the counter value for T300 timer expiration
Definition: lte-enb-mac.h:440
LteMacSapProvider * m_macSapProvider
the MAC SAP provider
Definition: lte-enb-mac.h:394
uint8_t m_raResponseWindowSize
RA response window size.
Definition: lte-enb-mac.h:439
void DoUeUpdateConfigurationReq(LteEnbCmacSapProvider::UeConfig params)
UE Update configuration request function.
Definition: lte-enb-mac.cc:933
void DoReconfigureLc(LteEnbCmacSapProvider::LcInfo lcinfo)
Reconfigure LC function.
Definition: lte-enb-mac.cc:912
uint8_t m_macChTtiDelay
delay of MAC, PHY and channel in terms of TTIs
Definition: lte-enb-mac.h:432
FfMacSchedSapUser * GetFfMacSchedSapUser()
Get the scheduler SAP user.
Definition: lte-enb-mac.cc:410
LteCcmMacSapProvider * GetLteCcmMacSapProvider()
Get the eNB-ComponentCarrierManager SAP User.
Definition: lte-enb-mac.cc:470
void(* UlSchedulingTracedCallback)(const uint32_t frame, const uint32_t subframe, const uint16_t rnti, const uint8_t mcs, const uint16_t tbsSize)
TracedCallback signature for UL scheduling events.
Definition: lte-enb-mac.h:184
void DoDlInfoListElementHarqFeedback(DlInfoListElement_s params)
DL Info List ELements HARQ Feedback function.
uint8_t m_preambleTransMax
preamble transmit maximum
Definition: lte-enb-mac.h:438
void DoConfigureMac(uint16_t ulBandwidth, uint16_t dlBandwidth)
Configure MAC function.
Definition: lte-enb-mac.cc:771
std::map< uint8_t, NcRaPreambleInfo > m_allocatedNcRaPreambleMap
map storing as key the random access preamble IDs allocated for non-contention based access,...
Definition: lte-enb-mac.h:458
uint8_t m_numberOfRaPreambles
number of RA preambles
Definition: lte-enb-mac.h:437
LteEnbCmacSapProvider * GetLteEnbCmacSapProvider()
Get the control MAC SAP provider.
Definition: lte-enb-mac.cc:446
std::map< uint16_t, DlHarqProcessesBuffer_t > m_miDlHarqProcessesPackets
Packet under transmission of the DL HARQ process.
Definition: lte-enb-mac.h:435
void DoCschedCellConfigUpdateInd(FfMacCschedSapUser::CschedCellConfigUpdateIndParameters params)
CSched Cell Config Update Indication function.
void DoAddLc(LteEnbCmacSapProvider::LcInfo lcinfo, LteMacSapUser *msu)
Add LC function.
Definition: lte-enb-mac.cc:865
void DoCschedUeConfigUpdateInd(FfMacCschedSapUser::CschedUeConfigUpdateIndParameters params)
CSched UE Config Update Indication function.
void DoSubframeIndication(uint32_t frameNo, uint32_t subframeNo)
Subrame Indication function.
Definition: lte-enb-mac.cc:476
void SetLteMacSapUser(LteMacSapUser *s)
Set the MAC SAP user.
Definition: lte-enb-mac.cc:428
void ReceiveDlCqiLteControlMessage(Ptr< DlCqiLteControlMessage > msg)
Receive a DL CQI ideal control message.
Definition: lte-enb-mac.cc:680
LteEnbCmacSapProvider::AllocateNcRaPreambleReturnValue DoAllocateNcRaPreamble(uint16_t rnti)
Allocate NC RA preamble function.
Definition: lte-enb-mac.cc:957
void DoReportSrToScheduler(uint16_t rnti)
Report SR to scheduler.
Definition: lte-enb-mac.h:354
void DoRemoveUe(uint16_t rnti)
Remove UE function.
Definition: lte-enb-mac.cc:821
LteEnbCmacSapProvider::RachConfig DoGetRachConfig() const
Get RACH configuration function.
Definition: lte-enb-mac.cc:946
std::vector< DlInfoListElement_s > m_dlInfoListReceived
DL HARQ feedback received.
Definition: lte-enb-mac.h:385
void DoSchedUlConfigInd(FfMacSchedSapUser::SchedUlConfigIndParameters params)
Sched UL Config Indication function.
LteMacSapProvider * GetLteMacSapProvider()
Get the MAC SAP provider.
Definition: lte-enb-mac.cc:434
LteEnbCmacSapUser * m_cmacSapUser
the CMAC SAP user
Definition: lte-enb-mac.h:397
uint32_t m_subframeNo
subframe number of current subframe indication
Definition: lte-enb-mac.h:418
void DoCschedLcReleaseCnf(FfMacCschedSapUser::CschedLcReleaseCnfParameters params)
CSched LC Release configure function.
void DoAddUe(uint16_t rnti)
Add UE function.
Definition: lte-enb-mac.cc:784
void DoReportMacCeToScheduler(MacCeListElement_s bsr)
Report MAC CE to scheduler.
Definition: lte-enb-mac.cc:698
void SetComponentCarrierId(uint8_t index)
Set the component carrier ID.
Definition: lte-enb-mac.cc:398
void DoUlCqiReport(FfMacSchedSapProvider::SchedUlCqiInfoReqParameters ulcqi)
UL CQI report.
Definition: lte-enb-mac.cc:666
std::vector< UlInfoListElement_s > m_ulInfoListReceived
UL HARQ feedback received.
Definition: lte-enb-mac.h:387
std::map< uint16_t, uint32_t > m_rapIdRntiMap
RAPID RNTI map.
Definition: lte-enb-mac.h:462
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.
Service Access Point (SAP) offered by the MAC to the RLC See Femto Forum MAC Scheduler Interface Spec...
Definition: lte-mac-sap.h:36
Service Access Point (SAP) offered by the MAC to the RLC See Femto Forum MAC Scheduler Interface Spec...
Definition: lte-mac-sap.h:96
MemberLteCcmMacSapProvider class.
A base class which provides memory management and object aggregation.
Definition: object.h:89
Smart pointer class similar to boost::intrusive_ptr.
Definition: ptr.h:77
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
Every class exported by the ns3 library is enclosed in the ns3 namespace.
std::vector< std::vector< Ptr< PacketBurst > > > DlHarqProcessesBuffer_t
DlHarqProcessesBuffer_t typedef.
Definition: lte-enb-mac.h:52
See section 4.3.23 dlInfoListElement.
Parameters of the CSCHED_CELL_CONFIG_UPDATE_IND primitive.
Parameters of the CSCHED_LC_CONFIG_CNF primitive.
Parameters of the CSCHED_LC_RELEASE_CNF primitive.
Parameters of the CSCHED_UE_CONFIG_CNF primitive.
Parameters of the CSCHED_UE_CONFIG_UPDATE_IND primitive.
Parameters of the CSCHED_UE_RELEASE_CNF primitive.
Parameters of the SCHED_UL_CQI_INFO_REQ primitive.
Parameters of the SCHED_UL_CONFIG_IND primitive.
AllocateNcRaPreambleReturnValue structure.
Logical Channel information to be passed to CmacSapProvider::ConfigureLc.
struct defining the RACH configuration of the MAC
Parameters for [re]configuring the UE.
info associated with a preamble allocated for non-contention based RA
Definition: lte-enb-mac.h:447
Time expiryTime
value the expiration time of this allocation (so that stale preambles can be reused)
Definition: lte-enb-mac.h:449
uint16_t rnti
rnti previously allocated for this non-contention based RA procedure
Definition: lte-enb-mac.h:448
Parameters for LteMacSapProvider::ReportBufferStatus.
Definition: lte-mac-sap.h:69
Parameters for LteMacSapProvider::TransmitPdu.
Definition: lte-mac-sap.h:45
See section 4.3.14 macCEListElement.
See section 4.3.12 ulInfoListElement.