A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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 
54 
55  virtual void AddUe (uint16_t rnti) = 0;
56 
62  virtual void RemoveUe (uint16_t rnti) = 0;
63 
68  struct LcInfo
69  {
70  uint16_t rnti;
71  uint8_t lcId;
72  uint8_t lcGroup;
73  uint8_t qci;
74  bool isGbr;
75  uint64_t mbrUl;
76  uint64_t mbrDl;
77  uint64_t gbrUl;
78  uint64_t gbrDl;
79  };
80 
87  virtual void AddLc (LcInfo lcinfo, LteMacSapUser* msu) = 0;
88 
89 
95  virtual void ReconfigureLc (LcInfo lcinfo) = 0;
96 
97 
104  virtual void ReleaseLc (uint16_t rnti, uint8_t lcid) = 0;
105 
109  struct UeConfig
110  {
114  uint16_t m_rnti;
119  };
120 
126  virtual void UeUpdateConfigurationReq (UeConfig params) = 0;
127 
128 
133  struct RachConfig
134  {
138  };
139 
144  virtual RachConfig GetRachConfig () = 0;
145 
151  {
152  bool valid;
153  uint8_t raPreambleId;
155  };
156 
164  virtual AllocateNcRaPreambleReturnValue AllocateNcRaPreamble (uint16_t rnti) = 0;
165 
166 };
167 
168 
169 
177 {
178 public:
179  virtual ~LteEnbCmacSapUser ();
180 
186  virtual uint16_t AllocateTemporaryCellRnti () = 0;
187 
195  virtual void NotifyLcConfigResult (uint16_t rnti, uint8_t lcid, bool success) = 0;
196 
200  struct UeConfig
201  {
205  uint16_t m_rnti;
210  };
211 
217  virtual void RrcConfigurationUpdateInd (UeConfig params) = 0;
218 };
219 
220 
221 
222 
223 
224 
225 
226 } // namespace ns3
227 
228 
229 #endif // MAC_SAP_H
virtual void ReconfigureLc(LcInfo lcinfo)=0
Reconfigure an existing logical channel.
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 qci
QoS Class Identifier.
uint8_t m_transmissionMode
Transmission mode 1..7
virtual void AddUe(uint16_t rnti)=0
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 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:94
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