A Discrete-Event Network Simulator
API
lte-enb-cmac-sap.h
Go to the documentation of this file.
1 /* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
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: Nicola Baldo <nbaldo@cttc.es>
19  * Marco Miozzo <mmiozzo@cttc.es>
20  */
21 
22 #ifndef LTE_ENB_CMAC_SAP_H
23 #define LTE_ENB_CMAC_SAP_H
24 
25 #include <ns3/packet.h>
26 #include <ns3/ff-mac-common.h>
27 #include <ns3/eps-bearer.h>
28 #include <ns3/lte-common.h>
29 
30 namespace ns3 {
31 
32 
33 class LteMacSapUser;
34 
42 {
43 public:
44  virtual ~LteEnbCmacSapProvider ();
51  virtual void ConfigureMac (uint8_t ulBandwidth,
52  uint8_t dlBandwidth) = 0;
53 
59  virtual void AddUe (uint16_t rnti) = 0;
60 
66  virtual void RemoveUe (uint16_t rnti) = 0;
67 
72  struct LcInfo
73  {
74  uint16_t rnti;
75  uint8_t lcId;
76  uint8_t lcGroup;
77  uint8_t qci;
78  bool isGbr;
79  uint64_t mbrUl;
80  uint64_t mbrDl;
81  uint64_t gbrUl;
82  uint64_t gbrDl;
83  };
84 
91  virtual void AddLc (LcInfo lcinfo, LteMacSapUser* msu) = 0;
92 
93 
99  virtual void ReconfigureLc (LcInfo lcinfo) = 0;
100 
101 
108  virtual void ReleaseLc (uint16_t rnti, uint8_t lcid) = 0;
109 
113  struct UeConfig
114  {
118  uint16_t m_rnti;
123  };
124 
130  virtual void UeUpdateConfigurationReq (UeConfig params) = 0;
131 
132 
137  struct RachConfig
138  {
142  };
143 
148  virtual RachConfig GetRachConfig () = 0;
149 
155  {
156  bool valid;
157  uint8_t raPreambleId;
159  };
160 
168  virtual AllocateNcRaPreambleReturnValue AllocateNcRaPreamble (uint16_t rnti) = 0;
169 
170 };
171 
172 
173 
181 {
182 public:
183  virtual ~LteEnbCmacSapUser ();
184 
190  virtual uint16_t AllocateTemporaryCellRnti () = 0;
191 
199  virtual void NotifyLcConfigResult (uint16_t rnti, uint8_t lcid, bool success) = 0;
200 
204  struct UeConfig
205  {
209  uint16_t m_rnti;
214  };
215 
221  virtual void RrcConfigurationUpdateInd (UeConfig params) = 0;
222 };
223 
224 
225 
226 
227 
228 
229 
230 } // namespace ns3
231 
232 
233 #endif // MAC_SAP_H
virtual void ReconfigureLc(LcInfo lcinfo)=0
Reconfigure an existing logical channel.
AllocateNcRaPreambleReturnValue structure.
virtual void ReleaseLc(uint16_t rnti, uint8_t lcid)=0
release an existing logical channel
uint16_t m_rnti
UE id within this cell.
uint8_t m_transmissionMode
Transmission mode 1..7
uint8_t preambleTransMax
preamble transmit maximum
uint8_t raResponseWindowSize
RA response window size.
uint8_t qci
QoS Class Identifier.
uint8_t m_transmissionMode
Transmission mode 1..7
virtual void AddUe(uint16_t rnti)=0
Add UE function.
uint64_t mbrDl
maximum bitrate in downlink
virtual void NotifyLcConfigResult(uint16_t rnti, uint8_t lcid, bool success)=0
notify the result of the last LC config operation
Service Access Point (SAP) offered by the MAC to the RRC See Femto Forum MAC Scheduler Interface Spec...
uint8_t lcId
logical channel identifier
uint16_t m_rnti
UE id within this cell.
virtual void RrcConfigurationUpdateInd(UeConfig params)=0
Notify the RRC of a UE config updated requested by the MAC (normally, by the scheduler) ...
Logical Channel information to be passed to CmacSapProvider::ConfigureLc.
virtual RachConfig GetRachConfig()=0
Parameters for [re]configuring the UE.
uint8_t numberOfRaPreambles
number of RA preambles
Every class exported by the ns3 library is enclosed in the ns3 namespace.
uint8_t lcGroup
logical channel group
Parameters for [re]configuring the UE.
uint16_t rnti
C-RNTI identifying the UE.
uint64_t mbrUl
maximum bitrate in uplink
uint64_t gbrUl
guaranteed bitrate in uplink
virtual void AddLc(LcInfo lcinfo, LteMacSapUser *msu)=0
Add a new logical channel.
virtual void ConfigureMac(uint8_t ulBandwidth, uint8_t dlBandwidth)=0
Service Access Point (SAP) offered by the MAC to the RLC See Femto Forum MAC Scheduler Interface Spec...
Definition: lte-mac-sap.h:95
struct defining the RACH configuration of the MAC
virtual AllocateNcRaPreambleReturnValue AllocateNcRaPreamble(uint16_t rnti)=0
Allocate a random access preamble for non-contention based random access (e.g., for handover)...
virtual void UeUpdateConfigurationReq(UeConfig params)=0
update the configuration of the UE
bool valid
true if a valid RA config was allocated, false otherwise
virtual void RemoveUe(uint16_t rnti)=0
remove the UE, e.g., after handover or termination of the RRC connection
Service Access Point (SAP) offered by the eNB MAC to the eNB RRC See Femto Forum MAC Scheduler Interf...
uint64_t gbrDl
guaranteed bitrate in downlink
virtual uint16_t AllocateTemporaryCellRnti()=0
request the allocation of a Temporary C-RNTI
bool isGbr
true if the bearer is GBR, false if the bearer is NON-GBR