A Discrete-Event Network Simulator
API
lte-ue-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  */
20 
21 #ifndef LTE_UE_CMAC_SAP_H
22 #define LTE_UE_CMAC_SAP_H
23 
24 #include <ns3/packet.h>
25 #include <ns3/ff-mac-common.h>
26 #include <ns3/eps-bearer.h>
27 #include <ns3/lte-common.h>
28 
29 namespace ns3 {
30 
31 
32 
33 class LteMacSapUser;
34 
41 {
42 public:
43  virtual ~LteUeCmacSapProvider ();
44 
46  struct RachConfig
47  {
49  uint8_t preambleTransMax;
51  uint8_t connEstFailCount;
52  };
53 
59  virtual void ConfigureRach (RachConfig rc) = 0;
60 
67 
76  virtual void StartNonContentionBasedRandomAccessProcedure (uint16_t rnti, uint8_t rapId, uint8_t prachMask) = 0;
77 
78 
81  {
82  uint8_t priority;
86  };
87 
95  virtual void AddLc (uint8_t lcId, LogicalChannelConfig lcConfig, LteMacSapUser* msu) = 0;
96 
102  virtual void RemoveLc (uint8_t lcId) = 0;
103 
108  virtual void Reset () = 0;
109 
114  virtual void SetRnti (uint16_t rnti) = 0;
115 
120  virtual void NotifyConnectionSuccessful () = 0;
121 
126  virtual void SetImsi (uint64_t imsi) = 0;
127 
128 };
129 
130 
131 
138 {
139 public:
140 
141  virtual ~LteUeCmacSapUser ();
142 
148  virtual void SetTemporaryCellRnti (uint16_t rnti) = 0;
149 
154  virtual void NotifyRandomAccessSuccessful () = 0;
155 
160  virtual void NotifyRandomAccessFailed () = 0;
161 };
162 
163 
164 
165 
166 } // namespace ns3
167 
168 
169 #endif // LTE_UE_CMAC_SAP_H
uint8_t numberOfRaPreambles
number of RA preambles
uint8_t raResponseWindowSize
RA response window size.
uint16_t bucketSizeDurationMs
bucket size duration ms
virtual void Reset()=0
reset the MAC
virtual void StartContentionBasedRandomAccessProcedure()=0
tell the MAC to start a contention-based random access procedure, e.g., to perform RRC connection est...
virtual void RemoveLc(uint8_t lcId)=0
remove an existing LC
virtual void SetTemporaryCellRnti(uint16_t rnti)=0
uint8_t preambleTransMax
preamble transmit maximum
Service Access Point (SAP) offered by the UE MAC to the UE RRC.
virtual void NotifyConnectionSuccessful()=0
Notify MAC about the successful RRC connection establishment.
virtual void NotifyRandomAccessSuccessful()=0
Notify the RRC that the MAC Random Access procedure completed successfully.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Service Access Point (SAP) offered by the UE MAC to the UE RRC.
virtual void SetRnti(uint16_t rnti)=0
virtual void AddLc(uint8_t lcId, LogicalChannelConfig lcConfig, LteMacSapUser *msu)=0
add a new Logical Channel (LC)
virtual void StartNonContentionBasedRandomAccessProcedure(uint16_t rnti, uint8_t rapId, uint8_t prachMask)=0
tell the MAC to start a non-contention-based random access procedure, e.g., as a consequence of hando...
virtual void NotifyRandomAccessFailed()=0
Notify the RRC that the MAC Random Access procedure failed.
uint16_t prioritizedBitRateKbps
prioritize bit rate Kbps
Service Access Point (SAP) offered by the MAC to the RLC See Femto Forum MAC Scheduler Interface Spec...
Definition: lte-mac-sap.h:95
virtual void ConfigureRach(RachConfig rc)=0
Configure RACH function.
virtual void SetImsi(uint64_t imsi)=0
A method call by UE RRC to communicate the IMSI to the UE MAC.
uint8_t connEstFailCount
the counter value for T300 timer expiration
uint8_t logicalChannelGroup
logical channel group