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 (uint16_t ulBandwidth,
52  uint16_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  {
143  };
144 
149  virtual RachConfig GetRachConfig () = 0;
150 
156  {
157  bool valid;
158  uint8_t raPreambleId;
160  };
161 
169  virtual AllocateNcRaPreambleReturnValue AllocateNcRaPreamble (uint16_t rnti) = 0;
170 
171 };
172 
173 
174 
182 {
183 public:
184  virtual ~LteEnbCmacSapUser ();
185 
191  virtual uint16_t AllocateTemporaryCellRnti () = 0;
192 
200  virtual void NotifyLcConfigResult (uint16_t rnti, uint8_t lcid, bool success) = 0;
201 
205  struct UeConfig
206  {
210  uint16_t m_rnti;
215  };
216 
222  virtual void RrcConfigurationUpdateInd (UeConfig params) = 0;
223 
236  virtual bool IsRandomAccessCompleted (uint16_t rnti) = 0;
237 };
238 
239 
240 
241 
242 
243 
244 
245 } // namespace ns3
246 
247 
248 #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
uint8_t connEstFailCount
the counter value for T300 timer expiration
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 bool IsRandomAccessCompleted(uint16_t rnti)=0
Is random access completed function.
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.
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...
virtual void ConfigureMac(uint16_t ulBandwidth, uint16_t dlBandwidth)=0
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