A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
lte-enb-cphy-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, 2012 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_CPHY_SAP_H
23 #define LTE_ENB_CPHY_SAP_H
24 
25 #include <stdint.h>
26 #include <ns3/ptr.h>
27 
28 #include <ns3/lte-rrc-sap.h>
29 
30 namespace ns3 {
31 
32 class LteEnbNetDevice;
33 
41 {
42 public:
43 
47  virtual ~LteEnbCphySapProvider ();
48 
54  virtual void SetCellId (uint16_t cellId) = 0;
55 
60  virtual void SetBandwidth (uint8_t ulBandwidth, uint8_t dlBandwidth) = 0;
61 
66  virtual void SetEarfcn (uint16_t ulEarfcn, uint16_t dlEarfcn) = 0;
67 
73  virtual void AddUe (uint16_t rnti) = 0;
74 
80  virtual void RemoveUe (uint16_t rnti) = 0;
81 
86  virtual void SetTransmissionMode (uint16_t rnti, uint8_t txMode) = 0;
87 
92  virtual void SetSrsConfigurationIndex (uint16_t rnti, uint16_t srsCi) = 0;
93 
99 
105 };
106 
107 
115 {
116 public:
117 
121  virtual ~LteEnbCphySapUser ();
122 
123 };
124 
125 
131 template <class C>
133 {
134 public:
135  MemberLteEnbCphySapProvider (C* owner);
136 
137  // inherited from LteEnbCphySapProvider
138  virtual void SetCellId (uint16_t cellId);
139  virtual void SetBandwidth (uint8_t ulBandwidth, uint8_t dlBandwidth);
140  virtual void SetEarfcn (uint16_t ulEarfcn, uint16_t dlEarfcn);
141  virtual void AddUe (uint16_t rnti);
142  virtual void RemoveUe (uint16_t rnti);
143  virtual void SetTransmissionMode (uint16_t rnti, uint8_t txMode);
144  virtual void SetSrsConfigurationIndex (uint16_t rnti, uint16_t srsCi);
147 
148 private:
151 };
152 
153 template <class C>
155  : m_owner (owner)
156 {
157 }
158 
159 template <class C>
161 {
162 }
163 
164 template <class C>
165 void
167 {
168  m_owner->DoSetCellId (cellId);
169 }
170 
171 
172 template <class C>
173 void
174 MemberLteEnbCphySapProvider<C>::SetBandwidth (uint8_t ulBandwidth, uint8_t dlBandwidth)
175 {
176  m_owner->DoSetBandwidth (ulBandwidth, dlBandwidth);
177 }
178 
179 template <class C>
180 void
181 MemberLteEnbCphySapProvider<C>::SetEarfcn (uint16_t ulEarfcn, uint16_t dlEarfcn)
182 {
183  m_owner->DoSetEarfcn (ulEarfcn, dlEarfcn);
184 }
185 
186 template <class C>
187 void
189 {
190  m_owner->DoAddUe (rnti);
191 }
192 
193 template <class C>
194 void
196 {
197  m_owner->DoRemoveUe (rnti);
198 }
199 
200 template <class C>
201 void
203 {
204  m_owner->DoSetTransmissionMode (rnti, txMode);
205 }
206 
207 template <class C>
208 void
210 {
211  m_owner->DoSetSrsConfigurationIndex (rnti, srsCi);
212 }
213 
214 template <class C>
215 void
217 {
218  m_owner->DoSetMasterInformationBlock (mib);
219 }
220 
221 template <class C>
222 void
224 {
225  m_owner->DoSetSystemInformationBlockType1 (sib1);
226 }
227 
228 
229 
235 template <class C>
237 {
238 public:
239  MemberLteEnbCphySapUser (C* owner);
240 
241  // methods inherited from LteEnbCphySapUser go here
242 
243 private:
246 };
247 
248 template <class C>
250  : m_owner (owner)
251 {
252 }
253 
254 template <class C>
256 {
257 }
258 
259 
260 
261 
262 
263 
264 } // namespace ns3
265 
266 
267 #endif // LTE_ENB_CPHY_SAP_H
virtual void SetMasterInformationBlock(LteRrcSap::MasterInformationBlock mib)=0
Template for the implementation of the LteEnbCphySapProvider as a member of an owner class of type C ...
virtual void AddUe(uint16_t rnti)=0
Add a new UE to the cell.
virtual void SetTransmissionMode(uint16_t rnti, uint8_t txMode)=0
virtual void SetEarfcn(uint16_t ulEarfcn, uint16_t dlEarfcn)=0
virtual void SetSystemInformationBlockType1(LteRrcSap::SystemInformationBlockType1 sib1)
Service Access Point (SAP) offered by the UE PHY to the UE RRC for control purposes.
virtual void SetCellId(uint16_t cellId)=0
virtual void SetBandwidth(uint8_t ulBandwidth, uint8_t dlBandwidth)=0
Template for the implementation of the LteEnbCphySapUser as a member of an owner class of type C to w...
virtual void SetMasterInformationBlock(LteRrcSap::MasterInformationBlock mib)
virtual void SetBandwidth(uint8_t ulBandwidth, uint8_t dlBandwidth)
virtual void SetCellId(uint16_t cellId)
virtual ~LteEnbCphySapUser()
destructor
virtual void SetSystemInformationBlockType1(LteRrcSap::SystemInformationBlockType1 sib1)=0
virtual void RemoveUe(uint16_t rnti)
Remove an UE from the the cell.
virtual void SetTransmissionMode(uint16_t rnti, uint8_t txMode)
virtual void SetSrsConfigurationIndex(uint16_t rnti, uint16_t srsCi)
virtual void SetSrsConfigurationIndex(uint16_t rnti, uint16_t srsCi)=0
virtual void SetEarfcn(uint16_t ulEarfcn, uint16_t dlEarfcn)
virtual ~LteEnbCphySapProvider()
destructor
Service Access Point (SAP) offered by the UE PHY to the UE RRC for control purposes.
virtual void AddUe(uint16_t rnti)
Add a new UE to the cell.
virtual void RemoveUe(uint16_t rnti)=0
Remove an UE from the the cell.