A Discrete-Event Network Simulator
API
epc-enb-s1-sap.h
Go to the documentation of this file.
1 /* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 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  */
20 
21 #ifndef EPC_ENB_S1_SAP_H
22 #define EPC_ENB_S1_SAP_H
23 
24 #include <list>
25 #include <ns3/eps-bearer.h>
26 #include <ns3/ipv4-address.h>
27 
28 namespace ns3 {
29 
30 
39 {
40 public:
41  virtual ~EpcEnbS1SapProvider ();
42 
49  virtual void InitialUeMessage (uint64_t imsi, uint16_t rnti) = 0;
50 
57  virtual void DoSendReleaseIndication (uint64_t imsi, uint16_t rnti, uint8_t bearerId) = 0;
58 
61  {
62  uint8_t epsBearerId;
63  uint32_t teid;
64  };
65 
68  {
69  uint16_t rnti;
70  uint16_t cellId;
71  uint32_t mmeUeS1Id;
72  std::list<BearerToBeSwitched> bearersToBeSwitched;
73  };
74 
81 
82 
90  virtual void UeContextRelease (uint16_t rnti) = 0;
91 
92 };
93 
94 
95 
104 {
105 public:
106  virtual ~EpcEnbS1SapUser ();
107 
112  {
113  uint16_t rnti;
114  };
115 
122 
127  {
128  uint16_t rnti;
131  uint8_t bearerId;
132  uint32_t gtpTeid;
134  };
135 
142 
143 
146  {
147  uint16_t rnti;
148  };
149 
156 
157 };
158 
159 
160 
161 
167 template <class C>
169 {
170 public:
176  MemberEpcEnbS1SapProvider (C* owner);
177 
178  // inherited from EpcEnbS1SapProvider
179  virtual void InitialUeMessage (uint64_t imsi, uint16_t rnti);
180  virtual void DoSendReleaseIndication (uint64_t imsi, uint16_t rnti, uint8_t bearerId);
181 
182  virtual void PathSwitchRequest (PathSwitchRequestParameters params);
183  virtual void UeContextRelease (uint16_t rnti);
184 
185 private:
187  C* m_owner;
188 };
189 
190 template <class C>
192  : m_owner (owner)
193 {
194 }
195 
196 template <class C>
198 {
199 }
200 
201 
202 template <class C>
203 void MemberEpcEnbS1SapProvider<C>::InitialUeMessage (uint64_t imsi, uint16_t rnti)
204 {
205  m_owner->DoInitialUeMessage (imsi, rnti);
206 }
207 
208 template <class C>
209 void MemberEpcEnbS1SapProvider<C>::DoSendReleaseIndication (uint64_t imsi, uint16_t rnti, uint8_t bearerId)
210 {
211  m_owner->DoReleaseIndication (imsi, rnti, bearerId);
212 }
213 
214 template <class C>
216 {
217  m_owner->DoPathSwitchRequest (params);
218 }
219 
220 template <class C>
222 {
223  m_owner->DoUeContextRelease (rnti);
224 }
225 
231 template <class C>
233 {
234 public:
240  MemberEpcEnbS1SapUser (C* owner);
241 
242  // inherited from EpcEnbS1SapUser
246 
247 private:
249  C* m_owner;
250 };
251 
252 template <class C>
254  : m_owner (owner)
255 {
256 }
257 
258 template <class C>
260 {
261 }
262 
263 template <class C>
265 {
266  m_owner->DoInitialContextSetupRequest (params);
267 }
268 
269 template <class C>
271 {
272  m_owner->DoDataRadioBearerSetupRequest (params);
273 }
274 
275 template <class C>
277 {
278  m_owner->DoPathSwitchRequestAcknowledge (params);
279 }
280 
281 } // namespace ns3
282 
283 #endif // EPC_ENB_S1_SAP_H
ns3::EpcEnbS1SapUser::DataRadioBearerSetupRequestParameters::bearer
EpsBearer bearer
the characteristics of the bearer to be setup
Definition: epc-enb-s1-sap.h:130
ns3::EpcEnbS1SapUser::~EpcEnbS1SapUser
virtual ~EpcEnbS1SapUser()
Definition: epc-enb-s1-sap.cc:29
ns3::EpcEnbS1SapUser::InitialContextSetupRequestParameters
Parameters passed to InitialContextSetupRequest ()
Definition: epc-enb-s1-sap.h:112
ns3::EpcEnbS1SapProvider::PathSwitchRequestParameters::mmeUeS1Id
uint32_t mmeUeS1Id
mmeUeS1Id in practice, we use the IMSI
Definition: epc-enb-s1-sap.h:71
ns3::EpcEnbS1SapProvider::DoSendReleaseIndication
virtual void DoSendReleaseIndication(uint64_t imsi, uint16_t rnti, uint8_t bearerId)=0
Triggers epc-enb-application to send ERAB Release Indication message towards MME.
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::EpcEnbS1SapUser::DataRadioBearerSetupRequestParameters
Parameters passed to DataRadioBearerSetupRequest ()
Definition: epc-enb-s1-sap.h:127
ns3::MemberEpcEnbS1SapUser
Template for the implementation of the EpcEnbS1SapUser as a member of an owner class of type C to whi...
Definition: epc-enb-s1-sap.h:233
ns3::MemberEpcEnbS1SapProvider::PathSwitchRequest
virtual void PathSwitchRequest(PathSwitchRequestParameters params)
Path Switch Request.
Definition: epc-enb-s1-sap.h:215
ns3::MemberEpcEnbS1SapUser::MemberEpcEnbS1SapUser
MemberEpcEnbS1SapUser()
Definition: epc-enb-s1-sap.h:259
ns3::EpcEnbS1SapProvider::UeContextRelease
virtual void UeContextRelease(uint16_t rnti)=0
release UE context at the S1 Application of the source eNB after reception of the UE CONTEXT RELEASE ...
ns3::MemberEpcEnbS1SapProvider
Template for the implementation of the EpcEnbS1SapProvider as a member of an owner class of type C to...
Definition: epc-enb-s1-sap.h:169
ns3::MemberEpcEnbS1SapProvider::MemberEpcEnbS1SapProvider
MemberEpcEnbS1SapProvider()
Definition: epc-enb-s1-sap.h:197
ns3::MemberEpcEnbS1SapUser::PathSwitchRequestAcknowledge
virtual void PathSwitchRequestAcknowledge(PathSwitchRequestAcknowledgeParameters params)
request a path switch acknowledge
Definition: epc-enb-s1-sap.h:276
ns3::MemberEpcEnbS1SapProvider::InitialUeMessage
virtual void InitialUeMessage(uint64_t imsi, uint16_t rnti)
Definition: epc-enb-s1-sap.h:203
ns3::Ipv4Address
Ipv4 addresses are stored in host order in this class.
Definition: ipv4-address.h:41
ns3::MemberEpcEnbS1SapUser::m_owner
C * m_owner
owner class
Definition: epc-enb-s1-sap.h:249
ns3::MemberEpcEnbS1SapUser::InitialContextSetupRequest
virtual void InitialContextSetupRequest(InitialContextSetupRequestParameters params)
Initial context setup request.
Definition: epc-enb-s1-sap.h:264
ns3::EpcEnbS1SapProvider::PathSwitchRequestParameters::cellId
uint16_t cellId
cell ID
Definition: epc-enb-s1-sap.h:70
ns3::EpcEnbS1SapUser::DataRadioBearerSetupRequestParameters::gtpTeid
uint32_t gtpTeid
S1-bearer GTP tunnel endpoint identifier, see 36.423 9.2.1.
Definition: epc-enb-s1-sap.h:132
ns3::MemberEpcEnbS1SapProvider::UeContextRelease
virtual void UeContextRelease(uint16_t rnti)
release UE context at the S1 Application of the source eNB after reception of the UE CONTEXT RELEASE ...
Definition: epc-enb-s1-sap.h:221
ns3::EpcEnbS1SapUser::PathSwitchRequestAcknowledge
virtual void PathSwitchRequestAcknowledge(PathSwitchRequestAcknowledgeParameters params)=0
request a path switch acknowledge
ns3::EpcEnbS1SapProvider
This class implements the Service Access Point (SAP) between the LteEnbRrc and the EpcEnbApplication.
Definition: epc-enb-s1-sap.h:39
ns3::EpcEnbS1SapProvider::BearerToBeSwitched
BearerToBeSwitched structure.
Definition: epc-enb-s1-sap.h:61
ns3::EpcEnbS1SapProvider::BearerToBeSwitched::teid
uint32_t teid
TEID.
Definition: epc-enb-s1-sap.h:63
ns3::EpcEnbS1SapUser::DataRadioBearerSetupRequestParameters::transportLayerAddress
Ipv4Address transportLayerAddress
IP Address of the SGW, see 36.423 9.2.1.
Definition: epc-enb-s1-sap.h:133
ns3::EpcEnbS1SapUser
This class implements the Service Access Point (SAP) between the LteEnbRrc and the EpcEnbApplication.
Definition: epc-enb-s1-sap.h:104
ns3::EpcEnbS1SapProvider::PathSwitchRequestParameters::bearersToBeSwitched
std::list< BearerToBeSwitched > bearersToBeSwitched
list of bearers to be switched
Definition: epc-enb-s1-sap.h:72
ns3::MemberEpcEnbS1SapProvider::DoSendReleaseIndication
virtual void DoSendReleaseIndication(uint64_t imsi, uint16_t rnti, uint8_t bearerId)
Triggers epc-enb-application to send ERAB Release Indication message towards MME.
Definition: epc-enb-s1-sap.h:209
ns3::EpcEnbS1SapUser::PathSwitchRequestAcknowledgeParameters::rnti
uint16_t rnti
RNTI.
Definition: epc-enb-s1-sap.h:147
ns3::EpcEnbS1SapUser::PathSwitchRequestAcknowledgeParameters
PathSwitchRequestAcknowledgeParameters structure.
Definition: epc-enb-s1-sap.h:146
ns3::EpcEnbS1SapUser::DataRadioBearerSetupRequestParameters::rnti
uint16_t rnti
the RNTI identifying the UE for which the DataRadioBearer is to be created
Definition: epc-enb-s1-sap.h:128
ns3::EpcEnbS1SapUser::InitialContextSetupRequestParameters::rnti
uint16_t rnti
the RNTI identifying the UE
Definition: epc-enb-s1-sap.h:113
ns3::EpcEnbS1SapProvider::PathSwitchRequestParameters
PathSwitchRequestParameters structure.
Definition: epc-enb-s1-sap.h:68
ns3::EpsBearer
This class contains the specification of EPS Bearers.
Definition: eps-bearer.h:92
ns3::MemberEpcEnbS1SapProvider::m_owner
C * m_owner
owner class
Definition: epc-enb-s1-sap.h:187
ns3::EpcEnbS1SapProvider::InitialUeMessage
virtual void InitialUeMessage(uint64_t imsi, uint16_t rnti)=0
ns3::EpcEnbS1SapProvider::~EpcEnbS1SapProvider
virtual ~EpcEnbS1SapProvider()
Definition: epc-enb-s1-sap.cc:25
ns3::EpcEnbS1SapProvider::PathSwitchRequestParameters::rnti
uint16_t rnti
RNTI.
Definition: epc-enb-s1-sap.h:69
ns3::EpcEnbS1SapUser::DataRadioBearerSetupRequestParameters::bearerId
uint8_t bearerId
the EPS Bearer Identifier
Definition: epc-enb-s1-sap.h:131
ns3::MemberEpcEnbS1SapUser::DataRadioBearerSetupRequest
virtual void DataRadioBearerSetupRequest(DataRadioBearerSetupRequestParameters params)
request the setup of a DataRadioBearer
Definition: epc-enb-s1-sap.h:270
ns3::EpcEnbS1SapUser::InitialContextSetupRequest
virtual void InitialContextSetupRequest(InitialContextSetupRequestParameters params)=0
Initial context setup request.
ns3::EpcEnbS1SapProvider::PathSwitchRequest
virtual void PathSwitchRequest(PathSwitchRequestParameters params)=0
Path Switch Request.
ns3::EpcEnbS1SapUser::DataRadioBearerSetupRequest
virtual void DataRadioBearerSetupRequest(DataRadioBearerSetupRequestParameters params)=0
request the setup of a DataRadioBearer
ns3::EpcEnbS1SapProvider::BearerToBeSwitched::epsBearerId
uint8_t epsBearerId
Bearer ID.
Definition: epc-enb-s1-sap.h:62