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  };
52 
58  virtual void ConfigureRach (RachConfig rc) = 0;
59 
66 
75  virtual void StartNonContentionBasedRandomAccessProcedure (uint16_t rnti, uint8_t rapId, uint8_t prachMask) = 0;
76 
77 
80  {
81  uint8_t priority;
85  };
86 
94  virtual void AddLc (uint8_t lcId, LogicalChannelConfig lcConfig, LteMacSapUser* msu) = 0;
95 
101  virtual void RemoveLc (uint8_t lcId) = 0;
102 
107  virtual void Reset () = 0;
108 
113  virtual void SetRnti (uint16_t rnti) = 0;
114 
115 };
116 
117 
118 
125 {
126 public:
127 
128  virtual ~LteUeCmacSapUser ();
129 
135  virtual void SetTemporaryCellRnti (uint16_t rnti) = 0;
136 
141  virtual void NotifyRandomAccessSuccessful () = 0;
142 
147  virtual void NotifyRandomAccessFailed () = 0;
148 };
149 
150 
151 
152 
153 } // namespace ns3
154 
155 
156 #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 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.
uint8_t logicalChannelGroup
logical channel group