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