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 
45  struct RachConfig
46  {
50  };
51 
52  virtual void ConfigureRach (RachConfig rc) = 0;
53 
60 
69  virtual void StartNonContentionBasedRandomAccessProcedure (uint16_t rnti, uint8_t rapId, uint8_t prachMask) = 0;
70 
71 
73  {
74  uint8_t priority;
78  };
79 
87  virtual void AddLc (uint8_t lcId, LogicalChannelConfig lcConfig, LteMacSapUser* msu) = 0;
88 
94  virtual void RemoveLc (uint8_t lcId) = 0;
95 
100  virtual void Reset () = 0;
101 
102 };
103 
104 
105 
112 {
113 public:
114 
115  virtual ~LteUeCmacSapUser ();
116 
122  virtual void SetTemporaryCellRnti (uint16_t rnti) = 0;
123 
128  virtual void NotifyRandomAccessSuccessful () = 0;
129 
134  virtual void NotifyRandomAccessFailed () = 0;
135 };
136 
137 
138 
139 
140 } // namespace ns3
141 
142 
143 #endif // LTE_UE_CMAC_SAP_H
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
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 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.
Service Access Point (SAP) offered by the MAC to the RLC See Femto Forum MAC Scheduler Interface Spec...
Definition: lte-mac-sap.h:94
virtual void ConfigureRach(RachConfig rc)=0